diff --git a/.all-contributorsrc b/.all-contributorsrc deleted file mode 100644 index 2e9a23658..000000000 --- a/.all-contributorsrc +++ /dev/null @@ -1,245 +0,0 @@ -{ - "projectName": "verdaccio", - "projectOwner": "verdaccio", - "repoType": "github", - "repoHost": "https://github.com", - "commitConvention": "none", - "files": [ - "CONTRIBUTORS.md" - ], - "contributors": [ - { - "login": "juanpicado", - "name": "Juan Picado", - "avatar_url": "https://avatars0.githubusercontent.com/u/558752?v=4", - "profile": "https://www.linkedin.com/in/jotadeveloper/", - "contributions": [ - "doc", - "code", - "infra", - "eventOrganizing", - "blog", - "maintenance" - ] - }, - { - "login": "sergiohgz", - "name": "Sergio Herrera", - "avatar_url": "https://avatars3.githubusercontent.com/u/14012309?v=4", - "profile": "https://github.com/sergiohgz", - "contributions": [ - "infra", - "maintenance" - ] - }, - { - "login": "DanielRuf", - "name": "Daniel Ruf", - "avatar_url": "https://avatars1.githubusercontent.com/u/827205?v=4", - "profile": "https://daniel-ruf.de/", - "contributions": [ - "security", - "infra", - "maintenance" - ] - }, - { - "login": "priscilawebdev", - "name": "Priscila Oliveira", - "avatar_url": "https://avatars1.githubusercontent.com/u/29228205?v=4", - "profile": "https://priscilawebdev.github.io/priscilaoliveira/", - "contributions": [ - "design", - "code", - "maintenance" - ] - }, - { - "login": "ayusharma", - "name": "Ayush Sharma", - "avatar_url": "https://avatars0.githubusercontent.com/u/6918450?v=4", - "profile": "http://ayusharma.github.io/", - "contributions": [ - "infra", - "code", - "design" - ] - }, - { - "login": "trentearl", - "name": "Trent Earl", - "avatar_url": "https://avatars2.githubusercontent.com/u/802857?v=4", - "profile": "https://github.com/trentearl", - "contributions": [ - "code" - ] - }, - { - "login": "jmwilkinson", - "name": "jmwilkinson", - "avatar_url": "https://avatars0.githubusercontent.com/u/17836030?v=4", - "profile": "https://github.com/jmwilkinson", - "contributions": [ - "code" - ] - }, - { - "login": "bufferoverflow", - "name": "Roger Meier", - "avatar_url": "https://avatars2.githubusercontent.com/u/378909?v=4", - "profile": "https://github.com/bufferoverflow", - "contributions": [ - "plugin" - ] - }, - { - "login": "jamesgeorge007", - "name": "James George", - "avatar_url": "https://avatars2.githubusercontent.com/u/25279263?v=4", - "profile": "https://ghuser.io/jamesgeorge007", - "contributions": [ - "code" - ] - }, - { - "login": "AvailCat", - "name": "AvailCat", - "avatar_url": "https://avatars3.githubusercontent.com/u/19658647?v=4", - "profile": "https://github.com/AvailCat", - "contributions": [ - "code", - "infra", - "maintenance" - ] - }, - { - "login": "lgaitan", - "name": "Lucius Gaitán", - "avatar_url": "https://avatars0.githubusercontent.com/u/5970350?v=4", - "profile": "https://www.luciusgaitan.com/", - "contributions": [ - "code" - ] - }, - { - "login": "ramonornela", - "name": "Ramon Henrique Ornelas", - "avatar_url": "https://avatars1.githubusercontent.com/u/187946?v=4", - "profile": "https://github.com/ramonornela", - "contributions": [ - "code" - ] - }, - { - "login": "UnitedMarsupials-zz", - "name": "UnitedMarsupials-zz", - "avatar_url": "https://avatars1.githubusercontent.com/u/1486340?v=4", - "profile": "https://people.freebsd.org/~mi/resume/", - "contributions": [ - "code" - ] - }, - { - "login": "ryan-codingintrigue", - "name": "Ryan Graham", - "avatar_url": "https://avatars0.githubusercontent.com/u/9048902?v=4", - "profile": "http://www.codingintrigue.co.uk/", - "contributions": [ - "code" - ] - }, - { - "login": "coolsp", - "name": "coolsp", - "avatar_url": "https://avatars1.githubusercontent.com/u/1246647?v=4", - "profile": "https://github.com/coolsp", - "contributions": [ - "code" - ] - }, - { - "login": "ashishsurana", - "name": "Ashish Surana", - "avatar_url": "https://avatars0.githubusercontent.com/u/5610944?v=4", - "profile": "http://ashishsurana.in/", - "contributions": [ - "code" - ] - }, - { - "login": "buffaybu", - "name": "Wang Yifei", - "avatar_url": "https://avatars3.githubusercontent.com/u/2025661?v=4", - "profile": "https://github.com/buffaybu", - "contributions": [ - "code" - ] - }, - { - "login": "lirantal", - "name": "Liran Tal", - "avatar_url": "https://avatars1.githubusercontent.com/u/316371?v=4", - "profile": "https://twitter.com/liran_tal", - "contributions": [ - "code" - ] - }, - { - "login": "brenordr", - "name": "Breno Rodrigues", - "avatar_url": "https://avatars2.githubusercontent.com/u/19731692?v=4", - "profile": "https://github.com/brenordr", - "contributions": [ - "code" - ] - }, - { - "login": "jachstet-sea", - "name": "jachstet-sea", - "avatar_url": "https://avatars0.githubusercontent.com/u/7993508?v=4", - "profile": "https://github.com/jachstet-sea", - "contributions": [ - "code" - ] - }, - { - "login": "Vrtak-CZ", - "name": "Patrik Votoček", - "avatar_url": "https://avatars1.githubusercontent.com/u/112567?v=4", - "profile": "https://patrik.votocek.cz/", - "contributions": [ - "code" - ] - }, - { - "login": "monkeywithacupcake", - "name": "jess", - "avatar_url": "https://avatars3.githubusercontent.com/u/7316730?v=4", - "profile": "https://github.com/monkeywithacupcake", - "contributions": [ - "code" - ] - }, - { - "login": "toolsofraj", - "name": "toolsofraj", - "avatar_url": "https://avatars0.githubusercontent.com/u/2507152?v=4", - "profile": "https://github.com/toolsofraj", - "contributions": [ - "code" - ] - }, - { - "login": "ddhp", - "name": "Jian-Chen Chen (jesse)", - "avatar_url": "https://avatars1.githubusercontent.com/u/1715380?v=4", - "profile": "https://github.com/ddhp", - "contributions": [ - "translation", - "code" - ] - } - ], - "skipCi": true, - "contributorsPerLine": 7 -} diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index cf6dedae0..000000000 --- a/.dockerignore +++ /dev/null @@ -1,36 +0,0 @@ -# we try to avoid adding files to the docker images that change often -# or that are not needed for running the docker image -# this greatly reduces the amount of times we need to rerun `npm install` when building image locally -# https://codefresh.io/blog/not-ignore-dockerignore/ -# https://docs.docker.com/engine/reference/builder/#dockerignore-file - -# consider them hidden -.* -# you can add exceptions like in .gitignore to maintain a whitelist: -# e.g. -!babel.config.js -!.eslintrc -!.prettierrc -!.eslintignore -!.stylelintrc -!.jest.config.js -!.jestEnvironment.js -!.yarnrc.yml -!.yarn/releases/yarn-berry.cjs -!.yarn/plugins/* - -# do not copy over node_modules we will run `npm install` anyway -node_modules - -# output from test runs and similar things -*.log -coverage/ -.vscode/ - -# IDE config files -jsconfig.json -*.iml - -# let's not get too recursive ;) -Dockerfile* -docker-compose*.yaml diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 42bfe7af3..000000000 --- a/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -# top-most EditorConfig file -root = true - -# Unix-style newlines with a newline ending every file -[*] -end_of_line = lf -insert_final_newline = true - -# 2 space indentation -[{.,}*.{js,jsx,yml,yaml}] -indent_style = space -indent_size = 2 diff --git a/.env b/.env deleted file mode 100644 index 6ec7c6b6d..000000000 --- a/.env +++ /dev/null @@ -1,2 +0,0 @@ -# default values for docker-compose -PORT=4873 diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index c49398bd2..000000000 --- a/.eslintignore +++ /dev/null @@ -1,20 +0,0 @@ -node_modules -coverage/ -wiki/ -static/ -flow-typed/ -website/ -build/ -*.md -*.lock -*.yaml -Dockerfile -*.rpi -*.html -*.scss -*.png -*.jpg -*.sh -test/unit/partials/ -types/custom.d.ts -docker-examples/ diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index afbb0e594..000000000 --- a/.eslintrc +++ /dev/null @@ -1,102 +0,0 @@ -{ - "extends": [ - "eslint:recommended", - "google", - "plugin:react/recommended", - "plugin:jest/recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:import/typescript", - "plugin:jsx-a11y/recommended", - "prettier" - ], - "plugins": ["import", "jest", "jsx-a11y", "react-hooks"], - "env": { - "es6": true, - "node": true, - "jest": true - }, - "globals": { - "__APP_VERSION__": true - }, - "parserOptions": { - "allowImportExportEverywhere": true, - "sourceType": "module", - "ecmaVersion": 11, - "ecmaFeatures": { - "impliedStrict": true, - "jsx": true - } - }, - "settings": { - "import/resolver": { - "node": { - "extensions": [".js", ".jsx", ".ts", ".tsx"] - } - } - }, - "parser": "@typescript-eslint/parser", - "rules": { - "curly": ["error", "all"], - "react/prop-types": 0, - "jest/no-export": 0, - "jest/no-test-callback": 0, - "jest/expect-expect": 0, - "jest/no-try-expect": 0, - "jest/no-done-callback": "off", - "jest/no-conditional-expect": "off", - "keyword-spacing": "off", - "no-tabs": "off", - "no-useless-escape": "off", - "padded-blocks": "off", - "require-jsdoc": "off", - "valid-jsdoc": "off", - "import/order": ["error"], - "eol-last": "error", - "no-irregular-whitespace": "error", - "no-mixed-spaces-and-tabs": ["error", "smart-tabs"], - "no-trailing-spaces": "error", - "camelcase": "off", - "guard-for-in": "error", - "new-cap": "error", - "max-len": ["error", 180], - "no-console": ["error", { "allow": ["warn"] }], - "no-constant-condition": "error", - "no-debugger": "error", - "no-empty": "error", - "no-fallthrough": "error", - "no-invalid-this": "error", - "no-new-require": "error", - "no-undef": "error", - "no-unreachable": "error", - "no-var": "error", - "one-var": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - "handle-callback-err": 0, - "prefer-const": 0, - "@typescript-eslint/camelcase": 0, - "@typescript-eslint/ban-ts-ignore": 0, - "@typescript-eslint/no-var-requires": 0, - "@typescript-eslint/no-inferrable-types": 0, - "@typescript-eslint/no-empty-function": 0, - "@typescript-eslint/no-this-alias": 0, - "@typescript-eslint/no-use-before-define": 0, - "@typescript-eslint/array-type": ["error"], - "@typescript-eslint/no-explicit-any": 0, - "@typescript-eslint/indent": 0, - "@typescript-eslint/ban-ts-comment": 0, - "@typescript-eslint/ban-types": 0, - "@typescript-eslint/explicit-module-boundary-types": 0, - - // rules to fix - "no-unused-vars": ["warn", { "vars": "all", "args": "none" }], - "jest/no-identical-title": ["warn"], - "prefer-promise-reject-errors": ["warn"], - "jest/no-disabled-tests": ["warn"], - "jest/no-commented-out-tests": ["warn"], - "@typescript-eslint/prefer-optional-chain": ["warn"], - "@typescript-eslint/explicit-member-accessibility": ["warn"], - "@typescript-eslint/no-unused-vars": ["warn"] - } -} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 400d33bb6..000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -open_collective: verdaccio -github: verdaccio diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 6923d9bb0..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -name: Bug report 🐛 -about: A feature is not working as is expected, I want to report a bug -labels: 'issue: needs triage' -title: '' -assignees: '' ---- - -**Describe the bug** - - -**To Reproduce** - - -**Expected behavior** - - -**Screenshots** - - -**Configuration File (cat ~/.config/verdaccio/config.yaml)** - - - -**Environment information** - - -**Debugging output** - - `$ NODE_DEBUG=request verdaccio` display request calls (verdaccio <--> uplinks) - - `$ DEBUG=express:* verdaccio` enable extreme verdaccio debug mode (verdaccio api) - - `$ npm -ddd` prints: - - `$ npm config get registry` prints: - - - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 9f78ee92a..000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,14 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Question 🤷🏻‍♂️ - url: https://github.com/verdaccio/verdaccio/discussions/new?category=q-a - about: 🆕 Open a new Q&A discussion 🙏 - - name: Security Report 🛡 - url: https://github.com/verdaccio/verdaccio/security/policy - about: I want to report a security vulnerability - - name: Chat 🏘 - url: http://chat.verdaccio.org - about: For a quick question you should do it through our community chat - - name: User Interface Report 👩🏼‍🎨👨🏼‍🎨 - url: https://github.com/verdaccio/ui/issues/new/choose - about: Any report related with the User Interface should be posted in another repository diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md deleted file mode 100644 index 2d7c2f98e..000000000 --- a/.github/ISSUE_TEMPLATE/feature.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: "Feature Request \U0001F52E" -about: You want a feature request. -title: '' -labels: 'topic: feature request' -assignees: '' - ---- - - - -**Is your feature request related to a problem?** -Please describe a clear and concise description of what the problem is. E.g. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index efdf13be7..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,27 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - # Maintain dependencies for GitHub Actions - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - - # Maintain dependencies for npm - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "daily" - allow: - - dependency-name: "@verdaccio/*" - - dependency-name: "verdaccio-*" - assignees: - - "verdacciobot" - labels: - - "bot: dependencies" - diff --git a/.github/lock.yml b/.github/lock.yml deleted file mode 100644 index 30780ce20..000000000 --- a/.github/lock.yml +++ /dev/null @@ -1,35 +0,0 @@ -# Configuration for lock-threads - https://github.com/dessant/lock-threads - -# Number of days of inactivity before a closed issue or pull request is locked -daysUntilLock: 90 - -# Issues and pull requests with these labels will not be locked. Set to `[]` to disable -exemptLabels: [] - -# Label to add before locking, such as `outdated`. Set to `false` to disable -lockLabel: false - -# Comment to post before locking. Set to `false` to disable -lockComment: > - 🤖This thread has been automatically locked 🔒 since there has not been - any recent activity after it was closed. - - We lock tickets after 90 days with the idea to encourage you to open a ticket with new fresh data - and to provide you better feedback 🤝and better visibility 👀. - - If you consider, you can attach this ticket 📨 to the new one as a reference for better context. - - Thanks for being a part of the Verdaccio community! 💘 - -# Limit to only `issues` or `pulls` -# only: issues - -# Optionally, specify configuration settings just for `issues` or `pulls` -issues: - exemptLabels: - - help-wanted - lockLabel: outdated - -pulls: - daysUntilLock: 90 - lockLabel: outdated diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index d53a44644..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 15 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 10 -# Issues with these labels will never be considered stale -exemptLabels: - - dev: high priority - - topic: feature request - - issue: need verification - - issue: bug - - dev: discuss -# Label to use when marking an issue as stale -staleLabel: issue: wontfix -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - Hi pal 👋🏼! - - This issue has gone quiet 😶. - - We get a lot of issues, so we currently close issues after 25 days of inactivity. It’s been at least 15 days since the last update here. - If we missed this issue or if you want to keep it open, please reply here. You can also add/suggest the label "discuss" to keep this issue open! - As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out [https://github.com/verdaccio/contributing](https://github.com/verdaccio/contributing) for more information about opening PRs, triaging issues, and contributing! - - Thanks for being a part of the Verdaccio community! 💘 -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/.github/workflows/ci-e2e-ui.yml b/.github/workflows/ci-e2e-ui.yml deleted file mode 100644 index f2fcc8294..000000000 --- a/.github/workflows/ci-e2e-ui.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: E2E UI - -on: [pull_request] - -jobs: - ci: - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - node_version: [14] - - name: ${{ matrix.os }} / Node ${{ matrix.node_version }} - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v2.3.1 - - name: Use Node ${{ matrix.node_version }} - uses: actions/setup-node@v2.1.5 - with: - node-version: ${{ matrix.node_version }} - - name: Install - run: yarn install --immutable - - name: Build - run: yarn code:build - - name: Test UI - run: yarn run test:e2e diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 9bc18b07c..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: CI - -on: [push, pull_request] - -jobs: - ci: - name: Node ${{ matrix.node_version }} - - strategy: - fail-fast: false - matrix: - node_version: [10] - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2.3.3 - - name: Use Node ${{ matrix.node_version }} - uses: actions/setup-node@v2.1.5 - with: - node-version: ${{ matrix.node_version }} - - name: Install - run: yarn install --immutable - - name: Build - run: yarn code:build - - name: Lint - run: yarn lint - - name: Test - run: yarn test diff --git a/.github/workflows/docker-publish-pre-check.yml b/.github/workflows/docker-publish-pre-check.yml deleted file mode 100644 index a42ece31d..000000000 --- a/.github/workflows/docker-publish-pre-check.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Docker & Publish Pre-check - -on: [push, pull_request] - -jobs: - testDocker: - name: Test Docker Build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.3.3 - - name: Build - run: docker build . - env: - VERDACCIO_BUILD_REGISTRY: https://registry.verdaccio.org - - testVerdaccio: - name: Test Verdaccio Publish - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.3.3 - - name: Publish - uses: verdaccio/github-actions/publish@v0.4.0 - with: - args: -d diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml deleted file mode 100644 index 82f468532..000000000 --- a/.github/workflows/docker-publish.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Docker publish to docker.io - -on: - push: - paths: - - .github/workflows/docker-publish.yml - - 'src/**' - - 'conf/**' - - 'types/**' - - 'docker-bin/**' - - 'bin/**' - - 'package.json' - - 'yarn.lock' - branches: - - '**' - tags: - - 'v*' - -jobs: - docker: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 - with: - driver-opts: network=host - - uses: docker/login-action@v1 - name: Login Docker Hub - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - name: Prepare docker image tags - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 - with: - images: ${{ github.repository }} - tag-custom: 4.x-next - tag-custom-only: ${{ github.ref == 'refs/heads/4.x' }} - tag-latest: false - tag-semver: | - {{version}} - {{major}} - {{major}}.{{minor}} - - name: Build & Push - uses: docker/build-push-action@v2 - with: - context: . - file: ./Dockerfile - platforms: linux/amd64,linux/arm64 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} diff --git a/.github/workflows/registry.yml b/.github/workflows/registry.yml deleted file mode 100644 index de1862c16..000000000 --- a/.github/workflows/registry.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Test local registry for js vulnerabilities - -on: [push] -jobs: - security: - runs-on: ubuntu-latest - steps: - - name: Test for public javascript library vulnerabilities - uses: lirantal/is-website-vulnerable@1.15.10 - with: - scan-url: "https://registry.verdaccio.org" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index f520fe1c6..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Release - -on: - push: - tags: - - '*' - -jobs: - release: - name: Release - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.3.3 - - name: Use Node (latest) - uses: actions/setup-node@v2.1.5 - with: - node-version: 14 - - name: Install - run: yarn install - - name: Build - run: yarn code:build - - name: Lint - run: yarn lint - - name: Publish - run: sh scripts/publish.sh - env: - REGISTRY_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }} - REGISTRY_URL: registry.npmjs.org - - name: Create release notes - run: sh scripts/github-release.sh - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 977ed83b2..000000000 --- a/.gitignore +++ /dev/null @@ -1,45 +0,0 @@ -npm-debug.log -verdaccio-*.tgz -.DS_Store -build/ - -### Test - -test/unit/partials/store/test-*-storage/* -test/unit/partials/store/*-storage/* -test/unit/partials/store/storage_default_storage/* -.verdaccio-db.json -.sinopia-db.json - -### -!bin/verdaccio -test-storage* -access-storage* -.verdaccio_test_env -node_modules -package-lock.json -npm_test-fails-add-tarball* -yarn-error.log - -# Istanbul -reports/ -coverage/ -.nyc* - -.idea/ - - -# React -bundle.js -bundle.js.map -__tests__ - -# Compiled script -static/* - -# This is the Yarn build state; it's local to each clone -/.yarn/build-state.yml - -# This is the Yarn install state cache, it can be rebuilt anytime -/.yarn/install-state.gz -.history diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 09d72ba13..000000000 --- a/.npmignore +++ /dev/null @@ -1,42 +0,0 @@ - -## npm -npm-debug.log -yarn-error.log -node_modules -verdaccio-*.tgz -docker-compose.yaml -Dockerfile -crowdin.yaml -scripts/ -src/ -/.* -.vscode/ -.circleci/ -debug/ - - -## assets and website -assets/ - -## docs -docs/ -wiki/ - -## flow -flow-typed/ -types/ - -# jest -coverage/ -test-storage* -test/ -__mocks__/ -jestEnvironment.js -test/jest.e2e.config.js -test/jest.config.functional.js -jest.config.js - -# misc -contrib/ -storage_default_storage/ -docker-bin/ diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 25bc24754..000000000 --- a/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -always-auth = true -fetch-retries="10" diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index b1bd38b62..000000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -13 diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 1b52c9e67..000000000 --- a/.prettierignore +++ /dev/null @@ -1,31 +0,0 @@ -.cache/ -**/corrupted-package/package.json -**/corrupted.json -**/invalid.js -**/invalid.json -**/pnpm-lock.yaml -**/verdaccio-corrupted.db.json -**/wrong.package.json -/website/.cache/ -/website/crowdin/ -/website/public/ -/website/src/dictionaries/ -CHANGELOG.md -CONTRIBUTORS.md -node_modules/ -**/coverage/** -**/build/*.js -test/unit/partials/* -build/* -.github/ -.vscode/ -wiki/ -.yarnrc.yml -yarn-error.log -.yarn/ -test/functional/store/* -storage_default_storage/* -docker-examples/ -.prettierignore -*.sh -.secrets-baseline diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 96e3b8fbd..000000000 --- a/.prettierrc.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "endOfLine": "lf", - "useTabs": false, - "printWidth": 180, - "tabWidth": 2, - "singleQuote": true, - "bracketSpacing": true, - "jsxBracketSameLine": true, - "trailingComma": "es5", - "semi": true -} diff --git a/.secrets-baseline b/.secrets-baseline deleted file mode 100644 index a3cc8053f..000000000 --- a/.secrets-baseline +++ /dev/null @@ -1,4141 +0,0 @@ -{ - "generated_at": "2020-10-08T19:53:38Z", - "plugins_used": [ - { - "name": "AWSKeyDetector" - }, - { - "name": "Base64HighEntropyString", - "limit": 4.5 - }, - { - "name": "BasicAuthDetector" - }, - { - "name": "HexHighEntropyString", - "limit": 3 - }, - { - "keyword_exclude": null, - "name": "KeywordDetector" - }, - { - "name": "PrivateKeyDetector" - }, - { - "name": "SlackDetector" - } - ], - "results": { - "package.json": [ - { - "type": "Secret Keyword", - "filename": "package.json", - "hashed_secret": "f7ca6a21d278eb5ce64611aadbdb77ef1511d3dd", - "is_verified": false, - "line_number": 49 - } - ], - "src/lib/auth-utils.ts": [ - { - "type": "Secret Keyword", - "filename": "src/lib/auth-utils.ts", - "hashed_secret": "6947818ac409551f11fbaa78f0ea6391960aa5b8", - "is_verified": false, - "line_number": 10 - }, - { - "type": "Secret Keyword", - "filename": "src/lib/auth-utils.ts", - "hashed_secret": "ecb252044b5ea0f679ee78ec1a12904739e2904d", - "is_verified": false, - "line_number": 174 - }, - { - "type": "Secret Keyword", - "filename": "src/lib/auth-utils.ts", - "hashed_secret": "f35dd4c51c0a89bd055b5ad30c162c778981306d", - "is_verified": false, - "line_number": 179 - }, - { - "type": "Secret Keyword", - "filename": "src/lib/auth-utils.ts", - "hashed_secret": "45c43fe97e3a06ab078b0eeff6fbe622cc417a25", - "is_verified": false, - "line_number": 197 - } - ], - "src/lib/auth.ts": [ - { - "type": "Secret Keyword", - "filename": "src/lib/auth.ts", - "hashed_secret": "6981afa9890d125c05133d13053201f32292ec9f", - "is_verified": false, - "line_number": 38 - } - ], - "src/lib/config.ts": [ - { - "type": "Secret Keyword", - "filename": "src/lib/config.ts", - "hashed_secret": "3812d6abc055424d0556b35f48774c7b0044eac2", - "is_verified": false, - "line_number": 24 - }, - { - "type": "Secret Keyword", - "filename": "src/lib/config.ts", - "hashed_secret": "45c43fe97e3a06ab078b0eeff6fbe622cc417a25", - "is_verified": false, - "line_number": 100 - }, - { - "type": "Secret Keyword", - "filename": "src/lib/config.ts", - "hashed_secret": "cbfe12c3dd5ecd14ad3f4ce85deb0ca2ee11b0c1", - "is_verified": false, - "line_number": 102 - } - ], - "src/lib/constants.ts": [ - { - "type": "Secret Keyword", - "filename": "src/lib/constants.ts", - "hashed_secret": "f34fbc9a9769ba9eff5aff3d008a6b49f85c08b1", - "is_verified": false, - "line_number": 14 - }, - { - "type": "Secret Keyword", - "filename": "src/lib/constants.ts", - "hashed_secret": "b9343f1143ccb83555b450eb54dde96a05522ccc", - "is_verified": false, - "line_number": 118 - } - ], - "src/lib/crypto-utils.ts": [ - { - "type": "Secret Keyword", - "filename": "src/lib/crypto-utils.ts", - "hashed_secret": "45c43fe97e3a06ab078b0eeff6fbe622cc417a25", - "is_verified": false, - "line_number": 14 - }, - { - "type": "Secret Keyword", - "filename": "src/lib/crypto-utils.ts", - "hashed_secret": "f35dd4c51c0a89bd055b5ad30c162c778981306d", - "is_verified": false, - "line_number": 23 - } - ], - "test/e2e/config/config-protected-e2e.yaml": [ - { - "type": "Secret Keyword", - "filename": "test/e2e/config/config-protected-e2e.yaml", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 14 - } - ], - "test/e2e/config/config-scoped-e2e.yaml": [ - { - "type": "Secret Keyword", - "filename": "test/e2e/config/config-scoped-e2e.yaml", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 14 - } - ], - "test/e2e/partials/pkg-protected.js": [ - { - "type": "Hex High Entropy String", - "filename": "test/e2e/partials/pkg-protected.js", - "hashed_secret": "bb1e9de8a2e550ca43c48d5d1d5b326f32d910b3", - "is_verified": false, - "line_number": 38 - } - ], - "test/e2e/partials/pkg-scoped.js": [ - { - "type": "Hex High Entropy String", - "filename": "test/e2e/partials/pkg-scoped.js", - "hashed_secret": "bb1e9de8a2e550ca43c48d5d1d5b326f32d910b3", - "is_verified": false, - "line_number": 38 - } - ], - "test/flow/plugins/storage/example.storage.plugin.js": [ - { - "type": "Secret Keyword", - "filename": "test/flow/plugins/storage/example.storage.plugin.js", - "hashed_secret": "45c43fe97e3a06ab078b0eeff6fbe622cc417a25", - "is_verified": false, - "line_number": 87 - } - ], - "test/functional/config.functional.js": [ - { - "type": "Secret Keyword", - "filename": "test/functional/config.functional.js", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 5 - } - ], - "test/functional/fixtures/publish.json5": [ - { - "type": "Hex High Entropy String", - "filename": "test/functional/fixtures/publish.json5", - "hashed_secret": "613e6330611a94739969e967da203142c1fa0410", - "is_verified": false, - "line_number": 15 - }, - { - "type": "Base64 High Entropy String", - "filename": "test/functional/fixtures/publish.json5", - "hashed_secret": "cd7c17a6aa4cfbb110f338f4cda3d48ad43fc54f", - "is_verified": false, - "line_number": 26 - } - ], - "test/functional/package/scoped.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/functional/package/scoped.json", - "hashed_secret": "82b18548f2a3b1688532a07c86bd5f2b985323c2", - "is_verified": false, - "line_number": 29 - } - ], - "test/functional/package/scoped.ts": [ - { - "type": "Hex High Entropy String", - "filename": "test/functional/package/scoped.ts", - "hashed_secret": "82b18548f2a3b1688532a07c86bd5f2b985323c2", - "is_verified": false, - "line_number": 31 - } - ], - "test/functional/plugins/auth.ts": [ - { - "type": "Secret Keyword", - "filename": "test/functional/plugins/auth.ts", - "hashed_secret": "308a9501a3165af904851c4337026699a0e2237d", - "is_verified": false, - "line_number": 7 - }, - { - "type": "Secret Keyword", - "filename": "test/functional/plugins/auth.ts", - "hashed_secret": "fd10d1442fd328ec4a5ed255b2c503614b69cbff", - "is_verified": false, - "line_number": 8 - } - ], - "test/functional/readme/pkg-no-readme.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/functional/readme/pkg-no-readme.json", - "hashed_secret": "917ca74222fc0e454cb90fd256f5f35428457d8f", - "is_verified": false, - "line_number": 26 - } - ], - "test/functional/readme/pkg-readme.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/functional/readme/pkg-readme.json", - "hashed_secret": "917ca74222fc0e454cb90fd256f5f35428457d8f", - "is_verified": false, - "line_number": 26 - } - ], - "test/functional/search/search.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/functional/search/search.json", - "hashed_secret": "917ca74222fc0e454cb90fd256f5f35428457d8f", - "is_verified": false, - "line_number": 26 - } - ], - "test/functional/store/config-1.yaml": [ - { - "type": "Secret Keyword", - "filename": "test/functional/store/config-1.yaml", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 18 - } - ], - "test/functional/store/config-2.yaml": [ - { - "type": "Secret Keyword", - "filename": "test/functional/store/config-2.yaml", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 25 - }, - { - "type": "Secret Keyword", - "filename": "test/functional/store/config-2.yaml", - "hashed_secret": "308a9501a3165af904851c4337026699a0e2237d", - "is_verified": false, - "line_number": 31 - } - ], - "test/functional/store/config-3.yaml": [ - { - "type": "Secret Keyword", - "filename": "test/functional/store/config-3.yaml", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 19 - } - ], - "test/functional/tags/dist-tags-merge.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/functional/tags/dist-tags-merge.json", - "hashed_secret": "917ca74222fc0e454cb90fd256f5f35428457d8f", - "is_verified": false, - "line_number": 26 - } - ], - "test/lib/server.ts": [ - { - "type": "Secret Keyword", - "filename": "test/lib/server.ts", - "hashed_secret": "f35dd4c51c0a89bd055b5ad30c162c778981306d", - "is_verified": false, - "line_number": 42 - } - ], - "test/lib/utils-test.ts": [ - { - "type": "Hex High Entropy String", - "filename": "test/lib/utils-test.ts", - "hashed_secret": "2b835c700ce2c4237a61972df6ec27fba872e256", - "is_verified": false, - "line_number": 8 - } - ], - "test/types/index.ts": [ - { - "type": "Secret Keyword", - "filename": "test/types/index.ts", - "hashed_secret": "45c43fe97e3a06ab078b0eeff6fbe622cc417a25", - "is_verified": false, - "line_number": 37 - } - ], - "test/unit/modules/api/api.spec.ts": [ - { - "type": "Secret Keyword", - "filename": "test/unit/modules/api/api.spec.ts", - "hashed_secret": "97752a468368b0d6b192140d6a140c38fd0cbd8b", - "is_verified": false, - "line_number": 320 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/api/api.spec.ts", - "hashed_secret": "364bdf2ed77a8544d3b711a03b69eeadcc63c9d7", - "is_verified": false, - "line_number": 997 - } - ], - "test/unit/modules/auth/auth-utils.spec.ts": [ - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/auth-utils.spec.ts", - "hashed_secret": "f35dd4c51c0a89bd055b5ad30c162c778981306d", - "is_verified": false, - "line_number": 32 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/auth-utils.spec.ts", - "hashed_secret": "cbfe12c3dd5ecd14ad3f4ce85deb0ca2ee11b0c1", - "is_verified": false, - "line_number": 35 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/auth-utils.spec.ts", - "hashed_secret": "8cb2237d0679ca88db6464eac60da96345513964", - "is_verified": false, - "line_number": 45 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/auth-utils.spec.ts", - "hashed_secret": "e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4", - "is_verified": false, - "line_number": 235 - } - ], - "test/unit/modules/auth/jwt.spec.ts": [ - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/jwt.spec.ts", - "hashed_secret": "364bdf2ed77a8544d3b711a03b69eeadcc63c9d7", - "is_verified": false, - "line_number": 121 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/jwt.spec.ts", - "hashed_secret": "eaacdf2d9ed66df2601c8b51ab4084db14336d11", - "is_verified": false, - "line_number": 132 - } - ], - "test/unit/modules/auth/profile.spec.ts": [ - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/profile.spec.ts", - "hashed_secret": "364bdf2ed77a8544d3b711a03b69eeadcc63c9d7", - "is_verified": false, - "line_number": 51 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/profile.spec.ts", - "hashed_secret": "dfb2f12ac9b2dd601f34da1b31b24228ce60577c", - "is_verified": false, - "line_number": 62 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/profile.spec.ts", - "hashed_secret": "ada3d2a3b5dafb531df9be3cf35cedf18ed79512", - "is_verified": false, - "line_number": 78 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/auth/profile.spec.ts", - "hashed_secret": "195a8aef5c5b2397fdbf5fb429a517b089745309", - "is_verified": false, - "line_number": 97 - } - ], - "test/unit/modules/utils/api.__test.template.ts": [ - { - "type": "Secret Keyword", - "filename": "test/unit/modules/utils/api.__test.template.ts", - "hashed_secret": "364bdf2ed77a8544d3b711a03b69eeadcc63c9d7", - "is_verified": false, - "line_number": 80 - } - ], - "test/unit/modules/web/api.web.spec.ts": [ - { - "type": "Secret Keyword", - "filename": "test/unit/modules/web/api.web.spec.ts", - "hashed_secret": "364bdf2ed77a8544d3b711a03b69eeadcc63c9d7", - "is_verified": false, - "line_number": 17 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/modules/web/api.web.spec.ts", - "hashed_secret": "fed915afaba64ebcdfeb805d59ea09a33275c423", - "is_verified": false, - "line_number": 205 - } - ], - "test/unit/partials/changePackage/metadata-change": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/changePackage/metadata-change", - "hashed_secret": "9e480aca65f4e4537d4d0f8e167a9d8434fa533e", - "is_verified": false, - "line_number": 31 - } - ], - "test/unit/partials/config-unit-mock-server-test.yaml": [ - { - "type": "Secret Keyword", - "filename": "test/unit/partials/config-unit-mock-server-test.yaml", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 12 - } - ], - "test/unit/partials/config/yaml/api.spec/web-config.yaml": [ - { - "type": "Secret Keyword", - "filename": "test/unit/partials/config/yaml/api.spec/web-config.yaml", - "hashed_secret": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", - "is_verified": false, - "line_number": 10 - } - ], - "test/unit/partials/forbidden-place.js": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/forbidden-place.js", - "hashed_secret": "bb1e9de8a2e550ca43c48d5d1d5b326f32d910b3", - "is_verified": false, - "line_number": 38 - } - ], - "test/unit/partials/metadata": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/metadata", - "hashed_secret": "9e480aca65f4e4537d4d0f8e167a9d8434fa533e", - "is_verified": false, - "line_number": 37 - } - ], - "test/unit/partials/metadata-update-versions-tags": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/metadata-update-versions-tags", - "hashed_secret": "2b835c700ce2c4237a61972df6ec27fba872e256", - "is_verified": false, - "line_number": 75 - } - ], - "test/unit/partials/mock-store/.sinopia-db.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/.sinopia-db.json", - "hashed_secret": "09c8822b725f70ba161538dcbc7dba80ce56e118", - "is_verified": false, - "line_number": 1 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/partials/mock-store/.sinopia-db.json", - "hashed_secret": "09c8822b725f70ba161538dcbc7dba80ce56e118", - "is_verified": false, - "line_number": 1 - } - ], - "test/unit/partials/mock-store/@jquery/jquery/package.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/@jquery/jquery/package.json", - "hashed_secret": "4aea94eff4db5260be13575ff054dcbf34b2c49e", - "is_verified": false, - "line_number": 71 - } - ], - "test/unit/partials/mock-store/jquery/package.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "12f5ec39f703cfec2b9f3dfc6f92709801190878", - "is_verified": false, - "line_number": 1605 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "d6e93f4f2a7f5262cddd05e1fcb9e4699506c371", - "is_verified": false, - "line_number": 1691 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "5ec8124fef4857ef7e67e950ef9ff9256089e57e", - "is_verified": false, - "line_number": 1777 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "e6e604529181a622f17bde06354aeac4b23eecab", - "is_verified": false, - "line_number": 1864 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "1c612c613f4fc56d020d10de4dfcb08315605711", - "is_verified": false, - "line_number": 1952 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "60cd035bd378650b928a87c3012fb44298d1db4d", - "is_verified": false, - "line_number": 2039 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "756050243bc41f66b8849c1405cf25750452469a", - "is_verified": false, - "line_number": 2159 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "fabb53a7113d53d6bdb85834d3a5863bbcf0546e", - "is_verified": false, - "line_number": 2277 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "e9b9a61f7066665c0bf9406026e7251cf24e1167", - "is_verified": false, - "line_number": 2394 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "51f443cb104348b06693a2ceae9b3b6b0f0bc988", - "is_verified": false, - "line_number": 2514 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "cc886b9d9194219bf45e2a57ce901b6441b90e93", - "is_verified": false, - "line_number": 2632 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "12dcae33c76402c63c7cc9c3f55a4bc8a15c5441", - "is_verified": false, - "line_number": 2753 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "9f4cf81463bbed847ba98c3d4cd63a68955d0318", - "is_verified": false, - "line_number": 2875 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "1ef0f56a4b48d9bdd349427a454430acd30d964d", - "is_verified": false, - "line_number": 2996 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "ebbb561a4e0e40d75ad42f5dcf36f84b3a90f90c", - "is_verified": false, - "line_number": 3118 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "2844ff8c916a819de09ee9e9d2997b6207d78e0d", - "is_verified": false, - "line_number": 3239 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "7b3c2f5ea234578a56b08246c53a0196393c25f2", - "is_verified": false, - "line_number": 3361 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "6a94d790cc1f9f006a05dd1348ff1b2d8e5576a2", - "is_verified": false, - "line_number": 3482 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "ec4b15fc38d7cc8d669697e29dbe8ef4203e8c93", - "is_verified": false, - "line_number": 3612 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "50a97a2367d0387292070c477937e4b85440e8e1", - "is_verified": false, - "line_number": 3742 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "03b31e9c1bff9d9f8d034d853e787c5f87f40c86", - "is_verified": false, - "line_number": 3872 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "295db900f3f674513ad68d11fd131abf6f44d14e", - "is_verified": false, - "line_number": 4006 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "45853e82542b0a926fd4394ed62d50696a3d295f", - "is_verified": false, - "line_number": 4140 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "c19b88ea85b14a2e4a0e1c7c60dca5934d1ce004", - "is_verified": false, - "line_number": 4274 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "d684acaf2f81ff01b18f754165b785ada897e262", - "is_verified": false, - "line_number": 4424 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "1ad0e3e1b751ed9b59cae743c339ae3afaf34445", - "is_verified": false, - "line_number": 4568 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "f86d93e137b95f29b4d30b6223dd6cb5ad9dddc5", - "is_verified": false, - "line_number": 4678 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "e2245d96b6255b1b20f0abac68f2acd4dd5d7e03", - "is_verified": false, - "line_number": 4683 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "4edbbce314e350fb052da6cfb2a17fe59327f17a", - "is_verified": false, - "line_number": 4688 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "628e390bbc307c25aa3bdb821cbdada61a1211a9", - "is_verified": false, - "line_number": 4693 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "d70e01efc976b430dfdc1b771582e04f1da1a99f", - "is_verified": false, - "line_number": 4698 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "56dbab03670ad43084947fcde83d984d975ca676", - "is_verified": false, - "line_number": 4703 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "ffdc2f843db42af57a28c2d13ded68edc5a1e664", - "is_verified": false, - "line_number": 4708 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "ca3370505cf3a7c765557d277e21822541122df5", - "is_verified": false, - "line_number": 4713 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "2b6bc01270161cae918446d701fd1907ca1bd78e", - "is_verified": false, - "line_number": 4718 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "171dc815497be5ee7e19d5333bf286338aec746b", - "is_verified": false, - "line_number": 4723 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "0264de7a1ede50efdede0540f5f37c4472b97c25", - "is_verified": false, - "line_number": 4728 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "1c05fca6c365802751065bd7b6028b99f01bba46", - "is_verified": false, - "line_number": 4733 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "bf35928ccbe8ef0b9232222ff8c11e67d80175d4", - "is_verified": false, - "line_number": 4738 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "60d3600aeea34713c8cf256b02301f4c11b4b28e", - "is_verified": false, - "line_number": 4743 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "223d868a6772e815ca495c919d10a189ddd72d13", - "is_verified": false, - "line_number": 4748 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "841b6c41aba85f71f2759f23df267d80ebffec13", - "is_verified": false, - "line_number": 4753 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "542179051a05e40d0e92a3b371f91e6a5ec8ea07", - "is_verified": false, - "line_number": 4758 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "d6b04379f93fea727e62590f85f298d62ce95540", - "is_verified": false, - "line_number": 4763 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "9ab8fc8ace0dc4e4e30e8f460965650ed24d5eb8", - "is_verified": false, - "line_number": 4768 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "2720e10666addd2e3f911f0ecde17fa4a90d3535", - "is_verified": false, - "line_number": 4773 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "9d38788a7bb0b997450c966dec291c2334fa7e3f", - "is_verified": false, - "line_number": 4778 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "cdde22827bcada9f58be89b00989aa7a768d887c", - "is_verified": false, - "line_number": 4783 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "814fdd2bc07b43562fb3e7acd1d1a62df3e0db81", - "is_verified": false, - "line_number": 4788 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "2c9870def403a05beeacbecd9ff2ab066303cbf2", - "is_verified": false, - "line_number": 4793 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "2ec11faac1a352cde4bde69ddb8ea21f4c1b6259", - "is_verified": false, - "line_number": 4798 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "ae9a3b228a83b703bd5a2602aee5ae9776b1ffbf", - "is_verified": false, - "line_number": 4803 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "32603cdaf81341cba0a0d977b9dfee16132a1d2f", - "is_verified": false, - "line_number": 4808 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "da1c5b34f0883182f4282767e9ccdaadb980421a", - "is_verified": false, - "line_number": 4813 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "2b9a66a8b22f7e95d8a4e1e0ef1c9ee30ce6421c", - "is_verified": false, - "line_number": 4818 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "94b7a974a02b1168a28b95e92da1447077f1b996", - "is_verified": false, - "line_number": 4823 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "849ae1c2ea50af11e94ff473f812c1f82becebfb", - "is_verified": false, - "line_number": 4828 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "ec7977b8f77e83c77cc137a4436e0e5e79fe34ea", - "is_verified": false, - "line_number": 4833 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "cf3d4e1a3f4aaa4687e41683babc36f8639c4bf5", - "is_verified": false, - "line_number": 4838 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "44848b240348c650af3399490e5c2ac3b36a765e", - "is_verified": false, - "line_number": 4843 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "f1c5a5e3d19843b32f91c1518c1dae9fc2e0e9db", - "is_verified": false, - "line_number": 4848 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "2bd644902bf5885f248959336e7407273390006b", - "is_verified": false, - "line_number": 4853 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "15eca3766b4ebc371ad2d053030cdf967ad39b92", - "is_verified": false, - "line_number": 4858 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "412d8e038e85f6aa88a8b6dd24233b6220c4f987", - "is_verified": false, - "line_number": 4863 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "6c58ff353010cca6869f2cf7a592ee1dd41016f5", - "is_verified": false, - "line_number": 4868 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "126d348966312a786eac0532a741670655e2d942", - "is_verified": false, - "line_number": 4873 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "43aa6fd10a36f5d459f0e1714d6ce6ff540bf6ff", - "is_verified": false, - "line_number": 4878 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "499fc08e5830091c5d4413f372abcfcecbee890f", - "is_verified": false, - "line_number": 4883 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "b67adfc6051a335ee2ce2c7627056694a99f47cf", - "is_verified": false, - "line_number": 4888 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "e5a2cab7418711e509e4d633785a3c9b70a07704", - "is_verified": false, - "line_number": 4893 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "35dc98119cf820de3c644a35ad4117044f0ed7fe", - "is_verified": false, - "line_number": 4898 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "08a5b5d54ecdfeef23ee18864a84cb9bc3380bdd", - "is_verified": false, - "line_number": 4903 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "ff47d71b5499d658ee465f04069793d8d1bb1549", - "is_verified": false, - "line_number": 4908 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/jquery/package.json", - "hashed_secret": "4aea94eff4db5260be13575ff054dcbf34b2c49e", - "is_verified": false, - "line_number": 4914 - } - ], - "test/unit/partials/mock-store/npm_test/package.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/npm_test/package.json", - "hashed_secret": "9e480aca65f4e4537d4d0f8e167a9d8434fa533e", - "is_verified": false, - "line_number": 37 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/npm_test/package.json", - "hashed_secret": "5d181739c5292cfc12a5e8aab688c4a2a32d1482", - "is_verified": false, - "line_number": 69 - } - ], - "test/unit/partials/mock-store/vue/package.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e0eaf3abd900bdf1cda36b0a5857143c4855860c", - "is_verified": false, - "line_number": 1995 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9e7de90bc3ef2809f4f109d49ad9fa6266c54fd4", - "is_verified": false, - "line_number": 2063 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8ec069a602a24d009d42bc681a566803382a09a7", - "is_verified": false, - "line_number": 2131 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "6f72ed240ba5b462ee0514bb1307397cb4f13f55", - "is_verified": false, - "line_number": 2199 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9695cb862bea44cab130ae207b9d66ccf01589e1", - "is_verified": false, - "line_number": 2267 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7d4defde1ed7100dd8da22aeea94690f3523c1e9", - "is_verified": false, - "line_number": 2335 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dd657a287b21b7cddfcc326263b5e653ba862592", - "is_verified": false, - "line_number": 2403 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c42c284472347a5cda732802d6bf2a0b48e0991c", - "is_verified": false, - "line_number": 2471 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "da1dbf61715a441677aa17477f0e718ab02f37ac", - "is_verified": false, - "line_number": 2539 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7c69483709857703177ffedff75051e6b3d75328", - "is_verified": false, - "line_number": 2608 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "69b469db0e0fa8483b2997ca34af9485fe965eac", - "is_verified": false, - "line_number": 2677 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f7528b4072c7d6039b11cf60f309b28a9c959304", - "is_verified": false, - "line_number": 2746 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1e7e317c15c4adefe22b36f69b7a085f2b45cd1d", - "is_verified": false, - "line_number": 2815 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8d19ccf4782eed3df072ce54f8702753c80db2ac", - "is_verified": false, - "line_number": 2884 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f4e6ab4a9e51bff390239cf98aa23854ae497459", - "is_verified": false, - "line_number": 2953 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "57d5a0b464a3416b720758a2d6ed4a1da2ab8a18", - "is_verified": false, - "line_number": 3022 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9ea59135ccccf3c26aa1a8cf1933f4fd9d59ece1", - "is_verified": false, - "line_number": 3091 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "33e9da6e163f8ce5457c2e0de4e6a249300a8ab6", - "is_verified": false, - "line_number": 3161 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d7850a727da8751bd69b44843fafd2f4346a8dc8", - "is_verified": false, - "line_number": 3231 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8c3932ff41adee5eaf4c21c937fb997f50511d17", - "is_verified": false, - "line_number": 3301 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "29b97496c1963547e61a4f8c4cfbe73d384d1a8c", - "is_verified": false, - "line_number": 3371 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5a5f3da46e5974bbfe8a9aac5f83a94f43edaf47", - "is_verified": false, - "line_number": 3444 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7a20d7b741e1719da985026250790fbf037a04b7", - "is_verified": false, - "line_number": 3514 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8cb82e3c78f29aa0d9de6b85a91df947cb4c2dd4", - "is_verified": false, - "line_number": 3587 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "395c74844d07bd01d3b4ddb2f2a55cc7da4b371f", - "is_verified": false, - "line_number": 3660 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e80545b32ab5001b68fb3c505d667f03987240be", - "is_verified": false, - "line_number": 3733 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c255de610c068bbbf49b765695f281e6711fae53", - "is_verified": false, - "line_number": 3804 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e9c79d661812151ca9dc8b08734e30d01b73c2fd", - "is_verified": false, - "line_number": 3875 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "2b137cf34a891c95aa54a96ecc4f2b7821269d4b", - "is_verified": false, - "line_number": 3946 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a0fea7acac9225b26797085491eb6ce0115bea0a", - "is_verified": false, - "line_number": 4016 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "25663da60e2c33927e417d5f61d586cb5622a03b", - "is_verified": false, - "line_number": 4089 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e51a1f742f4a0ce6e32ac998cb4e33eaf4264a86", - "is_verified": false, - "line_number": 4159 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "df49736ee32fef3b76be4296dfef0a64d86d9543", - "is_verified": false, - "line_number": 4232 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "93a5f8c5f49f29231e4a6b6a70c645ee8c122f84", - "is_verified": false, - "line_number": 4302 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "3a2b6b9ef4008e02ac6c2780ca12707506574af7", - "is_verified": false, - "line_number": 4372 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e282b2f26ae9b92056e7c6dae2150139c83f330e", - "is_verified": false, - "line_number": 4450 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7618d0dec6ed8d16b66c0a51232218e2f4d3f2ef", - "is_verified": false, - "line_number": 4528 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fe319ba807106b8661efb89cfbb7e0d7c58ae37e", - "is_verified": false, - "line_number": 4606 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "212e8cad4f783b2abd8cdb4bfd0f817f629e8ed5", - "is_verified": false, - "line_number": 4684 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "281c157aedc3c9a789fab8c5f23b0db7c861d183", - "is_verified": false, - "line_number": 4763 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "02f75f6990e8733fe2292d145c35d517e0156ab2", - "is_verified": false, - "line_number": 4842 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4e43520dcc07069891802f3cb92cd6a1769d9efa", - "is_verified": false, - "line_number": 4922 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "545f91bbb948a34a16f5d990bd33418ddda7e513", - "is_verified": false, - "line_number": 5003 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "699033973e5f39dfd1b4d15a4b8742f9e52d735f", - "is_verified": false, - "line_number": 5083 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c43bd7d0509e4f5a7be8fa3f65113506bad88e88", - "is_verified": false, - "line_number": 5164 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1afc31b9ee4a11d1f59c2477f162c87c42d71bef", - "is_verified": false, - "line_number": 5244 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "31836e026392d39b0dc9fdbe4d5573a9586bde65", - "is_verified": false, - "line_number": 5324 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c5e325ff79e0ea26f62389e30b8f63bbe08319e2", - "is_verified": false, - "line_number": 5404 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1a61b7bdea9782292b3c447e42d691adf64a754e", - "is_verified": false, - "line_number": 5485 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "08fe4ef64b047833f0352baa980e397a74bf993a", - "is_verified": false, - "line_number": 5565 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0557b6b1a60f151b59db2ca90c536ba3d8a2fff2", - "is_verified": false, - "line_number": 5645 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8eb310289006377ee28b3deadb9ae649d8fa9100", - "is_verified": false, - "line_number": 5726 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8fbe9115d170167efb4cfa59f87077abc0922e99", - "is_verified": false, - "line_number": 5806 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f5dc64ba01974dbc9bd902679cabd603f0f6e2ce", - "is_verified": false, - "line_number": 5886 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a701b9449a4483ef942eef87831b144445dda022", - "is_verified": false, - "line_number": 5967 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "6560b2db9f1114a3c4d7cf6eede13a1716d41edd", - "is_verified": false, - "line_number": 6047 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7f98fc2f4b0b02e82fe9801ff75abb735a309332", - "is_verified": false, - "line_number": 6127 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c2ddd56f79902dd45273f393fd050ab1d309ad14", - "is_verified": false, - "line_number": 6207 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "25da890af37d80fdd00f39841f7181d5da94f7e0", - "is_verified": false, - "line_number": 6288 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "acc6fde8ceca1f1cf2a832e66ba9d6041aa7c4ae", - "is_verified": false, - "line_number": 6368 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9c067bb0c3bcb0917ef88f12d356ec843c9c454d", - "is_verified": false, - "line_number": 6449 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9699eb8a236c872b0736b9da492dc582b94dc63b", - "is_verified": false, - "line_number": 6529 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0d379f317384a32849373708d8ae82eede3995a0", - "is_verified": false, - "line_number": 6610 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c37e00d57f373bff17f6f107164df7595c2aed02", - "is_verified": false, - "line_number": 6690 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bd4f218bbdb89431603b1ebcdecb87ca594ebbea", - "is_verified": false, - "line_number": 6771 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "60ed333aa4b3308cb72773b6cde1d4568210e458", - "is_verified": false, - "line_number": 6852 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "671b08d2279cf2de6352979ebc5fc30a7fbdd430", - "is_verified": false, - "line_number": 6932 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e389871a32529c08f632b911110279c3b702aae2", - "is_verified": false, - "line_number": 7013 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "165f02f4af5da8e52c9b1262b8c22e9e62280ee7", - "is_verified": false, - "line_number": 7095 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e4bac868e25e2b395246f6be2656e8e8d6dd388e", - "is_verified": false, - "line_number": 7175 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "3b0ec27803331293867c33a414ee08005e078d26", - "is_verified": false, - "line_number": 7256 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "400651c697115eaa014ba954aea537eb16973202", - "is_verified": false, - "line_number": 7337 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7687c122e643e27e28438bfb137caadcfce85553", - "is_verified": false, - "line_number": 7418 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1e44526d055e3bdf6b66c3e07bea7fae8e6112ab", - "is_verified": false, - "line_number": 7499 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8de781ead8ec88da505d4b7cfb5f6a1ae271c75f", - "is_verified": false, - "line_number": 7580 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4a53c69061f90ec8470c21d4fd7367c433551a11", - "is_verified": false, - "line_number": 7662 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f21a4fb6f6b88217cf3c658c550524742e42a842", - "is_verified": false, - "line_number": 7745 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "424b938bae2e02d8ee4906652ccbd01bb47d3191", - "is_verified": false, - "line_number": 7827 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "541ccd4bda1fa66cd5f731908df604b1de786e10", - "is_verified": false, - "line_number": 7909 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fd3e9f625842cf0828ac3b3be9feb1731ceb2f57", - "is_verified": false, - "line_number": 8011 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9a2e62d478b0ba698e7201d1ff34e10b5005355f", - "is_verified": false, - "line_number": 8113 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dd48b432e8bb8b206d927d8c6cfde39470e9264d", - "is_verified": false, - "line_number": 8217 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "281b6a1c3dede6a5f9c1e74990e51e88d0c30d9b", - "is_verified": false, - "line_number": 8319 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "2488726d059b8b33f598763b95cc894345268e0b", - "is_verified": false, - "line_number": 8423 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e3ea0d5067ddf667fc2e44575d45ac4f0fe1b0a8", - "is_verified": false, - "line_number": 8525 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bd6585d063a66fddad989080d32b5af3e8fd6113", - "is_verified": false, - "line_number": 8734 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "36a1397c380871f5606737c3f8e73cbcabf7aba3", - "is_verified": false, - "line_number": 8836 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4ea4bc9ad240cebf3c250abe6e5abdb8c60ce95c", - "is_verified": false, - "line_number": 8940 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "288380003a9cbb79eda2208f497899f32589c5d2", - "is_verified": false, - "line_number": 9041 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "df5a5e4b23938d6a04baad0f9c98ee54f3983fc9", - "is_verified": false, - "line_number": 9144 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "858c2276aca4e50168b5b4c99cf2522b1874fef6", - "is_verified": false, - "line_number": 9246 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "52165e4747281e34c764b48c9a14edf39827d20c", - "is_verified": false, - "line_number": 9350 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fb1f019f06c311ee3a36f3dd10e5d88ccd5c96f9", - "is_verified": false, - "line_number": 9452 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "37f12ace485b7408eada2e4826fc658e2719471f", - "is_verified": false, - "line_number": 9555 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "813205f147ed7c682de1aa6b151f3a2f37cb1116", - "is_verified": false, - "line_number": 9660 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c05ae99c25c068b30ef08272c7f08893796fd1b7", - "is_verified": false, - "line_number": 9770 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "492cd045b44077b96dfef78ed073159fa9c0cb61", - "is_verified": false, - "line_number": 9880 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b3d39fcec80410041ad32282dd50a4949e364bd7", - "is_verified": false, - "line_number": 9991 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4cb55a4da5566aa6c830f3ce9dc5faeea7a3b5f9", - "is_verified": false, - "line_number": 10101 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b0e8a96661382010f4b40a0eb7fd062e6fce918f", - "is_verified": false, - "line_number": 10212 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "eec1df06a91bfcb0c337243a3667325f6fecdbb3", - "is_verified": false, - "line_number": 10322 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7cdc34a6b45888552d55a664a5f35ddc9ce66f1e", - "is_verified": false, - "line_number": 10433 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bcde446ca391e252838a86446992dfce3b049f44", - "is_verified": false, - "line_number": 10544 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "16f083c8370e0710ebc14f87f54af6eb6387360a", - "is_verified": false, - "line_number": 10656 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7827574a7dd1ef83bce865bf04bd255f22c27c85", - "is_verified": false, - "line_number": 10765 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7f7116959e5e75db2e6d3c3fd0b8b16eebecb7d2", - "is_verified": false, - "line_number": 10875 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "09d7cb9310ef436383f9c6fcf79890d5119ebe9f", - "is_verified": false, - "line_number": 10984 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "77e2d4ccf738c84a6b28a25e6446e616b8596f24", - "is_verified": false, - "line_number": 11094 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "3e721ea51e21c04855258e87f3add4c2bed8b815", - "is_verified": false, - "line_number": 11203 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a1e41c3e01809ccb04934d95d8926dc4b13c7e41", - "is_verified": false, - "line_number": 11313 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dbbf4f036ea68a36b3a3d0ae1232954de0bb8fbb", - "is_verified": false, - "line_number": 11426 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "932b4d50d9c7e8c9b1e600fa55430798021025f2", - "is_verified": false, - "line_number": 11541 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5714adab73272ca64a074b2ed0d3f706218baad6", - "is_verified": false, - "line_number": 11656 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4d2224908222398d284148bc78da2f2c2626f62c", - "is_verified": false, - "line_number": 11771 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "37fecccd2ff8c3f83685df4e53165508bf3002a7", - "is_verified": false, - "line_number": 11881 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "44208a8804346d5b4396cf68fba0327f08ab66f0", - "is_verified": false, - "line_number": 11992 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b61db01fa959ca744fc526b40fba9c1aec18f534", - "is_verified": false, - "line_number": 12107 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "79719868824327daea61b232c2ec1d4838c9fe1f", - "is_verified": false, - "line_number": 12220 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f974e2103a301d9257a0af2b59349bb0f8398f76", - "is_verified": false, - "line_number": 12334 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "22de60335c7d3382489ff389d7c8997156af7396", - "is_verified": false, - "line_number": 12449 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7141f2966852d89db48665a4ca2aef6d3440aff8", - "is_verified": false, - "line_number": 12559 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "169ede3170730783b1d9511e4f3cc36d18d71cb4", - "is_verified": false, - "line_number": 12670 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e1a6fa27d2c9cde25eea927439fee318cbd27786", - "is_verified": false, - "line_number": 12784 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ed69aa394790fb9fe7fe8065d8700786dc9ab4f9", - "is_verified": false, - "line_number": 12898 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "59b4c080068466213d272bfa80c5e0b07b2c087d", - "is_verified": false, - "line_number": 13012 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7ce26e293a7f43056d32c5c919441aa6f6148192", - "is_verified": false, - "line_number": 13127 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c51faca3e5256333269932b89c1dd21d737eb43f", - "is_verified": false, - "line_number": 13242 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c180749d49d382a092a0cf73f41a89af81d3e4cb", - "is_verified": false, - "line_number": 13357 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "35526905870f02990072324d6dbac9aa3bf336e9", - "is_verified": false, - "line_number": 13472 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f8f714853f30923187c17a75daa17af2fcbcb7f1", - "is_verified": false, - "line_number": 13587 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9e5aa92bc563f22b79ccbf07e78688494f199605", - "is_verified": false, - "line_number": 13702 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "41e62868c8e1aee15ac63aa6e1e04251fb472180", - "is_verified": false, - "line_number": 13817 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fc65cfbf74083420dbd1448f676bbef01c8acb9f", - "is_verified": false, - "line_number": 13932 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5c9353e579fcfb050c1cc652d1728ab280fa109c", - "is_verified": false, - "line_number": 14053 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b2dcd593a3c75ff2c385cbe56622f82077670cf7", - "is_verified": false, - "line_number": 14182 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "226d781fca93b4b66e6c12a315574fd983c54ef0", - "is_verified": false, - "line_number": 14311 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b868c72e1315678afe5e51e81a802a9375adbaaf", - "is_verified": false, - "line_number": 14422 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "68375014af678fd47f40e2f9061fe011b991bffe", - "is_verified": false, - "line_number": 14534 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e3b41ea502da736e766b1552582c088f5c17e5d6", - "is_verified": false, - "line_number": 14663 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "850c696dac38f71f91e26d461286164af1185099", - "is_verified": false, - "line_number": 14774 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "37a52b385305cd1410b0bf33cd16843b97101992", - "is_verified": false, - "line_number": 14886 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "afa364bb81cb5387fae88d3c6b0373e73fe4237d", - "is_verified": false, - "line_number": 15015 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fac5e4778f2632489ffebeaf1036df6d348e7a7b", - "is_verified": false, - "line_number": 15144 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "879dc2a06c2a45566fa2a9b0f8f85fb756efc6ac", - "is_verified": false, - "line_number": 15273 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dcd2f9691f5372316757fec0de059430cce4b8f9", - "is_verified": false, - "line_number": 15402 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "eccbc6fe13fd37ad5b38663de88a55792965afad", - "is_verified": false, - "line_number": 15531 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a59d1981fb799b219fe7c76b8c6e7f5a500aaba2", - "is_verified": false, - "line_number": 15662 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "01f31dfcca14cca2c99566751b4c81f384b84625", - "is_verified": false, - "line_number": 15793 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f312cadd951f250d958b65ec441455eb5df19d59", - "is_verified": false, - "line_number": 15932 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "64cf3641b780f092a467c6667dadbdcc1b71447c", - "is_verified": false, - "line_number": 16071 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bebc66020303185342f861e1749b7296f5a9adf5", - "is_verified": false, - "line_number": 16210 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1ae4187c69395bb4d9ccdf1039589242d7647f0a", - "is_verified": false, - "line_number": 16353 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cfee71aecd761872815799c041a42fb03f6c9563", - "is_verified": false, - "line_number": 16496 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0f46780362982bec3215af27ca4e53c62308d64b", - "is_verified": false, - "line_number": 16639 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "23293d5f9d3a07156f3fbd0402ae0bde55588647", - "is_verified": false, - "line_number": 16782 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8e70b01f516dd28f7e106126bdf6a15eb7faff8c", - "is_verified": false, - "line_number": 16927 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e740b510bfbc2f9748d87b851eafd24301dcb9d3", - "is_verified": false, - "line_number": 17072 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "01d48b3cf70cd02162c45fc3236f0dbb18e760d4", - "is_verified": false, - "line_number": 17217 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4aaa075615fa21b3597799d5a1c1e85636e1eeb6", - "is_verified": false, - "line_number": 17363 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "357c9667a03b55d68053c57581a504934c7de492", - "is_verified": false, - "line_number": 17509 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8bf76415ec2bf570b8b35d962001ec9d6a0cc6b9", - "is_verified": false, - "line_number": 17655 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "6e2660bd731828315ebe474ebc320bd16545d7c6", - "is_verified": false, - "line_number": 17801 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "aa9112e58abb938f3ed50b6e37251ec7ee189c4f", - "is_verified": false, - "line_number": 17950 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4e4c4711d49beae5d905baaaaa60dbdfba3dd078", - "is_verified": false, - "line_number": 18099 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b2b62c4c0a4c0ac94ca4c7e9f6dd3675dd8cd7e3", - "is_verified": false, - "line_number": 18249 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bcc61af504739e9a83519bf9876be9eb4b854087", - "is_verified": false, - "line_number": 18401 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f882ca381b1d7d218f77f9055dd979302d19d85c", - "is_verified": false, - "line_number": 18542 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0a79e9c8555c6287df703fc164cec18cad44af49", - "is_verified": false, - "line_number": 18683 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "da74ad55a292696e01bf27fee58e3bf8c97c9923", - "is_verified": false, - "line_number": 18824 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b40b6425f9549bdee116d6b36f370ee40dde6f32", - "is_verified": false, - "line_number": 18965 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "02264c26a047eb9ae906085c213905b52eb0ed4d", - "is_verified": false, - "line_number": 19106 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9f6a54d5b024d1632d9fbe28a82ed9d551216b1b", - "is_verified": false, - "line_number": 19252 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1c0a6746003f4edb6199a765e09c3a8100487678", - "is_verified": false, - "line_number": 19398 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4385ff564c1b36550ca303721643512087926900", - "is_verified": false, - "line_number": 19545 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a885ca0f81721a6ba3878741f19d53906936fb4e", - "is_verified": false, - "line_number": 19692 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "728f09463ecffa9b2c3a47bf279909ff41e129f3", - "is_verified": false, - "line_number": 19839 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8c3d3dfee6853a341c2fe161aac8f8c3470509d7", - "is_verified": false, - "line_number": 19986 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bc8c5e0ddab848abeca3841a640c86f1059c6405", - "is_verified": false, - "line_number": 20143 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fd5ca9498f6458fdde298ea763df5ecd9b40967c", - "is_verified": false, - "line_number": 20300 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0aa4f74e92cfb8e402f186661a5c9d9f45c71a05", - "is_verified": false, - "line_number": 20458 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ffa21c362cf174facec8409b9a11e894a5efff5c", - "is_verified": false, - "line_number": 20616 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a5de8270043b89eb003395be82a44a6ab9988a5d", - "is_verified": false, - "line_number": 20774 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c3098d52379803ad059ebc50373c97bf9a9390b1", - "is_verified": false, - "line_number": 20935 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "6488c2cc6714169f70eb897df5c927f752f848a2", - "is_verified": false, - "line_number": 21096 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7cd6d2885c09ce977adf3779ded64af8fd981fc3", - "is_verified": false, - "line_number": 21257 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9cf0cfa0e704c1e80b04a7a32610f05dbaeacfd0", - "is_verified": false, - "line_number": 21419 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d74f2aed5c6526913ce8e38e51f3531bfee76b97", - "is_verified": false, - "line_number": 21581 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "6a9c82e4c95aace9894b11aeb1a5d5469a004542", - "is_verified": false, - "line_number": 21743 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4679044cbb8513a587d3c89bcd7676f48acf9c46", - "is_verified": false, - "line_number": 21905 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "94bbc706cfb19bdd6eedc4d344302d2da4f9b7bf", - "is_verified": false, - "line_number": 22067 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0e94e0989db41ce44f819d90e79493ab118674ef", - "is_verified": false, - "line_number": 22229 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "70e73f374064bf552c63b9c328799e45eecb1a87", - "is_verified": false, - "line_number": 22391 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e70947b2f7cb5a80d00e14c7f0e5207a3c954764", - "is_verified": false, - "line_number": 22553 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b44bd85c72a26f61186d59632dfa5a457476644a", - "is_verified": false, - "line_number": 22715 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "71cd41a05eb04b0d6adb6451a3bbf0a8d2b695c0", - "is_verified": false, - "line_number": 22877 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a3b5b3b796d6d961bbdd6060182062336e6b7a12", - "is_verified": false, - "line_number": 23039 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cbf0932c29fd3ea0e9d67b2df6ef430b9fc8b18f", - "is_verified": false, - "line_number": 23214 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4e229e8174c7f714ffdaab4a39ade407c3748cd7", - "is_verified": false, - "line_number": 23391 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "88576c42b156bf139652ba26b8094dc44c9d6764", - "is_verified": false, - "line_number": 23568 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "2a818a28c429d088d2d03d8b6414e2f2e7f7eec5", - "is_verified": false, - "line_number": 23746 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "70cf2ed7151f0b189cdbca342f4c7a5fb6b16c86", - "is_verified": false, - "line_number": 24022 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "408c1b7fb2548eba8cd8bb892326977269dbebe0", - "is_verified": false, - "line_number": 24027 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f1c07d0a0644d5b0fe104a13f32275d73f4d8960", - "is_verified": false, - "line_number": 24032 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "461f7c184ad0a2025add48687d6aaa10b91cabea", - "is_verified": false, - "line_number": 24037 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dd4d0d7d129a50e5ee183791a0eee0bcdf7a1638", - "is_verified": false, - "line_number": 24042 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cae3a3c963a768bb0a3048b1d04d3791a5d39906", - "is_verified": false, - "line_number": 24047 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "be60b8db2fda4814aa03f93e082f4c8cd44894cd", - "is_verified": false, - "line_number": 24052 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "124cbec844db04466ac9b52900a917b29b249d1a", - "is_verified": false, - "line_number": 24057 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "3fd3062f1cc0fc29d52bce60c84ef7a4941091d7", - "is_verified": false, - "line_number": 24062 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d5d0009ea0357e1b5ecf629b70d2e878d22fd5c9", - "is_verified": false, - "line_number": 24067 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "57deb18b3e0911ab6786537beed3d3e40c046b20", - "is_verified": false, - "line_number": 24072 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fc7214b9e543f452e9b552377cfa31a7970da974", - "is_verified": false, - "line_number": 24077 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "2d5a211912660401da9ffb3d55ad1d0a518482e9", - "is_verified": false, - "line_number": 24082 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "22bae7af2c35175ada7976f326d98352a8a0d6c1", - "is_verified": false, - "line_number": 24087 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "82b2a0ed698d9a4c814477b1f7d234ba3b316ad4", - "is_verified": false, - "line_number": 24092 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5c693622fff810491fc26d09c5c77f91f79c4ccc", - "is_verified": false, - "line_number": 24097 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b4dd73555bad170ea6974b5d40ba6c275eb35378", - "is_verified": false, - "line_number": 24102 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cef58c3b475f96c74be3dd699935ee623dd53bfc", - "is_verified": false, - "line_number": 24107 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "97255d67db84b04ff61d1f5d917500cf4f112e28", - "is_verified": false, - "line_number": 24112 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1256403bb2de295cd4c7e6b3b92f0765ec5cbadf", - "is_verified": false, - "line_number": 24117 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "33542dec20219c9a3c679cbae6edeea53e7df17b", - "is_verified": false, - "line_number": 24122 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bdcb0bace3abac077ceb2cb6154bd1c3ca618793", - "is_verified": false, - "line_number": 24127 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "000242741b73f8566e702470a5c07b1dc7eeca62", - "is_verified": false, - "line_number": 24132 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bd74dd96a61560d8bd650a5c059e2eda6364146d", - "is_verified": false, - "line_number": 24137 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b5931accf87811c12aa868d47ab46b9a0c4f56c5", - "is_verified": false, - "line_number": 24142 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "575250a9ea3f3714d8fc068d2973e4d2703bb983", - "is_verified": false, - "line_number": 24147 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1e6f0538775a16516a61aab24b1e693c40788be2", - "is_verified": false, - "line_number": 24152 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c9828a7732a8320b6e7f013ba2f3b982c59a643b", - "is_verified": false, - "line_number": 24157 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "28e0e151d06f2c898497c86affaf95d0aebd7945", - "is_verified": false, - "line_number": 24162 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c3863ee1b9604ec8cff9cb4b6ad6251a8b42f205", - "is_verified": false, - "line_number": 24167 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "81c89cd9bab5e7f63b7e981b4270758a7f007591", - "is_verified": false, - "line_number": 24172 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "3489c8722afb0e3e39ce593402cc16648767984d", - "is_verified": false, - "line_number": 24177 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "409ee8d3f3a8e930decf8556573bb6e835101d94", - "is_verified": false, - "line_number": 24182 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ed8579b4e3d80585f198b597571732ac7fd5bf93", - "is_verified": false, - "line_number": 24187 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5eb82631677987c2c0187c945b3b6c4cef728106", - "is_verified": false, - "line_number": 24192 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a0ac515d8a164eca1519578f1cd0cded7ba59d0a", - "is_verified": false, - "line_number": 24197 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e38a904ed481c7170fbdd9b18a75d28cb35e5ba0", - "is_verified": false, - "line_number": 24202 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "834e9cc0db6336e29d1be1fef2fd1691e35889d0", - "is_verified": false, - "line_number": 24207 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7202055939dd1673399fe90cdd0b1902443b8154", - "is_verified": false, - "line_number": 24212 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8318862f13836ad043414a6598272ccc1b193487", - "is_verified": false, - "line_number": 24217 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "832a461eed50625a99810de2018be5b9f613a6c7", - "is_verified": false, - "line_number": 24222 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "3ba7a7e5dd701b9267872186a36ec6631778a938", - "is_verified": false, - "line_number": 24227 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8b4884d1398cfd774e19d560c3c416ebcd388145", - "is_verified": false, - "line_number": 24232 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "011cbacdd38458d292d2b57a1305a78503244a58", - "is_verified": false, - "line_number": 24237 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ca8045d33a263d830d6106bd2204224940e0e03c", - "is_verified": false, - "line_number": 24242 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7589aef75b3cabc09c9dea0c4e0fc31605bb0ebc", - "is_verified": false, - "line_number": 24247 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "94e6d3d44bab46f131426020b16e7cea4b08159b", - "is_verified": false, - "line_number": 24252 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1d008ce176947e2ba624161502f5558ce8373225", - "is_verified": false, - "line_number": 24257 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7220cd3d7d560e7e4cc2b0cdc425d7935f54cd31", - "is_verified": false, - "line_number": 24262 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "16e883ceef8c6107600623248924fa11f689fbf4", - "is_verified": false, - "line_number": 24267 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "88805709f933d77801e2af7ee7a7d2b6fee7ad1b", - "is_verified": false, - "line_number": 24272 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e5f53f0ddd85422ebc8aea43e9d1cf3eba763404", - "is_verified": false, - "line_number": 24277 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cf911d7cbe26d06a08e56b591e0f5fcb300592b6", - "is_verified": false, - "line_number": 24282 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "edf7246348e0aa77f659a53f4506ee3e93c9a1aa", - "is_verified": false, - "line_number": 24287 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a7720b893e771035f03b4499dd1e84c50404e621", - "is_verified": false, - "line_number": 24292 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ab7efeee1d61e7dc0c6f2b0cf48e9397eab0e330", - "is_verified": false, - "line_number": 24297 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "703922e6df8bde2f1cf28c3ef708f317d7a6344d", - "is_verified": false, - "line_number": 24302 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e87919bc2c0bf757d86f9c063356da70a42e9500", - "is_verified": false, - "line_number": 24307 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cfddc533ca39598f3b2fb6fe2705c5d160306f6f", - "is_verified": false, - "line_number": 24312 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7d373878b4d4654042a5a1f23b6d86a8dec7fef6", - "is_verified": false, - "line_number": 24317 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cb9831f7bfc5000f355c12ae8c6eb53dfdf5159f", - "is_verified": false, - "line_number": 24322 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fa867a4595168e6212e47302c14af2613672f994", - "is_verified": false, - "line_number": 24327 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a7347d566633493e11377e4ea0bfb5dc7d54700b", - "is_verified": false, - "line_number": 24332 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f18778f604c7d349e7e743b4b7e3c262e9d46b8b", - "is_verified": false, - "line_number": 24337 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "86be1f73be01f199384e42090e3e3307c2756242", - "is_verified": false, - "line_number": 24342 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8843ef1d3d119557d43b87b5ae51ddce2064331b", - "is_verified": false, - "line_number": 24347 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8207c407e75f890ab222a90952677028ca3856ad", - "is_verified": false, - "line_number": 24352 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "45431c5ce60d051780547b4c0f18f43c8b0369aa", - "is_verified": false, - "line_number": 24357 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "08969302f063e88c979bdba30dc1f963a418192b", - "is_verified": false, - "line_number": 24362 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "46201b521c0938a8b1389d57aea2d85198d8cc08", - "is_verified": false, - "line_number": 24367 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "55c11985f5dc52dd05e753e5ea75f8ae9c225661", - "is_verified": false, - "line_number": 24372 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8e68a1d516b7630cb0464f974efb95be87154f28", - "is_verified": false, - "line_number": 24377 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "717d6a28fed9dc32f1f2f83d50e8a56da0b42d4c", - "is_verified": false, - "line_number": 24382 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9f1eac1afefcba62f6613d7d22bfd7b6ca5a5082", - "is_verified": false, - "line_number": 24387 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "efb962e9ffc7cffc992903868986d120f0b940cd", - "is_verified": false, - "line_number": 24392 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f20d82eb45abb07051f7afe09b59c96cf0de7680", - "is_verified": false, - "line_number": 24397 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "30bc1d68da2f52bc87cbb19b14729709189207b7", - "is_verified": false, - "line_number": 24402 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0ca5f5597fd8d87fde419ada1f66b1ce94a0a78a", - "is_verified": false, - "line_number": 24407 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1ce522dbb53efe7902b5101c9e303520fbeb7268", - "is_verified": false, - "line_number": 24412 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e85d62e8b7cbb463ab56a1b4cd9d4e4829b79ae1", - "is_verified": false, - "line_number": 24417 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c8555da9d39cd48f11daed1c4e0bb6851183cff4", - "is_verified": false, - "line_number": 24422 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7126216867c1c3c3247109e597c265402fdb2b51", - "is_verified": false, - "line_number": 24427 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dfaf8743f782f7e97725f5946d6cc407937be5b8", - "is_verified": false, - "line_number": 24432 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d01c9f57940ddc7598e03cc60d48fdbc73b975f9", - "is_verified": false, - "line_number": 24437 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a65d0158db5a93463fed7e0c22e69392b3f6d600", - "is_verified": false, - "line_number": 24442 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bf9be8cf29e91f8e95252514ec6f697b8db1e5fa", - "is_verified": false, - "line_number": 24447 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "06e80909081f90fd629a76d976e0310d6b90d7c9", - "is_verified": false, - "line_number": 24452 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c63439ab85a49094f8207b3120697faf26bcfefe", - "is_verified": false, - "line_number": 24457 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d0ddf78ab42a848785bd869f96bebd4a75e85ef1", - "is_verified": false, - "line_number": 24462 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "71317a2b560033f7967ada1aa6c859fde091fb5b", - "is_verified": false, - "line_number": 24467 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "86fc2324903442538bcaec0c175af503344364ff", - "is_verified": false, - "line_number": 24472 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b04fa00c7333e0ac119af1ca711cccb74749bae0", - "is_verified": false, - "line_number": 24477 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "45f99c1d5b72ac208cc2a39d5cb96efa8aed906b", - "is_verified": false, - "line_number": 24482 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "478f11508ceee4099a4eb69744270381bc1220aa", - "is_verified": false, - "line_number": 24487 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b7ffccbd556b1ec92ea25dd09defa11724160323", - "is_verified": false, - "line_number": 24492 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "06f14341f782352ab033b4894382c8ca2e9cab96", - "is_verified": false, - "line_number": 24497 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a97de3072b696fa310e37080c07e0a8426c5d8ea", - "is_verified": false, - "line_number": 24502 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1d8d5b74ae2fbc1a2646aa8a1e36411519355c78", - "is_verified": false, - "line_number": 24507 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e71b27ed04c4c12bd00b70568839ac560b3f7c70", - "is_verified": false, - "line_number": 24512 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e1a98d920e1eff685bbacef48bd14bd21e237d17", - "is_verified": false, - "line_number": 24517 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8660bd46f00360ac4c37d47ee3d35706e24ad4bc", - "is_verified": false, - "line_number": 24522 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e484164b97a540eca523adb043f7534c3dc63488", - "is_verified": false, - "line_number": 24527 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fa1f5f5e05d2616e8aa787acc968e09fd9e9e1e7", - "is_verified": false, - "line_number": 24532 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d0fdf70aace518eeb1887906a2fa378d46c5dc49", - "is_verified": false, - "line_number": 24537 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "caf95be8fcbafbd2ce81bbd462d27b15d5e941d2", - "is_verified": false, - "line_number": 24542 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "02f91a1230cb11350a90f18f827a25682174eb17", - "is_verified": false, - "line_number": 24547 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bf8b84288e15c516e6a7055be15cb51caa51c59d", - "is_verified": false, - "line_number": 24552 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fba1e2de5e4c3926b22706c993be42aee8f7a6b8", - "is_verified": false, - "line_number": 24557 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1acec9e5d2283b2ea9145f8c960fda1c1ca0adb1", - "is_verified": false, - "line_number": 24562 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "3ae09819b5a82fbbaed3bc6d90a1addac97edd04", - "is_verified": false, - "line_number": 24567 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "01c7a869f403da73d8f3262b528b55a437d57b88", - "is_verified": false, - "line_number": 24572 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7f79395ac7b2cbd650c78e769f2f3555ff945908", - "is_verified": false, - "line_number": 24577 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f8131b4428ff692a964e7a4fedb699b34b1f87db", - "is_verified": false, - "line_number": 24582 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bbb670ff0e185f3c92ac9e3d60e0705c40cbaeeb", - "is_verified": false, - "line_number": 24587 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "39f576a0dae848bdcd019ec3cb23197353e3c649", - "is_verified": false, - "line_number": 24592 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "4664ea151d2dd8fb84f4360dff3b5a86302acbb9", - "is_verified": false, - "line_number": 24597 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c1654d9baf0e9ecb4a0397178240a30423d2b5ef", - "is_verified": false, - "line_number": 24602 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dc00b0a262affde63a3af78fb8c0402eae2efc39", - "is_verified": false, - "line_number": 24607 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "719b9a7b34b139923f84a76d0a0c7c10016db970", - "is_verified": false, - "line_number": 24612 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ccf235957b7b15a97c6daa8e3a9356ac3848223e", - "is_verified": false, - "line_number": 24617 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "91b74af507736a17db8e44d81332ae48cf5dc29e", - "is_verified": false, - "line_number": 24622 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c01df5e3153538944dc644514bc4115184d51eaf", - "is_verified": false, - "line_number": 24627 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "55b3eae2d7a7eb842bb87cb5606c1bdcc75de05e", - "is_verified": false, - "line_number": 24632 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f8bbb8024d0b3d1cf638225c48a1286a4b86bc60", - "is_verified": false, - "line_number": 24637 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0c0c434c39f165541f90addc017b1285c3b71cfd", - "is_verified": false, - "line_number": 24642 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "60ac9f156d1440947136acdbb59042a80187ab58", - "is_verified": false, - "line_number": 24647 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "76f25db50272e0226019c4484b5ae6a064e70c3f", - "is_verified": false, - "line_number": 24652 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bd68307f5782d9623183c8ee4efea0d31448a7ce", - "is_verified": false, - "line_number": 24657 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1a215c240cde4a63fc9bd7021afee2b6bbef5a79", - "is_verified": false, - "line_number": 24662 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cb3fcac1e5265a7133397bb02a775b6e6587a97d", - "is_verified": false, - "line_number": 24667 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "aac6a2873e99d014d7ed6aef8fbf589d8d60ee9e", - "is_verified": false, - "line_number": 24672 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "73757cfd09584033daec92313e775357837c0680", - "is_verified": false, - "line_number": 24677 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b12622e0bc9ca52e375ed5ffed53b44e44c5c170", - "is_verified": false, - "line_number": 24682 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cf97fbcb464e842c1d5b98228648623ce1722f1f", - "is_verified": false, - "line_number": 24687 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bf33fe01f7a3573e0d6a2fd58f15e84319a4cdf1", - "is_verified": false, - "line_number": 24692 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "80204409f05e1a8031e97806ecc2c02641726e01", - "is_verified": false, - "line_number": 24697 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d327c7d688ae26152cb3a14d5f11f3569c53efb4", - "is_verified": false, - "line_number": 24702 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e46de5ca23b0d95c0ff04bf47d23440349a66ca2", - "is_verified": false, - "line_number": 24707 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b59bfa98cfe452341077eb20b14684336fc075e6", - "is_verified": false, - "line_number": 24712 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "57d7e50927cae319502a7cd0670da42423f0e707", - "is_verified": false, - "line_number": 24717 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fd9272d1e81b48c6d4b374c8bc0e1c23bc7fdfd9", - "is_verified": false, - "line_number": 24722 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "01932307ee760d9f1423ab0f227af4aa6bdc16cc", - "is_verified": false, - "line_number": 24727 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "098cebb8671653b1a1fc8e68109447acf6411419", - "is_verified": false, - "line_number": 24732 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0830d57fc58c2cbba7a95adfddf1595b5cb1fecf", - "is_verified": false, - "line_number": 24737 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d255b9a7d93108f12eb001d283d8cee707d2dbb3", - "is_verified": false, - "line_number": 24742 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c54acc13ef9aea82d4c7c7a35bba243ec5b8754f", - "is_verified": false, - "line_number": 24747 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f6ec64eee0e841d8531777f36cf4b1cc249d342a", - "is_verified": false, - "line_number": 24752 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "d42042b8d59066de3cd34add389d5b3c56a357df", - "is_verified": false, - "line_number": 24757 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e8e378b61f8661e99d683e73c0c756d68b598636", - "is_verified": false, - "line_number": 24762 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "deca068f7cb2e76c05d0a4b06b05943cbc8da401", - "is_verified": false, - "line_number": 24767 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7b8682201b2233a195942d28face7af3802fee9b", - "is_verified": false, - "line_number": 24772 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0f063371b3e7328672af759624ec43c5b9eb7494", - "is_verified": false, - "line_number": 24777 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5f02018a316540f30fd47298276f34bde3eb42ad", - "is_verified": false, - "line_number": 24782 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "194a352ad21b4055a85c1f934403700255d64a10", - "is_verified": false, - "line_number": 24787 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7d51d43ec502f6411f41cb6b0989e8f544cb84b5", - "is_verified": false, - "line_number": 24792 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "99f44386e34c8cafa23411fcc0369c1a1ea296d0", - "is_verified": false, - "line_number": 24797 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "65de35bd5ccd1746eb22fac9b4ed3a5eb10715c9", - "is_verified": false, - "line_number": 24802 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e9ae33d6b392c5652d8e104a353c5ea8c225338f", - "is_verified": false, - "line_number": 24807 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b95423266717cd4ba8f08c4ce8d29b6de41b8242", - "is_verified": false, - "line_number": 24812 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "641eece83bc4d9173548baadd93b250d2e5789e6", - "is_verified": false, - "line_number": 24817 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "942934bc58303ddcefe8d0ba0fdc18e73d82eae6", - "is_verified": false, - "line_number": 24822 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a5e9f447f5043b6a76330a8a7861ca570fc7fe17", - "is_verified": false, - "line_number": 24827 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8a2f4a4a6d5acba6d83f3094551e12e22da989f2", - "is_verified": false, - "line_number": 24832 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b008d94f4bab22a8ebe66c71941116c4e08eba08", - "is_verified": false, - "line_number": 24837 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "abfd216d5c2024c7c8176fe8a3e5d886333fda35", - "is_verified": false, - "line_number": 24842 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "962560d9116168e635dc6044617faa87a1e4f9a1", - "is_verified": false, - "line_number": 24847 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9bba22348f5adf006b942e0e20b6f703a59798cf", - "is_verified": false, - "line_number": 24852 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1a556a290dc50dbb574bb5bbe49248f874b52f97", - "is_verified": false, - "line_number": 24857 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "36157b03b8e9945404eda4057bb33678f3a7db5a", - "is_verified": false, - "line_number": 24862 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8dfe52eba4f6811118caaa4bdf90a924516a2df5", - "is_verified": false, - "line_number": 24867 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "473f7b39ed1d792a37f58b5f55a6f3d80c3238f9", - "is_verified": false, - "line_number": 24872 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "2ad08fd9799292d458947a648fd97f2fbe2bbb86", - "is_verified": false, - "line_number": 24877 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bad775c0d033b9c5c958aa32dd759627b6b54966", - "is_verified": false, - "line_number": 24882 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1bed788ae168f64e5504e0e5c8e9bb4aab4fad14", - "is_verified": false, - "line_number": 24887 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "041f86f19bb912b2cb94ff17f0565ec09d170230", - "is_verified": false, - "line_number": 24892 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bb6ca8732cfa078d1b1b28d100d586db9a4b8432", - "is_verified": false, - "line_number": 24897 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a823394b9e0ae1e731945460372d469f9c7eae9a", - "is_verified": false, - "line_number": 24902 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fb5ad48798b99eb5d13400355b0ff9b4cd38c854", - "is_verified": false, - "line_number": 24907 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "32e3eda339e849bf0016986efff2babd3b691a55", - "is_verified": false, - "line_number": 24912 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "2c8eaad2576e047b1640f3f95fe27806e2539b12", - "is_verified": false, - "line_number": 24917 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a9c33baad8fe7d9d1f9ca38ac3d72cc7cef2563b", - "is_verified": false, - "line_number": 24922 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cf7aeb46fe6668887f77d6bc13608d4fa017c45f", - "is_verified": false, - "line_number": 24927 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f60f8bc653a9226db88b605951da1e8dbcf8cf01", - "is_verified": false, - "line_number": 24932 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "355719336c5c5ee12976907be5eb2eef884f83ea", - "is_verified": false, - "line_number": 24937 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "23a1a734c192a58e2d80dfb091b97e60e4585498", - "is_verified": false, - "line_number": 24942 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "531045aa336cb00b21013c96defec94d13d1bef8", - "is_verified": false, - "line_number": 24947 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fa4de46109a7a7d93e3eda027eccb2774a2c6c13", - "is_verified": false, - "line_number": 24952 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "15b84972d13a214e2a74c92c9aff7e2c4db090e9", - "is_verified": false, - "line_number": 24957 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "06d8ec8166d330d9d9dfb53e75f117df63e1651f", - "is_verified": false, - "line_number": 24962 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "dd5fddb8419408b3882802ddb9d35d6e819c2c08", - "is_verified": false, - "line_number": 24967 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "88949296dff245f3953ecc6e0521560db375c17c", - "is_verified": false, - "line_number": 24972 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "cb175a2c4dd0d4d26c85c81d4999ed7c207efc05", - "is_verified": false, - "line_number": 24977 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "264f0a1c25cbc910467fe0ada7131ad95e18535a", - "is_verified": false, - "line_number": 24982 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5806049a87379c8de4bc2f0039d23238a89de019", - "is_verified": false, - "line_number": 24987 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f9da41502317dcf2a05b304e904271e8af31e034", - "is_verified": false, - "line_number": 24992 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "bddf77b1e0871cc207493c840c1b3ae49a512b88", - "is_verified": false, - "line_number": 24997 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1f817f9450db5b4780ea7e44780d2865e29e28d4", - "is_verified": false, - "line_number": 25002 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1b0c24bbec6907643f71b9503ecac654e2dafea5", - "is_verified": false, - "line_number": 25007 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f57325ae946b8f160ca07c11a816b8ebff0a3c48", - "is_verified": false, - "line_number": 25012 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "c78cebc5afb2a82cbcef9851c75264b3e6bb3f4a", - "is_verified": false, - "line_number": 25017 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b3ef8efcd34b6100cbd671cbd43a36f0dff9152e", - "is_verified": false, - "line_number": 25022 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ec8996593973d61f2ad2eea9a63a0769f09fb25e", - "is_verified": false, - "line_number": 25027 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "df0af264f700f2ddab8f77a4c50e8168d6690ea4", - "is_verified": false, - "line_number": 25032 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1845f23cfb13addb49dc8c0e37041ee27ec18934", - "is_verified": false, - "line_number": 25037 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "ccfb569259e72ca321e33e8336b45297dab877d1", - "is_verified": false, - "line_number": 25042 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0b08e282dd7419796e088a7999642a93c86ac634", - "is_verified": false, - "line_number": 25047 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "14986639654a357847b23cc30af438d7e57d6ba5", - "is_verified": false, - "line_number": 25052 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "43d9416c67e2a60bd2783aab60317bf4fdec23f5", - "is_verified": false, - "line_number": 25057 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "1654c0dc861bdf404fd5b3666080a951a9682164", - "is_verified": false, - "line_number": 25062 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "b2fecdca6c5e5088f1d1363b27b22efe41ac093e", - "is_verified": false, - "line_number": 25067 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "0fb0814afc2a8e41bb19a6191bbc4d5950350188", - "is_verified": false, - "line_number": 25072 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "62a9bfc81bfb7e681b0aa825ffad2a493999ddc8", - "is_verified": false, - "line_number": 25077 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "371eff03ca86bcc46d761e993e3e8ff74a9bc6e1", - "is_verified": false, - "line_number": 25082 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "7842a460ca6e134502684bd307e0042af07b8d25", - "is_verified": false, - "line_number": 25087 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e918ae20837b4045c9f8ebe546d0a4eedf6dbddf", - "is_verified": false, - "line_number": 25092 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "fbe9b8f4fef1ac1b27a0a283e6c2cbf7fe9f71fe", - "is_verified": false, - "line_number": 25097 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "28ff09747befb5ae7d894f2be4b8ca4d68ad850b", - "is_verified": false, - "line_number": 25102 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "9860c3888120a8ac3b78e1939766e37db2724901", - "is_verified": false, - "line_number": 25107 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "a8fb0255de88946ada1953e0114c45f7f1bd99fd", - "is_verified": false, - "line_number": 25112 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e2eb6f7ed1add9f7e80ba7c92eda508e58487832", - "is_verified": false, - "line_number": 25117 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "f0ad5d25259e8950190cc28f1c8c96b6e01715b3", - "is_verified": false, - "line_number": 25122 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "6269798118fe2d9145c21c09c38f6c090826cfa7", - "is_verified": false, - "line_number": 25127 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "8c168db670091e70bf146e0fd976a36bab56d95d", - "is_verified": false, - "line_number": 25132 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "e7b3f5082ddde702e9105c896561d388fd1a7fb8", - "is_verified": false, - "line_number": 25137 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "085f1d24ceb4c35ed0c1f158c60c165b4c5fd9f3", - "is_verified": false, - "line_number": 25142 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "98a241c9f3a92a05bb2b7979e98d4865a80831c7", - "is_verified": false, - "line_number": 25147 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "5c69b95ed34bdd2d9d81abf07a2e77d4db4fdec3", - "is_verified": false, - "line_number": 25152 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "203c234ea75655f95f4445c2346a3b4db2fac2d0", - "is_verified": false, - "line_number": 25157 - }, - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/mock-store/vue/package.json", - "hashed_secret": "806356b06fa623e0632bc095f720f6a8e1126ea6", - "is_verified": false, - "line_number": 25162 - } - ], - "test/unit/partials/publish-api.js": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/publish-api.js", - "hashed_secret": "bb1e9de8a2e550ca43c48d5d1d5b326f32d910b3", - "is_verified": false, - "line_number": 38 - } - ], - "test/unit/partials/storage/verdaccio-corrupted.db.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/storage/verdaccio-corrupted.db.json", - "hashed_secret": "5d7eb490cf16357d24404f4a46d95a70148cbb7c", - "is_verified": false, - "line_number": 1 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/partials/storage/verdaccio-corrupted.db.json", - "hashed_secret": "5d7eb490cf16357d24404f4a46d95a70148cbb7c", - "is_verified": false, - "line_number": 1 - } - ], - "test/unit/partials/storage/verdaccio.db.json": [ - { - "type": "Hex High Entropy String", - "filename": "test/unit/partials/storage/verdaccio.db.json", - "hashed_secret": "8a99a3f9c348af61cf47186b819b63187dbfe11f", - "is_verified": false, - "line_number": 1 - }, - { - "type": "Secret Keyword", - "filename": "test/unit/partials/storage/verdaccio.db.json", - "hashed_secret": "8a99a3f9c348af61cf47186b819b63187dbfe11f", - "is_verified": false, - "line_number": 1 - } - ] - }, - "version": "1.0.3", - "filters_used": [ - { - "path": "detect_secrets.filters.allowlist.is_line_allowlisted" - }, - { - "path": "detect_secrets.filters.heuristic.is_sequential_string" - }, - { - "path": "detect_secrets.filters.heuristic.is_potential_uuid" - }, - { - "path": "detect_secrets.filters.heuristic.is_likely_id_string" - }, - { - "path": "detect_secrets.filters.heuristic.is_templated_secret" - }, - { - "path": "detect_secrets.filters.heuristic.is_prefixed_with_dollar_sign" - }, - { - "path": "detect_secrets.filters.heuristic.is_indirect_reference" - }, - { - "path": "detect_secrets.filters.common.is_ignored_due_to_verification_policies", - "min_level": 2 - } - ] -} diff --git a/.sonarcloud.properties b/.sonarcloud.properties deleted file mode 100644 index 8b1378917..000000000 --- a/.sonarcloud.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index afc8dce1c..000000000 --- a/.stylelintrc +++ /dev/null @@ -1,41 +0,0 @@ -{ - "processors": ["stylelint-processor-styled-components"], - "extends": [ - "stylelint-config-recommended" - ], - "rules": { - "at-rule-no-unknown": true, - "block-no-empty": true, - "color-named": "always-where-possible", - "comment-no-empty": true, - "declaration-block-no-duplicate-properties": [ - true, - { - ignore: ["consecutive-duplicates-with-different-values"] - } - ], - "declaration-block-no-shorthand-property-overrides": true, - "font-family-no-duplicate-names": true, - "color-no-invalid-hex": true, - "font-family-no-missing-generic-family-keyword": true, - "function-calc-no-unspaced-operator": true, - "function-linear-gradient-no-nonstandard-direction": true, - "keyframe-declaration-no-important": true, - "property-no-vendor-prefix": true, - "media-feature-name-no-unknown": true, - "no-descending-specificity": [true, { "severity": "warning" }], - "no-duplicate-at-import-rules": true, - "no-duplicate-selectors": true, - "no-empty-source": true, - "no-extra-semicolons": true, - "no-invalid-double-slash-comments": true, - "property-no-unknown": true, - "selector-pseudo-class-no-unknown": true, - "selector-pseudo-element-no-unknown": true, - "selector-type-no-unknown": [true, { "severity": "warning" }], - "string-no-newline": true, - "unit-no-unknown": true - } - -} - diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 90d61a19a..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - // Use IntelliSense to learn about possible Node.js debug attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "CLI Babel Registry", - "stopOnEntry": false, - "program": "${workspaceFolder}/debug/bootstrap.js", - "args": ["-l", "0.0.0.0:4873"], - "env": { - "BABEL_ENV": "registry" - }, - "preLaunchTask": "npm: build:webui", - "console": "integratedTerminal" - }, - { - "name": "Unit Tests", - "type": "node", - "request": "launch", - "program": "${workspaceRoot}/node_modules/jest-cli/bin/jest.js", - "stopOnEntry": false, - "args": [ - "--debug=true" ], - "cwd": "${workspaceRoot}", - "preLaunchTask": "pre-test", - "runtimeExecutable": null, - "runtimeArgs": [ - "--nolazy" - ], - "env": { - "NODE_ENV": "test", - "TZ": "UTC" - }, - "console": "integratedTerminal" - }, - { - "name": "Functional Tests", - "type": "node", - "request": "launch", - "program": "${workspaceRoot}/node_modules/.bin/jest", - "stopOnEntry": false, - "args": [ - "--config", - "./test/jest.config.functional.js", - "--testPathPattern", - "./test/functional/index*", - "--debug=false", - "--verbose", - "--useStderr", - "--detectOpenHandles"], - "cwd": "${workspaceRoot}", - "env": { - "BABEL_ENV": "testOldEnv", - "VERDACCIO_DEBUG": "true", - "VERDACCIO_DEBUG_INJECT": "true", - "NODE_DEBUG": "TO_DEBUG_REQUEST_REMOVE_THIS_request" - }, - "preLaunchTask": "pre-test", - "console": "integratedTerminal", - "runtimeExecutable": null, - "runtimeArgs": [ - "--nolazy" - ], - }, - { - "type": "node", - "request": "launch", - "name": "Verdaccio Compiled", - "preLaunchTask": "npm: code:build", - "program": "${workspaceRoot}/bin/verdaccio", - "args": ["-l", "0.0.0.0:4873"], - "console": "integratedTerminal" - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index a01da4d77..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,9 +0,0 @@ -// Place your settings in this file to overwrite default and user settings. -{ - "files.exclude": { - "**/.idea": false, - "**/.nyc_output": true, - "**/build": true, - "**/coverage": true - } -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index ef81696e0..000000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "build:webui", - "problemMatcher": [] - }, - { - "type": "npm", - "script": "code:build", - "problemMatcher": [] - }, - { - "label": "pre-test", - "dependsOn": [ - "npm: code:build", - "npm: test:clean" - ] - } - ] -} \ No newline at end of file diff --git a/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs deleted file mode 100644 index 5f6bdc2fc..000000000 --- a/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +++ /dev/null @@ -1,38 +0,0 @@ -/* eslint-disable */ -module.exports = { -name: "@yarnpkg/plugin-interactive-tools", -factory: function (require) { -var plugin;plugin=(()=>{var __webpack_modules__={120:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>H});function r(e,t,n,r){var i,o=arguments.length,u=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(u=(o<3?i(u):o>3?i(t,n,u):i(t,n))||u);return o>3&&u&&Object.defineProperty(t,n,u),u}var i,o=n(2594),u=n(966),a=n(4930),l=n(7382),s=n.n(l);!function(e){e.BEFORE="before",e.AFTER="after"}(i||(i={}));const c=function(e,t,{active:n,minus:r,plus:i,set:o,loop:u=!0}){const{stdin:s}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!n)return;const a=(n,a)=>{const l=t.indexOf(e);switch(a.name){case r:{const e=l-1;if(u)return void o(t[(t.length+e)%t.length]);if(e<0)return;o(t[e])}break;case i:{const e=l+1;if(u)return void o(t[e%t.length]);if(e>=t.length)return;o(t[e])}}};return s.on("keypress",a),()=>{s.off("keypress",a)}},[t,e,n])},f=({active:e=!0,children:t=[],radius:n=10,size:r=1,loop:o=!0,onFocusRequest:u,willReachEnd:f})=>{const d=s().Children.map(t,e=>(e=>{if(null===e.key)throw new Error("Expected all children to have a key");return e.key})(e)),p=d[0],[h,m]=(0,l.useState)(p),v=d.indexOf(h);(0,l.useEffect)(()=>{d.includes(h)||m(p)},[t]),(0,l.useEffect)(()=>{f&&v>=d.length-2&&f()},[v]),function({active:e,handler:t}){const{stdin:n}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!e||void 0===t)return;const r=(e,n)=>{"tab"===n.name&&(n.shift?t(i.BEFORE):t(i.AFTER))};return n.on("keypress",r),()=>{n.off("keypress",r)}},[e,t])}({active:e,handler:u}),c(h,d,{active:e,minus:"up",plus:"down",set:m,loop:o});let b=v-n,g=v+n;g>d.length&&(b-=g-d.length,g=d.length),b<0&&(g+=-b,b=0),g>=d.length&&(g=d.length-1);const _=[];for(let n=b;n<=g;++n){const i=d[n],o=e&&i===h;_.push(s().createElement(a.Box,{key:i,height:r},s().createElement(a.Box,{marginLeft:1,marginRight:1},o?s().createElement(a.Color,{cyan:!0,bold:!0},">"):" "),s().createElement(a.Box,null,s().cloneElement(t[n],{active:o}))))}return s().createElement(a.Box,{flexDirection:"column",width:"100%"},_)},d=s().createContext(null),p=({children:e})=>{const{setRawMode:t}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{t&&t(!0)},[]);const[n,r]=(0,l.useState)(new Map),i=(0,l.useMemo)(()=>({getAll:()=>n,get:e=>n.get(e),set:(e,t)=>r(new Map([...n,[e,t]]))}),[n,r]);return s().createElement(d.Provider,{value:i,children:e})};function h(e,t){const n=(0,l.useContext)(d);if(null===n)throw new Error("Expected this hook to run with a ministore context attached");if(void 0===e)return n.getAll();const r=(0,l.useCallback)(t=>{n.set(e,t)},[e,n.set]);let i=n.get(e);return void 0===i&&(i=t),[i,r]}async function m(e,t){let n;const{waitUntilExit:r}=(0,a.render)(s().createElement(p,null,s().createElement(e,Object.assign({},t,{useSubmit:e=>{const{exit:t}=(0,l.useContext)(a.AppContext),{stdin:r}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{const i=(r,i)=>{"return"===i.name&&(n=e,t())};return r.on("keypress",i),()=>{r.off("keypress",i)}},[r,t,e])}}))));return await r(),n}var v=n(8042),b=n(9645),g=n(4410);const _={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},y=n.n(g)()(_.appId,_.apiKey).initIndex(_.indexName),D=async(e,t=0)=>await y.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10}),w=["regular","dev","peer"];class E extends o.BaseCommand{async execute(){const e=await u.Configuration.find(this.context.cwd,this.context.plugins),t=()=>s().createElement(a.Box,{flexDirection:"row"},s().createElement(a.Box,{flexDirection:"column",width:48},s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},""),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to move between packages."),s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to select a package."),s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," again to change the target.")),s().createElement(a.Box,{flexDirection:"column"},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to install the selected packages."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to abort."))),n=()=>s().createElement(s().Fragment,null,s().createElement(a.Box,{width:15},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Owner")),s().createElement(a.Box,{width:11},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Version")),s().createElement(a.Box,{width:10},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Downloads"))),r=()=>s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Target")),i=({hit:t,active:n})=>{const[r,i]=h(t.name,null);!function({active:e,handler:t}){const{stdin:n}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!e)return;const r=(e,n)=>{"space"===n.name&&t()};return n.on("keypress",r),()=>{n.off("keypress",r)}},[t])}({active:n,handler:()=>{if(!r)return void i(w[0]);const e=w.indexOf(r)+1;e===w.length?i(null):i(w[e])}});const o=u.structUtils.parseIdent(t.name),c=u.structUtils.prettyIdent(e,o);return s().createElement(a.Box,null,s().createElement(a.Box,{width:45,textWrap:"wrap"},s().createElement(a.Text,{bold:!0},c)),s().createElement(a.Box,{width:14,textWrap:"truncate",marginLeft:1},s().createElement(a.Text,{bold:!0},t.owner.name)),s().createElement(a.Box,{width:10,textWrap:"truncate",marginLeft:1},s().createElement(a.Text,{italic:!0},t.version)),s().createElement(a.Box,{width:16,textWrap:"truncate",marginLeft:1},t.humanDownloadsLast30Days))},o=({name:t,active:n})=>{const[r]=h(t,null),i=u.structUtils.parseIdent(t);return s().createElement(a.Box,null,s().createElement(a.Box,{width:47},s().createElement(a.Text,{bold:!0}," - ",u.structUtils.prettyIdent(e,i))),w.map(e=>s().createElement(a.Box,{key:e,width:14,marginLeft:1},r===e?s().createElement(a.Color,{green:!0}," ◉ "):s().createElement(a.Color,{yellow:!0}," ◯ "),s().createElement(a.Text,{bold:!0},e))))},c=()=>s().createElement(a.Box,{marginTop:1},s().createElement(a.Text,null,"Powered by Algolia.")),d=await m(({useSubmit:e})=>{const u=h();e(u);const d=Array.from(u.keys()).filter(e=>null!==u.get(e)),[p,m]=(0,l.useState)(""),[v,g]=(0,l.useState)(0),[_,y]=(0,l.useState)([]);(0,l.useEffect)(()=>{p?(async()=>{g(0);const e=await D(p);e.query===p&&y(e.hits)})():y([])},[p]);const w=b.ZP;return s().createElement(a.Box,{flexDirection:"column"},s().createElement(t,null),s().createElement(a.Box,{flexDirection:"row",marginTop:1},s().createElement(a.Text,{bold:!0},"Search: "),s().createElement(a.Box,{width:41},s().createElement(w,{value:p,onChange:e=>{e.match(/\t| /)||m(e)},placeholder:"i.e. babel, webpack, react...",showCursor:!1})),s().createElement(n,null)),_.length?s().createElement(f,{radius:2,loop:!1,children:_.map(e=>s().createElement(i,{key:e.name,hit:e,active:!1})),willReachEnd:async()=>{const e=await D(p,v+1);e.query===p&&e.page-1===v&&(g(e.page),y([..._,...e.hits]))}}):s().createElement(a.Color,{gray:!0},"Start typing..."),s().createElement(a.Box,{flexDirection:"row",marginTop:1},s().createElement(a.Box,{width:49},s().createElement(a.Text,{bold:!0},"Selected:")),s().createElement(r,null)),d.length?d.map(e=>s().createElement(o,{key:e,name:e,active:!1})):s().createElement(a.Color,{gray:!0},"No selected packages..."),s().createElement(c,null))},{});if(void 0===d)return 1;const p=Array.from(d.keys()).filter(e=>"regular"===d.get(e)),v=Array.from(d.keys()).filter(e=>"dev"===d.get(e)),g=Array.from(d.keys()).filter(e=>"peer"===d.get(e));return p.length&&await this.cli.run(["add",...p]),v.length&&await this.cli.run(["add","--dev",...v]),g&&await this.cli.run(["add","--peer",...g]),0}}E.usage=v.Command.Usage({category:"Interactive commands",description:"open the search interface",details:"\n This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.\n ",examples:[["Open the search window","yarn search"]]}),r([v.Command.Path("search")],E.prototype,"execute",null);const C=function({active:e,options:t,value:n,onChange:r,sizes:i=[]}){const o=t.map(({value:e})=>e),u=o.indexOf(n);return c(n,o,{active:e,minus:"left",plus:"right",set:r}),s().createElement(s().Fragment,null,t.map(({label:e},t)=>t===u?s().createElement(a.Box,{key:e,width:i[t]-1||0,marginLeft:1,textWrap:"truncate"},s().createElement(a.Color,{green:!0}," ◉ ")," ",s().createElement(a.Text,{bold:!0},e)):s().createElement(a.Box,{key:e,width:i[t]-1||0,marginLeft:1,textWrap:"truncate"},s().createElement(a.Color,{yellow:!0}," ◯ ")," ",s().createElement(a.Text,{bold:!0},e))))};var T=n(4850);function k(){}function S(e,t,n,r,i){for(var o=0,u=t.length,a=0,l=0;oe.length?n:e})),s.value=e.join(f)}else s.value=e.join(n.slice(a,a+s.count));a+=s.count,s.added||(l+=s.count)}}var d=t[u-1];return u>1&&"string"==typeof d.value&&(d.added||d.removed)&&e.equals("",d.value)&&(t[u-2].value+=d.value,t.pop()),t}function M(e){return{newPos:e.newPos,components:e.components.slice(0)}}k.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.callback;"function"==typeof n&&(r=n,n={}),this.options=n;var i=this;function o(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var u=(t=this.removeEmpty(this.tokenize(t))).length,a=e.length,l=1,s=u+a,c=[{newPos:-1,components:[]}],f=this.extractCommon(c[0],t,e,0);if(c[0].newPos+1>=u&&f+1>=a)return o([{value:this.join(t),count:t.length}]);function d(){for(var n=-1*l;n<=l;n+=2){var r=void 0,s=c[n-1],f=c[n+1],d=(f?f.newPos:0)-n;s&&(c[n-1]=void 0);var p=s&&s.newPos+1=u&&d+1>=a)return o(S(i,r.components,t,e,i.useLongestToken));c[n]=r}else c[n]=void 0}l++}if(r)!function e(){setTimeout((function(){if(l>s)return r();d()||e()}),0)}();else for(;l<=s;){var p=d();if(p)return p}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){for(var i=t.length,o=n.length,u=e.newPos,a=u-r,l=0;u+1=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;class q extends o.BaseCommand{async execute(){const e=await u.Configuration.find(this.context.cwd,this.context.plugins),{project:t,workspace:n}=await u.Project.find(e,this.context.cwd),r=await u.Cache.find(e);if(!n)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=(t,n)=>{const r=(i=t,o=n,a=x(a,{ignoreWhitespace:!0}),O.diff(i,o,a));var i,o,a;let l="";for(const t of r)t.added?l+=u.formatUtils.pretty(e,t.value,"green"):t.removed||(l+=t.value);return l},c=(t,n)=>{if(t===n)return n;const r=u.structUtils.parseRange(t),o=u.structUtils.parseRange(n),a=r.selector.match(z),l=o.selector.match(z);if(!a||!l)return i(t,n);const s=["gray","red","yellow","green","magenta"];let c=null,f="";for(let t=1;t{const u=await T.suggestUtils.fetchDescriptorFrom(e,o,{project:t,cache:r,preserveModifier:i,workspace:n});return null!==u?u.range:e.range},p=()=>s().createElement(a.Box,{flexDirection:"row"},s().createElement(a.Box,{flexDirection:"column",width:49},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},""),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to select packages."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},""),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to select versions.")),s().createElement(a.Box,{flexDirection:"column"},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to install."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"")," to abort."))),v=()=>s().createElement(a.Box,{flexDirection:"row",paddingTop:1,paddingBottom:1},s().createElement(a.Box,{width:50},s().createElement(a.Text,{bold:!0},s().createElement(a.Color,{greenBright:!0},"?")," Pick the packages you want to upgrade.")),s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Current")),s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Range/Latest"))),b=({active:t,descriptor:n})=>{const[r,i]=h(n.descriptorHash,null),[o,f]=(0,l.useState)(null),p=(0,l.useRef)(!0);return(0,l.useEffect)(()=>()=>{p.current=!1},[]),(0,l.useEffect)(()=>{(async e=>{const t=W().valid(e.range)?"^"+e.range:e.range,[n,r]=await Promise.all([d(e,e.range,t),d(e,e.range,"latest")]),i=[{value:null,label:e.range}];return n!==e.range&&i.push({value:n,label:c(e.range,n)}),r!==n&&r!==e.range&&i.push({value:r,label:c(e.range,r)}),i})(n).then(e=>{p.current&&f(e)})},[n.descriptorHash]),s().createElement(a.Box,null,s().createElement(a.Box,{width:45,textWrap:"wrap"},s().createElement(a.Text,{bold:!0},u.structUtils.prettyIdent(e,n))),null!==o?s().createElement(C,{active:t,options:o,value:r,onChange:i,sizes:[17,17,17]}):s().createElement(a.Box,{marginLeft:2},s().createElement(a.Color,{gray:!0},"Fetching suggestions...")))},g=await m(({useSubmit:e})=>{e(h());const n=new Map;for(const e of t.workspaces)for(const r of["dependencies","devDependencies"])for(const i of e.manifest[r].values())null===t.tryWorkspaceByDescriptor(i)&&n.set(i.descriptorHash,i);const r=u.miscUtils.sortMap(n.values(),e=>u.structUtils.stringifyDescriptor(e));return s().createElement(s().Fragment,null,s().createElement(a.Box,{flexDirection:"column"},s().createElement(p,null),s().createElement(v,null),s().createElement(f,{radius:10,children:r.map(e=>s().createElement(b,{key:e.descriptorHash,active:!1,descriptor:e}))})))},{});if(void 0===g)return 1;let _=!1;for(const e of t.workspaces)for(const t of["dependencies","devDependencies"]){const n=e.manifest[t];for(const e of n.values()){const t=g.get(e.descriptorHash);null!=t&&(n.set(e.identHash,u.structUtils.makeDescriptor(e,t)),_=!0)}}if(!_)return 0;return(await u.StreamReport.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:r,report:e})})).exitCode()}}q.usage=v.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:"\n This command opens a fullscreen terminal interface where you can see the packages used by your application, their status compared to the latest versions available on the remote registry, and let you upgrade.\n ",examples:[["Open the upgrade window","yarn upgrade-interactive"]]}),r([v.Command.Path("upgrade-interactive")],q.prototype,"execute",null);const H={commands:[E,q]}},9645:(e,t,n)=>{"use strict";t.ZP=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var o=r?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(7382)),i=a(n(6271)),o=n(4930),u=a(n(5882));function a(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t{const{value:t,focus:n,showCursor:r,mask:i,onChange:o,onSubmit:u}=this.props,{cursorOffset:a}=this.state;if(!1===n||!1===this.isMounted)return;const l=String(e);if(""===l||""===l||""===l)return;if("\r"===l)return void(u&&u(t));let s=a,c=t,f=0;""===l?r&&!i&&s--:""===l?r&&!i&&s++:"\b"===l||""===l?(c=c.slice(0,s-1)+c.slice(s,c.length),s--):(c=c.slice(0,s)+l+c.slice(s,c.length),s+=l.length,l.length>1&&(f=l.length)),s<0&&(s=0),s>c.length&&(s=c.length),this.setState({cursorOffset:s,cursorWidth:f}),c!==t&&o(c)})}render(){const{value:e,placeholder:t,showCursor:n,focus:i,mask:a,highlightPastedText:l}=this.props,{cursorOffset:s,cursorWidth:c}=this.state,f=e.length>0;let d=e;const p=l?c:0;if(n&&!a&&i){d=e.length>0?"":u.default.inverse(" ");let t=0;for(const n of e)d+=t>=s-p&&t<=s?u.default.inverse(n):n,t++;e.length>0&&s===e.length&&(d+=u.default.inverse(" "))}return a&&(d=a.repeat(d.length)),r.default.createElement(o.Color,{dim:!f&&t},t?f?d:t:d)}componentDidMount(){const{stdin:e,setRawMode:t}=this.props;this.isMounted=!0,t(!0),e.on("data",this.handleInput)}componentWillUnmount(){const{stdin:e,setRawMode:t}=this.props;this.isMounted=!1,e.removeListener("data",this.handleInput),t(!1)}}c(f,"propTypes",{value:i.default.string.isRequired,placeholder:i.default.string,focus:i.default.bool,mask:i.default.string,highlightPastedText:i.default.bool,showCursor:i.default.bool,stdin:i.default.object.isRequired,setRawMode:i.default.func.isRequired,onChange:i.default.func.isRequired,onSubmit:i.default.func}),c(f,"defaultProps",{placeholder:"",showCursor:!0,focus:!0,mask:void 0,highlightPastedText:!1,onSubmit:void 0});class d extends r.PureComponent{render(){return r.default.createElement(o.StdinContext.Consumer,null,({stdin:e,setRawMode:t})=>r.default.createElement(f,s({},this.props,{stdin:e,setRawMode:t})))}}t.ZP=d;class p extends r.PureComponent{constructor(...e){super(...e),c(this,"state",{value:""}),c(this,"setValue",this.setValue.bind(this))}setValue(e){this.setState({value:e})}render(){return r.default.createElement(d,s({},this.props,{value:this.state.value,onChange:this.setValue}))}}},9043:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(2821))&&r.__esModule?r:{default:r};const o=(e,t)=>({}.hasOwnProperty.call(e,t));t.default=(e,t={})=>{((e,t)=>{t.margin&&(e.setMargin(i.default.EDGE_TOP,t.margin),e.setMargin(i.default.EDGE_BOTTOM,t.margin),e.setMargin(i.default.EDGE_START,t.margin),e.setMargin(i.default.EDGE_END,t.margin)),t.marginX&&(e.setMargin(i.default.EDGE_START,t.marginX),e.setMargin(i.default.EDGE_END,t.marginX)),t.marginY&&(e.setMargin(i.default.EDGE_TOP,t.marginY),e.setMargin(i.default.EDGE_BOTTOM,t.marginY)),t.marginTop&&e.setMargin(i.default.EDGE_TOP,t.marginTop),t.marginBottom&&e.setMargin(i.default.EDGE_BOTTOM,t.marginBottom),t.marginLeft&&e.setMargin(i.default.EDGE_START,t.marginLeft),t.marginRight&&e.setMargin(i.default.EDGE_END,t.marginRight)})(e,t),((e,t)=>{t.padding&&(e.setPadding(i.default.EDGE_TOP,t.padding),e.setPadding(i.default.EDGE_BOTTOM,t.padding),e.setPadding(i.default.EDGE_LEFT,t.padding),e.setPadding(i.default.EDGE_RIGHT,t.padding)),t.paddingX&&(e.setPadding(i.default.EDGE_LEFT,t.paddingX),e.setPadding(i.default.EDGE_RIGHT,t.paddingX)),t.paddingY&&(e.setPadding(i.default.EDGE_TOP,t.paddingY),e.setPadding(i.default.EDGE_BOTTOM,t.paddingY)),t.paddingTop&&e.setPadding(i.default.EDGE_TOP,t.paddingTop),t.paddingBottom&&e.setPadding(i.default.EDGE_BOTTOM,t.paddingBottom),t.paddingLeft&&e.setPadding(i.default.EDGE_LEFT,t.paddingLeft),t.paddingRight&&e.setPadding(i.default.EDGE_RIGHT,t.paddingRight)})(e,t),((e,t)=>{t.flexGrow&&e.setFlexGrow(t.flexGrow),t.flexShrink&&e.setFlexShrink(t.flexShrink),t.flexDirection&&("row"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_ROW),"row-reverse"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_ROW_REVERSE),"column"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_COLUMN),"column-reverse"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_COLUMN_REVERSE)),o(t,"flexBasis")&&e.setFlexBasis(t.flexBasis),t.alignItems&&("flex-start"===t.alignItems&&e.setAlignItems(i.default.ALIGN_FLEX_START),"center"===t.alignItems&&e.setAlignItems(i.default.ALIGN_CENTER),"flex-end"===t.alignItems&&e.setAlignItems(i.default.ALIGN_FLEX_END)),t.justifyContent&&("flex-start"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_FLEX_START),"center"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_CENTER),"flex-end"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_FLEX_END),"space-between"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_SPACE_BETWEEN),"space-around"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_SPACE_AROUND))})(e,t),((e,t)=>{o(t,"width")&&e.setWidth(t.width),o(t,"height")&&e.setHeight(t.height),o(t,"minWidth")&&e.setMinWidth(t.minWidth),o(t,"minHeight")&&e.setMinHeight(t.minHeight)})(e,t)}},1:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(2821)),i=u(n(9043)),o=u(n(3425));function u(e){return e&&e.__esModule?e:{default:e}}const a=(e,t)=>{const{config:n,terminalWidth:u,skipStaticElements:l}=t,s=r.default.Node.create(n);e.yogaNode=s;const c=e.style||{};if("ROOT"===e.nodeName){if(s.setWidth(u||100),e.childNodes.length>0){const n=e.childNodes.filter(e=>!l||!e.unstable__static);for(const[e,r]of Object.entries(n)){const n=a(r,t).yogaNode;s.insertChild(n,e)}}return e}if((0,i.default)(s,c),e.textContent||e.nodeValue){const{width:t,height:n}=(0,o.default)(e.textContent||e.nodeValue);return s.setWidth(c.width||t),s.setHeight(c.height||n),e}if(Array.isArray(e.childNodes)&&e.childNodes.length>0){const n=e.childNodes.filter(e=>!l||!e.unstable__static);for(const[e,r]of Object.entries(n)){const{yogaNode:n}=a(r,t);s.insertChild(n,e)}}return e};var l=a;t.default=l},1752:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(1058)),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=c(n(6271)),u=c(n(1305)),a=c(n(4974)),l=c(n(7454)),s=c(n(3742));function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class d extends i.PureComponent{isRawModeSupported(){return this.props.stdin.isTTY}constructor(){super(),f(this,"handleSetRawMode",e=>{const{stdin:t}=this.props;if(!this.isRawModeSupported())throw t===process.stdin?new Error("Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported"):new Error("Raw mode is not supported on the stdin provided to Ink.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported");if(t.setEncoding("utf8"),e)return 0===this.rawModeEnabledCount&&(t.addListener("data",this.handleInput),t.resume(),t.setRawMode(!0),r.default.emitKeypressEvents(t)),void this.rawModeEnabledCount++;0==--this.rawModeEnabledCount&&(t.setRawMode(!1),t.removeListener("data",this.handleInput),t.pause())}),f(this,"handleInput",e=>{""===e&&this.props.exitOnCtrlC&&this.handleExit()}),f(this,"handleExit",e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)}),this.rawModeEnabledCount=0}render(){return i.default.createElement(a.default.Provider,{value:{exit:this.handleExit}},i.default.createElement(l.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported()}},i.default.createElement(s.default.Provider,{value:{stdout:this.props.stdout}},this.props.children)))}componentDidMount(){u.default.hide(this.props.stdout)}componentWillUnmount(){u.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}}t.default=d,f(d,"propTypes",{children:o.default.node.isRequired,stdin:o.default.object.isRequired,stdout:o.default.object.isRequired,exitOnCtrlC:o.default.bool.isRequired,onExit:o.default.func.isRequired})},4974:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({exit(){}});t.default=i},522:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=(r=n(6271))&&r.__esModule?r:{default:r};function u(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class l extends i.PureComponent{constructor(){super(),this.nodeRef=i.default.createRef()}render(){const e=this.props,{children:t,unstable__transformChildren:n}=e,r=u(e,["children","unstable__transformChildren"]);return i.default.createElement("div",{ref:this.nodeRef,style:r,unstable__transformChildren:n},t)}unstable__getComputedWidth(){return this.nodeRef.current.yogaNode.getComputedWidth()}}t.default=l,a(l,"propTypes",{margin:o.default.number,marginX:o.default.number,marginY:o.default.number,marginTop:o.default.number,marginBottom:o.default.number,marginLeft:o.default.number,marginRight:o.default.number,padding:o.default.number,paddingX:o.default.number,paddingY:o.default.number,paddingTop:o.default.number,paddingBottom:o.default.number,paddingLeft:o.default.number,paddingRight:o.default.number,width:o.default.oneOfType([o.default.number,o.default.string]),minWidth:o.default.number,height:o.default.oneOfType([o.default.number,o.default.string]),minHeight:o.default.number,flexGrow:o.default.number,flexShrink:o.default.number,flexDirection:o.default.oneOf(["row","row-reverse","column","column-reverse"]),flexBasis:o.default.oneOfType([o.default.number,o.default.string]),alignItems:o.default.oneOf(["flex-start","center","flex-end"]),justifyContent:o.default.oneOf(["flex-start","center","flex-end","space-between","space-around"]),textWrap:o.default.oneOf(["wrap","truncate","truncate-start","truncate-middle","truncate-end"]),unstable__transformChildren:o.default.func,children:o.default.node}),a(l,"defaultProps",{flexDirection:"row",flexGrow:0,flexShrink:1})},3862:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7382)),i=a(n(6271)),o=a(n(3810)),u=a(n(9244));function a(e){return e&&e.__esModule?e:{default:e}}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}const s=["hex","hsl","hsv","hwb","rgb","keyword","bgHex","bgHsl","bgHsv","bgHwb","bgRgb","bgKeyword"],c=e=>{let{children:t}=e,n=l(e,["children"]);return r.default.createElement("span",{style:{flexDirection:"row"},unstable__transformChildren:e=>(Object.keys(n).forEach(t=>{n[t]&&(s.includes(t)?e=u.default[t](...(0,o.default)(n[t]))(e):"function"==typeof u.default[t]&&(e=u.default[t](e)))}),e)},t)};c.propTypes={children:i.default.node.isRequired};var f=c;t.default=f},8075:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=(r=n(6271))&&r.__esModule?r:{default:r};function u(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=e=>Array.isArray(e)?e:[e];class s extends i.Component{constructor(...e){super(...e),a(this,"state",{lastIndex:null})}render(){const e=this.props,{children:t}=e,n=u(e,["children"]),{lastIndex:r}=this.state;let o=t;return"number"==typeof r&&(o=l(t).slice(r)),i.default.createElement("div",{unstable__static:!0,style:n},o)}componentDidMount(){this.saveLastIndex(this.props.children)}componentDidUpdate(e,t){t.lastIndex===this.state.lastIndex&&this.saveLastIndex(this.props.children)}saveLastIndex(e){const t=l(e).length;this.state.lastIndex!==t&&this.setState({lastIndex:t})}}t.default=s,a(s,"propTypes",{children:o.default.node})},7454:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({stdin:void 0,setRawMode:void 0});t.default=i},3742:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({stdout:void 0});t.default=i},4127:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(7382)),i=u(n(6271)),o=u(n(9244));function u(e){return e&&e.__esModule?e:{default:e}}const a=({bold:e,italic:t,underline:n,strikethrough:i,children:u,unstable__transformChildren:a})=>r.default.createElement("span",{style:{flexDirection:"row"},unstable__transformChildren:r=>(e&&(r=o.default.bold(r)),t&&(r=o.default.italic(r)),n&&(r=o.default.underline(r)),i&&(r=o.default.strikethrough(r)),a&&(r=a(r)),r)},u);a.propTypes={bold:i.default.bool,italic:i.default.bool,underline:i.default.bool,strikethrough:i.default.bool,children:i.default.node.isRequired,unstable__transformChildren:i.default.func},a.defaultProps={bold:!1,italic:!1,underline:!1,strikethrough:!1,unstable__transformChildren:void 0};var l=a;t.default=l},3976:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createTextNode=t.setAttribute=t.removeChildNode=t.insertBeforeNode=t.appendStaticNode=t.appendChildNode=t.createNode=void 0;t.createNode=e=>({nodeName:e.toUpperCase(),style:{},attributes:{},childNodes:[],parentNode:null});t.appendChildNode=(e,t)=>{t.parentNode&&n(t.parentNode,t),t.parentNode=e,e.childNodes.push(t)};t.appendStaticNode=(e,t)=>{e.childNodes.push(t)};t.insertBeforeNode=(e,t,r)=>{t.parentNode&&n(t.parentNode,t),t.parentNode=e;const i=e.childNodes.indexOf(r);i>=0?e.childNodes.splice(i,0,t):e.childNodes.push(t)};const n=(e,t)=>{t.parentNode=null;const n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1)};t.removeChildNode=n;t.setAttribute=(e,t,n)=>{e.attributes[t]=n};t.createTextNode=e=>({nodeName:"#text",nodeValue:e})},4431:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>e.getComputedWidth()-2*e.getComputedPadding()},4930:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"render",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Box",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"Text",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"Color",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"AppContext",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"StdinContext",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"StdoutContext",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"Static",{enumerable:!0,get:function(){return c.default}});var r=f(n(4763)),i=f(n(522)),o=f(n(4127)),u=f(n(3862)),a=f(n(4974)),l=f(n(7454)),s=f(n(3742)),c=f(n(8075));function f(e){return e&&e.__esModule?e:{default:e}}},7018:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=h(n(7382)),i=h(n(4623)),o=h(n(2939)),u=h(n(4046)),a=h(n(2738)),l=h(n(6458)),s=h(n(7190)),c=h(n(9646)),f=n(3976),d=h(n(4455)),p=h(n(1752));function h(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){(0,o.default)(this),this.options=e,this.rootNode=(0,f.createNode)("root"),this.rootNode.onRender=this.onRender,this.renderer=(0,c.default)({terminalWidth:e.stdout.columns}),this.log=u.default.create(e.stdout),this.throttledLog=e.debug?this.log:(0,i.default)(this.log,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=s.default.createContainer(this.rootNode,!1,!1),this.exitPromise=new Promise((e,t)=>{this.resolveExitPromise=e,this.rejectExitPromise=t}),this.unsubscribeExit=(0,l.default)(this.unmount,{alwaysLast:!1})}onRender(){if(this.isUnmounted)return;const{output:e,staticOutput:t}=this.renderer(this.rootNode),n=t&&"\n"!==t;if(this.options.debug)return n&&(this.fullStaticOutput+=t),void this.options.stdout.write(this.fullStaticOutput+e);n&&(a.default||this.log.clear(),this.options.stdout.write(t),a.default||this.log(e)),e!==this.lastOutput&&(a.default||this.throttledLog(e),this.lastOutput=e)}render(e){const t=r.default.createElement(p.default,{stdin:this.options.stdin,stdout:this.options.stdout,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);s.default.updateContainer(t,this.container)}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),a.default?this.options.stdout.write(this.lastOutput+"\n"):this.options.debug||this.log.done(),this.isUnmounted=!0,s.default.updateContainer(null,this.container),d.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise}}},4455:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=new WeakMap;t.default=n},3425:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(128))&&r.__esModule?r:{default:r};t.default=e=>({width:(0,i.default)(e),height:e.split("\n").length})},6734:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(2989)),i=o(n(7498));function o(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor({width:e,height:t}){const n=[];for(let r=0;re.trimRight()).join("\n")}}},7190:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=n(5201),o=(r=n(9437))&&r.__esModule?r:{default:r},u=n(3976);const a={schedulePassiveEffects:i.unstable_scheduleCallback,cancelPassiveEffects:i.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>!0,prepareForCommit:()=>{},resetAfterCommit:e=>{e.onRender()},getChildHostContext:()=>!0,shouldSetTextContent:(e,t)=>"string"==typeof t.children||"number"==typeof t.children,createInstance:(e,t)=>{const n=(0,u.createNode)(e);for(const[r,i]of Object.entries(t))if("children"===r){if("string"==typeof i||"number"==typeof i){if("div"===e){const e=(0,u.createNode)("div");e.textContent=String(i),(0,u.appendChildNode)(n,e)}"span"===e&&(n.textContent=String(i))}}else"style"===r?Object.assign(n.style,i):"unstable__transformChildren"===r?n.unstable__transformChildren=i:"unstable__static"===r?n.unstable__static=!0:(0,u.setAttribute)(n,r,i);return n},createTextInstance:u.createTextNode,resetTextContent:e=>{if(e.textContent&&(e.textContent=""),e.childNodes.length>0)for(const t of e.childNodes)t.yogaNode.free(),(0,u.removeChildNode)(e,t)},getPublicInstance:e=>e,appendInitialChild:u.appendChildNode,appendChild:u.appendChildNode,insertBefore:u.insertBeforeNode,finalizeInitialChildren:()=>{},supportsMutation:!0,appendChildToContainer:u.appendChildNode,insertInContainerBefore:u.insertBeforeNode,removeChildFromContainer:u.removeChildNode,prepareUpdate:()=>!0,commitUpdate:(e,t,n,r,i)=>{for(const[t,r]of Object.entries(i))if("children"===t){if("string"==typeof r||"number"==typeof r){if("div"===n)if(0===e.childNodes.length){const t=(0,u.createNode)("div");t.textContent=String(r),(0,u.appendChildNode)(e,t)}else e.childNodes[0].textContent=String(r);"span"===n&&(e.textContent=String(r))}}else"style"===t?Object.assign(e.style,r):"unstable__transformChildren"===t?e.unstable__transformChildren=r:"unstable__static"===t?e.unstable__static=!0:(0,u.setAttribute)(e,t,r)},commitTextUpdate:(e,t,n)=>{"#text"===e.nodeName?e.nodeValue=n:e.textContent=n},removeChild:u.removeChildNode};var l=(0,o.default)(a);t.default=l},3496:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(128)),i=u(n(335)),o=u(n(4431));function u(e){return e&&e.__esModule?e:{default:e}}const a=e=>{if("#text"===e.nodeName)return!0;if("SPAN"===e.nodeName){if(e.textContent)return!0;if(Array.isArray(e.childNodes))return e.childNodes.every(a)}return!1},l=e=>{let t="";for(const n of e.childNodes){let e;"#text"===n.nodeName&&(e=n.nodeValue),"SPAN"===n.nodeName&&(e=n.textContent||l(n)),n.unstable__transformChildren&&(e=n.unstable__transformChildren(e)),t+=e}return t},s=(e,t,{offsetX:n=0,offsetY:u=0,transformers:c=[],skipStaticElements:f})=>{if(e.unstable__static&&f)return;const{yogaNode:d}=e,p=n+d.getComputedLeft(),h=u+d.getComputedTop();let m=c;if(e.unstable__transformChildren&&(m=[e.unstable__transformChildren,...c]),e.textContent){let n=e.textContent;if(e.parentNode.style.textWrap){const t=(0,r.default)(n),u=(0,o.default)(e.parentNode.yogaNode);t>u&&(n=(0,i.default)(n,u,{textWrap:e.parentNode.style.textWrap}))}t.write(p,h,n,{transformers:m})}else if("#text"!==e.nodeName){if(Array.isArray(e.childNodes)&&e.childNodes.length>0){if("row"===e.style.flexDirection&&e.childNodes.every(a)){let n=l(e);if(e.style.textWrap){const t=(0,r.default)(n),u=(0,o.default)(d);t>u&&(n=(0,i.default)(n,u,{textWrap:e.style.textWrap}))}return void t.write(p,h,n,{transformers:m})}for(const n of e.childNodes)s(n,t,{offsetX:p,offsetY:h,transformers:m,skipStaticElements:f})}}else t.write(p,h,e.nodeValue,{transformers:m})};var c=s;t.default=c},4763:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(7018)),i=o(n(4455));function o(e){return e&&e.__esModule?e:{default:e}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=(e,t={})=>{let n;return"function"==typeof t.write&&(t={stdout:t,stdin:process.stdin}),t=function(e){for(var t=1;tn.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>i.default.delete(t.stdout)}}},9646:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=f(n(2821)),i=f(n(6734)),o=n(3976),u=f(n(1)),a=f(n(3496)),l=f(n(3425)),s=f(n(335)),c=f(n(4431));function f(e){return e&&e.__esModule?e:{default:e}}const d=e=>{if(e.textContent&&"string"==typeof e.parentNode.style.textWrap){const{yogaNode:t}=e,n=e.parentNode.yogaNode,r=(0,c.default)(n);if(t.getComputedWidth()>r){const{textWrap:n}=e.parentNode.style,i=(0,s.default)(e.textContent,r,{textWrap:n}),{width:o,height:u}=(0,l.default)(i);t.setWidth(o),t.setHeight(u)}}else if(Array.isArray(e.childNodes)&&e.childNodes.length>0)for(const t of e.childNodes)d(t)},p=e=>{const t=[];for(const n of e.childNodes)n.unstable__static&&t.push(n),Array.isArray(n.childNodes)&&n.childNodes.length>0&&t.push(...p(n));return t};t.default=({terminalWidth:e})=>{const t=r.default.Config.create();let n,l;return s=>{n&&n.freeRecursive(),l&&l.freeRecursive();const c=p(s);let f;if(c.length,1===c.length){const n=(0,o.createNode)("root");(0,o.appendStaticNode)(n,c[0]);const{yogaNode:s}=(0,u.default)(n,{config:t,terminalWidth:e,skipStaticElements:!1});s.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),d(n),s.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),l=s,f=new i.default({width:s.getComputedWidth(),height:s.getComputedHeight()}),(0,a.default)(n,f,{skipStaticElements:!1})}const{yogaNode:h}=(0,u.default)(s,{config:t,terminalWidth:e,skipStaticElements:!0});h.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),d(s),h.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),n=h;const m=new i.default({width:h.getComputedWidth(),height:h.getComputedHeight()});return(0,a.default)(s,m,{skipStaticElements:!0}),{output:m.get(),staticOutput:f?f.get()+"\n":void 0}}}},335:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(5449)),i=o(n(4093));function o(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,{textWrap:n}={})=>{if("wrap"===n)return(0,r.default)(e,t,{trim:!1,hard:!0});if(String(n).startsWith("truncate")){let r;return"truncate"!==n&&"truncate-end"!==n||(r="end"),"truncate-middle"===n&&(r="middle"),"truncate-start"===n&&(r="start"),(0,i.default)(e,t,{position:r})}return e}},5591:(e,t,n)=>{ -/** @license React v0.20.4 - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -e.exports=function t(r){"use strict";var i=n(9381),o=n(7382),u=n(5201);function a(e,t,n,r,i,o,u,a){if(!e){if(e=void 0,void 0===t)e=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,o,u,a],s=0;(e=Error(t.replace(/%s/g,(function(){return l[s++]})))).name="Invariant Violation"}throw e.framesToPop=1,e}}function l(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;rOe||(e.current=Pe[Oe],Pe[Oe]=null,Oe--)}function Ne(e,t){Oe++,Pe[Oe]=e.current,e.current=t}var Ie={},Fe={current:Ie},Be={current:!1},Le=Ie;function Ue(e,t){var n=e.type.contextTypes;if(!n)return Ie;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function je(e){return null!=(e=e.childContextTypes)}function We(e){Re(Be),Re(Fe)}function ze(e){Re(Be),Re(Fe)}function qe(e,t,n){Fe.current!==Ie&&l("168"),Ne(Fe,t),Ne(Be,n)}function He(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())o in e||l("108",T(t)||"Unknown",o);return i({},n,r)}function Ge(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Ie,Le=Fe.current,Ne(Fe,t),Ne(Be,Be.current),!0}function Ve(e,t,n){var r=e.stateNode;r||l("169"),n?(t=He(e,t,Le),r.__reactInternalMemoizedMergedChildContext=t,Re(Be),Re(Fe),Ne(Fe,t)):Re(Be),Ne(Be,n)}var Ye=null,Ke=null;function $e(e){return function(t){try{return e(t)}catch(e){}}}function Xe(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Je(e,t,n,r){return new Xe(e,t,n,r)}function Qe(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ze(e,t){var n=e.alternate;return null===n?((n=Je(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function et(e,t,n,r,i,o){var u=2;if(r=e,"function"==typeof e)Qe(e)&&(u=1);else if("string"==typeof e)u=5;else e:switch(e){case p:return tt(n.children,i,o,t);case g:return nt(n,3|i,o,t);case h:return nt(n,2|i,o,t);case m:return(e=Je(12,n,t,4|i)).elementType=m,e.type=m,e.expirationTime=o,e;case y:return(e=Je(13,n,t,i)).elementType=y,e.type=y,e.expirationTime=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case v:u=10;break e;case b:u=9;break e;case _:u=11;break e;case D:u=14;break e;case w:u=16,r=null;break e}l("130",null==e?e:typeof e,"")}return(t=Je(u,n,t,i)).elementType=e,t.type=r,t.expirationTime=o,t}function tt(e,t,n,r){return(e=Je(7,e,r,t)).expirationTime=n,e}function nt(e,t,n,r){return e=Je(8,e,r,t),t=0==(1&t)?h:g,e.elementType=t,e.type=t,e.expirationTime=n,e}function rt(e,t,n){return(e=Je(6,e,null,t)).expirationTime=n,e}function it(e,t,n){return(t=Je(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ot(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:nt&&(e.latestPendingTime=t),lt(t,e)}function ut(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:nt&&(e.latestSuspendedTime=t),lt(t,e)}function at(e,t){var n=e.earliestPendingTime;return n>t&&(t=n),(e=e.earliestSuspendedTime)>t&&(t=e),t}function lt(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,i=t.earliestPendingTime,o=t.latestPingedTime;0===(i=0!==i?i:o)&&(0===e||re&&(e=n),t.nextExpirationTimeToWorkOn=i,t.expirationTime=e}function st(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var ct=Object.prototype.hasOwnProperty;function ft(e,t){if(st(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;rd?(p=f,f=null):p=f.sibling;var h=v(i,f,a[d],l);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&t(i,f),u=o(h,u,d),null===c?s=h:c.sibling=h,c=h,f=p}if(d===a.length)return n(i,f),s;if(null===f){for(;dp?(h=d,d=null):h=d.sibling;var _=v(i,d,g.value,s);if(null===_){d||(d=h);break}e&&d&&null===_.alternate&&t(i,d),u=o(_,u,p),null===f?c=_:f.sibling=_,f=_,d=h}if(g.done)return n(i,d),c;if(null===d){for(;!g.done;p++,g=a.next())null!==(g=m(i,g.value,s))&&(u=o(g,u,p),null===f?c=g:f.sibling=g,f=g);return c}for(d=r(i,d);!g.done;p++,g=a.next())null!==(g=b(d,i,p,g.value,s))&&(e&&null!==g.alternate&&d.delete(null===g.key?p:g.key),u=o(g,u,p),null===f?c=g:f.sibling=g,f=g);return e&&d.forEach((function(e){return t(i,e)})),c}return function(e,r,o,a){var s="object"==typeof o&&null!==o&&o.type===p&&null===o.key;s&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case f:e:{for(c=o.key,s=r;null!==s;){if(s.key===c){if(7===s.tag?o.type===p:s.elementType===o.type){n(e,s.sibling),(r=i(s,o.type===p?o.props.children:o.props)).ref=Dt(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===p?((r=tt(o.props.children,e.mode,a,o.key)).return=e,e=r):((a=et(o.type,o.key,o.props,null,e.mode,a)).ref=Dt(e,r,o),a.return=e,e=a)}return u(e);case d:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=i(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=it(o,e.mode,a)).return=e,e=r}return u(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,o)).return=e,e=r):(n(e,r),(r=rt(o,e.mode,a)).return=e,e=r),u(e);if(yt(o))return g(e,r,o,a);if(C(o))return _(e,r,o,a);if(c&&wt(e,o),void 0===o&&!s)switch(e.tag){case 1:case 0:l("152",(a=e.type).displayName||a.name||"Component")}return n(e,r)}}var Ct=Et(!0),Tt=Et(!1),kt={},St={current:kt},Mt={current:kt},xt={current:kt};function At(e){return e===kt&&l("174"),e}function Pt(e,t){Ne(xt,t),Ne(Mt,e),Ne(St,kt),t=P(t),Re(St),Ne(St,t)}function Ot(e){Re(St),Re(Mt),Re(xt)}function Rt(){return At(St.current)}function Nt(e){var t=At(xt.current),n=At(St.current);n!==(t=O(n,e.type,t))&&(Ne(Mt,e),Ne(St,t))}function It(e){Mt.current===e&&(Re(St),Re(Mt))}var Ft=s.ReactCurrentDispatcher,Bt=0,Lt=null,Ut=null,jt=null,Wt=null,zt=null,qt=null,Ht=0,Gt=null,Vt=0,Yt=!1,Kt=null,$t=0;function Xt(){l("321")}function Jt(e,t){if(null===t)return!1;for(var n=0;nHt&&(Ht=f)):o=s.eagerReducer===e?s.eagerState:e(o,s.action),u=s,s=s.next}while(null!==s&&s!==r);c||(a=u,i=o),st(o,t.memoizedState)||(Cn=!0),t.memoizedState=o,t.baseUpdate=a,t.baseState=i,n.lastRenderedState=o}return[t.memoizedState,n.dispatch]}function on(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Gt?(Gt={lastEffect:null}).lastEffect=e.next=e:null===(t=Gt.lastEffect)?Gt.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Gt.lastEffect=e),e}function un(e,t,n,r){var i=en();Vt|=e,i.memoizedState=on(t,n,void 0,void 0===r?null:r)}function an(e,t,n,r){var i=tn();r=void 0===r?null:r;var o=void 0;if(null!==Ut){var u=Ut.memoizedState;if(o=u.destroy,null!==r&&Jt(r,u.deps))return void on(0,n,o,r)}Vt|=e,i.memoizedState=on(t,n,o,r)}function ln(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function sn(){}function cn(e,t,n){25>$t||l("301");var r=e.alternate;if(e===Lt||null!==r&&r===Lt)if(Yt=!0,e={expirationTime:Bt,action:n,eagerReducer:null,eagerState:null,next:null},null===Kt&&(Kt=new Map),void 0===(n=Kt.get(t)))Kt.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{Vr();var i=Si(),o={expirationTime:i=Qr(i,e),action:n,eagerReducer:null,eagerState:null,next:null},u=t.last;if(null===u)o.next=o;else{var a=u.next;null!==a&&(o.next=a),u.next=o}if(t.last=o,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=r(s,n);if(o.eagerReducer=r,o.eagerState=c,st(c,s))return}catch(e){}ni(e,i)}}var fn={readContext:Hn,useCallback:Xt,useContext:Xt,useEffect:Xt,useImperativeHandle:Xt,useLayoutEffect:Xt,useMemo:Xt,useReducer:Xt,useRef:Xt,useState:Xt,useDebugValue:Xt},dn={readContext:Hn,useCallback:function(e,t){return en().memoizedState=[e,void 0===t?null:t],e},useContext:Hn,useEffect:function(e,t){return un(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,un(4,36,ln.bind(null,t,e),n)},useLayoutEffect:function(e,t){return un(4,36,e,t)},useMemo:function(e,t){var n=en();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=en();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=cn.bind(null,Lt,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},en().memoizedState=e},useState:function(e){var t=en();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:nn,lastRenderedState:e}).dispatch=cn.bind(null,Lt,e),[t.memoizedState,e]},useDebugValue:sn},pn={readContext:Hn,useCallback:function(e,t){var n=tn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Jt(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Hn,useEffect:function(e,t){return an(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,an(4,36,ln.bind(null,t,e),n)},useLayoutEffect:function(e,t){return an(4,36,e,t)},useMemo:function(e,t){var n=tn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Jt(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:rn,useRef:function(){return tn().memoizedState},useState:function(e){return rn(nn)},useDebugValue:sn},hn=null,mn=null,vn=!1;function bn(e,t){var n=Je(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function gn(e,t){switch(e.tag){case 5:return null!==(t=Ee(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=Ce(t,e.pendingProps))&&(e.stateNode=t,!0);case 13:default:return!1}}function _n(e){if(vn){var t=mn;if(t){var n=t;if(!gn(e,t)){if(!(t=Te(n))||!gn(e,t))return e.effectTag|=2,vn=!1,void(hn=e);bn(hn,n)}hn=e,mn=ke(t)}else e.effectTag|=2,vn=!1,hn=e}}function yn(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;hn=e}function Dn(e){if(!ee||e!==hn)return!1;if(!vn)return yn(e),vn=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!U(t,e.memoizedProps))for(t=mn;t;)bn(e,t),t=Te(t);return yn(e),mn=hn?Te(e.stateNode):null,!0}function wn(){ee&&(mn=hn=null,vn=!1)}var En=s.ReactCurrentOwner,Cn=!1;function Tn(e,t,n,r){t.child=null===e?Tt(t,null,n,r):Ct(t,e.child,n,r)}function kn(e,t,n,r,i){n=n.render;var o=t.ref;return qn(t,i),r=Qt(e,t,n,r,o,i),null===e||Cn?(t.effectTag|=1,Tn(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),In(e,t,i))}function Sn(e,t,n,r,i,o){if(null===e){var u=n.type;return"function"!=typeof u||Qe(u)||void 0!==u.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=et(n.type,null,r,null,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=u,Mn(e,t,u,r,i,o))}return u=e.child,i=n?Nn(e,t,n):null!==(t=In(e,t,n))?t.sibling:null}return In(e,t,n)}}else Cn=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var i=Ue(t,Fe.current);if(qn(t,n),i=Qt(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,Zt(),je(r)){var o=!0;Ge(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var u=r.getDerivedStateFromProps;"function"==typeof u&&ht(t,r,u,e),i.updater=mt,t.stateNode=i,i._reactInternalFiber=t,_t(t,r,e,n),t=On(null,t,r,!0,o,n)}else t.tag=0,Tn(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),o=t.pendingProps,e=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)})),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(i),t.type=e,i=t.tag=function(e){if("function"==typeof e)return Qe(e)?1:0;if(null!=e){if((e=e.$$typeof)===_)return 11;if(e===D)return 14}return 2}(e),o=dt(e,o),u=void 0,i){case 0:u=An(null,t,e,o,n);break;case 1:u=Pn(null,t,e,o,n);break;case 11:u=kn(null,t,e,o,n);break;case 14:u=Sn(null,t,e,dt(e.type,o),r,n);break;default:l("306",e,"")}return u;case 0:return r=t.type,i=t.pendingProps,An(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 1:return r=t.type,i=t.pendingProps,Pn(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 3:return Rn(t),null===(r=t.updateQueue)&&l("282"),i=null!==(i=t.memoizedState)?i.element:null,nr(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?(wn(),t=In(e,t,n)):(i=t.stateNode,(i=(null===e||null===e.child)&&i.hydrate)&&(ee?(mn=ke(t.stateNode.containerInfo),hn=t,i=vn=!0):i=!1),i?(t.effectTag|=2,t.child=Tt(t,null,r,n)):(Tn(e,t,r,n),wn()),t=t.child),t;case 5:return Nt(t),null===e&&_n(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,u=i.children,U(r,i)?u=null:null!==o&&U(r,o)&&(t.effectTag|=16),xn(e,t),1!==n&&1&t.mode&&j(r,i)?(t.expirationTime=t.childExpirationTime=1,t=null):(Tn(e,t,u,n),t=t.child),t;case 6:return null===e&&_n(t),null;case 13:return Nn(e,t,n);case 4:return Pt(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ct(t,null,r,n):Tn(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,kn(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 7:return Tn(e,t,t.pendingProps,n),t.child;case 8:case 12:return Tn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,u=t.memoizedProps,Wn(t,o=i.value),null!==u){var a=u.value;if(0===(o=st(a,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(a,o):1073741823))){if(u.children===i.children&&!Be.current){t=In(e,t,n);break e}}else for(null!==(a=t.child)&&(a.return=t);null!==a;){var s=a.contextDependencies;if(null!==s){u=a.child;for(var c=s.first;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===a.tag&&((c=Xn(n)).tag=Vn,Qn(a,c)),a.expirationTime=t&&(Cn=!0),e.contextDependencies=null}function Hn(e,t){return jn!==e&&!1!==t&&0!==t&&("number"==typeof t&&1073741823!==t||(jn=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Un?(null===Ln&&l("308"),Un=t,Ln.contextDependencies={first:t,expirationTime:0}):Un=Un.next=t),J?e._currentValue:e._currentValue2}var Gn=1,Vn=2,Yn=!1;function Kn(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $n(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Xn(e){return{expirationTime:e,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Jn(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Qn(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=Kn(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=Kn(e.memoizedState),i=n.updateQueue=Kn(n.memoizedState)):r=e.updateQueue=$n(i):null===i&&(i=n.updateQueue=$n(r));null===i||r===i?Jn(r,t):null===r.lastUpdate||null===i.lastUpdate?(Jn(r,t),Jn(i,t)):(Jn(r,t),i.lastUpdate=t)}function Zn(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Kn(e.memoizedState):er(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function er(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=$n(t)),t}function tr(e,t,n,r,o,u){switch(n.tag){case Gn:return"function"==typeof(e=n.payload)?e.call(u,r,o):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null==(o="function"==typeof(e=n.payload)?e.call(u,r,o):e))break;return i({},r,o);case Vn:Yn=!0}return r}function nr(e,t,n,r,i){Yn=!1;for(var o=(t=er(e,t)).baseState,u=null,a=0,l=t.firstUpdate,s=o;null!==l;){var c=l.expirationTime;ct?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),0===(n=e.earliestSuspendedTime)?ot(e,t):tn&&ot(e,t)}lt(0,e)}(e,i>r?i:r),Sr.current=null,r=void 0,1n?t:n)&&(jr=null),function(e,t){e.expirationTime=t,e.finishedWork=null}(e,t)}function Kr(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){Ar=e;e:{var i=t,o=Or,u=(t=e).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:je(t.type)&&We();break;case 3:Ot(),ze(),(u=t.stateNode).pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),null!==i&&null!==i.child||(Dn(t),t.effectTag&=-3),lr(t);break;case 5:It(t),o=At(xt.current);var a=t.type;if(null!==i&&null!=t.stateNode)sr(i,t,a,u,o),i.ref!==t.ref&&(t.effectTag|=128);else if(u){if(i=Rt(),Dn(t))u=t,ee||l("175"),i=Se(u.stateNode,u.type,u.memoizedProps,o,i,u),u.updateQueue=i,(i=null!==i)&&ur(t);else{var s=I(a,u,o,i,t);ar(s,t,!1,!1),B(s,a,u,o,i)&&ur(t),t.stateNode=s}null!==t.ref&&(t.effectTag|=128)}else null===t.stateNode&&l("166");break;case 6:i&&null!=t.stateNode?cr(i,t,i.memoizedProps,u):("string"!=typeof u&&(null===t.stateNode&&l("166")),i=At(xt.current),o=Rt(),Dn(t)?(i=t,ee||l("176"),(i=Me(i.stateNode,i.memoizedProps,i))&&ur(t)):t.stateNode=W(u,i,o,t));break;case 11:break;case 13:if(u=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=o,Ar=t;break e}u=null!==u,o=null!==i&&null!==i.memoizedState,null!==i&&!u&&o&&(null!==(i=i.child.sibling)&&(null!==(a=t.firstEffect)?(t.firstEffect=i,i.nextEffect=a):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8)),(u||o)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:Ot(),lr(t);break;case 10:zn(t);break;case 9:case 14:break;case 17:je(t.type)&&We();break;case 18:break;default:l("156")}Ar=null}if(t=e,1===Or||1!==t.childExpirationTime){for(i=0,u=t.child;null!==u;)(o=u.expirationTime)>i&&(i=o),(a=u.childExpirationTime)>i&&(i=a),u=u.sibling;t.childExpirationTime=i}if(null!==Ar)return Ar;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1=m?p=0:(-1===p||m component higher in the tree to provide a loading indicator or placeholder to display."+Ae(c))}Nr=!0,f=or(f,c),a=s;do{switch(a.tag){case 3:a.effectTag|=2048,a.expirationTime=u,Zn(a,u=Er(a,f,u));break e;case 1:if(p=f,h=a.type,c=a.stateNode,0==(64&a.effectTag)&&("function"==typeof h.getDerivedStateFromError||null!==c&&"function"==typeof c.componentDidCatch&&(null===jr||!jr.has(c)))){a.effectTag|=2048,a.expirationTime=u,Zn(a,u=Cr(a,p,u));break e}}a=a.return}while(null!==a)}Ar=Kr(o);continue}i=!0,Bi(t)}}break}if(xr=!1,kr.current=n,jn=Un=Ln=null,Zt(),i)Pr=null,e.finishedWork=null;else if(null!==Ar)e.finishedWork=null;else{if(null===(n=e.current.alternate)&&l("281"),Pr=null,Nr){if(i=e.latestPendingTime,o=e.latestSuspendedTime,u=e.latestPingedTime,0!==i&&it?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function Jr(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===jr||!jr.has(r)))return Qn(n,e=Cr(n,e=or(t,e),1073741823)),void ni(n,1073741823);break;case 3:return Qn(n,e=Er(n,e=or(t,e),1073741823)),void ni(n,1073741823)}n=n.return}3===e.tag&&(Qn(e,n=Er(e,n=or(t,e),1073741823)),ni(e,1073741823))}function Qr(e,t){var n=u.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(xr&&!Fr)r=Or;else{switch(n){case u.unstable_ImmediatePriority:r=1073741823;break;case u.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case u.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case u.unstable_LowPriority:case u.unstable_IdlePriority:r=1;break;default:l("313")}null!==Pr&&r===Or&&--r}return n===u.unstable_UserBlockingPriority&&(0===fi||r=r&&(e.didError=!1,(0===(t=e.latestPingedTime)||t>n)&&(e.latestPingedTime=n),lt(n,e),0!==(n=e.expirationTime)&&Mi(e,n)))}function ei(e,t){var n=e.stateNode;null!==n&&n.delete(t),null!==(e=ti(e,t=Qr(t=Si(),e)))&&(ot(e,t),0!==(t=e.expirationTime)&&Mi(e,t))}function ti(e,t){e.expirationTimeOr&&Wr(),ot(e,t),xr&&!Fr&&Pr===e||Mi(e,e.expirationTime),Di>yi&&(Di=0,l("185")))}function ri(e,t,n,r,i){return u.unstable_runWithPriority(u.unstable_ImmediatePriority,(function(){return e(t,n,r,i)}))}var ii=null,oi=null,ui=0,ai=void 0,li=!1,si=null,ci=0,fi=0,di=!1,pi=null,hi=!1,mi=!1,vi=null,bi=X(),gi=1073741822-(bi/10|0),_i=gi,yi=50,Di=0,wi=null;function Ei(){gi=1073741822-((X()-bi)/10|0)}function Ci(e,t){if(0!==ui){if(te.expirationTime&&(e.expirationTime=t),li||(hi?mi&&(si=e,ci=1073741823,Ii(e,1073741823,!1)):1073741823===t?Ri(1073741823,!1):Ci(e,t))}function xi(){var e=0,t=null;if(null!==oi)for(var n=oi,r=ii;null!==r;){var i=r.expirationTime;if(0===i){if((null===n||null===oi)&&l("244"),r===r.nextScheduledRoot){ii=oi=r.nextScheduledRoot=null;break}if(r===ii)ii=i=r.nextScheduledRoot,oi.nextScheduledRoot=i,r.nextScheduledRoot=null;else{if(r===oi){(oi=n).nextScheduledRoot=ii,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(i>e&&(e=i,t=r),r===oi)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}si=t,ci=e}var Ai=!1;function Pi(){return!!Ai||!!H()&&(Ai=!0)}function Oi(){try{if(!Pi()&&null!==ii){Ei();var e=ii;do{var t=e.expirationTime;0!==t&&gi<=t&&(e.nextExpirationTimeToWorkOn=gi),e=e.nextScheduledRoot}while(e!==ii)}Ri(0,!0)}finally{Ai=!1}}function Ri(e,t){if(xi(),t)for(Ei(),_i=gi;null!==si&&0!==ci&&e<=ci&&!(Ai&&gi>ci);)Ii(si,ci,gi>ci),xi(),Ei(),_i=gi;else for(;null!==si&&0!==ci&&e<=ci;)Ii(si,ci,!1),xi();if(t&&(ui=0,ai=null),0!==ci&&Ci(si,ci),Di=0,wi=null,null!==vi)for(e=vi,vi=null,t=0;t=n&&(null===vi?vi=[r]:vi.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===wi?Di++:(wi=e,Di=0),u.unstable_runWithPriority(u.unstable_ImmediatePriority,(function(){Yr(e,t)}))}function Bi(e){null===si&&l("246"),si.expirationTime=0,di||(di=!0,pi=e)}function Li(e,t,n,r,i){var o=t.current;e:if(n){t:{2===k(n=n._reactInternalFiber)&&1===n.tag||l("170");var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(je(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);l("171"),u=void 0}if(1===n.tag){var a=n.type;if(je(a)){n=He(n,a,u);break e}}n=u}else n=Ie;return null===t.context?t.context=n:t.pendingContext=n,t=i,(i=Xn(r)).payload={element:e},null!==(t=void 0===t?null:t)&&(i.callback=t),Vr(),Qn(o,i),ni(o,r),r}function Ui(e){var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?l("188"):l("268",Object.keys(e))),null===(e=x(t))?null:e.stateNode}var ji={updateContainerAtExpirationTime:Li,createContainer:function(e,t,n){return e={current:t=Je(3,null,null,t?3:0),containerInfo:e,pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:Y,context:null,pendingContext:null,hydrate:n,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null},t.stateNode=e},updateContainer:function(e,t,n,r){var i=t.current;return Li(e,t,n,i=Qr(Si(),i),r)},flushRoot:Ni,requestWork:Mi,computeUniqueAsyncExpiration:function(){var e=1073741822-25*(1+((1073741822-Si()+500)/25|0));return e>=Mr&&(e=Mr-1),Mr=e},batchedUpdates:function(e,t){var n=hi;hi=!0;try{return e(t)}finally{(hi=n)||li||Ri(1073741823,!1)}},unbatchedUpdates:function(e,t){if(hi&&!mi){mi=!0;try{return e(t)}finally{mi=!1}}return e(t)},deferredUpdates:u.unstable_next,syncUpdates:ri,interactiveUpdates:function(e,t,n){hi||li||0===fi||(Ri(fi,!1),fi=0);var r=hi;hi=!0;try{return u.unstable_runWithPriority(u.unstable_UserBlockingPriority,(function(){return e(t,n)}))}finally{(hi=r)||li||Ri(1073741823,!1)}},flushInteractiveUpdates:function(){li||0===fi||(Ri(fi,!1),fi=0)},flushControlled:function(e){var t=hi;hi=!0;try{ri(e)}finally{(hi=t)||li||Ri(1073741823,!1)}},flushSync:function(e,t){li&&l("187");var n=hi;hi=!0;try{return ri(e,t)}finally{hi=n,Ri(1073741823,!1)}},getPublicRootInstance:function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:return A(e.child.stateNode);default:return e.child.stateNode}},findHostInstance:Ui,findHostInstanceWithWarning:function(e){return Ui(e)},findHostInstanceWithNoPortals:function(e){return null===(e=function(e){if(!(e=M(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child&&4!==t.tag)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}(e))?null:e.stateNode},injectIntoDevTools:function(e){var t=e.findFiberByHostInstance;return function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ye=$e((function(e){return t.onCommitFiberRoot(n,e)})),Ke=$e((function(e){return t.onCommitFiberUnmount(n,e)}))}catch(e){}return!0}(i({},e,{overrideProps:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=x(e))?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null}}))}};e.exports=ji.default||ji;var Wi=e.exports;return e.exports=t,Wi}},9437:(e,t,n)=>{"use strict";e.exports=n(5591)},469:(e,t,n)=>{"use strict";function r(e){const t=[...e.caches],n=t.shift();return void 0===n?i():{get:(e,i,o={miss:()=>Promise.resolve()})=>n.get(e,i,o).catch(()=>r({caches:t}).get(e,i,o)),set:(e,i)=>n.set(e,i).catch(()=>r({caches:t}).set(e,i)),delete:e=>n.delete(e).catch(()=>r({caches:t}).delete(e)),clear:()=>n.clear().catch(()=>r({caches:t}).clear())}}function i(){return{get:(e,t,n={miss:()=>Promise.resolve()})=>t().then(e=>Promise.all([e,n.miss(e)])).then(([e])=>e),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}}n.r(t),n.d(t,{createFallbackableCache:()=>r,createNullCache:()=>i})},6712:(e,t,n)=>{"use strict";function r(e={serializable:!0}){let t={};return{get(n,r,i={miss:()=>Promise.resolve()}){const o=JSON.stringify(n);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);const u=r(),a=i&&i.miss||(()=>Promise.resolve());return u.then(e=>a(e)).then(()=>u)},set:(n,r)=>(t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}n.r(t),n.d(t,{createInMemoryCache:()=>r})},2223:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addABTest:()=>a,createAnalyticsClient:()=>u,deleteABTest:()=>l,getABTest:()=>s,getABTests:()=>c,stopABTest:()=>f});var r=n(1757),i=n(7858),o=n(5541);const u=e=>{const t=e.region||"us",n=(0,r.createAuth)(r.AuthMode.WithinHeaders,e.appId,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:`analytics.${t}.algolia.com`}],...e,headers:{...n.headers(),"content-type":"application/json",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}}),u=e.appId;return(0,r.addMethods)({appId:u,transporter:o},e.methods)},a=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:"2/abtests",data:t},n),l=e=>(t,n)=>e.transporter.write({method:o.N.Delete,path:(0,r.encode)("2/abtests/%s",t)},n),s=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("2/abtests/%s",t)},n),c=e=>t=>e.transporter.read({method:o.N.Get,path:"2/abtests"},t),f=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:(0,r.encode)("2/abtests/%s/stop",t)},n)},1757:(e,t,n)=>{"use strict";function r(e,t,n){const r={"x-algolia-api-key":n,"x-algolia-application-id":t};return{headers:()=>e===f.WithinHeaders?r:{},queryParameters:()=>e===f.WithinQueryParameters?r:{}}}function i(e){let t=0;const n=()=>(t++,new Promise(r=>{setTimeout(()=>{r(e(n))},Math.min(100*t,1e3))}));return e(n)}function o(e,t=((e,t)=>Promise.resolve())){return Object.assign(e,{wait:n=>o(e.then(e=>Promise.all([t(e,n),e])).then(e=>e[1]))})}function u(e){let t=e.length-1;for(;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function a(e,t){return Object.keys(void 0!==t?t:{}).forEach(n=>{e[n]=t[n](e)}),e}function l(e,...t){let n=0;return e.replace(/%s/g,()=>encodeURIComponent(t[n++]))}n.r(t),n.d(t,{AuthMode:()=>f,addMethods:()=>a,createAuth:()=>r,createRetryablePromise:()=>i,createWaitablePromise:()=>o,destroy:()=>c,encode:()=>l,shuffle:()=>u,version:()=>s});const s="4.2.0",c=e=>()=>e.transporter.requester.destroy(),f={WithinQueryParameters:0,WithinHeaders:1}},103:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createRecommendationClient:()=>u,getPersonalizationStrategy:()=>a,setPersonalizationStrategy:()=>l});var r=n(1757),i=n(7858),o=n(5541);const u=e=>{const t=e.region||"us",n=(0,r.createAuth)(r.AuthMode.WithinHeaders,e.appId,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:`recommendation.${t}.algolia.com`}],...e,headers:{...n.headers(),"content-type":"application/json",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}});return(0,r.addMethods)({appId:e.appId,transporter:o},e.methods)},a=e=>t=>e.transporter.read({method:o.N.Get,path:"1/strategies/personalization"},t),l=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:"1/strategies/personalization",data:t},n)},6586:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ApiKeyACLEnum:()=>Se,BatchActionEnum:()=>Me,ScopeEnum:()=>xe,StrategyEnum:()=>Ae,SynonymEnum:()=>Pe,addApiKey:()=>d,assignUserID:()=>p,assignUserIDs:()=>h,batch:()=>W,browseObjects:()=>z,browseRules:()=>q,browseSynonyms:()=>H,chunkedBatch:()=>G,clearObjects:()=>V,clearRules:()=>Y,clearSynonyms:()=>K,copyIndex:()=>m,copyRules:()=>v,copySettings:()=>b,copySynonyms:()=>g,createBrowsablePromise:()=>a,createMissingObjectIDError:()=>s,createObjectNotFoundError:()=>c,createSearchClient:()=>l,createValidUntilNotFoundError:()=>f,deleteApiKey:()=>_,deleteBy:()=>$,deleteIndex:()=>X,deleteObject:()=>J,deleteObjects:()=>Q,deleteRule:()=>Z,deleteSynonym:()=>ee,exists:()=>te,findObject:()=>ne,generateSecuredApiKey:()=>y,getApiKey:()=>D,getLogs:()=>w,getObject:()=>re,getObjectPosition:()=>ie,getObjects:()=>oe,getRule:()=>ue,getSecuredApiKeyRemainingValidity:()=>E,getSettings:()=>ae,getSynonym:()=>le,getTask:()=>se,getTopUserIDs:()=>C,getUserID:()=>T,hasPendingMappings:()=>k,initIndex:()=>S,listApiKeys:()=>M,listClusters:()=>x,listIndices:()=>A,listUserIDs:()=>P,moveIndex:()=>O,multipleBatch:()=>R,multipleGetObjects:()=>N,multipleQueries:()=>I,multipleSearchForFacetValues:()=>F,partialUpdateObject:()=>ce,partialUpdateObjects:()=>fe,removeUserID:()=>B,replaceAllObjects:()=>de,replaceAllRules:()=>pe,replaceAllSynonyms:()=>he,restoreApiKey:()=>L,saveObject:()=>me,saveObjects:()=>ve,saveRule:()=>be,saveRules:()=>ge,saveSynonym:()=>_e,saveSynonyms:()=>ye,search:()=>De,searchForFacetValues:()=>we,searchRules:()=>Ee,searchSynonyms:()=>Ce,searchUserIDs:()=>U,setSettings:()=>Te,updateApiKey:()=>j,waitTask:()=>ke});var r=n(1757),i=n(7858),o=n(5541),u=n(6417);function a(e){const t=n=>e.request(n).then(r=>{if(void 0!==e.batch&&e.batch(r.hits),!e.shouldStop(r))return r.cursor?t({cursor:r.cursor}):t({page:(n.page||0)+1})});return t({})}const l=e=>{const t=e.appId,n=(0,r.createAuth)(void 0!==e.authMode?e.authMode:r.AuthMode.WithinHeaders,t,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:t+"-dsn.algolia.net",accept:i.CallEnum.Read},{url:t+".algolia.net",accept:i.CallEnum.Write}].concat((0,r.shuffle)([{url:t+"-1.algolianet.com"},{url:t+"-2.algolianet.com"},{url:t+"-3.algolianet.com"}])),...e,headers:{...n.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}}),u={transporter:o,appId:t,addAlgoliaAgent(e,t){o.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})};return(0,r.addMethods)(u,e.methods)};function s(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function c(){return{name:"ObjectNotFoundError",message:"Object not found."}}function f(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}const d=e=>(t,n)=>{const{queryParameters:i,...u}=n||{},a={acl:t,...void 0!==i?{queryParameters:i}:{}};return(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:"1/keys",data:a},u),(t,n)=>(0,r.createRetryablePromise)(r=>D(e)(t.key,n).catch(e=>{if(404!==e.status)throw e;return r()})))},p=e=>(t,n,r)=>{const u=(0,i.createMappedRequestOptions)(r);return u.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:o.N.Post,path:"1/clusters/mapping",data:{cluster:n}},u)},h=e=>(t,n,r)=>e.transporter.write({method:o.N.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:n}},r),m=e=>(t,n,i)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:"copy",destination:n}},i),(n,r)=>S(e)(t,{methods:{waitTask:ke}}).waitTask(n.taskID,r)),v=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Rules]}),b=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Settings]}),g=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Synonyms]}),_=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/keys/%s",t)},n),(n,i)=>(0,r.createRetryablePromise)(n=>D(e)(t,i).then(n).catch(e=>{if(404!==e.status)throw e}))),y=()=>(e,t)=>{const n=(0,i.serializeQueryParameters)(t),r=(0,u.createHmac)("sha256",e).update(n).digest("hex");return Buffer.from(r+n).toString("base64")},D=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/keys/%s",t)},n),w=e=>t=>e.transporter.read({method:o.N.Get,path:"1/logs"},t),E=()=>e=>{const t=Buffer.from(e,"base64").toString("ascii").match(/validUntil=(\d+)/);if(null===t)throw{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."};return parseInt(t[1],10)-Math.round((new Date).getTime()/1e3)},C=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters/mapping/top"},t),T=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/clusters/mapping/%s",t)},n),k=e=>t=>{const{retrieveMappings:n,...r}=t||{};return!0===n&&(r.getClusters=!0),e.transporter.read({method:o.N.Get,path:"1/clusters/mapping/pending"},r)},S=e=>(t,n={})=>{const i={transporter:e.transporter,appId:e.appId,indexName:t};return(0,r.addMethods)(i,n.methods)},M=e=>t=>e.transporter.read({method:o.N.Get,path:"1/keys"},t),x=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters"},t),A=e=>t=>e.transporter.read({method:o.N.Get,path:"1/indexes"},t),P=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters/mapping"},t),O=e=>(t,n,i)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:"move",destination:n}},i),(n,r)=>S(e)(t,{methods:{waitTask:ke}}).waitTask(n.taskID,r)),R=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:"1/indexes/*/batch",data:{requests:t}},n),(t,n)=>Promise.all(Object.keys(t.taskID).map(r=>S(e)(r,{methods:{waitTask:ke}}).waitTask(t.taskID[r],n)))),N=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:"1/indexes/*/objects",data:{requests:t}},n),I=e=>(t,n)=>{const r=t.map(e=>({...e,params:(0,i.serializeQueryParameters)(e.params||{})}));return e.transporter.read({method:o.N.Post,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)},F=e=>(t,n)=>Promise.all(t.map(t=>{const{facetName:r,facetQuery:i,...o}=t.params;return S(e)(t.indexName,{methods:{searchForFacetValues:we}}).searchForFacetValues(r,i,{...n,...o})})),B=e=>(t,n)=>{const r=(0,i.createMappedRequestOptions)(n);return r.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:o.N.Delete,path:"1/clusters/mapping"},r)},L=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/keys/%s/restore",t)},n),(n,i)=>(0,r.createRetryablePromise)(n=>D(e)(t,i).catch(e=>{if(404!==e.status)throw e;return n()}))),U=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:"1/clusters/mapping/search",data:{query:t}},n),j=e=>(t,n)=>{const i=Object.assign({},n),{queryParameters:u,...a}=n||{},l=u?{queryParameters:u}:{},s=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Put,path:(0,r.encode)("1/keys/%s",t),data:l},a),(n,o)=>(0,r.createRetryablePromise)(n=>D(e)(t,o).then(e=>(e=>Object.keys(i).filter(e=>-1!==s.indexOf(e)).every(t=>e[t]===i[t]))(e)?Promise.resolve():n())))},W=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/batch",e.indexName),data:{requests:t}},n),(t,n)=>ke(e)(t.taskID,n)),z=e=>t=>a({...t,shouldStop:e=>void 0===e.cursor,request:n=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/browse",e.indexName),data:n},t)}),q=e=>t=>{const n={hitsPerPage:1e3,...t};return a({...n,shouldStop:e=>e.hits.lengthEe(e)("",{...n,...t}).then(e=>({...e,hits:e.hits.map(e=>(delete e._highlightResult,e))}))})},H=e=>t=>{const n={hitsPerPage:1e3,...t};return a({...n,shouldStop:e=>e.hits.lengthCe(e)("",{...n,...t}).then(e=>({...e,hits:e.hits.map(e=>(delete e._highlightResult,e))}))})},G=e=>(t,n,i)=>{const{batchSize:o,...u}=i||{},a={taskIDs:[],objectIDs:[]},l=(r=0)=>{const i=[];let s;for(s=r;s({action:n,body:e})),u).then(e=>(a.objectIDs=a.objectIDs.concat(e.objectIDs),a.taskIDs.push(e.taskID),s++,l(s)))};return(0,r.createWaitablePromise)(l(),(t,n)=>Promise.all(t.taskIDs.map(t=>ke(e)(t,n))))},V=e=>t=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/clear",e.indexName)},t),(t,n)=>ke(e)(t.taskID,n)),Y=e=>t=>{const{forwardToReplicas:n,...u}=t||{},a=(0,i.createMappedRequestOptions)(u);return n&&(a.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/clear",e.indexName)},a),(t,n)=>ke(e)(t.taskID,n))},K=e=>t=>{const{forwardToReplicas:n,...u}=t||{},a=(0,i.createMappedRequestOptions)(u);return n&&(a.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/clear",e.indexName)},a),(t,n)=>ke(e)(t.taskID,n))},$=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/deleteByQuery",e.indexName),data:t},n),(t,n)=>ke(e)(t.taskID,n)),X=e=>t=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s",e.indexName)},t),(t,n)=>ke(e)(t.taskID,n)),J=e=>(t,n)=>(0,r.createWaitablePromise)(Q(e)([t],n).then(e=>({taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),Q=e=>(t,n)=>{const r=t.map(e=>({objectID:e}));return G(e)(r,Me.DeleteObject,n)},Z=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s/rules/%s",e.indexName,t)},l),(t,n)=>ke(e)(t.taskID,n))},ee=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s/synonyms/%s",e.indexName,t)},l),(t,n)=>ke(e)(t.taskID,n))},te=e=>t=>ae(e)(t).then(()=>!0).catch(e=>{if(404!==e.status)throw e;return!1}),ne=e=>(t,n)=>{const{query:r,paginate:i,...o}=n||{};let u=0;const a=()=>De(e)(r||"",{...o,page:u}).then(e=>{for(const[n,r]of Object.entries(e.hits))if(t(r))return{object:r,position:parseInt(n,10),page:u};if(u++,!1===i||u>=e.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return a()});return a()},re=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/%s",e.indexName,t)},n),ie=()=>(e,t)=>{for(const[n,r]of Object.entries(e.hits))if(r.objectID===t)return parseInt(n,10);return-1},oe=e=>(t,n)=>{const{attributesToRetrieve:r,...i}=n||{},u=t.map(t=>({indexName:e.indexName,objectID:t,...r?{attributesToRetrieve:r}:{}}));return e.transporter.read({method:o.N.Post,path:"1/indexes/*/objects",data:{requests:u}},i)},ue=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/rules/%s",e.indexName,t)},n),ae=e=>t=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),le=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/synonyms/%s",e.indexName,t)},n),se=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/task/%s",e.indexName,t.toString())},n),ce=e=>(t,n)=>(0,r.createWaitablePromise)(fe(e)([t],n).then(e=>({objectID:e.objectIDs[0],taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),fe=e=>(t,n)=>{const{createIfNotExists:r,...i}=n||{},o=r?Me.PartialUpdateObject:Me.PartialUpdateObjectNoCreate;return G(e)(t,o,i)},de=e=>(t,n)=>{const{safe:i,autoGenerateObjectIDIfNotExist:u,batchSize:a,...l}=n||{},s=(t,n,i,u)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:i,destination:n}},u),(t,n)=>ke(e)(t.taskID,n)),c=Math.random().toString(36).substring(7),f=`${e.indexName}_tmp_${c}`,d=ve({appId:e.appId,transporter:e.transporter,indexName:f});let p=[];const h=s(e.indexName,f,"copy",{...l,scope:["settings","synonyms","rules"]});p.push(h);const m=(i?h.wait(l):h).then(()=>{const e=d(t,{...l,autoGenerateObjectIDIfNotExist:u,batchSize:a});return p.push(e),i?e.wait(l):e}).then(()=>{const t=s(f,e.indexName,"move",l);return p.push(t),i?t.wait(l):t}).then(()=>Promise.all(p)).then(([e,t,n])=>({objectIDs:t.objectIDs,taskIDs:[e.taskID,...t.taskIDs,n.taskID]}));return(0,r.createWaitablePromise)(m,(e,t)=>Promise.all(p.map(e=>e.wait(t))))},pe=e=>(t,n)=>ge(e)(t,{...n,clearExistingRules:!0}),he=e=>(t,n)=>ye(e)(t,{...n,replaceExistingSynonyms:!0}),me=e=>(t,n)=>(0,r.createWaitablePromise)(ve(e)([t],n).then(e=>({objectID:e.objectIDs[0],taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),ve=e=>(t,n)=>{const{autoGenerateObjectIDIfNotExist:i,...o}=n||{},u=i?Me.AddObject:Me.UpdateObject;if(u===Me.UpdateObject)for(const e of t)if(void 0===e.objectID)return(0,r.createWaitablePromise)(Promise.reject({name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}));return G(e)(t,u,o)},be=e=>(t,n)=>ge(e)([t],n),ge=e=>(t,n)=>{const{forwardToReplicas:u,clearExistingRules:a,...l}=n||{},s=(0,i.createMappedRequestOptions)(l);return u&&(s.queryParameters.forwardToReplicas=1),a&&(s.queryParameters.clearExistingRules=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/batch",e.indexName),data:t},s),(t,n)=>ke(e)(t.taskID,n))},_e=e=>(t,n)=>ye(e)([t],n),ye=e=>(t,n)=>{const{forwardToReplicas:u,replaceExistingSynonyms:a,...l}=n||{},s=(0,i.createMappedRequestOptions)(l);return u&&(s.queryParameters.forwardToReplicas=1),a&&(s.queryParameters.replaceExistingSynonyms=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/batch",e.indexName),data:t},s),(t,n)=>ke(e)(t.taskID,n))},De=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n),we=e=>(t,n,i)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},i),Ee=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/search",e.indexName),data:{query:t}},n),Ce=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},n),Te=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Put,path:(0,r.encode)("1/indexes/%s/settings",e.indexName),data:t},l),(t,n)=>ke(e)(t.taskID,n))},ke=e=>(t,n)=>(0,r.createRetryablePromise)(r=>se(e)(t,n).then(e=>"published"!==e.status?r():void 0)),Se={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},Me={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject"},xe={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Ae={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Pe={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"}},8045:(e,t,n)=>{"use strict";function r(){return{debug:(e,t)=>Promise.resolve(),info:(e,t)=>Promise.resolve(),error:(e,t)=>Promise.resolve()}}n.r(t),n.d(t,{LogLevelEnum:()=>i,createNullLogger:()=>r});const i={Debug:1,Info:2,Error:3}},5541:(e,t,n)=>{"use strict";n.d(t,{N:()=>r});const r={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"}},9178:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createNodeHttpRequester:()=>u});var r=n(8605),i=n(7211),o=n(8835);function u(){const e={keepAlive:!0},t=new r.Agent(e),n=new i.Agent(e);return{send:e=>new Promise(u=>{const a=(0,o.parse)(e.url),l=null===a.query?a.pathname:`${a.pathname}?${a.query}`,s={agent:"https:"===a.protocol?n:t,hostname:a.hostname,path:l,method:e.method,headers:e.headers,...void 0!==a.port?{port:a.port||""}:{}},c=("https:"===a.protocol?i:r).request(s,e=>{let t="";e.on("data",e=>t+=e),e.on("end",()=>{clearTimeout(d),clearTimeout(p),u({status:e.statusCode||0,content:t,isTimedOut:!1})})}),f=(e,t)=>setTimeout(()=>{c.abort(),u({status:0,content:t,isTimedOut:!0})},1e3*e),d=f(e.connectTimeout,"Connection timeout");let p;c.on("error",e=>{clearTimeout(d),clearTimeout(p),u({status:0,content:e.message,isTimedOut:!1})}),c.once("response",()=>{clearTimeout(d),p=f(e.responseTimeout,"Socket timeout")}),void 0!==e.data&&c.write(e.data),c.end()}),destroy:()=>(t.destroy(),n.destroy(),Promise.resolve())}}},7858:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CallEnum:()=>o,HostStatusEnum:()=>u,createApiError:()=>w,createDeserializationError:()=>E,createMappedRequestOptions:()=>i,createRetryError:()=>C,createStatefulHost:()=>a,createStatelessHost:()=>c,createTransporter:()=>d,createUserAgent:()=>p,deserializeFailure:()=>m,deserializeSuccess:()=>h,isStatefulHostTimeouted:()=>s,isStatefulHostUp:()=>l,serializeData:()=>g,serializeHeaders:()=>_,serializeQueryParameters:()=>b,serializeUrl:()=>v,stackFrameWithoutCredentials:()=>D,stackTraceWithoutCredentials:()=>y});var r=n(5541);function i(e,t){const n=e||{},r=n.data||{};return Object.keys(n).forEach(e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(r[e]=n[e])}),{data:Object.entries(r).length>0?r:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}const o={Read:1,Write:2,Any:3},u={Up:1,Down:2,Timeouted:3};function a(e,t=u.Up){return{...e,status:t,lastUpdate:Date.now()}}function l(e){return e.status===u.Up||Date.now()-e.lastUpdate>12e4}function s(e){return e.status===u.Timeouted&&Date.now()-e.lastUpdate<=12e4}function c(e){return{protocol:e.protocol||"https",url:e.url,accept:e.accept||o.Any}}function f(e,t,n,i){const o=[],f=g(n,i),d=_(e,i),p=n.method,b=n.method!==r.N.Get?{}:{...n.data,...i.data},w={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...b,...i.queryParameters};let E=0;const T=(t,r)=>{const l=t.pop();if(void 0===l)throw C(y(o));const s={data:f,headers:d,method:p,url:v(l,n.path,w),connectTimeout:r(E,e.timeouts.connect),responseTimeout:r(E,i.timeout)},c=e=>{const n={request:s,response:e,host:l,triesLeft:t.length};return o.push(n),n},b={onSucess:e=>h(e),onRetry(n){const i=c(n);return n.isTimedOut&&E++,Promise.all([e.logger.info("Retryable failure",D(i)),e.hostsCache.set(l,a(l,n.isTimedOut?u.Timeouted:u.Down))]).then(()=>T(t,r))},onFail(e){throw c(e),m(e,y(o))}};return e.requester.send(s).then(e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSucess(e):t.onFail(e))(e,b))};return function(e,t){return Promise.all(t.map(t=>e.get(t,()=>Promise.resolve(a(t))))).then(e=>{const n=e.filter(e=>l(e)),r=e.filter(e=>s(e)),i=[...n,...r];return{getTimeout:(e,t)=>(0===r.length&&0===e?1:r.length+3+e)*t,statelessHosts:i.length>0?i.map(e=>c(e)):t}})}(e.hostsCache,t).then(e=>T([...e.statelessHosts].reverse(),e.getTimeout))}function d(e){const{hostsCache:t,logger:n,requester:r,requestsCache:u,responsesCache:a,timeouts:l,userAgent:s,hosts:d,queryParameters:p,headers:h}=e,m={hostsCache:t,logger:n,requester:r,requestsCache:u,responsesCache:a,timeouts:l,userAgent:s,headers:h,queryParameters:p,hosts:d.map(e=>c(e)),read(e,t){const n=i(t,m.timeouts.read),r=()=>f(m,m.hosts.filter(e=>0!=(e.accept&o.Read)),e,n);if(!0!==(void 0!==n.cacheable?n.cacheable:e.cacheable))return r();const u={request:e,mappedRequestOptions:n,transporter:{queryParameters:m.queryParameters,headers:m.headers}};return m.responsesCache.get(u,()=>m.requestsCache.get(u,()=>m.requestsCache.set(u,r()).then(e=>Promise.all([m.requestsCache.delete(u),e]),e=>Promise.all([m.requestsCache.delete(u),Promise.reject(e)])).then(([e,t])=>t)),{miss:e=>m.responsesCache.set(u,e)})},write:(e,t)=>f(m,m.hosts.filter(e=>0!=(e.accept&o.Write)),e,i(t,m.timeouts.write))};return m}function p(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const n=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(n)&&(t.value=`${t.value}${n}`),t}};return t}function h(e){try{return JSON.parse(e.content)}catch(t){throw E(t.message,e)}}function m({content:e,status:t},n){let r=e;try{r=JSON.parse(e).message}catch(e){}return w(r,t,n)}function v(e,t,n){const r=b(n);let i=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return r.length&&(i+="?"+r),i}function b(e){return Object.keys(e).map(t=>{return function(e,...t){let n=0;return e.replace(/%s/g,()=>encodeURIComponent(t[n++]))}("%s=%s",t,(n=e[t],"[object Object]"===Object.prototype.toString.call(n)||"[object Array]"===Object.prototype.toString.call(n)?JSON.stringify(e[t]):e[t]));var n}).join("&")}function g(e,t){if(e.method===r.N.Get||void 0===e.data&&void 0===t.data)return;const n=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(n)}function _(e,t){const n={...e.headers,...t.headers},r={};return Object.keys(n).forEach(e=>{const t=n[e];r[e.toLowerCase()]=t}),r}function y(e){return e.map(e=>D(e))}function D(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function w(e,t,n){return{name:"ApiError",message:e,status:t,transporterStackTrace:n}}function E(e,t){return{name:"DeserializationError",message:e,response:t}}function C(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:e}}},8774:(e,t,n)=>{"use strict";var r=n(469),i=n(6712),o=n(2223),u=n(1757),a=n(103),l=n(6586),s=n(8045),c=n(9178),f=n(7858);function d(e,t,n){const d={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:c.createNodeHttpRequester(),logger:s.createNullLogger(),responsesCache:r.createNullCache(),requestsCache:r.createNullCache(),hostsCache:i.createInMemoryCache(),userAgent:f.createUserAgent(u.version).add({segment:"Node.js",version:process.versions.node})};return l.createSearchClient({...d,...n,methods:{search:l.multipleQueries,searchForFacetValues:l.multipleSearchForFacetValues,multipleBatch:l.multipleBatch,multipleGetObjects:l.multipleGetObjects,multipleQueries:l.multipleQueries,copyIndex:l.copyIndex,copySettings:l.copySettings,copyRules:l.copyRules,copySynonyms:l.copySynonyms,moveIndex:l.moveIndex,listIndices:l.listIndices,getLogs:l.getLogs,listClusters:l.listClusters,multipleSearchForFacetValues:l.multipleSearchForFacetValues,getApiKey:l.getApiKey,addApiKey:l.addApiKey,listApiKeys:l.listApiKeys,updateApiKey:l.updateApiKey,deleteApiKey:l.deleteApiKey,restoreApiKey:l.restoreApiKey,assignUserID:l.assignUserID,assignUserIDs:l.assignUserIDs,getUserID:l.getUserID,searchUserIDs:l.searchUserIDs,listUserIDs:l.listUserIDs,getTopUserIDs:l.getTopUserIDs,removeUserID:l.removeUserID,hasPendingMappings:l.hasPendingMappings,generateSecuredApiKey:l.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:l.getSecuredApiKeyRemainingValidity,destroy:u.destroy,initIndex:e=>t=>l.initIndex(e)(t,{methods:{batch:l.batch,delete:l.deleteIndex,getObject:l.getObject,getObjects:l.getObjects,saveObject:l.saveObject,saveObjects:l.saveObjects,search:l.search,searchForFacetValues:l.searchForFacetValues,waitTask:l.waitTask,setSettings:l.setSettings,getSettings:l.getSettings,partialUpdateObject:l.partialUpdateObject,partialUpdateObjects:l.partialUpdateObjects,deleteObject:l.deleteObject,deleteObjects:l.deleteObjects,deleteBy:l.deleteBy,clearObjects:l.clearObjects,browseObjects:l.browseObjects,getObjectPosition:l.getObjectPosition,findObject:l.findObject,exists:l.exists,saveSynonym:l.saveSynonym,saveSynonyms:l.saveSynonyms,getSynonym:l.getSynonym,searchSynonyms:l.searchSynonyms,browseSynonyms:l.browseSynonyms,deleteSynonym:l.deleteSynonym,clearSynonyms:l.clearSynonyms,replaceAllObjects:l.replaceAllObjects,replaceAllSynonyms:l.replaceAllSynonyms,searchRules:l.searchRules,getRule:l.getRule,deleteRule:l.deleteRule,saveRule:l.saveRule,saveRules:l.saveRules,replaceAllRules:l.replaceAllRules,browseRules:l.browseRules,clearRules:l.clearRules}}),initAnalytics:()=>e=>o.createAnalyticsClient({...d,...e,methods:{addABTest:o.addABTest,getABTest:o.getABTest,getABTests:o.getABTests,stopABTest:o.stopABTest,deleteABTest:o.deleteABTest}}),initRecommendation:()=>e=>a.createRecommendationClient({...d,...e,methods:{getPersonalizationStrategy:a.getPersonalizationStrategy,setPersonalizationStrategy:a.setPersonalizationStrategy}})}})}d.version=u.version,e.exports=d},4410:(e,t,n)=>{const r=n(8774);e.exports=r,e.exports.default=r},327:e=>{"use strict";const t=e.exports,n="[",r="]",i="",o=";",u="Apple_Terminal"===process.env.TERM_PROGRAM;t.cursorTo=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");return"number"!=typeof t?n+(e+1)+"G":n+(t+1)+";"+(e+1)+"H"},t.cursorMove=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");let r="";return e<0?r+=n+-e+"D":e>0&&(r+=n+e+"C"),t<0?r+=n+-t+"A":t>0&&(r+=n+t+"B"),r},t.cursorUp=e=>n+("number"==typeof e?e:1)+"A",t.cursorDown=e=>n+("number"==typeof e?e:1)+"B",t.cursorForward=e=>n+("number"==typeof e?e:1)+"C",t.cursorBackward=e=>n+("number"==typeof e?e:1)+"D",t.cursorLeft="",t.cursorSavePosition=n+(u?"7":"s"),t.cursorRestorePosition=n+(u?"8":"u"),t.cursorGetPosition="",t.cursorNextLine="",t.cursorPrevLine="",t.cursorHide="[?25l",t.cursorShow="[?25h",t.eraseLines=e=>{let n="";for(let r=0;r[r,"8",o,o,t,i,e,r,"8",o,o,i].join(""),t.image=(e,t)=>{let n=r+"1337;File=inline=1";return(t=t||{}).width&&(n+=";width="+t.width),t.height&&(n+=";height="+t.height),!1===t.preserveAspectRatio&&(n+=";preserveAspectRatio=0"),n+":"+e.toString("base64")+i},t.iTerm={},t.iTerm.setCwd=e=>r+"50;CurrentDir="+(e||process.cwd())+i},7788:e=>{"use strict";e.exports=()=>{const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))"].join("|");return new RegExp(e,"g")}},5378:e=>{"use strict";e.exports=e=>{e=Object.assign({onlyFirst:!1},e);const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e.onlyFirst?void 0:"g")}},5256:(e,t,n)=>{"use strict";e=n.nmd(e);const r=n(7410),i=(e,t)=>function(){const n=e.apply(r,arguments);return`[${n+t}m`},o=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};5;${n}m`},u=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(const n of Object.keys(t)){const r=t[n];for(const n of Object.keys(r)){const i=r[n];t[n]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[n]=t[n],e.set(i[0],i[1])}Object.defineProperty(t,n,{value:r,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}const n=e=>e,a=(e,t,n)=>[e,t,n];t.color.close="",t.bgColor.close="",t.color.ansi={ansi:i(n,0)},t.color.ansi256={ansi256:o(n,0)},t.color.ansi16m={rgb:u(a,0)},t.bgColor.ansi={ansi:i(n,10)},t.bgColor.ansi256={ansi256:o(n,10)},t.bgColor.ansi16m={rgb:u(a,10)};for(let e of Object.keys(r)){if("object"!=typeof r[e])continue;const n=r[e];"ansi16"===e&&(e="ansi"),"ansi16"in n&&(t.color.ansi[e]=i(n.ansi16,0),t.bgColor.ansi[e]=i(n.ansi16,10)),"ansi256"in n&&(t.color.ansi256[e]=o(n.ansi256,0),t.bgColor.ansi256[e]=o(n.ansi256,10)),"rgb"in n&&(t.color.ansi16m[e]=u(n.rgb,0),t.bgColor.ansi16m[e]=u(n.rgb,10))}return t}})},8483:(e,t,n)=>{"use strict";e=n.nmd(e);const r=(e,t)=>(...n)=>`[${e(...n)+t}m`,i=(e,t)=>(...n)=>{const r=e(...n);return`[${38+t};5;${r}m`},o=(e,t)=>(...n)=>{const r=e(...n);return`[${38+t};2;${r[0]};${r[1]};${r[2]}m`},u=e=>e,a=(e,t,n)=>[e,t,n],l=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{const r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})};let s;const c=(e,t,r,i)=>{void 0===s&&(s=n(2744));const o=i?10:0,u={};for(const[n,i]of Object.entries(s)){const a="ansi16"===n?"ansi":n;n===t?u[a]=e(r,o):"object"==typeof i&&(u[a]=e(i[t],o))}return u};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[n,r]of Object.entries(t)){for(const[n,i]of Object.entries(r))t[n]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[n]=t[n],e.set(i[0],i[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",l(t.color,"ansi",()=>c(r,"ansi16",u,!1)),l(t.color,"ansi256",()=>c(i,"ansi256",u,!1)),l(t.color,"ansi16m",()=>c(o,"rgb",a,!1)),l(t.bgColor,"ansi",()=>c(r,"ansi16",u,!0)),l(t.bgColor,"ansi256",()=>c(i,"ansi256",u,!0)),l(t.bgColor,"ansi16m",()=>c(o,"rgb",a,!0)),t}})},3810:e=>{"use strict";e.exports=function(e){return null==e?[]:Array.isArray(e)?e:[e]}},5640:e=>{"use strict";e.exports=e=>e&&e.exact?new RegExp("^[\ud800-\udbff][\udc00-\udfff]$"):new RegExp("[\ud800-\udbff][\udc00-\udfff]","g")},2939:(e,t,n)=>{"use strict";e=n.nmd(e);e.exports=(e,t)=>{t=Object.assign({},t);const n=e=>{const n=t=>"string"==typeof t?e===t:t.test(e);return t.include?t.include.some(n):!t.exclude||!t.exclude.some(n)};for(const[t,r]of(e=>{const t=new Set;do{for(const n of Reflect.ownKeys(e))t.add([e,n])}while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t})(e.constructor.prototype)){if("constructor"===r||!n(r))continue;const i=Reflect.getOwnPropertyDescriptor(t,r);i&&"function"==typeof i.value&&(e[r]=e[r].bind(e))}return e};const r=["componentWillMount","UNSAFE_componentWillMount","render","getSnapshotBeforeUpdate","componentDidMount","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","UNSAFE_componentWillUpdate","componentDidUpdate","componentWillUnmount","componentDidCatch","setState","forceUpdate"];e.exports.react=(t,n)=>((n=Object.assign({},n)).exclude=(n.exclude||[]).concat(r),e.exports(t,n))},9244:(e,t,n)=>{"use strict";const r=n(6349),i=n(5256),o=n(5180).stdout,u=n(2831),a="win32"===process.platform&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),l=["ansi","ansi","ansi256","ansi16m"],s=new Set(["gray"]),c=Object.create(null);function f(e,t){t=t||{};const n=o?o.level:0;e.level=void 0===t.level?n:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function d(e){if(!this||!(this instanceof d)||this.template){const t={};return f(t,e),t.template=function(){const e=[].slice.call(arguments);return v.apply(null,[t.template].concat(e))},Object.setPrototypeOf(t,d.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=d,t.template}f(this,e)}a&&(i.blue.open="");for(const e of Object.keys(i))i[e].closeRe=new RegExp(r(i[e].close),"g"),c[e]={get(){const t=i[e];return h.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};c.visible={get(){return h.call(this,this._styles||[],!0,"visible")}},i.color.closeRe=new RegExp(r(i.color.close),"g");for(const e of Object.keys(i.color.ansi))s.has(e)||(c[e]={get(){const t=this.level;return function(){const n=i.color[l[t]][e].apply(null,arguments),r={open:n,close:i.color.close,closeRe:i.color.closeRe};return h.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}});i.bgColor.closeRe=new RegExp(r(i.bgColor.close),"g");for(const e of Object.keys(i.bgColor.ansi)){if(s.has(e))continue;c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const t=this.level;return function(){const n=i.bgColor[l[t]][e].apply(null,arguments),r={open:n,close:i.bgColor.close,closeRe:i.bgColor.closeRe};return h.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}}}const p=Object.defineProperties(()=>{},c);function h(e,t,n){const r=function(){return m.apply(r,arguments)};r._styles=e,r._empty=t;const i=this;return Object.defineProperty(r,"level",{enumerable:!0,get:()=>i.level,set(e){i.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:()=>i.enabled,set(e){i.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=p,r}function m(){const e=arguments,t=e.length;let n=String(arguments[0]);if(0===t)return"";if(t>1)for(let r=1;r{"use strict";const t=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,r=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):o.get(e)||e}function a(e,t){const n=[],o=t.trim().split(/\s*,\s*/g);let a;for(const t of o)if(isNaN(t)){if(!(a=t.match(r)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(a[2].replace(i,(e,t,n)=>t?u(t):n))}else n.push(Number(t));return n}function l(e){n.lastIndex=0;const t=[];let r;for(;null!==(r=n.exec(e));){const e=r[1];if(r[2]){const n=a(e,r[2]);t.push([e].concat(n))}else t.push([e])}return t}function s(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const e of Object.keys(n))if(Array.isArray(n[e])){if(!(e in r))throw new Error("Unknown Chalk style: "+e);r=n[e].length>0?r[e].apply(r,n[e]):r[e]}return r}e.exports=(e,n)=>{const r=[],i=[];let o=[];if(n.replace(t,(t,n,a,c,f,d)=>{if(n)o.push(u(n));else if(c){const t=o.join("");o=[],i.push(0===r.length?t:s(e,r)(t)),r.push({inverse:a,styles:l(c)})}else if(f){if(0===r.length)throw new Error("Found extraneous } in Chalk template literal");i.push(s(e,r)(o.join(""))),o=[],r.pop()}else o.push(d)}),i.push(o.join("")),r.length>0){const e=`Chalk template literal is missing ${r.length} closing bracket${1===r.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},5882:(e,t,n)=>{"use strict";const r=n(8483),{stdout:i,stderr:o}=n(9428),{stringReplaceAll:u,stringEncaseCRLFWithFirstIndex:a}=n(3327),l=["ansi","ansi","ansi256","ansi16m"],s=Object.create(null);class c{constructor(e){return f(e)}}const f=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const n=i?i.level:0;e.level=void 0===t.level?n:t.level})(t,e),t.template=(...e)=>_(t.template,...e),Object.setPrototypeOf(t,d.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=c,t.template};function d(e){return f(e)}for(const[e,t]of Object.entries(r))s[e]={get(){const n=v(this,m(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};s.visible={get(){const e=v(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const p=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of p)s[e]={get(){const{level:t}=this;return function(...n){const i=m(r.color[l[t]][e](...n),r.color.close,this._styler);return v(this,i,this._isEmpty)}}};for(const e of p){s["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...n){const i=m(r.bgColor[l[t]][e](...n),r.bgColor.close,this._styler);return v(this,i,this._isEmpty)}}}}const h=Object.defineProperties(()=>{},{...s,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),m=(e,t,n)=>{let r,i;return void 0===n?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},v=(e,t,n)=>{const r=(...e)=>b(r,1===e.length?""+e[0]:e.join(" "));return r.__proto__=h,r._generator=e,r._styler=t,r._isEmpty=n,r},b=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(void 0===n)return t;const{openAll:r,closeAll:i}=n;if(-1!==t.indexOf(""))for(;void 0!==n;)t=u(t,n.close,n.open),n=n.parent;const o=t.indexOf("\n");return-1!==o&&(t=a(t,i,r,o)),r+t+i};let g;const _=(e,...t)=>{const[r]=t;if(!Array.isArray(r))return t.join(" ");const i=t.slice(1),o=[r.raw[0]];for(let e=1;e{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,r=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){const t="u"===e[0],n="{"===e[1];return t&&!n&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function a(e,t){const n=[],o=t.trim().split(/\s*,\s*/g);let a;for(const t of o){const o=Number(t);if(Number.isNaN(o)){if(!(a=t.match(r)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(a[2].replace(i,(e,t,n)=>t?u(t):n))}else n.push(o)}return n}function l(e){n.lastIndex=0;const t=[];let r;for(;null!==(r=n.exec(e));){const e=r[1];if(r[2]){const n=a(e,r[2]);t.push([e].concat(n))}else t.push([e])}return t}function s(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const[e,t]of Object.entries(n))if(Array.isArray(t)){if(!(e in r))throw new Error("Unknown Chalk style: "+e);r=t.length>0?r[e](...t):r[e]}return r}e.exports=(e,n)=>{const r=[],i=[];let o=[];if(n.replace(t,(t,n,a,c,f,d)=>{if(n)o.push(u(n));else if(c){const t=o.join("");o=[],i.push(0===r.length?t:s(e,r)(t)),r.push({inverse:a,styles:l(c)})}else if(f){if(0===r.length)throw new Error("Found extraneous } in Chalk template literal");i.push(s(e,r)(o.join(""))),o=[],r.pop()}else o.push(d)}),i.push(o.join("")),r.length>0){const e=`Chalk template literal is missing ${r.length} closing bracket${1===r.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},3327:e=>{"use strict";e.exports={stringReplaceAll:(e,t,n)=>{let r=e.indexOf(t);if(-1===r)return e;const i=t.length;let o=0,u="";do{u+=e.substr(o,r-o)+t+n,o=r+i,r=e.indexOf(t,o)}while(-1!==r);return u+=e.substr(o),u},stringEncaseCRLFWithFirstIndex:(e,t,n,r)=>{let i=0,o="";do{const u="\r"===e[r-1];o+=e.substr(i,(u?r-1:r)-i)+t+(u?"\r\n":"\n")+n,i=r+1,r=e.indexOf("\n",i)}while(-1!==r);return o+=e.substr(i),o}}},5864:(e,t,n)=>{"use strict";var r=n(5832),i=process.env;function o(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:r.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,r.forEach((function(e){var n=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return o(e)}));if(t[e.constant]=n,n)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=o(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},5832:e=>{"use strict";e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},1305:(e,t,n)=>{"use strict";const r=n(2428);let i=!1;t.show=e=>{const t=e||process.stderr;t.isTTY&&(i=!1,t.write("[?25h"))},t.hide=e=>{const t=e||process.stderr;t.isTTY&&(r(),i=!0,t.write("[?25l"))},t.toggle=(e,n)=>{void 0!==e&&(i=e),i?t.show(n):t.hide(n)}},4093:(e,t,n)=>{"use strict";const r=n(7498),i=n(5478);e.exports=(e,t,n)=>{const o=(n=Object.assign({position:"end"},n)).position;if("string"!=typeof e)throw new TypeError("Expected `input` to be a string, got "+typeof e);if("number"!=typeof t)throw new TypeError("Expected `columns` to be a number, got "+typeof t);if(t<1)return"";if(1===t)return"…";const u=i(e);if(u<=t)return e;if("start"===o)return"…"+r(e,u-t+1,u);if("middle"===o){const n=Math.floor(t/2);return r(e,0,n)+"…"+r(e,u-(t-n)+1,u)}if("end"===o)return r(e,0,t-1)+"…";throw new Error("Expected `options.position` to be either `start`, `middle` or `end`, got "+o)}},9486:(e,t,n)=>{var r=n(3110),i={};for(var o in r)r.hasOwnProperty(o)&&(i[r[o]]=o);var u=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var a in u)if(u.hasOwnProperty(a)){if(!("channels"in u[a]))throw new Error("missing channels property: "+a);if(!("labels"in u[a]))throw new Error("missing channel labels property: "+a);if(u[a].labels.length!==u[a].channels)throw new Error("channel and label counts mismatch: "+a);var l=u[a].channels,s=u[a].labels;delete u[a].channels,delete u[a].labels,Object.defineProperty(u[a],"channels",{value:l}),Object.defineProperty(u[a],"labels",{value:s})}u.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,u=Math.min(r,i,o),a=Math.max(r,i,o),l=a-u;return a===u?t=0:r===a?t=(i-o)/l:i===a?t=2+(o-r)/l:o===a&&(t=4+(r-i)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(u+a)/2,[t,100*(a===u?0:n<=.5?l/(a+u):l/(2-a-u)),100*n]},u.rgb.hsv=function(e){var t,n,r,i,o,u=e[0]/255,a=e[1]/255,l=e[2]/255,s=Math.max(u,a,l),c=s-Math.min(u,a,l),f=function(e){return(s-e)/6/c+.5};return 0===c?i=o=0:(o=c/s,t=f(u),n=f(a),r=f(l),u===s?i=r-n:a===s?i=1/3+t-r:l===s&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*s]},u.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[u.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,r))),100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},u.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},u.rgb.keyword=function(e){var t=i[e];if(t)return t;var n,o,u,a=1/0;for(var l in r)if(r.hasOwnProperty(l)){var s=r[l],c=(o=e,u=s,Math.pow(o[0]-u[0],2)+Math.pow(o[1]-u[1],2)+Math.pow(o[2]-u[2],2));c.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},u.rgb.lab=function(e){var t=u.rgb.xyz(e),n=t[0],r=t[1],i=t[2];return r/=100,i/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},u.hsl.rgb=function(e){var t,n,r,i,o,u=e[0]/360,a=e[1]/100,l=e[2]/100;if(0===a)return[o=255*l,o,o];t=2*l-(n=l<.5?l*(1+a):l+a-l*a),i=[0,0,0];for(var s=0;s<3;s++)(r=u+1/3*-(s-1))<0&&r++,r>1&&r--,o=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[s]=255*o;return i},u.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,o=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=o<=1?o:2-o,[t,100*(0===r?2*i/(o+i):2*n/(r+n)),100*((r+n)/2)]},u.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,o=t-Math.floor(t),u=255*r*(1-n),a=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,l,u];case 1:return[a,r,u];case 2:return[u,r,l];case 3:return[u,a,r];case 4:return[l,u,r];case 5:return[r,u,a]}},u.hsv.hsl=function(e){var t,n,r,i=e[0],o=e[1]/100,u=e[2]/100,a=Math.max(u,.01);return r=(2-o)*u,n=o*a,[i,100*(n=(n/=(t=(2-o)*a)<=1?t:2-t)||0),100*(r/=2)]},u.hwb.rgb=function(e){var t,n,r,i,o,u,a,l=e[0]/360,s=e[1]/100,c=e[2]/100,f=s+c;switch(f>1&&(s/=f,c/=f),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),i=s+r*((n=1-c)-s),t){default:case 6:case 0:o=n,u=i,a=s;break;case 1:o=i,u=n,a=s;break;case 2:o=s,u=n,a=i;break;case 3:o=s,u=i,a=n;break;case 4:o=i,u=s,a=n;break;case 5:o=n,u=s,a=i}return[255*o,255*u,255*a]},u.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},u.xyz.rgb=function(e){var t,n,r,i=e[0]/100,o=e[1]/100,u=e[2]/100;return n=-.9689*i+1.8758*o+.0415*u,r=.0557*i+-.204*o+1.057*u,t=(t=3.2406*i+-1.5372*o+-.4986*u)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},u.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},u.lab.xyz=function(e){var t,n,r,i=e[0];t=e[1]/500+(n=(i+16)/116),r=n-e[2]/200;var o=Math.pow(n,3),u=Math.pow(t,3),a=Math.pow(r,3);return n=o>.008856?o:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=a>.008856?a:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},u.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},u.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},u.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:u.rgb.hsv(e)[2];if(0===(i=Math.round(i/50)))return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(o+=60),o},u.hsv.ansi16=function(e){return u.rgb.ansi16(u.hsv.rgb(e),e[2])},u.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},u.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},u.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},u.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},u.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},u.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255,o=Math.max(Math.max(n,r),i),u=Math.min(Math.min(n,r),i),a=o-u;return t=a<=0?0:o===n?(r-i)/a%6:o===r?2+(i-n)/a:4+(n-r)/a+4,t/=6,[360*(t%=1),100*a,100*(a<1?u/(1-a):0)]},u.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},u.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},u.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,o=[0,0,0],u=t%1*6,a=u%1,l=1-a;switch(Math.floor(u)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return i=(1-n)*r,[255*(n*o[0]+i),255*(n*o[1]+i),255*(n*o[2]+i)]},u.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},u.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},u.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},u.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},u.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},u.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},u.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},u.gray.hsl=u.gray.hsv=function(e){return[0,0,e[0]]},u.gray.hwb=function(e){return[0,100,e[0]]},u.gray.cmyk=function(e){return[0,0,0,e[0]]},u.gray.lab=function(e){return[e[0],0,0]},u.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},u.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},7410:(e,t,n)=>{var r=n(9486),i=n(9445),o={};Object.keys(r).forEach((function(e){o[e]={},Object.defineProperty(o[e],"channels",{value:r[e].channels}),Object.defineProperty(o[e],"labels",{value:r[e].labels});var t=i(e);Object.keys(t).forEach((function(n){var r=t[n];o[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))})),e.exports=o},9445:(e,t,n)=>{var r=n(9486);function i(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,i=0;i{const r=n(3300),i={};for(const e of Object.keys(r))i[r[e]]=e;const o={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=o;for(const e of Object.keys(o)){if(!("channels"in o[e]))throw new Error("missing channels property: "+e);if(!("labels"in o[e]))throw new Error("missing channel labels property: "+e);if(o[e].labels.length!==o[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:n}=o[e];delete o[e].channels,delete o[e].labels,Object.defineProperty(o[e],"channels",{value:t}),Object.defineProperty(o[e],"labels",{value:n})}o.rgb.hsl=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),o=Math.max(t,n,r),u=o-i;let a,l;o===i?a=0:t===o?a=(n-r)/u:n===o?a=2+(r-t)/u:r===o&&(a=4+(t-n)/u),a=Math.min(60*a,360),a<0&&(a+=360);const s=(i+o)/2;return l=o===i?0:s<=.5?u/(o+i):u/(2-o-i),[a,100*l,100*s]},o.rgb.hsv=function(e){let t,n,r,i,o;const u=e[0]/255,a=e[1]/255,l=e[2]/255,s=Math.max(u,a,l),c=s-Math.min(u,a,l),f=function(e){return(s-e)/6/c+.5};return 0===c?(i=0,o=0):(o=c/s,t=f(u),n=f(a),r=f(l),u===s?i=r-n:a===s?i=1/3+t-r:l===s&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*s]},o.rgb.hwb=function(e){const t=e[0],n=e[1];let r=e[2];const i=o.rgb.hsl(e)[0],u=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[i,100*u,100*r]},o.rgb.cmyk=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r);return[100*((1-t-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*i]},o.rgb.keyword=function(e){const t=i[e];if(t)return t;let n,o=1/0;for(const t of Object.keys(r)){const i=r[t],l=(a=i,((u=e)[0]-a[0])**2+(u[1]-a[1])**2+(u[2]-a[2])**2);l.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;return[100*(.4124*t+.3576*n+.1805*r),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},o.rgb.lab=function(e){const t=o.rgb.xyz(e);let n=t[0],r=t[1],i=t[2];n/=95.047,r/=100,i/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*r-16,500*(n-r),200*(r-i)]},o.hsl.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;let i,o,u;if(0===n)return u=255*r,[u,u,u];i=r<.5?r*(1+n):r+n-r*n;const a=2*r-i,l=[0,0,0];for(let e=0;e<3;e++)o=t+1/3*-(e-1),o<0&&o++,o>1&&o--,u=6*o<1?a+6*(i-a)*o:2*o<1?i:3*o<2?a+(i-a)*(2/3-o)*6:a,l[e]=255*u;return l},o.hsl.hsv=function(e){const t=e[0];let n=e[1]/100,r=e[2]/100,i=n;const o=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=o<=1?o:2-o;return[t,100*(0===r?2*i/(o+i):2*n/(r+n)),100*((r+n)/2)]},o.hsv.rgb=function(e){const t=e[0]/60,n=e[1]/100;let r=e[2]/100;const i=Math.floor(t)%6,o=t-Math.floor(t),u=255*r*(1-n),a=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,l,u];case 1:return[a,r,u];case 2:return[u,r,l];case 3:return[u,a,r];case 4:return[l,u,r];case 5:return[r,u,a]}},o.hsv.hsl=function(e){const t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01);let o,u;u=(2-n)*r;const a=(2-n)*i;return o=n*i,o/=a<=1?a:2-a,o=o||0,u/=2,[t,100*o,100*u]},o.hwb.rgb=function(e){const t=e[0]/360;let n=e[1]/100,r=e[2]/100;const i=n+r;let o;i>1&&(n/=i,r/=i);const u=Math.floor(6*t),a=1-r;o=6*t-u,0!=(1&u)&&(o=1-o);const l=n+o*(a-n);let s,c,f;switch(u){default:case 6:case 0:s=a,c=l,f=n;break;case 1:s=l,c=a,f=n;break;case 2:s=n,c=a,f=l;break;case 3:s=n,c=l,f=a;break;case 4:s=l,c=n,f=a;break;case 5:s=a,c=n,f=l}return[255*s,255*c,255*f]},o.cmyk.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},o.xyz.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100;let i,o,u;return i=3.2406*t+-1.5372*n+-.4986*r,o=-.9689*t+1.8758*n+.0415*r,u=.0557*t+-.204*n+1.057*r,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,i=Math.min(Math.max(0,i),1),o=Math.min(Math.max(0,o),1),u=Math.min(Math.max(0,u),1),[255*i,255*o,255*u]},o.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;return[116*n-16,500*(t-n),200*(n-r)]},o.lab.xyz=function(e){let t,n,r;n=(e[0]+16)/116,t=e[1]/500+n,r=n-e[2]/200;const i=n**3,o=t**3,u=r**3;return n=i>.008856?i:(n-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,r=u>.008856?u:(r-16/116)/7.787,t*=95.047,n*=100,r*=108.883,[t,n,r]},o.lab.lch=function(e){const t=e[0],n=e[1],r=e[2];let i;i=360*Math.atan2(r,n)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(n*n+r*r),i]},o.lch.lab=function(e){const t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},o.rgb.ansi16=function(e,t=null){const[n,r,i]=e;let u=null===t?o.rgb.hsv(e)[2]:t;if(u=Math.round(u/50),0===u)return 30;let a=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return 2===u&&(a+=60),a},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){const t=e[0],n=e[1],r=e[2];if(t===n&&n===r)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},o.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},o.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},o.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];3===t[0].length&&(n=n.split("").map(e=>e+e).join(""));const r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},o.rgb.hcg=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),o=Math.min(Math.min(t,n),r),u=i-o;let a,l;return a=u<1?o/(1-u):0,l=u<=0?0:i===t?(n-r)/u%6:i===n?2+(r-t)/u:4+(t-n)/u,l/=6,l%=1,[360*l,100*u,100*a]},o.hsl.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n);let i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},o.hsv.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=t*n;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.hcg.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];const i=[0,0,0],o=t%1*6,u=o%1,a=1-u;let l=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=u,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=u;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=u,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-n)*r,[255*(n*i[0]+l),255*(n*i[1]+l),255*(n*i[2]+l)]},o.hcg.hsv=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);let r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},o.hcg.hsl=function(e){const t=e[1]/100,n=e[2]/100*(1-t)+.5*t;let r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},o.hcg.hwb=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},o.hwb.hcg=function(e){const t=e[1]/100,n=1-e[2]/100,r=n-t;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=function(e){return[0,0,e[0]]},o.gray.hsv=o.gray.hsl,o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2744:(e,t,n)=>{const r=n(5311),i=n(8577),o={};Object.keys(r).forEach(e=>{o[e]={},Object.defineProperty(o[e],"channels",{value:r[e].channels}),Object.defineProperty(o[e],"labels",{value:r[e].labels});const t=i(e);Object.keys(t).forEach(n=>{const r=t[n];o[e][n]=function(e){const t=function(...t){const n=t[0];if(null==n)return n;n.length>1&&(t=n);const r=e(t);if("object"==typeof r)for(let e=r.length,t=0;t1&&(t=n),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)})}),e.exports=o},8577:(e,t,n)=>{const r=n(5311);function i(e){const t=function(){const e={},t=Object.keys(r);for(let n=t.length,r=0;r{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},3300:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},2517:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g}},6349:e=>{"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},6591:e=>{"use strict";e.exports=(e,t)=>{t=t||process.argv;const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r{"use strict";e.exports=(e,t=process.argv)=>{const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r{"use strict";e.exports=n(5864).isCI},703:e=>{"use strict";e.exports=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141))},4623:e=>{var t=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=parseInt,u="object"==typeof global&&global&&global.Object===Object&&global,a="object"==typeof self&&self&&self.Object===Object&&self,l=u||a||Function("return this")(),s=Object.prototype.toString,c=Math.max,f=Math.min,d=function(){return l.Date.now()};function p(e,t,n){var r,i,o,u,a,l,s=0,p=!1,v=!1,b=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,o=i;return r=i=void 0,s=t,u=e.apply(o,n)}function _(e){return s=e,a=setTimeout(D,t),p?g(e):u}function y(e){var n=e-l;return void 0===l||n>=t||n<0||v&&e-s>=o}function D(){var e=d();if(y(e))return w(e);a=setTimeout(D,function(e){var n=t-(e-l);return v?f(n,o-(e-s)):n}(e))}function w(e){return a=void 0,b&&r?g(e):(r=i=void 0,u)}function E(){var e=d(),n=y(e);if(r=arguments,i=this,l=e,n){if(void 0===a)return _(l);if(v)return a=setTimeout(D,t),g(l)}return void 0===a&&(a=setTimeout(D,t)),u}return t=m(t)||0,h(n)&&(p=!!n.leading,o=(v="maxWait"in n)?c(m(n.maxWait)||0,t):o,b="trailing"in n?!!n.trailing:b),E.cancel=function(){void 0!==a&&clearTimeout(a),s=0,r=l=i=a=void 0},E.flush=function(){return void 0===a?u:w(d())},E}function h(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function m(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==s.call(e)}(e))return NaN;if(h(e)){var u="function"==typeof e.valueOf?e.valueOf():e;e=h(u)?u+"":u}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(t,"");var a=r.test(e);return a||i.test(e)?o(e.slice(2),a?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return h(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),p(e,t,{leading:r,maxWait:t,trailing:i})}},4046:(e,t,n)=>{"use strict";const r=n(327),i=n(1305),o=n(5449),u=(e,t)=>{t=Object.assign({showCursor:!1},t);let n=0;const u=(...u)=>{t.showCursor||i.hide();let a=u.join(" ")+"\n";a=o(a,(e=>{const{columns:t}=e;return t?"win32"===process.platform?t-1:t:80})(e),{trim:!1,hard:!0,wordWrap:!1}),e.write(r.eraseLines(n)+a),n=a.split("\n").length};return u.clear=()=>{e.write(r.eraseLines(n)),n=0},u.done=()=>{n=0,t.showCursor||i.show()},u};e.exports=u(process.stdout),e.exports.default=e.exports,e.exports.stderr=u(process.stderr),e.exports.create=u},2658:e=>{"use strict";e.exports=(e,t)=>{for(const n of Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)))Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n));return e}},9381:e=>{"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var u,a,l=i(e),s=1;s{"use strict";const r=n(2658);e.exports=(e,t)=>{if(!0===t)throw new TypeError("The second argument is now an options object");if("function"!=typeof e)throw new TypeError("Expected a function");let n;t=t||{};let i=!1;const o=e.displayName||e.name||"",u=function(){if(i){if(!0===t.throw)throw new Error(`Function \`${o}\` can only be called once`);return n}return i=!0,n=e.apply(this,arguments),e=null,n};return r(u,e),u}},6976:(e,t,n)=>{"use strict";var r=n(9090);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,u){if(u!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},6271:(e,t,n)=>{e.exports=n(6976)()},9090:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6099:(e,t,n)=>{"use strict"; -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var r=n(9381),i="function"==typeof Symbol&&Symbol.for,o=i?Symbol.for("react.element"):60103,u=i?Symbol.for("react.portal"):60106,a=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,s=i?Symbol.for("react.profiler"):60114,c=i?Symbol.for("react.provider"):60109,f=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,p=i?Symbol.for("react.suspense"):60113,h=i?Symbol.for("react.memo"):60115,m=i?Symbol.for("react.lazy"):60116,v="function"==typeof Symbol&&Symbol.iterator;function b(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nA.length&&A.push(e)}function R(e,t,n){return null==e?0:function e(t,n,r,i){var a=typeof t;"undefined"!==a&&"boolean"!==a||(t=null);var l=!1;if(null===t)l=!0;else switch(a){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case o:case u:l=!0}}if(l)return r(i,t,""===n?"."+N(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s{"use strict";e.exports=n(6099)},2428:(e,t,n)=>{"use strict";const r=n(4767),i=n(6458);e.exports=r(()=>{i(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})},8992:(e,t)=>{"use strict"; -/** @license React v0.13.6 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */Object.defineProperty(t,"__esModule",{value:!0});var n=null,r=!1,i=3,o=-1,u=-1,a=!1,l=!1;function s(){if(!a){var e=n.expirationTime;l?E():l=!0,w(d,e)}}function c(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var o=i,a=u;i=e,u=t;try{var l=r()}finally{i=o,u=a}if("function"==typeof l)if(l={callback:l,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=l.next=l.previous=l;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=l,s()),(t=r.previous).next=r.previous=l,l.next=r,l.previous=t}}function f(){if(-1===o&&null!==n&&1===n.priorityLevel){a=!0;try{do{c()}while(null!==n&&1===n.priorityLevel)}finally{a=!1,null!==n?s():l=!1}}}function d(e){a=!0;var i=r;r=e;try{if(e)for(;null!==n;){var o=t.unstable_now();if(!(n.expirationTime<=o))break;do{c()}while(null!==n&&n.expirationTime<=o)}else if(null!==n)do{c()}while(null!==n&&!C())}finally{a=!1,r=i,null!==n?s():l=!1,f()}}var p,h,m=Date,v="function"==typeof setTimeout?setTimeout:void 0,b="function"==typeof clearTimeout?clearTimeout:void 0,g="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,_="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function y(e){p=g((function(t){b(h),e(t)})),h=v((function(){_(p),e(t.unstable_now())}),100)}if("object"==typeof performance&&"function"==typeof performance.now){var D=performance;t.unstable_now=function(){return D.now()}}else t.unstable_now=function(){return m.now()};var w,E,C,T=null;if("undefined"!=typeof window?T=window:"undefined"!=typeof global&&(T=global),T&&T._schedMock){var k=T._schedMock;w=k[0],E=k[1],C=k[2],t.unstable_now=k[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var S=null,M=function(e){if(null!==S)try{S(e)}finally{S=null}};w=function(e){null!==S?setTimeout(w,0,e):(S=e,setTimeout(M,0,!1))},E=function(){S=null},C=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof g&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof _&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var x=null,A=!1,P=-1,O=!1,R=!1,N=0,I=33,F=33;C=function(){return N<=t.unstable_now()};var B=new MessageChannel,L=B.port2;B.port1.onmessage=function(){A=!1;var e=x,n=P;x=null,P=-1;var r=t.unstable_now(),i=!1;if(0>=N-r){if(!(-1!==n&&n<=r))return O||(O=!0,y(U)),x=e,void(P=n);i=!0}if(null!==e){R=!0;try{e(i)}finally{R=!1}}};var U=function(e){if(null!==x){y(U);var t=e-N+F;tt&&(t=8),F=tt?L.postMessage(void 0):O||(O=!0,y(U))},E=function(){x=null,A=!1,P=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=i,u=o;i=e,o=t.unstable_now();try{return n()}finally{i=r,o=u,f()}},t.unstable_next=function(e){switch(i){case 1:case 2:case 3:var n=3;break;default:n=i}var r=i,u=o;i=n,o=t.unstable_now();try{return e()}finally{i=r,o=u,f()}},t.unstable_scheduleCallback=function(e,r){var u=-1!==o?o:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=u+r.timeout;else switch(i){case 1:r=u+-1;break;case 2:r=u+250;break;case 5:r=u+1073741823;break;case 4:r=u+1e4;break;default:r=u+5e3}if(e={callback:e,priorityLevel:i,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,s();else{u=null;var a=n;do{if(a.expirationTime>r){u=a;break}a=a.next}while(a!==n);null===u?u=n:u===n&&(n=e,s()),(r=u.previous).next=u.previous=e,e.next=u,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=i;return function(){var r=i,u=o;i=n,o=t.unstable_now();try{return e.apply(this,arguments)}finally{i=r,o=u,f()}}},t.unstable_getCurrentPriorityLevel=function(){return i},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime{"use strict";e.exports=n(8992)},6458:(e,t,n)=>{var r,i=n(2357),o=n(8082),u=n(8614);function a(){c&&(c=!1,o.forEach((function(e){try{process.removeListener(e,s[e])}catch(e){}})),process.emit=h,process.reallyExit=d,r.count-=1)}function l(e,t,n){r.emitted[e]||(r.emitted[e]=!0,r.emit(e,t,n))}"function"!=typeof u&&(u=u.EventEmitter),process.__signal_exit_emitter__?r=process.__signal_exit_emitter__:((r=process.__signal_exit_emitter__=new u).count=0,r.emitted={}),r.infinite||(r.setMaxListeners(1/0),r.infinite=!0),e.exports=function(e,t){i.equal(typeof e,"function","a callback must be provided for exit handler"),!1===c&&f();var n="exit";t&&t.alwaysLast&&(n="afterexit");return r.on(n,e),function(){r.removeListener(n,e),0===r.listeners("exit").length&&0===r.listeners("afterexit").length&&a()}},e.exports.unload=a;var s={};o.forEach((function(e){s[e]=function(){process.listeners(e).length===r.count&&(a(),l("exit",null,e),l("afterexit",null,e),process.kill(process.pid,e))}})),e.exports.signals=function(){return o},e.exports.load=f;var c=!1;function f(){c||(c=!0,r.count+=1,o=o.filter((function(e){try{return process.on(e,s[e]),!0}catch(e){return!1}})),process.emit=m,process.reallyExit=p)}var d=process.reallyExit;function p(e){process.exitCode=e||0,l("exit",process.exitCode,null),l("afterexit",process.exitCode,null),d.call(process,process.exitCode)}var h=process.emit;function m(e,t){if("exit"===e){void 0!==t&&(process.exitCode=t);var n=h.apply(this,arguments);return l("exit",process.exitCode,null),l("afterexit",process.exitCode,null),n}return h.apply(this,arguments)}},8082:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},7498:(e,t,n)=>{"use strict";const r=n(703),i=["","›"],o=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,u=new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[90,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49]]),a=e=>`${i[0]}[${e}m`;e.exports=(e,t,n)=>{const l=Array.from(e.normalize());n="number"==typeof n?n:l.length;let s,c=!1,f=0,d="";for(const p of l.entries()){const l=p[0],h=p[1];let m=!1;if(-1!==i.indexOf(h)){c=!0;const t=/\d[^m]*/.exec(e.slice(l,l+4));s=39===t?null:t}else c&&"m"===h&&(c=!1,m=!0);if(c||m||++f,!o.test(h)&&r(h.codePointAt())&&++f,f>t&&f<=n)d+=h;else if(f!==t||c||void 0===s||39===s){if(f>=n){void 0!==s&&(d+=a(u.get(parseInt(s,10))||39));break}}else d+=a(s)}return d}},2989:(e,t,n)=>{"use strict";const r=n(3455),i=n(5640);e.exports=e=>r(e).replace(i()," ").length},5478:(e,t,n)=>{"use strict";const r=n(3455),i=n(703);e.exports=e=>{if("string"!=typeof e||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n=127&&r<=159||(r>=768&&r<=879||(r>65535&&n++,t+=i(r)?2:1))}return t}},5554:(e,t,n)=>{"use strict";const r=n(7402),i=n(703),o=n(2517)();e.exports=e=>{if("string"!=typeof(e=e.replace(o," "))||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n=127&&r<=159||(r>=768&&r<=879||(r>65535&&n++,t+=i(r)?2:1))}return t}},3455:(e,t,n)=>{"use strict";const r=n(7788);e.exports=e=>"string"==typeof e?e.replace(r(),""):e},7402:(e,t,n)=>{"use strict";const r=n(5378),i=e=>"string"==typeof e?e.replace(r(),""):e;e.exports=i,e.exports.default=i},5180:(e,t,n)=>{"use strict";const r=n(2087),i=n(6591),o=process.env;let u;function a(e){return function(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}(function(e){if(!1===u)return 0;if(i("color=16m")||i("color=full")||i("color=truecolor"))return 3;if(i("color=256"))return 2;if(e&&!e.isTTY&&!0!==u)return 0;const t=u?1:0;if("win32"===process.platform){const e=r.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in o)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in o)||"codeship"===o.CI_NAME?1:t;if("TEAMCITY_VERSION"in o)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(o.TEAMCITY_VERSION)?1:0;if("truecolor"===o.COLORTERM)return 3;if("TERM_PROGRAM"in o){const e=parseInt((o.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(o.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(o.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(o.TERM)||"COLORTERM"in o?1:(o.TERM,t)}(e))}i("no-color")||i("no-colors")||i("color=false")?u=!1:(i("color")||i("colors")||i("color=true")||i("color=always"))&&(u=!0),"FORCE_COLOR"in o&&(u=0===o.FORCE_COLOR.length||0!==parseInt(o.FORCE_COLOR,10)),e.exports={supportsColor:a,stdout:a(process.stdout),stderr:a(process.stderr)}},9428:(e,t,n)=>{"use strict";const r=n(2087),i=n(3867),o=n(2918),{env:u}=process;let a;function l(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function s(e,t){if(0===a)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===a)return 0;const n=a||0;if("dumb"===u.TERM)return n;if("win32"===process.platform){const e=r.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in u)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in u)||"codeship"===u.CI_NAME?1:n;if("TEAMCITY_VERSION"in u)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(u.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in u)return 1;if("truecolor"===u.COLORTERM)return 3;if("TERM_PROGRAM"in u){const e=parseInt((u.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(u.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(u.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(u.TERM)||"COLORTERM"in u?1:n}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?a=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(a=1),"FORCE_COLOR"in u&&(a="true"===u.FORCE_COLOR?1:"false"===u.FORCE_COLOR?0:0===u.FORCE_COLOR.length?1:Math.min(parseInt(u.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return l(s(e,e&&e.isTTY))},stdout:l(s(!0,i.isatty(1))),stderr:l(s(!0,i.isatty(2)))}},128:(e,t,n)=>{"use strict";const r=n(5478);e.exports=e=>{let t=0;for(const n of e.split("\n"))t=Math.max(t,r(n));return t}},5449:(e,t,n)=>{"use strict";const r=n(5554),i=n(7402),o=n(5256),u=new Set(["","›"]),a=e=>`${u.values().next().value}[${e}m`,l=(e,t,n)=>{const o=[...t];let a=!1,l=r(i(e[e.length-1]));for(const[t,i]of o.entries()){const s=r(i);if(l+s<=n?e[e.length-1]+=i:(e.push(i),l=0),u.has(i))a=!0;else if(a&&"m"===i){a=!1;continue}a||(l+=s,l===n&&t0&&e.length>1&&(e[e.length-2]+=e.pop())},s=e=>{const t=e.split(" ");let n=t.length;for(;n>0&&!(r(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},c=(e,t,n={})=>{if(!1!==n.trim&&""===e.trim())return"";let i,c="",f="";const d=(e=>e.split(" ").map(e=>r(e)))(e);let p=[""];for(const[i,o]of e.split(" ").entries()){!1!==n.trim&&(p[p.length-1]=p[p.length-1].trimLeft());let e=r(p[p.length-1]);if(0!==i&&(e>=t&&(!1===n.wordWrap||!1===n.trim)&&(p.push(""),e=0),(e>0||!1===n.trim)&&(p[p.length-1]+=" ",e++)),n.hard&&d[i]>t){const n=t-e,r=1+Math.floor((d[i]-n-1)/t);Math.floor((d[i]-1)/t)t&&e>0&&d[i]>0){if(!1===n.wordWrap&&et&&!1===n.wordWrap?l(p,o,t):p[p.length-1]+=o}}!1!==n.trim&&(p=p.map(s)),c=p.join("\n");for(const[e,t]of[...c].entries()){if(f+=t,u.has(t)){const t=parseFloat(/\d[^m]*/.exec(c.slice(e,e+4)));i=39===t?null:t}const n=o.codes.get(Number(i));i&&n&&("\n"===c[e+1]?f+=a(n):"\n"===t&&(f+=a(i)))}return f};e.exports=(e,t,n)=>String(e).normalize().split("\n").map(e=>c(e,t,n)).join("\n")},7356:function(module,exports){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,wrapper;wrapper=function(Module,cb){var Module;"function"==typeof Module&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(e){return void t(e)}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb),Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1,nodeFS,nodePath;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else{if("SHELL"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_SHELL=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE)Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn),Module.read=function(e,t){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var n=nodeFS.readFileSync(e);return t?n:n.toString()},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),module.exports=Module,process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e})),Module.inspect=function(){return"[Emscripten Module object]"};else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(e,t){quit(e)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Module.readAsync=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):n()},r.onerror=n,r.send(null)},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),void 0===Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4==(7&e)),e+=4):assert(0==(3&e)),e},getAlignSize:function(e,t,n){return n||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,n){return n&&n.length?Module["dynCall_"+e].apply(null,[t].concat(n)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t>2],n=-16&(t+e+15|0);return HEAP32[DYNAMICTOP_PTR>>2]=n,n>=TOTAL_MEMORY&&!enlargeMemory()?(HEAP32[DYNAMICTOP_PTR>>2]=t,0):t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,n){return n?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+n)}}function getValue(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(null!=e&&0!==e){var n=1+(e.length<<2);stringToUTF8(e,t=Runtime.stackAlloc(n),n)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,n,r,i){var o=getCFunc(e),u=[],a=0;if(r)for(var l=0;l>2]=0;for(l=u+o;r>0]=0;return u}if("i8"===a)return e.subarray||e.slice?HEAPU8.set(e,u):HEAPU8.set(new Uint8Array(e),u),u;for(var s,c,f,d=0;d>0],(0!=n||t)&&(i++,!t||i!=t););t||(t=i);var o="";if(r<128){for(var u;t>0;)u=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),o=o?o+u:u,e+=1024,t-=1024;return o}return Module.UTF8ToString(e)}function AsciiToString(e){for(var t="";;){var n=HEAP8[e++>>0];if(!n)return t;t+=String.fromCharCode(n)}}function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var n=t;e[n];)++n;if(n-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var r,i,o,u,a,l="";;){if(!(r=e[t++]))return l;if(128&r)if(i=63&e[t++],192!=(224&r))if(o=63&e[t++],224==(240&r)?r=(15&r)<<12|i<<6|o:(u=63&e[t++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|u:(a=63&e[t++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|u<<6|a:(1&r)<<30|i<<24|o<<18|u<<12|a<<6|63&e[t++])),r<65536)l+=String.fromCharCode(r);else{var s=r-65536;l+=String.fromCharCode(55296|s>>10,56320|1023&s)}else l+=String.fromCharCode((31&r)<<6|i);else l+=String.fromCharCode(r)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,t,n,r){if(!(r>0))return 0;for(var i=n,o=n+r-1,u=0;u=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++u)),a<=127){if(n>=o)break;t[n++]=a}else if(a<=2047){if(n+1>=o)break;t[n++]=192|a>>6,t[n++]=128|63&a}else if(a<=65535){if(n+2>=o)break;t[n++]=224|a>>12,t[n++]=128|a>>6&63,t[n++]=128|63&a}else if(a<=2097151){if(n+3>=o)break;t[n++]=240|a>>18,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}else if(a<=67108863){if(n+4>=o)break;t[n++]=248|a>>24,t[n++]=128|a>>18&63,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}else{if(n+5>=o)break;t[n++]=252|a>>30,t[n++]=128|a>>24&63,t[n++]=128|a>>18&63,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}}return t[n]=0,n-i}function stringToUTF8(e,t,n){return stringToUTF8Array(e,HEAPU8,t,n)}function lengthBytesUTF8(e){for(var t=0,n=0;n=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++n)),r<=127?++t:t+=r<=2047?2:r<=65535?3:r<=2097151?4:r<=67108863?5:6}return t}Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var n=e.substr(1),r=lengthBytesUTF8(n)+1,i=_malloc(r);stringToUTF8(n,i,r);var o=_malloc(4),u=t(i,0,0,o);if(0===getValue(o,"i32")&&u)return Pointer_stringify(u)}catch(e){}finally{i&&_free(i),o&&_free(o),u&&_free(u)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}Module.stackTrace=stackTrace,STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;function getTotalMemory(){return TOTAL_MEMORY}if(TOTAL_MEMORY0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?Module.dynCall_v(n):Module.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,n){var r=n>0?n:lengthBytesUTF8(e)+1,i=new Array(r),o=stringToUTF8Array(e,i,0,i.length);return t&&(i.length=o),i}function intArrayToString(e){for(var t=[],n=0;n255&&(r&=255),t.push(String.fromCharCode(r))}return t.join("")}function writeStringToMemory(e,t,n){var r,i;Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"),n&&(i=t+lengthBytesUTF8(e),r=HEAP8[i]),stringToUTF8(e,t,1/0),n&&(HEAP8[i]=r)}function writeArrayToMemory(e,t){HEAP8.set(e,t)}function writeAsciiToMemory(e,t,n){for(var r=0;r>0]=e.charCodeAt(r);n||(HEAP8[t>>0]=0)}if(Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,t){var n=65535&e,r=65535&t;return n*r+((e>>>16)*r+n*(t>>>16)<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(e){return froundBuffer[0]=e,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(e,t,n,r,i,o,u,a){return _nbind.callbackSignatureList[e].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(e,t,n,r,i,o,u,a){return ASM_CONSTS[e](t,n,r,i,o,u,a)}function _emscripten_asm_const_iiiii(e,t,n,r,i){return ASM_CONSTS[e](t,n,r,i)}function _emscripten_asm_const_iiidddddd(e,t,n,r,i,o,u,a,l){return ASM_CONSTS[e](t,n,r,i,o,u,a,l)}function _emscripten_asm_const_iiididi(e,t,n,r,i,o,u){return ASM_CONSTS[e](t,n,r,i,o,u)}function _emscripten_asm_const_iiii(e,t,n,r){return ASM_CONSTS[e](t,n,r)}function _emscripten_asm_const_iiiid(e,t,n,r,i){return ASM_CONSTS[e](t,n,r,i)}function _emscripten_asm_const_iiiiii(e,t,n,r,i,o){return ASM_CONSTS[e](t,n,r,i,o)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(e,t,n,r){var i,o=arguments.length,u=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(u=(o<3?i(u):o>3?i(t,n,u):i(t,n))||u);return o>3&&u&&Object.defineProperty(t,n,u),u}function _defineHidden(e){return function(t,n){Object.defineProperty(t,n,{configurable:!1,enumerable:!1,value:e,writable:!0})}}STATICTOP+=16;var _nbind={};function __nbind_free_external(e){_nbind.externalList[e].dereference(e)}function __nbind_reference_external(e){_nbind.externalList[e].reference()}function _llvm_stackrestore(e){var t=_llvm_stacksave,n=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(n)}function __nbind_register_pool(e,t,n,r){_nbind.Pool.pageSize=e,_nbind.Pool.usedPtr=t/4,_nbind.Pool.rootPtr=n,_nbind.Pool.pagePtr=r/4,HEAP32[t/4]=16909060,1==HEAP8[t]&&(_nbind.bigEndian=!0),HEAP32[t/4]=0,_nbind.makeTypeKindTbl=((i={})[1024]=_nbind.PrimitiveType,i[64]=_nbind.Int64Type,i[2048]=_nbind.BindClass,i[3072]=_nbind.BindClassPtr,i[4096]=_nbind.SharedClassPtr,i[5120]=_nbind.ArrayType,i[6144]=_nbind.ArrayType,i[7168]=_nbind.CStringType,i[9216]=_nbind.CallbackType,i[10240]=_nbind.BindType,i),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var i,o=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});o.proto=Module,_nbind.BindClass.list.push(o)}function _emscripten_set_main_loop_timing(e,t){if(Browser.mainLoop.timingMode=e,Browser.mainLoop.timingValue=t,!Browser.mainLoop.func)return 1;if(0==e)Browser.mainLoop.scheduler=function(){var e=0|Math.max(0,Browser.mainLoop.tickStartTime+t-_emscripten_get_now());setTimeout(Browser.mainLoop.runner,e)},Browser.mainLoop.method="timeout";else if(1==e)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(2==e){if(!window.setImmediate){var n=[];window.addEventListener("message",(function(e){e.source===window&&"setimmediate"===e.data&&(e.stopPropagation(),n.shift()())}),!0),window.setImmediate=function(e){n.push(e),ENVIRONMENT_IS_WORKER?(void 0===Module.setImmediates&&(Module.setImmediates=[]),Module.setImmediates.push(e),window.postMessage({target:"setimmediate"})):window.postMessage("setimmediate","*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(e,t,n,r,i){var o;Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=e,Browser.mainLoop.arg=r,o=void 0!==r?function(){Module.dynCall_vi(e,r)}:function(){Module.dynCall_v(e)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT)if(Browser.mainLoop.queue.length>0){var e=Date.now(),t=Browser.mainLoop.queue.shift();if(t.func(t.arg),Browser.mainLoop.remainingBlockers){var n=Browser.mainLoop.remainingBlockers,r=n%1==0?n-1:Math.floor(n);t.counted?Browser.mainLoop.remainingBlockers=r:(r+=.5,Browser.mainLoop.remainingBlockers=(8*n+r)/9)}if(console.log('main loop blocker "'+t.name+'" took '+(Date.now()-e)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0?Browser.mainLoop.scheduler():(0==Browser.mainLoop.timingMode&&(Browser.mainLoop.tickStartTime=_emscripten_get_now()),"timeout"===Browser.mainLoop.method&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(o),u0?_emscripten_set_main_loop_timing(0,1e3/t):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),n)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode,t=Browser.mainLoop.timingValue,n=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(n,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(e,t),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",t=Browser.mainLoop.remainingBlockers,n=Browser.mainLoop.expectedBlockers;t?t=6;){var u=r>>i-6&63;i-=6,n+=t[u]}return 2==i?(n+=t[(3&r)<<4],n+="=="):4==i&&(n+=t[(15&r)<<2],n+="="),n}(e),o(s))},s.src=l,Browser.safeSetTimeout((function(){o(s)}),1e4)}};Module.preloadPlugins.push(t);var n=Module.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||function(){},n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&n.addEventListener("click",(function(e){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),e.preventDefault())}),!1))}function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}},createContext:function(e,t,n,r){if(t&&Module.ctx&&e==Module.canvas)return Module.ctx;var i,o;if(t){var u={antialias:!1,alpha:!1};if(r)for(var a in r)u[a]=r[a];(o=GL.createContext(e,u))&&(i=GL.getContext(o).GLctx)}else i=e.getContext("2d");return i?(n&&(t||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=i,t&&GL.makeContextCurrent(o),Module.useWebGL=t,Browser.moduleContextCreatedCallbacks.forEach((function(e){e()})),Browser.init()),i):null},destroyContext:function(e,t,n){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t,n){Browser.lockPointer=e,Browser.resizeCanvas=t,Browser.vrDevice=n,void 0===Browser.lockPointer&&(Browser.lockPointer=!0),void 0===Browser.resizeCanvas&&(Browser.resizeCanvas=!1),void 0===Browser.vrDevice&&(Browser.vrDevice=null);var r=Module.canvas;function i(){Browser.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},r.exitFullscreen=r.exitFullscreen.bind(document),Browser.lockPointer&&r.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(r)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",i,!1),document.addEventListener("mozfullscreenchange",i,!1),document.addEventListener("webkitfullscreenchange",i,!1),document.addEventListener("MSFullscreenChange",i,!1));var o=document.createElement("div");r.parentNode.insertBefore(o,r),o.appendChild(r),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),n?o.requestFullscreen({vrDisplay:n}):o.requestFullscreen()},requestFullScreen:function(e,t,n){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(e,t,n){return Browser.requestFullscreen(e,t,n)},Browser.requestFullscreen(e,t,n)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=t+1e3/60;else for(;t+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var n=Math.max(Browser.nextRAF-t,0);setTimeout(e,n)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach((function(e){e()}))}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}))},safeSetTimeout:function(e,t){return Module.noExitRuntime=!0,setTimeout((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}),t)},safeSetInterval:function(e,t){return Module.noExitRuntime=!0,setInterval((function(){ABORT||Browser.allowAsyncCallbacks&&e()}),t)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail;break;case"mousewheel":t=e.wheelDelta;break;case"wheel":t=e.deltaY;break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),"undefined"!=typeof SDL?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var t=Module.canvas.getBoundingClientRect(),n=Module.canvas.width,r=Module.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,o=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var u=e.touch;if(void 0===u)return;var a=u.pageX-(i+t.left),l=u.pageY-(o+t.top),s={x:a*=n/t.width,y:l*=r/t.height};if("touchstart"===e.type)Browser.lastTouches[u.identifier]=s,Browser.touches[u.identifier]=s;else if("touchend"===e.type||"touchmove"===e.type){var c=Browser.touches[u.identifier];c||(c=s),Browser.lastTouches[u.identifier]=c,Browser.touches[u.identifier]=s}return}var f=e.pageX-(i+t.left),d=e.pageY-(o+t.top);f*=n/t.width,d*=r/t.height,Browser.mouseMovementX=f-Browser.mouseX,Browser.mouseMovementY=d-Browser.mouseY,Browser.mouseX=f,Browser.mouseY=d}},asyncLoad:function(e,t,n,r){var i=r?"":getUniqueRunDependency("al "+e);Module.readAsync(e,(function(n){assert(n,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(n)),i&&removeRunDependency(i)}),(function(t){if(!n)throw'Loading data file "'+e+'" failed.';n()})),i&&addRunDependency(i)},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,n){var r=Module.canvas;Browser.updateCanvasDimensions(r,e,t),n||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e|=8388608,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e&=-8388609,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},updateCanvasDimensions:function(e,t,n){t&&n?(e.widthNative=t,e.heightNative=n):(t=e.widthNative,n=e.heightNative);var r=t,i=n;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(r/i>2]},getStr:function(){return Pointer_stringify(SYSCALLS.get())},get64:function(){var e=SYSCALLS.get(),t=SYSCALLS.get();return assert(e>=0?0===t:-1===t),e},getZero:function(){assert(0===SYSCALLS.get())}};function ___syscall6(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD();return FS.close(n),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall54(e,t){SYSCALLS.varargs=t;try{return 0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function _typeModule(e){var t=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function n(e,t,n,r,i,o){if(1==t){var u=896&r;128!=u&&256!=u&&384!=u||(e="X const")}return(o?n.replace("X",e).replace("Y",i):e.replace("X",n).replace("Y",i)).replace(/([*&]) (?=[*&])/g,"$1")}function r(e,t){var n=t.flags,r=896&n,i=15360&n;return t.name||1024!=i||(1==t.ptrSize?t.name=(16&n?"":(8&n?"un":"")+"signed ")+"char":t.name=(8&n?"u":"")+(32&n?"float":"int")+8*t.ptrSize+"_t"),8!=t.ptrSize||32&n||(i=64),2048==i&&(512==r||640==r?i=4096:r&&(i=3072)),e(i,t)}var i={Type:function(){function e(e){this.id=e.id,this.name=e.name,this.flags=e.flags,this.spec=e}return e.prototype.toString=function(){return this.name},e}(),getComplexType:function e(i,o,u,a,l,s,c,f){void 0===s&&(s="X"),void 0===f&&(f=1);var d=u(i);if(d)return d;var p,h=a(i),m=h.placeholderFlag,v=t[m];c&&v&&(s=n(c[2],c[0],s,v[0],"?",!0)),0==m&&(p="Unbound"),m>=10&&(p="Corrupt"),f>20&&(p="Deeply nested"),p&&function(e,t,n,r,i){throw new Error(e+" type "+n.replace("X",t+"?")+(r?" with flag "+r:"")+" in "+i)}(p,i,s,m,l||"?");var b,g=e(h.paramList[0],o,u,a,l,s,v,f+1),_={flags:v[0],id:i,name:"",paramList:[g]},y=[],D="?";switch(h.placeholderFlag){case 1:b=g.spec;break;case 2:if(1024==(15360&g.flags)&&1==g.spec.ptrSize){_.flags=7168;break}case 3:case 6:case 5:b=g.spec,g.flags;break;case 8:D=""+h.paramList[1],_.paramList.push(h.paramList[1]);break;case 9:for(var w=0,E=h.paramList[1];w>2]=e),e}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function ___syscall140(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD(),r=(SYSCALLS.get(),SYSCALLS.get()),i=SYSCALLS.get(),o=SYSCALLS.get(),u=r;return FS.llseek(n,u,o),HEAP32[i>>2]=n.position,n.getdents&&0===u&&0===o&&(n.getdents=null),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall146(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.get(),r=SYSCALLS.get(),i=SYSCALLS.get(),o=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(e,t){var n=___syscall146.buffers[e];assert(n),0===t||10===t?((1===e?Module.print:Module.printErr)(UTF8ArrayToString(n,0)),n.length=0):n.push(t)});for(var u=0;u>2],l=HEAP32[r+(8*u+4)>>2],s=0;se.pageSize/2||t>e.pageSize-n?_nbind.typeNameTbl.NBind.proto.lalloc(t):(HEAPU32[e.usedPtr]=n+t,e.rootPtr+n)},e.lreset=function(t,n){HEAPU32[e.pagePtr]?_nbind.typeNameTbl.NBind.proto.lreset(t,n):HEAPU32[e.usedPtr]=t},e}();function constructType(e,t){var n=new(10240==e?_nbind.makeTypeNameTbl[t.name]||_nbind.BindType:_nbind.makeTypeKindTbl[e])(t);return typeIdTbl[t.id]=n,_nbind.typeNameTbl[t.name]=n,n}function getType(e){return typeIdTbl[e]}function queryType(e){var t=HEAPU8[e],n=_nbind.structureList[t][1];e/=4,n<0&&(++e,n=HEAPU32[e]+1);var r=Array.prototype.slice.call(HEAPU32.subarray(e+1,e+1+n));return 9==t&&(r=[r[0],r.slice(1)]),{paramList:r,placeholderFlag:t}}function getTypes(e,t){return e.map((function(e){return"number"==typeof e?_nbind.getComplexType(e,constructType,getType,queryType,t):_nbind.typeNameTbl[e]}))}function readTypeIdList(e,t){return Array.prototype.slice.call(HEAPU32,e/4,e/4+t)}function readAsciiString(e){for(var t=e;HEAPU8[t++];);return String.fromCharCode.apply("",HEAPU8.subarray(e,t-1))}function readPolicyList(e){var t={};if(e)for(;;){var n=HEAPU32[e/4];if(!n)break;t[readAsciiString(n)]=!0,e+=4}return t}function getDynCall(e,t){var n={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},r=e.map((function(e){return n[e.name]||"i"})).join(""),i=Module["dynCall_"+r];if(!i)throw new Error("dynCall_"+r+" not found for "+t+"("+e.map((function(e){return e.name})).join(", ")+")");return i}function addMethod(e,t,n,r){var i=e[t];e.hasOwnProperty(t)&&i?((i.arity||0===i.arity)&&(i=_nbind.makeOverloader(i,i.arity),e[t]=i),i.addMethod(n,r)):(n.arity=r,e[t]=n)}function throwError(e){throw new Error(e)}_nbind.Pool=Pool,_nbind.constructType=constructType,_nbind.getType=getType,_nbind.queryType=queryType,_nbind.getTypes=getTypes,_nbind.readTypeIdList=readTypeIdList,_nbind.readAsciiString=readAsciiString,_nbind.readPolicyList=readPolicyList,_nbind.getDynCall=getDynCall,_nbind.addMethod=addMethod,_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.heap=HEAPU32,t.ptrSize=4,t}return __extends(t,e),t.prototype.needsWireRead=function(e){return!!this.wireRead||!!this.makeWireRead},t.prototype.needsWireWrite=function(e){return!!this.wireWrite||!!this.makeWireWrite},t}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(e){function t(t){var n=e.call(this,t)||this,r=32&t.flags?{32:HEAPF32,64:HEAPF64}:8&t.flags?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return n.heap=r[8*t.ptrSize],n.ptrSize=t.ptrSize,n}return __extends(t,e),t.prototype.needsWireWrite=function(e){return!!e&&!!e.Strict},t.prototype.makeWireWrite=function(e,t){return t&&t.Strict&&function(e){if("number"==typeof e)return e;throw new Error("Type mismatch")}},t}(BindType);function pushCString(e,t){if(null==e){if(t&&t.Nullable)return 0;throw new Error("Type mismatch")}if(t&&t.Strict){if("string"!=typeof e)throw new Error("Type mismatch")}else e=e.toString();var n=Module.lengthBytesUTF8(e)+1,r=_nbind.Pool.lalloc(n);return Module.stringToUTF8Array(e,HEAPU8,r,n),r}function popCString(e){return 0===e?null:Module.Pointer_stringify(e)}_nbind.PrimitiveType=PrimitiveType,_nbind.pushCString=pushCString,_nbind.popCString=popCString;var CStringType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=popCString,t.wireWrite=pushCString,t.readResources=[_nbind.resources.pool],t.writeResources=[_nbind.resources.pool],t}return __extends(t,e),t.prototype.makeWireWrite=function(e,t){return function(e){return pushCString(e,t)}},t}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=function(e){return!!e},t}return __extends(t,e),t.prototype.needsWireWrite=function(e){return!!e&&!!e.Strict},t.prototype.makeWireRead=function(e){return"!!("+e+")"},t.prototype.makeWireWrite=function(e,t){return t&&t.Strict&&function(e){if("boolean"==typeof e)return e;throw new Error("Type mismatch")}||e},t}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function e(){}return e.prototype.persist=function(){this.__nbindState|=1},e}();function makeBound(e,t){var n=function(e){function n(t,r,i,o){var u=e.call(this)||this;if(!(u instanceof n))return new(Function.prototype.bind.apply(n,Array.prototype.concat.apply([null],arguments)));var a=r,l=i,s=o;if(t!==_nbind.ptrMarker){var c=u.__nbindConstructor.apply(u,arguments);a=4608,s=HEAPU32[c/4],l=HEAPU32[c/4+1]}var f={configurable:!0,enumerable:!1,value:null,writable:!1},d={__nbindFlags:a,__nbindPtr:l};s&&(d.__nbindShared=s,_nbind.mark(u));for(var p=0,h=Object.keys(d);p>=1;var n=_nbind.valueList[e];return _nbind.valueList[e]=firstFreeValue,firstFreeValue=e,n}if(t)return _nbind.popShared(e,t);throw new Error("Invalid value slot "+e)}_nbind.pushValue=pushValue,_nbind.popValue=popValue;var valueBase=0x10000000000000000;function push64(e){return"number"==typeof e?e:4096*pushValue(e)+valueBase}function pop64(e){return e=3?Buffer.from(o):new Buffer(o)).copy(r):getBuffer(r).set(o)}}_nbind.BufferType=BufferType,_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var e=0,t=dirtyList;e>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(e,t,n){"use asm";var r=new e.Int8Array(n);var i=new e.Int16Array(n);var o=new e.Int32Array(n);var u=new e.Uint8Array(n);var a=new e.Uint16Array(n);var l=new e.Uint32Array(n);var s=new e.Float32Array(n);var c=new e.Float64Array(n);var f=t.DYNAMICTOP_PTR|0;var d=t.tempDoublePtr|0;var p=t.ABORT|0;var h=t.STACKTOP|0;var m=t.STACK_MAX|0;var v=t.cttz_i8|0;var b=t.___dso_handle|0;var g=0;var _=0;var y=0;var D=0;var w=e.NaN,E=e.Infinity;var C=0,T=0,k=0,S=0,M=0.0;var x=0;var A=e.Math.floor;var P=e.Math.abs;var O=e.Math.sqrt;var R=e.Math.pow;var N=e.Math.cos;var I=e.Math.sin;var F=e.Math.tan;var B=e.Math.acos;var L=e.Math.asin;var U=e.Math.atan;var j=e.Math.atan2;var W=e.Math.exp;var z=e.Math.log;var q=e.Math.ceil;var H=e.Math.imul;var G=e.Math.min;var V=e.Math.max;var Y=e.Math.clz32;var K=e.Math.fround;var $=t.abort;var X=t.assert;var J=t.enlargeMemory;var Q=t.getTotalMemory;var Z=t.abortOnCannotGrowMemory;var ee=t.invoke_viiiii;var te=t.invoke_vif;var ne=t.invoke_vid;var re=t.invoke_fiff;var ie=t.invoke_vi;var oe=t.invoke_vii;var ue=t.invoke_ii;var ae=t.invoke_viddi;var le=t.invoke_vidd;var se=t.invoke_iiii;var ce=t.invoke_diii;var fe=t.invoke_di;var de=t.invoke_iid;var pe=t.invoke_iii;var he=t.invoke_viiddi;var me=t.invoke_viiiiii;var ve=t.invoke_dii;var be=t.invoke_i;var ge=t.invoke_iiiiii;var _e=t.invoke_viiid;var ye=t.invoke_viififi;var De=t.invoke_viii;var we=t.invoke_v;var Ee=t.invoke_viid;var Ce=t.invoke_idd;var Te=t.invoke_viiii;var ke=t._emscripten_asm_const_iiiii;var Se=t._emscripten_asm_const_iiidddddd;var Me=t._emscripten_asm_const_iiiid;var xe=t.__nbind_reference_external;var Ae=t._emscripten_asm_const_iiiiiiii;var Pe=t._removeAccessorPrefix;var Oe=t._typeModule;var Re=t.__nbind_register_pool;var Ne=t.__decorate;var Ie=t._llvm_stackrestore;var Fe=t.___cxa_atexit;var Be=t.__extends;var Le=t.__nbind_get_value_object;var Ue=t.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj;var je=t._emscripten_set_main_loop_timing;var We=t.__nbind_register_primitive;var ze=t.__nbind_register_type;var qe=t._emscripten_memcpy_big;var He=t.__nbind_register_function;var Ge=t.___setErrNo;var Ve=t.__nbind_register_class;var Ye=t.__nbind_finish;var Ke=t._abort;var $e=t._nbind_value;var Xe=t._llvm_stacksave;var Je=t.___syscall54;var Qe=t._defineHidden;var Ze=t._emscripten_set_main_loop;var et=t._emscripten_get_now;var tt=t.__nbind_register_callback_signature;var nt=t._emscripten_asm_const_iiiiii;var rt=t.__nbind_free_external;var it=t._emscripten_asm_const_iiii;var ot=t._emscripten_asm_const_iiididi;var ut=t.___syscall6;var at=t._atexit;var lt=t.___syscall140;var st=t.___syscall146;var ct=K(0);const ft=K(0);function dt(e){e=e|0;var t=0;t=h;h=h+e|0;h=h+15&-16;return t|0}function pt(){return h|0}function ht(e){e=e|0;h=e}function mt(e,t){e=e|0;t=t|0;h=e;m=t}function vt(e,t){e=e|0;t=t|0;if(!g){g=e;_=t}}function bt(e){e=e|0;x=e}function gt(){return x|0}function _t(){var e=0,t=0;iM(8104,8,400)|0;iM(8504,408,540)|0;e=9044;t=e+44|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));r[9088]=0;r[9089]=1;o[2273]=0;o[2274]=948;o[2275]=948;Fe(17,8104,b|0)|0;return}function yt(e){e=e|0;Gt(e+948|0);return}function Dt(e){e=K(e);return((Oi(e)|0)&2147483647)>>>0>2139095040|0}function wt(e,t,n){e=e|0;t=t|0;n=n|0;e:do{if(!(o[e+(t<<3)+4>>2]|0)){if((t|2|0)==3?o[e+60>>2]|0:0){e=e+56|0;break}switch(t|0){case 0:case 2:case 4:case 5:{if(o[e+52>>2]|0){e=e+48|0;break e}break}default:{}}if(!(o[e+68>>2]|0)){e=(t|1|0)==5?948:n;break}else{e=e+64|0;break}}else e=e+(t<<3)|0}while(0);return e|0}function Et(e){e=e|0;var t=0;t=Gk(1e3)|0;Ct(e,(t|0)!=0,2456);o[2276]=(o[2276]|0)+1;iM(t|0,8104,1e3)|0;if(r[e+2>>0]|0){o[t+4>>2]=2;o[t+12>>2]=4}o[t+976>>2]=e;return t|0}function Ct(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;i=h;h=h+16|0;r=i;if(!t){o[r>>2]=n;Br(e,5,3197,r)}h=i;return}function Tt(){return Et(956)|0}function kt(e){e=e|0;var t=0;t=YS(1e3)|0;St(t,e);Ct(o[e+976>>2]|0,1,2456);o[2276]=(o[2276]|0)+1;o[t+944>>2]=0;return t|0}function St(e,t){e=e|0;t=t|0;var n=0;iM(e|0,t|0,948)|0;jr(e+948|0,t+948|0);n=e+960|0;e=t+960|0;t=n+40|0;do{o[n>>2]=o[e>>2];n=n+4|0;e=e+4|0}while((n|0)<(t|0));return}function Mt(e){e=e|0;var t=0,n=0,r=0,i=0;t=e+944|0;n=o[t>>2]|0;if(n|0){xt(n+948|0,e)|0;o[t>>2]=0}n=At(e)|0;if(n|0){t=0;do{o[(Pt(e,t)|0)+944>>2]=0;t=t+1|0}while((t|0)!=(n|0))}n=e+948|0;r=o[n>>2]|0;i=e+952|0;t=o[i>>2]|0;if((t|0)!=(r|0))o[i>>2]=t+(~((t+-4-r|0)>>>2)<<2);Ot(n);Vk(e);o[2276]=(o[2276]|0)+-1;return}function xt(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0;r=o[e>>2]|0;l=e+4|0;n=o[l>>2]|0;u=n;e:do{if((r|0)==(n|0)){i=r;a=4}else{e=r;while(1){if((o[e>>2]|0)==(t|0)){i=e;a=4;break e}e=e+4|0;if((e|0)==(n|0)){e=0;break}}}}while(0);if((a|0)==4)if((i|0)!=(n|0)){r=i+4|0;e=u-r|0;t=e>>2;if(t){sM(i|0,r|0,e|0)|0;n=o[l>>2]|0}e=i+(t<<2)|0;if((n|0)==(e|0))e=1;else{o[l>>2]=n+(~((n+-4-e|0)>>>2)<<2);e=1}}else e=0;return e|0}function At(e){e=e|0;return(o[e+952>>2]|0)-(o[e+948>>2]|0)>>2|0}function Pt(e,t){e=e|0;t=t|0;var n=0;n=o[e+948>>2]|0;if((o[e+952>>2]|0)-n>>2>>>0>t>>>0)e=o[n+(t<<2)>>2]|0;else e=0;return e|0}function Ot(e){e=e|0;var t=0,n=0,r=0,i=0;r=h;h=h+32|0;t=r;i=o[e>>2]|0;n=(o[e+4>>2]|0)-i|0;if(((o[e+8>>2]|0)-i|0)>>>0>n>>>0){i=n>>2;Ri(t,i,i,e+8|0);Ni(e,t);Ii(t)}h=r;return}function Rt(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;c=At(e)|0;do{if(c|0){if((o[(Pt(e,0)|0)+944>>2]|0)==(e|0)){if(!(xt(e+948|0,t)|0))break;iM(t+400|0,8504,540)|0;o[t+944>>2]=0;Ht(e);break}a=o[(o[e+976>>2]|0)+12>>2]|0;l=e+948|0;s=(a|0)==0;n=0;u=0;do{r=o[(o[l>>2]|0)+(u<<2)>>2]|0;if((r|0)==(t|0))Ht(e);else{i=kt(r)|0;o[(o[l>>2]|0)+(n<<2)>>2]=i;o[i+944>>2]=e;if(!s)Ix[a&15](r,i,e,n);n=n+1|0}u=u+1|0}while((u|0)!=(c|0));if(n>>>0>>0){s=e+948|0;l=e+952|0;a=n;n=o[l>>2]|0;do{u=(o[s>>2]|0)+(a<<2)|0;r=u+4|0;i=n-r|0;t=i>>2;if(!t)i=n;else{sM(u|0,r|0,i|0)|0;n=o[l>>2]|0;i=n}r=u+(t<<2)|0;if((i|0)!=(r|0)){n=i+(~((i+-4-r|0)>>>2)<<2)|0;o[l>>2]=n}a=a+1|0}while((a|0)!=(c|0))}}}while(0);return}function Nt(e){e=e|0;var t=0,n=0,i=0,u=0;It(e,(At(e)|0)==0,2491);It(e,(o[e+944>>2]|0)==0,2545);t=e+948|0;n=o[t>>2]|0;i=e+952|0;u=o[i>>2]|0;if((u|0)!=(n|0))o[i>>2]=u+(~((u+-4-n|0)>>>2)<<2);Ot(t);t=e+976|0;n=o[t>>2]|0;iM(e|0,8104,1e3)|0;if(r[n+2>>0]|0){o[e+4>>2]=2;o[e+12>>2]=4}o[t>>2]=n;return}function It(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;i=h;h=h+16|0;r=i;if(!t){o[r>>2]=n;Tr(e,5,3197,r)}h=i;return}function Ft(){return o[2276]|0}function Bt(){var e=0;e=Gk(20)|0;Lt((e|0)!=0,2592);o[2277]=(o[2277]|0)+1;o[e>>2]=o[239];o[e+4>>2]=o[240];o[e+8>>2]=o[241];o[e+12>>2]=o[242];o[e+16>>2]=o[243];return e|0}function Lt(e,t){e=e|0;t=t|0;var n=0,r=0;r=h;h=h+16|0;n=r;if(!e){o[n>>2]=t;Tr(0,5,3197,n)}h=r;return}function Ut(e){e=e|0;Vk(e);o[2277]=(o[2277]|0)+-1;return}function jt(e,t){e=e|0;t=t|0;var n=0;if(!t){n=0;t=0}else{It(e,(At(e)|0)==0,2629);n=1}o[e+964>>2]=t;o[e+988>>2]=n;return}function Wt(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;u=r+8|0;i=r+4|0;a=r;o[i>>2]=t;It(e,(o[t+944>>2]|0)==0,2709);It(e,(o[e+964>>2]|0)==0,2763);zt(e);t=e+948|0;o[a>>2]=(o[t>>2]|0)+(n<<2);o[u>>2]=o[a>>2];qt(t,u,i)|0;o[(o[i>>2]|0)+944>>2]=e;Ht(e);h=r;return}function zt(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=At(e)|0;if(n|0?(o[(Pt(e,0)|0)+944>>2]|0)!=(e|0):0){r=o[(o[e+976>>2]|0)+12>>2]|0;i=e+948|0;u=(r|0)==0;t=0;do{a=o[(o[i>>2]|0)+(t<<2)>>2]|0;l=kt(a)|0;o[(o[i>>2]|0)+(t<<2)>>2]=l;o[l+944>>2]=e;if(!u)Ix[r&15](a,l,e,t);t=t+1|0}while((t|0)!=(n|0))}return}function qt(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0;g=h;h=h+64|0;d=g+52|0;l=g+48|0;p=g+28|0;m=g+24|0;v=g+20|0;b=g;r=o[e>>2]|0;u=r;t=r+((o[t>>2]|0)-u>>2<<2)|0;r=e+4|0;i=o[r>>2]|0;a=e+8|0;do{if(i>>>0<(o[a>>2]|0)>>>0){if((t|0)==(i|0)){o[t>>2]=o[n>>2];o[r>>2]=(o[r>>2]|0)+4;break}Fi(e,t,i,t+4|0);if(t>>>0<=n>>>0)n=(o[r>>2]|0)>>>0>n>>>0?n+4|0:n;o[t>>2]=o[n>>2]}else{r=(i-u>>2)+1|0;i=qr(e)|0;if(i>>>0>>0)jS(e);f=o[e>>2]|0;c=(o[a>>2]|0)-f|0;u=c>>1;Ri(b,c>>2>>>0>>1>>>0?u>>>0>>0?r:u:i,t-f>>2,e+8|0);f=b+8|0;r=o[f>>2]|0;u=b+12|0;c=o[u>>2]|0;a=c;s=r;do{if((r|0)==(c|0)){c=b+4|0;r=o[c>>2]|0;_=o[b>>2]|0;i=_;if(r>>>0<=_>>>0){r=a-i>>1;r=(r|0)==0?1:r;Ri(p,r,r>>>2,o[b+16>>2]|0);o[m>>2]=o[c>>2];o[v>>2]=o[f>>2];o[l>>2]=o[m>>2];o[d>>2]=o[v>>2];Li(p,l,d);r=o[b>>2]|0;o[b>>2]=o[p>>2];o[p>>2]=r;r=p+4|0;_=o[c>>2]|0;o[c>>2]=o[r>>2];o[r>>2]=_;r=p+8|0;_=o[f>>2]|0;o[f>>2]=o[r>>2];o[r>>2]=_;r=p+12|0;_=o[u>>2]|0;o[u>>2]=o[r>>2];o[r>>2]=_;Ii(p);r=o[f>>2]|0;break}u=r;a=((u-i>>2)+1|0)/-2|0;l=r+(a<<2)|0;i=s-u|0;u=i>>2;if(u){sM(l|0,r|0,i|0)|0;r=o[c>>2]|0}_=l+(u<<2)|0;o[f>>2]=_;o[c>>2]=r+(a<<2);r=_}}while(0);o[r>>2]=o[n>>2];o[f>>2]=(o[f>>2]|0)+4;t=Bi(e,b,t)|0;Ii(b)}}while(0);h=g;return t|0}function Ht(e){e=e|0;var t=0;do{t=e+984|0;if(r[t>>0]|0)break;r[t>>0]=1;s[e+504>>2]=K(w);e=o[e+944>>2]|0}while((e|0)!=0);return}function Gt(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function Vt(e){e=e|0;return o[e+944>>2]|0}function Yt(e){e=e|0;It(e,(o[e+964>>2]|0)!=0,2832);Ht(e);return}function Kt(e){e=e|0;return(r[e+984>>0]|0)!=0|0}function $t(e,t){e=e|0;t=t|0;if(iS(e,t,400)|0){iM(e|0,t|0,400)|0;Ht(e)}return}function Xt(e){e=e|0;var t=ft;t=K(s[e+44>>2]);e=Dt(t)|0;return K(e?K(0.0):t)}function Jt(e){e=e|0;var t=ft;t=K(s[e+48>>2]);if(Dt(t)|0)t=r[(o[e+976>>2]|0)+2>>0]|0?K(1.0):K(0.0);return K(t)}function Qt(e,t){e=e|0;t=t|0;o[e+980>>2]=t;return}function Zt(e){e=e|0;return o[e+980>>2]|0}function en(e,t){e=e|0;t=t|0;var n=0;n=e+4|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function tn(e){e=e|0;return o[e+4>>2]|0}function nn(e,t){e=e|0;t=t|0;var n=0;n=e+8|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function rn(e){e=e|0;return o[e+8>>2]|0}function on(e,t){e=e|0;t=t|0;var n=0;n=e+12|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function un(e){e=e|0;return o[e+12>>2]|0}function an(e,t){e=e|0;t=t|0;var n=0;n=e+16|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function ln(e){e=e|0;return o[e+16>>2]|0}function sn(e,t){e=e|0;t=t|0;var n=0;n=e+20|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function cn(e){e=e|0;return o[e+20>>2]|0}function fn(e,t){e=e|0;t=t|0;var n=0;n=e+24|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function dn(e){e=e|0;return o[e+24>>2]|0}function pn(e,t){e=e|0;t=t|0;var n=0;n=e+28|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function hn(e){e=e|0;return o[e+28>>2]|0}function mn(e,t){e=e|0;t=t|0;var n=0;n=e+32|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function vn(e){e=e|0;return o[e+32>>2]|0}function bn(e,t){e=e|0;t=t|0;var n=0;n=e+36|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function gn(e){e=e|0;return o[e+36>>2]|0}function _n(e,t){e=e|0;t=K(t);var n=0;n=e+40|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function yn(e,t){e=e|0;t=K(t);var n=0;n=e+44|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function Dn(e,t){e=e|0;t=K(t);var n=0;n=e+48|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function wn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+52|0;i=e+56|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function En(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+52|0;n=e+56|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function Cn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+52|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Tn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+132+(t<<3)|0;t=e+132+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function kn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+132+(t<<3)|0;t=e+132+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Sn(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+132+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function Mn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+60+(t<<3)|0;t=e+60+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function xn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+60+(t<<3)|0;t=e+60+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function An(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+60+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function Pn(e,t){e=e|0;t=t|0;var n=0;n=e+60+(t<<3)+4|0;if((o[n>>2]|0)!=3){s[e+60+(t<<3)>>2]=K(w);o[n>>2]=3;Ht(e)}return}function On(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+204+(t<<3)|0;t=e+204+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Rn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+204+(t<<3)|0;t=e+204+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Nn(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+204+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function In(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+276+(t<<3)|0;t=e+276+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Fn(e,t){e=e|0;t=t|0;return K(s[e+276+(t<<3)>>2])}function Bn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+348|0;i=e+352|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Ln(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+348|0;n=e+352|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function Un(e){e=e|0;var t=0;t=e+352|0;if((o[t>>2]|0)!=3){s[e+348>>2]=K(w);o[t>>2]=3;Ht(e)}return}function jn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+348|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Wn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+356|0;i=e+360|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function zn(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+356|0;n=e+360|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function qn(e){e=e|0;var t=0;t=e+360|0;if((o[t>>2]|0)!=3){s[e+356>>2]=K(w);o[t>>2]=3;Ht(e)}return}function Hn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+356|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Gn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+364|0;i=e+368|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Vn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+364|0;i=e+368|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Yn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+364|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Kn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+372|0;i=e+376|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function $n(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+372|0;i=e+376|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Xn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+372|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Jn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+380|0;i=e+384|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Qn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+380|0;i=e+384|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Zn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+380|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function er(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+388|0;i=e+392|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function tr(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+388|0;i=e+392|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function nr(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+388|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function rr(e,t){e=e|0;t=K(t);var n=0;n=e+396|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function ir(e){e=e|0;return K(s[e+396>>2])}function or(e){e=e|0;return K(s[e+400>>2])}function ur(e){e=e|0;return K(s[e+404>>2])}function ar(e){e=e|0;return K(s[e+408>>2])}function lr(e){e=e|0;return K(s[e+412>>2])}function sr(e){e=e|0;return K(s[e+416>>2])}function cr(e){e=e|0;return K(s[e+420>>2])}function fr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+424+(t<<2)>>2])}function dr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+448+(t<<2)>>2])}function pr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+472+(t<<2)>>2])}function hr(e,t){e=e|0;t=t|0;var n=0,r=ft;n=o[e+4>>2]|0;if((n|0)==(o[t+4>>2]|0)){if(!n)e=1;else{r=K(s[e>>2]);e=K(P(K(r-K(s[t>>2]))))>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;Ue(i|0,e|0,t|0,0);Tr(e,3,(r[i+11>>0]|0)<0?o[i>>2]|0:i,n);XS(i);h=n;return}function gr(e,t,n,r){e=K(e);t=K(t);n=n|0;r=r|0;var i=ft;e=K(e*t);i=K(BS(e,K(1.0)));do{if(!(mr(i,K(0.0))|0)){e=K(e-i);if(mr(i,K(1.0))|0){e=K(e+K(1.0));break}if(n){e=K(e+K(1.0));break}if(!r){if(i>K(.5))i=K(1.0);else{r=mr(i,K(.5))|0;i=r?K(1.0):K(0.0)}e=K(e+i)}}else e=K(e-i)}while(0);return K(e/t)}function _r(e,t,n,r,i,o,u,a,l,c,f,d,p){e=e|0;t=K(t);n=n|0;r=K(r);i=i|0;o=K(o);u=u|0;a=K(a);l=K(l);c=K(c);f=K(f);d=K(d);p=p|0;var h=0,m=ft,v=ft,b=ft,g=ft,_=ft,y=ft;if(l>2]),m!=K(0.0)):0){b=K(gr(t,m,0,0));g=K(gr(r,m,0,0));v=K(gr(o,m,0,0));m=K(gr(a,m,0,0))}else{v=o;b=t;m=a;g=r}if((i|0)==(e|0))h=mr(v,b)|0;else h=0;if((u|0)==(n|0))p=mr(m,g)|0;else p=0;if((!h?(_=K(t-f),!(yr(e,_,l)|0)):0)?!(Dr(e,_,i,l)|0):0)h=wr(e,_,i,o,l)|0;else h=1;if((!p?(y=K(r-d),!(yr(n,y,c)|0)):0)?!(Dr(n,y,u,c)|0):0)p=wr(n,y,u,a,c)|0;else p=1;p=h&p}return p|0}function yr(e,t,n){e=e|0;t=K(t);n=K(n);if((e|0)==1)e=mr(t,n)|0;else e=0;return e|0}function Dr(e,t,n,r){e=e|0;t=K(t);n=n|0;r=K(r);if((e|0)==2&(n|0)==0){if(!(t>=r))e=mr(t,r)|0;else e=1}else e=0;return e|0}function wr(e,t,n,r,i){e=e|0;t=K(t);n=n|0;r=K(r);i=K(i);if((e|0)==2&(n|0)==2&r>t){if(!(i<=t))e=mr(t,i)|0;else e=1}else e=0;return e|0}function Er(e,t,n,i,u,a,l,f,d,p,m){e=e|0;t=K(t);n=K(n);i=i|0;u=u|0;a=a|0;l=K(l);f=K(f);d=d|0;p=p|0;m=m|0;var v=0,b=0,g=0,_=0,y=ft,D=ft,w=0,E=0,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=ft,N=ft,I=ft,F=0.0,B=0.0;O=h;h=h+160|0;x=O+152|0;M=O+120|0;S=O+104|0;C=O+72|0;_=O+56|0;k=O+8|0;E=O;T=(o[2279]|0)+1|0;o[2279]=T;A=e+984|0;if((r[A>>0]|0)!=0?(o[e+512>>2]|0)!=(o[2278]|0):0)w=4;else if((o[e+516>>2]|0)==(i|0))P=0;else w=4;if((w|0)==4){o[e+520>>2]=0;o[e+924>>2]=-1;o[e+928>>2]=-1;s[e+932>>2]=K(-1.0);s[e+936>>2]=K(-1.0);P=1}e:do{if(!(o[e+964>>2]|0)){if(d){v=e+916|0;if(!(mr(K(s[v>>2]),t)|0)){w=21;break}if(!(mr(K(s[e+920>>2]),n)|0)){w=21;break}if((o[e+924>>2]|0)!=(u|0)){w=21;break}v=(o[e+928>>2]|0)==(a|0)?v:0;w=22;break}g=o[e+520>>2]|0;if(!g)w=21;else{b=0;while(1){v=e+524+(b*24|0)|0;if(((mr(K(s[v>>2]),t)|0?mr(K(s[e+524+(b*24|0)+4>>2]),n)|0:0)?(o[e+524+(b*24|0)+8>>2]|0)==(u|0):0)?(o[e+524+(b*24|0)+12>>2]|0)==(a|0):0){w=22;break e}b=b+1|0;if(b>>>0>=g>>>0){w=21;break}}}}else{y=K(Cr(e,2,l));D=K(Cr(e,0,l));v=e+916|0;I=K(s[v>>2]);N=K(s[e+920>>2]);R=K(s[e+932>>2]);if(!(_r(u,t,a,n,o[e+924>>2]|0,I,o[e+928>>2]|0,N,R,K(s[e+936>>2]),y,D,m)|0)){g=o[e+520>>2]|0;if(!g)w=21;else{b=0;while(1){v=e+524+(b*24|0)|0;R=K(s[v>>2]);N=K(s[e+524+(b*24|0)+4>>2]);I=K(s[e+524+(b*24|0)+16>>2]);if(_r(u,t,a,n,o[e+524+(b*24|0)+8>>2]|0,R,o[e+524+(b*24|0)+12>>2]|0,N,I,K(s[e+524+(b*24|0)+20>>2]),y,D,m)|0){w=22;break e}b=b+1|0;if(b>>>0>=g>>>0){w=21;break}}}}else w=22}}while(0);do{if((w|0)==21){if(!(r[11697]|0)){v=0;w=31}else{v=0;w=28}}else if((w|0)==22){b=(r[11697]|0)!=0;if(!((v|0)!=0&(P^1)))if(b){w=28;break}else{w=31;break}_=v+16|0;o[e+908>>2]=o[_>>2];g=v+20|0;o[e+912>>2]=o[g>>2];if(!((r[11698]|0)==0|b^1)){o[E>>2]=kr(T)|0;o[E+4>>2]=T;Tr(e,4,2972,E);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);u=Sr(u,d)|0;a=Sr(a,d)|0;B=+K(s[_>>2]);F=+K(s[g>>2]);o[k>>2]=u;o[k+4>>2]=a;c[k+8>>3]=+t;c[k+16>>3]=+n;c[k+24>>3]=B;c[k+32>>3]=F;o[k+40>>2]=p;Tr(e,4,2989,k)}}}while(0);if((w|0)==28){b=kr(T)|0;o[_>>2]=b;o[_+4>>2]=T;o[_+8>>2]=P?3047:11699;Tr(e,4,3038,_);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);k=Sr(u,d)|0;w=Sr(a,d)|0;o[C>>2]=k;o[C+4>>2]=w;c[C+8>>3]=+t;c[C+16>>3]=+n;o[C+24>>2]=p;Tr(e,4,3049,C);w=31}if((w|0)==31){Mr(e,t,n,i,u,a,l,f,d,m);if(r[11697]|0){b=o[2279]|0;k=kr(b)|0;o[S>>2]=k;o[S+4>>2]=b;o[S+8>>2]=P?3047:11699;Tr(e,4,3083,S);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);k=Sr(u,d)|0;S=Sr(a,d)|0;F=+K(s[e+908>>2]);B=+K(s[e+912>>2]);o[M>>2]=k;o[M+4>>2]=S;c[M+8>>3]=F;c[M+16>>3]=B;o[M+24>>2]=p;Tr(e,4,3092,M)}o[e+516>>2]=i;if(!v){b=e+520|0;v=o[b>>2]|0;if((v|0)==16){if(r[11697]|0)Tr(e,4,3124,x);o[b>>2]=0;v=0}if(d)v=e+916|0;else{o[b>>2]=v+1;v=e+524+(v*24|0)|0}s[v>>2]=t;s[v+4>>2]=n;o[v+8>>2]=u;o[v+12>>2]=a;o[v+16>>2]=o[e+908>>2];o[v+20>>2]=o[e+912>>2];v=0}}if(d){o[e+416>>2]=o[e+908>>2];o[e+420>>2]=o[e+912>>2];r[e+985>>0]=1;r[A>>0]=0}o[2279]=(o[2279]|0)+-1;o[e+512>>2]=o[2278];h=O;return P|(v|0)==0|0}function Cr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(Hr(e,t,n));return K(r+K(Gr(e,t,n)))}function Tr(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=h;h=h+16|0;i=u;o[i>>2]=r;if(!e)r=0;else r=o[e+976>>2]|0;Lr(r,e,t,n,i);h=u;return}function kr(e){e=e|0;return(e>>>0>60?3201:3201+(60-e)|0)|0}function Sr(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i+12|0;r=i;o[n>>2]=o[254];o[n+4>>2]=o[255];o[n+8>>2]=o[256];o[r>>2]=o[257];o[r+4>>2]=o[258];o[r+8>>2]=o[259];if((e|0)>2)e=11699;else e=o[(t?r:n)+(e<<2)>>2]|0;h=i;return e|0}function Mr(e,t,n,i,a,l,c,f,p,m){e=e|0;t=K(t);n=K(n);i=i|0;a=a|0;l=l|0;c=K(c);f=K(f);p=p|0;m=m|0;var v=0,b=0,g=0,_=0,y=ft,D=ft,w=ft,E=ft,C=ft,T=ft,k=ft,S=0,M=0,x=0,A=ft,P=ft,O=0,R=ft,N=0,I=0,F=0,B=0,L=0,U=0,j=0,W=0,z=0,q=0,H=0,G=0,V=0,Y=0,$=0,X=0,J=0,Q=0,Z=ft,ee=ft,te=ft,ne=ft,re=ft,ie=0,oe=0,ue=0,ae=0,le=0,se=ft,ce=ft,fe=ft,de=ft,pe=ft,he=ft,me=0,ve=ft,be=ft,ge=ft,_e=ft,ye=ft,De=ft,we=0,Ee=0,Ce=ft,Te=ft,ke=0,Se=0,Me=0,xe=0,Ae=ft,Pe=0,Oe=0,Re=0,Ne=0,Ie=0,Fe=0,Be=0,Le=ft,Ue=0,je=0;Be=h;h=h+16|0;ie=Be+12|0;oe=Be+8|0;ue=Be+4|0;ae=Be;It(e,(a|0)==0|(Dt(t)|0)^1,3326);It(e,(l|0)==0|(Dt(n)|0)^1,3406);Oe=Kr(e,i)|0;o[e+496>>2]=Oe;Ie=$r(2,Oe)|0;Fe=$r(0,Oe)|0;s[e+440>>2]=K(Hr(e,Ie,c));s[e+444>>2]=K(Gr(e,Ie,c));s[e+428>>2]=K(Hr(e,Fe,c));s[e+436>>2]=K(Gr(e,Fe,c));s[e+464>>2]=K(Xr(e,Ie));s[e+468>>2]=K(Jr(e,Ie));s[e+452>>2]=K(Xr(e,Fe));s[e+460>>2]=K(Jr(e,Fe));s[e+488>>2]=K(Qr(e,Ie,c));s[e+492>>2]=K(Zr(e,Ie,c));s[e+476>>2]=K(Qr(e,Fe,c));s[e+484>>2]=K(Zr(e,Fe,c));do{if(!(o[e+964>>2]|0)){Re=e+948|0;Ne=(o[e+952>>2]|0)-(o[Re>>2]|0)>>2;if(!Ne){ti(e,t,n,a,l,c,f);break}if(!p?ni(e,t,n,a,l,c,f)|0:0)break;zt(e);X=e+508|0;r[X>>0]=0;Ie=$r(o[e+4>>2]|0,Oe)|0;Fe=ri(Ie,Oe)|0;Pe=Vr(Ie)|0;J=o[e+8>>2]|0;Se=e+28|0;Q=(o[Se>>2]|0)!=0;ye=Pe?c:f;Ce=Pe?f:c;Z=K(ii(e,Ie,c));ee=K(oi(e,Ie,c));y=K(ii(e,Fe,c));De=K(ui(e,Ie,c));Te=K(ui(e,Fe,c));x=Pe?a:l;ke=Pe?l:a;Ae=Pe?De:Te;C=Pe?Te:De;_e=K(Cr(e,2,c));E=K(Cr(e,0,c));D=K(K(Rr(e+364|0,c))-Ae);w=K(K(Rr(e+380|0,c))-Ae);T=K(K(Rr(e+372|0,f))-C);k=K(K(Rr(e+388|0,f))-C);te=Pe?D:T;ne=Pe?w:k;_e=K(t-_e);t=K(_e-Ae);if(Dt(t)|0)Ae=t;else Ae=K(RS(K(IS(t,w)),D));be=K(n-E);t=K(be-C);if(Dt(t)|0)ge=t;else ge=K(RS(K(IS(t,k)),T));D=Pe?Ae:ge;ve=Pe?ge:Ae;e:do{if((x|0)==1){i=0;b=0;while(1){v=Pt(e,b)|0;if(!i){if(K(li(v))>K(0.0)?K(si(v))>K(0.0):0)i=v;else i=0}else if(ai(v)|0){_=0;break e}b=b+1|0;if(b>>>0>=Ne>>>0){_=i;break}}}else _=0}while(0);S=_+500|0;M=_+504|0;i=0;v=0;t=K(0.0);g=0;do{b=o[(o[Re>>2]|0)+(g<<2)>>2]|0;if((o[b+36>>2]|0)==1){ci(b);r[b+985>>0]=1;r[b+984>>0]=0}else{Pr(b);if(p)Nr(b,Kr(b,Oe)|0,D,ve,Ae);do{if((o[b+24>>2]|0)!=1){if((b|0)==(_|0)){o[S>>2]=o[2278];s[M>>2]=K(0.0);break}else{fi(e,b,Ae,a,ge,Ae,ge,l,Oe,m);break}}else{if(v|0)o[v+960>>2]=b;o[b+960>>2]=0;v=b;i=(i|0)==0?b:i}}while(0);he=K(s[b+504>>2]);t=K(t+K(he+K(Cr(b,Ie,Ae))))}g=g+1|0}while((g|0)!=(Ne|0));F=t>D;me=Q&((x|0)==2&F)?1:x;N=(ke|0)==1;L=N&(p^1);U=(me|0)==1;j=(me|0)==2;W=976+(Ie<<2)|0;z=(ke|2|0)==2;Y=N&(Q^1);q=1040+(Fe<<2)|0;H=1040+(Ie<<2)|0;G=976+(Fe<<2)|0;V=(ke|0)!=1;F=Q&((x|0)!=0&F);I=e+976|0;N=N^1;t=D;O=0;B=0;he=K(0.0);re=K(0.0);while(1){e:do{if(O>>>0>>0){M=o[Re>>2]|0;g=0;k=K(0.0);T=K(0.0);w=K(0.0);D=K(0.0);b=0;v=0;_=O;while(1){S=o[M+(_<<2)>>2]|0;if((o[S+36>>2]|0)!=1?(o[S+940>>2]=B,(o[S+24>>2]|0)!=1):0){E=K(Cr(S,Ie,Ae));$=o[W>>2]|0;n=K(Rr(S+380+($<<3)|0,ye));C=K(s[S+504>>2]);n=K(IS(n,C));n=K(RS(K(Rr(S+364+($<<3)|0,ye)),n));if(Q&(g|0)!=0&K(E+K(T+n))>t){l=g;E=k;x=_;break e}E=K(E+n);n=K(T+E);E=K(k+E);if(ai(S)|0){w=K(w+K(li(S)));D=K(D-K(C*K(si(S))))}if(v|0)o[v+960>>2]=S;o[S+960>>2]=0;g=g+1|0;v=S;b=(b|0)==0?S:b}else{E=k;n=T}_=_+1|0;if(_>>>0>>0){k=E;T=n}else{l=g;x=_;break}}}else{l=0;E=K(0.0);w=K(0.0);D=K(0.0);b=0;x=O}}while(0);$=w>K(0.0)&wK(0.0)&Dne&((Dt(ne)|0)^1))){if(!(r[(o[I>>2]|0)+3>>0]|0)){if(!(A==K(0.0))?!(K(li(e))==K(0.0)):0){$=53;break}t=E;$=53}else $=51}else{t=ne;$=51}}else{t=te;$=51}}else $=51}while(0);if(($|0)==51){$=0;if(Dt(t)|0)$=53;else{P=K(t-E);R=t}}if(($|0)==53){$=0;if(E>2]|0;_=PK(0.0);T=K(P/A);w=K(0.0);E=K(0.0);t=K(0.0);v=b;do{n=K(Rr(v+380+(g<<3)|0,ye));D=K(Rr(v+364+(g<<3)|0,ye));D=K(IS(n,K(RS(D,K(s[v+504>>2])))));if(_){n=K(D*K(si(v)));if(n!=K(-0.0)?(Le=K(D-K(C*n)),se=K(di(v,Ie,Le,R,Ae)),Le!=se):0){w=K(w-K(se-D));t=K(t+n)}}else if((S?(ce=K(li(v)),ce!=K(0.0)):0)?(Le=K(D+K(T*ce)),fe=K(di(v,Ie,Le,R,Ae)),Le!=fe):0){w=K(w-K(fe-D));E=K(E-ce)}v=o[v+960>>2]|0}while((v|0)!=0);t=K(k+t);D=K(P+w);if(!le){C=K(A+E);_=o[W>>2]|0;S=DK(0.0);C=K(D/C);t=K(0.0);do{Le=K(Rr(b+380+(_<<3)|0,ye));w=K(Rr(b+364+(_<<3)|0,ye));w=K(IS(Le,K(RS(w,K(s[b+504>>2])))));if(S){Le=K(w*K(si(b)));D=K(-Le);if(Le!=K(-0.0)){Le=K(T*D);D=K(di(b,Ie,K(w+(M?D:Le)),R,Ae))}else D=w}else if(g?(de=K(li(b)),de!=K(0.0)):0)D=K(di(b,Ie,K(w+K(C*de)),R,Ae));else D=w;t=K(t-K(D-w));E=K(Cr(b,Ie,Ae));n=K(Cr(b,Fe,Ae));D=K(D+E);s[oe>>2]=D;o[ae>>2]=1;w=K(s[b+396>>2]);e:do{if(Dt(w)|0){v=Dt(ve)|0;do{if(!v){if(F|(Or(b,Fe,ve)|0|N))break;if((pi(e,b)|0)!=4)break;if((o[(hi(b,Fe)|0)+4>>2]|0)==3)break;if((o[(mi(b,Fe)|0)+4>>2]|0)==3)break;s[ie>>2]=ve;o[ue>>2]=1;break e}}while(0);if(Or(b,Fe,ve)|0){v=o[b+992+(o[G>>2]<<2)>>2]|0;Le=K(n+K(Rr(v,ve)));s[ie>>2]=Le;v=V&(o[v+4>>2]|0)==2;o[ue>>2]=((Dt(Le)|0|v)^1)&1;break}else{s[ie>>2]=ve;o[ue>>2]=v?0:2;break}}else{Le=K(D-E);A=K(Le/w);Le=K(w*Le);o[ue>>2]=1;s[ie>>2]=K(n+(Pe?A:Le))}}while(0);vi(b,Ie,R,Ae,ae,oe);vi(b,Fe,ve,Ae,ue,ie);do{if(!(Or(b,Fe,ve)|0)?(pi(e,b)|0)==4:0){if((o[(hi(b,Fe)|0)+4>>2]|0)==3){v=0;break}v=(o[(mi(b,Fe)|0)+4>>2]|0)!=3}else v=0}while(0);Le=K(s[oe>>2]);A=K(s[ie>>2]);Ue=o[ae>>2]|0;je=o[ue>>2]|0;Er(b,Pe?Le:A,Pe?A:Le,Oe,Pe?Ue:je,Pe?je:Ue,Ae,ge,p&(v^1),3488,m)|0;r[X>>0]=r[X>>0]|r[b+508>>0];b=o[b+960>>2]|0}while((b|0)!=0)}else t=K(0.0)}else t=K(0.0);t=K(P+t);je=t>0]=je|u[X>>0];if(j&t>K(0.0)){v=o[W>>2]|0;if((o[e+364+(v<<3)+4>>2]|0)!=0?(pe=K(Rr(e+364+(v<<3)|0,ye)),pe>=K(0.0)):0)D=K(RS(K(0.0),K(pe-K(R-t))));else D=K(0.0)}else D=t;S=O>>>0>>0;if(S){_=o[Re>>2]|0;g=O;v=0;do{b=o[_+(g<<2)>>2]|0;if(!(o[b+24>>2]|0)){v=((o[(hi(b,Ie)|0)+4>>2]|0)==3&1)+v|0;v=v+((o[(mi(b,Ie)|0)+4>>2]|0)==3&1)|0}g=g+1|0}while((g|0)!=(x|0));if(v){E=K(0.0);n=K(0.0)}else $=101}else $=101;e:do{if(($|0)==101){$=0;switch(J|0){case 1:{v=0;E=K(D*K(.5));n=K(0.0);break e}case 2:{v=0;E=D;n=K(0.0);break e}case 3:{if(l>>>0<=1){v=0;E=K(0.0);n=K(0.0);break e}n=K((l+-1|0)>>>0);v=0;E=K(0.0);n=K(K(RS(D,K(0.0)))/n);break e}case 5:{n=K(D/K((l+1|0)>>>0));v=0;E=n;break e}case 4:{n=K(D/K(l>>>0));v=0;E=K(n*K(.5));break e}default:{v=0;E=K(0.0);n=K(0.0);break e}}}}while(0);t=K(Z+E);if(S){w=K(D/K(v|0));g=o[Re>>2]|0;b=O;D=K(0.0);do{v=o[g+(b<<2)>>2]|0;e:do{if((o[v+36>>2]|0)!=1){switch(o[v+24>>2]|0){case 1:{if(bi(v,Ie)|0){if(!p)break e;Le=K(gi(v,Ie,R));Le=K(Le+K(Xr(e,Ie)));Le=K(Le+K(Hr(v,Ie,Ae)));s[v+400+(o[H>>2]<<2)>>2]=Le;break e}break}case 0:{je=(o[(hi(v,Ie)|0)+4>>2]|0)==3;Le=K(w+t);t=je?Le:t;if(p){je=v+400+(o[H>>2]<<2)|0;s[je>>2]=K(t+K(s[je>>2]))}je=(o[(mi(v,Ie)|0)+4>>2]|0)==3;Le=K(w+t);t=je?Le:t;if(L){Le=K(n+K(Cr(v,Ie,Ae)));D=ve;t=K(t+K(Le+K(s[v+504>>2])));break e}else{t=K(t+K(n+K(_i(v,Ie,Ae))));D=K(RS(D,K(_i(v,Fe,Ae))));break e}}default:{}}if(p){Le=K(E+K(Xr(e,Ie)));je=v+400+(o[H>>2]<<2)|0;s[je>>2]=K(Le+K(s[je>>2]))}}}while(0);b=b+1|0}while((b|0)!=(x|0))}else D=K(0.0);n=K(ee+t);if(z)E=K(K(di(e,Fe,K(Te+D),Ce,c))-Te);else E=ve;w=K(K(di(e,Fe,K(Te+(Y?ve:D)),Ce,c))-Te);if(S&p){b=O;do{g=o[(o[Re>>2]|0)+(b<<2)>>2]|0;do{if((o[g+36>>2]|0)!=1){if((o[g+24>>2]|0)==1){if(bi(g,Fe)|0){Le=K(gi(g,Fe,ve));Le=K(Le+K(Xr(e,Fe)));Le=K(Le+K(Hr(g,Fe,Ae)));v=o[q>>2]|0;s[g+400+(v<<2)>>2]=Le;if(!(Dt(Le)|0))break}else v=o[q>>2]|0;Le=K(Xr(e,Fe));s[g+400+(v<<2)>>2]=K(Le+K(Hr(g,Fe,Ae)));break}v=pi(e,g)|0;do{if((v|0)==4){if((o[(hi(g,Fe)|0)+4>>2]|0)==3){$=139;break}if((o[(mi(g,Fe)|0)+4>>2]|0)==3){$=139;break}if(Or(g,Fe,ve)|0){t=y;break}Ue=o[g+908+(o[W>>2]<<2)>>2]|0;o[ie>>2]=Ue;t=K(s[g+396>>2]);je=Dt(t)|0;D=(o[d>>2]=Ue,K(s[d>>2]));if(je)t=w;else{P=K(Cr(g,Fe,Ae));Le=K(D/t);t=K(t*D);t=K(P+(Pe?Le:t))}s[oe>>2]=t;s[ie>>2]=K(K(Cr(g,Ie,Ae))+D);o[ue>>2]=1;o[ae>>2]=1;vi(g,Ie,R,Ae,ue,ie);vi(g,Fe,ve,Ae,ae,oe);t=K(s[ie>>2]);P=K(s[oe>>2]);Le=Pe?t:P;t=Pe?P:t;je=((Dt(Le)|0)^1)&1;Er(g,Le,t,Oe,je,((Dt(t)|0)^1)&1,Ae,ge,1,3493,m)|0;t=y}else $=139}while(0);e:do{if(($|0)==139){$=0;t=K(E-K(_i(g,Fe,Ae)));do{if((o[(hi(g,Fe)|0)+4>>2]|0)==3){if((o[(mi(g,Fe)|0)+4>>2]|0)!=3)break;t=K(y+K(RS(K(0.0),K(t*K(.5)))));break e}}while(0);if((o[(mi(g,Fe)|0)+4>>2]|0)==3){t=y;break}if((o[(hi(g,Fe)|0)+4>>2]|0)==3){t=K(y+K(RS(K(0.0),t)));break}switch(v|0){case 1:{t=y;break e}case 2:{t=K(y+K(t*K(.5)));break e}default:{t=K(y+t);break e}}}}while(0);Le=K(he+t);je=g+400+(o[q>>2]<<2)|0;s[je>>2]=K(Le+K(s[je>>2]))}}while(0);b=b+1|0}while((b|0)!=(x|0))}he=K(he+w);re=K(RS(re,n));l=B+1|0;if(x>>>0>=Ne>>>0)break;else{t=R;O=x;B=l}}do{if(p){v=l>>>0>1;if(!v?!(yi(e)|0):0)break;if(!(Dt(ve)|0)){t=K(ve-he);e:do{switch(o[e+12>>2]|0){case 3:{y=K(y+t);T=K(0.0);break}case 2:{y=K(y+K(t*K(.5)));T=K(0.0);break}case 4:{if(ve>he)T=K(t/K(l>>>0));else T=K(0.0);break}case 7:if(ve>he){y=K(y+K(t/K(l<<1>>>0)));T=K(t/K(l>>>0));T=v?T:K(0.0);break e}else{y=K(y+K(t*K(.5)));T=K(0.0);break e}case 6:{T=K(t/K(B>>>0));T=ve>he&v?T:K(0.0);break}default:T=K(0.0)}}while(0);if(l|0){S=1040+(Fe<<2)|0;M=976+(Fe<<2)|0;_=0;b=0;while(1){e:do{if(b>>>0>>0){D=K(0.0);w=K(0.0);t=K(0.0);g=b;while(1){v=o[(o[Re>>2]|0)+(g<<2)>>2]|0;do{if((o[v+36>>2]|0)!=1?(o[v+24>>2]|0)==0:0){if((o[v+940>>2]|0)!=(_|0))break e;if(Di(v,Fe)|0){Le=K(s[v+908+(o[M>>2]<<2)>>2]);t=K(RS(t,K(Le+K(Cr(v,Fe,Ae)))))}if((pi(e,v)|0)!=5)break;pe=K(wi(v));pe=K(pe+K(Hr(v,0,Ae)));Le=K(s[v+912>>2]);Le=K(K(Le+K(Cr(v,0,Ae)))-pe);pe=K(RS(w,pe));Le=K(RS(D,Le));D=Le;w=pe;t=K(RS(t,K(pe+Le)))}}while(0);v=g+1|0;if(v>>>0>>0)g=v;else{g=v;break}}}else{w=K(0.0);t=K(0.0);g=b}}while(0);C=K(T+t);n=y;y=K(y+C);if(b>>>0>>0){E=K(n+w);v=b;do{b=o[(o[Re>>2]|0)+(v<<2)>>2]|0;e:do{if((o[b+36>>2]|0)!=1?(o[b+24>>2]|0)==0:0)switch(pi(e,b)|0){case 1:{Le=K(n+K(Hr(b,Fe,Ae)));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 3:{Le=K(K(y-K(Gr(b,Fe,Ae)))-K(s[b+908+(o[M>>2]<<2)>>2]));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 2:{Le=K(n+K(K(C-K(s[b+908+(o[M>>2]<<2)>>2]))*K(.5)));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 4:{Le=K(n+K(Hr(b,Fe,Ae)));s[b+400+(o[S>>2]<<2)>>2]=Le;if(Or(b,Fe,ve)|0)break e;if(Pe){D=K(s[b+908>>2]);t=K(D+K(Cr(b,Ie,Ae)));w=C}else{w=K(s[b+912>>2]);w=K(w+K(Cr(b,Fe,Ae)));t=C;D=K(s[b+908>>2])}if(mr(t,D)|0?mr(w,K(s[b+912>>2]))|0:0)break e;Er(b,t,w,Oe,1,1,Ae,ge,1,3501,m)|0;break e}case 5:{s[b+404>>2]=K(K(E-K(wi(b)))+K(gi(b,0,ve)));break e}default:break e}}while(0);v=v+1|0}while((v|0)!=(g|0))}_=_+1|0;if((_|0)==(l|0))break;else b=g}}}}}while(0);s[e+908>>2]=K(di(e,2,_e,c,c));s[e+912>>2]=K(di(e,0,be,f,c));if((me|0)!=0?(we=o[e+32>>2]|0,Ee=(me|0)==2,!(Ee&(we|0)!=2)):0){if(Ee&(we|0)==2){t=K(De+R);t=K(RS(K(IS(t,K(Ei(e,Ie,re,ye)))),De));$=198}}else{t=K(di(e,Ie,re,ye,c));$=198}if(($|0)==198)s[e+908+(o[976+(Ie<<2)>>2]<<2)>>2]=t;if((ke|0)!=0?(Me=o[e+32>>2]|0,xe=(ke|0)==2,!(xe&(Me|0)!=2)):0){if(xe&(Me|0)==2){t=K(Te+ve);t=K(RS(K(IS(t,K(Ei(e,Fe,K(Te+he),Ce)))),Te));$=204}}else{t=K(di(e,Fe,K(Te+he),Ce,c));$=204}if(($|0)==204)s[e+908+(o[976+(Fe<<2)>>2]<<2)>>2]=t;if(p){if((o[Se>>2]|0)==2){b=976+(Fe<<2)|0;g=1040+(Fe<<2)|0;v=0;do{_=Pt(e,v)|0;if(!(o[_+24>>2]|0)){Ue=o[b>>2]|0;Le=K(s[e+908+(Ue<<2)>>2]);je=_+400+(o[g>>2]<<2)|0;Le=K(Le-K(s[je>>2]));s[je>>2]=K(Le-K(s[_+908+(Ue<<2)>>2]))}v=v+1|0}while((v|0)!=(Ne|0))}if(i|0){v=Pe?me:a;do{Ci(e,i,Ae,v,ge,Oe,m);i=o[i+960>>2]|0}while((i|0)!=0)}v=(Ie|2|0)==3;b=(Fe|2|0)==3;if(v|b){i=0;do{g=o[(o[Re>>2]|0)+(i<<2)>>2]|0;if((o[g+36>>2]|0)!=1){if(v)Ti(e,g,Ie);if(b)Ti(e,g,Fe)}i=i+1|0}while((i|0)!=(Ne|0))}}}else ei(e,t,n,a,l,c,f)}while(0);h=Be;return}function xr(e,t){e=e|0;t=K(t);var n=0;Ct(e,t>=K(0.0),3147);n=t==K(0.0);s[e+4>>2]=n?K(0.0):t;return}function Ar(e,t,n,i){e=e|0;t=K(t);n=K(n);i=i|0;var u=ft,a=ft,l=0,c=0,f=0;o[2278]=(o[2278]|0)+1;Pr(e);if(!(Or(e,2,t)|0)){u=K(Rr(e+380|0,t));if(!(u>=K(0.0))){f=((Dt(t)|0)^1)&1;u=t}else f=2}else{u=K(Rr(o[e+992>>2]|0,t));f=1;u=K(u+K(Cr(e,2,t)))}if(!(Or(e,0,n)|0)){a=K(Rr(e+388|0,n));if(!(a>=K(0.0))){c=((Dt(n)|0)^1)&1;a=n}else c=2}else{a=K(Rr(o[e+996>>2]|0,n));c=1;a=K(a+K(Cr(e,0,t)))}l=e+976|0;if(Er(e,u,a,i,f,c,t,n,1,3189,o[l>>2]|0)|0?(Nr(e,o[e+496>>2]|0,t,n,t),Ir(e,K(s[(o[l>>2]|0)+4>>2]),K(0.0),K(0.0)),r[11696]|0):0)vr(e,7);return}function Pr(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;a=l+24|0;u=l+16|0;r=l+8|0;i=l;n=0;do{t=e+380+(n<<3)|0;if(!((o[e+380+(n<<3)+4>>2]|0)!=0?(s=t,c=o[s+4>>2]|0,f=r,o[f>>2]=o[s>>2],o[f+4>>2]=c,f=e+364+(n<<3)|0,c=o[f+4>>2]|0,s=i,o[s>>2]=o[f>>2],o[s+4>>2]=c,o[u>>2]=o[r>>2],o[u+4>>2]=o[r+4>>2],o[a>>2]=o[i>>2],o[a+4>>2]=o[i+4>>2],hr(u,a)|0):0))t=e+348+(n<<3)|0;o[e+992+(n<<2)>>2]=t;n=n+1|0}while((n|0)!=2);h=l;return}function Or(e,t,n){e=e|0;t=t|0;n=K(n);var r=0;e=o[e+992+(o[976+(t<<2)>>2]<<2)>>2]|0;switch(o[e+4>>2]|0){case 0:case 3:{e=0;break}case 1:{if(K(s[e>>2])>2])>2]|0){case 2:{t=K(K(K(s[e>>2])*t)/K(100.0));break}case 1:{t=K(s[e>>2]);break}default:t=K(w)}return K(t)}function Nr(e,t,n,r,i){e=e|0;t=t|0;n=K(n);r=K(r);i=K(i);var u=0,a=ft;t=o[e+944>>2]|0?t:1;u=$r(o[e+4>>2]|0,t)|0;t=ri(u,t)|0;n=K(Pi(e,u,n));r=K(Pi(e,t,r));a=K(n+K(Hr(e,u,i)));s[e+400+(o[1040+(u<<2)>>2]<<2)>>2]=a;n=K(n+K(Gr(e,u,i)));s[e+400+(o[1e3+(u<<2)>>2]<<2)>>2]=n;n=K(r+K(Hr(e,t,i)));s[e+400+(o[1040+(t<<2)>>2]<<2)>>2]=n;i=K(r+K(Gr(e,t,i)));s[e+400+(o[1e3+(t<<2)>>2]<<2)>>2]=i;return}function Ir(e,t,n,r){e=e|0;t=K(t);n=K(n);r=K(r);var i=0,u=0,a=ft,l=ft,c=0,f=0,d=ft,p=0,h=ft,m=ft,v=ft,b=ft;if(!(t==K(0.0))){i=e+400|0;b=K(s[i>>2]);u=e+404|0;v=K(s[u>>2]);p=e+416|0;m=K(s[p>>2]);f=e+420|0;a=K(s[f>>2]);h=K(b+n);d=K(v+r);r=K(h+m);l=K(d+a);c=(o[e+988>>2]|0)==1;s[i>>2]=K(gr(b,t,0,c));s[u>>2]=K(gr(v,t,0,c));n=K(BS(K(m*t),K(1.0)));if(mr(n,K(0.0))|0)u=0;else u=(mr(n,K(1.0))|0)^1;n=K(BS(K(a*t),K(1.0)));if(mr(n,K(0.0))|0)i=0;else i=(mr(n,K(1.0))|0)^1;b=K(gr(r,t,c&u,c&(u^1)));s[p>>2]=K(b-K(gr(h,t,0,c)));b=K(gr(l,t,c&i,c&(i^1)));s[f>>2]=K(b-K(gr(d,t,0,c)));u=(o[e+952>>2]|0)-(o[e+948>>2]|0)>>2;if(u|0){i=0;do{Ir(Pt(e,i)|0,t,h,d);i=i+1|0}while((i|0)!=(u|0))}}return}function Fr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;switch(n|0){case 5:case 0:{e=oS(o[489]|0,r,i)|0;break}default:e=US(r,i)|0}return e|0}function Br(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;i=h;h=h+16|0;u=i;o[u>>2]=r;Lr(e,0,t,n,u);h=i;return}function Lr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;e=e|0?e:956;Mx[o[e+8>>2]&1](e,t,n,r,i)|0;if((n|0)==5)Ke();else return}function Ur(e,t,n){e=e|0;t=t|0;n=n|0;r[e+t>>0]=n&1;return}function jr(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){Wr(e,r);zr(e,o[t>>2]|0,o[n>>2]|0,r)}return}function Wr(e,t){e=e|0;t=t|0;var n=0;if((qr(e)|0)>>>0>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function zr(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function qr(e){e=e|0;return 1073741823}function Hr(e,t,n){e=e|0;t=t|0;n=K(n);if(Vr(t)|0?(o[e+96>>2]|0)!=0:0)e=e+92|0;else e=wt(e+60|0,o[1040+(t<<2)>>2]|0,992)|0;return K(Yr(e,n))}function Gr(e,t,n){e=e|0;t=t|0;n=K(n);if(Vr(t)|0?(o[e+104>>2]|0)!=0:0)e=e+100|0;else e=wt(e+60|0,o[1e3+(t<<2)>>2]|0,992)|0;return K(Yr(e,n))}function Vr(e){e=e|0;return(e|1|0)==3|0}function Yr(e,t){e=e|0;t=K(t);if((o[e+4>>2]|0)==3)t=K(0.0);else t=K(Rr(e,t));return K(t)}function Kr(e,t){e=e|0;t=t|0;e=o[e>>2]|0;return((e|0)==0?(t|0)>1?t:1:e)|0}function $r(e,t){e=e|0;t=t|0;var n=0;e:do{if((t|0)==2){switch(e|0){case 2:{e=3;break e}case 3:break;default:{n=4;break e}}e=2}else n=4}while(0);return e|0}function Xr(e,t){e=e|0;t=t|0;var n=ft;if(!((Vr(t)|0?(o[e+312>>2]|0)!=0:0)?(n=K(s[e+308>>2]),n>=K(0.0)):0))n=K(RS(K(s[(wt(e+276|0,o[1040+(t<<2)>>2]|0,992)|0)>>2]),K(0.0)));return K(n)}function Jr(e,t){e=e|0;t=t|0;var n=ft;if(!((Vr(t)|0?(o[e+320>>2]|0)!=0:0)?(n=K(s[e+316>>2]),n>=K(0.0)):0))n=K(RS(K(s[(wt(e+276|0,o[1e3+(t<<2)>>2]|0,992)|0)>>2]),K(0.0)));return K(n)}function Qr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;if(!((Vr(t)|0?(o[e+240>>2]|0)!=0:0)?(r=K(Rr(e+236|0,n)),r>=K(0.0)):0))r=K(RS(K(Rr(wt(e+204|0,o[1040+(t<<2)>>2]|0,992)|0,n)),K(0.0)));return K(r)}function Zr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;if(!((Vr(t)|0?(o[e+248>>2]|0)!=0:0)?(r=K(Rr(e+244|0,n)),r>=K(0.0)):0))r=K(RS(K(Rr(wt(e+204|0,o[1e3+(t<<2)>>2]|0,992)|0,n)),K(0.0)));return K(r)}function ei(e,t,n,r,i,u,a){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;u=K(u);a=K(a);var l=ft,c=ft,f=ft,d=ft,p=ft,m=ft,v=0,b=0,g=0;g=h;h=h+16|0;v=g;b=e+964|0;It(e,(o[b>>2]|0)!=0,3519);l=K(ui(e,2,t));c=K(ui(e,0,t));f=K(Cr(e,2,t));d=K(Cr(e,0,t));if(Dt(t)|0)p=t;else p=K(RS(K(0.0),K(K(t-f)-l)));if(Dt(n)|0)m=n;else m=K(RS(K(0.0),K(K(n-d)-c)));if((r|0)==1&(i|0)==1){s[e+908>>2]=K(di(e,2,K(t-f),u,u));t=K(di(e,0,K(n-d),a,u))}else{Ax[o[b>>2]&1](v,e,p,r,m,i);p=K(l+K(s[v>>2]));m=K(t-f);s[e+908>>2]=K(di(e,2,(r|2|0)==2?p:m,u,u));m=K(c+K(s[v+4>>2]));t=K(n-d);t=K(di(e,0,(i|2|0)==2?m:t,a,u))}s[e+912>>2]=t;h=g;return}function ti(e,t,n,r,i,o,u){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;o=K(o);u=K(u);var a=ft,l=ft,c=ft,f=ft;c=K(ui(e,2,o));a=K(ui(e,0,o));f=K(Cr(e,2,o));l=K(Cr(e,0,o));t=K(t-f);s[e+908>>2]=K(di(e,2,(r|2|0)==2?c:t,o,o));n=K(n-l);s[e+912>>2]=K(di(e,0,(i|2|0)==2?a:n,u,o));return}function ni(e,t,n,r,i,o,u){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;o=K(o);u=K(u);var a=0,l=ft,c=ft;a=(r|0)==2;if((!(t<=K(0.0)&a)?!(n<=K(0.0)&(i|0)==2):0)?!((r|0)==1&(i|0)==1):0)e=0;else{l=K(Cr(e,0,o));c=K(Cr(e,2,o));a=t>2]=K(di(e,2,a?K(0.0):t,o,o));t=K(n-l);a=n>2]=K(di(e,0,a?K(0.0):t,u,o));e=1}return e|0}function ri(e,t){e=e|0;t=t|0;if(ki(e)|0)e=$r(2,t)|0;else e=0;return e|0}function ii(e,t,n){e=e|0;t=t|0;n=K(n);n=K(Qr(e,t,n));return K(n+K(Xr(e,t)))}function oi(e,t,n){e=e|0;t=t|0;n=K(n);n=K(Zr(e,t,n));return K(n+K(Jr(e,t)))}function ui(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(ii(e,t,n));return K(r+K(oi(e,t,n)))}function ai(e){e=e|0;if(!(o[e+24>>2]|0)){if(K(li(e))!=K(0.0))e=1;else e=K(si(e))!=K(0.0)}else e=0;return e|0}function li(e){e=e|0;var t=ft;if(o[e+944>>2]|0){t=K(s[e+44>>2]);if(Dt(t)|0){t=K(s[e+40>>2]);e=t>K(0.0)&((Dt(t)|0)^1);return K(e?t:K(0.0))}}else t=K(0.0);return K(t)}function si(e){e=e|0;var t=ft,n=0,i=ft;do{if(o[e+944>>2]|0){t=K(s[e+48>>2]);if(Dt(t)|0){n=r[(o[e+976>>2]|0)+2>>0]|0;if(n<<24>>24==0?(i=K(s[e+40>>2]),i>24?K(1.0):K(0.0)}}else t=K(0.0)}while(0);return K(t)}function ci(e){e=e|0;var t=0,n=0;tM(e+400|0,0,540)|0;r[e+985>>0]=1;zt(e);n=At(e)|0;if(n|0){t=e+948|0;e=0;do{ci(o[(o[t>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=(n|0))}return}function fi(e,t,n,r,i,u,a,l,c,f){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);u=K(u);a=K(a);l=l|0;c=c|0;f=f|0;var d=0,p=ft,m=0,v=0,b=ft,g=ft,_=0,y=ft,D=0,E=ft,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=0;O=h;h=h+16|0;k=O+12|0;S=O+8|0;M=O+4|0;x=O;P=$r(o[e+4>>2]|0,c)|0;C=Vr(P)|0;p=K(Rr(Si(t)|0,C?u:a));T=Or(t,2,u)|0;A=Or(t,0,a)|0;do{if(!(Dt(p)|0)?!(Dt(C?n:i)|0):0){d=t+504|0;if(!(Dt(K(s[d>>2]))|0)){if(!(Mi(o[t+976>>2]|0,0)|0))break;if((o[t+500>>2]|0)==(o[2278]|0))break}s[d>>2]=K(RS(p,K(ui(t,P,u))))}else m=7}while(0);do{if((m|0)==7){D=C^1;if(!(D|T^1)){a=K(Rr(o[t+992>>2]|0,u));s[t+504>>2]=K(RS(a,K(ui(t,2,u))));break}if(!(C|A^1)){a=K(Rr(o[t+996>>2]|0,a));s[t+504>>2]=K(RS(a,K(ui(t,0,u))));break}s[k>>2]=K(w);s[S>>2]=K(w);o[M>>2]=0;o[x>>2]=0;y=K(Cr(t,2,u));E=K(Cr(t,0,u));if(T){b=K(y+K(Rr(o[t+992>>2]|0,u)));s[k>>2]=b;o[M>>2]=1;v=1}else{v=0;b=K(w)}if(A){p=K(E+K(Rr(o[t+996>>2]|0,a)));s[S>>2]=p;o[x>>2]=1;d=1}else{d=0;p=K(w)}m=o[e+32>>2]|0;if(!(C&(m|0)==2)){if(Dt(b)|0?!(Dt(n)|0):0){s[k>>2]=n;o[M>>2]=2;v=2;b=n}}else m=2;if((!((m|0)==2&D)?Dt(p)|0:0)?!(Dt(i)|0):0){s[S>>2]=i;o[x>>2]=2;d=2;p=i}g=K(s[t+396>>2]);_=Dt(g)|0;do{if(!_){if((v|0)==1&D){s[S>>2]=K(K(b-y)/g);o[x>>2]=1;d=1;m=1;break}if(C&(d|0)==1){s[k>>2]=K(g*K(p-E));o[M>>2]=1;d=1;m=1}else m=v}else m=v}while(0);R=Dt(n)|0;v=(pi(e,t)|0)!=4;if(!(C|T|((r|0)!=1|R)|(v|(m|0)==1))?(s[k>>2]=n,o[M>>2]=1,!_):0){s[S>>2]=K(K(n-y)/g);o[x>>2]=1;d=1}if(!(A|D|((l|0)!=1|(Dt(i)|0))|(v|(d|0)==1))?(s[S>>2]=i,o[x>>2]=1,!_):0){s[k>>2]=K(g*K(i-E));o[M>>2]=1}vi(t,2,u,u,M,k);vi(t,0,a,u,x,S);n=K(s[k>>2]);i=K(s[S>>2]);Er(t,n,i,c,o[M>>2]|0,o[x>>2]|0,u,a,0,3565,f)|0;a=K(s[t+908+(o[976+(P<<2)>>2]<<2)>>2]);s[t+504>>2]=K(RS(a,K(ui(t,P,u))))}}while(0);o[t+500>>2]=o[2278];h=O;return}function di(e,t,n,r,i){e=e|0;t=t|0;n=K(n);r=K(r);i=K(i);r=K(Ei(e,t,n,r));return K(RS(r,K(ui(e,t,i))))}function pi(e,t){e=e|0;t=t|0;t=t+20|0;t=o[((o[t>>2]|0)==0?e+16|0:t)>>2]|0;if((t|0)==5?ki(o[e+4>>2]|0)|0:0)t=1;return t|0}function hi(e,t){e=e|0;t=t|0;if(Vr(t)|0?(o[e+96>>2]|0)!=0:0)t=4;else t=o[1040+(t<<2)>>2]|0;return e+60+(t<<3)|0}function mi(e,t){e=e|0;t=t|0;if(Vr(t)|0?(o[e+104>>2]|0)!=0:0)t=5;else t=o[1e3+(t<<2)>>2]|0;return e+60+(t<<3)|0}function vi(e,t,n,r,i,u){e=e|0;t=t|0;n=K(n);r=K(r);i=i|0;u=u|0;n=K(Rr(e+380+(o[976+(t<<2)>>2]<<3)|0,n));n=K(n+K(Cr(e,t,r)));switch(o[i>>2]|0){case 2:case 1:{i=Dt(n)|0;r=K(s[u>>2]);s[u>>2]=i|r>2]=2;s[u>>2]=n}break}default:{}}return}function bi(e,t){e=e|0;t=t|0;e=e+132|0;if(Vr(t)|0?(o[(wt(e,4,948)|0)+4>>2]|0)!=0:0)e=1;else e=(o[(wt(e,o[1040+(t<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return e|0}function gi(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0;e=e+132|0;if(Vr(t)|0?(r=wt(e,4,948)|0,(o[r+4>>2]|0)!=0):0)i=4;else{r=wt(e,o[1040+(t<<2)>>2]|0,948)|0;if(!(o[r+4>>2]|0))n=K(0.0);else i=4}if((i|0)==4)n=K(Rr(r,n));return K(n)}function _i(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(s[e+908+(o[976+(t<<2)>>2]<<2)>>2]);r=K(r+K(Hr(e,t,n)));return K(r+K(Gr(e,t,n)))}function yi(e){e=e|0;var t=0,n=0,r=0;e:do{if(!(ki(o[e+4>>2]|0)|0)){if((o[e+16>>2]|0)!=5){n=At(e)|0;if(!n)t=0;else{t=0;while(1){r=Pt(e,t)|0;if((o[r+24>>2]|0)==0?(o[r+20>>2]|0)==5:0){t=1;break e}t=t+1|0;if(t>>>0>=n>>>0){t=0;break}}}}else t=1}else t=0}while(0);return t|0}function Di(e,t){e=e|0;t=t|0;var n=ft;n=K(s[e+908+(o[976+(t<<2)>>2]<<2)>>2]);return n>=K(0.0)&((Dt(n)|0)^1)|0}function wi(e){e=e|0;var t=ft,n=0,r=0,i=0,u=0,a=0,l=0,c=ft;n=o[e+968>>2]|0;if(!n){u=At(e)|0;do{if(u|0){n=0;i=0;while(1){r=Pt(e,i)|0;if(o[r+940>>2]|0){a=8;break}if((o[r+24>>2]|0)!=1){l=(pi(e,r)|0)==5;if(l){n=r;break}else n=(n|0)==0?r:n}i=i+1|0;if(i>>>0>=u>>>0){a=8;break}}if((a|0)==8)if(!n)break;t=K(wi(n));return K(t+K(s[n+404>>2]))}}while(0);t=K(s[e+912>>2])}else{c=K(s[e+908>>2]);t=K(s[e+912>>2]);t=K(px[n&0](e,c,t));It(e,(Dt(t)|0)^1,3573)}return K(t)}function Ei(e,t,n,r){e=e|0;t=t|0;n=K(n);r=K(r);var i=ft,o=0;if(!(ki(t)|0)){if(Vr(t)|0){t=0;o=3}else{r=K(w);i=K(w)}}else{t=1;o=3}if((o|0)==3){i=K(Rr(e+364+(t<<3)|0,r));r=K(Rr(e+380+(t<<3)|0,r))}o=r=K(0.0)&((Dt(r)|0)^1));n=o?r:n;o=i>=K(0.0)&((Dt(i)|0)^1)&n>2]|0,u)|0;v=ri(g,u)|0;b=Vr(g)|0;p=K(Cr(t,2,n));h=K(Cr(t,0,n));if(!(Or(t,2,n)|0)){if(bi(t,2)|0?xi(t,2)|0:0){l=K(s[e+908>>2]);c=K(Xr(e,2));c=K(l-K(c+K(Jr(e,2))));l=K(gi(t,2,n));l=K(di(t,2,K(c-K(l+K(Ai(t,2,n)))),n,n))}else l=K(w)}else l=K(p+K(Rr(o[t+992>>2]|0,n)));if(!(Or(t,0,i)|0)){if(bi(t,0)|0?xi(t,0)|0:0){c=K(s[e+912>>2]);y=K(Xr(e,0));y=K(c-K(y+K(Jr(e,0))));c=K(gi(t,0,i));c=K(di(t,0,K(y-K(c+K(Ai(t,0,i)))),i,n))}else c=K(w)}else c=K(h+K(Rr(o[t+996>>2]|0,i)));f=Dt(l)|0;d=Dt(c)|0;do{if(f^d?(m=K(s[t+396>>2]),!(Dt(m)|0)):0)if(f){l=K(p+K(K(c-h)*m));break}else{y=K(h+K(K(l-p)/m));c=d?y:c;break}}while(0);d=Dt(l)|0;f=Dt(c)|0;if(d|f){D=(d^1)&1;r=n>K(0.0)&((r|0)!=0&d);l=b?l:r?n:l;Er(t,l,c,u,b?D:r?2:D,d&(f^1)&1,l,c,0,3623,a)|0;l=K(s[t+908>>2]);l=K(l+K(Cr(t,2,n)));c=K(s[t+912>>2]);c=K(c+K(Cr(t,0,n)))}Er(t,l,c,u,1,1,l,c,1,3635,a)|0;if(xi(t,g)|0?!(bi(t,g)|0):0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));y=K(y-K(Jr(e,g)));y=K(y-K(Gr(t,g,n)));y=K(y-K(Ai(t,g,b?n:i)));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y}else _=21;do{if((_|0)==21){if(!(bi(t,g)|0)?(o[e+8>>2]|0)==1:0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(K(y-K(s[t+908+(D<<2)>>2]))*K(.5));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y;break}if(!(bi(t,g)|0)?(o[e+8>>2]|0)==2:0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y}}}while(0);if(xi(t,v)|0?!(bi(t,v)|0):0){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));y=K(y-K(Jr(e,v)));y=K(y-K(Gr(t,v,n)));y=K(y-K(Ai(t,v,b?i:n)));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y}else _=30;do{if((_|0)==30?!(bi(t,v)|0):0){if((pi(e,t)|0)==2){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(K(y-K(s[t+908+(D<<2)>>2]))*K(.5));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y;break}D=(pi(e,t)|0)==3;if(D^(o[e+28>>2]|0)==2){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y}}}while(0);return}function Ti(e,t,n){e=e|0;t=t|0;n=n|0;var r=ft,i=0;i=o[976+(n<<2)>>2]|0;r=K(s[t+908+(i<<2)>>2]);r=K(K(s[e+908+(i<<2)>>2])-r);r=K(r-K(s[t+400+(o[1040+(n<<2)>>2]<<2)>>2]));s[t+400+(o[1e3+(n<<2)>>2]<<2)>>2]=r;return}function ki(e){e=e|0;return(e|1|0)==1|0}function Si(e){e=e|0;var t=ft;switch(o[e+56>>2]|0){case 0:case 3:{t=K(s[e+40>>2]);if(t>K(0.0)&((Dt(t)|0)^1))e=r[(o[e+976>>2]|0)+2>>0]|0?1056:992;else e=1056;break}default:e=e+52|0}return e|0}function Mi(e,t){e=e|0;t=t|0;return(r[e+t>>0]|0)!=0|0}function xi(e,t){e=e|0;t=t|0;e=e+132|0;if(Vr(t)|0?(o[(wt(e,5,948)|0)+4>>2]|0)!=0:0)e=1;else e=(o[(wt(e,o[1e3+(t<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return e|0}function Ai(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0;e=e+132|0;if(Vr(t)|0?(r=wt(e,5,948)|0,(o[r+4>>2]|0)!=0):0)i=4;else{r=wt(e,o[1e3+(t<<2)>>2]|0,948)|0;if(!(o[r+4>>2]|0))n=K(0.0);else i=4}if((i|0)==4)n=K(Rr(r,n));return K(n)}function Pi(e,t,n){e=e|0;t=t|0;n=K(n);if(bi(e,t)|0)n=K(gi(e,t,n));else n=K(-K(Ai(e,t,n)));return K(n)}function Oi(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function Ri(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function Ni(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ii(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function Fi(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;a=e+4|0;l=o[a>>2]|0;i=l-r|0;u=i>>2;e=t+(u<<2)|0;if(e>>>0>>0){r=l;do{o[r>>2]=o[e>>2];e=e+4|0;r=(o[a>>2]|0)+4|0;o[a>>2]=r}while(e>>>0>>0)}if(u|0)sM(l+(0-u<<2)|0,t|0,i|0)|0;return}function Bi(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0;l=t+4|0;s=o[l>>2]|0;i=o[e>>2]|0;a=n;u=a-i|0;r=s+(0-(u>>2)<<2)|0;o[l>>2]=r;if((u|0)>0)iM(r|0,i|0,u|0)|0;i=e+4|0;u=t+8|0;r=(o[i>>2]|0)-a|0;if((r|0)>0){iM(o[u>>2]|0,n|0,r|0)|0;o[u>>2]=(o[u>>2]|0)+(r>>>2<<2)}a=o[e>>2]|0;o[e>>2]=o[l>>2];o[l>>2]=a;a=o[i>>2]|0;o[i>>2]=o[u>>2];o[u>>2]=a;a=e+8|0;n=t+12|0;e=o[a>>2]|0;o[a>>2]=o[n>>2];o[n>>2]=e;o[t>>2]=o[l>>2];return s|0}function Li(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;a=o[t>>2]|0;u=o[n>>2]|0;if((a|0)!=(u|0)){i=e+8|0;n=((u+-4-a|0)>>>2)+1|0;e=a;r=o[i>>2]|0;do{o[r>>2]=o[e>>2];r=(o[i>>2]|0)+4|0;o[i>>2]=r;e=e+4|0}while((e|0)!=(u|0));o[t>>2]=a+(n<<2)}return}function Ui(){_t();return}function ji(){var e=0;e=YS(4)|0;Wi(e);return e|0}function Wi(e){e=e|0;o[e>>2]=Bt()|0;return}function zi(e){e=e|0;if(e|0){qi(e);$S(e)}return}function qi(e){e=e|0;Ut(o[e>>2]|0);return}function Hi(e,t,n){e=e|0;t=t|0;n=n|0;Ur(o[e>>2]|0,t,n);return}function Gi(e,t){e=e|0;t=K(t);xr(o[e>>2]|0,t);return}function Vi(e,t){e=e|0;t=t|0;return Mi(o[e>>2]|0,t)|0}function Yi(){var e=0;e=YS(8)|0;Ki(e,0);return e|0}function Ki(e,t){e=e|0;t=t|0;if(!t)t=Tt()|0;else t=Et(o[t>>2]|0)|0;o[e>>2]=t;o[e+4>>2]=0;Qt(t,e);return}function $i(e){e=e|0;var t=0;t=YS(8)|0;Ki(t,e);return t|0}function Xi(e){e=e|0;if(e|0){Ji(e);$S(e)}return}function Ji(e){e=e|0;var t=0;Mt(o[e>>2]|0);t=e+4|0;e=o[t>>2]|0;o[t>>2]=0;if(e|0){Qi(e);$S(e)}return}function Qi(e){e=e|0;Zi(e);return}function Zi(e){e=e|0;e=o[e>>2]|0;if(e|0)rt(e|0);return}function eo(e){e=e|0;return Zt(e)|0}function to(e){e=e|0;var t=0,n=0;n=e+4|0;t=o[n>>2]|0;o[n>>2]=0;if(t|0){Qi(t);$S(t)}Nt(o[e>>2]|0);return}function no(e,t){e=e|0;t=t|0;$t(o[e>>2]|0,o[t>>2]|0);return}function ro(e,t){e=e|0;t=t|0;fn(o[e>>2]|0,t);return}function io(e,t,n){e=e|0;t=t|0;n=+n;Tn(o[e>>2]|0,t,K(n));return}function oo(e,t,n){e=e|0;t=t|0;n=+n;kn(o[e>>2]|0,t,K(n));return}function uo(e,t){e=e|0;t=t|0;on(o[e>>2]|0,t);return}function ao(e,t){e=e|0;t=t|0;an(o[e>>2]|0,t);return}function lo(e,t){e=e|0;t=t|0;sn(o[e>>2]|0,t);return}function so(e,t){e=e|0;t=t|0;en(o[e>>2]|0,t);return}function co(e,t){e=e|0;t=t|0;pn(o[e>>2]|0,t);return}function fo(e,t){e=e|0;t=t|0;nn(o[e>>2]|0,t);return}function po(e,t,n){e=e|0;t=t|0;n=+n;Mn(o[e>>2]|0,t,K(n));return}function ho(e,t,n){e=e|0;t=t|0;n=+n;xn(o[e>>2]|0,t,K(n));return}function mo(e,t){e=e|0;t=t|0;Pn(o[e>>2]|0,t);return}function vo(e,t){e=e|0;t=t|0;mn(o[e>>2]|0,t);return}function bo(e,t){e=e|0;t=t|0;bn(o[e>>2]|0,t);return}function go(e,t){e=e|0;t=+t;_n(o[e>>2]|0,K(t));return}function _o(e,t){e=e|0;t=+t;wn(o[e>>2]|0,K(t));return}function yo(e,t){e=e|0;t=+t;En(o[e>>2]|0,K(t));return}function Do(e,t){e=e|0;t=+t;yn(o[e>>2]|0,K(t));return}function wo(e,t){e=e|0;t=+t;Dn(o[e>>2]|0,K(t));return}function Eo(e,t){e=e|0;t=+t;Bn(o[e>>2]|0,K(t));return}function Co(e,t){e=e|0;t=+t;Ln(o[e>>2]|0,K(t));return}function To(e){e=e|0;Un(o[e>>2]|0);return}function ko(e,t){e=e|0;t=+t;Wn(o[e>>2]|0,K(t));return}function So(e,t){e=e|0;t=+t;zn(o[e>>2]|0,K(t));return}function Mo(e){e=e|0;qn(o[e>>2]|0);return}function xo(e,t){e=e|0;t=+t;Gn(o[e>>2]|0,K(t));return}function Ao(e,t){e=e|0;t=+t;Vn(o[e>>2]|0,K(t));return}function Po(e,t){e=e|0;t=+t;Kn(o[e>>2]|0,K(t));return}function Oo(e,t){e=e|0;t=+t;$n(o[e>>2]|0,K(t));return}function Ro(e,t){e=e|0;t=+t;Jn(o[e>>2]|0,K(t));return}function No(e,t){e=e|0;t=+t;Qn(o[e>>2]|0,K(t));return}function Io(e,t){e=e|0;t=+t;er(o[e>>2]|0,K(t));return}function Fo(e,t){e=e|0;t=+t;tr(o[e>>2]|0,K(t));return}function Bo(e,t){e=e|0;t=+t;rr(o[e>>2]|0,K(t));return}function Lo(e,t,n){e=e|0;t=t|0;n=+n;In(o[e>>2]|0,t,K(n));return}function Uo(e,t,n){e=e|0;t=t|0;n=+n;On(o[e>>2]|0,t,K(n));return}function jo(e,t,n){e=e|0;t=t|0;n=+n;Rn(o[e>>2]|0,t,K(n));return}function Wo(e){e=e|0;return dn(o[e>>2]|0)|0}function zo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Sn(i,o[t>>2]|0,n);qo(e,i);h=r;return}function qo(e,t){e=e|0;t=t|0;Ho(e,o[t+4>>2]|0,+K(s[t>>2]));return}function Ho(e,t,n){e=e|0;t=t|0;n=+n;o[e>>2]=t;c[e+8>>3]=n;return}function Go(e){e=e|0;return un(o[e>>2]|0)|0}function Vo(e){e=e|0;return ln(o[e>>2]|0)|0}function Yo(e){e=e|0;return cn(o[e>>2]|0)|0}function Ko(e){e=e|0;return tn(o[e>>2]|0)|0}function $o(e){e=e|0;return hn(o[e>>2]|0)|0}function Xo(e){e=e|0;return rn(o[e>>2]|0)|0}function Jo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;An(i,o[t>>2]|0,n);qo(e,i);h=r;return}function Qo(e){e=e|0;return vn(o[e>>2]|0)|0}function Zo(e){e=e|0;return gn(o[e>>2]|0)|0}function eu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Cn(r,o[t>>2]|0);qo(e,r);h=n;return}function tu(e){e=e|0;return+ +K(Xt(o[e>>2]|0))}function nu(e){e=e|0;return+ +K(Jt(o[e>>2]|0))}function ru(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;jn(r,o[t>>2]|0);qo(e,r);h=n;return}function iu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Hn(r,o[t>>2]|0);qo(e,r);h=n;return}function ou(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Yn(r,o[t>>2]|0);qo(e,r);h=n;return}function uu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Xn(r,o[t>>2]|0);qo(e,r);h=n;return}function au(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Zn(r,o[t>>2]|0);qo(e,r);h=n;return}function lu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;nr(r,o[t>>2]|0);qo(e,r);h=n;return}function su(e){e=e|0;return+ +K(ir(o[e>>2]|0))}function cu(e,t){e=e|0;t=t|0;return+ +K(Fn(o[e>>2]|0,t))}function fu(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Nn(i,o[t>>2]|0,n);qo(e,i);h=r;return}function du(e,t,n){e=e|0;t=t|0;n=n|0;Wt(o[e>>2]|0,o[t>>2]|0,n);return}function pu(e,t){e=e|0;t=t|0;Rt(o[e>>2]|0,o[t>>2]|0);return}function hu(e){e=e|0;return At(o[e>>2]|0)|0}function mu(e){e=e|0;e=Vt(o[e>>2]|0)|0;if(!e)e=0;else e=eo(e)|0;return e|0}function vu(e,t){e=e|0;t=t|0;e=Pt(o[e>>2]|0,t)|0;if(!e)e=0;else e=eo(e)|0;return e|0}function bu(e,t){e=e|0;t=t|0;var n=0,r=0;r=YS(4)|0;gu(r,t);n=e+4|0;t=o[n>>2]|0;o[n>>2]=r;if(t|0){Qi(t);$S(t)}jt(o[e>>2]|0,1);return}function gu(e,t){e=e|0;t=t|0;Lu(e,t);return}function _u(e,t,n,r,i,o){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);o=o|0;var u=0,a=0;u=h;h=h+16|0;a=u;yu(a,Zt(t)|0,+n,r,+i,o);s[e>>2]=K(+c[a>>3]);s[e+4>>2]=K(+c[a+8>>3]);h=u;return}function yu(e,t,n,r,i,u){e=e|0;t=t|0;n=+n;r=r|0;i=+i;u=u|0;var a=0,l=0,s=0,f=0,d=0;a=h;h=h+32|0;d=a+8|0;f=a+20|0;s=a;l=a+16|0;c[d>>3]=n;o[f>>2]=r;c[s>>3]=i;o[l>>2]=u;Du(e,o[t+4>>2]|0,d,f,s,l);h=a;return}function Du(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0;a=h;h=h+16|0;l=a;Ek(l);t=wu(t)|0;Eu(e,t,+c[n>>3],o[r>>2]|0,+c[i>>3],o[u>>2]|0);Tk(l);h=a;return}function wu(e){e=e|0;return o[e>>2]|0}function Eu(e,t,n,r,i,o){e=e|0;t=t|0;n=+n;r=r|0;i=+i;o=o|0;var u=0;u=Tu(Cu()|0)|0;n=+ku(n);r=Su(r)|0;i=+ku(i);Mu(e,ot(0,u|0,t|0,+n,r|0,+i,Su(o)|0)|0);return}function Cu(){var e=0;if(!(r[7608]|0)){Iu(9120);e=7608;o[e>>2]=1;o[e+4>>2]=0}return 9120}function Tu(e){e=e|0;return o[e+8>>2]|0}function ku(e){e=+e;return+ +Nu(e)}function Su(e){e=e|0;return Ru(e)|0}function Mu(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i;r=t;if(!(r&1)){o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2]}else{xu(n,0);Le(r|0,n|0)|0;Au(e,n);Pu(n)}h=i;return}function xu(e,t){e=e|0;t=t|0;Ou(e,t);o[e+8>>2]=0;r[e+24>>0]=0;return}function Au(e,t){e=e|0;t=t|0;t=t+8|0;o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2];return}function Pu(e){e=e|0;r[e+24>>0]=0;return}function Ou(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function Ru(e){e=e|0;return e|0}function Nu(e){e=+e;return+e}function Iu(e){e=e|0;Bu(e,Fu()|0,4);return}function Fu(){return 1064}function Bu(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=tt(t|0,n+1|0)|0;return}function Lu(e,t){e=e|0;t=t|0;t=o[t>>2]|0;o[e>>2]=t;xe(t|0);return}function Uu(e){e=e|0;var t=0,n=0;n=e+4|0;t=o[n>>2]|0;o[n>>2]=0;if(t|0){Qi(t);$S(t)}jt(o[e>>2]|0,0);return}function ju(e){e=e|0;Yt(o[e>>2]|0);return}function Wu(e){e=e|0;return Kt(o[e>>2]|0)|0}function zu(e,t,n,r){e=e|0;t=+t;n=+n;r=r|0;Ar(o[e>>2]|0,K(t),K(n),r);return}function qu(e){e=e|0;return+ +K(or(o[e>>2]|0))}function Hu(e){e=e|0;return+ +K(ar(o[e>>2]|0))}function Gu(e){e=e|0;return+ +K(ur(o[e>>2]|0))}function Vu(e){e=e|0;return+ +K(lr(o[e>>2]|0))}function Yu(e){e=e|0;return+ +K(sr(o[e>>2]|0))}function Ku(e){e=e|0;return+ +K(cr(o[e>>2]|0))}function $u(e,t){e=e|0;t=t|0;c[e>>3]=+K(or(o[t>>2]|0));c[e+8>>3]=+K(ar(o[t>>2]|0));c[e+16>>3]=+K(ur(o[t>>2]|0));c[e+24>>3]=+K(lr(o[t>>2]|0));c[e+32>>3]=+K(sr(o[t>>2]|0));c[e+40>>3]=+K(cr(o[t>>2]|0));return}function Xu(e,t){e=e|0;t=t|0;return+ +K(fr(o[e>>2]|0,t))}function Ju(e,t){e=e|0;t=t|0;return+ +K(dr(o[e>>2]|0,t))}function Qu(e,t){e=e|0;t=t|0;return+ +K(pr(o[e>>2]|0,t))}function Zu(){return Ft()|0}function ea(){ta();na();ra();ia();oa();ua();return}function ta(){Wy(11713,4938,1);return}function na(){ty(10448);return}function ra(){I_(10408);return}function ia(){Qg(10324);return}function oa(){Gv(10096);return}function ua(){aa(9132);return}function aa(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=0,N=0,I=0,F=0,B=0,L=0,U=0,j=0,W=0,z=0,q=0,H=0,G=0,V=0,Y=0,K=0,$=0,X=0,J=0,Q=0,Z=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,ue=0,ae=0,le=0,se=0,ce=0,fe=0,de=0,pe=0,he=0,me=0,ve=0,be=0,ge=0,_e=0,ye=0,De=0,we=0,Ee=0,Ce=0,Te=0,ke=0,Se=0,Me=0,xe=0,Ae=0,Pe=0,Oe=0;t=h;h=h+672|0;n=t+656|0;Oe=t+648|0;Pe=t+640|0;Ae=t+632|0;xe=t+624|0;Me=t+616|0;Se=t+608|0;ke=t+600|0;Te=t+592|0;Ce=t+584|0;Ee=t+576|0;we=t+568|0;De=t+560|0;ye=t+552|0;_e=t+544|0;ge=t+536|0;be=t+528|0;ve=t+520|0;me=t+512|0;he=t+504|0;pe=t+496|0;de=t+488|0;fe=t+480|0;ce=t+472|0;se=t+464|0;le=t+456|0;ae=t+448|0;ue=t+440|0;oe=t+432|0;ie=t+424|0;re=t+416|0;ne=t+408|0;te=t+400|0;ee=t+392|0;Z=t+384|0;Q=t+376|0;J=t+368|0;X=t+360|0;$=t+352|0;K=t+344|0;Y=t+336|0;V=t+328|0;G=t+320|0;H=t+312|0;q=t+304|0;z=t+296|0;W=t+288|0;j=t+280|0;U=t+272|0;L=t+264|0;B=t+256|0;F=t+248|0;I=t+240|0;N=t+232|0;R=t+224|0;O=t+216|0;P=t+208|0;A=t+200|0;x=t+192|0;M=t+184|0;S=t+176|0;k=t+168|0;T=t+160|0;C=t+152|0;E=t+144|0;w=t+136|0;D=t+128|0;y=t+120|0;_=t+112|0;g=t+104|0;b=t+96|0;v=t+88|0;m=t+80|0;p=t+72|0;d=t+64|0;f=t+56|0;c=t+48|0;s=t+40|0;l=t+32|0;a=t+24|0;u=t+16|0;i=t+8|0;r=t;la(e,3646);sa(e,3651,2)|0;ca(e,3665,2)|0;fa(e,3682,18)|0;o[Oe>>2]=19;o[Oe+4>>2]=0;o[n>>2]=o[Oe>>2];o[n+4>>2]=o[Oe+4>>2];da(e,3690,n)|0;o[Pe>>2]=1;o[Pe+4>>2]=0;o[n>>2]=o[Pe>>2];o[n+4>>2]=o[Pe+4>>2];pa(e,3696,n)|0;o[Ae>>2]=2;o[Ae+4>>2]=0;o[n>>2]=o[Ae>>2];o[n+4>>2]=o[Ae+4>>2];ha(e,3706,n)|0;o[xe>>2]=1;o[xe+4>>2]=0;o[n>>2]=o[xe>>2];o[n+4>>2]=o[xe+4>>2];ma(e,3722,n)|0;o[Me>>2]=2;o[Me+4>>2]=0;o[n>>2]=o[Me>>2];o[n+4>>2]=o[Me+4>>2];ma(e,3734,n)|0;o[Se>>2]=3;o[Se+4>>2]=0;o[n>>2]=o[Se>>2];o[n+4>>2]=o[Se+4>>2];ha(e,3753,n)|0;o[ke>>2]=4;o[ke+4>>2]=0;o[n>>2]=o[ke>>2];o[n+4>>2]=o[ke+4>>2];ha(e,3769,n)|0;o[Te>>2]=5;o[Te+4>>2]=0;o[n>>2]=o[Te>>2];o[n+4>>2]=o[Te+4>>2];ha(e,3783,n)|0;o[Ce>>2]=6;o[Ce+4>>2]=0;o[n>>2]=o[Ce>>2];o[n+4>>2]=o[Ce+4>>2];ha(e,3796,n)|0;o[Ee>>2]=7;o[Ee+4>>2]=0;o[n>>2]=o[Ee>>2];o[n+4>>2]=o[Ee+4>>2];ha(e,3813,n)|0;o[we>>2]=8;o[we+4>>2]=0;o[n>>2]=o[we>>2];o[n+4>>2]=o[we+4>>2];ha(e,3825,n)|0;o[De>>2]=3;o[De+4>>2]=0;o[n>>2]=o[De>>2];o[n+4>>2]=o[De+4>>2];ma(e,3843,n)|0;o[ye>>2]=4;o[ye+4>>2]=0;o[n>>2]=o[ye>>2];o[n+4>>2]=o[ye+4>>2];ma(e,3853,n)|0;o[_e>>2]=9;o[_e+4>>2]=0;o[n>>2]=o[_e>>2];o[n+4>>2]=o[_e+4>>2];ha(e,3870,n)|0;o[ge>>2]=10;o[ge+4>>2]=0;o[n>>2]=o[ge>>2];o[n+4>>2]=o[ge+4>>2];ha(e,3884,n)|0;o[be>>2]=11;o[be+4>>2]=0;o[n>>2]=o[be>>2];o[n+4>>2]=o[be+4>>2];ha(e,3896,n)|0;o[ve>>2]=1;o[ve+4>>2]=0;o[n>>2]=o[ve>>2];o[n+4>>2]=o[ve+4>>2];va(e,3907,n)|0;o[me>>2]=2;o[me+4>>2]=0;o[n>>2]=o[me>>2];o[n+4>>2]=o[me+4>>2];va(e,3915,n)|0;o[he>>2]=3;o[he+4>>2]=0;o[n>>2]=o[he>>2];o[n+4>>2]=o[he+4>>2];va(e,3928,n)|0;o[pe>>2]=4;o[pe+4>>2]=0;o[n>>2]=o[pe>>2];o[n+4>>2]=o[pe+4>>2];va(e,3948,n)|0;o[de>>2]=5;o[de+4>>2]=0;o[n>>2]=o[de>>2];o[n+4>>2]=o[de+4>>2];va(e,3960,n)|0;o[fe>>2]=6;o[fe+4>>2]=0;o[n>>2]=o[fe>>2];o[n+4>>2]=o[fe+4>>2];va(e,3974,n)|0;o[ce>>2]=7;o[ce+4>>2]=0;o[n>>2]=o[ce>>2];o[n+4>>2]=o[ce+4>>2];va(e,3983,n)|0;o[se>>2]=20;o[se+4>>2]=0;o[n>>2]=o[se>>2];o[n+4>>2]=o[se+4>>2];da(e,3999,n)|0;o[le>>2]=8;o[le+4>>2]=0;o[n>>2]=o[le>>2];o[n+4>>2]=o[le+4>>2];va(e,4012,n)|0;o[ae>>2]=9;o[ae+4>>2]=0;o[n>>2]=o[ae>>2];o[n+4>>2]=o[ae+4>>2];va(e,4022,n)|0;o[ue>>2]=21;o[ue+4>>2]=0;o[n>>2]=o[ue>>2];o[n+4>>2]=o[ue+4>>2];da(e,4039,n)|0;o[oe>>2]=10;o[oe+4>>2]=0;o[n>>2]=o[oe>>2];o[n+4>>2]=o[oe+4>>2];va(e,4053,n)|0;o[ie>>2]=11;o[ie+4>>2]=0;o[n>>2]=o[ie>>2];o[n+4>>2]=o[ie+4>>2];va(e,4065,n)|0;o[re>>2]=12;o[re+4>>2]=0;o[n>>2]=o[re>>2];o[n+4>>2]=o[re+4>>2];va(e,4084,n)|0;o[ne>>2]=13;o[ne+4>>2]=0;o[n>>2]=o[ne>>2];o[n+4>>2]=o[ne+4>>2];va(e,4097,n)|0;o[te>>2]=14;o[te+4>>2]=0;o[n>>2]=o[te>>2];o[n+4>>2]=o[te+4>>2];va(e,4117,n)|0;o[ee>>2]=15;o[ee+4>>2]=0;o[n>>2]=o[ee>>2];o[n+4>>2]=o[ee+4>>2];va(e,4129,n)|0;o[Z>>2]=16;o[Z+4>>2]=0;o[n>>2]=o[Z>>2];o[n+4>>2]=o[Z+4>>2];va(e,4148,n)|0;o[Q>>2]=17;o[Q+4>>2]=0;o[n>>2]=o[Q>>2];o[n+4>>2]=o[Q+4>>2];va(e,4161,n)|0;o[J>>2]=18;o[J+4>>2]=0;o[n>>2]=o[J>>2];o[n+4>>2]=o[J+4>>2];va(e,4181,n)|0;o[X>>2]=5;o[X+4>>2]=0;o[n>>2]=o[X>>2];o[n+4>>2]=o[X+4>>2];ma(e,4196,n)|0;o[$>>2]=6;o[$+4>>2]=0;o[n>>2]=o[$>>2];o[n+4>>2]=o[$+4>>2];ma(e,4206,n)|0;o[K>>2]=7;o[K+4>>2]=0;o[n>>2]=o[K>>2];o[n+4>>2]=o[K+4>>2];ma(e,4217,n)|0;o[Y>>2]=3;o[Y+4>>2]=0;o[n>>2]=o[Y>>2];o[n+4>>2]=o[Y+4>>2];ba(e,4235,n)|0;o[V>>2]=1;o[V+4>>2]=0;o[n>>2]=o[V>>2];o[n+4>>2]=o[V+4>>2];ga(e,4251,n)|0;o[G>>2]=4;o[G+4>>2]=0;o[n>>2]=o[G>>2];o[n+4>>2]=o[G+4>>2];ba(e,4263,n)|0;o[H>>2]=5;o[H+4>>2]=0;o[n>>2]=o[H>>2];o[n+4>>2]=o[H+4>>2];ba(e,4279,n)|0;o[q>>2]=6;o[q+4>>2]=0;o[n>>2]=o[q>>2];o[n+4>>2]=o[q+4>>2];ba(e,4293,n)|0;o[z>>2]=7;o[z+4>>2]=0;o[n>>2]=o[z>>2];o[n+4>>2]=o[z+4>>2];ba(e,4306,n)|0;o[W>>2]=8;o[W+4>>2]=0;o[n>>2]=o[W>>2];o[n+4>>2]=o[W+4>>2];ba(e,4323,n)|0;o[j>>2]=9;o[j+4>>2]=0;o[n>>2]=o[j>>2];o[n+4>>2]=o[j+4>>2];ba(e,4335,n)|0;o[U>>2]=2;o[U+4>>2]=0;o[n>>2]=o[U>>2];o[n+4>>2]=o[U+4>>2];ga(e,4353,n)|0;o[L>>2]=12;o[L+4>>2]=0;o[n>>2]=o[L>>2];o[n+4>>2]=o[L+4>>2];_a(e,4363,n)|0;o[B>>2]=1;o[B+4>>2]=0;o[n>>2]=o[B>>2];o[n+4>>2]=o[B+4>>2];ya(e,4376,n)|0;o[F>>2]=2;o[F+4>>2]=0;o[n>>2]=o[F>>2];o[n+4>>2]=o[F+4>>2];ya(e,4388,n)|0;o[I>>2]=13;o[I+4>>2]=0;o[n>>2]=o[I>>2];o[n+4>>2]=o[I+4>>2];_a(e,4402,n)|0;o[N>>2]=14;o[N+4>>2]=0;o[n>>2]=o[N>>2];o[n+4>>2]=o[N+4>>2];_a(e,4411,n)|0;o[R>>2]=15;o[R+4>>2]=0;o[n>>2]=o[R>>2];o[n+4>>2]=o[R+4>>2];_a(e,4421,n)|0;o[O>>2]=16;o[O+4>>2]=0;o[n>>2]=o[O>>2];o[n+4>>2]=o[O+4>>2];_a(e,4433,n)|0;o[P>>2]=17;o[P+4>>2]=0;o[n>>2]=o[P>>2];o[n+4>>2]=o[P+4>>2];_a(e,4446,n)|0;o[A>>2]=18;o[A+4>>2]=0;o[n>>2]=o[A>>2];o[n+4>>2]=o[A+4>>2];_a(e,4458,n)|0;o[x>>2]=3;o[x+4>>2]=0;o[n>>2]=o[x>>2];o[n+4>>2]=o[x+4>>2];ya(e,4471,n)|0;o[M>>2]=1;o[M+4>>2]=0;o[n>>2]=o[M>>2];o[n+4>>2]=o[M+4>>2];Da(e,4486,n)|0;o[S>>2]=10;o[S+4>>2]=0;o[n>>2]=o[S>>2];o[n+4>>2]=o[S+4>>2];ba(e,4496,n)|0;o[k>>2]=11;o[k+4>>2]=0;o[n>>2]=o[k>>2];o[n+4>>2]=o[k+4>>2];ba(e,4508,n)|0;o[T>>2]=3;o[T+4>>2]=0;o[n>>2]=o[T>>2];o[n+4>>2]=o[T+4>>2];ga(e,4519,n)|0;o[C>>2]=4;o[C+4>>2]=0;o[n>>2]=o[C>>2];o[n+4>>2]=o[C+4>>2];wa(e,4530,n)|0;o[E>>2]=19;o[E+4>>2]=0;o[n>>2]=o[E>>2];o[n+4>>2]=o[E+4>>2];Ea(e,4542,n)|0;o[w>>2]=12;o[w+4>>2]=0;o[n>>2]=o[w>>2];o[n+4>>2]=o[w+4>>2];Ca(e,4554,n)|0;o[D>>2]=13;o[D+4>>2]=0;o[n>>2]=o[D>>2];o[n+4>>2]=o[D+4>>2];Ta(e,4568,n)|0;o[y>>2]=2;o[y+4>>2]=0;o[n>>2]=o[y>>2];o[n+4>>2]=o[y+4>>2];ka(e,4578,n)|0;o[_>>2]=20;o[_+4>>2]=0;o[n>>2]=o[_>>2];o[n+4>>2]=o[_+4>>2];Sa(e,4587,n)|0;o[g>>2]=22;o[g+4>>2]=0;o[n>>2]=o[g>>2];o[n+4>>2]=o[g+4>>2];da(e,4602,n)|0;o[b>>2]=23;o[b+4>>2]=0;o[n>>2]=o[b>>2];o[n+4>>2]=o[b+4>>2];da(e,4619,n)|0;o[v>>2]=14;o[v+4>>2]=0;o[n>>2]=o[v>>2];o[n+4>>2]=o[v+4>>2];Ma(e,4629,n)|0;o[m>>2]=1;o[m+4>>2]=0;o[n>>2]=o[m>>2];o[n+4>>2]=o[m+4>>2];xa(e,4637,n)|0;o[p>>2]=4;o[p+4>>2]=0;o[n>>2]=o[p>>2];o[n+4>>2]=o[p+4>>2];ya(e,4653,n)|0;o[d>>2]=5;o[d+4>>2]=0;o[n>>2]=o[d>>2];o[n+4>>2]=o[d+4>>2];ya(e,4669,n)|0;o[f>>2]=6;o[f+4>>2]=0;o[n>>2]=o[f>>2];o[n+4>>2]=o[f+4>>2];ya(e,4686,n)|0;o[c>>2]=7;o[c+4>>2]=0;o[n>>2]=o[c>>2];o[n+4>>2]=o[c+4>>2];ya(e,4701,n)|0;o[s>>2]=8;o[s+4>>2]=0;o[n>>2]=o[s>>2];o[n+4>>2]=o[s+4>>2];ya(e,4719,n)|0;o[l>>2]=9;o[l+4>>2]=0;o[n>>2]=o[l>>2];o[n+4>>2]=o[l+4>>2];ya(e,4736,n)|0;o[a>>2]=21;o[a+4>>2]=0;o[n>>2]=o[a>>2];o[n+4>>2]=o[a+4>>2];Aa(e,4754,n)|0;o[u>>2]=2;o[u+4>>2]=0;o[n>>2]=o[u>>2];o[n+4>>2]=o[u+4>>2];Da(e,4772,n)|0;o[i>>2]=3;o[i+4>>2]=0;o[n>>2]=o[i>>2];o[n+4>>2]=o[i+4>>2];Da(e,4790,n)|0;o[r>>2]=4;o[r+4>>2]=0;o[n>>2]=o[r>>2];o[n+4>>2]=o[r+4>>2];Da(e,4808,n)|0;h=t;return}function la(e,t){e=e|0;t=t|0;var n=0;n=Nv()|0;o[e>>2]=n;Iv(n,t);cD(o[e>>2]|0);return}function sa(e,t,n){e=e|0;t=t|0;n=n|0;bv(e,Oa(t)|0,n,0);return e|0}function ca(e,t,n){e=e|0;t=t|0;n=n|0;Xm(e,Oa(t)|0,n,0);return e|0}function fa(e,t,n){e=e|0;t=t|0;n=n|0;Rm(e,Oa(t)|0,n,0);return e|0}function da(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];hm(e,t,i);h=r;return e|0}function pa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Vh(e,t,i);h=r;return e|0}function ha(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Sh(e,t,i);h=r;return e|0}function ma(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];lh(e,t,i);h=r;return e|0}function va(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];qp(e,t,i);h=r;return e|0}function ba(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Cp(e,t,i);h=r;return e|0}function ga(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];op(e,t,i);h=r;return e|0}function _a(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Td(e,t,i);h=r;return e|0}function ya(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ud(e,t,i);h=r;return e|0}function Da(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Wf(e,t,i);h=r;return e|0}function wa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];wf(e,t,i);h=r;return e|0}function Ea(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Zc(e,t,i);h=r;return e|0}function Ca(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Rc(e,t,i);h=r;return e|0}function Ta(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];hc(e,t,i);h=r;return e|0}function ka(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Gs(e,t,i);h=r;return e|0}function Sa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ds(e,t,i);h=r;return e|0}function Ma(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ts(e,t,i);h=r;return e|0}function xa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Al(e,t,i);h=r;return e|0}function Aa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Pa(e,t,i);h=r;return e|0}function Pa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ra(e,n,i,1);h=r;return}function Oa(e){e=e|0;return e|0}function Ra(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Na()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ia(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Fa(u,r)|0,r);h=i;return}function Na(){var e=0,t=0;if(!(r[7616]|0)){Ka(9136);Fe(24,9136,b|0)|0;t=7616;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9136)|0)){e=9136;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ka(9136)}return 9136}function Ia(e){e=e|0;return 0}function Fa(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Na()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];za(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{qa(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Ba(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;a=h;h=h+32|0;p=a+24|0;d=a+20|0;s=a+16|0;f=a+12|0;c=a+8|0;l=a+4|0;m=a;o[d>>2]=t;o[s>>2]=n;o[f>>2]=r;o[c>>2]=i;o[l>>2]=u;u=e+28|0;o[m>>2]=o[u>>2];o[p>>2]=o[m>>2];La(e+24|0,p,d,f,c,s,l)|0;o[u>>2]=o[o[u>>2]>>2];h=a;return}function La(e,t,n,r,i,u,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;a=a|0;e=Ua(t)|0;t=YS(24)|0;ja(t+4|0,o[n>>2]|0,o[r>>2]|0,o[i>>2]|0,o[u>>2]|0,o[a>>2]|0);o[t>>2]=o[e>>2];o[e>>2]=t;return t|0}function Ua(e){e=e|0;return o[e>>2]|0}function ja(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=u;return}function Wa(e,t){e=e|0;t=t|0;return t|e|0}function za(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function qa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Ha(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ga(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];za(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Va(e,l);Ya(l);h=c;return}}function Ha(e){e=e|0;return 357913941}function Ga(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Va(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ya(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Ka(e){e=e|0;Qa(e);return}function $a(e){e=e|0;Ja(e+24|0);return}function Xa(e){e=e|0;return o[e>>2]|0}function Ja(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Qa(e){e=e|0;var t=0;t=Za()|0;nl(e,2,3,t,el()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Za(){return 9228}function el(){return 1140}function tl(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=rl(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=il(t,r)|0;h=n;return t|0}function nl(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=u;return}function rl(e){e=e|0;return(o[(Na()|0)+24>>2]|0)+(e*12|0)|0}function il(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+48|0;r=i;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;mx[n&31](r,e);r=ol(r)|0;h=i;return r|0}function ol(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(ul()|0)|0;if(!r)e=dl(e)|0;else{ll(t,r);sl(n,t);cl(e,n);e=fl(t)|0}h=i;return e|0}function ul(){var e=0;if(!(r[7632]|0)){El(9184);Fe(25,9184,b|0)|0;e=7632;o[e>>2]=1;o[e+4>>2]=0}return 9184}function al(e){e=e|0;return o[e+36>>2]|0}function ll(e,t){e=e|0;t=t|0;o[e>>2]=t;o[e+4>>2]=e;o[e+8>>2]=0;return}function sl(e,t){e=e|0;t=t|0;o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=0;return}function cl(e,t){e=e|0;t=t|0;bl(t,e,e+8|0,e+16|0,e+24|0,e+32|0,e+40|0)|0;return}function fl(e){e=e|0;return o[(o[e+4>>2]|0)+8>>2]|0}function dl(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0;s=h;h=h+16|0;n=s+4|0;r=s;i=jE(8)|0;u=i;a=YS(48)|0;l=a;t=l+48|0;do{o[l>>2]=o[e>>2];l=l+4|0;e=e+4|0}while((l|0)<(t|0));t=u+4|0;o[t>>2]=a;l=YS(8)|0;a=o[t>>2]|0;o[r>>2]=0;o[n>>2]=o[r>>2];pl(l,a,n);o[i>>2]=l;h=s;return u|0}function pl(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1092;o[n+12>>2]=t;o[e+4>>2]=n;return}function hl(e){e=e|0;WS(e);$S(e);return}function ml(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function vl(e){e=e|0;$S(e);return}function bl(e,t,n,r,i,u,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;a=a|0;u=gl(o[e>>2]|0,t,n,r,i,u,a)|0;a=e+4|0;o[(o[a>>2]|0)+8>>2]=u;return o[(o[a>>2]|0)+8>>2]|0}function gl(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;u=u|0;var a=0,l=0;a=h;h=h+16|0;l=a;Ek(l);e=wu(e)|0;u=_l(e,+c[t>>3],+c[n>>3],+c[r>>3],+c[i>>3],+c[o>>3],+c[u>>3])|0;Tk(l);h=a;return u|0}function _l(e,t,n,r,i,o,u){e=e|0;t=+t;n=+n;r=+r;i=+i;o=+o;u=+u;var a=0;a=Tu(yl()|0)|0;t=+ku(t);n=+ku(n);r=+ku(r);i=+ku(i);o=+ku(o);return Se(0,a|0,e|0,+t,+n,+r,+i,+o,+ +ku(u))|0}function yl(){var e=0;if(!(r[7624]|0)){Dl(9172);e=7624;o[e>>2]=1;o[e+4>>2]=0}return 9172}function Dl(e){e=e|0;Bu(e,wl()|0,6);return}function wl(){return 1112}function El(e){e=e|0;xl(e);return}function Cl(e){e=e|0;Tl(e+24|0);kl(e+16|0);return}function Tl(e){e=e|0;Ml(e);return}function kl(e){e=e|0;Sl(e);return}function Sl(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function Ml(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function xl(e){e=e|0;var t=0;o[e+16>>2]=0;o[e+20>>2]=0;t=e+24|0;o[t>>2]=0;o[e+28>>2]=t;o[e+36>>2]=0;r[e+40>>0]=0;r[e+41>>0]=0;return}function Al(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Pl(e,n,i,0);h=r;return}function Pl(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ol()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Rl(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Nl(u,r)|0,r);h=i;return}function Ol(){var e=0,t=0;if(!(r[7640]|0)){Wl(9232);Fe(26,9232,b|0)|0;t=7640;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9232)|0)){e=9232;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Wl(9232)}return 9232}function Rl(e){e=e|0;return 0}function Nl(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ol()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Il(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Fl(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Il(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Fl(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Bl(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ll(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Il(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Ul(e,l);jl(l);h=c;return}}function Bl(e){e=e|0;return 357913941}function Ll(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Ul(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function jl(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Wl(e){e=e|0;Hl(e);return}function zl(e){e=e|0;ql(e+24|0);return}function ql(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Hl(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Gl()|0,3);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Gl(){return 1144}function Vl(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+16|0;a=u+8|0;l=u;s=Yl(e)|0;e=o[s+4>>2]|0;o[l>>2]=o[s>>2];o[l+4>>2]=e;o[a>>2]=o[l>>2];o[a+4>>2]=o[l+4>>2];Kl(t,a,n,r,i);h=u;return}function Yl(e){e=e|0;return(o[(Ol()|0)+24>>2]|0)+(e*12|0)|0}function Kl(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;var u=0,a=0,l=0,s=0,c=0;c=h;h=h+16|0;a=c+2|0;l=c+1|0;s=c;u=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)u=o[(o[e>>2]|0)+u>>2]|0;$l(a,n);n=+Xl(a,n);$l(l,r);r=+Xl(l,r);Jl(s,i);s=Ql(s,i)|0;bx[u&1](e,n,r,s);h=c;return}function $l(e,t){e=e|0;t=+t;return}function Xl(e,t){e=e|0;t=+t;return+ +es(t)}function Jl(e,t){e=e|0;t=t|0;return}function Ql(e,t){e=e|0;t=t|0;return Zl(t)|0}function Zl(e){e=e|0;return e|0}function es(e){e=+e;return+e}function ts(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ns(e,n,i,1);h=r;return}function ns(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=rs()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=is(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,os(u,r)|0,r);h=i;return}function rs(){var e=0,t=0;if(!(r[7648]|0)){ds(9268);Fe(27,9268,b|0)|0;t=7648;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9268)|0)){e=9268;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));ds(9268)}return 9268}function is(e){e=e|0;return 0}function os(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=rs()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];us(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{as(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function us(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function as(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=ls(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;ss(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];us(u,r,n);o[s>>2]=(o[s>>2]|0)+12;cs(e,l);fs(l);h=c;return}}function ls(e){e=e|0;return 357913941}function ss(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function cs(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function fs(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function ds(e){e=e|0;ms(e);return}function ps(e){e=e|0;hs(e+24|0);return}function hs(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function ms(e){e=e|0;var t=0;t=Za()|0;nl(e,2,4,t,vs()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function vs(){return 1160}function bs(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=gs(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=_s(t,r)|0;h=n;return t|0}function gs(e){e=e|0;return(o[(rs()|0)+24>>2]|0)+(e*12|0)|0}function _s(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return ys(vx[n&31](e)|0)|0}function ys(e){e=e|0;return e&1|0}function Ds(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ws(e,n,i,0);h=r;return}function ws(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Es()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Cs(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Ts(u,r)|0,r);h=i;return}function Es(){var e=0,t=0;if(!(r[7656]|0)){Os(9304);Fe(28,9304,b|0)|0;t=7656;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9304)|0)){e=9304;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Os(9304)}return 9304}function Cs(e){e=e|0;return 0}function Ts(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Es()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];ks(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Ss(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function ks(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Ss(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Ms(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;xs(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];ks(u,r,n);o[s>>2]=(o[s>>2]|0)+12;As(e,l);Ps(l);h=c;return}}function Ms(e){e=e|0;return 357913941}function xs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function As(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ps(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Os(e){e=e|0;Is(e);return}function Rs(e){e=e|0;Ns(e+24|0);return}function Ns(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Is(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,Fs()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Fs(){return 1164}function Bs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Ls(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Us(t,i,n);h=r;return}function Ls(e){e=e|0;return(o[(Es()|0)+24>>2]|0)+(e*12|0)|0}function Us(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;js(i,n);n=Ws(i,n)|0;mx[r&31](e,n);zs(i);h=u;return}function js(e,t){e=e|0;t=t|0;qs(e,t);return}function Ws(e,t){e=e|0;t=t|0;return e|0}function zs(e){e=e|0;Qi(e);return}function qs(e,t){e=e|0;t=t|0;Hs(e,t);return}function Hs(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function Gs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Vs(e,n,i,0);h=r;return}function Vs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ys()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ks(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,$s(u,r)|0,r);h=i;return}function Ys(){var e=0,t=0;if(!(r[7664]|0)){nc(9340);Fe(29,9340,b|0)|0;t=7664;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9340)|0)){e=9340;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));nc(9340)}return 9340}function Ks(e){e=e|0;return 0}function $s(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ys()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Xs(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Js(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Xs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Js(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Qs(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Zs(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Xs(u,r,n);o[s>>2]=(o[s>>2]|0)+12;ec(e,l);tc(l);h=c;return}}function Qs(e){e=e|0;return 357913941}function Zs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function ec(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function tc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function nc(e){e=e|0;oc(e);return}function rc(e){e=e|0;ic(e+24|0);return}function ic(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function oc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,4,t,uc()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function uc(){return 1180}function ac(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=lc(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=sc(t,i,n)|0;h=r;return n|0}function lc(e){e=e|0;return(o[(Ys()|0)+24>>2]|0)+(e*12|0)|0}function sc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;cc(i,n);i=fc(i,n)|0;i=dc(Ex[r&15](e,i)|0)|0;h=u;return i|0}function cc(e,t){e=e|0;t=t|0;return}function fc(e,t){e=e|0;t=t|0;return pc(t)|0}function dc(e){e=e|0;return e|0}function pc(e){e=e|0;return e|0}function hc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];mc(e,n,i,0);h=r;return}function mc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=vc()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=bc(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,gc(u,r)|0,r);h=i;return}function vc(){var e=0,t=0;if(!(r[7672]|0)){Tc(9376);Fe(30,9376,b|0)|0;t=7672;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9376)|0)){e=9376;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Tc(9376)}return 9376}function bc(e){e=e|0;return 0}function gc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=vc()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];_c(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{yc(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function _c(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function yc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Dc(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;wc(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];_c(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Ec(e,l);Cc(l);h=c;return}}function Dc(e){e=e|0;return 357913941}function wc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Ec(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Cc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Tc(e){e=e|0;Mc(e);return}function kc(e){e=e|0;Sc(e+24|0);return}function Sc(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Mc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,xc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function xc(){return 1196}function Ac(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Pc(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=Oc(t,r)|0;h=n;return t|0}function Pc(e){e=e|0;return(o[(vc()|0)+24>>2]|0)+(e*12|0)|0}function Oc(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return dc(vx[n&31](e)|0)|0}function Rc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Nc(e,n,i,1);h=r;return}function Nc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ic()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Fc(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Bc(u,r)|0,r);h=i;return}function Ic(){var e=0,t=0;if(!(r[7680]|0)){Hc(9412);Fe(31,9412,b|0)|0;t=7680;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9412)|0)){e=9412;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Hc(9412)}return 9412}function Fc(e){e=e|0;return 0}function Bc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ic()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Lc(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Uc(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Lc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Uc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=jc(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Wc(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Lc(u,r,n);o[s>>2]=(o[s>>2]|0)+12;zc(e,l);qc(l);h=c;return}}function jc(e){e=e|0;return 357913941}function Wc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function zc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function qc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Hc(e){e=e|0;Yc(e);return}function Gc(e){e=e|0;Vc(e+24|0);return}function Vc(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Yc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,Kc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Kc(){return 1200}function $c(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Xc(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=Jc(t,r)|0;h=n;return t|0}function Xc(e){e=e|0;return(o[(Ic()|0)+24>>2]|0)+(e*12|0)|0}function Jc(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return Qc(vx[n&31](e)|0)|0}function Qc(e){e=e|0;return e|0}function Zc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ef(e,n,i,0);h=r;return}function ef(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=tf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=nf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,rf(u,r)|0,r);h=i;return}function tf(){var e=0,t=0;if(!(r[7688]|0)){ff(9448);Fe(32,9448,b|0)|0;t=7688;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9448)|0)){e=9448;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));ff(9448)}return 9448}function nf(e){e=e|0;return 0}function rf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=tf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];of(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{uf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function of(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function uf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=af(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;lf(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];of(u,r,n);o[s>>2]=(o[s>>2]|0)+12;sf(e,l);cf(l);h=c;return}}function af(e){e=e|0;return 357913941}function lf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function sf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function cf(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function ff(e){e=e|0;hf(e);return}function df(e){e=e|0;pf(e+24|0);return}function pf(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function hf(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,mf()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function mf(){return 1204}function vf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=bf(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];gf(t,i,n);h=r;return}function bf(e){e=e|0;return(o[(tf()|0)+24>>2]|0)+(e*12|0)|0}function gf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;_f(i,n);i=yf(i,n)|0;mx[r&31](e,i);h=u;return}function _f(e,t){e=e|0;t=t|0;return}function yf(e,t){e=e|0;t=t|0;return Df(t)|0}function Df(e){e=e|0;return e|0}function wf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ef(e,n,i,0);h=r;return}function Ef(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Cf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Tf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,kf(u,r)|0,r);h=i;return}function Cf(){var e=0,t=0;if(!(r[7696]|0)){Rf(9484);Fe(33,9484,b|0)|0;t=7696;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9484)|0)){e=9484;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Rf(9484)}return 9484}function Tf(e){e=e|0;return 0}function kf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Cf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Sf(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Mf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Sf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Mf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=xf(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Af(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Sf(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Pf(e,l);Of(l);h=c;return}}function xf(e){e=e|0;return 357913941}function Af(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Pf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Of(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Rf(e){e=e|0;Ff(e);return}function Nf(e){e=e|0;If(e+24|0);return}function If(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Ff(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Bf()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Bf(){return 1212}function Lf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=Uf(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];jf(t,u,n,r);h=i;return}function Uf(e){e=e|0;return(o[(Cf()|0)+24>>2]|0)+(e*12|0)|0}function jf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;_f(u,n);u=yf(u,n)|0;cc(a,r);a=fc(a,r)|0;Px[i&15](e,u,a);h=l;return}function Wf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];zf(e,n,i,1);h=r;return}function zf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=qf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Hf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Gf(u,r)|0,r);h=i;return}function qf(){var e=0,t=0;if(!(r[7704]|0)){Qf(9520);Fe(34,9520,b|0)|0;t=7704;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9520)|0)){e=9520;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Qf(9520)}return 9520}function Hf(e){e=e|0;return 0}function Gf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=qf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Vf(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Yf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Vf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Yf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Kf(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;$f(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Vf(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Xf(e,l);Jf(l);h=c;return}}function Kf(e){e=e|0;return 357913941}function $f(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Xf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Jf(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Qf(e){e=e|0;td(e);return}function Zf(e){e=e|0;ed(e+24|0);return}function ed(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function td(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,nd()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function nd(){return 1224}function rd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0.0,i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=id(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];r=+od(t,u,n);h=i;return+r}function id(e){e=e|0;return(o[(qf()|0)+24>>2]|0)+(e*12|0)|0}function od(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0.0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;a=+Nu(+kx[r&7](e,i));h=u;return+a}function ud(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ad(e,n,i,1);h=r;return}function ad(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ld()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=sd(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,cd(u,r)|0,r);h=i;return}function ld(){var e=0,t=0;if(!(r[7712]|0)){bd(9556);Fe(35,9556,b|0)|0;t=7712;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9556)|0)){e=9556;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));bd(9556)}return 9556}function sd(e){e=e|0;return 0}function cd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ld()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];fd(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{dd(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function fd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function dd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=pd(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;hd(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];fd(u,r,n);o[s>>2]=(o[s>>2]|0)+12;md(e,l);vd(l);h=c;return}}function pd(e){e=e|0;return 357913941}function hd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function md(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function vd(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function bd(e){e=e|0;yd(e);return}function gd(e){e=e|0;_d(e+24|0);return}function _d(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function yd(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,Dd()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Dd(){return 1232}function wd(e,t){e=e|0;t=t|0;var n=0.0,r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Ed(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=+Cd(t,i);h=r;return+n}function Ed(e){e=e|0;return(o[(ld()|0)+24>>2]|0)+(e*12|0)|0}function Cd(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return+ +Nu(+Dx[n&15](e))}function Td(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];kd(e,n,i,1);h=r;return}function kd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Sd()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Md(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,xd(u,r)|0,r);h=i;return}function Sd(){var e=0,t=0;if(!(r[7720]|0)){Fd(9592);Fe(36,9592,b|0)|0;t=7720;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9592)|0)){e=9592;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Fd(9592)}return 9592}function Md(e){e=e|0;return 0}function xd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Sd()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Ad(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Pd(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Ad(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Pd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Od(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Rd(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Ad(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Nd(e,l);Id(l);h=c;return}}function Od(e){e=e|0;return 357913941}function Rd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Nd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Id(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Fd(e){e=e|0;Ud(e);return}function Bd(e){e=e|0;Ld(e+24|0);return}function Ld(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Ud(e){e=e|0;var t=0;t=Za()|0;nl(e,2,7,t,jd()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function jd(){return 1276}function Wd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=zd(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=qd(t,r)|0;h=n;return t|0}function zd(e){e=e|0;return(o[(Sd()|0)+24>>2]|0)+(e*12|0)|0}function qd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+16|0;r=i;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;mx[n&31](r,e);r=Hd(r)|0;h=i;return r|0}function Hd(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(Gd()|0)|0;if(!r)e=Yd(e)|0;else{ll(t,r);sl(n,t);Vd(e,n);e=fl(t)|0}h=i;return e|0}function Gd(){var e=0;if(!(r[7736]|0)){ip(9640);Fe(25,9640,b|0)|0;e=7736;o[e>>2]=1;o[e+4>>2]=0}return 9640}function Vd(e,t){e=e|0;t=t|0;Qd(t,e,e+8|0)|0;return}function Yd(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(16)|0;o[l>>2]=o[e>>2];o[l+4>>2]=o[e+4>>2];o[l+8>>2]=o[e+8>>2];o[l+12>>2]=o[e+12>>2];u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];Kd(e,u,i);o[r>>2]=e;h=n;return t|0}function Kd(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1244;o[n+12>>2]=t;o[e+4>>2]=n;return}function $d(e){e=e|0;WS(e);$S(e);return}function Xd(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function Jd(e){e=e|0;$S(e);return}function Qd(e,t,n){e=e|0;t=t|0;n=n|0;t=Zd(o[e>>2]|0,t,n)|0;n=e+4|0;o[(o[n>>2]|0)+8>>2]=t;return o[(o[n>>2]|0)+8>>2]|0}function Zd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Ek(i);e=wu(e)|0;n=ep(e,o[t>>2]|0,+c[n>>3])|0;Tk(i);h=r;return n|0}function ep(e,t,n){e=e|0;t=t|0;n=+n;var r=0;r=Tu(tp()|0)|0;t=Su(t)|0;return Me(0,r|0,e|0,t|0,+ +ku(n))|0}function tp(){var e=0;if(!(r[7728]|0)){np(9628);e=7728;o[e>>2]=1;o[e+4>>2]=0}return 9628}function np(e){e=e|0;Bu(e,rp()|0,2);return}function rp(){return 1264}function ip(e){e=e|0;xl(e);return}function op(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];up(e,n,i,1);h=r;return}function up(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ap()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=lp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,sp(u,r)|0,r);h=i;return}function ap(){var e=0,t=0;if(!(r[7744]|0)){vp(9684);Fe(37,9684,b|0)|0;t=7744;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9684)|0)){e=9684;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));vp(9684)}return 9684}function lp(e){e=e|0;return 0}function sp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ap()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];cp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{fp(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function cp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function fp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=dp(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;pp(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];cp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;hp(e,l);mp(l);h=c;return}}function dp(e){e=e|0;return 357913941}function pp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function hp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function mp(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function vp(e){e=e|0;_p(e);return}function bp(e){e=e|0;gp(e+24|0);return}function gp(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function _p(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,yp()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function yp(){return 1280}function Dp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=wp(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=Ep(t,i,n)|0;h=r;return n|0}function wp(e){e=e|0;return(o[(ap()|0)+24>>2]|0)+(e*12|0)|0}function Ep(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;a=h;h=h+32|0;i=a;u=a+16|0;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(u,n);u=Ql(u,n)|0;Px[r&15](i,e,u);u=Hd(i)|0;h=a;return u|0}function Cp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Tp(e,n,i,1);h=r;return}function Tp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=kp()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Sp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Mp(u,r)|0,r);h=i;return}function kp(){var e=0,t=0;if(!(r[7752]|0)){Ip(9720);Fe(38,9720,b|0)|0;t=7752;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9720)|0)){e=9720;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ip(9720)}return 9720}function Sp(e){e=e|0;return 0}function Mp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=kp()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];xp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Ap(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function xp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Ap(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Pp(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Op(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];xp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Rp(e,l);Np(l);h=c;return}}function Pp(e){e=e|0;return 357913941}function Op(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Rp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Np(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Ip(e){e=e|0;Lp(e);return}function Fp(e){e=e|0;Bp(e+24|0);return}function Bp(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Lp(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,Up()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Up(){return 1288}function jp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Wp(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=zp(t,r)|0;h=n;return t|0}function Wp(e){e=e|0;return(o[(kp()|0)+24>>2]|0)+(e*12|0)|0}function zp(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return Ru(vx[n&31](e)|0)|0}function qp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Hp(e,n,i,0);h=r;return}function Hp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Gp()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Vp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Yp(u,r)|0,r);h=i;return}function Gp(){var e=0,t=0;if(!(r[7760]|0)){eh(9756);Fe(39,9756,b|0)|0;t=7760;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9756)|0)){e=9756;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));eh(9756)}return 9756}function Vp(e){e=e|0;return 0}function Yp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Gp()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Kp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{$p(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Kp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function $p(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Xp(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Jp(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Kp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Qp(e,l);Zp(l);h=c;return}}function Xp(e){e=e|0;return 357913941}function Jp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Qp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Zp(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function eh(e){e=e|0;rh(e);return}function th(e){e=e|0;nh(e+24|0);return}function nh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function rh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,ih()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ih(){return 1292}function oh(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=uh(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ah(t,i,n);h=r;return}function uh(e){e=e|0;return(o[(Gp()|0)+24>>2]|0)+(e*12|0)|0}function ah(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;$l(i,n);n=+Xl(i,n);dx[r&31](e,n);h=u;return}function lh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];sh(e,n,i,0);h=r;return}function sh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ch()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=fh(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,dh(u,r)|0,r);h=i;return}function ch(){var e=0,t=0;if(!(r[7768]|0)){_h(9792);Fe(40,9792,b|0)|0;t=7768;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9792)|0)){e=9792;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));_h(9792)}return 9792}function fh(e){e=e|0;return 0}function dh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ch()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];ph(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{hh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function ph(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function hh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=mh(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;vh(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];ph(u,r,n);o[s>>2]=(o[s>>2]|0)+12;bh(e,l);gh(l);h=c;return}}function mh(e){e=e|0;return 357913941}function vh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function bh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function gh(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function _h(e){e=e|0;wh(e);return}function yh(e){e=e|0;Dh(e+24|0);return}function Dh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function wh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Eh()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Eh(){return 1300}function Ch(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=Th(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];kh(t,u,n,r);h=i;return}function Th(e){e=e|0;return(o[(ch()|0)+24>>2]|0)+(e*12|0)|0}function kh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;Jl(u,n);u=Ql(u,n)|0;$l(a,r);r=+Xl(a,r);Rx[i&15](e,u,r);h=l;return}function Sh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Mh(e,n,i,0);h=r;return}function Mh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=xh()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ah(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Ph(u,r)|0,r);h=i;return}function xh(){var e=0,t=0;if(!(r[7776]|0)){Lh(9828);Fe(41,9828,b|0)|0;t=7776;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9828)|0)){e=9828;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Lh(9828)}return 9828}function Ah(e){e=e|0;return 0}function Ph(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=xh()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Oh(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Rh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Oh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Rh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Nh(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ih(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Oh(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Fh(e,l);Bh(l);h=c;return}}function Nh(e){e=e|0;return 357913941}function Ih(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Fh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Bh(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Lh(e){e=e|0;Wh(e);return}function Uh(e){e=e|0;jh(e+24|0);return}function jh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Wh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,7,t,zh()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function zh(){return 1312}function qh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Hh(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Gh(t,i,n);h=r;return}function Hh(e){e=e|0;return(o[(xh()|0)+24>>2]|0)+(e*12|0)|0}function Gh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;mx[r&31](e,i);h=u;return}function Vh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Yh(e,n,i,0);h=r;return}function Yh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Kh()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=$h(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Xh(u,r)|0,r);h=i;return}function Kh(){var e=0,t=0;if(!(r[7784]|0)){rm(9864);Fe(42,9864,b|0)|0;t=7784;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9864)|0)){e=9864;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));rm(9864)}return 9864}function $h(e){e=e|0;return 0}function Xh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Kh()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Jh(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Qh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Jh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Qh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Zh(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;em(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Jh(u,r,n);o[s>>2]=(o[s>>2]|0)+12;tm(e,l);nm(l);h=c;return}}function Zh(e){e=e|0;return 357913941}function em(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function tm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function nm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function rm(e){e=e|0;um(e);return}function im(e){e=e|0;om(e+24|0);return}function om(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function um(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,am()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function am(){return 1320}function lm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=sm(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];cm(t,i,n);h=r;return}function sm(e){e=e|0;return(o[(Kh()|0)+24>>2]|0)+(e*12|0)|0}function cm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;fm(i,n);i=dm(i,n)|0;mx[r&31](e,i);h=u;return}function fm(e,t){e=e|0;t=t|0;return}function dm(e,t){e=e|0;t=t|0;return pm(t)|0}function pm(e){e=e|0;return e|0}function hm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];mm(e,n,i,0);h=r;return}function mm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=vm()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=bm(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,gm(u,r)|0,r);h=i;return}function vm(){var e=0,t=0;if(!(r[7792]|0)){Tm(9900);Fe(43,9900,b|0)|0;t=7792;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9900)|0)){e=9900;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Tm(9900)}return 9900}function bm(e){e=e|0;return 0}function gm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=vm()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];_m(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{ym(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function _m(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function ym(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Dm(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;wm(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];_m(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Em(e,l);Cm(l);h=c;return}}function Dm(e){e=e|0;return 357913941}function wm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Em(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Cm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Tm(e){e=e|0;Mm(e);return}function km(e){e=e|0;Sm(e+24|0);return}function Sm(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Mm(e){e=e|0;var t=0;t=Za()|0;nl(e,2,22,t,xm()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function xm(){return 1344}function Am(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Pm(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];Om(t,r);h=n;return}function Pm(e){e=e|0;return(o[(vm()|0)+24>>2]|0)+(e*12|0)|0}function Om(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;hx[n&127](e);return}function Rm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=Nm()|0;e=Im(n)|0;Ba(u,t,i,e,Fm(n,r)|0,r);return}function Nm(){var e=0,t=0;if(!(r[7800]|0)){qm(9936);Fe(44,9936,b|0)|0;t=7800;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9936)|0)){e=9936;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));qm(9936)}return 9936}function Im(e){e=e|0;return e|0}function Fm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Nm()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Bm(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Lm(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Bm(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Lm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Um(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;jm(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Bm(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Wm(e,i);zm(i);h=l;return}}function Um(e){e=e|0;return 536870911}function jm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Wm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function zm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function qm(e){e=e|0;Vm(e);return}function Hm(e){e=e|0;Gm(e+24|0);return}function Gm(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Vm(e){e=e|0;var t=0;t=Za()|0;nl(e,1,23,t,mf()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ym(e,t){e=e|0;t=t|0;$m(o[(Km(e)|0)>>2]|0,t);return}function Km(e){e=e|0;return(o[(Nm()|0)+24>>2]|0)+(e<<3)|0}function $m(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;_f(r,t);t=yf(r,t)|0;hx[e&127](t);h=n;return}function Xm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=Jm()|0;e=Qm(n)|0;Ba(u,t,i,e,Zm(n,r)|0,r);return}function Jm(){var e=0,t=0;if(!(r[7808]|0)){uv(9972);Fe(45,9972,b|0)|0;t=7808;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9972)|0)){e=9972;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));uv(9972)}return 9972}function Qm(e){e=e|0;return e|0}function Zm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Jm()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){ev(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{tv(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function ev(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function tv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=nv(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;rv(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;ev(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;iv(e,i);ov(i);h=l;return}}function nv(e){e=e|0;return 536870911}function rv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function iv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function ov(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function uv(e){e=e|0;sv(e);return}function av(e){e=e|0;lv(e+24|0);return}function lv(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function sv(e){e=e|0;var t=0;t=Za()|0;nl(e,1,9,t,cv()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function cv(){return 1348}function fv(e,t){e=e|0;t=t|0;return pv(o[(dv(e)|0)>>2]|0,t)|0}function dv(e){e=e|0;return(o[(Jm()|0)+24>>2]|0)+(e<<3)|0}function pv(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;hv(r,t);t=mv(r,t)|0;t=dc(vx[e&31](t)|0)|0;h=n;return t|0}function hv(e,t){e=e|0;t=t|0;return}function mv(e,t){e=e|0;t=t|0;return vv(t)|0}function vv(e){e=e|0;return e|0}function bv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=gv()|0;e=_v(n)|0;Ba(u,t,i,e,yv(n,r)|0,r);return}function gv(){var e=0,t=0;if(!(r[7816]|0)){Sv(10008);Fe(46,10008,b|0)|0;t=7816;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10008)|0)){e=10008;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Sv(10008)}return 10008}function _v(e){e=e|0;return e|0}function yv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=gv()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Dv(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{wv(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Dv(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function wv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Ev(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;Cv(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Dv(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Tv(e,i);kv(i);h=l;return}}function Ev(e){e=e|0;return 536870911}function Cv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Tv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function kv(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function Sv(e){e=e|0;Av(e);return}function Mv(e){e=e|0;xv(e+24|0);return}function xv(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Av(e){e=e|0;var t=0;t=Za()|0;nl(e,1,15,t,xc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Pv(e){e=e|0;return Rv(o[(Ov(e)|0)>>2]|0)|0}function Ov(e){e=e|0;return(o[(gv()|0)+24>>2]|0)+(e<<3)|0}function Rv(e){e=e|0;return dc(Sx[e&7]()|0)|0}function Nv(){var e=0;if(!(r[7832]|0)){Hv(10052);Fe(25,10052,b|0)|0;e=7832;o[e>>2]=1;o[e+4>>2]=0}return 10052}function Iv(e,t){e=e|0;t=t|0;o[e>>2]=Fv()|0;o[e+4>>2]=Bv()|0;o[e+12>>2]=t;o[e+8>>2]=Lv()|0;o[e+32>>2]=2;return}function Fv(){return 11709}function Bv(){return 1188}function Lv(){return zv()|0}function Uv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Wv(n);$S(n)}}else if(t|0){Ji(t);$S(t)}return}function jv(e,t){e=e|0;t=t|0;return t&e|0}function Wv(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function zv(){var e=0;if(!(r[7824]|0)){o[2511]=qv()|0;o[2512]=0;e=7824;o[e>>2]=1;o[e+4>>2]=0}return 10044}function qv(){return 0}function Hv(e){e=e|0;xl(e);return}function Gv(e){e=e|0;var t=0,n=0,r=0,i=0,u=0;t=h;h=h+32|0;n=t+24|0;u=t+16|0;i=t+8|0;r=t;Vv(e,4827);Yv(e,4834,3)|0;Kv(e,3682,47)|0;o[u>>2]=9;o[u+4>>2]=0;o[n>>2]=o[u>>2];o[n+4>>2]=o[u+4>>2];$v(e,4841,n)|0;o[i>>2]=1;o[i+4>>2]=0;o[n>>2]=o[i>>2];o[n+4>>2]=o[i+4>>2];Xv(e,4871,n)|0;o[r>>2]=10;o[r+4>>2]=0;o[n>>2]=o[r>>2];o[n+4>>2]=o[r+4>>2];Jv(e,4891,n)|0;h=t;return}function Vv(e,t){e=e|0;t=t|0;var n=0;n=Hg()|0;o[e>>2]=n;Gg(n,t);cD(o[e>>2]|0);return}function Yv(e,t,n){e=e|0;t=t|0;n=n|0;Tg(e,Oa(t)|0,n,0);return e|0}function Kv(e,t,n){e=e|0;t=t|0;n=n|0;ag(e,Oa(t)|0,n,0);return e|0}function $v(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ub(e,t,i);h=r;return e|0}function Xv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];bb(e,t,i);h=r;return e|0}function Jv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Qv(e,t,i);h=r;return e|0}function Qv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Zv(e,n,i,1);h=r;return}function Zv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=eb()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=tb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,nb(u,r)|0,r);h=i;return}function eb(){var e=0,t=0;if(!(r[7840]|0)){sb(10100);Fe(48,10100,b|0)|0;t=7840;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10100)|0)){e=10100;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));sb(10100)}return 10100}function tb(e){e=e|0;return 0}function nb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=eb()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];rb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{ib(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function rb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function ib(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=ob(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;ub(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];rb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;ab(e,l);lb(l);h=c;return}}function ob(e){e=e|0;return 357913941}function ub(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function ab(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function lb(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function sb(e){e=e|0;db(e);return}function cb(e){e=e|0;fb(e+24|0);return}function fb(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function db(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,pb()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function pb(){return 1364}function hb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=mb(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=vb(t,i,n)|0;h=r;return n|0}function mb(e){e=e|0;return(o[(eb()|0)+24>>2]|0)+(e*12|0)|0}function vb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;i=ys(Ex[r&15](e,i)|0)|0;h=u;return i|0}function bb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];gb(e,n,i,0);h=r;return}function gb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=_b()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=yb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Db(u,r)|0,r);h=i;return}function _b(){var e=0,t=0;if(!(r[7848]|0)){Mb(10136);Fe(49,10136,b|0)|0;t=7848;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10136)|0)){e=10136;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Mb(10136)}return 10136}function yb(e){e=e|0;return 0}function Db(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=_b()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];wb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Eb(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function wb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Eb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Cb(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Tb(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];wb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;kb(e,l);Sb(l);h=c;return}}function Cb(e){e=e|0;return 357913941}function Tb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function kb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Sb(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Mb(e){e=e|0;Pb(e);return}function xb(e){e=e|0;Ab(e+24|0);return}function Ab(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Pb(e){e=e|0;var t=0;t=Za()|0;nl(e,2,9,t,Ob()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ob(){return 1372}function Rb(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Nb(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ib(t,i,n);h=r;return}function Nb(e){e=e|0;return(o[(_b()|0)+24>>2]|0)+(e*12|0)|0}function Ib(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=ft;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Fb(i,n);a=K(Bb(i,n));fx[r&1](e,a);h=u;return}function Fb(e,t){e=e|0;t=+t;return}function Bb(e,t){e=e|0;t=+t;return K(Lb(t))}function Lb(e){e=+e;return K(e)}function Ub(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];jb(e,n,i,0);h=r;return}function jb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Wb()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=zb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,qb(u,r)|0,r);h=i;return}function Wb(){var e=0,t=0;if(!(r[7856]|0)){Xb(10172);Fe(50,10172,b|0)|0;t=7856;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10172)|0)){e=10172;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Xb(10172)}return 10172}function zb(e){e=e|0;return 0}function qb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Wb()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Hb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Gb(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Hb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Gb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Vb(e)|0;if(u>>>0>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Yb(l,p>>>0>>1>>>0?d>>>0>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Hb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Kb(e,l);$b(l);h=c;return}}function Vb(e){e=e|0;return 357913941}function Yb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Kb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function $b(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Xb(e){e=e|0;Zb(e);return}function Jb(e){e=e|0;Qb(e+24|0);return}function Qb(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Zb(e){e=e|0;var t=0;t=Za()|0;nl(e,2,3,t,eg()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function eg(){return 1380}function tg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=ng(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];rg(t,u,n,r);h=i;return}function ng(e){e=e|0;return(o[(Wb()|0)+24>>2]|0)+(e*12|0)|0}function rg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;Jl(u,n);u=Ql(u,n)|0;ig(a,r);a=og(a,r)|0;Px[i&15](e,u,a);h=l;return}function ig(e,t){e=e|0;t=t|0;return}function og(e,t){e=e|0;t=t|0;return ug(t)|0}function ug(e){e=e|0;return(e|0)!=0|0}function ag(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=lg()|0;e=sg(n)|0;Ba(u,t,i,e,cg(n,r)|0,r);return}function lg(){var e=0,t=0;if(!(r[7864]|0)){bg(10208);Fe(51,10208,b|0)|0;t=7864;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10208)|0)){e=10208;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));bg(10208)}return 10208}function sg(e){e=e|0;return e|0}function cg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=lg()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){fg(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{dg(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function fg(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function dg(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=pg(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;hg(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;fg(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;mg(e,i);vg(i);h=l;return}}function pg(e){e=e|0;return 536870911}function hg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function mg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function vg(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function bg(e){e=e|0;yg(e);return}function gg(e){e=e|0;_g(e+24|0);return}function _g(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function yg(e){e=e|0;var t=0;t=Za()|0;nl(e,1,24,t,Dg()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Dg(){return 1392}function wg(e,t){e=e|0;t=t|0;Cg(o[(Eg(e)|0)>>2]|0,t);return}function Eg(e){e=e|0;return(o[(lg()|0)+24>>2]|0)+(e<<3)|0}function Cg(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;hv(r,t);t=mv(r,t)|0;hx[e&127](t);h=n;return}function Tg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=kg()|0;e=Sg(n)|0;Ba(u,t,i,e,Mg(n,r)|0,r);return}function kg(){var e=0,t=0;if(!(r[7872]|0)){Ig(10244);Fe(52,10244,b|0)|0;t=7872;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10244)|0)){e=10244;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ig(10244)}return 10244}function Sg(e){e=e|0;return e|0}function Mg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=kg()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){xg(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Ag(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function xg(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Ag(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Pg(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;Og(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;xg(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Rg(e,i);Ng(i);h=l;return}}function Pg(e){e=e|0;return 536870911}function Og(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Rg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ng(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function Ig(e){e=e|0;Lg(e);return}function Fg(e){e=e|0;Bg(e+24|0);return}function Bg(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Lg(e){e=e|0;var t=0;t=Za()|0;nl(e,1,16,t,Ug()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ug(){return 1400}function jg(e){e=e|0;return zg(o[(Wg(e)|0)>>2]|0)|0}function Wg(e){e=e|0;return(o[(kg()|0)+24>>2]|0)+(e<<3)|0}function zg(e){e=e|0;return qg(Sx[e&7]()|0)|0}function qg(e){e=e|0;return e|0}function Hg(){var e=0;if(!(r[7880]|0)){Jg(10280);Fe(25,10280,b|0)|0;e=7880;o[e>>2]=1;o[e+4>>2]=0}return 10280}function Gg(e,t){e=e|0;t=t|0;o[e>>2]=Vg()|0;o[e+4>>2]=Yg()|0;o[e+12>>2]=t;o[e+8>>2]=Kg()|0;o[e+32>>2]=4;return}function Vg(){return 11711}function Yg(){return 1356}function Kg(){return zv()|0}function $g(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Xg(n);$S(n)}}else if(t|0){qi(t);$S(t)}return}function Xg(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function Jg(e){e=e|0;xl(e);return}function Qg(e){e=e|0;Zg(e,4920);e_(e)|0;t_(e)|0;return}function Zg(e,t){e=e|0;t=t|0;var n=0;n=Gd()|0;o[e>>2]=n;S_(n,t);cD(o[e>>2]|0);return}function e_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,m_()|0);return e|0}function t_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,n_()|0);return e|0}function n_(){var e=0;if(!(r[7888]|0)){i_(10328);Fe(53,10328,b|0)|0;e=7888;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10328)|0))i_(10328);return 10328}function r_(e,t){e=e|0;t=t|0;Ba(e,0,t,0,0,0);return}function i_(e){e=e|0;a_(e);s_(e,10);return}function o_(e){e=e|0;u_(e+24|0);return}function u_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function a_(e){e=e|0;var t=0;t=Za()|0;nl(e,5,1,t,d_()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function l_(e,t,n){e=e|0;t=t|0;n=+n;c_(e,t,n);return}function s_(e,t){e=e|0;t=t|0;o[e+20>>2]=t;return}function c_(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;u=r+8|0;l=r+13|0;i=r;a=r+12|0;Jl(l,t);o[u>>2]=Ql(l,t)|0;$l(a,n);c[i>>3]=+Xl(a,n);f_(e,u,i);h=r;return}function f_(e,t,n){e=e|0;t=t|0;n=n|0;Ho(e+8|0,o[t>>2]|0,+c[n>>3]);r[e+24>>0]=1;return}function d_(){return 1404}function p_(e,t){e=e|0;t=+t;return h_(e,t)|0}function h_(e,t){e=e|0;t=+t;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+16|0;u=r+4|0;a=r+8|0;l=r;i=jE(8)|0;n=i;s=YS(16)|0;Jl(u,e);e=Ql(u,e)|0;$l(a,t);Ho(s,e,+Xl(a,t));a=n+4|0;o[a>>2]=s;e=YS(8)|0;a=o[a>>2]|0;o[l>>2]=0;o[u>>2]=o[l>>2];Kd(e,a,u);o[i>>2]=e;h=r;return n|0}function m_(){var e=0;if(!(r[7896]|0)){v_(10364);Fe(54,10364,b|0)|0;e=7896;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10364)|0))v_(10364);return 10364}function v_(e){e=e|0;__(e);s_(e,55);return}function b_(e){e=e|0;g_(e+24|0);return}function g_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function __(e){e=e|0;var t=0;t=Za()|0;nl(e,5,4,t,C_()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function y_(e){e=e|0;D_(e);return}function D_(e){e=e|0;w_(e);return}function w_(e){e=e|0;E_(e+8|0);r[e+24>>0]=1;return}function E_(e){e=e|0;o[e>>2]=0;c[e+8>>3]=0.0;return}function C_(){return 1424}function T_(){return k_()|0}function k_(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;r=YS(16)|0;E_(r);u=e+4|0;o[u>>2]=r;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];Kd(r,u,i);o[n>>2]=r;h=t;return e|0}function S_(e,t){e=e|0;t=t|0;o[e>>2]=M_()|0;o[e+4>>2]=x_()|0;o[e+12>>2]=t;o[e+8>>2]=A_()|0;o[e+32>>2]=5;return}function M_(){return 11710}function x_(){return 1416}function A_(){return R_()|0}function P_(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){O_(n);$S(n)}}else if(t|0)$S(t);return}function O_(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function R_(){var e=0;if(!(r[7904]|0)){o[2600]=N_()|0;o[2601]=0;e=7904;o[e>>2]=1;o[e+4>>2]=0}return 10400}function N_(){return o[357]|0}function I_(e){e=e|0;F_(e,4926);B_(e)|0;return}function F_(e,t){e=e|0;t=t|0;var n=0;n=ul()|0;o[e>>2]=n;$_(n,t);cD(o[e>>2]|0);return}function B_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,L_()|0);return e|0}function L_(){var e=0;if(!(r[7912]|0)){U_(10412);Fe(56,10412,b|0)|0;e=7912;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10412)|0))U_(10412);return 10412}function U_(e){e=e|0;z_(e);s_(e,57);return}function j_(e){e=e|0;W_(e+24|0);return}function W_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function z_(e){e=e|0;var t=0;t=Za()|0;nl(e,5,5,t,V_()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function q_(e){e=e|0;H_(e);return}function H_(e){e=e|0;G_(e);return}function G_(e){e=e|0;var t=0,n=0;t=e+8|0;n=t+48|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));r[e+56>>0]=1;return}function V_(){return 1432}function Y_(){return K_()|0}function K_(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0,l=0;a=h;h=h+16|0;e=a+4|0;t=a;n=jE(8)|0;r=n;i=YS(48)|0;u=i;l=u+48|0;do{o[u>>2]=0;u=u+4|0}while((u|0)<(l|0));u=r+4|0;o[u>>2]=i;l=YS(8)|0;u=o[u>>2]|0;o[t>>2]=0;o[e>>2]=o[t>>2];pl(l,u,e);o[n>>2]=l;h=a;return r|0}function $_(e,t){e=e|0;t=t|0;o[e>>2]=X_()|0;o[e+4>>2]=J_()|0;o[e+12>>2]=t;o[e+8>>2]=Q_()|0;o[e+32>>2]=6;return}function X_(){return 11704}function J_(){return 1436}function Q_(){return R_()|0}function Z_(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){ey(n);$S(n)}}else if(t|0)$S(t);return}function ey(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function ty(e){e=e|0;ny(e,4933);ry(e)|0;iy(e)|0;return}function ny(e,t){e=e|0;t=t|0;var n=0;n=Ry()|0;o[e>>2]=n;Ny(n,t);cD(o[e>>2]|0);return}function ry(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,Dy()|0);return e|0}function iy(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,oy()|0);return e|0}function oy(){var e=0;if(!(r[7920]|0)){uy(10452);Fe(58,10452,b|0)|0;e=7920;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10452)|0))uy(10452);return 10452}function uy(e){e=e|0;sy(e);s_(e,1);return}function ay(e){e=e|0;ly(e+24|0);return}function ly(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function sy(e){e=e|0;var t=0;t=Za()|0;nl(e,5,1,t,hy()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function cy(e,t,n){e=e|0;t=+t;n=+n;fy(e,t,n);return}function fy(e,t,n){e=e|0;t=+t;n=+n;var r=0,i=0,o=0,u=0,a=0;r=h;h=h+32|0;o=r+8|0;a=r+17|0;i=r;u=r+16|0;$l(a,t);c[o>>3]=+Xl(a,t);$l(u,n);c[i>>3]=+Xl(u,n);dy(e,o,i);h=r;return}function dy(e,t,n){e=e|0;t=t|0;n=n|0;py(e+8|0,+c[t>>3],+c[n>>3]);r[e+24>>0]=1;return}function py(e,t,n){e=e|0;t=+t;n=+n;c[e>>3]=t;c[e+8>>3]=n;return}function hy(){return 1472}function my(e,t){e=+e;t=+t;return vy(e,t)|0}function vy(e,t){e=+e;t=+t;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+16|0;a=r+4|0;l=r+8|0;s=r;i=jE(8)|0;n=i;u=YS(16)|0;$l(a,e);e=+Xl(a,e);$l(l,t);py(u,e,+Xl(l,t));l=n+4|0;o[l>>2]=u;u=YS(8)|0;l=o[l>>2]|0;o[s>>2]=0;o[a>>2]=o[s>>2];by(u,l,a);o[i>>2]=u;h=r;return n|0}function by(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1452;o[n+12>>2]=t;o[e+4>>2]=n;return}function gy(e){e=e|0;WS(e);$S(e);return}function _y(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function yy(e){e=e|0;$S(e);return}function Dy(){var e=0;if(!(r[7928]|0)){wy(10488);Fe(59,10488,b|0)|0;e=7928;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10488)|0))wy(10488);return 10488}function wy(e){e=e|0;Ty(e);s_(e,60);return}function Ey(e){e=e|0;Cy(e+24|0);return}function Cy(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Ty(e){e=e|0;var t=0;t=Za()|0;nl(e,5,6,t,Ay()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ky(e){e=e|0;Sy(e);return}function Sy(e){e=e|0;My(e);return}function My(e){e=e|0;xy(e+8|0);r[e+24>>0]=1;return}function xy(e){e=e|0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;o[e+12>>2]=0;return}function Ay(){return 1492}function Py(){return Oy()|0}function Oy(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;r=YS(16)|0;xy(r);u=e+4|0;o[u>>2]=r;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];by(r,u,i);o[n>>2]=r;h=t;return e|0}function Ry(){var e=0;if(!(r[7936]|0)){jy(10524);Fe(25,10524,b|0)|0;e=7936;o[e>>2]=1;o[e+4>>2]=0}return 10524}function Ny(e,t){e=e|0;t=t|0;o[e>>2]=Iy()|0;o[e+4>>2]=Fy()|0;o[e+12>>2]=t;o[e+8>>2]=By()|0;o[e+32>>2]=7;return}function Iy(){return 11700}function Fy(){return 1484}function By(){return R_()|0}function Ly(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Uy(n);$S(n)}}else if(t|0)$S(t);return}function Uy(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function jy(e){e=e|0;xl(e);return}function Wy(e,t,n){e=e|0;t=t|0;n=n|0;e=Oa(t)|0;t=zy(n)|0;n=qy(n,0)|0;MD(e,t,n,Hy()|0,0);return}function zy(e){e=e|0;return e|0}function qy(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Hy()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Qy(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Zy(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Hy(){var e=0,t=0;if(!(r[7944]|0)){Gy(10568);Fe(61,10568,b|0)|0;t=7944;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10568)|0)){e=10568;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Gy(10568)}return 10568}function Gy(e){e=e|0;Ky(e);return}function Vy(e){e=e|0;Yy(e+24|0);return}function Yy(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Ky(e){e=e|0;var t=0;t=Za()|0;nl(e,1,17,t,Kc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function $y(e){e=e|0;return Jy(o[(Xy(e)|0)>>2]|0)|0}function Xy(e){e=e|0;return(o[(Hy()|0)+24>>2]|0)+(e<<3)|0}function Jy(e){e=e|0;return Qc(Sx[e&7]()|0)|0}function Qy(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Zy(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=eD(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;tD(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Qy(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;nD(e,i);rD(i);h=l;return}}function eD(e){e=e|0;return 536870911}function tD(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function nD(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function rD(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function iD(){oD();return}function oD(){uD(10604);return}function uD(e){e=e|0;aD(e,4955);return}function aD(e,t){e=e|0;t=t|0;var n=0;n=lD()|0;o[e>>2]=n;sD(n,t);cD(o[e>>2]|0);return}function lD(){var e=0;if(!(r[7952]|0)){yD(10612);Fe(25,10612,b|0)|0;e=7952;o[e>>2]=1;o[e+4>>2]=0}return 10612}function sD(e,t){e=e|0;t=t|0;o[e>>2]=mD()|0;o[e+4>>2]=vD()|0;o[e+12>>2]=t;o[e+8>>2]=bD()|0;o[e+32>>2]=8;return}function cD(e){e=e|0;var t=0,n=0;t=h;h=h+16|0;n=t;fD()|0;o[n>>2]=e;dD(10608,n);h=t;return}function fD(){if(!(r[11714]|0)){o[2652]=0;Fe(62,10608,b|0)|0;r[11714]=1}return 10608}function dD(e,t){e=e|0;t=t|0;var n=0;n=YS(8)|0;o[n+4>>2]=o[t>>2];o[n>>2]=o[e>>2];o[e>>2]=n;return}function pD(e){e=e|0;hD(e);return}function hD(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function mD(){return 11715}function vD(){return 1496}function bD(){return zv()|0}function gD(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){_D(n);$S(n)}}else if(t|0)$S(t);return}function _D(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function yD(e){e=e|0;xl(e);return}function DD(e,t){e=e|0;t=t|0;var n=0,r=0;fD()|0;n=o[2652]|0;e:do{if(n|0){while(1){r=o[n+4>>2]|0;if(r|0?(rS(wD(r)|0,e)|0)==0:0)break;n=o[n>>2]|0;if(!n)break e}ED(r,t)}}while(0);return}function wD(e){e=e|0;return o[e+12>>2]|0}function ED(e,t){e=e|0;t=t|0;var n=0;e=e+36|0;n=o[e>>2]|0;if(n|0){Qi(n);$S(n)}n=YS(4)|0;gu(n,t);o[e>>2]=n;return}function CD(){if(!(r[11716]|0)){o[2664]=0;Fe(63,10656,b|0)|0;r[11716]=1}return 10656}function TD(){var e=0;if(!(r[11717]|0)){kD();o[2665]=1504;r[11717]=1;e=1504}else e=o[2665]|0;return e|0}function kD(){if(!(r[11740]|0)){r[11718]=Wa(Wa(8,0)|0,0)|0;r[11719]=Wa(Wa(0,0)|0,0)|0;r[11720]=Wa(Wa(0,16)|0,0)|0;r[11721]=Wa(Wa(8,0)|0,0)|0;r[11722]=Wa(Wa(0,0)|0,0)|0;r[11723]=Wa(Wa(8,0)|0,0)|0;r[11724]=Wa(Wa(0,0)|0,0)|0;r[11725]=Wa(Wa(8,0)|0,0)|0;r[11726]=Wa(Wa(0,0)|0,0)|0;r[11727]=Wa(Wa(8,0)|0,0)|0;r[11728]=Wa(Wa(0,0)|0,0)|0;r[11729]=Wa(Wa(0,0)|0,32)|0;r[11730]=Wa(Wa(0,0)|0,32)|0;r[11740]=1}return}function SD(){return 1572}function MD(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0;u=h;h=h+32|0;f=u+16|0;c=u+12|0;s=u+8|0;l=u+4|0;a=u;o[f>>2]=e;o[c>>2]=t;o[s>>2]=n;o[l>>2]=r;o[a>>2]=i;CD()|0;xD(10656,f,c,s,l,a);h=u;return}function xD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0;a=YS(24)|0;ja(a+4|0,o[t>>2]|0,o[n>>2]|0,o[r>>2]|0,o[i>>2]|0,o[u>>2]|0);o[a>>2]=o[e>>2];o[e>>2]=a;return}function AD(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0;y=h;h=h+32|0;v=y+20|0;b=y+8|0;g=y+4|0;_=y;t=o[t>>2]|0;if(t|0){m=v+4|0;s=v+8|0;c=b+4|0;f=b+8|0;d=b+8|0;p=v+8|0;do{a=t+4|0;l=PD(a)|0;if(l|0){i=OD(l)|0;o[v>>2]=0;o[m>>2]=0;o[s>>2]=0;r=(RD(l)|0)+1|0;ND(v,r);if(r|0)while(1){r=r+-1|0;bk(b,o[i>>2]|0);u=o[m>>2]|0;if(u>>>0<(o[p>>2]|0)>>>0){o[u>>2]=o[b>>2];o[m>>2]=(o[m>>2]|0)+4}else ID(v,b);if(!r)break;else i=i+4|0}r=FD(l)|0;o[b>>2]=0;o[c>>2]=0;o[f>>2]=0;e:do{if(o[r>>2]|0){i=0;u=0;while(1){if((i|0)==(u|0))BD(b,r);else{o[i>>2]=o[r>>2];o[c>>2]=(o[c>>2]|0)+4}r=r+4|0;if(!(o[r>>2]|0))break e;i=o[c>>2]|0;u=o[d>>2]|0}}}while(0);o[g>>2]=LD(a)|0;o[_>>2]=Xa(l)|0;UD(n,e,g,_,v,b);jD(b);WD(v)}t=o[t>>2]|0}while((t|0)!=0)}h=y;return}function PD(e){e=e|0;return o[e+12>>2]|0}function OD(e){e=e|0;return o[e+12>>2]|0}function RD(e){e=e|0;return o[e+16>>2]|0}function ND(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i;r=o[e>>2]|0;if((o[e+8>>2]|0)-r>>2>>>0>>0){yw(n,t,(o[e+4>>2]|0)-r>>2,e+8|0);Dw(e,n);ww(n)}h=i;return}function ID(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;a=h;h=h+32|0;n=a;r=e+4|0;i=((o[r>>2]|0)-(o[e>>2]|0)>>2)+1|0;u=vw(e)|0;if(u>>>0>>0)jS(e);else{l=o[e>>2]|0;c=(o[e+8>>2]|0)-l|0;s=c>>1;yw(n,c>>2>>>0>>1>>>0?s>>>0>>0?i:s:u,(o[r>>2]|0)-l>>2,e+8|0);u=n+8|0;o[o[u>>2]>>2]=o[t>>2];o[u>>2]=(o[u>>2]|0)+4;Dw(e,n);ww(n);h=a;return}}function FD(e){e=e|0;return o[e+8>>2]|0}function BD(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;a=h;h=h+32|0;n=a;r=e+4|0;i=((o[r>>2]|0)-(o[e>>2]|0)>>2)+1|0;u=pw(e)|0;if(u>>>0>>0)jS(e);else{l=o[e>>2]|0;c=(o[e+8>>2]|0)-l|0;s=c>>1;bw(n,c>>2>>>0>>1>>>0?s>>>0>>0?i:s:u,(o[r>>2]|0)-l>>2,e+8|0);u=n+8|0;o[o[u>>2]>>2]=o[t>>2];o[u>>2]=(o[u>>2]|0)+4;gw(e,n);_w(n);h=a;return}}function LD(e){e=e|0;return o[e>>2]|0}function UD(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;zD(e,t,n,r,i,o);return}function jD(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function WD(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function zD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0;a=h;h=h+48|0;f=a+40|0;l=a+32|0;d=a+24|0;s=a+12|0;c=a;Ek(l);e=wu(e)|0;o[d>>2]=o[t>>2];n=o[n>>2]|0;r=o[r>>2]|0;qD(s,i);HD(c,u);o[f>>2]=o[d>>2];GD(e,f,n,r,s,c);jD(c);WD(s);Tk(l);h=a;return}function qD(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){hw(e,r);mw(e,o[t>>2]|0,o[n>>2]|0,r)}return}function HD(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){fw(e,r);dw(e,o[t>>2]|0,o[n>>2]|0,r)}return}function GD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0;a=h;h=h+32|0;f=a+28|0;d=a+24|0;l=a+12|0;s=a;c=Tu(VD()|0)|0;o[d>>2]=o[t>>2];o[f>>2]=o[d>>2];t=YD(f)|0;n=KD(n)|0;r=$D(r)|0;o[l>>2]=o[i>>2];f=i+4|0;o[l+4>>2]=o[f>>2];d=i+8|0;o[l+8>>2]=o[d>>2];o[d>>2]=0;o[f>>2]=0;o[i>>2]=0;i=XD(l)|0;o[s>>2]=o[u>>2];f=u+4|0;o[s+4>>2]=o[f>>2];d=u+8|0;o[s+8>>2]=o[d>>2];o[d>>2]=0;o[f>>2]=0;o[u>>2]=0;Ae(0,c|0,e|0,t|0,n|0,r|0,i|0,JD(s)|0)|0;jD(s);WD(l);h=a;return}function VD(){var e=0;if(!(r[7968]|0)){sw(10708);e=7968;o[e>>2]=1;o[e+4>>2]=0}return 10708}function YD(e){e=e|0;return tw(e)|0}function KD(e){e=e|0;return ZD(e)|0}function $D(e){e=e|0;return Qc(e)|0}function XD(e){e=e|0;return ew(e)|0}function JD(e){e=e|0;return QD(e)|0}function QD(e){e=e|0;var t=0,n=0,r=0;r=(o[e+4>>2]|0)-(o[e>>2]|0)|0;n=r>>2;r=jE(r+4|0)|0;o[r>>2]=n;if(n|0){t=0;do{o[r+4+(t<<2)>>2]=ZD(o[(o[e>>2]|0)+(t<<2)>>2]|0)|0;t=t+1|0}while((t|0)!=(n|0))}return r|0}function ZD(e){e=e|0;return e|0}function ew(e){e=e|0;var t=0,n=0,r=0;r=(o[e+4>>2]|0)-(o[e>>2]|0)|0;n=r>>2;r=jE(r+4|0)|0;o[r>>2]=n;if(n|0){t=0;do{o[r+4+(t<<2)>>2]=tw((o[e>>2]|0)+(t<<2)|0)|0;t=t+1|0}while((t|0)!=(n|0))}return r|0}function tw(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(nw()|0)|0;if(!r)e=rw(e)|0;else{ll(t,r);sl(n,t);yk(e,n);e=fl(t)|0}h=i;return e|0}function nw(){var e=0;if(!(r[7960]|0)){lw(10664);Fe(25,10664,b|0)|0;e=7960;o[e>>2]=1;o[e+4>>2]=0}return 10664}function rw(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(4)|0;o[l>>2]=o[e>>2];u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];iw(e,u,i);o[r>>2]=e;h=n;return t|0}function iw(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1656;o[n+12>>2]=t;o[e+4>>2]=n;return}function ow(e){e=e|0;WS(e);$S(e);return}function uw(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function aw(e){e=e|0;$S(e);return}function lw(e){e=e|0;xl(e);return}function sw(e){e=e|0;Bu(e,cw()|0,5);return}function cw(){return 1676}function fw(e,t){e=e|0;t=t|0;var n=0;if((pw(e)|0)>>>0>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function dw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function pw(e){e=e|0;return 1073741823}function hw(e,t){e=e|0;t=t|0;var n=0;if((vw(e)|0)>>>0>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function mw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function vw(e){e=e|0;return 1073741823}function bw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function gw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function _w(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function yw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function Dw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function ww(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function Ew(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0;b=h;h=h+32|0;f=b+20|0;d=b+12|0;c=b+16|0;p=b+4|0;m=b;v=b+8|0;l=TD()|0;u=o[l>>2]|0;a=o[u>>2]|0;if(a|0){s=o[l+8>>2]|0;l=o[l+4>>2]|0;while(1){bk(f,a);Cw(e,f,l,s);u=u+4|0;a=o[u>>2]|0;if(!a)break;else{s=s+1|0;l=l+1|0}}}u=SD()|0;a=o[u>>2]|0;if(a|0)do{bk(f,a);o[d>>2]=o[u+4>>2];Tw(t,f,d);u=u+8|0;a=o[u>>2]|0}while((a|0)!=0);u=o[(fD()|0)>>2]|0;if(u|0)do{t=o[u+4>>2]|0;bk(f,o[(kw(t)|0)>>2]|0);o[d>>2]=wD(t)|0;Sw(n,f,d);u=o[u>>2]|0}while((u|0)!=0);bk(c,0);u=CD()|0;o[f>>2]=o[c>>2];AD(f,u,i);u=o[(fD()|0)>>2]|0;if(u|0){e=f+4|0;t=f+8|0;n=f+8|0;do{s=o[u+4>>2]|0;bk(d,o[(kw(s)|0)>>2]|0);xw(p,Mw(s)|0);a=o[p>>2]|0;if(a|0){o[f>>2]=0;o[e>>2]=0;o[t>>2]=0;do{bk(m,o[(kw(o[a+4>>2]|0)|0)>>2]|0);l=o[e>>2]|0;if(l>>>0<(o[n>>2]|0)>>>0){o[l>>2]=o[m>>2];o[e>>2]=(o[e>>2]|0)+4}else ID(f,m);a=o[a>>2]|0}while((a|0)!=0);Aw(r,d,f);WD(f)}o[v>>2]=o[d>>2];c=Pw(s)|0;o[f>>2]=o[v>>2];AD(f,c,i);kl(p);u=o[u>>2]|0}while((u|0)!=0)}h=b;return}function Cw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;Gw(e,t,n,r);return}function Tw(e,t,n){e=e|0;t=t|0;n=n|0;Hw(e,t,n);return}function kw(e){e=e|0;return e|0}function Sw(e,t,n){e=e|0;t=t|0;n=n|0;Uw(e,t,n);return}function Mw(e){e=e|0;return e+16|0}function xw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;u=h;h=h+16|0;i=u+8|0;n=u;o[e>>2]=0;r=o[t>>2]|0;o[i>>2]=r;o[n>>2]=e;n=Bw(n)|0;if(r|0){r=YS(12)|0;a=(Lw(i)|0)+4|0;e=o[a+4>>2]|0;t=r+4|0;o[t>>2]=o[a>>2];o[t+4>>2]=e;t=o[o[i>>2]>>2]|0;o[i>>2]=t;if(!t)e=r;else{t=r;while(1){e=YS(12)|0;s=(Lw(i)|0)+4|0;l=o[s+4>>2]|0;a=e+4|0;o[a>>2]=o[s>>2];o[a+4>>2]=l;o[t>>2]=e;a=o[o[i>>2]>>2]|0;o[i>>2]=a;if(!a)break;else t=e}}o[e>>2]=o[n>>2];o[n>>2]=r}h=u;return}function Aw(e,t,n){e=e|0;t=t|0;n=n|0;Ow(e,t,n);return}function Pw(e){e=e|0;return e+24|0}function Ow(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+32|0;a=r+24|0;i=r+16|0;l=r+12|0;u=r;Ek(i);e=wu(e)|0;o[l>>2]=o[t>>2];qD(u,n);o[a>>2]=o[l>>2];Rw(e,a,u);WD(u);Tk(i);h=r;return}function Rw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+32|0;a=r+16|0;l=r+12|0;i=r;u=Tu(Nw()|0)|0;o[l>>2]=o[t>>2];o[a>>2]=o[l>>2];t=YD(a)|0;o[i>>2]=o[n>>2];a=n+4|0;o[i+4>>2]=o[a>>2];l=n+8|0;o[i+8>>2]=o[l>>2];o[l>>2]=0;o[a>>2]=0;o[n>>2]=0;ke(0,u|0,e|0,t|0,XD(i)|0)|0;WD(i);h=r;return}function Nw(){var e=0;if(!(r[7976]|0)){Iw(10720);e=7976;o[e>>2]=1;o[e+4>>2]=0}return 10720}function Iw(e){e=e|0;Bu(e,Fw()|0,2);return}function Fw(){return 1732}function Bw(e){e=e|0;return o[e>>2]|0}function Lw(e){e=e|0;return o[e>>2]|0}function Uw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+32|0;u=r+16|0;i=r+8|0;a=r;Ek(i);e=wu(e)|0;o[a>>2]=o[t>>2];n=o[n>>2]|0;o[u>>2]=o[a>>2];jw(e,u,n);Tk(i);h=r;return}function jw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;u=r+4|0;a=r;i=Tu(Ww()|0)|0;o[a>>2]=o[t>>2];o[u>>2]=o[a>>2];t=YD(u)|0;ke(0,i|0,e|0,t|0,KD(n)|0)|0;h=r;return}function Ww(){var e=0;if(!(r[7984]|0)){zw(10732);e=7984;o[e>>2]=1;o[e+4>>2]=0}return 10732}function zw(e){e=e|0;Bu(e,qw()|0,2);return}function qw(){return 1744}function Hw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+32|0;u=r+16|0;i=r+8|0;a=r;Ek(i);e=wu(e)|0;o[a>>2]=o[t>>2];n=o[n>>2]|0;o[u>>2]=o[a>>2];jw(e,u,n);Tk(i);h=r;return}function Gw(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+32|0;l=u+16|0;a=u+8|0;s=u;Ek(a);e=wu(e)|0;o[s>>2]=o[t>>2];n=r[n>>0]|0;i=r[i>>0]|0;o[l>>2]=o[s>>2];Vw(e,l,n,i);Tk(a);h=u;return}function Vw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;a=i+4|0;l=i;u=Tu(Yw()|0)|0;o[l>>2]=o[t>>2];o[a>>2]=o[l>>2];t=YD(a)|0;n=Kw(n)|0;nt(0,u|0,e|0,t|0,n|0,Kw(r)|0)|0;h=i;return}function Yw(){var e=0;if(!(r[7992]|0)){Xw(10744);e=7992;o[e>>2]=1;o[e+4>>2]=0}return 10744}function Kw(e){e=e|0;return $w(e)|0}function $w(e){e=e|0;return e&255|0}function Xw(e){e=e|0;Bu(e,Jw()|0,3);return}function Jw(){return 1756}function Qw(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;m=h;h=h+32|0;s=m+8|0;c=m+4|0;f=m+20|0;d=m;Hs(e,0);i=_k(t)|0;o[s>>2]=0;p=s+4|0;o[p>>2]=0;o[s+8>>2]=0;switch(i<<24>>24){case 0:{r[f>>0]=0;Zw(c,n,f);eE(e,c)|0;Zi(c);break}case 8:{p=gk(t)|0;r[f>>0]=8;bk(d,o[p+4>>2]|0);tE(c,n,f,d,p+8|0);eE(e,c)|0;Zi(c);break}case 9:{a=gk(t)|0;t=o[a+4>>2]|0;if(t|0){l=s+8|0;u=a+12|0;while(1){t=t+-1|0;bk(c,o[u>>2]|0);i=o[p>>2]|0;if(i>>>0<(o[l>>2]|0)>>>0){o[i>>2]=o[c>>2];o[p>>2]=(o[p>>2]|0)+4}else ID(s,c);if(!t)break;else u=u+4|0}}r[f>>0]=9;bk(d,o[a+8>>2]|0);nE(c,n,f,d,s);eE(e,c)|0;Zi(c);break}default:{p=gk(t)|0;r[f>>0]=i;bk(d,o[p+4>>2]|0);rE(c,n,f,d);eE(e,c)|0;Zi(c)}}WD(s);h=m;return}function Zw(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;i=h;h=h+16|0;o=i;Ek(o);t=wu(t)|0;bE(e,t,r[n>>0]|0);Tk(o);h=i;return}function eE(e,t){e=e|0;t=t|0;var n=0;n=o[e>>2]|0;if(n|0)rt(n|0);o[e>>2]=o[t>>2];o[t>>2]=0;return e|0}function tE(e,t,n,i,u){e=e|0;t=t|0;n=n|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0;a=h;h=h+32|0;s=a+16|0;l=a+8|0;c=a;Ek(l);t=wu(t)|0;n=r[n>>0]|0;o[c>>2]=o[i>>2];u=o[u>>2]|0;o[s>>2]=o[c>>2];pE(e,t,n,s,u);Tk(l);h=a;return}function nE(e,t,n,i,u){e=e|0;t=t|0;n=n|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0;a=h;h=h+32|0;c=a+24|0;l=a+16|0;f=a+12|0;s=a;Ek(l);t=wu(t)|0;n=r[n>>0]|0;o[f>>2]=o[i>>2];qD(s,u);o[c>>2]=o[f>>2];sE(e,t,n,c,s);WD(s);Tk(l);h=a;return}function rE(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+32|0;l=u+16|0;a=u+8|0;s=u;Ek(a);t=wu(t)|0;n=r[n>>0]|0;o[s>>2]=o[i>>2];o[l>>2]=o[s>>2];iE(e,t,n,l);Tk(a);h=u;return}function iE(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+4|0;l=i;a=Tu(oE()|0)|0;n=Kw(n)|0;o[l>>2]=o[r>>2];o[u>>2]=o[l>>2];uE(e,ke(0,a|0,t|0,n|0,YD(u)|0)|0);h=i;return}function oE(){var e=0;if(!(r[8e3]|0)){aE(10756);e=8e3;o[e>>2]=1;o[e+4>>2]=0}return 10756}function uE(e,t){e=e|0;t=t|0;Hs(e,t);return}function aE(e){e=e|0;Bu(e,lE()|0,2);return}function lE(){return 1772}function sE(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0;u=h;h=h+32|0;s=u+16|0;c=u+12|0;a=u;l=Tu(cE()|0)|0;n=Kw(n)|0;o[c>>2]=o[r>>2];o[s>>2]=o[c>>2];r=YD(s)|0;o[a>>2]=o[i>>2];s=i+4|0;o[a+4>>2]=o[s>>2];c=i+8|0;o[a+8>>2]=o[c>>2];o[c>>2]=0;o[s>>2]=0;o[i>>2]=0;uE(e,nt(0,l|0,t|0,n|0,r|0,XD(a)|0)|0);WD(a);h=u;return}function cE(){var e=0;if(!(r[8008]|0)){fE(10768);e=8008;o[e>>2]=1;o[e+4>>2]=0}return 10768}function fE(e){e=e|0;Bu(e,dE()|0,3);return}function dE(){return 1784}function pE(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+16|0;l=u+4|0;s=u;a=Tu(hE()|0)|0;n=Kw(n)|0;o[s>>2]=o[r>>2];o[l>>2]=o[s>>2];r=YD(l)|0;uE(e,nt(0,a|0,t|0,n|0,r|0,$D(i)|0)|0);h=u;return}function hE(){var e=0;if(!(r[8016]|0)){mE(10780);e=8016;o[e>>2]=1;o[e+4>>2]=0}return 10780}function mE(e){e=e|0;Bu(e,vE()|0,3);return}function vE(){return 1800}function bE(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=Tu(gE()|0)|0;uE(e,it(0,r|0,t|0,Kw(n)|0)|0);return}function gE(){var e=0;if(!(r[8024]|0)){_E(10792);e=8024;o[e>>2]=1;o[e+4>>2]=0}return 10792}function _E(e){e=e|0;Bu(e,yE()|0,1);return}function yE(){return 1816}function DE(){wE();EE();CE();return}function wE(){o[2702]=KS(65536)|0;return}function EE(){YE(10856);return}function CE(){TE(10816);return}function TE(e){e=e|0;kE(e,5044);SE(e)|0;return}function kE(e,t){e=e|0;t=t|0;var n=0;n=nw()|0;o[e>>2]=n;WE(n,t);cD(o[e>>2]|0);return}function SE(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,ME()|0);return e|0}function ME(){var e=0;if(!(r[8032]|0)){xE(10820);Fe(64,10820,b|0)|0;e=8032;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10820)|0))xE(10820);return 10820}function xE(e){e=e|0;OE(e);s_(e,25);return}function AE(e){e=e|0;PE(e+24|0);return}function PE(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function OE(e){e=e|0;var t=0;t=Za()|0;nl(e,5,18,t,BE()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function RE(e,t){e=e|0;t=t|0;NE(e,t);return}function NE(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;n=h;h=h+16|0;r=n;i=n+4|0;cc(i,t);o[r>>2]=fc(i,t)|0;IE(e,r);h=n;return}function IE(e,t){e=e|0;t=t|0;FE(e+4|0,o[t>>2]|0);r[e+8>>0]=1;return}function FE(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function BE(){return 1824}function LE(e){e=e|0;return UE(e)|0}function UE(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(4)|0;cc(i,e);FE(l,fc(i,e)|0);u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];iw(e,u,i);o[r>>2]=e;h=n;return t|0}function jE(e){e=e|0;var t=0,n=0;e=e+7&-8;if(e>>>0<=32768?(t=o[2701]|0,e>>>0<=(65536-t|0)>>>0):0){n=(o[2702]|0)+t|0;o[2701]=t+e;e=n}else{e=KS(e+8|0)|0;o[e>>2]=o[2703];o[2703]=e;e=e+8|0}return e|0}function WE(e,t){e=e|0;t=t|0;o[e>>2]=zE()|0;o[e+4>>2]=qE()|0;o[e+12>>2]=t;o[e+8>>2]=HE()|0;o[e+32>>2]=9;return}function zE(){return 11744}function qE(){return 1832}function HE(){return R_()|0}function GE(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){VE(n);$S(n)}}else if(t|0)$S(t);return}function VE(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function YE(e){e=e|0;KE(e,5052);$E(e)|0;XE(e,5058,26)|0;JE(e,5069,1)|0;QE(e,5077,10)|0;ZE(e,5087,19)|0;tC(e,5094,27)|0;return}function KE(e,t){e=e|0;t=t|0;var n=0;n=sk()|0;o[e>>2]=n;ck(n,t);cD(o[e>>2]|0);return}function $E(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,KT()|0);return e|0}function XE(e,t,n){e=e|0;t=t|0;n=n|0;ST(e,Oa(t)|0,n,0);return e|0}function JE(e,t,n){e=e|0;t=t|0;n=n|0;sT(e,Oa(t)|0,n,0);return e|0}function QE(e,t,n){e=e|0;t=t|0;n=n|0;LC(e,Oa(t)|0,n,0);return e|0}function ZE(e,t,n){e=e|0;t=t|0;n=n|0;yC(e,Oa(t)|0,n,0);return e|0}function eC(e,t){e=e|0;t=t|0;var n=0,r=0;e:while(1){n=o[2703]|0;while(1){if((n|0)==(t|0))break e;r=o[n>>2]|0;o[2703]=r;if(!n)n=r;else break}$S(n)}o[2701]=e;return}function tC(e,t,n){e=e|0;t=t|0;n=n|0;nC(e,Oa(t)|0,n,0);return e|0}function nC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=rC()|0;e=iC(n)|0;Ba(u,t,i,e,oC(n,r)|0,r);return}function rC(){var e=0,t=0;if(!(r[8040]|0)){dC(10860);Fe(65,10860,b|0)|0;t=8040;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10860)|0)){e=10860;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));dC(10860)}return 10860}function iC(e){e=e|0;return e|0}function oC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=rC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){uC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{aC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function uC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function aC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=lC(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;sC(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;uC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;cC(e,i);fC(i);h=l;return}}function lC(e){e=e|0;return 536870911}function sC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function cC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function fC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function dC(e){e=e|0;mC(e);return}function pC(e){e=e|0;hC(e+24|0);return}function hC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function mC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,11,t,vC()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function vC(){return 1840}function bC(e,t,n){e=e|0;t=t|0;n=n|0;_C(o[(gC(e)|0)>>2]|0,t,n);return}function gC(e){e=e|0;return(o[(rC()|0)+24>>2]|0)+(e<<3)|0}function _C(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,o=0;r=h;h=h+16|0;o=r+1|0;i=r;cc(o,t);t=fc(o,t)|0;cc(i,n);n=fc(i,n)|0;mx[e&31](t,n);h=r;return}function yC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=DC()|0;e=wC(n)|0;Ba(u,t,i,e,EC(n,r)|0,r);return}function DC(){var e=0,t=0;if(!(r[8048]|0)){AC(10896);Fe(66,10896,b|0)|0;t=8048;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10896)|0)){e=10896;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));AC(10896)}return 10896}function wC(e){e=e|0;return e|0}function EC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=DC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){CC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{TC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function CC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function TC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=kC(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;SC(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;CC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;MC(e,i);xC(i);h=l;return}}function kC(e){e=e|0;return 536870911}function SC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function MC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function xC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function AC(e){e=e|0;RC(e);return}function PC(e){e=e|0;OC(e+24|0);return}function OC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function RC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,11,t,NC()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function NC(){return 1852}function IC(e,t){e=e|0;t=t|0;return BC(o[(FC(e)|0)>>2]|0,t)|0}function FC(e){e=e|0;return(o[(DC()|0)+24>>2]|0)+(e<<3)|0}function BC(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;cc(r,t);t=fc(r,t)|0;t=Qc(vx[e&31](t)|0)|0;h=n;return t|0}function LC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=UC()|0;e=jC(n)|0;Ba(u,t,i,e,WC(n,r)|0,r);return}function UC(){var e=0,t=0;if(!(r[8056]|0)){KC(10932);Fe(67,10932,b|0)|0;t=8056;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10932)|0)){e=10932;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));KC(10932)}return 10932}function jC(e){e=e|0;return e|0}function WC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=UC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){zC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{qC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function zC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function qC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=HC(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;GC(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;zC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;VC(e,i);YC(i);h=l;return}}function HC(e){e=e|0;return 536870911}function GC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function VC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function YC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function KC(e){e=e|0;JC(e);return}function $C(e){e=e|0;XC(e+24|0);return}function XC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function JC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,7,t,QC()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function QC(){return 1860}function ZC(e,t,n){e=e|0;t=t|0;n=n|0;return tT(o[(eT(e)|0)>>2]|0,t,n)|0}function eT(e){e=e|0;return(o[(UC()|0)+24>>2]|0)+(e<<3)|0}function tT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+32|0;a=r+12|0;u=r+8|0;l=r;s=r+16|0;i=r+4|0;nT(s,t);rT(l,s,t);js(i,n);n=Ws(i,n)|0;o[a>>2]=o[l>>2];Px[e&15](u,a,n);n=iT(u)|0;Zi(u);zs(i);h=r;return n|0}function nT(e,t){e=e|0;t=t|0;return}function rT(e,t,n){e=e|0;t=t|0;n=n|0;oT(e,n);return}function iT(e){e=e|0;return wu(e)|0}function oT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+16|0;n=i;r=t;if(!(r&1))o[e>>2]=o[t>>2];else{uT(n,0);Le(r|0,n|0)|0;aT(e,n);lT(n)}h=i;return}function uT(e,t){e=e|0;t=t|0;Ou(e,t);o[e+4>>2]=0;r[e+8>>0]=0;return}function aT(e,t){e=e|0;t=t|0;o[e>>2]=o[t+4>>2];return}function lT(e){e=e|0;r[e+8>>0]=0;return}function sT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=cT()|0;e=fT(n)|0;Ba(u,t,i,e,dT(n,r)|0,r);return}function cT(){var e=0,t=0;if(!(r[8064]|0)){_T(10968);Fe(68,10968,b|0)|0;t=8064;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10968)|0)){e=10968;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));_T(10968)}return 10968}function fT(e){e=e|0;return e|0}function dT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=cT()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){pT(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{hT(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function pT(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function hT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=mT(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;vT(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;pT(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;bT(e,i);gT(i);h=l;return}}function mT(e){e=e|0;return 536870911}function vT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function bT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function gT(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function _T(e){e=e|0;wT(e);return}function yT(e){e=e|0;DT(e+24|0);return}function DT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function wT(e){e=e|0;var t=0;t=Za()|0;nl(e,1,1,t,ET()|0,5);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ET(){return 1872}function CT(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;kT(o[(TT(e)|0)>>2]|0,t,n,r,i,u);return}function TT(e){e=e|0;return(o[(cT()|0)+24>>2]|0)+(e<<3)|0}function kT(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;var u=0,a=0,l=0,s=0,c=0,f=0;u=h;h=h+32|0;a=u+16|0;l=u+12|0;s=u+8|0;c=u+4|0;f=u;js(a,t);t=Ws(a,t)|0;js(l,n);n=Ws(l,n)|0;js(s,r);r=Ws(s,r)|0;js(c,i);i=Ws(c,i)|0;js(f,o);o=Ws(f,o)|0;cx[e&1](t,n,r,i,o);zs(f);zs(c);zs(s);zs(l);zs(a);h=u;return}function ST(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=MT()|0;e=xT(n)|0;Ba(u,t,i,e,AT(n,r)|0,r);return}function MT(){var e=0,t=0;if(!(r[8072]|0)){BT(11004);Fe(69,11004,b|0)|0;t=8072;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(11004)|0)){e=11004;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));BT(11004)}return 11004}function xT(e){e=e|0;return e|0}function AT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=MT()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){PT(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{OT(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function PT(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function OT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=RT(e)|0;if(r>>>0>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;NT(i,f>>3>>>0>>1>>>0?c>>>0>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;PT(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;IT(e,i);FT(i);h=l;return}}function RT(e){e=e|0;return 536870911}function NT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function IT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function FT(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function BT(e){e=e|0;jT(e);return}function LT(e){e=e|0;UT(e+24|0);return}function UT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function jT(e){e=e|0;var t=0;t=Za()|0;nl(e,1,12,t,WT()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function WT(){return 1896}function zT(e,t,n){e=e|0;t=t|0;n=n|0;HT(o[(qT(e)|0)>>2]|0,t,n);return}function qT(e){e=e|0;return(o[(MT()|0)+24>>2]|0)+(e<<3)|0}function HT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,o=0;r=h;h=h+16|0;o=r+4|0;i=r;GT(o,t);t=VT(o,t)|0;js(i,n);n=Ws(i,n)|0;mx[e&31](t,n);zs(i);h=r;return}function GT(e,t){e=e|0;t=t|0;return}function VT(e,t){e=e|0;t=t|0;return YT(t)|0}function YT(e){e=e|0;return e|0}function KT(){var e=0;if(!(r[8080]|0)){$T(11040);Fe(70,11040,b|0)|0;e=8080;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(11040)|0))$T(11040);return 11040}function $T(e){e=e|0;QT(e);s_(e,71);return}function XT(e){e=e|0;JT(e+24|0);return}function JT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function QT(e){e=e|0;var t=0;t=Za()|0;nl(e,5,7,t,nk()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ZT(e){e=e|0;ek(e);return}function ek(e){e=e|0;tk(e);return}function tk(e){e=e|0;r[e+8>>0]=1;return}function nk(){return 1936}function rk(){return ik()|0}function ik(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;u=e+4|0;o[u>>2]=YS(1)|0;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];ok(r,u,i);o[n>>2]=r;h=t;return e|0}function ok(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1916;o[n+12>>2]=t;o[e+4>>2]=n;return}function uk(e){e=e|0;WS(e);$S(e);return}function ak(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function lk(e){e=e|0;$S(e);return}function sk(){var e=0;if(!(r[8088]|0)){vk(11076);Fe(25,11076,b|0)|0;e=8088;o[e>>2]=1;o[e+4>>2]=0}return 11076}function ck(e,t){e=e|0;t=t|0;o[e>>2]=fk()|0;o[e+4>>2]=dk()|0;o[e+12>>2]=t;o[e+8>>2]=pk()|0;o[e+32>>2]=10;return}function fk(){return 11745}function dk(){return 1940}function pk(){return zv()|0}function hk(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){mk(n);$S(n)}}else if(t|0)$S(t);return}function mk(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function vk(e){e=e|0;xl(e);return}function bk(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function gk(e){e=e|0;return o[e>>2]|0}function _k(e){e=e|0;return r[o[e>>2]>>0]|0}function yk(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;o[r>>2]=o[e>>2];Dk(t,r)|0;h=n;return}function Dk(e,t){e=e|0;t=t|0;var n=0;n=wk(o[e>>2]|0,t)|0;t=e+4|0;o[(o[t>>2]|0)+8>>2]=n;return o[(o[t>>2]|0)+8>>2]|0}function wk(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Ek(r);e=wu(e)|0;t=Ck(e,o[t>>2]|0)|0;Tk(r);h=n;return t|0}function Ek(e){e=e|0;o[e>>2]=o[2701];o[e+4>>2]=o[2703];return}function Ck(e,t){e=e|0;t=t|0;var n=0;n=Tu(kk()|0)|0;return it(0,n|0,e|0,$D(t)|0)|0}function Tk(e){e=e|0;eC(o[e>>2]|0,o[e+4>>2]|0);return}function kk(){var e=0;if(!(r[8096]|0)){Sk(11120);e=8096;o[e>>2]=1;o[e+4>>2]=0}return 11120}function Sk(e){e=e|0;Bu(e,Mk()|0,1);return}function Mk(){return 1948}function xk(){Ak();return}function Ak(){var e=0,t=0,n=0,i=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0;g=h;h=h+16|0;p=g+4|0;m=g;Re(65536,10804,o[2702]|0,10812);n=TD()|0;t=o[n>>2]|0;e=o[t>>2]|0;if(e|0){i=o[n+8>>2]|0;n=o[n+4>>2]|0;while(1){We(e|0,u[n>>0]|0|0,r[i>>0]|0);t=t+4|0;e=o[t>>2]|0;if(!e)break;else{i=i+1|0;n=n+1|0}}}e=SD()|0;t=o[e>>2]|0;if(t|0)do{ze(t|0,o[e+4>>2]|0);e=e+8|0;t=o[e>>2]|0}while((t|0)!=0);ze(Pk()|0,5167);d=fD()|0;e=o[d>>2]|0;e:do{if(e|0){do{Ok(o[e+4>>2]|0);e=o[e>>2]|0}while((e|0)!=0);e=o[d>>2]|0;if(e|0){f=d;do{while(1){a=e;e=o[e>>2]|0;a=o[a+4>>2]|0;if(!(Rk(a)|0))break;o[m>>2]=f;o[p>>2]=o[m>>2];Nk(d,p)|0;if(!e)break e}Ik(a);f=o[f>>2]|0;t=Fk(a)|0;l=Xe()|0;s=h;h=h+((1*(t<<2)|0)+15&-16)|0;c=h;h=h+((1*(t<<2)|0)+15&-16)|0;t=o[(Mw(a)|0)>>2]|0;if(t|0){n=s;i=c;while(1){o[n>>2]=o[(kw(o[t+4>>2]|0)|0)>>2];o[i>>2]=o[t+8>>2];t=o[t>>2]|0;if(!t)break;else{n=n+4|0;i=i+4|0}}}_=kw(a)|0;t=Bk(a)|0;n=Fk(a)|0;i=Lk(a)|0;Ve(_|0,t|0,s|0,c|0,n|0,i|0,wD(a)|0);Ie(l|0)}while((e|0)!=0)}}}while(0);e=o[(CD()|0)>>2]|0;if(e|0)do{_=e+4|0;d=PD(_)|0;a=FD(d)|0;l=OD(d)|0;s=(RD(d)|0)+1|0;c=Uk(d)|0;f=jk(_)|0;d=Xa(d)|0;p=LD(_)|0;m=Wk(_)|0;He(0,a|0,l|0,s|0,c|0,f|0,d|0,p|0,m|0,zk(_)|0);e=o[e>>2]|0}while((e|0)!=0);e=o[(fD()|0)>>2]|0;e:do{if(e|0){t:while(1){t=o[e+4>>2]|0;if(t|0?(v=o[(kw(t)|0)>>2]|0,b=o[(Pw(t)|0)>>2]|0,b|0):0){n=b;do{t=n+4|0;i=PD(t)|0;n:do{if(i|0)switch(Xa(i)|0){case 0:break t;case 4:case 3:case 2:{c=FD(i)|0;f=OD(i)|0;d=(RD(i)|0)+1|0;p=Uk(i)|0;m=Xa(i)|0;_=LD(t)|0;He(v|0,c|0,f|0,d|0,p|0,0,m|0,_|0,Wk(t)|0,zk(t)|0);break n}case 1:{s=FD(i)|0;c=OD(i)|0;f=(RD(i)|0)+1|0;d=Uk(i)|0;p=jk(t)|0;m=Xa(i)|0;_=LD(t)|0;He(v|0,s|0,c|0,f|0,d|0,p|0,m|0,_|0,Wk(t)|0,zk(t)|0);break n}case 5:{d=FD(i)|0;p=OD(i)|0;m=(RD(i)|0)+1|0;_=Uk(i)|0;He(v|0,d|0,p|0,m|0,_|0,qk(i)|0,Xa(i)|0,0,0,0);break n}default:break n}}while(0);n=o[n>>2]|0}while((n|0)!=0)}e=o[e>>2]|0;if(!e)break e}Ke()}}while(0);Ye();h=g;return}function Pk(){return 11703}function Ok(e){e=e|0;r[e+40>>0]=0;return}function Rk(e){e=e|0;return(r[e+40>>0]|0)!=0|0}function Nk(e,t){e=e|0;t=t|0;t=Hk(t)|0;e=o[t>>2]|0;o[t>>2]=o[e>>2];$S(e);return o[t>>2]|0}function Ik(e){e=e|0;r[e+40>>0]=1;return}function Fk(e){e=e|0;return o[e+20>>2]|0}function Bk(e){e=e|0;return o[e+8>>2]|0}function Lk(e){e=e|0;return o[e+32>>2]|0}function Uk(e){e=e|0;return o[e+4>>2]|0}function jk(e){e=e|0;return o[e+4>>2]|0}function Wk(e){e=e|0;return o[e+8>>2]|0}function zk(e){e=e|0;return o[e+16>>2]|0}function qk(e){e=e|0;return o[e+20>>2]|0}function Hk(e){e=e|0;return o[e>>2]|0}function Gk(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0;E=h;h=h+16|0;p=E;do{if(e>>>0<245){c=e>>>0<11?16:e+11&-8;e=c>>>3;d=o[2783]|0;n=d>>>e;if(n&3|0){t=(n&1^1)+e|0;e=11172+(t<<1<<2)|0;n=e+8|0;r=o[n>>2]|0;i=r+8|0;u=o[i>>2]|0;if((e|0)==(u|0))o[2783]=d&~(1<>2]=e;o[n>>2]=u}w=t<<3;o[r+4>>2]=w|3;w=r+w+4|0;o[w>>2]=o[w>>2]|1;w=i;h=E;return w|0}f=o[2785]|0;if(c>>>0>f>>>0){if(n|0){t=2<>>12&16;t=t>>>a;n=t>>>5&8;t=t>>>n;i=t>>>2&4;t=t>>>i;e=t>>>1&2;t=t>>>e;r=t>>>1&1;r=(n|a|i|e|r)+(t>>>r)|0;t=11172+(r<<1<<2)|0;e=t+8|0;i=o[e>>2]|0;a=i+8|0;n=o[a>>2]|0;if((t|0)==(n|0)){e=d&~(1<>2]=t;o[e>>2]=n;e=d}u=(r<<3)-c|0;o[i+4>>2]=c|3;r=i+c|0;o[r+4>>2]=u|1;o[r+u>>2]=u;if(f|0){i=o[2788]|0;t=f>>>3;n=11172+(t<<1<<2)|0;t=1<>2]|0}o[e>>2]=i;o[t+12>>2]=i;o[i+8>>2]=t;o[i+12>>2]=n}o[2785]=u;o[2788]=r;w=a;h=E;return w|0}l=o[2784]|0;if(l){n=(l&0-l)+-1|0;a=n>>>12&16;n=n>>>a;u=n>>>5&8;n=n>>>u;s=n>>>2&4;n=n>>>s;r=n>>>1&2;n=n>>>r;e=n>>>1&1;e=o[11436+((u|a|s|r|e)+(n>>>e)<<2)>>2]|0;n=(o[e+4>>2]&-8)-c|0;r=o[e+16+(((o[e+16>>2]|0)==0&1)<<2)>>2]|0;if(!r){s=e;u=n}else{do{a=(o[r+4>>2]&-8)-c|0;s=a>>>0>>0;n=s?a:n;e=s?r:e;r=o[r+16+(((o[r+16>>2]|0)==0&1)<<2)>>2]|0}while((r|0)!=0);s=e;u=n}a=s+c|0;if(s>>>0>>0){i=o[s+24>>2]|0;t=o[s+12>>2]|0;do{if((t|0)==(s|0)){e=s+20|0;t=o[e>>2]|0;if(!t){e=s+16|0;t=o[e>>2]|0;if(!t){n=0;break}}while(1){n=t+20|0;r=o[n>>2]|0;if(r|0){t=r;e=n;continue}n=t+16|0;r=o[n>>2]|0;if(!r)break;else{t=r;e=n}}o[e>>2]=0;n=t}else{n=o[s+8>>2]|0;o[n+12>>2]=t;o[t+8>>2]=n;n=t}}while(0);do{if(i|0){t=o[s+28>>2]|0;e=11436+(t<<2)|0;if((s|0)==(o[e>>2]|0)){o[e>>2]=n;if(!n){o[2784]=l&~(1<>2]|0)!=(s|0)&1)<<2)>>2]=n;if(!n)break}o[n+24>>2]=i;t=o[s+16>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}t=o[s+20>>2]|0;if(t|0){o[n+20>>2]=t;o[t+24>>2]=n}}}while(0);if(u>>>0<16){w=u+c|0;o[s+4>>2]=w|3;w=s+w+4|0;o[w>>2]=o[w>>2]|1}else{o[s+4>>2]=c|3;o[a+4>>2]=u|1;o[a+u>>2]=u;if(f|0){r=o[2788]|0;t=f>>>3;n=11172+(t<<1<<2)|0;t=1<>2]|0}o[e>>2]=r;o[t+12>>2]=r;o[r+8>>2]=t;o[r+12>>2]=n}o[2785]=u;o[2788]=a}w=s+8|0;h=E;return w|0}else d=c}else d=c}else d=c}else if(e>>>0<=4294967231){e=e+11|0;c=e&-8;s=o[2784]|0;if(s){r=0-c|0;e=e>>>8;if(e){if(c>>>0>16777215)l=31;else{d=(e+1048320|0)>>>16&8;D=e<>>16&4;D=D<>>16&2;l=14-(f|d|l)+(D<>>15)|0;l=c>>>(l+7|0)&1|l<<1}}else l=0;n=o[11436+(l<<2)>>2]|0;e:do{if(!n){n=0;e=0;D=57}else{e=0;a=c<<((l|0)==31?0:25-(l>>>1)|0);u=0;while(1){i=(o[n+4>>2]&-8)-c|0;if(i>>>0>>0)if(!i){e=n;r=0;i=n;D=61;break e}else{e=n;r=i}i=o[n+20>>2]|0;n=o[n+16+(a>>>31<<2)>>2]|0;u=(i|0)==0|(i|0)==(n|0)?u:i;i=(n|0)==0;if(i){n=u;D=57;break}else a=a<<((i^1)&1)}}}while(0);if((D|0)==57){if((n|0)==0&(e|0)==0){e=2<>>12&16;d=d>>>a;u=d>>>5&8;d=d>>>u;l=d>>>2&4;d=d>>>l;f=d>>>1&2;d=d>>>f;n=d>>>1&1;e=0;n=o[11436+((u|a|l|f|n)+(d>>>n)<<2)>>2]|0}if(!n){l=e;a=r}else{i=n;D=61}}if((D|0)==61)while(1){D=0;n=(o[i+4>>2]&-8)-c|0;d=n>>>0>>0;n=d?n:r;e=d?i:e;i=o[i+16+(((o[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){l=e;a=n;break}else{r=n;D=61}}if((l|0)!=0?a>>>0<((o[2785]|0)-c|0)>>>0:0){u=l+c|0;if(l>>>0>=u>>>0){w=0;h=E;return w|0}i=o[l+24>>2]|0;t=o[l+12>>2]|0;do{if((t|0)==(l|0)){e=l+20|0;t=o[e>>2]|0;if(!t){e=l+16|0;t=o[e>>2]|0;if(!t){t=0;break}}while(1){n=t+20|0;r=o[n>>2]|0;if(r|0){t=r;e=n;continue}n=t+16|0;r=o[n>>2]|0;if(!r)break;else{t=r;e=n}}o[e>>2]=0}else{w=o[l+8>>2]|0;o[w+12>>2]=t;o[t+8>>2]=w}}while(0);do{if(i){e=o[l+28>>2]|0;n=11436+(e<<2)|0;if((l|0)==(o[n>>2]|0)){o[n>>2]=t;if(!t){r=s&~(1<>2]|0)!=(l|0)&1)<<2)>>2]=t;if(!t){r=s;break}}o[t+24>>2]=i;e=o[l+16>>2]|0;if(e|0){o[t+16>>2]=e;o[e+24>>2]=t}e=o[l+20>>2]|0;if(e){o[t+20>>2]=e;o[e+24>>2]=t;r=s}else r=s}else r=s}while(0);do{if(a>>>0>=16){o[l+4>>2]=c|3;o[u+4>>2]=a|1;o[u+a>>2]=a;t=a>>>3;if(a>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<>2]|0}o[e>>2]=u;o[t+12>>2]=u;o[u+8>>2]=t;o[u+12>>2]=n;break}t=a>>>8;if(t){if(a>>>0>16777215)t=31;else{D=(t+1048320|0)>>>16&8;w=t<>>16&4;w=w<>>16&2;t=14-(y|D|t)+(w<>>15)|0;t=a>>>(t+7|0)&1|t<<1}}else t=0;n=11436+(t<<2)|0;o[u+28>>2]=t;e=u+16|0;o[e+4>>2]=0;o[e>>2]=0;e=1<>2]=u;o[u+24>>2]=n;o[u+12>>2]=u;o[u+8>>2]=u;break}e=a<<((t|0)==31?0:25-(t>>>1)|0);n=o[n>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(a|0)){D=97;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=96;break}else{e=e<<1;n=t}}if((D|0)==96){o[r>>2]=u;o[u+24>>2]=n;o[u+12>>2]=u;o[u+8>>2]=u;break}else if((D|0)==97){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=u;o[D>>2]=u;o[u+8>>2]=w;o[u+12>>2]=n;o[u+24>>2]=0;break}}else{w=a+c|0;o[l+4>>2]=w|3;w=l+w+4|0;o[w>>2]=o[w>>2]|1}}while(0);w=l+8|0;h=E;return w|0}else d=c}else d=c}else d=-1}while(0);n=o[2785]|0;if(n>>>0>=d>>>0){t=n-d|0;e=o[2788]|0;if(t>>>0>15){w=e+d|0;o[2788]=w;o[2785]=t;o[w+4>>2]=t|1;o[w+t>>2]=t;o[e+4>>2]=d|3}else{o[2785]=0;o[2788]=0;o[e+4>>2]=n|3;w=e+n+4|0;o[w>>2]=o[w>>2]|1}w=e+8|0;h=E;return w|0}a=o[2786]|0;if(a>>>0>d>>>0){y=a-d|0;o[2786]=y;w=o[2789]|0;D=w+d|0;o[2789]=D;o[D+4>>2]=y|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}if(!(o[2901]|0)){o[2903]=4096;o[2902]=4096;o[2904]=-1;o[2905]=-1;o[2906]=0;o[2894]=0;e=p&-16^1431655768;o[p>>2]=e;o[2901]=e;e=4096}else e=o[2903]|0;l=d+48|0;s=d+47|0;u=e+s|0;i=0-e|0;c=u&i;if(c>>>0<=d>>>0){w=0;h=E;return w|0}e=o[2893]|0;if(e|0?(f=o[2891]|0,p=f+c|0,p>>>0<=f>>>0|p>>>0>e>>>0):0){w=0;h=E;return w|0}e:do{if(!(o[2894]&4)){n=o[2789]|0;t:do{if(n){r=11580;while(1){e=o[r>>2]|0;if(e>>>0<=n>>>0?(b=r+4|0,(e+(o[b>>2]|0)|0)>>>0>n>>>0):0)break;e=o[r+8>>2]|0;if(!e){D=118;break t}else r=e}t=u-a&i;if(t>>>0<2147483647){e=lM(t|0)|0;if((e|0)==((o[r>>2]|0)+(o[b>>2]|0)|0)){if((e|0)!=(-1|0)){a=t;u=e;D=135;break e}}else{r=e;D=126}}else t=0}else D=118}while(0);do{if((D|0)==118){n=lM(0)|0;if((n|0)!=(-1|0)?(t=n,m=o[2902]|0,v=m+-1|0,t=((v&t|0)==0?0:(v+t&0-m)-t|0)+c|0,m=o[2891]|0,v=t+m|0,t>>>0>d>>>0&t>>>0<2147483647):0){b=o[2893]|0;if(b|0?v>>>0<=m>>>0|v>>>0>b>>>0:0){t=0;break}e=lM(t|0)|0;if((e|0)==(n|0)){a=t;u=n;D=135;break e}else{r=e;D=126}}else t=0}}while(0);do{if((D|0)==126){n=0-t|0;if(!(l>>>0>t>>>0&(t>>>0<2147483647&(r|0)!=(-1|0))))if((r|0)==(-1|0)){t=0;break}else{a=t;u=r;D=135;break e}e=o[2903]|0;e=s-t+e&0-e;if(e>>>0>=2147483647){a=t;u=r;D=135;break e}if((lM(e|0)|0)==(-1|0)){lM(n|0)|0;t=0;break}else{a=e+t|0;u=r;D=135;break e}}}while(0);o[2894]=o[2894]|4;D=133}else{t=0;D=133}}while(0);if(((D|0)==133?c>>>0<2147483647:0)?(y=lM(c|0)|0,b=lM(0)|0,g=b-y|0,_=g>>>0>(d+40|0)>>>0,!((y|0)==(-1|0)|_^1|y>>>0>>0&((y|0)!=(-1|0)&(b|0)!=(-1|0))^1)):0){a=_?g:t;u=y;D=135}if((D|0)==135){t=(o[2891]|0)+a|0;o[2891]=t;if(t>>>0>(o[2892]|0)>>>0)o[2892]=t;s=o[2789]|0;do{if(s){t=11580;while(1){e=o[t>>2]|0;n=t+4|0;r=o[n>>2]|0;if((u|0)==(e+r|0)){D=145;break}i=o[t+8>>2]|0;if(!i)break;else t=i}if(((D|0)==145?(o[t+12>>2]&8|0)==0:0)?s>>>0>>0&s>>>0>=e>>>0:0){o[n>>2]=r+a;w=s+8|0;w=(w&7|0)==0?0:0-w&7;D=s+w|0;w=(o[2786]|0)+(a-w)|0;o[2789]=D;o[2786]=w;o[D+4>>2]=w|1;o[D+w+4>>2]=40;o[2790]=o[2905];break}if(u>>>0<(o[2787]|0)>>>0)o[2787]=u;n=u+a|0;t=11580;while(1){if((o[t>>2]|0)==(n|0)){D=153;break}e=o[t+8>>2]|0;if(!e)break;else t=e}if((D|0)==153?(o[t+12>>2]&8|0)==0:0){o[t>>2]=u;f=t+4|0;o[f>>2]=(o[f>>2]|0)+a;f=u+8|0;f=u+((f&7|0)==0?0:0-f&7)|0;t=n+8|0;t=n+((t&7|0)==0?0:0-t&7)|0;c=f+d|0;l=t-f-d|0;o[f+4>>2]=d|3;do{if((t|0)!=(s|0)){if((t|0)==(o[2788]|0)){w=(o[2785]|0)+l|0;o[2785]=w;o[2788]=c;o[c+4>>2]=w|1;o[c+w>>2]=w;break}e=o[t+4>>2]|0;if((e&3|0)==1){a=e&-8;r=e>>>3;e:do{if(e>>>0<256){e=o[t+8>>2]|0;n=o[t+12>>2]|0;if((n|0)==(e|0)){o[2783]=o[2783]&~(1<>2]=n;o[n+8>>2]=e;break}}else{u=o[t+24>>2]|0;e=o[t+12>>2]|0;do{if((e|0)==(t|0)){r=t+16|0;n=r+4|0;e=o[n>>2]|0;if(!e){e=o[r>>2]|0;if(!e){e=0;break}else n=r}while(1){r=e+20|0;i=o[r>>2]|0;if(i|0){e=i;n=r;continue}r=e+16|0;i=o[r>>2]|0;if(!i)break;else{e=i;n=r}}o[n>>2]=0}else{w=o[t+8>>2]|0;o[w+12>>2]=e;o[e+8>>2]=w}}while(0);if(!u)break;n=o[t+28>>2]|0;r=11436+(n<<2)|0;do{if((t|0)!=(o[r>>2]|0)){o[u+16+(((o[u+16>>2]|0)!=(t|0)&1)<<2)>>2]=e;if(!e)break e}else{o[r>>2]=e;if(e|0)break;o[2784]=o[2784]&~(1<>2]=u;n=t+16|0;r=o[n>>2]|0;if(r|0){o[e+16>>2]=r;o[r+24>>2]=e}n=o[n+4>>2]|0;if(!n)break;o[e+20>>2]=n;o[n+24>>2]=e}}while(0);t=t+a|0;i=a+l|0}else i=l;t=t+4|0;o[t>>2]=o[t>>2]&-2;o[c+4>>2]=i|1;o[c+i>>2]=i;t=i>>>3;if(i>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<>2]|0}o[e>>2]=c;o[t+12>>2]=c;o[c+8>>2]=t;o[c+12>>2]=n;break}t=i>>>8;do{if(!t)t=0;else{if(i>>>0>16777215){t=31;break}D=(t+1048320|0)>>>16&8;w=t<>>16&4;w=w<>>16&2;t=14-(y|D|t)+(w<>>15)|0;t=i>>>(t+7|0)&1|t<<1}}while(0);r=11436+(t<<2)|0;o[c+28>>2]=t;e=c+16|0;o[e+4>>2]=0;o[e>>2]=0;e=o[2784]|0;n=1<>2]=c;o[c+24>>2]=r;o[c+12>>2]=c;o[c+8>>2]=c;break}e=i<<((t|0)==31?0:25-(t>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(i|0)){D=194;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=193;break}else{e=e<<1;n=t}}if((D|0)==193){o[r>>2]=c;o[c+24>>2]=n;o[c+12>>2]=c;o[c+8>>2]=c;break}else if((D|0)==194){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=c;o[D>>2]=c;o[c+8>>2]=w;o[c+12>>2]=n;o[c+24>>2]=0;break}}else{w=(o[2786]|0)+l|0;o[2786]=w;o[2789]=c;o[c+4>>2]=w|1}}while(0);w=f+8|0;h=E;return w|0}t=11580;while(1){e=o[t>>2]|0;if(e>>>0<=s>>>0?(w=e+(o[t+4>>2]|0)|0,w>>>0>s>>>0):0)break;t=o[t+8>>2]|0}i=w+-47|0;e=i+8|0;e=i+((e&7|0)==0?0:0-e&7)|0;i=s+16|0;e=e>>>0>>0?s:e;t=e+8|0;n=u+8|0;n=(n&7|0)==0?0:0-n&7;D=u+n|0;n=a+-40-n|0;o[2789]=D;o[2786]=n;o[D+4>>2]=n|1;o[D+n+4>>2]=40;o[2790]=o[2905];n=e+4|0;o[n>>2]=27;o[t>>2]=o[2895];o[t+4>>2]=o[2896];o[t+8>>2]=o[2897];o[t+12>>2]=o[2898];o[2895]=u;o[2896]=a;o[2898]=0;o[2897]=t;t=e+24|0;do{D=t;t=t+4|0;o[t>>2]=7}while((D+8|0)>>>0>>0);if((e|0)!=(s|0)){u=e-s|0;o[n>>2]=o[n>>2]&-2;o[s+4>>2]=u|1;o[e>>2]=u;t=u>>>3;if(u>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<>2]|0}o[e>>2]=s;o[t+12>>2]=s;o[s+8>>2]=t;o[s+12>>2]=n;break}t=u>>>8;if(t){if(u>>>0>16777215)n=31;else{D=(t+1048320|0)>>>16&8;w=t<>>16&4;w=w<>>16&2;n=14-(y|D|n)+(w<>>15)|0;n=u>>>(n+7|0)&1|n<<1}}else n=0;r=11436+(n<<2)|0;o[s+28>>2]=n;o[s+20>>2]=0;o[i>>2]=0;t=o[2784]|0;e=1<>2]=s;o[s+24>>2]=r;o[s+12>>2]=s;o[s+8>>2]=s;break}e=u<<((n|0)==31?0:25-(n>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(u|0)){D=216;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=215;break}else{e=e<<1;n=t}}if((D|0)==215){o[r>>2]=s;o[s+24>>2]=n;o[s+12>>2]=s;o[s+8>>2]=s;break}else if((D|0)==216){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=s;o[D>>2]=s;o[s+8>>2]=w;o[s+12>>2]=n;o[s+24>>2]=0;break}}}else{w=o[2787]|0;if((w|0)==0|u>>>0>>0)o[2787]=u;o[2895]=u;o[2896]=a;o[2898]=0;o[2792]=o[2901];o[2791]=-1;t=0;do{w=11172+(t<<1<<2)|0;o[w+12>>2]=w;o[w+8>>2]=w;t=t+1|0}while((t|0)!=32);w=u+8|0;w=(w&7|0)==0?0:0-w&7;D=u+w|0;w=a+-40-w|0;o[2789]=D;o[2786]=w;o[D+4>>2]=w|1;o[D+w+4>>2]=40;o[2790]=o[2905]}}while(0);t=o[2786]|0;if(t>>>0>d>>>0){y=t-d|0;o[2786]=y;w=o[2789]|0;D=w+d|0;o[2789]=D;o[D+4>>2]=y|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}}o[(Qk()|0)>>2]=12;w=0;h=E;return w|0}function Vk(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0;if(!e)return;n=e+-8|0;i=o[2787]|0;e=o[e+-4>>2]|0;t=e&-8;s=n+t|0;do{if(!(e&1)){r=o[n>>2]|0;if(!(e&3))return;a=n+(0-r)|0;u=r+t|0;if(a>>>0>>0)return;if((a|0)==(o[2788]|0)){e=s+4|0;t=o[e>>2]|0;if((t&3|0)!=3){l=a;t=u;break}o[2785]=u;o[e>>2]=t&-2;o[a+4>>2]=u|1;o[a+u>>2]=u;return}n=r>>>3;if(r>>>0<256){e=o[a+8>>2]|0;t=o[a+12>>2]|0;if((t|0)==(e|0)){o[2783]=o[2783]&~(1<>2]=t;o[t+8>>2]=e;l=a;t=u;break}}i=o[a+24>>2]|0;e=o[a+12>>2]|0;do{if((e|0)==(a|0)){n=a+16|0;t=n+4|0;e=o[t>>2]|0;if(!e){e=o[n>>2]|0;if(!e){e=0;break}else t=n}while(1){n=e+20|0;r=o[n>>2]|0;if(r|0){e=r;t=n;continue}n=e+16|0;r=o[n>>2]|0;if(!r)break;else{e=r;t=n}}o[t>>2]=0}else{l=o[a+8>>2]|0;o[l+12>>2]=e;o[e+8>>2]=l}}while(0);if(i){t=o[a+28>>2]|0;n=11436+(t<<2)|0;if((a|0)==(o[n>>2]|0)){o[n>>2]=e;if(!e){o[2784]=o[2784]&~(1<>2]|0)!=(a|0)&1)<<2)>>2]=e;if(!e){l=a;t=u;break}}o[e+24>>2]=i;t=a+16|0;n=o[t>>2]|0;if(n|0){o[e+16>>2]=n;o[n+24>>2]=e}t=o[t+4>>2]|0;if(t){o[e+20>>2]=t;o[t+24>>2]=e;l=a;t=u}else{l=a;t=u}}else{l=a;t=u}}else{l=n;a=n}}while(0);if(a>>>0>=s>>>0)return;e=s+4|0;r=o[e>>2]|0;if(!(r&1))return;if(!(r&2)){e=o[2788]|0;if((s|0)==(o[2789]|0)){s=(o[2786]|0)+t|0;o[2786]=s;o[2789]=l;o[l+4>>2]=s|1;if((l|0)!=(e|0))return;o[2788]=0;o[2785]=0;return}if((s|0)==(e|0)){s=(o[2785]|0)+t|0;o[2785]=s;o[2788]=a;o[l+4>>2]=s|1;o[a+s>>2]=s;return}i=(r&-8)+t|0;n=r>>>3;do{if(r>>>0<256){t=o[s+8>>2]|0;e=o[s+12>>2]|0;if((e|0)==(t|0)){o[2783]=o[2783]&~(1<>2]=e;o[e+8>>2]=t;break}}else{u=o[s+24>>2]|0;e=o[s+12>>2]|0;do{if((e|0)==(s|0)){n=s+16|0;t=n+4|0;e=o[t>>2]|0;if(!e){e=o[n>>2]|0;if(!e){n=0;break}else t=n}while(1){n=e+20|0;r=o[n>>2]|0;if(r|0){e=r;t=n;continue}n=e+16|0;r=o[n>>2]|0;if(!r)break;else{e=r;t=n}}o[t>>2]=0;n=e}else{n=o[s+8>>2]|0;o[n+12>>2]=e;o[e+8>>2]=n;n=e}}while(0);if(u|0){e=o[s+28>>2]|0;t=11436+(e<<2)|0;if((s|0)==(o[t>>2]|0)){o[t>>2]=n;if(!n){o[2784]=o[2784]&~(1<>2]|0)!=(s|0)&1)<<2)>>2]=n;if(!n)break}o[n+24>>2]=u;e=s+16|0;t=o[e>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}e=o[e+4>>2]|0;if(e|0){o[n+20>>2]=e;o[e+24>>2]=n}}}}while(0);o[l+4>>2]=i|1;o[a+i>>2]=i;if((l|0)==(o[2788]|0)){o[2785]=i;return}}else{o[e>>2]=r&-2;o[l+4>>2]=t|1;o[a+t>>2]=t;i=t}e=i>>>3;if(i>>>0<256){n=11172+(e<<1<<2)|0;t=o[2783]|0;e=1<>2]|0}o[t>>2]=l;o[e+12>>2]=l;o[l+8>>2]=e;o[l+12>>2]=n;return}e=i>>>8;if(e){if(i>>>0>16777215)e=31;else{a=(e+1048320|0)>>>16&8;s=e<>>16&4;s=s<>>16&2;e=14-(u|a|e)+(s<>>15)|0;e=i>>>(e+7|0)&1|e<<1}}else e=0;r=11436+(e<<2)|0;o[l+28>>2]=e;o[l+20>>2]=0;o[l+16>>2]=0;t=o[2784]|0;n=1<>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(i|0)){e=73;break}r=n+16+(t>>>31<<2)|0;e=o[r>>2]|0;if(!e){e=72;break}else{t=t<<1;n=e}}if((e|0)==72){o[r>>2]=l;o[l+24>>2]=n;o[l+12>>2]=l;o[l+8>>2]=l;break}else if((e|0)==73){a=n+8|0;s=o[a>>2]|0;o[s+12>>2]=l;o[a>>2]=l;o[l+8>>2]=s;o[l+12>>2]=n;o[l+24>>2]=0;break}}else{o[2784]=t|n;o[r>>2]=l;o[l+24>>2]=r;o[l+12>>2]=l;o[l+8>>2]=l}}while(0);s=(o[2791]|0)+-1|0;o[2791]=s;if(!s)e=11588;else return;while(1){e=o[e>>2]|0;if(!e)break;else e=e+8|0}o[2791]=-1;return}function Yk(){return 11628}function Kk(e){e=e|0;var t=0,n=0;t=h;h=h+16|0;n=t;o[n>>2]=tS(o[e+60>>2]|0)|0;e=Jk(ut(6,n|0)|0)|0;h=t;return e|0}function $k(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;d=h;h=h+48|0;c=d+16|0;u=d;i=d+32|0;l=e+28|0;r=o[l>>2]|0;o[i>>2]=r;s=e+20|0;r=(o[s>>2]|0)-r|0;o[i+4>>2]=r;o[i+8>>2]=t;o[i+12>>2]=n;r=r+n|0;a=e+60|0;o[u>>2]=o[a>>2];o[u+4>>2]=i;o[u+8>>2]=2;u=Jk(st(146,u|0)|0)|0;e:do{if((r|0)!=(u|0)){t=2;while(1){if((u|0)<0)break;r=r-u|0;m=o[i+4>>2]|0;p=u>>>0>m>>>0;i=p?i+8|0:i;t=(p<<31>>31)+t|0;m=u-(p?m:0)|0;o[i>>2]=(o[i>>2]|0)+m;p=i+4|0;o[p>>2]=(o[p>>2]|0)-m;o[c>>2]=o[a>>2];o[c+4>>2]=i;o[c+8>>2]=t;u=Jk(st(146,c|0)|0)|0;if((r|0)==(u|0)){f=3;break e}}o[e+16>>2]=0;o[l>>2]=0;o[s>>2]=0;o[e>>2]=o[e>>2]|32;if((t|0)==2)n=0;else n=n-(o[i+4>>2]|0)|0}else f=3}while(0);if((f|0)==3){m=o[e+44>>2]|0;o[e+16>>2]=m+(o[e+48>>2]|0);o[l>>2]=m;o[s>>2]=m}h=d;return n|0}function Xk(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;i=h;h=h+32|0;u=i;r=i+20|0;o[u>>2]=o[e+60>>2];o[u+4>>2]=0;o[u+8>>2]=t;o[u+12>>2]=r;o[u+16>>2]=n;if((Jk(lt(140,u|0)|0)|0)<0){o[r>>2]=-1;e=-1}else e=o[r>>2]|0;h=i;return e|0}function Jk(e){e=e|0;if(e>>>0>4294963200){o[(Qk()|0)>>2]=0-e;e=-1}return e|0}function Qk(){return(Zk()|0)+64|0}function Zk(){return eS()|0}function eS(){return 2084}function tS(e){e=e|0;return e|0}function nS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0;u=h;h=h+32|0;i=u;o[e+36>>2]=1;if((o[e>>2]&64|0)==0?(o[i>>2]=o[e+60>>2],o[i+4>>2]=21523,o[i+8>>2]=u+16,Je(54,i|0)|0):0)r[e+75>>0]=-1;i=$k(e,t,n)|0;h=u;return i|0}function rS(e,t){e=e|0;t=t|0;var n=0,i=0;n=r[e>>0]|0;i=r[t>>0]|0;if(n<<24>>24==0?1:n<<24>>24!=i<<24>>24)e=i;else{do{e=e+1|0;t=t+1|0;n=r[e>>0]|0;i=r[t>>0]|0}while(!(n<<24>>24==0?1:n<<24>>24!=i<<24>>24));e=i}return(n&255)-(e&255)|0}function iS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;e:do{if(!n)e=0;else{while(1){i=r[e>>0]|0;o=r[t>>0]|0;if(i<<24>>24!=o<<24>>24)break;n=n+-1|0;if(!n){e=0;break e}else{e=e+1|0;t=t+1|0}}e=(i&255)-(o&255)|0}}while(0);return e|0}function oS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0;g=h;h=h+224|0;d=g+120|0;p=g+80|0;v=g;b=g+136|0;i=p;u=i+40|0;do{o[i>>2]=0;i=i+4|0}while((i|0)<(u|0));o[d>>2]=o[n>>2];if((uS(0,t,d,v,p)|0)<0)n=-1;else{if((o[e+76>>2]|0)>-1)m=aS(e)|0;else m=0;n=o[e>>2]|0;f=n&32;if((r[e+74>>0]|0)<1)o[e>>2]=n&-33;i=e+48|0;if(!(o[i>>2]|0)){u=e+44|0;a=o[u>>2]|0;o[u>>2]=b;l=e+28|0;o[l>>2]=b;s=e+20|0;o[s>>2]=b;o[i>>2]=80;c=e+16|0;o[c>>2]=b+80;n=uS(e,t,d,v,p)|0;if(a){_x[o[e+36>>2]&7](e,0,0)|0;n=(o[s>>2]|0)==0?-1:n;o[u>>2]=a;o[i>>2]=0;o[c>>2]=0;o[l>>2]=0;o[s>>2]=0}}else n=uS(e,t,d,v,p)|0;i=o[e>>2]|0;o[e>>2]=i|f;if(m|0)lS(e);n=(i&32|0)==0?n:-1}h=g;return n|0}function uS(e,t,n,u,a){e=e|0;t=t|0;n=n|0;u=u|0;a=a|0;var l=0,s=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,A=0,P=0,O=0,R=0;R=h;h=h+64|0;M=R+16|0;A=R;k=R+24|0;P=R+8|0;O=R+20|0;o[M>>2]=t;E=(e|0)!=0;C=k+40|0;T=C;k=k+39|0;S=P+4|0;s=0;l=0;m=0;e:while(1){do{if((l|0)>-1)if((s|0)>(2147483647-l|0)){o[(Qk()|0)>>2]=75;l=-1;break}else{l=s+l|0;break}}while(0);s=r[t>>0]|0;if(!(s<<24>>24)){w=87;break}else f=t;t:while(1){switch(s<<24>>24){case 37:{s=f;w=9;break t}case 0:{s=f;break t}default:{}}D=f+1|0;o[M>>2]=D;s=r[D>>0]|0;f=D}t:do{if((w|0)==9)while(1){w=0;if((r[f+1>>0]|0)!=37)break t;s=s+1|0;f=f+2|0;o[M>>2]=f;if((r[f>>0]|0)==37)w=9;else break}}while(0);s=s-t|0;if(E)sS(e,t,s);if(s|0){t=f;continue}d=f+1|0;s=(r[d>>0]|0)+-48|0;if(s>>>0<10){D=(r[f+2>>0]|0)==36;y=D?s:-1;m=D?1:m;d=D?f+3|0:d}else y=-1;o[M>>2]=d;s=r[d>>0]|0;f=(s<<24>>24)+-32|0;t:do{if(f>>>0<32){p=0;v=s;while(1){s=1<>2]=d;s=r[d>>0]|0;f=(s<<24>>24)+-32|0;if(f>>>0>=32)break;else v=s}}else p=0}while(0);if(s<<24>>24==42){f=d+1|0;s=(r[f>>0]|0)+-48|0;if(s>>>0<10?(r[d+2>>0]|0)==36:0){o[a+(s<<2)>>2]=10;s=o[u+((r[f>>0]|0)+-48<<3)>>2]|0;m=1;d=d+3|0}else{if(m|0){l=-1;break}if(E){m=(o[n>>2]|0)+(4-1)&~(4-1);s=o[m>>2]|0;o[n>>2]=m+4;m=0;d=f}else{s=0;m=0;d=f}}o[M>>2]=d;D=(s|0)<0;s=D?0-s|0:s;p=D?p|8192:p}else{s=cS(M)|0;if((s|0)<0){l=-1;break}d=o[M>>2]|0}do{if((r[d>>0]|0)==46){if((r[d+1>>0]|0)!=42){o[M>>2]=d+1;f=cS(M)|0;d=o[M>>2]|0;break}v=d+2|0;f=(r[v>>0]|0)+-48|0;if(f>>>0<10?(r[d+3>>0]|0)==36:0){o[a+(f<<2)>>2]=10;f=o[u+((r[v>>0]|0)+-48<<3)>>2]|0;d=d+4|0;o[M>>2]=d;break}if(m|0){l=-1;break e}if(E){D=(o[n>>2]|0)+(4-1)&~(4-1);f=o[D>>2]|0;o[n>>2]=D+4}else f=0;o[M>>2]=v;d=v}else f=-1}while(0);_=0;while(1){if(((r[d>>0]|0)+-65|0)>>>0>57){l=-1;break e}D=d+1|0;o[M>>2]=D;v=r[(r[d>>0]|0)+-65+(5178+(_*58|0))>>0]|0;b=v&255;if((b+-1|0)>>>0<8){_=b;d=D}else break}if(!(v<<24>>24)){l=-1;break}g=(y|0)>-1;do{if(v<<24>>24==19){if(g){l=-1;break e}else w=49}else{if(g){o[a+(y<<2)>>2]=b;g=u+(y<<3)|0;y=o[g+4>>2]|0;w=A;o[w>>2]=o[g>>2];o[w+4>>2]=y;w=49;break}if(!E){l=0;break e}fS(A,b,n)}}while(0);if((w|0)==49?(w=0,!E):0){s=0;t=D;continue}d=r[d>>0]|0;d=(_|0)!=0&(d&15|0)==3?d&-33:d;g=p&-65537;y=(p&8192|0)==0?p:g;t:do{switch(d|0){case 110:switch((_&255)<<24>>24){case 0:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 1:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 2:{s=o[A>>2]|0;o[s>>2]=l;o[s+4>>2]=((l|0)<0)<<31>>31;s=0;t=D;continue e}case 3:{i[o[A>>2]>>1]=l;s=0;t=D;continue e}case 4:{r[o[A>>2]>>0]=l;s=0;t=D;continue e}case 6:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 7:{s=o[A>>2]|0;o[s>>2]=l;o[s+4>>2]=((l|0)<0)<<31>>31;s=0;t=D;continue e}default:{s=0;t=D;continue e}}case 112:{d=120;f=f>>>0>8?f:8;t=y|8;w=61;break}case 88:case 120:{t=y;w=61;break}case 111:{d=A;t=o[d>>2]|0;d=o[d+4>>2]|0;b=pS(t,d,C)|0;g=T-b|0;p=0;v=5642;f=(y&8|0)==0|(f|0)>(g|0)?f:g+1|0;g=y;w=67;break}case 105:case 100:{d=A;t=o[d>>2]|0;d=o[d+4>>2]|0;if((d|0)<0){t=ZS(0,0,t|0,d|0)|0;d=x;p=A;o[p>>2]=t;o[p+4>>2]=d;p=1;v=5642;w=66;break t}else{p=(y&2049|0)!=0&1;v=(y&2048|0)==0?(y&1|0)==0?5642:5644:5643;w=66;break t}}case 117:{d=A;p=0;v=5642;t=o[d>>2]|0;d=o[d+4>>2]|0;w=66;break}case 99:{r[k>>0]=o[A>>2];t=k;p=0;v=5642;b=C;d=1;f=g;break}case 109:{d=mS(o[(Qk()|0)>>2]|0)|0;w=71;break}case 115:{d=o[A>>2]|0;d=d|0?d:5652;w=71;break}case 67:{o[P>>2]=o[A>>2];o[S>>2]=0;o[A>>2]=P;b=-1;d=P;w=75;break}case 83:{t=o[A>>2]|0;if(!f){bS(e,32,s,0,y);t=0;w=84}else{b=f;d=t;w=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{s=_S(e,+c[A>>3],s,f,y,d)|0;t=D;continue e}default:{p=0;v=5642;b=C;d=f;f=y}}}while(0);t:do{if((w|0)==61){y=A;_=o[y>>2]|0;y=o[y+4>>2]|0;b=dS(_,y,C,d&32)|0;v=(t&8|0)==0|(_|0)==0&(y|0)==0;p=v?0:2;v=v?5642:5642+(d>>4)|0;g=t;t=_;d=y;w=67}else if((w|0)==66){b=hS(t,d,C)|0;g=y;w=67}else if((w|0)==71){w=0;y=vS(d,0,f)|0;_=(y|0)==0;t=d;p=0;v=5642;b=_?d+f|0:y;d=_?f:y-d|0;f=g}else if((w|0)==75){w=0;v=d;t=0;f=0;while(1){p=o[v>>2]|0;if(!p)break;f=gS(O,p)|0;if((f|0)<0|f>>>0>(b-t|0)>>>0)break;t=f+t|0;if(b>>>0>t>>>0)v=v+4|0;else break}if((f|0)<0){l=-1;break e}bS(e,32,s,t,y);if(!t){t=0;w=84}else{p=0;while(1){f=o[d>>2]|0;if(!f){w=84;break t}f=gS(O,f)|0;p=f+p|0;if((p|0)>(t|0)){w=84;break t}sS(e,O,f);if(p>>>0>=t>>>0){w=84;break}else d=d+4|0}}}}while(0);if((w|0)==67){w=0;d=(t|0)!=0|(d|0)!=0;y=(f|0)!=0|d;d=((d^1)&1)+(T-b)|0;t=y?b:C;b=C;d=y?(f|0)>(d|0)?f:d:f;f=(f|0)>-1?g&-65537:g}else if((w|0)==84){w=0;bS(e,32,s,t,y^8192);s=(s|0)>(t|0)?s:t;t=D;continue}_=b-t|0;g=(d|0)<(_|0)?_:d;y=g+p|0;s=(s|0)<(y|0)?y:s;bS(e,32,s,y,f);sS(e,v,p);bS(e,48,s,y,f^65536);bS(e,48,g,_,0);sS(e,t,_);bS(e,32,s,y,f^8192);t=D}e:do{if((w|0)==87)if(!e)if(!m)l=0;else{l=1;while(1){t=o[a+(l<<2)>>2]|0;if(!t)break;fS(u+(l<<3)|0,t,n);l=l+1|0;if((l|0)>=10){l=1;break e}}while(1){if(o[a+(l<<2)>>2]|0){l=-1;break e}l=l+1|0;if((l|0)>=10){l=1;break}}}}while(0);h=R;return l|0}function aS(e){e=e|0;return 0}function lS(e){e=e|0;return}function sS(e,t,n){e=e|0;t=t|0;n=n|0;if(!(o[e>>2]&32))PS(t,n,e)|0;return}function cS(e){e=e|0;var t=0,n=0,i=0;n=o[e>>2]|0;i=(r[n>>0]|0)+-48|0;if(i>>>0<10){t=0;do{t=i+(t*10|0)|0;n=n+1|0;o[e>>2]=n;i=(r[n>>0]|0)+-48|0}while(i>>>0<10)}else t=0;return t|0}function fS(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0.0;e:do{if(t>>>0<=20)do{switch(t|0){case 9:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;o[e>>2]=t;break e}case 10:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=((t|0)<0)<<31>>31;break e}case 11:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=0;break e}case 12:{r=(o[n>>2]|0)+(8-1)&~(8-1);t=r;i=o[t>>2]|0;t=o[t+4>>2]|0;o[n>>2]=r+8;r=e;o[r>>2]=i;o[r+4>>2]=t;break e}case 13:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&65535)<<16>>16;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 14:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&65535;o[i+4>>2]=0;break e}case 15:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&255)<<24>>24;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 16:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&255;o[i+4>>2]=0;break e}case 17:{i=(o[n>>2]|0)+(8-1)&~(8-1);u=+c[i>>3];o[n>>2]=i+8;c[e>>3]=u;break e}case 18:{i=(o[n>>2]|0)+(8-1)&~(8-1);u=+c[i>>3];o[n>>2]=i+8;c[e>>3]=u;break e}default:break e}}while(0)}while(0);return}function dS(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=u[5694+(e&15)>>0]|0|i;e=rM(e|0,t|0,4)|0;t=x}while(!((e|0)==0&(t|0)==0));return n|0}function pS(e,t,n){e=e|0;t=t|0;n=n|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=e&7|48;e=rM(e|0,t|0,3)|0;t=x}while(!((e|0)==0&(t|0)==0));return n|0}function hS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;if(t>>>0>0|(t|0)==0&e>>>0>4294967295){while(1){i=cM(e|0,t|0,10,0)|0;n=n+-1|0;r[n>>0]=i&255|48;i=e;e=aM(e|0,t|0,10,0)|0;if(!(t>>>0>9|(t|0)==9&i>>>0>4294967295))break;else t=x}t=e}else t=e;if(t)while(1){n=n+-1|0;r[n>>0]=(t>>>0)%10|0|48;if(t>>>0<10)break;else t=(t>>>0)/10|0}return n|0}function mS(e){e=e|0;return kS(e,o[(TS()|0)+188>>2]|0)|0}function vS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0;a=t&255;i=(n|0)!=0;e:do{if(i&(e&3|0)!=0){u=t&255;while(1){if((r[e>>0]|0)==u<<24>>24){l=6;break e}e=e+1|0;n=n+-1|0;i=(n|0)!=0;if(!(i&(e&3|0)!=0)){l=5;break}}}else l=5}while(0);if((l|0)==5)if(i)l=6;else n=0;e:do{if((l|0)==6){u=t&255;if((r[e>>0]|0)!=u<<24>>24){i=H(a,16843009)|0;t:do{if(n>>>0>3)while(1){a=o[e>>2]^i;if((a&-2139062144^-2139062144)&a+-16843009|0)break;e=e+4|0;n=n+-4|0;if(n>>>0<=3){l=11;break t}}else l=11}while(0);if((l|0)==11)if(!n){n=0;break}while(1){if((r[e>>0]|0)==u<<24>>24)break e;e=e+1|0;n=n+-1|0;if(!n){n=0;break}}}}}while(0);return(n|0?e:0)|0}function bS(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var o=0,u=0;u=h;h=h+256|0;o=u;if((n|0)>(r|0)&(i&73728|0)==0){i=n-r|0;tM(o|0,t|0,(i>>>0<256?i:256)|0)|0;if(i>>>0>255){t=n-r|0;do{sS(e,o,256);i=i+-256|0}while(i>>>0>255);i=t&255}sS(e,o,i)}h=u;return}function gS(e,t){e=e|0;t=t|0;if(!e)e=0;else e=ES(e,t,0)|0;return e|0}function _S(e,t,n,i,a,l){e=e|0;t=+t;n=n|0;i=i|0;a=a|0;l=l|0;var s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0.0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,A=0,P=0,O=0,R=0;R=h;h=h+560|0;f=R+8|0;y=R;O=R+524|0;P=O;d=R+512|0;o[y>>2]=0;A=d+12|0;yS(t)|0;if((x|0)<0){t=-t;S=1;k=5659}else{S=(a&2049|0)!=0&1;k=(a&2048|0)==0?(a&1|0)==0?5660:5665:5662}yS(t)|0;M=x&2146435072;do{if(M>>>0<2146435072|(M|0)==2146435072&0<0){b=+DS(t,y)*2.0;s=b!=0.0;if(s)o[y>>2]=(o[y>>2]|0)+-1;w=l|32;if((w|0)==97){g=l&32;v=(g|0)==0?k:k+9|0;m=S|2;s=12-i|0;do{if(!(i>>>0>11|(s|0)==0)){t=8.0;do{s=s+-1|0;t=t*16.0}while((s|0)!=0);if((r[v>>0]|0)==45){t=-(t+(-b-t));break}else{t=b+t-t;break}}else t=b}while(0);c=o[y>>2]|0;s=(c|0)<0?0-c|0:c;s=hS(s,((s|0)<0)<<31>>31,A)|0;if((s|0)==(A|0)){s=d+11|0;r[s>>0]=48}r[s+-1>>0]=(c>>31&2)+43;p=s+-2|0;r[p>>0]=l+15;d=(i|0)<1;f=(a&8|0)==0;s=O;do{M=~~t;c=s+1|0;r[s>>0]=u[5694+M>>0]|g;t=(t-+(M|0))*16.0;if((c-P|0)==1?!(f&(d&t==0.0)):0){r[c>>0]=46;s=s+2|0}else s=c}while(t!=0.0);M=s-P|0;P=A-p|0;A=(i|0)!=0&(M+-2|0)<(i|0)?i+2|0:M;s=P+m+A|0;bS(e,32,n,s,a);sS(e,v,m);bS(e,48,n,s,a^65536);sS(e,O,M);bS(e,48,A-M|0,0,0);sS(e,p,P);bS(e,32,n,s,a^8192);break}c=(i|0)<0?6:i;if(s){s=(o[y>>2]|0)+-28|0;o[y>>2]=s;t=b*268435456.0}else{t=b;s=o[y>>2]|0}M=(s|0)<0?f:f+288|0;f=M;do{C=~~t>>>0;o[f>>2]=C;f=f+4|0;t=(t-+(C>>>0))*1.0e9}while(t!=0.0);if((s|0)>0){d=M;m=f;while(1){p=(s|0)<29?s:29;s=m+-4|0;if(s>>>0>=d>>>0){f=0;do{E=nM(o[s>>2]|0,0,p|0)|0;E=eM(E|0,x|0,f|0,0)|0;C=x;D=cM(E|0,C|0,1e9,0)|0;o[s>>2]=D;f=aM(E|0,C|0,1e9,0)|0;s=s+-4|0}while(s>>>0>=d>>>0);if(f){d=d+-4|0;o[d>>2]=f}}f=m;while(1){if(f>>>0<=d>>>0)break;s=f+-4|0;if(!(o[s>>2]|0))f=s;else break}s=(o[y>>2]|0)-p|0;o[y>>2]=s;if((s|0)>0)m=f;else break}}else d=M;if((s|0)<0){i=((c+25|0)/9|0)+1|0;_=(w|0)==102;do{g=0-s|0;g=(g|0)<9?g:9;if(d>>>0>>0){p=(1<>>g;v=0;s=d;do{C=o[s>>2]|0;o[s>>2]=(C>>>g)+v;v=H(C&p,m)|0;s=s+4|0}while(s>>>0>>0);s=(o[d>>2]|0)==0?d+4|0:d;if(!v){d=s;s=f}else{o[f>>2]=v;d=s;s=f+4|0}}else{d=(o[d>>2]|0)==0?d+4|0:d;s=f}f=_?M:d;f=(s-f>>2|0)>(i|0)?f+(i<<2)|0:s;s=(o[y>>2]|0)+g|0;o[y>>2]=s}while((s|0)<0);s=d;i=f}else{s=d;i=f}C=M;if(s>>>0>>0){f=(C-s>>2)*9|0;p=o[s>>2]|0;if(p>>>0>=10){d=10;do{d=d*10|0;f=f+1|0}while(p>>>0>=d>>>0)}}else f=0;_=(w|0)==103;D=(c|0)!=0;d=c-((w|0)!=102?f:0)+((D&_)<<31>>31)|0;if((d|0)<(((i-C>>2)*9|0)+-9|0)){d=d+9216|0;g=M+4+(((d|0)/9|0)+-1024<<2)|0;d=((d|0)%9|0)+1|0;if((d|0)<9){p=10;do{p=p*10|0;d=d+1|0}while((d|0)!=9)}else p=10;m=o[g>>2]|0;v=(m>>>0)%(p>>>0)|0;d=(g+4|0)==(i|0);if(!(d&(v|0)==0)){b=(((m>>>0)/(p>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;E=(p|0)/2|0;t=v>>>0>>0?.5:d&(v|0)==(E|0)?1.0:1.5;if(S){E=(r[k>>0]|0)==45;t=E?-t:t;b=E?-b:b}d=m-v|0;o[g>>2]=d;if(b+t!=b){E=d+p|0;o[g>>2]=E;if(E>>>0>999999999){f=g;while(1){d=f+-4|0;o[f>>2]=0;if(d>>>0>>0){s=s+-4|0;o[s>>2]=0}E=(o[d>>2]|0)+1|0;o[d>>2]=E;if(E>>>0>999999999)f=d;else break}}else d=g;f=(C-s>>2)*9|0;m=o[s>>2]|0;if(m>>>0>=10){p=10;do{p=p*10|0;f=f+1|0}while(m>>>0>=p>>>0)}}else d=g}else d=g;d=d+4|0;d=i>>>0>d>>>0?d:i;E=s}else{d=i;E=s}w=d;while(1){if(w>>>0<=E>>>0){y=0;break}s=w+-4|0;if(!(o[s>>2]|0))w=s;else{y=1;break}}i=0-f|0;do{if(_){s=((D^1)&1)+c|0;if((s|0)>(f|0)&(f|0)>-5){p=l+-1|0;c=s+-1-f|0}else{p=l+-2|0;c=s+-1|0}s=a&8;if(!s){if(y?(T=o[w+-4>>2]|0,(T|0)!=0):0){if(!((T>>>0)%10|0)){d=0;s=10;do{s=s*10|0;d=d+1|0}while(!((T>>>0)%(s>>>0)|0|0))}else d=0}else d=9;s=((w-C>>2)*9|0)+-9|0;if((p|32|0)==102){g=s-d|0;g=(g|0)>0?g:0;c=(c|0)<(g|0)?c:g;g=0;break}else{g=s+f-d|0;g=(g|0)>0?g:0;c=(c|0)<(g|0)?c:g;g=0;break}}else g=s}else{p=l;g=a&8}}while(0);_=c|g;m=(_|0)!=0&1;v=(p|32|0)==102;if(v){D=0;s=(f|0)>0?f:0}else{s=(f|0)<0?i:f;s=hS(s,((s|0)<0)<<31>>31,A)|0;d=A;if((d-s|0)<2)do{s=s+-1|0;r[s>>0]=48}while((d-s|0)<2);r[s+-1>>0]=(f>>31&2)+43;s=s+-2|0;r[s>>0]=p;D=s;s=d-s|0}s=S+1+c+m+s|0;bS(e,32,n,s,a);sS(e,k,S);bS(e,48,n,s,a^65536);if(v){p=E>>>0>M>>>0?M:E;g=O+9|0;m=g;v=O+8|0;d=p;do{f=hS(o[d>>2]|0,0,g)|0;if((d|0)==(p|0)){if((f|0)==(g|0)){r[v>>0]=48;f=v}}else if(f>>>0>O>>>0){tM(O|0,48,f-P|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}sS(e,f,m-f|0);d=d+4|0}while(d>>>0<=M>>>0);if(_|0)sS(e,5710,1);if(d>>>0>>0&(c|0)>0)while(1){f=hS(o[d>>2]|0,0,g)|0;if(f>>>0>O>>>0){tM(O|0,48,f-P|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}sS(e,f,(c|0)<9?c:9);d=d+4|0;f=c+-9|0;if(!(d>>>0>>0&(c|0)>9)){c=f;break}else c=f}bS(e,48,c+9|0,9,0)}else{_=y?w:E+4|0;if((c|0)>-1){y=O+9|0;g=(g|0)==0;i=y;m=0-P|0;v=O+8|0;p=E;do{f=hS(o[p>>2]|0,0,y)|0;if((f|0)==(y|0)){r[v>>0]=48;f=v}do{if((p|0)==(E|0)){d=f+1|0;sS(e,f,1);if(g&(c|0)<1){f=d;break}sS(e,5710,1);f=d}else{if(f>>>0<=O>>>0)break;tM(O|0,48,f+m|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}}while(0);P=i-f|0;sS(e,f,(c|0)>(P|0)?P:c);c=c-P|0;p=p+4|0}while(p>>>0<_>>>0&(c|0)>-1)}bS(e,48,c+18|0,18,0);sS(e,D,A-D|0)}bS(e,32,n,s,a^8192)}else{O=(l&32|0)!=0;s=S+3|0;bS(e,32,n,s,a&-65537);sS(e,k,S);sS(e,t!=t|0.0!=0.0?O?5686:5690:O?5678:5682,3);bS(e,32,n,s,a^8192)}}while(0);h=R;return((s|0)<(n|0)?n:s)|0}function yS(e){e=+e;var t=0;c[d>>3]=e;t=o[d>>2]|0;x=o[d+4>>2]|0;return t|0}function DS(e,t){e=+e;t=t|0;return+ +wS(e,t)}function wS(e,t){e=+e;t=t|0;var n=0,r=0,i=0;c[d>>3]=e;n=o[d>>2]|0;r=o[d+4>>2]|0;i=rM(n|0,r|0,52)|0;switch(i&2047){case 0:{if(e!=0.0){e=+wS(e*18446744073709551616.0,t);n=(o[t>>2]|0)+-64|0}else n=0;o[t>>2]=n;break}case 2047:break;default:{o[t>>2]=(i&2047)+-1022;o[d>>2]=n;o[d+4>>2]=r&-2146435073|1071644672;e=+c[d>>3]}}return+e}function ES(e,t,n){e=e|0;t=t|0;n=n|0;do{if(e){if(t>>>0<128){r[e>>0]=t;e=1;break}if(!(o[o[(CS()|0)+188>>2]>>2]|0))if((t&-128|0)==57216){r[e>>0]=t;e=1;break}else{o[(Qk()|0)>>2]=84;e=-1;break}if(t>>>0<2048){r[e>>0]=t>>>6|192;r[e+1>>0]=t&63|128;e=2;break}if(t>>>0<55296|(t&-8192|0)==57344){r[e>>0]=t>>>12|224;r[e+1>>0]=t>>>6&63|128;r[e+2>>0]=t&63|128;e=3;break}if((t+-65536|0)>>>0<1048576){r[e>>0]=t>>>18|240;r[e+1>>0]=t>>>12&63|128;r[e+2>>0]=t>>>6&63|128;r[e+3>>0]=t&63|128;e=4;break}else{o[(Qk()|0)>>2]=84;e=-1;break}}else e=1}while(0);return e|0}function CS(){return eS()|0}function TS(){return eS()|0}function kS(e,t){e=e|0;t=t|0;var n=0,i=0;i=0;while(1){if((u[5712+i>>0]|0)==(e|0)){e=2;break}n=i+1|0;if((n|0)==87){n=5800;i=87;e=5;break}else i=n}if((e|0)==2)if(!i)n=5800;else{n=5800;e=5}if((e|0)==5)while(1){do{e=n;n=n+1|0}while((r[e>>0]|0)!=0);i=i+-1|0;if(!i)break;else e=5}return SS(n,o[t+20>>2]|0)|0}function SS(e,t){e=e|0;t=t|0;return MS(e,t)|0}function MS(e,t){e=e|0;t=t|0;if(!t)t=0;else t=xS(o[t>>2]|0,o[t+4>>2]|0,e)|0;return(t|0?t:e)|0}function xS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,h=0;h=(o[e>>2]|0)+1794895138|0;a=AS(o[e+8>>2]|0,h)|0;i=AS(o[e+12>>2]|0,h)|0;u=AS(o[e+16>>2]|0,h)|0;e:do{if((a>>>0>>2>>>0?(p=t-(a<<2)|0,i>>>0

>>0&u>>>0

>>0):0)?((u|i)&3|0)==0:0){p=i>>>2;d=u>>>2;f=0;while(1){s=a>>>1;c=f+s|0;l=c<<1;u=l+p|0;i=AS(o[e+(u<<2)>>2]|0,h)|0;u=AS(o[e+(u+1<<2)>>2]|0,h)|0;if(!(u>>>0>>0&i>>>0<(t-u|0)>>>0)){i=0;break e}if(r[e+(u+i)>>0]|0){i=0;break e}i=rS(n,e+u|0)|0;if(!i)break;i=(i|0)<0;if((a|0)==1){i=0;break e}else{f=i?f:c;a=i?s:a-s|0}}i=l+d|0;u=AS(o[e+(i<<2)>>2]|0,h)|0;i=AS(o[e+(i+1<<2)>>2]|0,h)|0;if(i>>>0>>0&u>>>0<(t-i|0)>>>0)i=(r[e+(i+u)>>0]|0)==0?e+i|0:0;else i=0}else i=0}while(0);return i|0}function AS(e,t){e=e|0;t=t|0;var n=0;n=fM(e|0)|0;return((t|0)==0?e:n)|0}function PS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0;i=n+16|0;u=o[i>>2]|0;if(!u){if(!(OS(n)|0)){u=o[i>>2]|0;a=5}else i=0}else a=5;e:do{if((a|0)==5){s=n+20|0;l=o[s>>2]|0;i=l;if((u-l|0)>>>0>>0){i=_x[o[n+36>>2]&7](n,e,t)|0;break}t:do{if((r[n+75>>0]|0)>-1){l=t;while(1){if(!l){a=0;u=e;break t}u=l+-1|0;if((r[e+u>>0]|0)==10)break;else l=u}i=_x[o[n+36>>2]&7](n,e,l)|0;if(i>>>0>>0)break e;a=l;u=e+l|0;t=t-l|0;i=o[s>>2]|0}else{a=0;u=e}}while(0);iM(i|0,u|0,t|0)|0;o[s>>2]=(o[s>>2]|0)+t;i=a+t|0}}while(0);return i|0}function OS(e){e=e|0;var t=0,n=0;t=e+74|0;n=r[t>>0]|0;r[t>>0]=n+255|n;t=o[e>>2]|0;if(!(t&8)){o[e+8>>2]=0;o[e+4>>2]=0;n=o[e+44>>2]|0;o[e+28>>2]=n;o[e+20>>2]=n;o[e+16>>2]=n+(o[e+48>>2]|0);e=0}else{o[e>>2]=t|32;e=-1}return e|0}function RS(e,t){e=K(e);t=K(t);var n=0,r=0;n=NS(e)|0;do{if((n&2147483647)>>>0<=2139095040){r=NS(t)|0;if((r&2147483647)>>>0<=2139095040)if((r^n|0)<0){e=(n|0)<0?t:e;break}else{e=e>2]=e,o[d>>2]|0)|0}function IS(e,t){e=K(e);t=K(t);var n=0,r=0;n=FS(e)|0;do{if((n&2147483647)>>>0<=2139095040){r=FS(t)|0;if((r&2147483647)>>>0<=2139095040)if((r^n|0)<0){e=(n|0)<0?e:t;break}else{e=e>2]=e,o[d>>2]|0)|0}function BS(e,t){e=K(e);t=K(t);var n=0,r=0,i=0,u=0,a=0,l=0,c=0,f=0;u=(s[d>>2]=e,o[d>>2]|0);l=(s[d>>2]=t,o[d>>2]|0);n=u>>>23&255;a=l>>>23&255;c=u&-2147483648;i=l<<1;e:do{if((i|0)!=0?!((n|0)==255|((LS(t)|0)&2147483647)>>>0>2139095040):0){r=u<<1;if(r>>>0<=i>>>0){t=K(e*K(0.0));return K((r|0)==(i|0)?t:e)}if(!n){n=u<<9;if((n|0)>-1){r=n;n=0;do{n=n+-1|0;r=r<<1}while((r|0)>-1)}else n=0;r=u<<1-n}else r=u&8388607|8388608;if(!a){u=l<<9;if((u|0)>-1){i=0;do{i=i+-1|0;u=u<<1}while((u|0)>-1)}else i=0;a=i;l=l<<1-i}else l=l&8388607|8388608;i=r-l|0;u=(i|0)>-1;t:do{if((n|0)>(a|0)){while(1){if(u)if(!i)break;else r=i;r=r<<1;n=n+-1|0;i=r-l|0;u=(i|0)>-1;if((n|0)<=(a|0))break t}t=K(e*K(0.0));break e}}while(0);if(u)if(!i){t=K(e*K(0.0));break}else r=i;if(r>>>0<8388608)do{r=r<<1;n=n+-1|0}while(r>>>0<8388608);if((n|0)>0)n=r+-8388608|n<<23;else n=r>>>(1-n|0);t=(o[d>>2]=n|c,K(s[d>>2]))}else f=3}while(0);if((f|0)==3){t=K(e*t);t=K(t/t)}return K(t)}function LS(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function US(e,t){e=e|0;t=t|0;return oS(o[582]|0,e,t)|0}function jS(e){e=e|0;Ke()}function WS(e){e=e|0;return}function zS(e,t){e=e|0;t=t|0;return 0}function qS(e){e=e|0;if((HS(e+4|0)|0)==-1){hx[o[(o[e>>2]|0)+8>>2]&127](e);e=1}else e=0;return e|0}function HS(e){e=e|0;var t=0;t=o[e>>2]|0;o[e>>2]=t+-1;return t+-1|0}function GS(e){e=e|0;if(qS(e)|0)VS(e);return}function VS(e){e=e|0;var t=0;t=e+8|0;if(!((o[t>>2]|0)!=0?(HS(t)|0)!=-1:0))hx[o[(o[e>>2]|0)+16>>2]&127](e);return}function YS(e){e=e|0;var t=0;t=(e|0)==0?1:e;while(1){e=Gk(t)|0;if(e|0)break;e=JS()|0;if(!e){e=0;break}Ox[e&0]()}return e|0}function KS(e){e=e|0;return YS(e)|0}function $S(e){e=e|0;Vk(e);return}function XS(e){e=e|0;if((r[e+11>>0]|0)<0)$S(o[e>>2]|0);return}function JS(){var e=0;e=o[2923]|0;o[2923]=e+0;return e|0}function QS(){}function ZS(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=t-r-(n>>>0>e>>>0|0)>>>0;return(x=r,e-n>>>0|0)|0}function eM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;n=e+n>>>0;return(x=t+r+(n>>>0>>0|0)>>>0,n|0)|0}function tM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0;a=e+n|0;t=t&255;if((n|0)>=67){while(e&3){r[e>>0]=t;e=e+1|0}i=a&-4|0;u=i-64|0;l=t|t<<8|t<<16|t<<24;while((e|0)<=(u|0)){o[e>>2]=l;o[e+4>>2]=l;o[e+8>>2]=l;o[e+12>>2]=l;o[e+16>>2]=l;o[e+20>>2]=l;o[e+24>>2]=l;o[e+28>>2]=l;o[e+32>>2]=l;o[e+36>>2]=l;o[e+40>>2]=l;o[e+44>>2]=l;o[e+48>>2]=l;o[e+52>>2]=l;o[e+56>>2]=l;o[e+60>>2]=l;e=e+64|0}while((e|0)<(i|0)){o[e>>2]=l;e=e+4|0}}while((e|0)<(a|0)){r[e>>0]=t;e=e+1|0}return a-n|0}function nM(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){x=t<>>32-n;return e<>>n;return e>>>n|(t&(1<>>n-32|0}function iM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0;if((n|0)>=8192)return qe(e|0,t|0,n|0)|0;a=e|0;u=e+n|0;if((e&3)==(t&3)){while(e&3){if(!n)return a|0;r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;n=n-1|0}n=u&-4|0;i=n-64|0;while((e|0)<=(i|0)){o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2];o[e+16>>2]=o[t+16>>2];o[e+20>>2]=o[t+20>>2];o[e+24>>2]=o[t+24>>2];o[e+28>>2]=o[t+28>>2];o[e+32>>2]=o[t+32>>2];o[e+36>>2]=o[t+36>>2];o[e+40>>2]=o[t+40>>2];o[e+44>>2]=o[t+44>>2];o[e+48>>2]=o[t+48>>2];o[e+52>>2]=o[t+52>>2];o[e+56>>2]=o[t+56>>2];o[e+60>>2]=o[t+60>>2];e=e+64|0;t=t+64|0}while((e|0)<(n|0)){o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0}}else{n=u-4|0;while((e|0)<(n|0)){r[e>>0]=r[t>>0]|0;r[e+1>>0]=r[t+1>>0]|0;r[e+2>>0]=r[t+2>>0]|0;r[e+3>>0]=r[t+3>>0]|0;e=e+4|0;t=t+4|0}}while((e|0)<(u|0)){r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0}return a|0}function oM(e){e=e|0;var t=0;t=r[v+(e&255)>>0]|0;if((t|0)<8)return t|0;t=r[v+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=r[v+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(r[v+(e>>>24)>>0]|0)+24|0}function uM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,h=0,m=0;f=e;s=t;c=s;a=n;p=r;l=p;if(!c){u=(i|0)!=0;if(!l){if(u){o[i>>2]=(f>>>0)%(a>>>0);o[i+4>>2]=0}p=0;i=(f>>>0)/(a>>>0)>>>0;return(x=p,i)|0}else{if(!u){p=0;i=0;return(x=p,i)|0}o[i>>2]=e|0;o[i+4>>2]=t&0;p=0;i=0;return(x=p,i)|0}}u=(l|0)==0;do{if(a){if(!u){u=(Y(l|0)|0)-(Y(c|0)|0)|0;if(u>>>0<=31){d=u+1|0;l=31-u|0;t=u-31>>31;a=d;e=f>>>(d>>>0)&t|c<>>(d>>>0)&t;u=0;l=f<>2]=e|0;o[i+4>>2]=s|t&0;p=0;i=0;return(x=p,i)|0}u=a-1|0;if(u&a|0){l=(Y(a|0)|0)+33-(Y(c|0)|0)|0;m=64-l|0;d=32-l|0;s=d>>31;h=l-32|0;t=h>>31;a=l;e=d-1>>31&c>>>(h>>>0)|(c<>>(l>>>0))&t;t=t&c>>>(l>>>0);u=f<>>(h>>>0))&s|f<>31;break}if(i|0){o[i>>2]=u&f;o[i+4>>2]=0}if((a|0)==1){h=s|t&0;m=e|0|0;return(x=h,m)|0}else{m=oM(a|0)|0;h=c>>>(m>>>0)|0;m=c<<32-m|f>>>(m>>>0)|0;return(x=h,m)|0}}else{if(u){if(i|0){o[i>>2]=(c>>>0)%(a>>>0);o[i+4>>2]=0}h=0;m=(c>>>0)/(a>>>0)>>>0;return(x=h,m)|0}if(!f){if(i|0){o[i>>2]=0;o[i+4>>2]=(c>>>0)%(l>>>0)}h=0;m=(c>>>0)/(l>>>0)>>>0;return(x=h,m)|0}u=l-1|0;if(!(u&l)){if(i|0){o[i>>2]=e|0;o[i+4>>2]=u&c|t&0}h=0;m=c>>>((oM(l|0)|0)>>>0);return(x=h,m)|0}u=(Y(l|0)|0)-(Y(c|0)|0)|0;if(u>>>0<=30){t=u+1|0;l=31-u|0;a=t;e=c<>>(t>>>0);t=c>>>(t>>>0);u=0;l=f<>2]=e|0;o[i+4>>2]=s|t&0;h=0;m=0;return(x=h,m)|0}}while(0);if(!a){c=l;s=0;l=0}else{d=n|0|0;f=p|r&0;c=eM(d|0,f|0,-1,-1)|0;n=x;s=l;l=0;do{r=s;s=u>>>31|s<<1;u=l|u<<1;r=e<<1|r>>>31|0;p=e>>>31|t<<1|0;ZS(c|0,n|0,r|0,p|0)|0;m=x;h=m>>31|((m|0)<0?-1:0)<<1;l=h&1;e=ZS(r|0,p|0,h&d|0,(((m|0)<0?-1:0)>>31|((m|0)<0?-1:0)<<1)&f|0)|0;t=x;a=a-1|0}while((a|0)!=0);c=s;s=0}a=0;if(i|0){o[i>>2]=e;o[i+4>>2]=t}h=(u|0)>>>31|(c|a)<<1|(a<<1|u>>>31)&0|s;m=(u<<1|0>>>31)&-2|l;return(x=h,m)|0}function aM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return uM(e,t,n,r,0)|0}function lM(e){e=e|0;var t=0,n=0;n=e+15&-16|0;t=o[f>>2]|0;e=t+n|0;if((n|0)>0&(e|0)<(t|0)|(e|0)<0){Z()|0;Ge(12);return-1}o[f>>2]=e;if((e|0)>(Q()|0)?(J()|0)==0:0){o[f>>2]=t;Ge(12);return-1}return t|0}function sM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;if((t|0)<(e|0)&(e|0)<(t+n|0)){i=e;t=t+n|0;e=e+n|0;while((n|0)>0){e=e-1|0;t=t-1|0;n=n-1|0;r[e>>0]=r[t>>0]|0}e=i}else iM(e,t,n)|0;return e|0}function cM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=h;h=h+16|0;i=u|0;uM(e,t,n,r,i)|0;h=u;return(x=o[i+4>>2]|0,o[i>>2]|0)|0}function fM(e){e=e|0;return(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function dM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;cx[e&1](t|0,n|0,r|0,i|0,o|0)}function pM(e,t,n){e=e|0;t=t|0;n=K(n);fx[e&1](t|0,K(n))}function hM(e,t,n){e=e|0;t=t|0;n=+n;dx[e&31](t|0,+n)}function mM(e,t,n,r){e=e|0;t=t|0;n=K(n);r=K(r);return K(px[e&0](t|0,K(n),K(r)))}function vM(e,t){e=e|0;t=t|0;hx[e&127](t|0)}function bM(e,t,n){e=e|0;t=t|0;n=n|0;mx[e&31](t|0,n|0)}function gM(e,t){e=e|0;t=t|0;return vx[e&31](t|0)|0}function _M(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;bx[e&1](t|0,+n,+r,i|0)}function yM(e,t,n,r){e=e|0;t=t|0;n=+n;r=+r;gx[e&1](t|0,+n,+r)}function DM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return _x[e&7](t|0,n|0,r|0)|0}function wM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return+yx[e&1](t|0,n|0,r|0)}function EM(e,t){e=e|0;t=t|0;return+Dx[e&15](t|0)}function CM(e,t,n){e=e|0;t=t|0;n=+n;return wx[e&1](t|0,+n)|0}function TM(e,t,n){e=e|0;t=t|0;n=n|0;return Ex[e&15](t|0,n|0)|0}function kM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=+r;i=+i;o=o|0;Cx[e&1](t|0,n|0,+r,+i,o|0)}function SM(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;u=u|0;Tx[e&1](t|0,n|0,r|0,i|0,o|0,u|0)}function MM(e,t,n){e=e|0;t=t|0;n=n|0;return+kx[e&7](t|0,n|0)}function xM(e){e=e|0;return Sx[e&7]()|0}function AM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;return Mx[e&1](t|0,n|0,r|0,i|0,o|0)|0}function PM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=+i;xx[e&1](t|0,n|0,r|0,+i)}function OM(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=K(r);i=i|0;o=K(o);u=u|0;Ax[e&1](t|0,n|0,K(r),i|0,K(o),u|0)}function RM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;Px[e&15](t|0,n|0,r|0)}function NM(e){e=e|0;Ox[e&0]()}function IM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;Rx[e&15](t|0,n|0,+r)}function FM(e,t,n){e=e|0;t=+t;n=+n;return Nx[e&1](+t,+n)|0}function BM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;Ix[e&15](t|0,n|0,r|0,i|0)}function LM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;$(0)}function UM(e,t){e=e|0;t=K(t);$(1)}function jM(e,t){e=e|0;t=+t;$(2)}function WM(e,t,n){e=e|0;t=K(t);n=K(n);$(3);return ft}function zM(e){e=e|0;$(4)}function qM(e,t){e=e|0;t=t|0;$(5)}function HM(e){e=e|0;$(6);return 0}function GM(e,t,n,r){e=e|0;t=+t;n=+n;r=r|0;$(7)}function VM(e,t,n){e=e|0;t=+t;n=+n;$(8)}function YM(e,t,n){e=e|0;t=t|0;n=n|0;$(9);return 0}function KM(e,t,n){e=e|0;t=t|0;n=n|0;$(10);return 0.0}function $M(e){e=e|0;$(11);return 0.0}function XM(e,t){e=e|0;t=+t;$(12);return 0}function JM(e,t){e=e|0;t=t|0;$(13);return 0}function QM(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;$(14)}function ZM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;$(15)}function ex(e,t){e=e|0;t=t|0;$(16);return 0.0}function tx(){$(17);return 0}function nx(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;$(18);return 0}function rx(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;$(19)}function ix(e,t,n,r,i,o){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);o=o|0;$(20)}function ox(e,t,n){e=e|0;t=t|0;n=n|0;$(21)}function ux(){$(22)}function ax(e,t,n){e=e|0;t=t|0;n=+n;$(23)}function lx(e,t){e=+e;t=+t;$(24);return 0}function sx(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;$(25)}var cx=[LM,Ew];var fx=[UM,Gi];var dx=[jM,go,_o,yo,Do,wo,Eo,Co,ko,So,xo,Ao,Po,Oo,Ro,No,Io,Fo,Bo,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM];var px=[WM];var hx=[zM,WS,hl,ml,vl,$d,Xd,Jd,gy,_y,yy,ow,uw,aw,uk,ak,lk,yt,Xi,to,To,Mo,Uu,ju,$a,Cl,zl,ps,Rs,rc,kc,Gc,df,Nf,Zf,gd,Bd,bp,Fp,th,yh,Uh,im,km,Hm,av,Mv,zi,cb,xb,Jb,gg,Fg,o_,b_,y_,j_,q_,ay,Ey,ky,Vy,pD,Tl,AE,pC,PC,$C,yT,LT,XT,ZT,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM];var mx=[qM,no,ro,uo,ao,lo,so,co,fo,mo,vo,bo,eu,ru,iu,ou,uu,au,lu,pu,bu,$u,Am,Ym,wg,RE,DD,eC,qM,qM,qM,qM];var vx=[HM,Kk,$i,Wo,Go,Vo,Yo,Ko,$o,Xo,Qo,Zo,hu,mu,Wu,Pv,jg,$y,LE,jE,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM];var bx=[GM,zu];var gx=[VM,cy];var _x=[YM,$k,Xk,nS,ac,Dp,hb,ZC];var yx=[KM,rd];var Dx=[$M,tu,nu,su,qu,Hu,Gu,Vu,Yu,Ku,$M,$M,$M,$M,$M,$M];var wx=[XM,p_];var Ex=[JM,zS,vu,tl,bs,Ac,$c,Wd,jp,fv,Vi,IC,JM,JM,JM,JM];var Cx=[QM,Vl];var Tx=[ZM,CT];var kx=[ex,cu,Xu,Ju,Qu,wd,ex,ex];var Sx=[tx,Zu,Yi,ji,T_,Y_,Py,rk];var Mx=[nx,Fr];var xx=[rx,Ch];var Ax=[ix,_u];var Px=[ox,zo,Jo,fu,du,Bs,vf,qh,lm,Hi,Qw,bC,zT,ox,ox,ox];var Ox=[ux];var Rx=[ax,io,oo,po,ho,Lo,Uo,jo,oh,Rb,l_,ax,ax,ax,ax,ax];var Nx=[lx,my];var Ix=[sx,Lf,Uv,tg,$g,P_,Z_,Ly,gD,GE,hk,sx,sx,sx,sx,sx];return{_llvm_bswap_i32:fM,dynCall_idd:FM,dynCall_i:xM,_i64Subtract:ZS,___udivdi3:aM,dynCall_vif:pM,setThrew:vt,dynCall_viii:RM,_bitshift64Lshr:rM,_bitshift64Shl:nM,dynCall_vi:vM,dynCall_viiddi:kM,dynCall_diii:wM,dynCall_iii:TM,_memset:tM,_sbrk:lM,_memcpy:iM,__GLOBAL__sub_I_Yoga_cpp:Ui,dynCall_vii:bM,___uremdi3:cM,dynCall_vid:hM,stackAlloc:dt,_nbind_init:xk,getTempRet0:gt,dynCall_di:EM,dynCall_iid:CM,setTempRet0:bt,_i64Add:eM,dynCall_fiff:mM,dynCall_iiii:DM,_emscripten_get_global_libc:Yk,dynCall_viid:IM,dynCall_viiid:PM,dynCall_viififi:OM,dynCall_ii:gM,__GLOBAL__sub_I_Binding_cc:DE,dynCall_viiii:BM,dynCall_iiiiii:AM,stackSave:pt,dynCall_viiiii:dM,__GLOBAL__sub_I_nbind_cc:ea,dynCall_vidd:yM,_free:Vk,runPostSets:QS,dynCall_viiiiii:SM,establishStackSpace:mt,_memmove:sM,stackRestore:ht,_malloc:Gk,__GLOBAL__sub_I_common_cc:iD,dynCall_viddi:_M,dynCall_dii:MM,dynCall_v:NM}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii,initialStackTop;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){e=e||[],ensureInitRuntime();var t=e.length+1;function n(){for(var e=0;e<3;e++)r.push(0)}var r=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];n();for(var i=0;i0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()},void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return wrapper}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__=[]))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},9532:e=>{"use strict";e.exports={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2}},2821:(e,t,n)=>{"use strict";var r=n(6863),i=n(7356),o=!1,u=null;if(i({},(function(e,t){if(!o){if(o=!0,e)throw e;u=t}})),!o)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");e.exports=r(u.bind,u.lib)},6863:(e,t,n)=>{"use strict";var r=Object.assign||function(e){for(var t=1;t"}}]),e}(),s=function(){function e(t,n){u(this,e),this.width=t,this.height=n}return i(e,null,[{key:"fromJS",value:function(t){return new e(t.width,t.height)}}]),i(e,[{key:"fromJS",value:function(e){e(this.width,this.height)}},{key:"toString",value:function(){return""}}]),e}(),c=function(){function e(t,n){u(this,e),this.unit=t,this.value=n}return i(e,[{key:"fromJS",value:function(e){e(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case a.UNIT_POINT:return String(this.value);case a.UNIT_PERCENT:return this.value+"%";case a.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();e.exports=function(e,t){function n(e,t,n){var r=e[t];e[t]=function(){for(var e=arguments.length,t=Array(e),i=0;i1?t-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:NaN,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:NaN,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:a.DIRECTION_LTR;return e.call(this,t,n,r)})),r({Config:t.Config,Node:t.Node,Layout:e("Layout",l),Size:e("Size",s),Value:e("Value",c),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},a)}},2594:e=>{"use strict";e.exports=require("@yarnpkg/cli")},966:e=>{"use strict";e.exports=require("@yarnpkg/core")},4850:e=>{"use strict";e.exports=require("@yarnpkg/plugin-essentials")},2357:e=>{"use strict";e.exports=require("assert")},8042:e=>{"use strict";e.exports=require("clipanion")},6417:e=>{"use strict";e.exports=require("crypto")},8614:e=>{"use strict";e.exports=require("events")},8605:e=>{"use strict";e.exports=require("http")},7211:e=>{"use strict";e.exports=require("https")},2087:e=>{"use strict";e.exports=require("os")},1058:e=>{"use strict";e.exports=require("readline")},9513:e=>{"use strict";e.exports=require("semver")},3867:e=>{"use strict";e.exports=require("tty")},8835:e=>{"use strict";e.exports=require("url")}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(120)})(); -return plugin; -} -}; \ No newline at end of file diff --git a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs deleted file mode 100644 index 8fb261f6c..000000000 --- a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-disable */ -module.exports = { -name: "@yarnpkg/plugin-workspace-tools", -factory: function (require) { -var plugin;plugin=(()=>{"use strict";var e={115:(e,t,n)=>{n.r(t),n.d(t,{default:()=>y});function o(e,t,n,o){var r,a=arguments.length,s=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var i=e.length-1;i>=0;i--)(r=e[i])&&(s=(a<3?r(s):a>3?r(t,n,s):r(t,n))||s);return a>3&&s&&Object.defineProperty(t,n,s),s}var r=n(594),a=n(966),s=n(42),i=n(440);class l extends r.BaseCommand{constructor(){super(...arguments),this.workspaces=[],this.json=!1,this.production=!1,this.all=!1}async execute(){const e=await a.Configuration.find(this.context.cwd,this.context.plugins),{project:t,workspace:n}=await a.Project.find(e,this.context.cwd),o=await a.Cache.find(e);let s;if(this.all)s=new Set(t.workspaces);else if(0===this.workspaces.length){if(!n)throw new r.WorkspaceRequiredError(t.cwd,this.context.cwd);s=new Set([n])}else s=new Set(this.workspaces.map(e=>t.getWorkspaceByIdent(a.structUtils.parseIdent(e))));for(const e of s)for(const n of a.Manifest.hardDependencies)for(const o of e.manifest.getForScope(n).values()){const e=t.tryWorkspaceByDescriptor(o);null!==e&&s.add(e)}for(const e of t.workspaces)s.has(e)?this.production&&e.manifest.devDependencies.clear():(e.manifest.dependencies.clear(),e.manifest.devDependencies.clear(),e.manifest.peerDependencies.clear());return(await a.StreamReport.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async e=>{await t.install({cache:o,report:e,persistProject:!1}),await t.persistInstallStateFile()})).exitCode()}}l.usage=s.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.js` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "}),l.schema=i.object().shape({all:i.bool(),workspaces:i.array().when("all",{is:!0,then:i.array().max(0,"Cannot specify workspaces when using the --all flag"),otherwise:i.array()})}),o([s.Command.Rest()],l.prototype,"workspaces",void 0),o([s.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],l.prototype,"json",void 0),o([s.Command.Boolean("--production",{description:"Only install regular dependencies by omitting dev dependencies"})],l.prototype,"production",void 0),o([s.Command.Boolean("-A,--all",{description:"Install the entire project"})],l.prototype,"all",void 0),o([s.Command.Path("workspaces","focus")],l.prototype,"execute",null);var p=n(401),u=n.n(p),c=n(87),d=n(578),f=n.n(d);const h=(e,t)=>{const n=[];for(const o of e.workspacesCwds){const e=t.workspacesByCwd.get(o);e&&n.push(e,...h(e,t))}return n};class g extends r.BaseCommand{constructor(){super(...arguments),this.args=[],this.allLegacy=!1,this.verbose=!1,this.parallel=!1,this.interlaced=!1,this.topological=!1,this.topologicalDev=!1,this.include=[],this.exclude=[],this.private=!0}async execute(){var e;const t=await a.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:o}=await a.Project.find(t,this.context.cwd),i=null!==(e=this.all)&&void 0!==e?e:this.allLegacy;if(!i&&!o)throw new r.WorkspaceRequiredError(n.cwd,this.context.cwd);const l=this.cli.process([this.commandName,...this.args]),p=1===l.path.length&&"run"===l.path[0]&&void 0!==l.scriptName?l.scriptName:null;if(0===l.path.length)throw new s.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");const d=i?n.topLevelWorkspace:o,g=[d,...h(d,n)],y=[];for(const e of g)p&&!e.manifest.scripts.has(p)||p===process.env.npm_lifecycle_event&&e.cwd===o.cwd||this.include.length>0&&!u().isMatch(a.structUtils.stringifyIdent(e.locator),this.include)||this.exclude.length>0&&u().isMatch(a.structUtils.stringifyIdent(e.locator),this.exclude)||!1===this.private&&!0===e.manifest.private||y.push(e);let R=this.interlaced;this.parallel||(R=!0);const m=new Map,_=new Set,E=this.parallel?Math.max(1,(0,c.cpus)().length/2):1,C=f()(this.jobs||E);let b=0,x=null,v=!1;const S=await a.StreamReport.start({configuration:t,stdout:this.context.stdout},async e=>{const o=async(n,{commandIndex:o})=>{if(v)return-1;!this.parallel&&this.verbose&&o>1&&e.reportSeparator();const r=function(e,{configuration:t,commandIndex:n,verbose:o}){if(!o)return null;const r=a.structUtils.convertToIdent(e.locator),s=`[${a.structUtils.stringifyIdent(r)}]:`,i=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],l=i[n%i.length];return a.formatUtils.pretty(t,s,l)}(n,{configuration:t,verbose:this.verbose,commandIndex:o}),[s,i]=A(e,{prefix:r,interlaced:R}),[l,p]=A(e,{prefix:r,interlaced:R});try{const t=await this.cli.run([this.commandName,...this.args],{cwd:n.cwd,stdout:s,stderr:l})||0;s.end(),l.end();const o=await i,a=await p;return this.verbose&&o&&a&&e.reportInfo(null,`${r} Process exited without output (exit code ${t})`),130===t&&(v=!0,x=t),t}catch(e){throw s.end(),l.end(),await i,await p,e}};for(const e of y)m.set(e.anchoredLocator.locatorHash,e);for(;m.size>0&&!e.hasErrors();){const r=[];for(const[e,t]of m){if(_.has(t.anchoredDescriptor.descriptorHash))continue;let a=!0;if(this.topological||this.topologicalDev){const e=this.topologicalDev?new Map([...t.manifest.dependencies,...t.manifest.devDependencies]):t.manifest.dependencies;for(const t of e.values()){const e=n.tryWorkspaceByDescriptor(t);if(a=null===e||!m.has(e.anchoredLocator.locatorHash),!a)break}}if(a&&(_.add(t.anchoredDescriptor.descriptorHash),r.push(C(async()=>{const n=await o(t,{commandIndex:++b});return m.delete(e),_.delete(t.anchoredDescriptor.descriptorHash),n})),!this.parallel))break}if(0===r.length){const n=Array.from(m.values()).map(e=>a.structUtils.prettyLocator(t,e.anchoredLocator)).join(", ");return void e.reportError(a.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${n})`)}const s=(await Promise.all(r)).find(e=>0!==e);null===x&&(x=void 0!==s?1:x),(this.topological||this.topologicalDev)&&void 0!==s&&e.reportError(a.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return null!==x?x:S.exitCode()}}function A(e,{prefix:t,interlaced:n}){const o=e.createStreamReporter(t),r=new a.miscUtils.DefaultStream;r.pipe(o,{end:!1}),r.on("finish",()=>{o.end()});const s=new Promise(e=>{o.on("finish",()=>{e(r.active)})});if(n)return[r,s];const i=new a.miscUtils.BufferStream;return i.pipe(r,{end:!1}),i.on("finish",()=>{r.end()}),[i,s]}g.schema=i.object().shape({jobs:i.number().min(2),parallel:i.boolean().when("jobs",{is:e=>e>1,then:i.boolean().oneOf([!0],"--parallel must be set when using --jobs"),otherwise:i.boolean()})}),g.usage=s.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building dependent packages first","yarn workspaces foreach -pt run build"]]}),o([s.Command.String()],g.prototype,"commandName",void 0),o([s.Command.Proxy()],g.prototype,"args",void 0),o([s.Command.Boolean("-a",{hidden:!0})],g.prototype,"allLegacy",void 0),o([s.Command.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"})],g.prototype,"all",void 0),o([s.Command.Boolean("-v,--verbose",{description:"Prefix each output line with the name of the originating workspace"})],g.prototype,"verbose",void 0),o([s.Command.Boolean("-p,--parallel",{description:"Run the commands in parallel"})],g.prototype,"parallel",void 0),o([s.Command.Boolean("-i,--interlaced",{description:"Print the output of commands in real-time instead of buffering it"})],g.prototype,"interlaced",void 0),o([s.Command.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to"})],g.prototype,"jobs",void 0),o([s.Command.Boolean("-t,--topological",{description:"Run the command after all workspaces it depends on (regular) have finished"})],g.prototype,"topological",void 0),o([s.Command.Boolean("--topological-dev",{description:"Run the command after all workspaces it depends on (regular + dev) have finished"})],g.prototype,"topologicalDev",void 0),o([s.Command.Array("--include",{description:"An array of glob pattern idents that acts as a whitelist of workspaces"})],g.prototype,"include",void 0),o([s.Command.Array("--exclude",{description:"An array of glob pattern idents that acts as a blacklist of workspaces"})],g.prototype,"exclude",void 0),o([s.Command.Boolean("--private",{description:"Also run the command on private workspaces"})],g.prototype,"private",void 0),o([s.Command.Path("workspaces","foreach")],g.prototype,"execute",null);const y={commands:[l,g]}},235:(e,t,n)=>{const o=n(900),r=n(617),a=n(495),s=n(425),i=(e,t={})=>{let n=[];if(Array.isArray(e))for(let o of e){let e=i.create(o,t);Array.isArray(e)?n.push(...e):n.push(e)}else n=[].concat(i.create(e,t));return t&&!0===t.expand&&!0===t.nodupes&&(n=[...new Set(n)]),n};i.parse=(e,t={})=>s(e,t),i.stringify=(e,t={})=>o("string"==typeof e?i.parse(e,t):e,t),i.compile=(e,t={})=>("string"==typeof e&&(e=i.parse(e,t)),r(e,t)),i.expand=(e,t={})=>{"string"==typeof e&&(e=i.parse(e,t));let n=a(e,t);return!0===t.noempty&&(n=n.filter(Boolean)),!0===t.nodupes&&(n=[...new Set(n)]),n},i.create=(e,t={})=>""===e||e.length<3?[e]:!0!==t.expand?i.compile(e,t):i.expand(e,t),e.exports=i},617:(e,t,n)=>{const o=n(169),r=n(542);e.exports=(e,t={})=>{let n=(e,a={})=>{let s=r.isInvalidBrace(a),i=!0===e.invalid&&!0===t.escapeInvalid,l=!0===s||!0===i,p=!0===t.escapeInvalid?"\\":"",u="";if(!0===e.isOpen)return p+e.value;if(!0===e.isClose)return p+e.value;if("open"===e.type)return l?p+e.value:"(";if("close"===e.type)return l?p+e.value:")";if("comma"===e.type)return"comma"===e.prev.type?"":l?e.value:"|";if(e.value)return e.value;if(e.nodes&&e.ranges>0){let n=r.reduce(e.nodes),a=o(...n,{...t,wrap:!1,toRegex:!0});if(0!==a.length)return n.length>1&&a.length>1?`(${a})`:a}if(e.nodes)for(let t of e.nodes)u+=n(t,e);return u};return n(e)}},384:e=>{e.exports={MAX_LENGTH:65536,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},495:(e,t,n)=>{const o=n(169),r=n(900),a=n(542),s=(e="",t="",n=!1)=>{let o=[];if(e=[].concat(e),!(t=[].concat(t)).length)return e;if(!e.length)return n?a.flatten(t).map(e=>`{${e}}`):t;for(let r of e)if(Array.isArray(r))for(let e of r)o.push(s(e,t,n));else for(let e of t)!0===n&&"string"==typeof e&&(e=`{${e}}`),o.push(Array.isArray(e)?s(r,e,n):r+e);return a.flatten(o)};e.exports=(e,t={})=>{let n=void 0===t.rangeLimit?1e3:t.rangeLimit,i=(e,l={})=>{e.queue=[];let p=l,u=l.queue;for(;"brace"!==p.type&&"root"!==p.type&&p.parent;)p=p.parent,u=p.queue;if(e.invalid||e.dollar)return void u.push(s(u.pop(),r(e,t)));if("brace"===e.type&&!0!==e.invalid&&2===e.nodes.length)return void u.push(s(u.pop(),["{}"]));if(e.nodes&&e.ranges>0){let i=a.reduce(e.nodes);if(a.exceedsLimit(...i,t.step,n))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let l=o(...i,t);return 0===l.length&&(l=r(e,t)),u.push(s(u.pop(),l)),void(e.nodes=[])}let c=a.encloseBrace(e),d=e.queue,f=e;for(;"brace"!==f.type&&"root"!==f.type&&f.parent;)f=f.parent,d=f.queue;for(let t=0;t{const o=n(900),{MAX_LENGTH:r,CHAR_BACKSLASH:a,CHAR_BACKTICK:s,CHAR_COMMA:i,CHAR_DOT:l,CHAR_LEFT_PARENTHESES:p,CHAR_RIGHT_PARENTHESES:u,CHAR_LEFT_CURLY_BRACE:c,CHAR_RIGHT_CURLY_BRACE:d,CHAR_LEFT_SQUARE_BRACKET:f,CHAR_RIGHT_SQUARE_BRACKET:h,CHAR_DOUBLE_QUOTE:g,CHAR_SINGLE_QUOTE:A,CHAR_NO_BREAK_SPACE:y,CHAR_ZERO_WIDTH_NOBREAK_SPACE:R}=n(384);e.exports=(e,t={})=>{if("string"!=typeof e)throw new TypeError("Expected a string");let n=t||{},m="number"==typeof n.maxLength?Math.min(r,n.maxLength):r;if(e.length>m)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${m})`);let _,E={type:"root",input:e,nodes:[]},C=[E],b=E,x=E,v=0,S=e.length,w=0,H=0;const T=()=>e[w++],L=e=>{if("text"===e.type&&"dot"===x.type&&(x.type="text"),!x||"text"!==x.type||"text"!==e.type)return b.nodes.push(e),e.parent=b,e.prev=x,x=e,e;x.value+=e.value};for(L({type:"bos"});w0){if(b.ranges>0){b.ranges=0;let e=b.nodes.shift();b.nodes=[e,{type:"text",value:o(b)}]}L({type:"comma",value:_}),b.commas++}else if(_===l&&H>0&&0===b.commas){let e=b.nodes;if(0===H||0===e.length){L({type:"text",value:_});continue}if("dot"===x.type){if(b.range=[],x.value+=_,x.type="range",3!==b.nodes.length&&5!==b.nodes.length){b.invalid=!0,b.ranges=0,x.type="text";continue}b.ranges++,b.args=[];continue}if("range"===x.type){e.pop();let t=e[e.length-1];t.value+=x.value+_,x=t,b.ranges--;continue}L({type:"dot",value:_})}else L({type:"text",value:_});else{if("brace"!==b.type){L({type:"text",value:_});continue}let e="close";b=C.pop(),b.close=!0,L({type:e,value:_}),H--,b=C[C.length-1]}else{H++;let e=x.value&&"$"===x.value.slice(-1)||!0===b.dollar;b=L({type:"brace",open:!0,close:!1,dollar:e,depth:H,commas:0,ranges:0,nodes:[]}),C.push(b),L({type:"open",value:_})}else{let e,n=_;for(!0!==t.keepQuotes&&(_="");w{e.nodes||("open"===e.type&&(e.isOpen=!0),"close"===e.type&&(e.isClose=!0),e.nodes||(e.type="text"),e.invalid=!0)});let e=C[C.length-1],t=e.nodes.indexOf(b);e.nodes.splice(t,1,...b.nodes)}}while(C.length>0);return L({type:"eos"}),E}},900:(e,t,n)=>{const o=n(542);e.exports=(e,t={})=>{let n=(e,r={})=>{let a=t.escapeInvalid&&o.isInvalidBrace(r),s=!0===e.invalid&&!0===t.escapeInvalid,i="";if(e.value)return(a||s)&&o.isOpenOrClose(e)?"\\"+e.value:e.value;if(e.value)return e.value;if(e.nodes)for(let t of e.nodes)i+=n(t);return i};return n(e)}},542:(e,t)=>{t.isInteger=e=>"number"==typeof e?Number.isInteger(e):"string"==typeof e&&""!==e.trim()&&Number.isInteger(Number(e)),t.find=(e,t)=>e.nodes.find(e=>e.type===t),t.exceedsLimit=(e,n,o=1,r)=>!1!==r&&(!(!t.isInteger(e)||!t.isInteger(n))&&(Number(n)-Number(e))/Number(o)>=r),t.escapeNode=(e,t=0,n)=>{let o=e.nodes[t];o&&(n&&o.type===n||"open"===o.type||"close"===o.type)&&!0!==o.escaped&&(o.value="\\"+o.value,o.escaped=!0)},t.encloseBrace=e=>"brace"===e.type&&(e.commas>>0+e.ranges>>0==0&&(e.invalid=!0,!0)),t.isInvalidBrace=e=>"brace"===e.type&&(!(!0!==e.invalid&&!e.dollar)||(e.commas>>0+e.ranges>>0==0||!0!==e.open||!0!==e.close)&&(e.invalid=!0,!0)),t.isOpenOrClose=e=>"open"===e.type||"close"===e.type||(!0===e.open||!0===e.close),t.reduce=e=>e.reduce((e,t)=>("text"===t.type&&e.push(t.value),"range"===t.type&&(t.type="text"),e),[]),t.flatten=(...e)=>{const t=[],n=e=>{for(let o=0;o{ -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ -const o=n(669),r=n(615),a=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),s=e=>"number"==typeof e||"string"==typeof e&&""!==e,i=e=>Number.isInteger(+e),l=e=>{let t=""+e,n=-1;if("-"===t[0]&&(t=t.slice(1)),"0"===t)return!1;for(;"0"===t[++n];);return n>0},p=(e,t,n)=>{if(t>0){let n="-"===e[0]?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return!1===n?String(e):e},u=(e,t)=>{let n="-"===e[0]?"-":"";for(n&&(e=e.slice(1),t--);e.length{if(n)return r(e,t,{wrap:!1,...o});let a=String.fromCharCode(e);return e===t?a:`[${a}-${String.fromCharCode(t)}]`},d=(e,t,n)=>{if(Array.isArray(e)){let t=!0===n.wrap,o=n.capture?"":"?:";return t?`(${o}${e.join("|")})`:e.join("|")}return r(e,t,n)},f=(...e)=>new RangeError("Invalid range arguments: "+o.inspect(...e)),h=(e,t,n)=>{if(!0===n.strictRanges)throw f([e,t]);return[]},g=(e,t,n=1,o={})=>{let r=Number(e),a=Number(t);if(!Number.isInteger(r)||!Number.isInteger(a)){if(!0===o.strictRanges)throw f([e,t]);return[]}0===r&&(r=0),0===a&&(a=0);let s=r>a,i=String(e),h=String(t),g=String(n);n=Math.max(Math.abs(n),1);let A=l(i)||l(h)||l(g),y=A?Math.max(i.length,h.length,g.length):0,R=!1===A&&!1===((e,t,n)=>"string"==typeof e||"string"==typeof t||!0===n.stringify)(e,t,o),m=o.transform||(e=>t=>!0===e?Number(t):String(t))(R);if(o.toRegex&&1===n)return c(u(e,y),u(t,y),!0,o);let _={negatives:[],positives:[]},E=[],C=0;for(;s?r>=a:r<=a;)!0===o.toRegex&&n>1?_[(b=r)<0?"negatives":"positives"].push(Math.abs(b)):E.push(p(m(r,C),y,R)),r=s?r-n:r+n,C++;var b;return!0===o.toRegex?n>1?((e,t)=>{e.negatives.sort((e,t)=>et?1:0),e.positives.sort((e,t)=>et?1:0);let n,o=t.capture?"":"?:",r="",a="";return e.positives.length&&(r=e.positives.join("|")),e.negatives.length&&(a=`-(${o}${e.negatives.join("|")})`),n=r&&a?`${r}|${a}`:r||a,t.wrap?`(${o}${n})`:n})(_,o):d(E,null,{wrap:!1,...o}):E},A=(e,t,n,o={})=>{if(null==t&&s(e))return[e];if(!s(e)||!s(t))return h(e,t,o);if("function"==typeof n)return A(e,t,1,{transform:n});if(a(n))return A(e,t,0,n);let r={...o};return!0===r.capture&&(r.wrap=!0),n=n||r.step||1,i(n)?i(e)&&i(t)?g(e,t,n,r):((e,t,n=1,o={})=>{if(!i(e)&&e.length>1||!i(t)&&t.length>1)return h(e,t,o);let r=o.transform||(e=>String.fromCharCode(e)),a=(""+e).charCodeAt(0),s=(""+t).charCodeAt(0),l=a>s,p=Math.min(a,s),u=Math.max(a,s);if(o.toRegex&&1===n)return c(p,u,!1,o);let f=[],g=0;for(;l?a>=s:a<=s;)f.push(r(a,g)),a=l?a-n:a+n,g++;return!0===o.toRegex?d(f,null,{wrap:!1,options:o}):f})(e,t,Math.max(Math.abs(n),1),r):null==n||a(n)?A(e,t,1,n):((e,t)=>{if(!0===t.strictRanges)throw new TypeError(`Expected step "${e}" to be a number`);return[]})(n,r)};e.exports=A},761:e=>{ -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ -e.exports=function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(Number.isFinite?Number.isFinite(+e):isFinite(+e))}},401:(e,t,n)=>{const o=n(669),r=n(235),a=n(722),s=n(598),i=e=>"string"==typeof e&&(""===e||"./"===e),l=(e,t,n)=>{t=[].concat(t),e=[].concat(e);let o=new Set,r=new Set,s=new Set,i=0,l=e=>{s.add(e.output),n&&n.onResult&&n.onResult(e)};for(let s=0;s!o.has(e));if(n&&0===p.length){if(!0===n.failglob)throw new Error(`No matches found for "${t.join(", ")}"`);if(!0===n.nonull||!0===n.nullglob)return n.unescape?t.map(e=>e.replace(/\\/g,"")):t}return p};l.match=l,l.matcher=(e,t)=>a(e,t),l.any=l.isMatch=(e,t,n)=>a(t,n)(e),l.not=(e,t,n={})=>{t=[].concat(t).map(String);let o=new Set,r=[],a=l(e,t,{...n,onResult:e=>{n.onResult&&n.onResult(e),r.push(e.output)}});for(let e of r)a.includes(e)||o.add(e);return[...o]},l.contains=(e,t,n)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${o.inspect(e)}"`);if(Array.isArray(t))return t.some(t=>l.contains(e,t,n));if("string"==typeof t){if(i(e)||i(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return l.isMatch(e,t,{...n,contains:!0})},l.matchKeys=(e,t,n)=>{if(!s.isObject(e))throw new TypeError("Expected the first argument to be an object");let o=l(Object.keys(e),t,n),r={};for(let t of o)r[t]=e[t];return r},l.some=(e,t,n)=>{let o=[].concat(e);for(let e of[].concat(t)){let t=a(String(e),n);if(o.some(e=>t(e)))return!0}return!1},l.every=(e,t,n)=>{let o=[].concat(e);for(let e of[].concat(t)){let t=a(String(e),n);if(!o.every(e=>t(e)))return!1}return!0},l.all=(e,t,n)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${o.inspect(e)}"`);return[].concat(t).every(t=>a(t,n)(e))},l.capture=(e,t,n)=>{let o=s.isWindows(n),r=a.makeRe(String(e),{...n,capture:!0}).exec(o?s.toPosixSlashes(t):t);if(r)return r.slice(1).map(e=>void 0===e?"":e)},l.makeRe=(...e)=>a.makeRe(...e),l.scan=(...e)=>a.scan(...e),l.parse=(e,t)=>{let n=[];for(let o of[].concat(e||[]))for(let e of r(String(o),t))n.push(a.parse(e,t));return n},l.braces=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return t&&!0===t.nobrace||!/\{.*\}/.test(e)?[e]:r(e,t)},l.braceExpand=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return l.braces(e,{...t,expand:!0})},e.exports=l},578:(e,t,n)=>{const o=n(550),r=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=[];let n=0;const r=()=>{n--,t.length>0&&t.shift()()},a=(e,t,...a)=>{n++;const s=o(e,...a);t(s),s.then(r,r)},s=(o,...r)=>new Promise(s=>((o,r,...s)=>{nn},pendingCount:{get:()=>t.length}}),s};e.exports=r,e.exports.default=r},550:e=>{e.exports=(e,...t)=>new Promise(n=>{n(e(...t))})},722:(e,t,n)=>{e.exports=n(828)},86:(e,t,n)=>{const o=n(622),r={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},a={...r,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:o.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?a:r}},974:(e,t,n)=>{const o=n(86),r=n(598),{MAX_LENGTH:a,POSIX_REGEX_SOURCE:s,REGEX_NON_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_BACKREF:l,REPLACEMENTS:p}=o,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const n=`[${e.join("-")}]`;try{new RegExp(n)}catch(t){return e.map(e=>r.escapeRegex(e)).join("..")}return n},c=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,d=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=p[e]||e;const n={...t},d="number"==typeof n.maxLength?Math.min(a,n.maxLength):a;let f=e.length;if(f>d)throw new SyntaxError(`Input length: ${f}, exceeds maximum allowed length: ${d}`);const h={type:"bos",value:"",output:n.prepend||""},g=[h],A=n.capture?"":"?:",y=r.isWindows(t),R=o.globChars(y),m=o.extglobChars(R),{DOT_LITERAL:_,PLUS_LITERAL:E,SLASH_LITERAL:C,ONE_CHAR:b,DOTS_SLASH:x,NO_DOT:v,NO_DOT_SLASH:S,NO_DOTS_SLASH:w,QMARK:H,QMARK_NO_DOT:T,STAR:L,START_ANCHOR:k}=R,O=e=>`(${A}(?:(?!${k}${e.dot?x:_}).)*?)`,$=n.dot?"":v,N=n.dot?H:T;let I=!0===n.bash?O(n):L;n.capture&&(I=`(${I})`),"boolean"==typeof n.noext&&(n.noextglob=n.noext);const B={input:e,index:-1,start:0,dot:!0===n.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:g};e=r.removePrefix(e,B),f=e.length;const M=[],P=[],D=[];let U,G=h;const j=()=>B.index===f-1,K=B.peek=(t=1)=>e[B.index+t],F=B.advance=()=>e[++B.index],W=()=>e.slice(B.index+1),Q=(e="",t=0)=>{B.consumed+=e,B.index+=t},X=e=>{B.output+=null!=e.output?e.output:e.value,Q(e.value)},q=()=>{let e=1;for(;"!"===K()&&("("!==K(2)||"?"===K(3));)F(),B.start++,e++;return e%2!=0&&(B.negated=!0,B.start++,!0)},Z=e=>{B[e]++,D.push(e)},Y=e=>{B[e]--,D.pop()},z=e=>{if("globstar"===G.type){const t=B.braces>0&&("comma"===e.type||"brace"===e.type),n=!0===e.extglob||M.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||n||(B.output=B.output.slice(0,-G.output.length),G.type="star",G.value="*",G.output=I,B.output+=G.output)}if(M.length&&"paren"!==e.type&&!m[e.value]&&(M[M.length-1].inner+=e.value),(e.value||e.output)&&X(e),G&&"text"===G.type&&"text"===e.type)return G.value+=e.value,void(G.output=(G.output||"")+e.value);e.prev=G,g.push(e),G=e},V=(e,t)=>{const o={...m[t],conditions:1,inner:""};o.prev=G,o.parens=B.parens,o.output=B.output;const r=(n.capture?"(":"")+o.open;Z("parens"),z({type:e,value:t,output:B.output?"":b}),z({type:"paren",extglob:!0,value:F(),output:r}),M.push(o)},J=e=>{let t=e.close+(n.capture?")":"");if("negate"===e.type){let o=I;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(o=O(n)),(o!==I||j()||/^\)+$/.test(W()))&&(t=e.close=")$))"+o),"bos"===e.prev.type&&j()&&(B.negatedExtglob=!0)}z({type:"paren",extglob:!0,value:U,output:t}),Y("parens")};if(!1!==n.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let o=!1,a=e.replace(l,(e,t,n,r,a,s)=>"\\"===r?(o=!0,e):"?"===r?t?t+r+(a?H.repeat(a.length):""):0===s?N+(a?H.repeat(a.length):""):H.repeat(n.length):"."===r?_.repeat(n.length):"*"===r?t?t+r+(a?I:""):I:t?e:"\\"+e);return!0===o&&(a=!0===n.unescape?a.replace(/\\/g,""):a.replace(/\\+/g,e=>e.length%2==0?"\\\\":e?"\\":"")),a===e&&!0===n.contains?(B.output=e,B):(B.output=r.wrapOutput(a,B,t),B)}for(;!j();){if(U=F(),"\0"===U)continue;if("\\"===U){const e=K();if("/"===e&&!0!==n.bash)continue;if("."===e||";"===e)continue;if(!e){U+="\\",z({type:"text",value:U});continue}const t=/^\\+/.exec(W());let o=0;if(t&&t[0].length>2&&(o=t[0].length,B.index+=o,o%2!=0&&(U+="\\")),!0===n.unescape?U=F()||"":U+=F()||"",0===B.brackets){z({type:"text",value:U});continue}}if(B.brackets>0&&("]"!==U||"["===G.value||"[^"===G.value)){if(!1!==n.posix&&":"===U){const e=G.value.slice(1);if(e.includes("[")&&(G.posix=!0,e.includes(":"))){const e=G.value.lastIndexOf("["),t=G.value.slice(0,e),n=G.value.slice(e+2),o=s[n];if(o){G.value=t+o,B.backtrack=!0,F(),h.output||1!==g.indexOf(G)||(h.output=b);continue}}}("["===U&&":"!==K()||"-"===U&&"]"===K())&&(U="\\"+U),"]"!==U||"["!==G.value&&"[^"!==G.value||(U="\\"+U),!0===n.posix&&"!"===U&&"["===G.value&&(U="^"),G.value+=U,X({value:U});continue}if(1===B.quotes&&'"'!==U){U=r.escapeRegex(U),G.value+=U,X({value:U});continue}if('"'===U){B.quotes=1===B.quotes?0:1,!0===n.keepQuotes&&z({type:"text",value:U});continue}if("("===U){Z("parens"),z({type:"paren",value:U});continue}if(")"===U){if(0===B.parens&&!0===n.strictBrackets)throw new SyntaxError(c("opening","("));const e=M[M.length-1];if(e&&B.parens===e.parens+1){J(M.pop());continue}z({type:"paren",value:U,output:B.parens?")":"\\)"}),Y("parens");continue}if("["===U){if(!0!==n.nobracket&&W().includes("]"))Z("brackets");else{if(!0!==n.nobracket&&!0===n.strictBrackets)throw new SyntaxError(c("closing","]"));U="\\"+U}z({type:"bracket",value:U});continue}if("]"===U){if(!0===n.nobracket||G&&"bracket"===G.type&&1===G.value.length){z({type:"text",value:U,output:"\\"+U});continue}if(0===B.brackets){if(!0===n.strictBrackets)throw new SyntaxError(c("opening","["));z({type:"text",value:U,output:"\\"+U});continue}Y("brackets");const e=G.value.slice(1);if(!0===G.posix||"^"!==e[0]||e.includes("/")||(U="/"+U),G.value+=U,X({value:U}),!1===n.literalBrackets||r.hasRegexChars(e))continue;const t=r.escapeRegex(G.value);if(B.output=B.output.slice(0,-G.value.length),!0===n.literalBrackets){B.output+=t,G.value=t;continue}G.value=`(${A}${t}|${G.value})`,B.output+=G.value;continue}if("{"===U&&!0!==n.nobrace){Z("braces");const e={type:"brace",value:U,output:"(",outputIndex:B.output.length,tokensIndex:B.tokens.length};P.push(e),z(e);continue}if("}"===U){const e=P[P.length-1];if(!0===n.nobrace||!e){z({type:"text",value:U,output:U});continue}let t=")";if(!0===e.dots){const e=g.slice(),o=[];for(let t=e.length-1;t>=0&&(g.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&o.unshift(e[t].value);t=u(o,n),B.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const n=B.output.slice(0,e.outputIndex),o=B.tokens.slice(e.tokensIndex);e.value=e.output="\\{",U=t="\\}",B.output=n;for(const e of o)B.output+=e.output||e.value}z({type:"brace",value:U,output:t}),Y("braces"),P.pop();continue}if("|"===U){M.length>0&&M[M.length-1].conditions++,z({type:"text",value:U});continue}if(","===U){let e=U;const t=P[P.length-1];t&&"braces"===D[D.length-1]&&(t.comma=!0,e="|"),z({type:"comma",value:U,output:e});continue}if("/"===U){if("dot"===G.type&&B.index===B.start+1){B.start=B.index+1,B.consumed="",B.output="",g.pop(),G=h;continue}z({type:"slash",value:U,output:C});continue}if("."===U){if(B.braces>0&&"dot"===G.type){"."===G.value&&(G.output=_);const e=P[P.length-1];G.type="dots",G.output+=U,G.value+=U,e.dots=!0;continue}if(B.braces+B.parens===0&&"bos"!==G.type&&"slash"!==G.type){z({type:"text",value:U,output:_});continue}z({type:"dot",value:U,output:_});continue}if("?"===U){if(!(G&&"("===G.value)&&!0!==n.noextglob&&"("===K()&&"?"!==K(2)){V("qmark",U);continue}if(G&&"paren"===G.type){const e=K();let t=U;if("<"===e&&!r.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===G.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(W()))&&(t="\\"+U),z({type:"text",value:U,output:t});continue}if(!0!==n.dot&&("slash"===G.type||"bos"===G.type)){z({type:"qmark",value:U,output:T});continue}z({type:"qmark",value:U,output:H});continue}if("!"===U){if(!0!==n.noextglob&&"("===K()&&("?"!==K(2)||!/[!=<:]/.test(K(3)))){V("negate",U);continue}if(!0!==n.nonegate&&0===B.index){q();continue}}if("+"===U){if(!0!==n.noextglob&&"("===K()&&"?"!==K(2)){V("plus",U);continue}if(G&&"("===G.value||!1===n.regex){z({type:"plus",value:U,output:E});continue}if(G&&("bracket"===G.type||"paren"===G.type||"brace"===G.type)||B.parens>0){z({type:"plus",value:U});continue}z({type:"plus",value:E});continue}if("@"===U){if(!0!==n.noextglob&&"("===K()&&"?"!==K(2)){z({type:"at",extglob:!0,value:U,output:""});continue}z({type:"text",value:U});continue}if("*"!==U){"$"!==U&&"^"!==U||(U="\\"+U);const e=i.exec(W());e&&(U+=e[0],B.index+=e[0].length),z({type:"text",value:U});continue}if(G&&("globstar"===G.type||!0===G.star)){G.type="star",G.star=!0,G.value+=U,G.output=I,B.backtrack=!0,B.globstar=!0,Q(U);continue}let t=W();if(!0!==n.noextglob&&/^\([^?]/.test(t)){V("star",U);continue}if("star"===G.type){if(!0===n.noglobstar){Q(U);continue}const o=G.prev,r=o.prev,a="slash"===o.type||"bos"===o.type,s=r&&("star"===r.type||"globstar"===r.type);if(!0===n.bash&&(!a||t[0]&&"/"!==t[0])){z({type:"star",value:U,output:""});continue}const i=B.braces>0&&("comma"===o.type||"brace"===o.type),l=M.length&&("pipe"===o.type||"paren"===o.type);if(!a&&"paren"!==o.type&&!i&&!l){z({type:"star",value:U,output:""});continue}for(;"/**"===t.slice(0,3);){const n=e[B.index+4];if(n&&"/"!==n)break;t=t.slice(3),Q("/**",3)}if("bos"===o.type&&j()){G.type="globstar",G.value+=U,G.output=O(n),B.output=G.output,B.globstar=!0,Q(U);continue}if("slash"===o.type&&"bos"!==o.prev.type&&!s&&j()){B.output=B.output.slice(0,-(o.output+G.output).length),o.output="(?:"+o.output,G.type="globstar",G.output=O(n)+(n.strictSlashes?")":"|$)"),G.value+=U,B.globstar=!0,B.output+=o.output+G.output,Q(U);continue}if("slash"===o.type&&"bos"!==o.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";B.output=B.output.slice(0,-(o.output+G.output).length),o.output="(?:"+o.output,G.type="globstar",G.output=`${O(n)}${C}|${C}${e})`,G.value+=U,B.output+=o.output+G.output,B.globstar=!0,Q(U+F()),z({type:"slash",value:"/",output:""});continue}if("bos"===o.type&&"/"===t[0]){G.type="globstar",G.value+=U,G.output=`(?:^|${C}|${O(n)}${C})`,B.output=G.output,B.globstar=!0,Q(U+F()),z({type:"slash",value:"/",output:""});continue}B.output=B.output.slice(0,-G.output.length),G.type="globstar",G.output=O(n),G.value+=U,B.output+=G.output,B.globstar=!0,Q(U);continue}const o={type:"star",value:U,output:I};!0!==n.bash?!G||"bracket"!==G.type&&"paren"!==G.type||!0!==n.regex?(B.index!==B.start&&"slash"!==G.type&&"dot"!==G.type||("dot"===G.type?(B.output+=S,G.output+=S):!0===n.dot?(B.output+=w,G.output+=w):(B.output+=$,G.output+=$),"*"!==K()&&(B.output+=b,G.output+=b)),z(o)):(o.output=U,z(o)):(o.output=".*?","bos"!==G.type&&"slash"!==G.type||(o.output=$+o.output),z(o))}for(;B.brackets>0;){if(!0===n.strictBrackets)throw new SyntaxError(c("closing","]"));B.output=r.escapeLast(B.output,"["),Y("brackets")}for(;B.parens>0;){if(!0===n.strictBrackets)throw new SyntaxError(c("closing",")"));B.output=r.escapeLast(B.output,"("),Y("parens")}for(;B.braces>0;){if(!0===n.strictBrackets)throw new SyntaxError(c("closing","}"));B.output=r.escapeLast(B.output,"{"),Y("braces")}if(!0===n.strictSlashes||"star"!==G.type&&"bracket"!==G.type||z({type:"maybe_slash",value:"",output:C+"?"}),!0===B.backtrack){B.output="";for(const e of B.tokens)B.output+=null!=e.output?e.output:e.value,e.suffix&&(B.output+=e.suffix)}return B};d.fastpaths=(e,t)=>{const n={...t},s="number"==typeof n.maxLength?Math.min(a,n.maxLength):a,i=e.length;if(i>s)throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${s}`);e=p[e]||e;const l=r.isWindows(t),{DOT_LITERAL:u,SLASH_LITERAL:c,ONE_CHAR:d,DOTS_SLASH:f,NO_DOT:h,NO_DOTS:g,NO_DOTS_SLASH:A,STAR:y,START_ANCHOR:R}=o.globChars(l),m=n.dot?g:h,_=n.dot?A:h,E=n.capture?"":"?:";let C=!0===n.bash?".*?":y;n.capture&&(C=`(${C})`);const b=e=>!0===e.noglobstar?C:`(${E}(?:(?!${R}${e.dot?f:u}).)*?)`,x=e=>{switch(e){case"*":return`${m}${d}${C}`;case".*":return`${u}${d}${C}`;case"*.*":return`${m}${C}${u}${d}${C}`;case"*/*":return`${m}${C}${c}${d}${_}${C}`;case"**":return m+b(n);case"**/*":return`(?:${m}${b(n)}${c})?${_}${d}${C}`;case"**/*.*":return`(?:${m}${b(n)}${c})?${_}${C}${u}${d}${C}`;case"**/.*":return`(?:${m}${b(n)}${c})?${u}${d}${C}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const n=x(t[1]);if(!n)return;return n+u+t[2]}}},v=r.removePrefix(e,{negated:!1,prefix:""});let S=x(v);return S&&!0!==n.strictSlashes&&(S+=c+"?"),S},e.exports=d},828:(e,t,n)=>{const o=n(622),r=n(321),a=n(974),s=n(598),i=n(86),l=(e,t,n=!1)=>{if(Array.isArray(e)){const o=e.map(e=>l(e,t,n));return e=>{for(const t of o){const n=t(e);if(n)return n}return!1}}const o=(r=e)&&"object"==typeof r&&!Array.isArray(r)&&e.tokens&&e.input;var r;if(""===e||"string"!=typeof e&&!o)throw new TypeError("Expected pattern to be a non-empty string");const a=t||{},i=s.isWindows(t),p=o?l.compileRe(e,t):l.makeRe(e,t,!1,!0),u=p.state;delete p.state;let c=()=>!1;if(a.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};c=l(a.ignore,e,n)}const d=(n,o=!1)=>{const{isMatch:r,match:s,output:d}=l.test(n,p,t,{glob:e,posix:i}),f={glob:e,state:u,regex:p,posix:i,input:n,output:d,match:s,isMatch:r};return"function"==typeof a.onResult&&a.onResult(f),!1===r?(f.isMatch=!1,!!o&&f):c(n)?("function"==typeof a.onIgnore&&a.onIgnore(f),f.isMatch=!1,!!o&&f):("function"==typeof a.onMatch&&a.onMatch(f),!o||f)};return n&&(d.state=u),d};l.test=(e,t,n,{glob:o,posix:r}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const a=n||{},i=a.format||(r?s.toPosixSlashes:null);let p=e===o,u=p&&i?i(e):e;return!1===p&&(u=i?i(e):e,p=u===o),!1!==p&&!0!==a.capture||(p=!0===a.matchBase||!0===a.basename?l.matchBase(e,t,n,r):t.exec(u)),{isMatch:Boolean(p),match:p,output:u}},l.matchBase=(e,t,n,r=s.isWindows(n))=>(t instanceof RegExp?t:l.makeRe(t,n)).test(o.basename(e)),l.isMatch=(e,t,n)=>l(t,n)(e),l.parse=(e,t)=>Array.isArray(e)?e.map(e=>l.parse(e,t)):a(e,{...t,fastpaths:!1}),l.scan=(e,t)=>r(e,t),l.compileRe=(e,t,n=!1,o=!1)=>{if(!0===n)return e.output;const r=t||{},a=r.contains?"":"^",s=r.contains?"":"$";let i=`${a}(?:${e.output})${s}`;e&&!0===e.negated&&(i=`^(?!${i}).*$`);const p=l.toRegex(i,t);return!0===o&&(p.state=e),p},l.makeRe=(e,t,n=!1,o=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const r=t||{};let s,i={negated:!1,fastpaths:!0},p="";return e.startsWith("./")&&(e=e.slice(2),p=i.prefix="./"),!1===r.fastpaths||"."!==e[0]&&"*"!==e[0]||(s=a.fastpaths(e,t)),void 0===s?(i=a(e,t),i.prefix=p+(i.prefix||"")):i.output=s,l.compileRe(i,t,n,o)},l.toRegex=(e,t)=>{try{const n=t||{};return new RegExp(e,n.flags||(n.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},l.constants=i,e.exports=l},321:(e,t,n)=>{const o=n(598),{CHAR_ASTERISK:r,CHAR_AT:a,CHAR_BACKWARD_SLASH:s,CHAR_COMMA:i,CHAR_DOT:l,CHAR_EXCLAMATION_MARK:p,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:c,CHAR_LEFT_PARENTHESES:d,CHAR_LEFT_SQUARE_BRACKET:f,CHAR_PLUS:h,CHAR_QUESTION_MARK:g,CHAR_RIGHT_CURLY_BRACE:A,CHAR_RIGHT_PARENTHESES:y,CHAR_RIGHT_SQUARE_BRACKET:R}=n(86),m=e=>e===u||e===s,_=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const n=t||{},E=e.length-1,C=!0===n.parts||!0===n.scanToEnd,b=[],x=[],v=[];let S,w,H=e,T=-1,L=0,k=0,O=!1,$=!1,N=!1,I=!1,B=!1,M=!1,P=!1,D=!1,U=!1,G=0,j={value:"",depth:0,isGlob:!1};const K=()=>T>=E,F=()=>(S=w,H.charCodeAt(++T));for(;T0&&(Q=H.slice(0,L),H=H.slice(L),k-=L),W&&!0===N&&k>0?(W=H.slice(0,k),X=H.slice(k)):!0===N?(W="",X=H):W=H,W&&""!==W&&"/"!==W&&W!==H&&m(W.charCodeAt(W.length-1))&&(W=W.slice(0,-1)),!0===n.unescape&&(X&&(X=o.removeBackslashes(X)),W&&!0===P&&(W=o.removeBackslashes(W)));const q={prefix:Q,input:e,start:L,base:W,glob:X,isBrace:O,isBracket:$,isGlob:N,isExtglob:I,isGlobstar:B,negated:D};if(!0===n.tokens&&(q.maxDepth=0,m(w)||x.push(j),q.tokens=x),!0===n.parts||!0===n.tokens){let t;for(let o=0;o{const o=n(622),r="win32"===process.platform,{REGEX_BACKSLASH:a,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:i,REGEX_SPECIAL_CHARS_GLOBAL:l}=n(86);t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>i.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(l,"\\$1"),t.toPosixSlashes=e=>e.replace(a,"/"),t.removeBackslashes=e=>e.replace(s,e=>"\\"===e?"":e),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===r||"\\"===o.sep,t.escapeLast=(e,n,o)=>{const r=e.lastIndexOf(n,o);return-1===r?e:"\\"===e[r-1]?t.escapeLast(e,n,r-1):`${e.slice(0,r)}\\${e.slice(r)}`},t.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n},t.wrapOutput=(e,t={},n={})=>{let o=`${n.contains?"":"^"}(?:${e})${n.contains?"":"$"}`;return!0===t.negated&&(o=`(?:^(?!${o}).*$)`),o}},615:(e,t,n)=>{ -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ -const o=n(761),r=(e,t,n)=>{if(!1===o(e))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===t||e===t)return String(e);if(!1===o(t))throw new TypeError("toRegexRange: expected the second argument to be a number.");let a={relaxZeros:!0,...n};"boolean"==typeof a.strictZeros&&(a.relaxZeros=!1===a.strictZeros);let l=e+":"+t+"="+String(a.relaxZeros)+String(a.shorthand)+String(a.capture)+String(a.wrap);if(r.cache.hasOwnProperty(l))return r.cache[l].result;let p=Math.min(e,t),u=Math.max(e,t);if(1===Math.abs(p-u)){let n=e+"|"+t;return a.capture?`(${n})`:!1===a.wrap?n:`(?:${n})`}let c=h(e)||h(t),d={min:e,max:t,a:p,b:u},f=[],g=[];if(c&&(d.isPadded=c,d.maxLen=String(d.max).length),p<0){g=s(u<0?Math.abs(u):1,Math.abs(p),d,a),p=d.a=0}return u>=0&&(f=s(p,u,d,a)),d.negatives=g,d.positives=f,d.result=function(e,t,n){let o=i(e,t,"-",!1,n)||[],r=i(t,e,"",!1,n)||[],a=i(e,t,"-?",!0,n)||[];return o.concat(a).concat(r).join("|")}(g,f,a),!0===a.capture?d.result=`(${d.result})`:!1!==a.wrap&&f.length+g.length>1&&(d.result=`(?:${d.result})`),r.cache[l]=d,d.result};function a(e,t,n){if(e===t)return{pattern:e,count:[],digits:0};let o=function(e,t){let n=[];for(let o=0;o1&&r.count.pop(),r.count.push(l.count[0]),r.string=r.pattern+d(r.count),p=t+1)}return i}function i(e,t,n,o,r){let a=[];for(let r of e){let{string:e}=r;o||p(t,"string",e)||a.push(n+e),o&&p(t,"string",e)&&a.push(n+e)}return a}function l(e,t){return e>t?1:t>e?-1:0}function p(e,t,n){return e.some(e=>e[t]===n)}function u(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function c(e,t){return e-e%Math.pow(10,t)}function d(e){let[t=0,n=""]=e;return n||t>1?`{${t+(n?","+n:"")}}`:""}function f(e,t,n){return`[${e}${t-e==1?"":"-"}${t}]`}function h(e){return/^-?(0+)\d/.test(e)}function g(e,t,n){if(!t.isPadded)return e;let o=Math.abs(t.maxLen-String(e).length),r=!1!==n.relaxZeros;switch(o){case 0:return"";case 1:return r?"0?":"0";case 2:return r?"0{0,2}":"00";default:return r?`0{0,${o}}`:`0{${o}}`}}r.cache={},r.clearCache=()=>r.cache={},e.exports=r},594:e=>{e.exports=require("@yarnpkg/cli")},966:e=>{e.exports=require("@yarnpkg/core")},42:e=>{e.exports=require("clipanion")},87:e=>{e.exports=require("os")},622:e=>{e.exports=require("path")},669:e=>{e.exports=require("util")},440:e=>{e.exports=require("yup")}},t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={exports:{}};return e[o](r,r.exports,n),r.exports}return n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(115)})(); -return plugin; -} -}; \ No newline at end of file diff --git a/.yarn/releases/yarn-berry.cjs b/.yarn/releases/yarn-berry.cjs deleted file mode 100755 index d7a135d9b..000000000 --- a/.yarn/releases/yarn-berry.cjs +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env node -module.exports=(()=>{var __webpack_modules__={80150:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>g});var n=r(32741);const i={optional:!0},A=[["@samverschueren/stream-to-observable@*",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@*",{peerDependenciesMeta:{"supports-color":i}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":i,"postcss-jsx":i,"postcss-less":i,"postcss-markdown":i,"postcss-scss":i}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@*",{peerDependencies:{react:"^16.8.2"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:i}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@*",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@*",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4"},peerDependenciesMeta:{eslint:i}}],["rc-animate@*",{peerDependencies:{react:"^15.0.0 || ^16.0.0","react-dom":"^15.0.0 || ^16.0.0"}}]];let o,s,a;const c=new Map([[n.structUtils.makeIdent(null,"fsevents").identHash,function(){return void 0===o&&(o=r(78761).brotliDecompressSync(Buffer.from("G1gUAIzCtr2xMzjJgJA88r/l8s7l9OoQ+WtKxU5uIQ1k15mQ1bamroyXoMKC0yqx44/BZ2Kp0oH6z9/XdLihMONU+ufec9+07fv777XvQJOVjRaHnkmAASXQQzhvDK3lC18lfWMQhmk/hyqMS39FA4d4X8na/QZocXQ3LmObAWWccY/xG5ZSBm6J6brPQ3E9pQ9DGJyhaurt4KyaZ+syHd/CnvYuraXnvJwez3WGhy6s6ecrfJVYeBDArI75wxB2HxweIqw0/gT+qXpDEji4JdFGZ5Do7yg5nV8J1f33B2JUENlw97TRDgNjq3yzyqD4IoFfFgJqt3Ga003n9/+eOFU1KYz99N6eCCDmOTGq8usWP53fU1IK8D0qzI3bK5KkKGgUjkG1dRyJBAC/T4SK5AOiInV6kSnLcQGMDKTOwrPxN8919kVydBmns6kfSdr1DhMISD0Q1qGeqWAowNVB+MlACshFFA8GHqpUTfgPlAi3RRDj6lJGtDcafGRQNymNVsmoKySzioKxwowoUiDaisGalJQCq7cw/5n3ETx7nKiI0iqiVdn885HOYSf2yH4hATXJEesF2nOfqp2bzLO2T2uI0hX/0JwMdac692S4i9/UzJ5PPqsqAVnxooXrvlQ/1ibnqvhIvgBqLWtP+p8kNU8NSlso1fnR6P8ir9txAdrm+XaYQpbns6D5hqqKw6WkVuPP2cNXIXqf22EaIHq/FDSg/sUFz5s4K0JyemiYYFrc5HBiLmmE5qqpIStviMHER2BVSUZlRCUOzCaHkCisRn3ltIMkNegRhip+9sT3nKpPPFIASnM1QVvE25LUteytfyIxhi2C4zcl3oloipwOLj6/qJOtPAPEAnKf105va2Lf3B1CndU2yBIrW2urW8N6wbdSYoBvisT5KlRosuRJcV9TL7dGdNXzUA7aqJSIfGdtxCJi8dK7/dx2uFksGP773q3ioNgRNkUAIS6y+CJBY2U5zV0P/XqaWeE3RYDV//Sv7mgs+kEVZ5ST1tCArNYcidRe9ZudVIfLfzxcpbzIv+Lc3ZvJD1cXzeVNM25FDyRmU2fd1F/bdVAqOWnKk1Q52pkEfMDeVC0GW4Q/lmckM5Z5r7Nz3WlkQcEICtc3JDVTXIl3r9YXggjAkDzU4r4NQehHbLEQ/uINXzYTISLiZQsFICKVpU69ME8bYLnLZlwmBJSZYAehatIhj3gC6Iho0uFsc8w92muCdflw5SouKRfSodbNZoLcxbG48Rc6Ng3mU+TcU65b2pRVwaIO0N0TNYmptsxD5WTDtG5SWskELYsSSoqpH6VNkXxcg3vwQGWaF5XL2XI5GgG6iA6kETJUICJE1GBXQ1TJT1OvRjNQFRutEg8EXZHQEHCYv8fWDiL+o7rWbEBqFvhMEZWL9uQLQqyNLrxq7wfa2P5dXv+PYsQqrih/3/6/5zLNAQ==","base64")).toString()),o}],[n.structUtils.makeIdent(null,"resolve").identHash,function(){return void 0===s&&(s=r(78761).brotliDecompressSync(Buffer.from("G1QTIIzURnVBnGa0VPvr81orV8AFIqdU0sqrdcVgCdukgAZwi8a50gLk9+19Z2NcUILjmzXkzt4dzm5a6Yoys+/9qnKiaApXukOiuoyUaMcynG4X7X4vBaIE/PL30gwG6HSGJkLxb9PnLjfMr+748n7sM6C/NycK6ber/bX1reVVxta6W/31tZIhfrS+upoE/TPRHj0S/l0T59gTGdtKOp1OmMOJt9rhfucDdLJ2tgyfnO+u4YMkQAcYq/nebTcDmbXhqhgo6iQA4M3m4xya4Cos3p6klmkmQT+S4DLDZfwfMF+sUCx36KleOtaHLQfEIz0Bmncj/Ngi3lqOl4391EWEfIss6gVp3oDUGwsSZJKeOVONJWZg+Mue3KUMV3aMqYJ+7b2219D+GFDi8EV5y/Y+5J+He0oNjKAgqLsJziEsS9uIaCu3BHBKSXxNKKa2ShbfglcWoiiVT2kfGI7Gw+YJ/Sqy1H6wdFWtyVUQIa82JPwbeV25YKLzc5ZIFM6GCPSA+J9dTvJbs5LuuKnLP3f09gCu2jxqsAv6CA+ZySVaUJr2d3A70BC/uBCKr2OVrWgC3fSwb7NlfkgSEEiejrMGvhya9lMbVI6lMsFKN330A1/FOaefHQdNGLEZ3IwFF87H3xVlM0Xxsmbi/7A60oymRcIe0tH90alG6ez/yA7jwYotxuHWZdR+1HlMcddGHAV6QD/gXYPV0wnNv47I+5FGevzZFMqWSO8GU4nQ3FjsdgdJcD+c1rvudERKuLyd7bxiBpnsMDHsvPP4nXdXkld/gUNks3GAE1Otmb90bavDyiw4Mrx496Iw+jbLTgsCZGZXSZ9vM55C7KGe4HyJAKXEk0iT/Cj/PFwLJBN7pcP7ZFfYtUApGTWKkYhI9IE2zt/5ByH72wdvH+88b71zuv/FMCX3w6x5nzhY44Cg5IYv9LeKwHuHIWgPbfgrAcUxOlKkPRdQOIDF/aBuLPJAXD+TgxCNXx4jQxeR/qlBWVikFPfEI4rXMUc4kZ2w9KbPKYRvFUag0dVlVoyUP4zfidbTXAdZF88jAckl+NHjLFCNdX7EQ1PbLSOl+P+MqgwEOCi6dxgWZ7NCwJBjWKpk1LaxwKrhZ4aEC/0lMPJYe5S8xAakDcmA2kSS86GjEMTrv3VEu0S0YGZcxToMV524G4WAc4CReePePdipvs4aXRL5p+aeN96yfMGjsiTbQNxgbdRKc+keQ+NxYIEm1mBtEO29WrcbrqNbQRMR66KpGG4aG0NtmRyZ2JhUvu0paCklRlID8PT3gSiwZrqr4XZXoBBzBMrveWCuOg7iTgGDXDdbGi8XHkQf5KXDGFUxWueu5wkSa6gMWY1599g2piQjwBKIAPt4N5cOZdFBidz2feGwEAy1j1UydGxDSCCUsh314cUIIRV/dWCheceubL2gU8CibewmP7UxmN5kN4I7zfQhPxkP0NCcei8GXQpw4c3krEzW7PR2hgi/hqqqR58UJ/ZVfWxfcH5ZKMo4itkmPK0FCGxzzIRP20lK/gz28Y03sY233KvSVWUKl9rcbX6MbHjpUG8MvNlw72p6FwTejv92zgpnCxVJnIHHZhCBxNcHF5RTveRp513hUtTHHq4BIndlytZT5xoTSYfHKqKNr4o9kcGINIz6tZSKRdtbON3Ydr9cgqxHIeisMNIsvPg/IFMZuBbSqqDLeSO5dak1cGr76FtH2PC7hs0S0Oq3GsmF1Ga4YABAMGcdPAWzTk26B7cKV91I2b0V/GYvnsEQ1YGntRqi5EQqTlgZszbV/32GuZtUF49JOA/r4jAdwUOsbPo6mNoBlJPYjM5axrZaWQf33bFsLWqiyvvDOM4x0Ng802T7cuP2a3q98GWq6yiq6q3M77hcZlOUnmryctRYmI4Hb2F5XixFohkBmySCjU+M7/WQVE5YAtnlxiUJDhFN0y1tNeMWY9E0MfZi2rQ4eC72WXjsAA==","base64")).toString()),s}],[n.structUtils.makeIdent(null,"typescript").identHash,function(){return void 0===a&&(a=r(78761).brotliDecompressSync(Buffer.from("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","base64")).toString()),a}]]),g={hooks:{registerPackageExtensions:async(e,t)=>{for(const[e,r]of A)t(n.structUtils.parseDescriptor(e,!0),r)},getBuiltinPatch:async(e,t)=>{var r;if(!t.startsWith("compat/"))return;const i=n.structUtils.parseIdent(t.slice("compat/".length)),A=null===(r=c.get(i.identHash))||void 0===r?void 0:r();return void 0!==A?A:null},reduceDependency:async(e,t,r,i)=>void 0===c.get(e.identHash)?e:n.structUtils.makeDescriptor(e,n.structUtils.makeRange({protocol:"patch:",source:n.structUtils.stringifyDescriptor(e),selector:`builtin`,params:null}))}}},10420:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>h});var n=r(36370),i=r(95397),A=r(32741),o=r(40822);class s extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){const e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");const t=A.structUtils.parseIdent(this.command),r=A.structUtils.makeIdent(t.scope,"create-"+t.name);return this.cli.run(["dlx",...e,A.structUtils.stringifyIdent(r),...this.args])}}(0,n.gn)([o.Command.String("-p,--package",{description:"The package to run the provided command from"})],s.prototype,"pkg",void 0),(0,n.gn)([o.Command.Boolean("-q,--quiet",{description:"Only report critical errors instead of printing the full install logs"})],s.prototype,"quiet",void 0),(0,n.gn)([o.Command.String()],s.prototype,"command",void 0),(0,n.gn)([o.Command.Proxy()],s.prototype,"args",void 0),(0,n.gn)([o.Command.Path("create")],s.prototype,"execute",null);var a=r(27122),c=r(40376),g=r(56537),l=r(46009);class u extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){return a.VK.telemetry=null,await g.xfs.mktempPromise(async e=>{const t=l.y1.join(e,"dlx-"+process.pid);await g.xfs.mkdirPromise(t),await g.xfs.writeFilePromise(l.y1.join(t,"package.json"),"{}\n"),await g.xfs.writeFilePromise(l.y1.join(t,"yarn.lock"),"");const r=l.y1.join(t,".yarnrc.yml"),n=await a.VK.findProjectCwd(this.context.cwd,l.QS.lockfile),o=null!==n?l.y1.join(n,".yarnrc.yml"):null;null!==o&&g.xfs.existsSync(o)?(await g.xfs.copyFilePromise(o,r),await a.VK.updateConfiguration(t,e=>{const t={...e,enableGlobalCache:!0,enableTelemetry:!1};return Array.isArray(e.plugins)&&(t.plugins=e.plugins.map(e=>{const t="string"==typeof e?e:e.path,r=l.cS.isAbsolute(t)?t:l.cS.resolve(l.cS.fromPortablePath(n),t);return"string"==typeof e?r:{path:r,spec:e.spec}})),t})):await g.xfs.writeFilePromise(r,"enableGlobalCache: true\nenableTelemetry: false\n");const s=void 0!==this.pkg?[this.pkg]:[this.command],u=A.structUtils.parseDescriptor(this.command).name,h=await this.cli.run(["add","--",...s],{cwd:t,quiet:this.quiet});if(0!==h)return h;this.quiet||this.context.stdout.write("\n");const p=await a.VK.find(t,this.context.plugins),{project:f,workspace:d}=await c.I.find(p,t);if(null===d)throw new i.WorkspaceRequiredError(f.cwd,t);return await f.restoreInstallState(),await A.scriptUtils.executeWorkspaceAccessibleBinary(d,u,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}}u.usage=o.Command.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"]]}),(0,n.gn)([o.Command.String("-p,--package",{description:"The package to run the provided command from"})],u.prototype,"pkg",void 0),(0,n.gn)([o.Command.Boolean("-q,--quiet",{description:"Only report critical errors instead of printing the full install logs"})],u.prototype,"quiet",void 0),(0,n.gn)([o.Command.String()],u.prototype,"command",void 0),(0,n.gn)([o.Command.Proxy()],u.prototype,"args",void 0),(0,n.gn)([o.Command.Path("dlx")],u.prototype,"execute",null);const h={commands:[s,u]}},51202:(e,t,r)=>{"use strict";r.r(t),r.d(t,{suggestUtils:()=>n,default:()=>Oe});var n={};r.r(n),r.d(n,{Modifier:()=>A,Strategy:()=>o,Target:()=>i,applyModifier:()=>D,extractDescriptorFromPath:()=>k,extractRangeModifier:()=>b,fetchDescriptorFrom:()=>N,findProjectDescriptors:()=>S,getModifier:()=>Q,getSuggestedDescriptors:()=>M});var i,A,o,s=r(27122),a=r(36370),c=r(95397),g=r(28148),l=r(62152),u=r(92659),h=r(40376),p=r(15815),f=r(32741),d=r(40822),C=r(61899),I=r(33720),E=r(46611),m=r(46009),B=r(56537),y=r(53887),w=r.n(y);function Q(e,t){return e.exact?A.EXACT:e.caret?A.CARET:e.tilde?A.TILDE:t.configuration.get("defaultSemverRangePrefix")}!function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"}(i||(i={})),function(e){e.CARET="^",e.TILDE="~",e.EXACT=""}(A||(A={})),function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"}(o||(o={}));const v=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function b(e,{project:t}){const r=e.match(v);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function D(e,t){let{protocol:r,source:n,params:i,selector:A}=f.structUtils.parseRange(e.range);return w().valid(A)&&(A=`${t}${e.range}`),f.structUtils.makeDescriptor(e,f.structUtils.makeRange({protocol:r,source:n,params:i,selector:A}))}async function S(e,{project:t,target:r}){const n=new Map,A=e=>{let t=n.get(e.descriptorHash);return t||n.set(e.descriptorHash,t={descriptor:e,locators:[]}),t};for(const n of t.workspaces)if(r===i.PEER){const t=n.manifest.peerDependencies.get(e.identHash);void 0!==t&&A(t).locators.push(n.locator)}else{const t=n.manifest.dependencies.get(e.identHash),o=n.manifest.devDependencies.get(e.identHash);r===i.DEVELOPMENT?void 0!==o?A(o).locators.push(n.locator):void 0!==t&&A(t).locators.push(n.locator):void 0!==t?A(t).locators.push(n.locator):void 0!==o&&A(o).locators.push(n.locator)}return n}async function k(e,{cwd:t,workspace:r}){return await async function(e){return await B.xfs.mktempPromise(async t=>{const r=s.VK.create(t);return r.useWithSource(t,{enableMirror:!1,compressionLevel:0},t,{overwrite:!0}),await e(new g.C(t,{configuration:r,check:!1,immutable:!1}))})}(async n=>{m.y1.isAbsolute(e)||(e=m.y1.relative(r.cwd,m.y1.resolve(t,e))).match(/^\.{0,2}\//)||(e="./"+e);const{project:i}=r,A=await N(f.structUtils.makeIdent(null,"archive"),e,{project:r.project,cache:n,workspace:r});if(!A)throw new Error("Assertion failed: The descriptor should have been found");const o=new I.$,s=i.configuration.makeResolver(),a=i.configuration.makeFetcher(),c={checksums:i.storedChecksums,project:i,cache:n,fetcher:a,report:o,resolver:s},g=s.bindDescriptor(A,r.anchoredLocator,c),l=f.structUtils.convertDescriptorToLocator(g),u=await a.fetch(l,c),h=await E.G.find(u.prefixPath,{baseFs:u.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return f.structUtils.makeDescriptor(h.name,e)})}async function M(e,{project:t,workspace:r,cache:n,target:A,modifier:s,strategies:a,maxResults:c=1/0}){if(!(c>=0))throw new Error(`Invalid maxResults (${c})`);if("unknown"!==e.range)return{suggestions:[{descriptor:e,name:"Use "+f.structUtils.prettyDescriptor(t.configuration,e),reason:"(unambiguous explicit request)"}],rejections:[]};const g=null!=r&&r.manifest[A].get(e.identHash)||null,l=[],u=[],h=async e=>{try{await e()}catch(e){u.push(e)}};for(const u of a){if(l.length>=c)break;switch(u){case o.KEEP:await h(async()=>{g&&l.push({descriptor:g,name:"Keep "+f.structUtils.prettyDescriptor(t.configuration,g),reason:"(no changes)"})});break;case o.REUSE:await h(async()=>{for(const{descriptor:n,locators:i}of(await S(e,{project:t,target:A})).values()){if(1===i.length&&i[0].locatorHash===r.anchoredLocator.locatorHash&&a.includes(o.KEEP))continue;let e="(originally used by "+f.structUtils.prettyLocator(t.configuration,i[0]);e+=i.length>1?` and ${i.length-1} other${i.length>2?"s":""})`:")",l.push({descriptor:n,name:"Reuse "+f.structUtils.prettyDescriptor(t.configuration,n),reason:e})}});break;case o.CACHE:await h(async()=>{for(const r of t.storedDescriptors.values())r.identHash===e.identHash&&l.push({descriptor:r,name:"Reuse "+f.structUtils.prettyDescriptor(t.configuration,r),reason:"(already used somewhere in the lockfile)"})});break;case o.PROJECT:await h(async()=>{if(null!==r.manifest.name&&e.identHash===r.manifest.name.identHash)return;const n=t.tryWorkspaceByIdent(e);null!==n&&l.push({descriptor:n.anchoredDescriptor,name:"Attach "+f.structUtils.prettyWorkspace(t.configuration,n),reason:`(local workspace at ${n.cwd})`})});break;case o.LATEST:await h(async()=>{if("unknown"!==e.range)l.push({descriptor:e,name:"Use "+f.structUtils.prettyRange(t.configuration,e.range),reason:"(explicit range requested)"});else if(A===i.PEER)l.push({descriptor:f.structUtils.makeDescriptor(e,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(t.configuration.get("enableNetwork")){let i=await N(e,"latest",{project:t,cache:n,workspace:r,preserveModifier:!1});i&&(i=D(i,s),l.push({descriptor:i,name:"Use "+f.structUtils.prettyDescriptor(t.configuration,i),reason:"(resolved from latest)"}))}else l.push({descriptor:null,name:"Resolve from latest",reason:f.formatUtils.pretty(t.configuration,"(unavailable because enableNetwork is toggled off)","grey")})})}}return{suggestions:l.slice(0,c),rejections:u.slice(0,c)}}async function N(e,t,{project:r,cache:n,workspace:i,preserveModifier:A=!0}){const o=f.structUtils.makeDescriptor(e,t),s=new I.$,a=r.configuration.makeFetcher(),c=r.configuration.makeResolver(),g={project:r,fetcher:a,cache:n,checksums:r.storedChecksums,report:s,skipIntegrityCheck:!0},l={...g,resolver:c,fetchOptions:g},u=c.bindDescriptor(o,i.anchoredLocator,l),h=await c.getCandidates(u,new Map,l);if(0===h.length)return null;const p=h[0];let{protocol:d,source:C,params:E,selector:m}=f.structUtils.parseRange(f.structUtils.convertToManifestRange(p.reference));if(d===r.configuration.get("defaultProtocol")&&(d=null),w().valid(m)&&!1!==A){m=b("string"==typeof A?A:o.range,{project:r})+m}return f.structUtils.makeDescriptor(p,f.structUtils.makeRange({protocol:d,source:C,params:E,selector:m}))}class F extends c.BaseCommand{constructor(){super(...arguments),this.packages=[],this.json=!1,this.exact=!1,this.tilde=!1,this.caret=!1,this.dev=!1,this.peer=!1,this.optional=!1,this.preferDev=!1,this.interactive=null,this.cached=!1}async execute(){var e;const t=await s.VK.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await h.I.find(t,this.context.cwd),A=await g.C.find(t);if(!n)throw new c.WorkspaceRequiredError(r.cwd,this.context.cwd);const a=null!==(e=this.interactive)&&void 0!==e?e:t.get("preferInteractive"),I=Q(this,r),E=[...a?[o.REUSE]:[],o.PROJECT,...this.cached?[o.CACHE]:[],o.LATEST],m=a?1/0:1,B=await Promise.all(this.packages.map(async e=>{const t=e.match(/^\.{0,2}\//)?await k(e,{cwd:this.context.cwd,workspace:n}):f.structUtils.parseDescriptor(e),o=function(e,t,{dev:r,peer:n,preferDev:A,optional:o}){const s=e.manifest[i.REGULAR].has(t.identHash),a=e.manifest[i.DEVELOPMENT].has(t.identHash),c=e.manifest[i.PEER].has(t.identHash);if((r||n)&&s)throw new d.UsageError(`Package "${f.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&c)throw new d.UsageError(`Package "${f.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(o&&a)throw new d.UsageError(`Package "${f.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(o&&!n&&c)throw new d.UsageError(`Package "${f.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||A)&&o)throw new d.UsageError(`Package "${f.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);return n?i.PEER:r||A?i.DEVELOPMENT:s?i.REGULAR:a?i.DEVELOPMENT:i.REGULAR}(n,t,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return[t,await M(t,{project:r,workspace:n,cache:A,target:o,modifier:I,strategies:E,maxResults:m}),o]})),y=await l.h.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async e=>{for(const[n,{suggestions:i,rejections:A}]of B){if(0===i.filter(e=>null!==e.descriptor).length){const[i]=A;if(void 0===i)throw new Error("Assertion failed: Expected an error to have been set");const o=this.cli.error(i);r.configuration.get("enableNetwork")?e.reportError(u.b.CANT_SUGGEST_RESOLUTIONS,`${f.structUtils.prettyDescriptor(t,n)} can't be resolved to a satisfying range:\n\n${o}`):e.reportError(u.b.CANT_SUGGEST_RESOLUTIONS,`${f.structUtils.prettyDescriptor(t,n)} can't be resolved to a satisfying range (note: network resolution has been disabled):\n\n${o}`)}}});if(y.hasErrors())return y.exitCode();let w=!1;const v=[],b=[];for(const[,{suggestions:e},t]of B){let r;const i=e.filter(e=>null!==e.descriptor),A=i[0].descriptor,o=i.every(e=>f.structUtils.areDescriptorsEqual(e.descriptor,A));1===i.length||o?r=A:(w=!0,({answer:r}=await(0,C.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:e.map(({descriptor:e,name:t,reason:r})=>e?{name:t,hint:r,descriptor:e}:{name:t,hint:r,disabled:!0}),onCancel:()=>process.exit(130),result(e){return this.find(e,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout})));const s=n.manifest[t].get(r.identHash);void 0!==s&&s.descriptorHash===r.descriptorHash||(n.manifest[t].set(r.identHash,r),this.optional&&("dependencies"===t?n.manifest.ensureDependencyMeta({...r,range:"unknown"}).optional=!0:"peerDependencies"===t&&(n.manifest.ensurePeerDependencyMeta({...r,range:"unknown"}).optional=!0)),void 0===s?v.push([n,t,r,E]):b.push([n,t,s,r]))}await t.triggerMultipleHooks(e=>e.afterWorkspaceDependencyAddition,v),await t.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,b),w&&this.context.stdout.write("\n");return(await p.Pk.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await r.install({cache:A,report:e})})).exitCode()}}F.usage=d.Command.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a tag range (such as `latest` or `rc`), Yarn will resolve this tag to a semver version and use that in the resulting package.json entry (meaning that `yarn add foo@latest` will have exactly the same effect as `yarn add foo`).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]}),(0,a.gn)([d.Command.Rest()],F.prototype,"packages",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],F.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact",{description:"Don't use any semver modifier on the resolved range"})],F.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde",{description:"Use the `~` semver modifier on the resolved range"})],F.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret",{description:"Use the `^` semver modifier on the resolved range"})],F.prototype,"caret",void 0),(0,a.gn)([d.Command.Boolean("-D,--dev",{description:"Add a package as a dev dependency"})],F.prototype,"dev",void 0),(0,a.gn)([d.Command.Boolean("-P,--peer",{description:"Add a package as a peer dependency"})],F.prototype,"peer",void 0),(0,a.gn)([d.Command.Boolean("-O,--optional",{description:"Add / upgrade a package to an optional regular / peer dependency"})],F.prototype,"optional",void 0),(0,a.gn)([d.Command.Boolean("--prefer-dev",{description:"Add / upgrade a package to a dev dependency"})],F.prototype,"preferDev",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"})],F.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("--cached",{description:"Reuse the highest version already used somewhere within the project"})],F.prototype,"cached",void 0),(0,a.gn)([d.Command.Path("add")],F.prototype,"execute",null);class R extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,locator:r}=await h.I.find(e,this.context.cwd);if(await t.restoreInstallState(),this.name){const n=(await f.scriptUtils.getPackageAccessibleBinaries(r,{project:t})).get(this.name);if(!n)throw new d.UsageError(`Couldn't find a binary named "${this.name}" for package "${f.structUtils.prettyLocator(e,r)}"`);const[,i]=n;return this.context.stdout.write(i+"\n"),0}return(await p.Pk.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{const i=await f.scriptUtils.getPackageAccessibleBinaries(r,{project:t}),A=Array.from(i.keys()).reduce((e,t)=>Math.max(e,t.length),0);for(const[e,[t,r]]of i)n.reportJson({name:e,source:f.structUtils.stringifyIdent(t),path:r});if(this.verbose)for(const[t,[r]]of i)n.reportInfo(null,`${t.padEnd(A," ")} ${f.structUtils.prettyLocator(e,r)}`);else for(const e of i.keys())n.reportInfo(null,e)})).exitCode()}}R.usage=d.Command.Usage({description:"get the path to a binary script",details:"\n When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the `-v,--verbose` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.\n\n When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.\n ",examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]}),(0,a.gn)([d.Command.String({required:!1})],R.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("-v,--verbose",{description:"Print both the binary name and the locator of the package that provides the binary"})],R.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],R.prototype,"json",void 0),(0,a.gn)([d.Command.Path("bin")],R.prototype,"execute",null);class K extends c.BaseCommand{constructor(){super(...arguments),this.mirror=!1,this.all=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),t=await g.C.find(e);return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async()=>{const e=(this.all||this.mirror)&&null!==t.mirrorCwd,r=!this.mirror;e&&await B.xfs.removePromise(t.mirrorCwd),r&&await B.xfs.removePromise(t.cwd)})).exitCode()}}K.usage=d.Command.Usage({description:"remove the shared cache files",details:"\n This command will remove all the files from the cache.\n ",examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]}),(0,a.gn)([d.Command.Boolean("--mirror",{description:"Remove the global cache files instead of the local cache files"})],K.prototype,"mirror",void 0),(0,a.gn)([d.Command.Boolean("--all",{description:"Remove both the global cache files and the local cache files of the current project"})],K.prototype,"all",void 0),(0,a.gn)([d.Command.Path("cache","clean")],K.prototype,"execute",null);var L=r(44674),x=r.n(L),P=r(31669);class U extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.unsafe=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=T(e.getSpecial(t,{hideSecrets:!this.unsafe,getNativePaths:!0})),i=r?x()(n,r):n,A=await p.Pk.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async e=>{e.reportJson(i)});if(!this.json){if("string"==typeof i)return this.context.stdout.write(i+"\n"),A.exitCode();P.inspect.styles.name="cyan",this.context.stdout.write((0,P.inspect)(i,{depth:1/0,colors:e.get("enableColors"),compact:!1})+"\n")}return A.exitCode()}}function T(e){if(e instanceof Map&&(e=Object.fromEntries(e)),"object"==typeof e&&null!==e)for(const t of Object.keys(e)){const r=e[t];"object"==typeof r&&null!==r&&(e[t]=T(r))}return e}U.usage=d.Command.Usage({description:"read a configuration settings",details:"\n This command will print a configuration setting.\n\n Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the `--no-redacted` to get the untransformed value.\n ",examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration","yarn config get 'npmScopes[\"my-company\"].npmRegistryServer'"],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]}),(0,a.gn)([d.Command.String()],U.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],U.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--no-redacted",{description:"Don't redact secrets (such as tokens) from the output"})],U.prototype,"unsafe",void 0),(0,a.gn)([d.Command.Path("config","get")],U.prototype,"execute",null);var O=r(82558),Y=r.n(O),j=r(81534),G=r.n(j);class H extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.home=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins);if(!e.projectCwd)throw new d.UsageError("This command must be run from within a project folder");const t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*\.?/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=this.json?JSON.parse(this.value):this.value,i=this.home?e=>s.VK.updateHomeConfiguration(e):t=>s.VK.updateConfiguration(e.projectCwd,t);await i(e=>{if(r){const t=Y()(e);return G()(t,this.name,n),t}return{...e,[t]:n}});const A=T((await s.VK.find(this.context.cwd,this.context.plugins)).getSpecial(t,{hideSecrets:!0,getNativePaths:!0})),o=r?x()(A,r):A;return(await p.Pk.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async t=>{P.inspect.styles.name="cyan",t.reportInfo(u.b.UNNAMED,`Successfully set ${this.name} to ${(0,P.inspect)(o,{depth:1/0,colors:e.get("enableColors"),compact:!1})}`)})).exitCode()}}H.usage=d.Command.Usage({description:"change a configuration settings",details:"\n This command will set a configuration setting.\n\n When used without the `--json` flag, it can only set a simple configuration setting (a string, a number, or a boolean).\n\n When used with the `--json` flag, it can set both simple and complex configuration settings, including Arrays and Objects.\n ",examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",'yarn config set unsafeHttpWhitelist --json \'["*.example.com", "example.com"]\''],["Set a complex configuration setting (an Object) using the `--json` flag",'yarn config set packageExtensions --json \'{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }\'']]}),(0,a.gn)([d.Command.String()],H.prototype,"name",void 0),(0,a.gn)([d.Command.String()],H.prototype,"value",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Set complex configuration settings to JSON values"})],H.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("-H,--home",{description:"Update the home configuration instead of the project configuration"})],H.prototype,"home",void 0),(0,a.gn)([d.Command.Path("config","set")],H.prototype,"execute",null);class J extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.why=!1,this.json=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins,{strict:!1});return(await p.Pk.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{if(e.invalid.size>0&&!this.json){for(const[r,n]of e.invalid)t.reportError(u.b.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${r}" in ${n}`);t.reportSeparator()}if(this.json){const r=f.miscUtils.sortMap(e.settings.keys(),e=>e);for(const n of r){const r=e.settings.get(n),i=e.getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),A=e.sources.get(n);this.verbose?t.reportJson({key:n,effective:i,source:A}):t.reportJson({key:n,effective:i,source:A,...r})}}else{const r=f.miscUtils.sortMap(e.settings.keys(),e=>e),n=r.reduce((e,t)=>Math.max(e,t.length),0),i={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){const A=r.map(t=>{const r=e.settings.get(t);if(!r)throw new Error(`Assertion failed: This settings ("${t}") should have been registered`);return[t,this.why?e.sources.get(t)||"":r.description]}),o=A.reduce((e,[,t])=>Math.max(e,t.length),0);for(const[r,s]of A)t.reportInfo(null,`${r.padEnd(n," ")} ${s.padEnd(o," ")} ${(0,P.inspect)(e.getSpecial(r,{hideSecrets:!0,getNativePaths:!0}),i)}`)}else for(const A of r)t.reportInfo(null,`${A.padEnd(n," ")} ${(0,P.inspect)(e.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),i)}`)}})).exitCode()}}J.usage=d.Command.Usage({description:"display the current configuration",details:"\n This command prints the current active configuration settings.\n ",examples:[["Print the active configuration settings","$0 config"]]}),(0,a.gn)([d.Command.Boolean("-v,--verbose",{description:"Print the setting description on top of the regular key/value information"})],J.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--why",{description:"Print the reason why a setting is set a particular way"})],J.prototype,"why",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],J.prototype,"json",void 0),(0,a.gn)([d.Command.Path("config")],J.prototype,"execute",null);var _,q=r(2401),z=r.n(q),W=r(15966);!function(e){e.HIGHEST="highest"}(_||(_={}));const V=new Set(Object.values(_)),X={highest:async(e,t,{resolver:r,fetcher:n,resolveOptions:i,fetchOptions:A})=>{const o=new Map;for(const[t,r]of e.storedResolutions){const n=e.storedDescriptors.get(t);if(void 0===n)throw new Error(`Assertion failed: The descriptor (${t}) should have been registered`);f.miscUtils.getSetWithDefault(o,n.identHash).add(r)}return Array.from(e.storedDescriptors.values(),async n=>{if(t.length&&!z().isMatch(f.structUtils.stringifyIdent(n),t))return null;const A=e.storedResolutions.get(n.descriptorHash);if(void 0===A)throw new Error(`Assertion failed: The resolution (${n.descriptorHash}) should have been registered`);const s=e.originalPackages.get(A);if(void 0===s)return null;if(!r.shouldPersistResolution(s,i))return null;const a=o.get(n.identHash);if(void 0===a)throw new Error(`Assertion failed: The resolutions (${n.identHash}) should have been registered`);if(1===a.size)return null;const c=[...a].map(t=>{const r=e.originalPackages.get(t);if(void 0===r)throw new Error(`Assertion failed: The package (${t}) should have been registered`);return r.reference}),g=await r.getSatisfying(n,c,i),l=null==g?void 0:g[0];if(void 0===l)return null;const u=l.locatorHash,h=e.originalPackages.get(u);if(void 0===h)throw new Error(`Assertion failed: The package (${u}) should have been registered`);return u===A?null:{descriptor:n,currentPackage:s,updatedPackage:h}})}};class Z extends c.BaseCommand{constructor(){super(...arguments),this.patterns=[],this.strategy=_.HIGHEST,this.check=!1,this.json=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t}=await h.I.find(e,this.context.cwd),r=await g.C.find(e);let n=0;const i=await p.Pk.start({configuration:e,includeFooter:!1,stdout:this.context.stdout,json:this.json},async e=>{n=await async function({strategy:e,project:t,patterns:r,cache:n,report:i}){const{configuration:A}=t,o=new I.$,s=A.makeResolver(),a=A.makeFetcher(),c={cache:n,checksums:t.storedChecksums,fetcher:a,project:t,report:o,skipIntegrityCheck:!0},g={project:t,resolver:s,report:o,fetchOptions:c};return await i.startTimerPromise("Deduplication step",async()=>{const n=X[e],o=await n(t,r,{resolver:s,resolveOptions:g,fetcher:a,fetchOptions:c}),l=p.Pk.progressViaCounter(o.length);i.reportProgress(l);let h,d=0;switch(await Promise.all(o.map(e=>e.then(e=>{if(null===e)return;d++;const{descriptor:r,currentPackage:n,updatedPackage:o}=e;i.reportInfo(u.b.UNNAMED,`${f.structUtils.prettyDescriptor(A,r)} can be deduped from ${f.structUtils.prettyLocator(A,n)} to ${f.structUtils.prettyLocator(A,o)}`),i.reportJson({descriptor:f.structUtils.stringifyDescriptor(r),currentResolution:f.structUtils.stringifyLocator(n),updatedResolution:f.structUtils.stringifyLocator(o)}),t.storedResolutions.set(r.descriptorHash,o.locatorHash)}).finally(()=>l.tick()))),d){case 0:h="No packages";break;case 1:h="One package";break;default:h=d+" packages"}const C=f.formatUtils.pretty(A,e,f.formatUtils.Type.CODE);return i.reportInfo(u.b.UNNAMED,`${h} can be deduped using the ${C} strategy`),d})}({project:t,strategy:this.strategy,patterns:this.patterns,cache:r,report:e})});if(i.hasErrors())return i.exitCode();if(this.check)return n?1:0;return(await p.Pk.start({configuration:e,stdout:this.context.stdout,json:this.json},async e=>{await t.install({cache:r,report:e})})).exitCode()}}Z.schema=W.object().shape({strategy:W.string().test({name:"strategy",message:"${path} must be one of ${strategies}",params:{strategies:[...V].join(", ")},test:e=>V.has(e)})}),Z.usage=d.Command.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]}),(0,a.gn)([d.Command.Rest()],Z.prototype,"patterns",void 0),(0,a.gn)([d.Command.String("-s,--strategy",{description:"The strategy to use when deduping dependencies"})],Z.prototype,"strategy",void 0),(0,a.gn)([d.Command.Boolean("-c,--check",{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"})],Z.prototype,"check",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],Z.prototype,"json",void 0),(0,a.gn)([d.Command.Path("dedupe")],Z.prototype,"execute",null);class $ extends d.Command{async execute(){const{plugins:e}=await s.VK.find(this.context.cwd,this.context.plugins),t=[];for(const r of e){const{commands:e}=r[1];if(e){const n=d.Cli.from(e).definitions();t.push([r[0],n])}}const n=this.cli.definitions(),i=r(60306)["@yarnpkg/builder"].bundles.standard;for(const e of t){const t=e[1];for(const r of t)n.find(e=>{return t=e.path,n=r.path,t.split(" ").slice(1).join()===n.split(" ").slice(1).join();var t,n}).plugin={name:e[0],isDefault:i.includes(e[0])}}this.context.stdout.write(JSON.stringify({commands:n},null,2)+"\n")}}(0,a.gn)([d.Command.Path("--clipanion=definitions")],$.prototype,"execute",null);class ee extends d.Command{async execute(){this.context.stdout.write(this.cli.usage(null))}}(0,a.gn)([d.Command.Path("help"),d.Command.Path("--help"),d.Command.Path("-h")],ee.prototype,"execute",null);class te extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!f.structUtils.tryParseIdent(this.leadingArgument)){const e=m.y1.resolve(this.context.cwd,m.cS.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}return await this.cli.run(["run",this.leadingArgument,...this.args])}}(0,a.gn)([d.Command.String()],te.prototype,"leadingArgument",void 0),(0,a.gn)([d.Command.Proxy()],te.prototype,"args",void 0);var re=r(59355);class ne extends d.Command{async execute(){this.context.stdout.write((re.o||"")+"\n")}}(0,a.gn)([d.Command.Path("-v"),d.Command.Path("--version")],ne.prototype,"execute",null);class ie extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t}=await h.I.find(e,this.context.cwd);return await B.xfs.mktempPromise(async e=>{const{code:r}=await f.execUtils.pipevp(this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await f.scriptUtils.makeScriptEnv({project:t,binFolder:e})});return r})}}ie.usage=d.Command.Usage({description:"execute a shell command",details:"\n This command simply executes a shell binary within the context of the root directory of the active workspace.\n\n It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n ",examples:[["Execute a shell command","$0 exec echo Hello World"]]}),(0,a.gn)([d.Command.String()],ie.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],ie.prototype,"args",void 0),(0,a.gn)([d.Command.Path("exec")],ie.prototype,"execute",null);class Ae extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.recursive=!1,this.extra=[],this.cache=!1,this.dependents=!1,this.manifest=!1,this.nameOnly=!1,this.virtuals=!1,this.json=!1,this.patterns=[]}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd),n=await g.C.find(e);if(!r&&!this.all)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const i=new Set(this.extra);this.cache&&i.add("cache"),this.dependents&&i.add("dependents"),this.manifest&&i.add("manifest");const A=(e,{recursive:r})=>{const n=e.anchoredLocator.locatorHash,i=new Map,A=[n];for(;A.length>0;){const e=A.shift();if(i.has(e))continue;const o=t.storedPackages.get(e);if(void 0===o)throw new Error("Assertion failed: Expected the package to be registered");if(i.set(e,o),f.structUtils.isVirtualLocator(o)&&A.push(f.structUtils.devirtualizeLocator(o).locatorHash),r||e===n)for(const e of o.dependencies.values()){const r=t.storedResolutions.get(e.descriptorHash);if(void 0===r)throw new Error("Assertion failed: Expected the resolution to be registered");A.push(r)}}return i.values()},o=({all:e,recursive:n})=>e&&n?t.storedPackages.values():e?(({recursive:e})=>{const r=new Map;for(const n of t.workspaces)for(const t of A(n,{recursive:e}))r.set(t.locatorHash,t);return r.values()})({recursive:n}):A(r,{recursive:n}),{selection:a,sortedLookup:l}=(({all:e,recursive:t})=>{const r=o({all:e,recursive:t}),n=this.patterns.map(e=>{const t=f.structUtils.parseLocator(e),r=z().makeRe(f.structUtils.stringifyIdent(t)),n=f.structUtils.isVirtualLocator(t),i=n?f.structUtils.devirtualizeLocator(t):t;return e=>{const A=f.structUtils.stringifyIdent(e);if(!r.test(A))return!1;if("unknown"===t.reference)return!0;const o=f.structUtils.isVirtualLocator(e),s=o?f.structUtils.devirtualizeLocator(e):e;return(!n||!o||t.reference===e.reference)&&i.reference===s.reference}}),i=f.miscUtils.sortMap([...r],e=>f.structUtils.stringifyLocator(e));return{selection:i.filter(e=>0===n.length||n.some(t=>t(e))),sortedLookup:i}})({all:this.all,recursive:this.recursive});if(0===a.length)throw new d.UsageError("No package matched your request");const u=new Map;if(this.dependents)for(const e of l)for(const r of e.dependencies.values()){const n=t.storedResolutions.get(r.descriptorHash);if(void 0===n)throw new Error("Assertion failed: Expected the resolution to be registered");f.miscUtils.getArrayWithDefault(u,n).push(e)}const p=new Map;for(const e of l){if(!f.structUtils.isVirtualLocator(e))continue;const t=f.structUtils.devirtualizeLocator(e);f.miscUtils.getArrayWithDefault(p,t.locatorHash).push(e)}const C={},m={children:C},y=e.makeFetcher(),w={project:t,fetcher:y,cache:n,checksums:t.storedChecksums,report:new I.$,skipIntegrityCheck:!0},Q=[async(e,t,r)=>{var n,i;if(!t.has("manifest"))return;const A=await y.fetch(e,w);let o;try{o=await E.G.find(A.prefixPath,{baseFs:A.packageFs})}finally{null===(n=A.releaseFs)||void 0===n||n.call(A)}r("Manifest",{License:f.formatUtils.tuple(f.formatUtils.Type.NO_HINT,o.license),Homepage:f.formatUtils.tuple(f.formatUtils.Type.URL,null!==(i=o.raw.homepage)&&void 0!==i?i:null)})},async(e,r,i)=>{var A;if(!r.has("cache"))return;const o=null!==(A=t.storedChecksums.get(e.locatorHash))&&void 0!==A?A:null,s=n.getLocatorPath(e,o);let a;if(null!==s)try{a=B.xfs.statSync(s)}catch(e){}const c=void 0!==a?[a.size,f.formatUtils.Type.SIZE]:void 0;i("Cache",{Checksum:f.formatUtils.tuple(f.formatUtils.Type.NO_HINT,o),Path:f.formatUtils.tuple(f.formatUtils.Type.PATH,s),Size:c})}];for(const r of a){const n=f.structUtils.isVirtualLocator(r);if(!this.virtuals&&n)continue;const A={},o={value:[r,f.formatUtils.Type.LOCATOR],children:A};if(C[f.structUtils.stringifyLocator(r)]=o,this.nameOnly){delete o.children;continue}const s=p.get(r.locatorHash);void 0!==s&&(A.Instances={label:"Instances",value:f.formatUtils.tuple(f.formatUtils.Type.NUMBER,s.length)}),A.Version={label:"Version",value:f.formatUtils.tuple(f.formatUtils.Type.NO_HINT,r.version)};const a=(e,t)=>{const r={};if(A[e]=r,Array.isArray(t))r.children=t.map(e=>({value:e}));else{const e={};r.children=e;for(const[r,n]of Object.entries(t))void 0!==n&&(e[r]={label:r,value:n})}};if(!n){for(const e of Q)await e(r,i,a);await e.triggerHook(e=>e.fetchPackageInfo,r,i,a)}r.bin.size>0&&!n&&a("Exported Binaries",[...r.bin.keys()].map(e=>f.formatUtils.tuple(f.formatUtils.Type.PATH,e)));const c=u.get(r.locatorHash);void 0!==c&&c.length>0&&a("Dependents",c.map(e=>f.formatUtils.tuple(f.formatUtils.Type.LOCATOR,e))),r.dependencies.size>0&&!n&&a("Dependencies",[...r.dependencies.values()].map(e=>{var r;const n=t.storedResolutions.get(e.descriptorHash),i=void 0!==n&&null!==(r=t.storedPackages.get(n))&&void 0!==r?r:null;return f.formatUtils.tuple(f.formatUtils.Type.RESOLUTION,{descriptor:e,locator:i})})),r.peerDependencies.size>0&&n&&a("Peer dependencies",[...r.peerDependencies.values()].map(e=>{var n,i;const A=r.dependencies.get(e.identHash),o=void 0!==A&&null!==(n=t.storedResolutions.get(A.descriptorHash))&&void 0!==n?n:null,s=null!==o&&null!==(i=t.storedPackages.get(o))&&void 0!==i?i:null;return f.formatUtils.tuple(f.formatUtils.Type.RESOLUTION,{descriptor:e,locator:s})}))}f.treeUtils.emitTree(m,{configuration:e,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}}Ae.usage=d.Command.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]}),(0,a.gn)([d.Command.Boolean("-A,--all",{description:"Print versions of a package from the whole project"})],Ae.prototype,"all",void 0),(0,a.gn)([d.Command.Boolean("-R,--recursive",{description:"Print information for all packages, including transitive dependencies"})],Ae.prototype,"recursive",void 0),(0,a.gn)([d.Command.Array("-X,--extra",{description:"An array of requests of extra data provided by plugins"})],Ae.prototype,"extra",void 0),(0,a.gn)([d.Command.Boolean("--cache",{description:"Print information about the cache entry of a package (path, size, checksum)"})],Ae.prototype,"cache",void 0),(0,a.gn)([d.Command.Boolean("--dependents",{description:"Print all dependents for each matching package"})],Ae.prototype,"dependents",void 0),(0,a.gn)([d.Command.Boolean("--manifest",{description:"Print data obtained by looking at the package archive (license, homepage, ...)"})],Ae.prototype,"manifest",void 0),(0,a.gn)([d.Command.Boolean("--name-only",{description:"Only print the name for the matching packages"})],Ae.prototype,"nameOnly",void 0),(0,a.gn)([d.Command.Boolean("--virtuals",{description:"Print each instance of the virtual packages"})],Ae.prototype,"virtuals",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],Ae.prototype,"json",void 0),(0,a.gn)([d.Command.Rest()],Ae.prototype,"patterns",void 0),(0,a.gn)([d.Command.Path("info")],Ae.prototype,"execute",null);var oe=r(35691),se=r(55125),ae=r(5864);class ce extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.checkCache=!1,this.silent=!1}async execute(){var e,t,r;const n=await s.VK.find(this.context.cwd,this.context.plugins);void 0!==this.inlineBuilds&&n.useWithSource("",{enableInlineBuilds:this.inlineBuilds},n.startingCwd,{overwrite:!0});const i=!!process.env.NOW_BUILDER,A=!!process.env.NETLIFY,o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=async(e,{error:t})=>{const r=await p.Pk.start({configuration:n,stdout:this.context.stdout,includeFooter:!1},async r=>{t?r.reportError(u.b.DEPRECATED_CLI_SETTINGS,e):r.reportWarning(u.b.DEPRECATED_CLI_SETTINGS,e)});return r.hasErrors()?r.exitCode():null};if(void 0!==this.ignoreEngines){const e=await a("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!i});if(null!==e)return e}if(void 0!==this.registry){const e=await a("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(null!==e)return e}if(void 0!==this.preferOffline){const e=await a("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!i});if(null!==e)return e}if(void 0!==this.production){const e=await a("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(null!==e)return e}if(void 0!==this.nonInteractive){const e=await a("The --non-interactive option is deprecated",{error:!o});if(null!==e)return e}if(void 0!==this.frozenLockfile){const e=await a("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!o&&!ae.TRAVIS});if(null!==e)return e}if(void 0!==this.cacheFolder){const e=await a("The cache-folder option has been deprecated; use rc settings instead",{error:!A});if(null!==e)return e}const l=void 0===this.immutable&&void 0===this.frozenLockfile?null!==(e=n.get("enableImmutableInstalls"))&&void 0!==e&&e:null!==(r=null!==(t=this.immutable)&&void 0!==t?t:this.frozenLockfile)&&void 0!==r&&r;if(null!==n.projectCwd){const e=await p.Pk.start({configuration:n,json:this.json,stdout:this.context.stdout,includeFooter:!1},async e=>{await async function(e,t){if(!e.projectCwd)return!1;const r=m.y1.join(e.projectCwd,e.get("lockfileFilename"));if(!await B.xfs.existsPromise(r))return!1;const n=await B.xfs.readFilePromise(r,"utf8");if(!n.includes("<<<<<<<"))return!1;if(t)throw new oe.lk(u.b.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");const[i,A]=function(e){const t=[[],[]],r=e.split(/\r?\n/g);let n=!1;for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith("<<<<<<<")){for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if("======="===e){n=!1;break}n||e.startsWith("|||||||")?n=!0:t[0].push(e)}for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith(">>>>>>>"))break;t[1].push(e)}}else t[0].push(e),t[1].push(e)}return[t[0].join("\n"),t[1].join("\n")]}(n);let o,s;try{o=(0,se.parseSyml)(i),s=(0,se.parseSyml)(A)}catch(e){throw new oe.lk(u.b.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}const a={...o,...s};for(const[e,t]of Object.entries(a))"string"==typeof t&&delete a[e];return await B.xfs.changeFilePromise(r,(0,se.stringifySyml)(a),{automaticNewlines:!0}),!0}(n,l)&&(e.reportInfo(u.b.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts 👍"),e.reportSeparator())});if(e.hasErrors())return e.exitCode()}if(null!==n.projectCwd){const e=await p.Pk.start({configuration:n,json:this.json,stdout:this.context.stdout,includeFooter:!1},async e=>{var t;(null===(t=s.VK.telemetry)||void 0===t?void 0:t.isNew)&&(e.reportInfo(u.b.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),e.reportInfo(u.b.TELEMETRY_NOTICE,`Run ${f.formatUtils.pretty(n,"yarn config set --home enableTelemetry 0",f.formatUtils.Type.CODE)} to disable`),e.reportSeparator())});if(e.hasErrors())return e.exitCode()}const{project:d,workspace:C}=await h.I.find(n,this.context.cwd),I=await g.C.find(n,{immutable:this.immutableCache,check:this.checkCache});if(!C)throw new c.WorkspaceRequiredError(d.cwd,this.context.cwd);return(await p.Pk.start({configuration:n,json:this.json,stdout:this.context.stdout,includeLogs:!0},async e=>{await d.install({cache:I,report:e,immutable:l})})).exitCode()}}ce.usage=d.Command.Usage({description:"install the project dependencies",details:"\n This command setup your project if needed. The installation is splitted in four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where are stored the cache files).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked from writing them on the disk in some form (for example by generating the .pnp.js file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.js file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set, Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePaths` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]}),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],ce.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"})],ce.prototype,"immutable",void 0),(0,a.gn)([d.Command.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"})],ce.prototype,"immutableCache",void 0),(0,a.gn)([d.Command.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"})],ce.prototype,"checkCache",void 0),(0,a.gn)([d.Command.Boolean("--production",{hidden:!0})],ce.prototype,"production",void 0),(0,a.gn)([d.Command.Boolean("--non-interactive",{hidden:!0})],ce.prototype,"nonInteractive",void 0),(0,a.gn)([d.Command.Boolean("--frozen-lockfile",{hidden:!0})],ce.prototype,"frozenLockfile",void 0),(0,a.gn)([d.Command.Boolean("--prefer-offline",{hidden:!0})],ce.prototype,"preferOffline",void 0),(0,a.gn)([d.Command.Boolean("--ignore-engines",{hidden:!0})],ce.prototype,"ignoreEngines",void 0),(0,a.gn)([d.Command.String("--registry",{hidden:!0})],ce.prototype,"registry",void 0),(0,a.gn)([d.Command.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"})],ce.prototype,"inlineBuilds",void 0),(0,a.gn)([d.Command.String("--cache-folder",{hidden:!0})],ce.prototype,"cacheFolder",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],ce.prototype,"silent",void 0),(0,a.gn)([d.Command.Path(),d.Command.Path("install")],ce.prototype,"execute",null);class ge extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.private=!1,this.relative=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd),n=await g.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=m.y1.resolve(this.context.cwd,m.cS.toPortablePath(this.destination)),A=await s.VK.find(i,this.context.plugins),{project:o,workspace:a}=await h.I.find(A,i);if(!a)throw new c.WorkspaceRequiredError(o.cwd,i);const l=t.topLevelWorkspace,u=[];if(this.all){for(const e of o.workspaces)!e.manifest.name||e.manifest.private&&!this.private||u.push(e);if(0===u.length)throw new d.UsageError("No workspace found to be linked in the target project")}else{if(!a.manifest.name)throw new d.UsageError("The target workspace doesn't have a name and thus cannot be linked");if(a.manifest.private&&!this.private)throw new d.UsageError("The target workspace is marked private - use the --private flag to link it anyway");u.push(a)}for(const e of u){const r=f.structUtils.stringifyIdent(e.locator),n=this.relative?m.y1.relative(t.cwd,e.cwd):e.cwd;l.manifest.resolutions.push({pattern:{descriptor:{fullName:r}},reference:"portal:"+n})}return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}ge.usage=d.Command.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n\n There is no `yarn unlink` command. To unlink the workspaces from the current project one must revert the changes made to the `resolutions` field.\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]}),(0,a.gn)([d.Command.String()],ge.prototype,"destination",void 0),(0,a.gn)([d.Command.Boolean("-A,--all",{description:"Link all workspaces belonging to the target project to the current one"})],ge.prototype,"all",void 0),(0,a.gn)([d.Command.Boolean("-p,--private",{description:"Also link private workspaces belonging to the target project to the current one"})],ge.prototype,"private",void 0),(0,a.gn)([d.Command.Boolean("-r,--relative",{description:"Link workspaces using relative paths instead of absolute paths"})],ge.prototype,"relative",void 0),(0,a.gn)([d.Command.Path("link")],ge.prototype,"execute",null);class le extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){return this.cli.run(["exec","node",...this.args])}}le.usage=d.Command.Usage({description:"run node with the hook already setup",details:"\n This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n\n The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.\n ",examples:[["Run a Node script","$0 node ./my-script.js"]]}),(0,a.gn)([d.Command.Proxy()],le.prototype,"args",void 0),(0,a.gn)([d.Command.Path("node")],le.prototype,"execute",null);var ue=r(12087),he=r(85622),pe=r.n(he);class fe extends c.BaseCommand{constructor(){super(...arguments),this.onlyIfNeeded=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let t;if("latest"===this.version||"berry"===this.version)t="https://github.com/yarnpkg/berry/raw/master/packages/yarnpkg-cli/bin/yarn.js";else if("classic"===this.version)t="https://nightly.yarnpkg.com/latest.js";else if(f.semverUtils.v(this.version,">=2.0.0"))t=`https://github.com/yarnpkg/berry/raw/%40yarnpkg/cli/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else{if(!f.semverUtils.v(this.version,"^0.x || ^1.x"))throw w().validRange(this.version)?new d.UsageError("Support for ranges got removed - please use the exact version you want to install, or 'latest' to get the latest build available"):new d.UsageError(`Invalid version descriptor "${this.version}"`);t=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`}return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{r.reportInfo(u.b.UNNAMED,"Downloading "+f.formatUtils.pretty(e,t,"green"));const n=await f.httpUtils.get(t,{configuration:e});await de(e,null,n,{report:r})})).exitCode()}}async function de(e,t,r,{report:n}){const i=e.projectCwd?e.projectCwd:e.startingCwd;null===t&&await B.xfs.mktempPromise(async e=>{const n=m.y1.join(e,"yarn.cjs");await B.xfs.writeFilePromise(n,r);const{stdout:A}=await f.execUtils.execvp(process.execPath,[m.cS.fromPortablePath(n),"--version"],{cwd:i,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(t=A.trim(),!w().valid(t))throw new Error("Invalid semver version")});const A=m.y1.resolve(i,".yarn/releases"),o=m.y1.resolve(A,`yarn-${t}.cjs`),a=m.y1.relative(e.startingCwd,o),c=m.y1.relative(i,o),g=e.get("yarnPath"),l=null===g||g.startsWith(A+"/");n.reportInfo(u.b.UNNAMED,"Saving the new release in "+f.formatUtils.pretty(e,a,"magenta")),await B.xfs.removePromise(m.y1.dirname(o)),await B.xfs.mkdirPromise(m.y1.dirname(o),{recursive:!0}),await B.xfs.writeFilePromise(o,r),await B.xfs.chmodPromise(o,493),l&&await s.VK.updateConfiguration(i,{yarnPath:c})}fe.usage=d.Command.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"]]}),(0,a.gn)([d.Command.Boolean("--only-if-needed",{description:"Only lock the Yarn version if it isn't already locked"})],fe.prototype,"onlyIfNeeded",void 0),(0,a.gn)([d.Command.String()],fe.prototype,"version",void 0),(0,a.gn)([d.Command.Path("policies","set-version"),d.Command.Path("set","version")],fe.prototype,"execute",null);const Ce=/^[0-9]+$/;function Ie(e){return Ce.test(e)?`pull/${e}/head`:e}class Ee extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.plugins=[],this.noMinify=!1,this.force=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?m.y1.resolve(this.context.cwd,m.cS.toPortablePath(this.installPath)):m.y1.resolve(m.cS.toPortablePath((0,ue.tmpdir)()),"yarnpkg-sources",f.hashUtils.makeHash(this.repository).slice(0,6));return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{await Be(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(u.b.UNNAMED,"Building a fresh bundle"),r.reportSeparator(),await me((({plugins:e,noMinify:t},r)=>[["yarn","build:cli",...(new Array).concat(...e.map(e=>["--plugin",pe().resolve(r,e)])),...t?["--no-minify"]:[],"|"]])(this,t),{configuration:e,context:this.context,target:t}),r.reportSeparator();const n=m.y1.resolve(t,"packages/yarnpkg-cli/bundles/yarn.js"),i=await B.xfs.readFilePromise(n);await de(e,"sources",i,{report:r})})).exitCode()}}async function me(e,{configuration:t,context:r,target:n}){for(const[i,...A]of e){const e="|"===A[A.length-1];if(e&&A.pop(),e)await f.execUtils.pipevp(i,A,{cwd:n,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(f.formatUtils.pretty(t," $ "+[i,...A].join(" "),"grey")+"\n");try{await f.execUtils.execvp(i,A,{cwd:n,strict:!0})}catch(e){throw r.stdout.write(e.stdout||e.stack),e}}}}async function Be(e,{configuration:t,report:r,target:n}){let i=!1;if(!e.force&&B.xfs.existsSync(m.y1.join(n,".git"))){r.reportInfo(u.b.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await me((({branch:e})=>[["git","fetch","origin",Ie(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]])(e),{configuration:t,context:e.context,target:n}),i=!0}catch(e){r.reportSeparator(),r.reportWarning(u.b.UNNAMED,"Repository update failed; we'll try to regenerate it")}}i||(r.reportInfo(u.b.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await B.xfs.removePromise(n),await B.xfs.mkdirPromise(n,{recursive:!0}),await me((({repository:e,branch:t},r)=>[["git","init",m.cS.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin",Ie(t)],["git","reset","--hard","FETCH_HEAD"]])(e,n),{configuration:t,context:e.context,target:n}))}Ee.usage=d.Command.Usage({description:"build Yarn from master",details:"\n This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.\n ",examples:[["Build Yarn from master","$0 set version from sources"]]}),(0,a.gn)([d.Command.String("--path",{description:"The path where the repository should be cloned to"})],Ee.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository",{description:"The repository that should be cloned"})],Ee.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch",{description:"The branch of the repository that should be cloned"})],Ee.prototype,"branch",void 0),(0,a.gn)([d.Command.Array("--plugin",{description:"An array of additional plugins that should be included in the bundle"})],Ee.prototype,"plugins",void 0),(0,a.gn)([d.Command.Boolean("--no-minify",{description:"Build a bundle for development (debugging) - non-minified and non-mangled"})],Ee.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force",{description:"Always clone the repository instead of trying to fetch the latest commits"})],Ee.prototype,"force",void 0),(0,a.gn)([d.Command.Path("set","version","from","sources")],Ee.prototype,"execute",null);var ye=r(78835),we=r(92184);async function Qe(e){const t=await f.httpUtils.get("https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml",{configuration:e});return(0,se.parseSyml)(t.toString())}class ve extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins);return(await p.Pk.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{const r=await Qe(e);for(const[e,{experimental:n,...i}]of Object.entries(r)){let r=e;n&&(r+=" [experimental]"),t.reportJson({name:e,experimental:n,...i}),t.reportInfo(null,r)}})).exitCode()}}ve.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]}),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],ve.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","list")],ve.prototype,"execute",null);class be extends c.BaseCommand{async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins);return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async t=>{const{project:r}=await h.I.find(e,this.context.cwd);let n,i;if(this.name.match(/^\.{0,2}[\\/]/)||m.cS.isAbsolute(this.name)){const A=m.y1.resolve(this.context.cwd,m.cS.toPortablePath(this.name));t.reportInfo(u.b.UNNAMED,"Reading "+f.formatUtils.pretty(e,A,"green")),n=m.y1.relative(r.cwd,A),i=await B.xfs.readFilePromise(A)}else{let r;if(this.name.match(/^https?:/)){try{new ye.URL(this.name)}catch(e){throw new oe.lk(u.b.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}n=this.name,r=this.name}else{const t=f.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),i=f.structUtils.stringifyIdent(t),A=await Qe(e);if(!Object.prototype.hasOwnProperty.call(A,i))throw new oe.lk(u.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${i}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);n=i,r=A[i].url}t.reportInfo(u.b.UNNAMED,"Downloading "+f.formatUtils.pretty(e,r,"green")),i=await f.httpUtils.get(r,{configuration:e})}await De(n,i,{project:r,report:t})})).exitCode()}}async function De(e,t,{project:r,report:n}){const{configuration:i}=r,A={},o={exports:A};(0,we.runInNewContext)(t.toString(),{module:o,exports:A});const a=o.exports.name,c=`.yarn/plugins/${a}.cjs`,g=m.y1.resolve(r.cwd,c);n.reportInfo(u.b.UNNAMED,"Saving the new plugin in "+f.formatUtils.pretty(i,c,"magenta")),await B.xfs.mkdirPromise(m.y1.dirname(g),{recursive:!0}),await B.xfs.writeFilePromise(g,t);const l={path:c,spec:e};await s.VK.updateConfiguration(r.cwd,e=>{const t=[];let n=!1;for(const i of e.plugins||[]){const e="string"!=typeof i?i.path:i,A=m.y1.resolve(r.cwd,m.cS.toPortablePath(e)),{name:o}=f.miscUtils.dynamicRequire(m.cS.fromPortablePath(A));o!==a?t.push(i):(t.push(l),n=!0)}return n||t.push(l),{...e,plugins:t}})}be.usage=d.Command.Usage({category:"Plugin-related commands",description:"download a plugin",details:"\n This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.\n\n Three types of plugin references are accepted:\n\n - If the plugin is stored within the Yarn repository, it can be referenced by name.\n - Third-party plugins can be referenced directly through their public urls.\n - Local plugins can be referenced by their path on the disk.\n\n Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the `@yarnpkg/builder` package).\n ",examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]}),(0,a.gn)([d.Command.String()],be.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","import")],be.prototype,"execute",null);class Se extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.noMinify=!1,this.force=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?m.y1.resolve(this.context.cwd,m.cS.toPortablePath(this.installPath)):m.y1.resolve(m.cS.toPortablePath((0,ue.tmpdir)()),"yarnpkg-sources",f.hashUtils.makeHash(this.repository).slice(0,6));return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{const{project:n}=await h.I.find(e,this.context.cwd),i=f.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),A=f.structUtils.stringifyIdent(i),o=await Qe(e);if(!Object.prototype.hasOwnProperty.call(o,A))throw new oe.lk(u.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${A}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);const s=A,a=s.replace(/@yarnpkg\//,"");await Be(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(u.b.UNNAMED,"Building a fresh "+a),r.reportSeparator(),await me((({pluginName:e,noMinify:t},r)=>[["yarn","build:"+e,...t?["--no-minify"]:[],"|"]])({pluginName:a,noMinify:this.noMinify}),{configuration:e,context:this.context,target:t}),r.reportSeparator();const c=m.y1.resolve(t,`packages/${a}/bundles/${s}.js`),g=await B.xfs.readFilePromise(c);await De(s,g,{project:n,report:r})})).exitCode()}}Se.usage=d.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:"\n This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.\n\n The plugins can be referenced by their short name if sourced from the official Yarn repository.\n ",examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]}),(0,a.gn)([d.Command.String()],Se.prototype,"name",void 0),(0,a.gn)([d.Command.String("--path",{description:"The path where the repository should be cloned to"})],Se.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository",{description:"The repository that should be cloned"})],Se.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch",{description:"The branch of the repository that should be cloned"})],Se.prototype,"branch",void 0),(0,a.gn)([d.Command.Boolean("--no-minify",{description:"Build a plugin for development (debugging) - non-minified and non-mangled"})],Se.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force",{description:"Always clone the repository instead of trying to fetch the latest commits"})],Se.prototype,"force",void 0),(0,a.gn)([d.Command.Path("plugin","import","from","sources")],Se.prototype,"execute",null);class ke extends c.BaseCommand{async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t}=await h.I.find(e,this.context.cwd);return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{const n=this.name,i=f.structUtils.parseIdent(n);if(!e.plugins.has(n))throw new d.UsageError(f.structUtils.prettyIdent(e,i)+" isn't referenced by the current configuration");const A=`.yarn/plugins/${n}.cjs`,o=m.y1.resolve(t.cwd,A);B.xfs.existsSync(o)&&(r.reportInfo(u.b.UNNAMED,`Removing ${f.formatUtils.pretty(e,A,f.formatUtils.Type.PATH)}...`),await B.xfs.removePromise(o)),r.reportInfo(u.b.UNNAMED,"Updating the configuration..."),await s.VK.updateConfiguration(t.cwd,e=>{if(!Array.isArray(e.plugins))return e;const t=e.plugins.filter(e=>e.path!==A);return e.plugins.length===t.length?e:{...e,plugins:t}})})).exitCode()}}ke.usage=d.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:"\n This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.\n\n **Note:** The plugins have to be referenced by their name property, which can be obtained using the `yarn plugin runtime` command. Shorthands are not allowed.\n ",examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]}),(0,a.gn)([d.Command.String()],ke.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","remove")],ke.prototype,"execute",null);class Me extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins);return(await p.Pk.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{for(const r of e.plugins.keys()){const e=this.context.plugins.plugins.has(r);let n=r;e&&(n+=" [builtin]"),t.reportJson({name:r,builtin:e}),t.reportInfo(null,""+n)}})).exitCode()}}Me.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:"\n This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.\n ",examples:[["List the currently active plugins","$0 plugin runtime"]]}),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],Me.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","runtime")],Me.prototype,"execute",null);class Ne extends c.BaseCommand{constructor(){super(...arguments),this.idents=[]}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd),n=await g.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=new Set;for(const e of this.idents)i.add(f.structUtils.parseIdent(e).identHash);await t.resolveEverything({cache:n,report:new I.$});const A=e.get("bstatePath"),o=B.xfs.existsSync(A)?(0,se.parseSyml)(await B.xfs.readFilePromise(A,"utf8")):{},a=new Map;for(const e of t.storedPackages.values()){if(!Object.prototype.hasOwnProperty.call(o,e.locatorHash))continue;if(0===i.size||i.has(e.identHash))continue;const t=o[e.locatorHash];a.set(e.locatorHash,t)}if(a.size>0){const r=e.get("bstatePath"),n=h.I.generateBuildStateFile(a,t.storedPackages);await B.xfs.mkdirPromise(m.y1.dirname(r),{recursive:!0}),await B.xfs.changeFilePromise(r,n,{automaticNewlines:!0})}else await B.xfs.removePromise(A);return(await p.Pk.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:n,report:e})})).exitCode()}}Ne.usage=d.Command.Usage({description:"rebuild the project's native packages",details:"\n This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.\n\n Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).\n\n By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.\n ",examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]}),(0,a.gn)([d.Command.Rest()],Ne.prototype,"idents",void 0),(0,a.gn)([d.Command.Path("rebuild")],Ne.prototype,"execute",null);class Fe extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.patterns=[]}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd),n=await g.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const A=this.all?t.workspaces:[r],o=[i.REGULAR,i.DEVELOPMENT,i.PEER],a=[];let l=!1;const u=[];for(const e of this.patterns){let t=!1;const r=f.structUtils.parseIdent(e);for(const n of A){const i=[...n.manifest.peerDependenciesMeta.keys()];for(const r of z()(i,e))n.manifest.peerDependenciesMeta.delete(r),l=!0,t=!0;for(const e of o){const i=n.manifest.getForScope(e),A=[...i.values()].map(e=>f.structUtils.stringifyIdent(e));for(const o of z()(A,f.structUtils.stringifyIdent(r))){const{identHash:r}=f.structUtils.parseIdent(o),A=i.get(r);if(void 0===A)throw new Error("Assertion failed: Expected the descriptor to be registered");n.manifest[e].delete(r),u.push([n,e,A]),l=!0,t=!0}}}t||a.push(e)}const C=a.length>1?"Patterns":"Pattern",I=a.length>1?"don't":"doesn't",E=this.all?"any":"this";if(a.length>0)throw new d.UsageError(`${C} ${f.formatUtils.prettyList(e,a,s.a5.CODE)} ${I} match any packages referenced by ${E} workspace`);if(l){await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyRemoval,u);return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}return 0}}Fe.usage=d.Command.Usage({description:"remove dependencies from the project",details:"\n This command will remove the packages matching the specified patterns from the current workspace.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n ",examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]}),(0,a.gn)([d.Command.Boolean("-A,--all",{description:"Apply the operation to all workspaces from the current project"})],Fe.prototype,"all",void 0),(0,a.gn)([d.Command.Rest()],Fe.prototype,"patterns",void 0),(0,a.gn)([d.Command.Path("remove")],Fe.prototype,"execute",null);class Re extends c.BaseCommand{async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async t=>{const n=r.manifest.scripts,i=f.miscUtils.sortMap(n.keys(),e=>e),A={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},o=i.reduce((e,t)=>Math.max(e,t.length),0);for(const[e,r]of n.entries())t.reportInfo(null,`${e.padEnd(o," ")} ${(0,P.inspect)(r,A)}`)})).exitCode()}}(0,a.gn)([d.Command.Path("run")],Re.prototype,"execute",null);class Ke extends c.BaseCommand{constructor(){super(...arguments),this.inspect=!1,this.inspectBrk=!1,this.topLevel=!1,this.binariesOnly=!1,this.args=[]}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r,locator:n}=await h.I.find(e,this.context.cwd);await t.restoreInstallState();const i=this.topLevel?t.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await f.scriptUtils.hasPackageScript(i,this.scriptName,{project:t}))return await f.scriptUtils.executePackageScript(i,this.scriptName,this.args,{project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if((await f.scriptUtils.getPackageAccessibleBinaries(i,{project:t})).get(this.scriptName)){const e=[];return this.inspect&&("string"==typeof this.inspect?e.push("--inspect="+this.inspect):e.push("--inspect")),this.inspectBrk&&("string"==typeof this.inspectBrk?e.push("--inspect-brk="+this.inspectBrk):e.push("--inspect-brk")),await f.scriptUtils.executePackageAccessibleBinary(i,this.scriptName,this.args,{cwd:this.context.cwd,project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:e})}if(!this.topLevel&&!this.binariesOnly&&r&&this.scriptName.includes(":")){const e=(await Promise.all(t.workspaces.map(async e=>e.manifest.scripts.has(this.scriptName)?e:null))).filter(e=>null!==e);if(1===e.length)return await f.scriptUtils.executeWorkspaceScript(e[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw"node-gyp"===this.scriptName?new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${f.structUtils.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${f.structUtils.prettyLocator(e,n)}).`);{if("global"===this.scriptName)throw new d.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");const e=[this.scriptName].concat(this.args);for(const[t,r]of c.pluginCommands)for(const n of r)if(e.length>=n.length&&JSON.stringify(e.slice(0,n.length))===JSON.stringify(n))throw new d.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${t} plugin. You can install it with "yarn plugin import ${t}".`);throw new d.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}}Ke.usage=d.Command.Usage({description:"run a script defined in the package.json",details:"\n This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:\n\n - If the `scripts` field from your local package.json contains a matching script name, its definition will get executed.\n\n - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed.\n\n - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.\n\n Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).\n ",examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]}),(0,a.gn)([d.Command.String("--inspect",{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"})],Ke.prototype,"inspect",void 0),(0,a.gn)([d.Command.String("--inspect-brk",{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"})],Ke.prototype,"inspectBrk",void 0),(0,a.gn)([d.Command.Boolean("-T,--top-level",{hidden:!0})],Ke.prototype,"topLevel",void 0),(0,a.gn)([d.Command.Boolean("-B,--binaries-only",{hidden:!0})],Ke.prototype,"binariesOnly",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],Ke.prototype,"silent",void 0),(0,a.gn)([d.Command.String()],Ke.prototype,"scriptName",void 0),(0,a.gn)([d.Command.Proxy()],Ke.prototype,"args",void 0),(0,a.gn)([d.Command.Path("run")],Ke.prototype,"execute",null);class Le extends c.BaseCommand{constructor(){super(...arguments),this.save=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd),n=await g.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=f.structUtils.parseDescriptor(this.descriptor,!0),A=f.structUtils.makeDescriptor(i,this.resolution);t.storedDescriptors.set(i.descriptorHash,i),t.storedDescriptors.set(A.descriptorHash,A),t.resolutionAliases.set(i.descriptorHash,A.descriptorHash);return(await p.Pk.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}Le.usage=d.Command.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@^1.2.3 1.5.0"]]}),(0,a.gn)([d.Command.String()],Le.prototype,"descriptor",void 0),(0,a.gn)([d.Command.String()],Le.prototype,"resolution",void 0),(0,a.gn)([d.Command.Boolean("-s,--save",{description:"Persist the resolution inside the top-level manifest"})],Le.prototype,"save",void 0),(0,a.gn)([d.Command.Path("set","resolution")],Le.prototype,"execute",null);class xe extends c.BaseCommand{constructor(){super(...arguments),this.patterns=[],this.interactive=null,this.exact=!1,this.tilde=!1,this.caret=!1}async execute(){var e;const t=await s.VK.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await h.I.find(t,this.context.cwd),A=await g.C.find(t);if(!n)throw new c.WorkspaceRequiredError(r.cwd,this.context.cwd);const a=null!==(e=this.interactive)&&void 0!==e?e:t.get("preferInteractive"),I=Q(this,r),E=a?[o.KEEP,o.REUSE,o.PROJECT,o.LATEST]:[o.PROJECT,o.LATEST],m=[],B=[];for(const e of this.patterns){let t=!1;const n=f.structUtils.parseDescriptor(e);for(const e of r.workspaces)for(const o of[i.REGULAR,i.DEVELOPMENT]){const i=[...e.manifest.getForScope(o).values()].map(e=>f.structUtils.stringifyIdent(e));for(const s of z()(i,f.structUtils.stringifyIdent(n))){const i=f.structUtils.parseIdent(s),a=e.manifest[o].get(i.identHash);if(void 0===a)throw new Error("Assertion failed: Expected the descriptor to be registered");const c=f.structUtils.makeDescriptor(i,n.range);m.push(Promise.resolve().then(async()=>[e,o,a,await M(c,{project:r,workspace:e,cache:A,target:o,modifier:I,strategies:E})])),t=!0}}t||B.push(e)}if(B.length>1)throw new d.UsageError(`Patterns ${f.formatUtils.prettyList(t,B,s.a5.CODE)} don't match any packages referenced by any workspace`);if(B.length>0)throw new d.UsageError(`Pattern ${f.formatUtils.prettyList(t,B,s.a5.CODE)} doesn't match any packages referenced by any workspace`);const y=await Promise.all(m),w=await l.h.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async e=>{for(const[,,n,{suggestions:i,rejections:A}]of y){const o=i.filter(e=>null!==e.descriptor);if(0===o.length){const[i]=A;if(void 0===i)throw new Error("Assertion failed: Expected an error to have been set");const o=this.cli.error(i);r.configuration.get("enableNetwork")?e.reportError(u.b.CANT_SUGGEST_RESOLUTIONS,`${f.structUtils.prettyDescriptor(t,n)} can't be resolved to a satisfying range\n\n${o}`):e.reportError(u.b.CANT_SUGGEST_RESOLUTIONS,`${f.structUtils.prettyDescriptor(t,n)} can't be resolved to a satisfying range (note: network resolution has been disabled)\n\n${o}`)}else o.length>1&&!a&&e.reportError(u.b.CANT_SUGGEST_RESOLUTIONS,f.structUtils.prettyDescriptor(t,n)+" has multiple possible upgrade strategies; use -i to disambiguate manually")}});if(w.hasErrors())return w.exitCode();let v=!1;const b=[];for(const[e,n,,{suggestions:i}]of y){let A;const o=i.filter(e=>null!==e.descriptor),s=o[0].descriptor,a=o.every(e=>f.structUtils.areDescriptorsEqual(e.descriptor,s));1===o.length||a?A=s:(v=!0,({answer:A}=await(0,C.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${f.structUtils.prettyWorkspace(t,e)} ❯ ${n}?`,choices:i.map(({descriptor:e,name:t,reason:r})=>e?{name:t,hint:r,descriptor:e}:{name:t,hint:r,disabled:!0}),onCancel:()=>process.exit(130),result(e){return this.find(e,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout})));const c=e.manifest[n].get(A.identHash);if(void 0===c)throw new Error("Assertion failed: This descriptor should have a matching entry");if(c.descriptorHash!==A.descriptorHash)e.manifest[n].set(A.identHash,A),b.push([e,n,c,A]);else{const n=t.makeResolver(),i={project:r,resolver:n},A=n.bindDescriptor(c,e.anchoredLocator,i);r.forgetResolution(A)}}await t.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,b),v&&this.context.stdout.write("\n");return(await p.Pk.start({configuration:t,stdout:this.context.stdout},async e=>{await r.install({cache:A,report:e})})).exitCode()}}xe.usage=d.Command.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),(0,a.gn)([d.Command.Rest()],xe.prototype,"patterns",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"})],xe.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact",{description:"Don't use any semver modifier on the resolved range"})],xe.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde",{description:"Use the `~` semver modifier on the resolved range"})],xe.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret",{description:"Use the `^` semver modifier on the resolved range"})],xe.prototype,"caret",void 0),(0,a.gn)([d.Command.Path("up")],xe.prototype,"execute",null);class Pe extends c.BaseCommand{constructor(){super(...arguments),this.recursive=!1,this.json=!1,this.peers=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const n=f.structUtils.parseIdent(this.package).identHash,i=this.recursive?function(e,t,{configuration:r,peers:n}){const i=f.miscUtils.sortMap(e.workspaces,e=>f.structUtils.stringifyLocator(e.anchoredLocator)),A=new Set,o=new Set,s=r=>{if(A.has(r.locatorHash))return o.has(r.locatorHash);if(A.add(r.locatorHash),r.identHash===t)return o.add(r.locatorHash),!0;let i=!1;r.identHash===t&&(i=!0);for(const t of r.dependencies.values()){if(!n&&r.peerDependencies.has(t.identHash))continue;const A=e.storedResolutions.get(t.descriptorHash);if(!A)throw new Error("Assertion failed: The resolution should have been registered");const o=e.storedPackages.get(A);if(!o)throw new Error("Assertion failed: The package should have been registered");s(o)&&(i=!0)}return i&&o.add(r.locatorHash),i};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");s(r)}const a=new Set,c={},g={children:c},l=(t,r,i)=>{if(!o.has(t.locatorHash))return;const A={},s={value:null!==i?f.formatUtils.tuple(f.formatUtils.Type.DEPENDENT,{locator:t,descriptor:i}):f.formatUtils.tuple(f.formatUtils.Type.LOCATOR,t),children:A};if(r[f.structUtils.stringifyLocator(t)]=s,!a.has(t.locatorHash)&&(a.add(t.locatorHash),null===i||!e.tryWorkspaceByLocator(t)))for(const r of t.dependencies.values()){if(!n&&t.peerDependencies.has(r.identHash))continue;const i=e.storedResolutions.get(r.descriptorHash);if(!i)throw new Error("Assertion failed: The resolution should have been registered");const o=e.storedPackages.get(i);if(!o)throw new Error("Assertion failed: The package should have been registered");l(o,A,r)}};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");l(r,c,null)}return g}(t,n,{configuration:e,peers:this.peers}):function(e,t,{configuration:r,peers:n}){const i=f.miscUtils.sortMap(e.storedPackages.values(),e=>f.structUtils.stringifyLocator(e)),A={},o={children:A};for(const r of i){const i={},o=null;for(const s of r.dependencies.values()){if(!n&&r.peerDependencies.has(s.identHash))continue;const a=e.storedResolutions.get(s.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");const c=e.storedPackages.get(a);if(!c)throw new Error("Assertion failed: The package should have been registered");if(c.identHash!==t)continue;if(null===o){const e=f.structUtils.stringifyLocator(r);A[e]={value:[r,f.formatUtils.Type.LOCATOR],children:i}}const g=f.structUtils.stringifyLocator(c);i[g]={value:[{descriptor:s,locator:c},f.formatUtils.Type.DEPENDENT]}}}return o}(t,n,{configuration:e,peers:this.peers});f.treeUtils.emitTree(i,{configuration:e,stdout:this.context.stdout,json:this.json,separators:1})}}Pe.usage=d.Command.Usage({description:"display the reason why a package is needed",details:'\n This command prints the exact reasons why a package appears in the dependency tree.\n\n If `-R,--recursive` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.\n ',examples:[["Explain why lodash is used in your project","$0 why lodash"]]}),(0,a.gn)([d.Command.String()],Pe.prototype,"package",void 0),(0,a.gn)([d.Command.Boolean("-R,--recursive",{description:"List, for each workspace, what are all the paths that lead to the dependency"})],Pe.prototype,"recursive",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],Pe.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--peers",{description:"Also print the peer dependencies that match the specified name"})],Pe.prototype,"peers",void 0),(0,a.gn)([d.Command.Path("why")],Pe.prototype,"execute",null);class Ue extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t}=await h.I.find(e,this.context.cwd);return(await p.Pk.start({configuration:e,json:this.json,stdout:this.context.stdout},async e=>{for(const r of t.workspaces){const{manifest:n}=r;let i;if(this.verbose){const e=new Set,r=new Set;for(const i of E.G.hardDependencies)for(const[A,o]of n.getForScope(i)){const n=t.tryWorkspaceByDescriptor(o);null===n?t.workspacesByIdent.has(A)&&r.add(o):e.add(n)}i={workspaceDependencies:Array.from(e).map(e=>e.relativeCwd),mismatchedWorkspaceDependencies:Array.from(r).map(e=>f.structUtils.stringifyDescriptor(e))}}e.reportInfo(null,""+r.relativeCwd),e.reportJson({location:r.relativeCwd,name:n.name?f.structUtils.stringifyIdent(n.name):null,...i})}})).exitCode()}}Ue.usage=d.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project. If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "}),(0,a.gn)([d.Command.Boolean("-v,--verbose",{description:"Also return the cross-dependencies between workspaces"})],Ue.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],Ue.prototype,"json",void 0),(0,a.gn)([d.Command.Path("workspaces","list")],Ue.prototype,"execute",null);class Te extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){const e=await s.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await h.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const n=t.workspaces,i=new Map(n.map(e=>{const t=f.structUtils.convertToIdent(e.locator);return[f.structUtils.stringifyIdent(t),e]})),A=i.get(this.workspaceName);if(void 0===A){const e=Array.from(i.keys()).sort();throw new d.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:\n - ${e.join("\n - ")}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}}Te.usage=d.Command.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:"\n This command will run a given sub-command on a single workspace.\n ",examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]}),(0,a.gn)([d.Command.String()],Te.prototype,"workspaceName",void 0),(0,a.gn)([d.Command.String()],Te.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],Te.prototype,"args",void 0),(0,a.gn)([d.Command.Path("workspace")],Te.prototype,"execute",null);const Oe={configuration:{enableImmutableInstalls:{description:"If true, prevents the install command from modifying the lockfile",type:s.a2.BOOLEAN,default:!1},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:s.a2.STRING,values:["^","~",""],default:A.CARET}},commands:[K,U,H,Le,Ee,fe,Ue,$,ee,te,ne,F,R,J,Z,ie,Ae,ce,ge,le,Se,be,ke,ve,Me,Ne,Fe,Re,Ke,xe,Pe,Te]}},74802:(e,t,r)=>{"use strict";r.r(t),r.d(t,{fileUtils:()=>n,default:()=>d});var n={};r.r(n),r.d(n,{makeArchiveFromLocator:()=>u,makeBufferFromLocator:()=>h,makeLocator:()=>l,makeSpec:()=>g,parseSpec:()=>c});var i=r(32741),A=r(46009);const o=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,s=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;var a=r(75448);function c(e){const{params:t,selector:r}=i.structUtils.parseRange(e),n=A.cS.toPortablePath(r);return{parentLocator:t&&"string"==typeof t.locator?i.structUtils.parseLocator(t.locator):null,path:n}}function g({parentLocator:e,path:t,folderHash:r,protocol:n}){const A=null!==e?{locator:i.structUtils.stringifyLocator(e)}:{},o=void 0!==r?{hash:r}:{};return i.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...A}})}function l(e,{parentLocator:t,path:r,folderHash:n,protocol:A}){return i.structUtils.makeLocator(e,g({parentLocator:t,path:r,folderHash:n,protocol:A}))}async function u(e,{protocol:t,fetchOptions:r,inMemory:n=!1}){const{parentLocator:o,path:s}=i.structUtils.parseFileStyleRange(e.reference,{protocol:t}),c=A.y1.isAbsolute(s)?{packageFs:new a.M(A.LZ.root),prefixPath:A.LZ.dot,localPath:A.LZ.root}:await r.fetcher.fetch(o,r),g=c.localPath?{packageFs:new a.M(A.LZ.root),prefixPath:A.y1.relative(A.LZ.root,c.localPath)}:c;c!==g&&c.releaseFs&&c.releaseFs();const l=g.packageFs,u=A.y1.join(g.prefixPath,s);return await i.miscUtils.releaseAfterUseAsync(async()=>await i.tgzUtils.makeArchiveFromDirectory(u,{baseFs:l,prefixPath:i.structUtils.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:n}),g.releaseFs)}async function h(e,{protocol:t,fetchOptions:r}){return(await u(e,{protocol:t,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var p=r(32485),f=r(46611);const d={fetchers:[class{supports(e,t){return!!s.test(e.reference)&&!!e.reference.startsWith("file:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,A,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:A,prefixPath:i.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){const{parentLocator:r,path:n}=i.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"}),o=A.y1.isAbsolute(n)?{packageFs:new a.M(A.LZ.root),prefixPath:A.LZ.dot,localPath:A.LZ.root}:await t.fetcher.fetch(r,t),s=o.localPath?{packageFs:new a.M(A.LZ.root),prefixPath:A.y1.relative(A.LZ.root,o.localPath)}:o;o!==s&&o.releaseFs&&o.releaseFs();const c=s.packageFs,g=A.y1.join(s.prefixPath,n),l=await c.readFilePromise(g);return await i.miscUtils.releaseAfterUseAsync(async()=>await i.tgzUtils.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:i.structUtils.getIdentVendorPath(e),stripComponents:1}),s.releaseFs)}},class{supports(e,t){return!!e.reference.startsWith("file:")}getLocalPath(e,t){const{parentLocator:r,path:n}=i.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"});if(A.y1.isAbsolute(n))return n;const o=t.fetcher.getLocalPath(r,t);return null===o?null:A.y1.resolve(o,n)}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,A,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:A,prefixPath:i.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return u(e,{protocol:"file:",fetchOptions:t})}}],resolvers:[class{supportsDescriptor(e,t){return!!s.test(e.range)&&(!!e.range.startsWith("file:")||!!o.test(e.range))}supportsLocator(e,t){return!!s.test(e.reference)&&!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return o.test(e.range)&&(e=i.structUtils.makeDescriptor(e,"file:"+e.range)),i.structUtils.bindDescriptor(e,{locator:i.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let n=e.range;return n.startsWith("file:")&&(n=n.slice("file:".length)),[i.structUtils.makeLocator(e,"file:"+A.cS.toPortablePath(n))]}async getSatisfying(e,t,r){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await i.miscUtils.releaseAfterUseAsync(async()=>await f.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:n.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:p.U.HARD,dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}},class{supportsDescriptor(e,t){return!!e.range.match(o)||!!e.range.startsWith("file:")}supportsLocator(e,t){return!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return o.test(e.range)&&(e=i.structUtils.makeDescriptor(e,"file:"+e.range)),i.structUtils.bindDescriptor(e,{locator:i.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const{path:n,parentLocator:A}=c(e.range);if(null===A)throw new Error("Assertion failed: The descriptor should have been bound");const o=await h(i.structUtils.makeLocator(e,i.structUtils.makeRange({protocol:"file:",source:n,selector:n,params:{locator:i.structUtils.stringifyLocator(A)}})),{protocol:"file:",fetchOptions:r.fetchOptions});return[l(e,{parentLocator:A,path:n,folderHash:i.hashUtils.makeHash("1",o).slice(0,6),protocol:"file:"})]}async getSatisfying(e,t,r){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await i.miscUtils.releaseAfterUseAsync(async()=>await f.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:n.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:p.U.HARD,dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}}]}},10284:(e,t,r)=>{"use strict";r.r(t),r.d(t,{gitUtils:()=>n,default:()=>b});var n={};r.r(n),r.d(n,{TreeishProtocols:()=>d,clone:()=>w,isGitUrl:()=>C,lsRemote:()=>B,normalizeLocator:()=>m,normalizeRepoUrl:()=>E,resolveUrl:()=>y,splitRepoUrl:()=>I});var i=r(27122),A=r(32741),o=r(46009),s=r(56537),a=r(71191),c=r.n(a),g=r(53887),l=r.n(g),u=r(78835),h=r.n(u);function p(){return{...process.env,GIT_SSH_COMMAND:"ssh -o BatchMode=yes"}}const f=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/];var d;function C(e){return!!e&&f.some(t=>!!e.match(t))}function I(e){const t=(e=E(e)).indexOf("#");if(-1===t)return{repo:e,treeish:{protocol:d.Head,request:"master"},extra:{}};const r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){const e=c().parse(n);for(const[t,r]of Object.entries(e))if("string"!=typeof r)throw new Error(`Assertion failed: The ${t} parameter must be a literal string`);const t=Object.values(d).find(t=>Object.prototype.hasOwnProperty.call(e,t));let i,A;void 0!==t?(i=t,A=e[t]):(i=d.Head,A="master");for(const t of Object.values(d))delete e[t];return{repo:r,treeish:{protocol:i,request:A},extra:e}}{const e=n.indexOf(":");let t,i;return-1===e?(t=null,i=n):(t=n.slice(0,e),i=n.slice(e+1)),{repo:r,treeish:{protocol:t,request:i},extra:{}}}}function E(e,{git:t=!1}={}){var r;if(e=(e=(e=e.replace(/^git\+https:/,"https:")).replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3")).replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),t){let t;e=e.replace(/^git\+([^:]+):/,"$1:");try{t=h().parse(e)}catch(e){t=null}t&&"ssh:"===t.protocol&&(null===(r=t.path)||void 0===r?void 0:r.startsWith("/:"))&&(e=e.replace(/^ssh:\/\//,""))}return e}function m(e){return A.structUtils.makeLocator(e,E(e.reference))}async function B(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);let r;try{r=await A.execUtils.execvp("git",["ls-remote","--refs",E(e,{git:!0})],{cwd:t.startingCwd,env:p(),strict:!0})}catch(t){throw t.message=`Listing the refs for ${e} failed`,t}const n=new Map,i=/^([a-f0-9]{40})\t(refs\/[^\n]+)/gm;let o;for(;null!==(o=i.exec(r.stdout));)n.set(o[2],o[1]);return n}async function y(e,t){const{repo:r,treeish:{protocol:n,request:i},extra:A}=I(e),o=await B(r,t),s=(e,t)=>{switch(e){case d.Commit:if(!t.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return c().stringify({...A,commit:t});case d.Head:{const e=o.get("refs/heads/"+t);if(void 0===e)throw new Error(`Unknown head ("${t}")`);return c().stringify({...A,commit:e})}case d.Tag:{const e=o.get("refs/tags/"+t);if(void 0===e)throw new Error(`Unknown tag ("${t}")`);return c().stringify({...A,commit:e})}case d.Semver:{if(!l().validRange(t))throw new Error(`Invalid range ("${t}")`);const e=new Map([...o.entries()].filter(([e])=>e.startsWith("refs/tags/")).map(([e,t])=>[l().parse(e.slice(10)),t]).filter(e=>null!==e[0])),r=l().maxSatisfying([...e.keys()],t);if(null===r)throw new Error(`No matching range ("${t}")`);return c().stringify({...A,commit:e.get(r)})}case null:{let e;if(null!==(e=a(d.Commit,t)))return e;if(null!==(e=a(d.Tag,t)))return e;if(null!==(e=a(d.Head,t)))return e;throw t.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${e}")`)}},a=(e,t)=>{try{return s(e,t)}catch(e){return null}};return`${r}#${s(n,i)}`}async function w(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);return await t.getLimit("cloneConcurrency")(async()=>{const{repo:t,treeish:{protocol:r,request:n}}=I(e);if("commit"!==r)throw new Error("Invalid treeish protocol when cloning");const i=await s.xfs.mktempPromise(),a={cwd:i,env:p(),strict:!0};try{await A.execUtils.execvp("git",["clone","-c core.autocrlf=false",E(t,{git:!0}),o.cS.fromPortablePath(i)],a),await A.execUtils.execvp("git",["checkout",""+n],a)}catch(e){throw e.message="Repository clone failed: "+e.message,e}return i})}!function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"}(d||(d={}));var Q=r(32485),v=r(46611);const b={configuration:{cloneConcurrency:{description:"Maximal number of concurrent clones",type:i.a2.NUMBER,default:2}},fetchers:[class{supports(e,t){return C(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,n=m(e),i=new Map(t.checksums);i.set(n.locatorHash,r);const o={...t,checksums:i},s=await this.downloadHosted(n,o);if(null!==s)return s;const[a,c,g]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,A.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote repository"),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:a,releaseFs:c,prefixPath:A.structUtils.getIdentVendorPath(e),checksum:g}}async downloadHosted(e,t){return t.project.configuration.reduceHook(e=>e.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){const r=await w(e.reference,t.project.configuration),n=I(e.reference),i=o.y1.join(r,"package.tgz");await A.scriptUtils.prepareExternalProject(r,i,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace});const a=await s.xfs.readFilePromise(i);return await A.miscUtils.releaseAfterUseAsync(async()=>await A.tgzUtils.convertToZip(a,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:A.structUtils.getIdentVendorPath(e),stripComponents:1}))}}],resolvers:[class{supportsDescriptor(e,t){return C(e.range)}supportsLocator(e,t){return C(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=await y(e.range,r.project.configuration);return[A.structUtils.makeLocator(e,n)]}async getSatisfying(e,t,r){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await A.miscUtils.releaseAfterUseAsync(async()=>await v.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:n.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:Q.U.HARD,dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}}]}},23599:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(32741),i=r(56537),A=r(75448),o=r(46009),s=r(10284),a=r(71191),c=r.n(a);const g=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];class l{supports(e,t){return!(!(r=e.reference)||!g.some(e=>!!r.match(e)));var r}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,A,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from GitHub"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:A,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await i.xfs.mktempPromise(async a=>{const c=new A.M(a);await n.tgzUtils.extractArchiveTo(r,c,{stripComponents:1});const g=s.gitUtils.splitRepoUrl(e.reference),l=o.y1.join(a,"package.tgz");await n.scriptUtils.prepareExternalProject(a,l,{configuration:t.project.configuration,report:t.report,workspace:g.extra.workspace});const u=await i.xfs.readFilePromise(l);return await n.tgzUtils.convertToZip(u,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){const{auth:r,username:n,reponame:i,treeish:A}=function(e){let t;for(const r of g)if(t=e.match(r),t)break;if(!t)throw new Error(`Input cannot be parsed as a valid GitHub URL ('${e}').`);let[,r,n,i,A="master"]=t;const{commit:o}=c().parse(A);return A=o||A.replace(/[^:]*:/,""),{auth:r,username:n,reponame:i,treeish:A}}(e.reference);return`https://${r?r+"@":""}github.com/${n}/${i}/archive/${A}.tar.gz`}}const u={hooks:{async fetchHostedRepository(e,t,r){if(null!==e)return e;const n=new l;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch(e){return null}}}}},21754:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var n=r(32741);const i=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,A=/^https?:/;var o=r(46611),s=r(32485);const a={fetchers:[class{supports(e,t){return!!i.test(e.reference)&&!!A.test(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,A,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:A,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(e.reference,{configuration:t.project.configuration});return await n.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})}}],resolvers:[class{supportsDescriptor(e,t){return!!i.test(e.range)&&!!A.test(e.range)}supportsLocator(e,t){return!!i.test(e.reference)&&!!A.test(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[n.structUtils.convertDescriptorToLocator(e)]}async getSatisfying(e,t,r){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await o.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:s.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},74230:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d});var n=r(27122),i=r(36370),A=r(95397),o=r(46611),s=r(40376),a=r(32741),c=r(56537),g=r(46009),l=r(40822),u=r(80305),h=r.n(u),p=r(31669);class f extends A.BaseCommand{constructor(){super(...arguments),this.usev2=!1,this.assumeFreshProject=!1,this.yes=!1,this.private=!1,this.workspace=!1,this.install=!1}async execute(){if(c.xfs.existsSync(g.y1.join(this.context.cwd,o.G.fileName)))throw new l.UsageError("A package.json already exists in the specified directory");const e=await n.VK.find(this.context.cwd,this.context.plugins),t=this.install?!0===this.install?"latest":this.install:null;return null!==t?await this.executeProxy(e,t):await this.executeRegular(e)}async executeProxy(e,t){if(null!==e.get("yarnPath"))throw new l.UsageError(`Cannot use the --install flag when the current directory already uses yarnPath (from ${e.sources.get("yarnPath")})`);if(null!==e.projectCwd)throw new l.UsageError("Cannot use the --install flag when the current directory is already part of a project");c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirPromise(this.context.cwd,{recursive:!0});const r=g.y1.join(this.context.cwd,e.get("lockfileFilename"));c.xfs.existsSync(r)||await c.xfs.writeFilePromise(r,"");const n=await this.cli.run(["set","version",t]);if(0!==n)return n;this.context.stdout.write("\n");const i=["--assume-fresh-project"];return this.private&&i.push("-p"),this.workspace&&i.push("-w"),this.yes&&i.push("-y"),await c.xfs.mktempPromise(async e=>{const{code:t}=await a.execUtils.pipevp("yarn",["init",...i],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await a.scriptUtils.makeScriptEnv({binFolder:e})});return t})}async executeRegular(e){let t=null;if(!this.assumeFreshProject)try{t=await s.I.find(e,this.context.cwd)}catch(e){t=null}c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirPromise(this.context.cwd,{recursive:!0});const r=new o.G,n=Object.fromEntries(e.get("initFields").entries());r.load(n),r.name=a.structUtils.makeIdent(e.get("initScope"),g.y1.basename(this.context.cwd)),r.version=e.get("initVersion"),r.private=this.private||this.workspace,r.license=e.get("initLicense"),this.workspace&&(await c.xfs.mkdirPromise(g.y1.join(this.context.cwd,"packages"),{recursive:!0}),r.workspaceDefinitions=[{pattern:"packages/*"}]);const i={};r.exportTo(i),p.inspect.styles.name="cyan",this.context.stdout.write((0,p.inspect)(i,{depth:1/0,colors:!0,compact:!1})+"\n");const A=g.y1.join(this.context.cwd,o.G.fileName);await c.xfs.changeFilePromise(A,JSON.stringify(i,null,2)+"\n");const l=g.y1.join(this.context.cwd,"README.md");if(c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,`# ${a.structUtils.stringifyIdent(r.name)}\n`),!t){const t=g.y1.join(this.context.cwd,g.QS.lockfile);await c.xfs.writeFilePromise(t,"");const r=["/.yarn/** linguist-vendored"].map(e=>e+"\n").join(""),n=g.y1.join(this.context.cwd,".gitattributes");c.xfs.existsSync(n)||await c.xfs.writeFilePromise(n,r);const i=["/.yarn/*","!/.yarn/releases","!/.yarn/plugins","!/.yarn/sdks","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!/.yarn/cache","#/.pnp.*"].map(e=>e+"\n").join(""),A=g.y1.join(this.context.cwd,".gitignore");c.xfs.existsSync(A)||await c.xfs.writeFilePromise(A,i);const o={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,.yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};h()(o,e.get("initEditorConfig"));let s="root = true\n";for(const[e,t]of Object.entries(o)){s+=`\n[${e}]\n`;for(const[e,r]of Object.entries(t)){s+=`${e.replace(/[A-Z]/g,e=>"_"+e.toLowerCase())} = ${r}\n`}}const l=g.y1.join(this.context.cwd,".editorconfig");c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,s),await a.execUtils.execvp("git",["init"],{cwd:this.context.cwd})}}}f.usage=l.Command.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]}),(0,i.gn)([l.Command.Boolean("-2",{hidden:!0})],f.prototype,"usev2",void 0),(0,i.gn)([l.Command.Boolean("--assume-fresh-project",{hidden:!0})],f.prototype,"assumeFreshProject",void 0),(0,i.gn)([l.Command.Boolean("-y,--yes",{hidden:!0})],f.prototype,"yes",void 0),(0,i.gn)([l.Command.Boolean("-p,--private",{description:"Initialize a private package"})],f.prototype,"private",void 0),(0,i.gn)([l.Command.Boolean("-w,--workspace",{description:"Initialize a private workspace root with a `packages/` directory"})],f.prototype,"workspace",void 0),(0,i.gn)([l.Command.String("-i,--install",{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"})],f.prototype,"install",void 0),(0,i.gn)([l.Command.Path("init")],f.prototype,"execute",null);const d={configuration:{initLicense:{description:"License used when creating packages via the init command",type:n.a2.STRING,default:null},initScope:{description:"Scope used when creating packages via the init command",type:n.a2.STRING,default:null},initVersion:{description:"Version used when creating packages via the init command",type:n.a2.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}}},commands:[f]}},86161:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>c});var n=r(32741),i=r(46009),A=r(75448),o=r(10489);var s=r(46611),a=r(32485);const c={fetchers:[class{supports(e,t){return!!e.reference.startsWith("link:")}getLocalPath(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"});if(i.y1.isAbsolute(A))return A;const o=t.fetcher.getLocalPath(r,t);return null===o?null:i.y1.resolve(o,A)}async fetch(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"}),a=i.y1.isAbsolute(s)?{packageFs:new A.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new A.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const g=c.packageFs,l=i.y1.join(c.prefixPath,s);return a.localPath?{packageFs:new A.M(l,{baseFs:g}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0,localPath:l}:{packageFs:new o.n(l,{baseFs:g}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0}}},class{supports(e,t){return!!e.reference.startsWith("portal:")}getLocalPath(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"});if(i.y1.isAbsolute(A))return A;const o=t.fetcher.getLocalPath(r,t);return null===o?null:i.y1.resolve(o,A)}async fetch(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"}),a=i.y1.isAbsolute(s)?{packageFs:new A.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new A.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const g=c.packageFs,l=i.y1.join(c.prefixPath,s);return a.localPath?{packageFs:new A.M(l,{baseFs:g}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,localPath:l}:{packageFs:new o.n(l,{baseFs:g}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot}}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("link:")}supportsLocator(e,t){return!!e.reference.startsWith("link:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const A=e.range.slice("link:".length);return[n.structUtils.makeLocator(e,"link:"+i.cS.toPortablePath(A))]}async getSatisfying(e,t,r){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("portal:")}supportsLocator(e,t){return!!e.reference.startsWith("portal:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const A=e.range.slice("portal:".length);return[n.structUtils.makeLocator(e,"portal:"+i.cS.toPortablePath(A))]}async getSatisfying(e,t,r){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await s.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map([...i.dependencies,...i.devDependencies]),peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},8149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getPnpPath:()=>ie,default:()=>Ae});var n,i=r(27122),A=r(46009),o=r(32741);!function(e){e[e.YES=0]="YES",e[e.NO=1]="NO",e[e.DEPENDS=2]="DEPENDS"}(n||(n={}));const s=(e,t)=>`${e}@${t}`,a=(e,t)=>{const r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return s(e,n)};var c;!function(e){e[e.NONE=-1]="NONE",e[e.PERF=0]="PERF",e[e.CHECK=1]="CHECK",e[e.REASONS=2]="REASONS",e[e.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"}(c||(c={}));const g=(e,t={})=>{const r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||c.NONE),n={check:t.check||r>=c.INTENSIVE_CHECK,debugLevel:r,hoistingLimits:t.hoistingLimits||new Map};n.debugLevel>=c.PERF&&console.time("hoist");const i=C(e,n);if(h(i,[i],new Set([i.locator]),n),n.debugLevel>=c.PERF&&console.timeEnd("hoist"),n.debugLevel>=c.CHECK){const e=d(i);if(e)throw new Error(`${e}, after hoisting finished:\n${y(i)}`)}return n.debugLevel>=c.REASONS&&console.log(y(i)),E(i)},l=(e,t)=>{if(t.decoupled)return t;const{name:r,references:n,ident:i,locator:A,dependencies:o,originalDependencies:s,hoistedDependencies:a,peerNames:c,reasons:g,isHoistBorder:l}=t,u={name:r,references:new Set(n),ident:i,locator:A,dependencies:new Map(o),originalDependencies:new Map(s),hoistedDependencies:new Map(a),peerNames:new Set(c),reasons:new Map(g),decoupled:!0,isHoistBorder:l},h=u.dependencies.get(r);return h&&h.ident==u.ident&&u.dependencies.set(r,u),e.dependencies.set(u.name,u),u},u=e=>{const t=new Set,r=(n,i=new Set)=>{if(!i.has(n)){i.add(n);for(const A of n.peerNames)if(!e.peerNames.has(A)){const n=e.dependencies.get(A);n&&!t.has(n)&&r(n,i)}t.add(n)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||r(t);return t},h=(e,t,r,n,i=new Set)=>{const A=t[t.length-1];if(i.has(A))return;i.add(A);const o=((e,t)=>{const r=new Map([[e.name,[e.ident]]]);for(const t of e.dependencies.values())e.peerNames.has(t.name)||r.set(t.name,[t.ident]);const n=Array.from(t.keys());n.sort((e,r)=>{const n=t.get(e),i=t.get(r);return i.peerDependents.size!==n.peerDependents.size?i.peerDependents.size-n.peerDependents.size:i.dependents.size-n.dependents.size});for(const t of n){const n=t.substring(0,t.indexOf("@",1)),i=t.substring(n.length+1);if(!e.peerNames.has(n)){let e=r.get(n);e||(e=[],r.set(n,e)),e.indexOf(i)<0&&e.push(i)}}return r})(A,m(A)),s=new Map(Array.from(o.entries()).map(([e,t])=>[e,t[0]])),a=A===e?new Map:(e=>{const t=new Map,r=new Set,n=i=>{if(!r.has(i)){r.add(i);for(const r of i.hoistedDependencies.values())e.dependencies.has(r.name)||t.set(r.name,r);for(const e of i.dependencies.values())i.peerNames.has(e.name)||n(e)}};return n(e),t})(A);let c;do{f(e,t,r,a,s,o,n),c=!1;for(const[e,t]of o)t.length>1&&!A.dependencies.has(e)&&(s.delete(e),t.shift(),s.set(e,t[0]),c=!0)}while(c);for(const i of A.dependencies.values())A.peerNames.has(i.name)||r.has(i.locator)||(r.add(i.locator),h(e,[...t,i],r,n),r.delete(i.locator))},p=(e,t,r,i,A,o,{outputReason:s})=>{let a,c=null,g=new Set;s&&(a=""+Array.from(e).map(e=>B(e)).join("→"));const l=t[t.length-1],u=r.ident===l.ident,h=A.get(r.name);let p=h===r.ident&&!u;if(s&&!p&&h&&!u&&(c=`- filled by: ${B(o.get(r.name)[0])} at ${a}`),p){let e=!1;const n=i.get(r.name);if(e=!n||n.ident===r.ident,s&&!e&&(c=`- filled by: ${B(n.locator)} at ${a}`),e)for(let n=1;n=1;r--){const i=t[r];for(const A of n){if(i.peerNames.has(A)&&i.originalDependencies.has(A))continue;const o=i.dependencies.get(A);o&&(r===t.length-1?g.add(o):(g=null,e=!1,s&&(c=`- peer dependency ${B(o.locator)} from parent ${B(i.locator)} was not hoisted to ${a}`))),n.delete(A)}if(!e)break}p=e}return null!==g&&g.size>0?{isHoistable:n.DEPENDS,dependsOn:g,reason:c}:{isHoistable:p?n.YES:n.NO,reason:c}},f=(e,t,r,i,A,o,s)=>{const a=t[t.length-1],g=new Set,h=(t,f,I,E)=>{if(g.has(I))return;const m=[...f,I.locator],w=new Map,Q=new Map;for(const e of u(I)){let g=null;if(g||(g=p(r,[a,...t,I],e,i,A,o,{outputReason:s.debugLevel>=c.REASONS})),Q.set(e,g),g.isHoistable===n.DEPENDS)for(const t of g.dependsOn){const r=w.get(t.name)||new Set;r.add(e.name),w.set(t.name,r)}}const v=new Set,b=(e,t,r)=>{if(!v.has(e)){v.add(e),e.ident!==I.ident&&Q.set(e,{isHoistable:n.NO,reason:r});for(const n of w.get(e.name)||[])b(I.dependencies.get(n),t,r)}};let D;s.debugLevel>=c.REASONS&&(D=""+Array.from(r).map(e=>B(e)).join("→"));for(const[e,t]of Q)t.isHoistable===n.NO&&b(e,t,`- peer dependency ${B(e.locator)} from parent ${B(I.locator)} was not hoisted to ${D}`);for(const e of Q.keys())if(!v.has(e)){I.dependencies.delete(e.name),I.hoistedDependencies.set(e.name,e),I.reasons.delete(e.name);const t=a.dependencies.get(e.name);if(t)for(const r of e.references)t.references.add(r);else a.ident!==e.ident&&(a.dependencies.set(e.name,e),E.add(e))}if(s.check){const r=d(e);if(r)throw new Error(`${r}, after hoisting dependencies of ${[a,...t,I].map(e=>B(e.locator)).join("→")}:\n${y(e)}`)}const S=u(I);for(const e of S)if(v.has(e)&&m.indexOf(e.locator)<0){const r=Q.get(e);if(r.isHoistable!==n.YES&&I.reasons.set(e.name,r.reason),!e.isHoistBorder){g.add(I);const r=l(I,e);h([...t,I],[...f,I.locator],r,C),g.delete(I)}}};let f,C=new Set(u(a));do{f=C,C=new Set;for(const e of f){if(e.locator===a.locator||e.isHoistBorder)continue;const t=l(a,e);h([],Array.from(r),t,C)}}while(C.size>0)},d=e=>{const t=[],r=new Set,n=new Set,i=(e,A)=>{if(r.has(e))return;if(r.add(e),n.has(e))return;const o=new Map(A);for(const t of e.dependencies.values())e.peerNames.has(t.name)||o.set(t.name,t);for(const r of e.originalDependencies.values()){const i=o.get(r.name),s=()=>""+Array.from(n).concat([e]).map(e=>B(e.locator)).join("→");if(e.peerNames.has(r.name)){const e=A.get(r.name);e===i&&e&&e.ident===r.ident||t.push(`${s()} - broken peer promise: expected ${r.ident} but found ${e?e.ident:e}`)}else i?i.ident!==r.ident&&t.push(`${s()} - broken require promise for ${r.name}: expected ${r.ident}, but found: ${i.ident}`):t.push(`${s()} - broken require promise: no required dependency ${r.locator} found`)}n.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||i(t,o);n.delete(e)};return i(e,e.dependencies),t.join("\n")},C=(e,t)=>{const{identName:r,name:n,reference:i,peerNames:A}=e,o={name:n,references:new Set([i]),locator:s(r,i),ident:a(r,i),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(A),reasons:new Map,decoupled:!0,isHoistBorder:!0},c=new Map([[e,o]]),g=(e,r)=>{let n=c.get(e);const i=!!n;if(!n){const{name:i,identName:A,reference:o,peerNames:g}=e,l=t.hoistingLimits.get(r.locator);n={name:i,references:new Set([o]),locator:s(A,o),ident:a(A,o),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(g),reasons:new Map,decoupled:!0,isHoistBorder:!!l&&l.has(i)},c.set(e,n)}if(r.dependencies.set(e.name,n),r.originalDependencies.set(e.name,n),i){const e=new Set,t=r=>{if(!e.has(r)){e.add(r),r.decoupled=!1;for(const e of r.dependencies.values())r.peerNames.has(e.name)||t(e)}};t(n)}else for(const t of e.dependencies)g(t,n)};for(const t of e.dependencies)g(t,o);return o},I=e=>e.substring(0,e.indexOf("@",1)),E=e=>{const t={name:e.name,identName:I(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(e,t,i)=>{const A=r.has(e);let o;if(t===e)o=i;else{const{name:t,references:r,locator:n}=e;o={name:t,identName:I(n),references:r,dependencies:new Set}}if(i.dependencies.add(o),!A){r.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||n(t,e,o);r.delete(e)}};for(const r of e.dependencies.values())n(r,e,t);return t},m=e=>{const t=new Map,r=new Set([e]),n=e=>{const r=(e=>`${e.name}@${e.ident}`)(e);let n=t.get(r);return n||(n={dependents:new Set,peerDependents:new Set},t.set(r,n)),n},i=(e,t)=>{const A=!!r.has(t);if(n(t).dependents.add(e.ident),!A){r.add(t);for(const e of t.dependencies.values())if(t.peerNames.has(e.name)){n(e).peerDependents.add(t.ident)}else i(t,e)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||i(e,t);return t},B=e=>{const t=e.indexOf("@",1),r=e.substring(0,t),n=e.substring(t+1);if("workspace:."===n)return".";if(n){const e=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")?`v:${r}@${e}`:`${r}@${e}`}return""+r},y=e=>{let t=0;const r=(e,n,i="")=>{if(t>5e4||n.has(e))return"";t++;const A=Array.from(e.dependencies.values());let o="";n.add(e);for(let t=0;t":"")+(c!==s.name?`a:${s.name}:`:"")+B(s.locator)+(a?" "+a:"")}\n`,o+=r(s,n,`${i}${t5e4?"\nTree is too large, part of the tree has been dunped\n":"")};var w,Q;!function(e){e.HARD="HARD",e.SOFT="SOFT"}(w||(w={})),function(e){e.WORKSPACES="workspaces",e.DEPENDENCIES="dependencies",e.NONE="none"}(Q||(Q={}));const v=(e,t)=>{const{packageTree:r,hoistingLimits:n}=D(e,t),i=g(r,{hoistingLimits:n});return S(e,i,t)},b=e=>`${e.name}@${e.reference}`;const D=(e,t)=>{const r=e.getDependencyTreeRoots(),n=new Map,i=new Map,s=e.getPackageInformation(e.topLevel);if(null===s)throw new Error("Assertion failed: Expected the top-level package to have been registered");const a=e.findPackageLocator(s.packageLocation);if(null===a)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");const c=A.cS.toPortablePath(s.packageLocation),g=b(a);if(t.project){const e={children:new Map},r=t.project.cwd.split(A.y1.sep);for(const[n,i]of t.project.workspacesByCwd){const t=n.split(A.y1.sep).slice(r.length);let s=e;for(const e of t){let t=s.children.get(e);t||(t={children:new Map},s.children.set(e,t)),s=t}s.workspaceLocator={name:o.structUtils.stringifyIdent(i.anchoredLocator),reference:i.anchoredLocator.reference}}const n=(e,t)=>{if(e.workspaceLocator){const r=b(t);let n=i.get(r);n||(n=new Set,i.set(r,n)),n.add(e.workspaceLocator)}for(const r of e.children.values())n(r,e.workspaceLocator||t)};for(const t of e.children.values())n(t,e.workspaceLocator)}else for(const e of r)if(e.name!==a.name||e.reference!==a.reference){let t=i.get(g);t||(t=new Set,i.set(g,t)),t.add(e)}const l={name:a.name,identName:a.name,reference:a.reference,peerNames:s.packagePeers,dependencies:new Set},u=new Map,h=(r,s,g,p,f,d,C)=>{var I,E;const m=((e,t)=>`${b(t)}:${e}`)(r,g);let B=u.get(m);const y=!!B;if(y||g.name!==a.name||g.reference!==a.reference||(B=l,u.set(m,l)),B||(B={name:r,identName:g.name,reference:g.reference,dependencies:new Set,peerNames:s.packagePeers},u.set(m,B)),C){const e=b({name:p.identName,reference:p.reference}),t=n.get(e)||new Set;n.set(e,t),t.add(B.name)}const w=new Map(s.packageDependencies);if(t.project){const e=t.project.workspacesByCwd.get(A.cS.toPortablePath(s.packageLocation.slice(0,-1)));if(e){const t=new Set([...Array.from(e.manifest.peerDependencies.values(),e=>o.structUtils.stringifyIdent(e)),...Array.from(e.manifest.peerDependenciesMeta.keys())]);for(const e of t)w.has(e)||(w.set(e,f.get(e)||null),B.peerNames.add(e))}}const v=b(g),D=i.get(v);if(D)for(const e of D)w.set(e.name+"$wsroot$",e.reference);p.dependencies.add(B);const S=t.pnpifyFs||!function(e){let t=o.structUtils.parseDescriptor(e);return o.structUtils.isVirtualDescriptor(t)&&(t=o.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("portal:")}(m);if(!y&&S)for(const[r,n]of w)if(null!==n){const i=e.getLocator(r,n),o=e.getLocator(r.replace("$wsroot$",""),n),s=e.getPackageInformation(o);if(null===s)throw new Error("Assertion failed: Expected the package to have been registered");const a=null===(I=t.hoistingLimitsByCwd)||void 0===I?void 0:I.get(d),g=A.y1.relative(c,A.cS.toPortablePath(s.packageLocation))||A.LZ.dot,l=null===(E=t.hoistingLimitsByCwd)||void 0===E?void 0:E.get(g),u=a===Q.DEPENDENCIES||l===Q.DEPENDENCIES||l===Q.WORKSPACES;h(r,s,i,B,w,g,u)}};return h(a.name,s,a,l,s.packageDependencies,A.LZ.dot,!1),{packageTree:l,hoistingLimits:n}};const S=(e,t,r)=>{const n=new Map,i=(t,n)=>{const{linkType:i,target:o}=function(e,t,r){const n=t.getLocator(e.name.replace("$wsroot$",""),e.reference),i=t.getPackageInformation(n);if(null===i)throw new Error("Assertion failed: Expected the package to be registered");let o,s;if(r.pnpifyFs)s=A.cS.toPortablePath(i.packageLocation),o=w.SOFT;else{const r=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(i.packageLocation):i.packageLocation;s=A.cS.toPortablePath(r||i.packageLocation),o=i.linkType}return{linkType:o,target:s}}(t,e,r);return{locator:b(t),target:o,linkType:i,aliases:n}},s=e=>{const[t,r]=e.split("/");return r?{scope:(0,A.Zu)(t),name:(0,A.Zu)(r)}:{scope:null,name:(0,A.Zu)(t)}},a=new Set,c=(e,t)=>{if(!a.has(e)){a.add(e);for(const r of e.dependencies){if(r.identName===e.identName.replace("$wsroot$","")&&1===r.references.size&&1===e.references.size&&r.references.keys().next().value===e.references.keys().next().value)continue;const a=Array.from(r.references).sort(),g={name:r.identName,reference:a[0]},{name:l,scope:u}=s(r.name),h=u?[u,l]:[l],p=A.y1.join(t,"node_modules"),f=A.y1.join(p,...h),d=i(g,a.slice(1));if(!r.name.endsWith("$wsroot$")){const e=n.get(f);if(e){if(e.dirList)throw new Error(`Assertion failed: ${f} cannot merge dir node with leaf node`);{const t=o.structUtils.parseLocator(e.locator),r=o.structUtils.parseLocator(d.locator);if(e.linkType!==d.linkType)throw new Error(`Assertion failed: ${f} cannot merge nodes with different link types`);if(t.identHash!==r.identHash)throw new Error(`Assertion failed: ${f} cannot merge nodes with different idents ${o.structUtils.stringifyLocator(t)} and ${o.structUtils.stringifyLocator(r)}`);d.aliases=[...d.aliases,...e.aliases,o.structUtils.parseLocator(e.locator).reference]}}n.set(f,d);const t=f.split("/"),r=t.indexOf("node_modules");let i=t.length-1;for(;r>=0&&i>r;){const e=A.cS.toPortablePath(t.slice(0,i).join(A.y1.sep)),r=(0,A.Zu)(t[i]),o=n.get(e);if(o){if(o.dirList){if(o.dirList.has(r))break;o.dirList.add(r)}}else n.set(e,{dirList:new Set([r])});i--}}c(r,d.linkType===w.SOFT?d.target:f)}}},g=i({name:t.name,reference:Array.from(t.references)[0]},[]),l=g.target;return n.set(l,g),c(t,l),n};var k=r(92659),M=r(32485),N=r(92409),F=r(46611),R=r(35691),K=r(17674),L=r(53660),x=r(56537),P=r(29486),U=r(55125),T=r(57436),O=r(88563),Y=r(58069),j=r.n(Y),G=r(40822),H=r(35747),J=r.n(H);const _="node_modules";class q extends T.AbstractPnpInstaller{constructor(){super(...arguments),this.manifestCache=new Map}async getBuildScripts(e,t,r){return[]}async transformPackage(e,t,r,n,i){return r.packageFs}async finalizeInstallWithPnp(e){if("node-modules"!==this.opts.project.configuration.get("nodeLinker"))return;const t=new K.p({baseFs:new L.A({libzip:await(0,P.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})});let r=await z(this.opts.project);if(null===r){const e=this.opts.project.configuration.get("bstatePath");await x.xfs.existsPromise(e)&&await x.xfs.unlinkPromise(e),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map}}const n=this.opts.project.configuration.get("nmHoistingLimits"),i=(0,O.oC)(e,this.opts.project.cwd,t),s=new Map(this.opts.project.workspaces.map(e=>{var t,r;const{relativeCwd:i,manifest:A}=e;let s=n;try{s=o.miscUtils.validateEnum(Q,null!==(r=null===(t=A.installConfig)||void 0===t?void 0:t.hoistingLimits)&&void 0!==r?r:n)}catch(t){const r=o.structUtils.prettyWorkspace(this.opts.project.configuration,e);this.opts.report.reportWarning(k.b.INVALID_MANIFEST,`${r}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Q).join(", ")}, using default: "${s}"`)}return[i,s]})),a=(e=>{const t=new Map;for(const[r,n]of e.entries())if(!n.dirList){let e=t.get(n.locator);e||(e={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,e)),e.locations.push(r)}for(const e of t.values())e.locations=e.locations.sort((e,t)=>{const r=e.split(A.y1.delimiter).length,n=t.split(A.y1.delimiter).length;return r!==n?n-r:t.localeCompare(e)});return t})(v(i,{pnpifyFs:!1,hoistingLimitsByCwd:s,project:this.opts.project}));await async function(e,t,{baseFs:r,project:n,report:i,loadManifest:s}){const a=A.y1.join(n.cwd,_),{locationTree:c,binSymlinks:g}=function(e,t){const r=new Map([...e]),n=new Map([...t]);for(const[t,r]of e){const e=A.y1.join(t,_);if(!x.xfs.existsSync(e)){r.children.delete(_);for(const t of n.keys())null!==A.y1.contains(e,t)&&n.delete(t)}}return{locationTree:r,binSymlinks:n}}(e.locationTree,e.binSymlinks),l=X(t,{skipPrefix:n.cwd}),u=[],h=async({srcDir:e,dstDir:t,linkType:n})=>{const i=(async()=>{try{n===M.U.SOFT?(await x.xfs.mkdirPromise(A.y1.dirname(t),{recursive:!0}),await Z(A.y1.resolve(e),t)):await $(t,e,{baseFs:r})}catch(r){throw r.message=`While persisting ${e} -> ${t} ${r.message}`,r}finally{I.tick()}})().then(()=>u.splice(u.indexOf(i),1));u.push(i),u.length>4&&await Promise.race(u)},p=async(e,t,r)=>{const n=(async()=>{const n=async(e,t,r)=>{try{r&&r.innerLoop||await x.xfs.mkdirPromise(t,{recursive:!0});const i=await x.xfs.readdirPromise(e,{withFileTypes:!0});for(const o of i){if(!(r&&r.innerLoop||".bin"!==o.name))continue;const i=A.y1.join(e,o.name),s=A.y1.join(t,o.name);o.isDirectory()?(o.name!==_||r&&r.innerLoop)&&(await x.xfs.mkdirPromise(s,{recursive:!0}),await n(i,s,{innerLoop:!0})):await x.xfs.copyFilePromise(i,s,J().constants.COPYFILE_FICLONE)}}catch(n){throw r&&r.innerLoop||(n.message=`While cloning ${e} -> ${t} ${n.message}`),n}finally{r&&r.innerLoop||I.tick()}};await n(e,t,r)})().then(()=>u.splice(u.indexOf(n),1));u.push(n),u.length>4&&await Promise.race(u)},f=async(e,t,r)=>{if(r)for(const[n,i]of t.children){const t=r.children.get(n);await f(A.y1.join(e,n),i,t)}else t.children.has(_)&&await W(A.y1.join(e,_),{contentsOnly:!1}),await W(e,{contentsOnly:e===a})};for(const[e,t]of c){const r=l.get(e);for(const[n,i]of t.children){if("."===n)continue;const t=r?r.children.get(n):r;await f(A.y1.join(e,n),i,t)}}const d=async(e,t,r)=>{if(r){te(t.locator,r.locator)||await W(e,{contentsOnly:t.linkType===M.U.HARD});for(const[n,i]of t.children){const t=r.children.get(n);await d(A.y1.join(e,n),i,t)}}else t.children.has(_)&&await W(A.y1.join(e,_),{contentsOnly:!0}),await W(e,{contentsOnly:t.linkType===M.U.HARD})};for(const[e,t]of l){const r=c.get(e);for(const[n,i]of t.children){if("."===n)continue;const t=r?r.children.get(n):r;await d(A.y1.join(e,n),i,t)}}const C=[];for(const[r,{locations:i}]of e.locatorMap.entries())for(const e of i){const{locationRoot:i,segments:o}=V(e,{skipPrefix:n.cwd});let s=l.get(i),a=i;if(s){for(const e of o)if(a=A.y1.join(a,e),s=s.children.get(e),!s)break;if(s&&!te(s.locator,r)){const e=t.get(s.locator),r=e.target,n=a,i=e.linkType;r!==n&&C.push({srcDir:r,dstDir:n,linkType:i})}}}for(const[e,{locations:r}]of t.entries())for(const i of r){const{locationRoot:r,segments:o}=V(i,{skipPrefix:n.cwd});let s=c.get(r),a=l.get(r),g=r;const u=t.get(e),h=u.target,p=i;if(h===p)continue;const f=u.linkType;for(const e of o)a=a.children.get(e);if(s){for(const e of o)if(g=A.y1.join(g,e),s=s.children.get(e),!s){C.push({srcDir:h,dstDir:p,linkType:f});break}}else C.push({srcDir:h,dstDir:p,linkType:f})}const I=R.yG.progressViaCounter(C.length),E=i.reportProgress(I);try{const e=new Map;for(const t of C)t.linkType!==M.U.SOFT&&e.has(t.srcDir)||(e.set(t.srcDir,t.dstDir),await h({...t}));await Promise.all(u),u.length=0;for(const t of C){const r=e.get(t.srcDir);t.linkType!==M.U.SOFT&&t.dstDir!==r&&await p(r,t.dstDir)}await Promise.all(u),await x.xfs.mkdirPromise(a,{recursive:!0});const r=await async function(e,t,r,{loadManifest:n}){const i=new Map;for(const[t,{locations:r}]of e){const e=ee(t)?null:await n(t,r[0]),o=new Map;if(e)for(const[t,n]of e.bin){const e=A.y1.join(r[0],n);""!==n&&x.xfs.existsSync(e)&&o.set(t,n)}i.set(t,o)}const o=new Map,s=(e,t,n)=>{const a=new Map,c=A.y1.contains(r,e);if(n.locator&&null!==c){const t=i.get(n.locator);for(const[r,n]of t){const t=A.y1.join(e,A.cS.toPortablePath(n));a.set((0,A.Zu)(r),t)}for(const[t,r]of n.children){const n=A.y1.join(e,t),i=s(n,n,r);i.size>0&&o.set(e,new Map([...o.get(e)||new Map,...i]))}}else for(const[r,i]of n.children){const n=s(A.y1.join(e,r),t,i);for(const[e,t]of n)a.set(e,t)}return a};for(const[e,r]of t){const t=s(e,e,r);t.size>0&&o.set(e,new Map([...o.get(e)||new Map,...t]))}return o}(t,l,n.cwd,{loadManifest:s});await async function(e,t){for(const r of e.keys())if(!t.has(r)){const e=A.y1.join(r,_,".bin");await x.xfs.removePromise(e)}for(const[r,n]of t){const t=A.y1.join(r,_,".bin"),i=e.get(r)||new Map;await x.xfs.mkdirPromise(t,{recursive:!0});for(const e of i.keys())n.has(e)||(await x.xfs.removePromise(A.y1.join(t,e)),"win32"===process.platform&&await x.xfs.removePromise(A.y1.join(t,(0,A.Zu)(e+".cmd"))));for(const[e,r]of n){const n=i.get(e),o=A.y1.join(t,e);n!==r&&("win32"===process.platform?await j()(A.cS.fromPortablePath(r),A.cS.fromPortablePath(o),{createPwshFile:!1}):(await x.xfs.removePromise(o),await Z(r,o),await x.xfs.chmodPromise(r,493)))}}}(g,r),await async function(e,t,r){let n="";n+="# Warning: This file is automatically generated. Removing it is fine, but will\n",n+="# cause your node_modules installation to become invalidated.\n",n+="\n",n+="__metadata:\n",n+=" version: 1\n";const i=Array.from(t.keys()).sort(),s=o.structUtils.stringifyLocator(e.topLevelWorkspace.anchoredLocator);for(const o of i){const i=t.get(o);n+="\n",n+=JSON.stringify(o)+":\n",n+=" locations:\n";for(const t of i.locations){const r=A.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);n+=` - ${JSON.stringify(r)}\n`}if(i.aliases.length>0){n+=" aliases:\n";for(const e of i.aliases)n+=` - ${JSON.stringify(e)}\n`}if(o===s&&r.size>0){n+=" bin:\n";for(const[t,i]of r){const r=A.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);n+=` ${JSON.stringify(r)}:\n`;for(const[e,r]of i){const i=A.y1.relative(A.y1.join(t,_),r);n+=` ${JSON.stringify(e)}: ${JSON.stringify(i)}\n`}}}}const a=e.cwd,c=A.y1.join(a,_,".yarn-state.yml");await x.xfs.changeFilePromise(c,n,{automaticNewlines:!0})}(n,t,r)}finally{E.stop()}}(r,a,{baseFs:t,project:this.opts.project,report:this.opts.report,loadManifest:this.cachedManifestLoad.bind(this,i,t)});const c=[];for(const[e,r]of a.entries()){if(ee(e))continue;const n=o.structUtils.parseLocator(e),s={name:o.structUtils.stringifyIdent(n),reference:n.reference};if(null===i.getPackageInformation(s))throw new Error(`Assertion failed: Expected the package to be registered (${o.structUtils.prettyLocator(this.opts.project.configuration,n)})`);const a=A.cS.toPortablePath(r.locations[0]),g=await this.cachedManifestLoad(i,t,e,a),l=await this.getSourceBuildScripts(a,g);l.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(k.b.DISABLED_BUILD_SCRIPTS,o.structUtils.prettyLocator(this.opts.project.configuration,n)+" lists build scripts, but all build scripts have been disabled."),l.length=0),l.length>0&&r.linkType!==M.U.HARD&&!this.opts.project.tryWorkspaceByLocator(n)&&(this.opts.report.reportWarningOnce(k.b.SOFT_LINK_BUILD,o.structUtils.prettyLocator(this.opts.project.configuration,n)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),l.length=0);const u=this.opts.project.getDependencyMeta(n,g.version);l.length>0&&u&&!1===u.built&&(this.opts.report.reportInfoOnce(k.b.BUILD_DISABLED,o.structUtils.prettyLocator(this.opts.project.configuration,n)+" lists build scripts, but its build has been explicitly disabled through configuration."),l.length=0),l.length>0&&c.push({buildLocations:r.locations,locatorHash:n.locatorHash,buildDirective:l})}return c}async cachedManifestLoad(e,t,r,n){let i=this.manifestCache.get(r);if(i)return i;try{i=await F.G.find(n)}catch(n){const s=A.cS.toPortablePath(e.getPackageInformation(o.structUtils.parseLocator(r)).packageLocation);try{i=await F.G.find(s,{baseFs:t})}catch(e){throw e.message=`While loading ${s}: ${e.message}`,e}}return this.manifestCache.set(r,i),i}async getSourceBuildScripts(e,t){const r=[],{scripts:n}=t;for(const e of["preinstall","install","postinstall"])n.has(e)&&r.push([N.k.SCRIPT,e]);const i=A.y1.resolve(e,"binding.gyp");return!n.has("install")&&x.xfs.existsSync(i)&&r.push([N.k.SHELLCODE,"node-gyp rebuild"]),r}}async function z(e,{unrollAliases:t=!1}={}){const r=e.cwd,n=A.y1.join(r,_,".yarn-state.yml");if(!x.xfs.existsSync(n))return null;const i=(0,U.parseSyml)(await x.xfs.readFilePromise(n,"utf8"));if(i.__metadata.version>1)return null;const s=new Map,a=new Map;delete i.__metadata;for(const[e,n]of Object.entries(i)){const i=n.locations.map(e=>A.y1.join(r,e)),c=n.bin;if(c)for(const[e,t]of Object.entries(c)){const n=A.y1.join(r,A.cS.toPortablePath(e)),i=o.miscUtils.getMapWithDefault(a,n);for(const[e,r]of Object.entries(t))i.set((0,A.Zu)(e),A.cS.toPortablePath([n,_,r].join(A.y1.delimiter)))}if(s.set(e,{target:A.LZ.dot,linkType:M.U.HARD,locations:i,aliases:n.aliases||[]}),t&&n.aliases)for(const t of n.aliases){const{scope:r,name:n}=o.structUtils.parseLocator(e),a=o.structUtils.makeLocator(o.structUtils.makeIdent(r,n),t),c=o.structUtils.stringifyLocator(a);s.set(c,{target:A.LZ.dot,linkType:M.U.HARD,locations:i,aliases:[]})}}return{locatorMap:s,binSymlinks:a,locationTree:X(s,{skipPrefix:e.cwd})}}const W=async(e,t)=>{if(e.split(A.y1.sep).indexOf(_)<0)throw new Error("Assertion failed: trying to remove dir that doesn't contain node_modules: "+e);try{if(!t.innerLoop){if((await x.xfs.lstatPromise(e)).isSymbolicLink())return void await x.xfs.unlinkPromise(e)}const r=await x.xfs.readdirPromise(e,{withFileTypes:!0});for(const n of r){const r=A.y1.join(e,(0,A.Zu)(n.name));n.isDirectory()?(n.name!==_||t&&t.innerLoop)&&await W(r,{innerLoop:!0,contentsOnly:!1}):await x.xfs.unlinkPromise(r)}t.contentsOnly||await x.xfs.rmdirPromise(e)}catch(e){if("ENOENT"!==e.code&&"ENOTEMPTY"!==e.code)throw e}},V=(e,{skipPrefix:t})=>{const r=A.y1.contains(t,e);if(null===r)throw new Error(`Assertion failed: Cannot process a path that isn't part of the requested prefix (${e} isn't within ${t})`);const n=r.split(A.y1.sep).filter(e=>""!==e),i=n.indexOf(_),o=n.slice(0,i).join(A.y1.sep);return{locationRoot:A.y1.join(t,o),segments:n.slice(i)}},X=(e,{skipPrefix:t})=>{const r=new Map;if(null===e)return r;const n=()=>({children:new Map,linkType:M.U.HARD});for(const[i,s]of e.entries()){if(s.linkType===M.U.SOFT){if(null!==A.y1.contains(t,s.target)){const e=o.miscUtils.getFactoryWithDefault(r,s.target,n);e.locator=i,e.linkType=s.linkType}}for(const e of s.locations){const{locationRoot:A,segments:a}=V(e,{skipPrefix:t});let c=o.miscUtils.getFactoryWithDefault(r,A,n);for(let e=0;e{let r;try{"win32"===process.platform&&(r=x.xfs.lstatSync(e))}catch(e){}"win32"!=process.platform||r&&!r.isDirectory()?x.xfs.symlinkPromise(A.y1.relative(A.y1.dirname(t),e),t):x.xfs.symlinkPromise(e,t,"junction")},$=async(e,t,{baseFs:r,innerLoop:n})=>{await x.xfs.mkdirPromise(e,{recursive:!0});const i=await r.readdirPromise(t,{withFileTypes:!0}),o=async(e,t,n)=>{if(n.isFile()){const n=await r.lstatPromise(t);await r.copyFilePromise(t,e);const i=511&n.mode;420!==i&&await x.xfs.chmodPromise(e,i)}else{if(!n.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${await x.xfs.statSync(t).mode.toString(8).padStart(6,"0")})`);{const n=await r.readlinkPromise(t);await Z(A.y1.resolve(A.y1.dirname(e),n),e)}}};for(const s of i){const i=A.y1.join(t,(0,A.Zu)(s.name)),a=A.y1.join(e,(0,A.Zu)(s.name));s.isDirectory()?(s.name!==_||n)&&await $(a,i,{baseFs:r,innerLoop:!0}):await o(a,i,s)}};function ee(e){let t=o.structUtils.parseDescriptor(e);return o.structUtils.isVirtualDescriptor(t)&&(t=o.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}const te=(e,t)=>{if(!e||!t)return e===t;let r=o.structUtils.parseLocator(e);o.structUtils.isVirtualLocator(r)&&(r=o.structUtils.devirtualizeLocator(r));let n=o.structUtils.parseLocator(t);return o.structUtils.isVirtualLocator(n)&&(n=o.structUtils.devirtualizeLocator(n)),o.structUtils.areLocatorsEqual(r,n)};class re extends T.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(e){return new ne(e)}}class ne extends T.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=new K.p({baseFs:new L.A({libzip:await(0,P.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})}),r=(0,O.oC)(e,this.opts.project.cwd,t),n=v(r,{pnpifyFs:!1,project:this.opts.project}),i=new Map;e.fallbackPool=i;const s=(e,t)=>{const r=o.structUtils.parseLocator(t.locator),n=o.structUtils.stringifyIdent(r);n===e?i.set(e,r.reference):i.set(e,[n,r.reference])},a=A.y1.join(this.opts.project.cwd,A.QS.nodeModules),c=n.get(a);if(void 0===c)throw new Error("Assertion failed: Expected a root junction point");if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(const e of c.dirList){const t=A.y1.join(a,e),r=n.get(t);if(void 0===r)throw new Error("Assertion failed: Expected the child to have been registered");if("target"in r)s(e,r);else for(const i of r.dirList){const r=A.y1.join(t,i),o=n.get(r);if(void 0===o)throw new Error("Assertion failed: Expected the subchild to have been registered");if(!("target"in o))throw new Error("Assertion failed: Expected the leaf junction to be a package");s(`${e}/${i}`,o)}}return super.finalizeInstallWithPnp(e)}}const ie=e=>A.y1.join(e.cwd,".pnp.js"),Ae={configuration:{nmHoistingLimits:{description:"Prevent packages can be hoisted past specific levels",type:i.a2.STRING,values:[Q.WORKSPACES,Q.DEPENDENCIES,Q.NONE],default:"none"}},linkers:[class{supportsPackage(e,t){return"node-modules"===t.project.configuration.get("nodeLinker")}async findPackageLocation(e,t){const r=t.project.tryWorkspaceByLocator(e);if(r)return r.cwd;const n=await z(t.project,{unrollAliases:!0});if(null===n)throw new G.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");const i=n.locatorMap.get(o.structUtils.stringifyLocator(e));if(!i)throw new G.UsageError(`Couldn't find ${o.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);return i.locations[0]}async findPackageLocator(e,t){const r=await z(t.project,{unrollAliases:!0});if(null===r)return null;const{locationRoot:n,segments:i}=V(A.y1.resolve(e),{skipPrefix:t.project.cwd});let s=r.locationTree.get(n);if(!s)return null;let a=s.locator;for(const e of i){if(s=s.children.get(e),!s)break;a=s.locator||a}return o.structUtils.parseLocator(a)}makeInstaller(e){return new q({...e,skipIncompatiblePackageLinking:!0})}},re]}},33671:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>T});var n=r(27122),i=r(36370),A=r(95397),o=r(40376),s=r(32741),a=r(35691),c=r(15815),g=r(92659),l=r(86717),u=r(40822),h=r(85622),p=r.n(h),f=r(53887),d=r.n(f),C=r(31669);class I extends A.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t}=await o.I.find(e,this.context.cwd),r=void 0!==this.fields?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,i=[];let A=!1;const h=await c.Pk.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async n=>{for(const o of this.packages){let c;if("."===o){const e=t.topLevelWorkspace;if(!e.manifest.name)throw new u.UsageError("Missing 'name' field in "+p().join(e.cwd,"package.json"));c=s.structUtils.makeDescriptor(e.manifest.name,"unknown")}else c=s.structUtils.parseDescriptor(o);const h=l.npmHttpUtils.getIdentUrl(c);let f;try{f=E(await l.npmHttpUtils.get(h,{configuration:e,ident:c,jsonResponse:!0}))}catch(e){throw"HTTPError"!==e.name?e:404===e.response.statusCode?new a.lk(g.b.EXCEPTION,"Package not found"):new a.lk(g.b.EXCEPTION,e.toString())}const C=Object.keys(f.versions).sort(d().compareLoose);let I=f["dist-tags"].latest||C[C.length-1];if(d().validRange(c.range)){const t=d().maxSatisfying(C,c.range);null!==t?I=t:(n.reportWarning(g.b.UNNAMED,`Unmet range ${s.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),A=!0)}else"unknown"!==c.range&&(n.reportWarning(g.b.UNNAMED,`Invalid range ${s.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),A=!0);const m=f.versions[I],B={...f,...m,version:I,versions:C};let y;if(null!==r){y={};for(const t of r){const r=B[t];void 0!==r?y[t]=r:(n.reportWarning(g.b.EXCEPTION,`The '${t}' field doesn't exist inside ${s.structUtils.prettyIdent(e,c)}'s informations`),A=!0)}}else this.json||(delete B.dist,delete B.readme,delete B.users),y=B;n.reportJson(y),this.json||i.push(y)}});C.inspect.styles.name="cyan";for(const e of i)(e!==i[0]||A)&&this.context.stdout.write("\n"),this.context.stdout.write((0,C.inspect)(e,{depth:1/0,colors:!0,compact:!1})+"\n");return h.exitCode()}}function E(e){if(Array.isArray(e)){const t=[];for(let r of e)r=E(r),r&&t.push(r);return t}if("object"==typeof e&&null!==e){const t={};for(const r of Object.keys(e)){if(r.startsWith("_"))continue;const n=E(e[r]);n&&(t[r]=n)}return t}return e||null}I.usage=u.Command.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]}),(0,i.gn)([u.Command.Rest()],I.prototype,"packages",void 0),(0,i.gn)([u.Command.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"})],I.prototype,"fields",void 0),(0,i.gn)([u.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],I.prototype,"json",void 0),(0,i.gn)([u.Command.Path("npm","info")],I.prototype,"execute",null);var m=r(61899);class B extends A.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=await y({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await c.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{const i=await async function({registry:e,report:t,stdin:r,stdout:n}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};t.reportInfo(g.b.UNNAMED,"Logging in to "+e);let i=!1;e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(g.b.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),i=!0);t.reportSeparator();const{username:A,password:o}=await(0,m.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:n},{type:"password",name:"password",message:i?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:n}]);return t.reportSeparator(),{name:A,password:o}}({registry:t,report:r,stdin:this.context.stdin,stdout:this.context.stdout}),A="/-/user/org.couchdb.user:"+encodeURIComponent(i.name),o=await l.npmHttpUtils.put(A,i,{attemptedAs:i.name,configuration:e,registry:t,jsonResponse:!0,authType:l.npmHttpUtils.AuthType.NO_AUTH});return await async function(e,t,{configuration:r,scope:i}){const A=e=>r=>{const n=s.miscUtils.isIndexableObject(r)?r:{},i=n[e],A=s.miscUtils.isIndexableObject(i)?i:{};return{...n,[e]:{...A,npmAuthToken:t}}},o=i?{npmScopes:A(i)}:{npmRegistries:A(e)};return await n.VK.updateHomeConfiguration(o)}(t,o.token,{configuration:e,scope:this.scope}),r.reportInfo(g.b.UNNAMED,"Successfully logged in")})).exitCode()}}async function y({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?l.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?l.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?l.npmConfigUtils.getPublishRegistry((await(0,A.openWorkspace)(r,n)).manifest,{configuration:r}):l.npmConfigUtils.getDefaultRegistry({configuration:r})}B.usage=u.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]}),(0,i.gn)([u.Command.String("-s,--scope",{description:"Login to the registry configured for a given scope"})],B.prototype,"scope",void 0),(0,i.gn)([u.Command.Boolean("--publish",{description:"Login to the publish registry"})],B.prototype,"publish",void 0),(0,i.gn)([u.Command.Path("npm","login")],B.prototype,"execute",null);const w=new Set(["npmAuthIdent","npmAuthToken"]);class Q extends A.BaseCommand{constructor(){super(...arguments),this.publish=!1,this.all=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=async()=>{var t;const r=await y({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),i=await n.VK.find(this.context.cwd,this.context.plugins),A=s.structUtils.makeIdent(null!==(t=this.scope)&&void 0!==t?t:null,"pkg");return!l.npmConfigUtils.getAuthConfiguration(r,{configuration:i,ident:A}).get("npmAuthToken")};return(await c.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{if(this.all&&(await async function(){const e=e=>{let t=!1;const r=s.miscUtils.isIndexableObject(e)?{...e}:{};r.npmAuthToken&&(delete r.npmAuthToken,t=!0);for(const e of Object.keys(r))v(r,e)&&(t=!0);if(0!==Object.keys(r).length)return t?r:e};return await n.VK.updateHomeConfiguration({npmRegistries:e,npmScopes:e})}(),r.reportInfo(g.b.UNNAMED,"Successfully logged out from everything")),this.scope)return await b("npmScopes",this.scope),void(await t()?r.reportInfo(g.b.UNNAMED,"Successfully logged out from "+this.scope):r.reportWarning(g.b.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it"));const i=await y({configuration:e,cwd:this.context.cwd,publish:this.publish});await b("npmRegistries",i),await t()?r.reportInfo(g.b.UNNAMED,"Successfully logged out from "+i):r.reportWarning(g.b.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}}function v(e,t){const r=e[t];if(!s.miscUtils.isIndexableObject(r))return!1;const n=new Set(Object.keys(r));if([...w].every(e=>!n.has(e)))return!1;for(const e of w)n.delete(e);if(0===n.size)return e[t]=void 0,!0;const i={...r};for(const e of w)delete i[e];return e[t]=i,!0}async function b(e,t){return await n.VK.updateHomeConfiguration({[e]:e=>{const r=s.miscUtils.isIndexableObject(e)?e:{};if(!Object.prototype.hasOwnProperty.call(r,t))return e;const n=r[t],i=s.miscUtils.isIndexableObject(n)?n:{},A=new Set(Object.keys(i));if([...w].every(e=>!A.has(e)))return e;for(const e of w)A.delete(e);if(0===A.size){if(1===Object.keys(r).length)return;return{...r,[t]:void 0}}const o={};for(const e of w)o[e]=void 0;return{...r,[t]:{...i,...o}}}})}Q.usage=u.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]}),(0,i.gn)([u.Command.String("-s,--scope",{description:"Logout of the registry configured for a given scope"})],Q.prototype,"scope",void 0),(0,i.gn)([u.Command.Boolean("--publish",{description:"Logout of the publish registry"})],Q.prototype,"publish",void 0),(0,i.gn)([u.Command.Boolean("-A,--all",{description:"Logout of all registries"})],Q.prototype,"all",void 0),(0,i.gn)([u.Command.Path("npm","logout")],Q.prototype,"execute",null);var D=r(5973),S=r(76417),k=r(10129),M=r(78835);class N extends A.BaseCommand{constructor(){super(...arguments),this.tag="latest",this.tolerateRepublish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await o.I.find(e,this.context.cwd);if(!r)throw new A.WorkspaceRequiredError(t.cwd,this.context.cwd);if(r.manifest.private)throw new u.UsageError("Private workspaces cannot be published");if(null===r.manifest.name||null===r.manifest.version)throw new u.UsageError("Workspaces must have valid names and versions to be published on an external registry");await t.restoreInstallState();const i=r.manifest.name,h=r.manifest.version,p=l.npmConfigUtils.getPublishRegistry(r.manifest,{configuration:e});return(await c.Pk.start({configuration:e,stdout:this.context.stdout},async t=>{if(this.tolerateRepublish)try{const r=await l.npmHttpUtils.get(l.npmHttpUtils.getIdentUrl(i),{configuration:e,registry:p,ident:i,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(r,"versions"))throw new a.lk(g.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(r.versions,h))return void t.reportWarning(g.b.UNNAMED,`Registry already knows about version ${h}; skipping.`)}catch(e){if("HTTPError"!==e.name)throw e;if(404!==e.response.statusCode)throw new a.lk(g.b.NETWORK_ERROR,`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`)}await s.scriptUtils.maybeExecuteWorkspaceLifecycleScript(r,"prepublish",{report:t}),await D.packUtils.prepareForPack(r,{report:t},async()=>{const n=await D.packUtils.genPackList(r);for(const e of n)t.reportInfo(null,e);const A=await D.packUtils.genPackStream(r,n),o=await s.miscUtils.bufferStream(A),a=await async function(e,t,{access:r,tag:n,registry:i}){const A=e.project.configuration,o=e.manifest.name,a=e.manifest.version,c=s.structUtils.stringifyIdent(o),g=(0,S.createHash)("sha1").update(t).digest("hex"),l=k.Sd(t).toString();void 0===r&&(r=e.manifest.publishConfig&&"string"==typeof e.manifest.publishConfig.access?e.manifest.publishConfig.access:null!==A.get("npmPublishAccess")?A.get("npmPublishAccess"):o.scope?"restricted":"public");const u=await D.packUtils.genPackageManifest(e),h=`${c}-${a}.tgz`,p=new M.URL(`${c}/-/${h}`,i);return{_id:c,_attachments:{[h]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}},name:c,access:r,"dist-tags":{[n]:a},versions:{[a]:{...u,_id:`${c}@${a}`,name:c,version:a,dist:{shasum:g,integrity:l,tarball:p.toString()}}}}}(r,o,{access:this.access,tag:this.tag,registry:p});try{await l.npmHttpUtils.put(l.npmHttpUtils.getIdentUrl(i),a,{configuration:e,registry:p,ident:i,jsonResponse:!0})}catch(e){if("HTTPError"!==e.name)throw e;{const r=e.response.body&&e.response.body.error?e.response.body.error:`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`;t.reportError(g.b.NETWORK_ERROR,r)}}}),t.hasErrors()||t.reportInfo(g.b.UNNAMED,"Package archive published")})).exitCode()}}N.usage=u.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]}),(0,i.gn)([u.Command.String("--access",{description:"The access for the published package (public or restricted)"})],N.prototype,"access",void 0),(0,i.gn)([u.Command.String("--tag",{description:"The tag on the registry that the package should be attached to"})],N.prototype,"tag",void 0),(0,i.gn)([u.Command.Boolean("--tolerate-republish",{description:"Warn and exit when republishing an already existing version of a package"})],N.prototype,"tolerateRepublish",void 0),(0,i.gn)([u.Command.Path("npm","publish")],N.prototype,"execute",null);var F=r(46009);class R extends A.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await o.I.find(e,this.context.cwd);let i;if(void 0!==this.package)i=s.structUtils.parseIdent(this.package);else{if(!r)throw new A.WorkspaceRequiredError(t.cwd,this.context.cwd);if(!r.manifest.name)throw new u.UsageError("Missing 'name' field in "+F.y1.join(r.cwd,F.QS.manifest));i=r.manifest.name}const a=await K(i,e),c={children:s.miscUtils.sortMap(Object.entries(a),([e])=>e).map(([e,t])=>({value:s.formatUtils.tuple(s.formatUtils.Type.RESOLUTION,{descriptor:s.structUtils.makeDescriptor(i,e),locator:s.structUtils.makeLocator(i,t)})}))};return s.treeUtils.emitTree(c,{configuration:e,json:this.json,stdout:this.context.stdout})}}async function K(e,t){const r=`/-/package${l.npmHttpUtils.getIdentUrl(e)}/dist-tags`;return l.npmHttpUtils.get(r,{configuration:t,ident:e,jsonResponse:!0}).catch(e=>{throw"HTTPError"!==e.name?e:404===e.response.statusCode?new a.lk(g.b.EXCEPTION,"Package not found"):new a.lk(g.b.EXCEPTION,e.toString())})}R.usage=u.Command.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:"\n This command will list all tags of a package from the npm registry.\n\n If the package is not specified, Yarn will default to the current workspace.\n ",examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]}),(0,i.gn)([u.Command.String({required:!1})],R.prototype,"package",void 0),(0,i.gn)([u.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],R.prototype,"json",void 0),(0,i.gn)([u.Command.Path("npm","tag","list")],R.prototype,"execute",null);class L extends A.BaseCommand{async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await o.I.find(e,this.context.cwd);if(!r)throw new A.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=s.structUtils.parseDescriptor(this.package,!0),a=i.range;if(!d().valid(a))throw new u.UsageError(`The range ${s.formatUtils.pretty(e,i.range,s.formatUtils.Type.RANGE)} must be a valid semver version`);const h=l.npmConfigUtils.getPublishRegistry(r.manifest,{configuration:e}),p=s.formatUtils.pretty(e,i,s.formatUtils.Type.IDENT),f=s.formatUtils.pretty(e,a,s.formatUtils.Type.RANGE),C=s.formatUtils.pretty(e,this.tag,s.formatUtils.Type.CODE);return(await c.Pk.start({configuration:e,stdout:this.context.stdout},async t=>{const r=await K(i,e);Object.prototype.hasOwnProperty.call(r,this.tag)&&r[this.tag]===a&&t.reportWarning(g.b.UNNAMED,`Tag ${C} is already set to version ${f}`);try{const t=`/-/package${l.npmHttpUtils.getIdentUrl(i)}/dist-tags/${encodeURIComponent(this.tag)}`;await l.npmHttpUtils.put(t,a,{configuration:e,registry:h,ident:i,jsonRequest:!0,jsonResponse:!0})}catch(e){if("HTTPError"!==e.name)throw e;{const r=e.response.body&&e.response.body.error?e.response.body.error:`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`;t.reportError(g.b.NETWORK_ERROR,r)}}t.hasErrors()||t.reportInfo(g.b.UNNAMED,`Tag ${C} added to version ${f} of package ${p}`)})).exitCode()}}L.usage=u.Command.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:"\n This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.\n ",examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]}),(0,i.gn)([u.Command.String()],L.prototype,"package",void 0),(0,i.gn)([u.Command.String()],L.prototype,"tag",void 0),(0,i.gn)([u.Command.Path("npm","tag","add")],L.prototype,"execute",null);var x=r(15966);class P extends A.BaseCommand{async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await o.I.find(e,this.context.cwd);if(!r)throw new A.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=s.structUtils.parseIdent(this.package),a=l.npmConfigUtils.getPublishRegistry(r.manifest,{configuration:e}),h=s.formatUtils.pretty(e,this.tag,s.formatUtils.Type.CODE),p=s.formatUtils.pretty(e,i,s.formatUtils.Type.IDENT),f=await K(i,e);if(!Object.prototype.hasOwnProperty.call(f,this.tag))throw new u.UsageError(`${h} is not a tag of package ${p}`);return(await c.Pk.start({configuration:e,stdout:this.context.stdout},async t=>{try{const t=`/-/package${l.npmHttpUtils.getIdentUrl(i)}/dist-tags/${encodeURIComponent(this.tag)}`;await l.npmHttpUtils.del(t,{configuration:e,registry:a,ident:i,jsonResponse:!0})}catch(e){if("HTTPError"!==e.name)throw e;{const r=e.response.body&&e.response.body.error?e.response.body.error:`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`;t.reportError(g.b.NETWORK_ERROR,r)}}t.hasErrors()||t.reportInfo(g.b.UNNAMED,`Tag ${h} removed from package ${p}`)})).exitCode()}}P.schema=x.object().shape({tag:x.string().notOneOf(["latest"])}),P.usage=u.Command.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:"\n This command will remove a tag from a package from the npm registry.\n ",examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]}),(0,i.gn)([u.Command.String()],P.prototype,"package",void 0),(0,i.gn)([u.Command.String()],P.prototype,"tag",void 0),(0,i.gn)([u.Command.Path("npm","tag","remove")],P.prototype,"execute",null);class U extends A.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins);let t;t=this.scope&&this.publish?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e}):this.publish?l.npmConfigUtils.getPublishRegistry((await(0,A.openWorkspace)(e,this.context.cwd)).manifest,{configuration:e}):l.npmConfigUtils.getDefaultRegistry({configuration:e});return(await c.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{try{const n=await l.npmHttpUtils.get("/-/whoami",{configuration:e,registry:t,authType:l.npmHttpUtils.AuthType.ALWAYS_AUTH,jsonResponse:!0});r.reportInfo(g.b.UNNAMED,n.username)}catch(e){if("HTTPError"!==e.name)throw e;401===e.response.statusCode||403===e.response.statusCode?r.reportError(g.b.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired"):r.reportError(g.b.AUTHENTICATION_INVALID,e.toString())}})).exitCode()}}U.usage=u.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]}),(0,i.gn)([u.Command.String("-s,--scope",{description:"Print username for the registry configured for a given scope"})],U.prototype,"scope",void 0),(0,i.gn)([u.Command.Boolean("--publish",{description:"Print username for the publish registry"})],U.prototype,"publish",void 0),(0,i.gn)([u.Command.Path("npm","whoami")],U.prototype,"execute",null);const T={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:n.a2.STRING,default:null}},commands:[I,B,Q,N,L,R,P,U]}},86717:(e,t,r)=>{"use strict";r.r(t),r.d(t,{npmConfigUtils:()=>n,npmHttpUtils:()=>i,default:()=>T});var n={};r.r(n),r.d(n,{RegistryType:()=>c,getAuthConfiguration:()=>B,getDefaultRegistry:()=>I,getPublishRegistry:()=>d,getRegistryConfiguration:()=>E,getScopeConfiguration:()=>m,getScopeRegistry:()=>C,normalizeRegistry:()=>f});var i={};r.r(i),r.d(i,{AuthType:()=>g,del:()=>b,get:()=>Q,getIdentUrl:()=>w,handleInvalidAuthenticationError:()=>y,put:()=>v});var A=r(27122),o=r(32741),s=r(53887),a=r.n(s);var c,g,l=r(35691),u=r(92659),h=r(61899),p=r(78835);function f(e){return e.replace(/\/$/,"")}function d(e,{configuration:t}){return e.publishConfig&&e.publishConfig.registry?f(e.publishConfig.registry):e.name?C(e.name.scope,{configuration:t,type:c.PUBLISH_REGISTRY}):I({configuration:t,type:c.PUBLISH_REGISTRY})}function C(e,{configuration:t,type:r=c.FETCH_REGISTRY}){const n=m(e,{configuration:t});if(null===n)return I({configuration:t,type:r});const i=n.get(r);return null===i?I({configuration:t,type:r}):f(i)}function I({configuration:e,type:t=c.FETCH_REGISTRY}){const r=e.get(t);return f(null!==r?r:e.get(c.FETCH_REGISTRY))}function E(e,{configuration:t}){const r=t.get("npmRegistries"),n=r.get(e);if(void 0!==n)return n;const i=r.get(e.replace(/^[a-z]+:/,""));return void 0!==i?i:null}function m(e,{configuration:t}){if(null===e)return null;const r=t.get("npmScopes").get(e);return r||null}function B(e,{configuration:t,ident:r}){const n=r&&m(r.scope,{configuration:t});if((null==n?void 0:n.get("npmAuthIdent"))||(null==n?void 0:n.get("npmAuthToken")))return n;return E(e,{configuration:t})||t}async function y(e,{attemptedAs:t,registry:r,headers:n,configuration:i}){if("HTTPError"===e.name&&401===e.response.statusCode)throw new l.lk(u.b.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof t?"as "+await async function(e,t,{configuration:r}){var n;if(void 0===t||void 0===t.authorization)return"an anonymous user";try{const i=await o.httpUtils.get(new p.URL(e+"/-/whoami").href,{configuration:r,headers:t,jsonResponse:!0});return null!==(n=i.username)&&void 0!==n?n:"an unknown user"}catch(e){return"an unknown user"}}(r,n,{configuration:i}):"attempted as "+t})`)}function w(e){return e.scope?`/@${e.scope}%2f${e.name}`:"/"+e.name}async function Q(e,{configuration:t,headers:r,ident:n,authType:i,registry:A,...s}){if(n&&void 0===A&&(A=C(n.scope,{configuration:t})),n&&n.scope&&void 0===i&&(i=g.BEST_EFFORT),"string"!=typeof A)throw new Error("Assertion failed: The registry should be a string");const a=D(A,{authType:i,configuration:t,ident:n});let c;a&&(r={...r,authorization:a});try{c=new p.URL(e)}catch(t){c=new p.URL(A+e)}try{return await o.httpUtils.get(c.href,{configuration:t,headers:r,...s})}catch(e){throw await y(e,{registry:A,configuration:t,headers:r}),e}}async function v(e,t,{attemptedAs:r,configuration:n,headers:i,ident:A,authType:s=g.ALWAYS_AUTH,registry:a,...c}){if(A&&void 0===a&&(a=C(A.scope,{configuration:n})),"string"!=typeof a)throw new Error("Assertion failed: The registry should be a string");const l=D(a,{authType:s,configuration:n,ident:A});l&&(i={...i,authorization:l});try{return await o.httpUtils.put(a+e,t,{configuration:n,headers:i,...c})}catch(A){if(!k(A))throw await y(A,{attemptedAs:r,registry:a,configuration:n,headers:i}),A;const s=await S(),g={...i,...M(s)};try{return await o.httpUtils.put(`${a}${e}`,t,{configuration:n,headers:g,...c})}catch(e){throw await y(e,{attemptedAs:r,registry:a,configuration:n,headers:i}),e}}}async function b(e,{attemptedAs:t,configuration:r,headers:n,ident:i,authType:A=g.ALWAYS_AUTH,registry:s,...a}){if(i&&void 0===s&&(s=C(i.scope,{configuration:r})),"string"!=typeof s)throw new Error("Assertion failed: The registry should be a string");const c=D(s,{authType:A,configuration:r,ident:i});c&&(n={...n,authorization:c});try{return await o.httpUtils.del(s+e,{configuration:r,headers:n,...a})}catch(i){if(!k(i))throw await y(i,{attemptedAs:t,registry:s,configuration:r,headers:n}),i;const A=await S(),c={...n,...M(A)};try{return await o.httpUtils.del(`${s}${e}`,{configuration:r,headers:c,...a})}catch(e){throw await y(e,{attemptedAs:t,registry:s,configuration:r,headers:n}),e}}}function D(e,{authType:t=g.CONFIGURATION,configuration:r,ident:n}){const i=B(e,{configuration:r,ident:n}),A=function(e,t){switch(t){case g.CONFIGURATION:return e.get("npmAlwaysAuth");case g.BEST_EFFORT:case g.ALWAYS_AUTH:return!0;case g.NO_AUTH:return!1;default:throw new Error("Unreachable")}}(i,t);if(!A)return null;if(i.get("npmAuthToken"))return"Bearer "+i.get("npmAuthToken");if(i.get("npmAuthIdent"))return"Basic "+i.get("npmAuthIdent");if(A&&t!==g.BEST_EFFORT)throw new l.lk(u.b.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}async function S(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";const{otp:e}=await(0,h.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return e}function k(e){if("HTTPError"!==e.name)return!1;try{return e.response.headers["www-authenticate"].split(/,\s*/).map(e=>e.toLowerCase()).includes("otp")}catch(e){return!1}}function M(e){return{"npm-otp":e}}!function(e){e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"}(c||(c={})),function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"}(g||(g={}));class N{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const r=new p.URL(e.reference);return!!a().valid(r.pathname)&&!r.searchParams.has("__archiveUrl")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,A]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,o.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote registry"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:o.structUtils.getIdentVendorPath(e),checksum:A}}async fetchFromNetwork(e,t){let r;try{r=await Q(N.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch(n){r=await Q(N.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await o.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:o.structUtils.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:r}){let n=C(e.scope,{configuration:r});const i=N.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),(t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"))===n+i||t===n+i.replace(/%2f/g,"/")}static getLocatorUrl(e){const t=a().clean(e.reference.slice("npm:".length));if(null===t)throw new l.lk(u.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${w(e)}/-/${e.name}-${t}.tgz`}}var F=r(46611),R=r(32485);const K=o.structUtils.makeIdent(null,"node-gyp"),L=/\b(node-gyp|prebuild-install)\b/;var x=r(52779);const P={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:A.a2.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:A.a2.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:A.a2.SECRET,default:null}},U={npmPublishRegistry:{description:"Registry to push packages to",type:A.a2.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:A.a2.STRING,default:"https://registry.yarnpkg.com"}},T={configuration:{...P,...U,npmScopes:{description:"Settings per package scope",type:A.a2.MAP,valueDefinition:{description:"",type:A.a2.SHAPE,properties:{...P,...U}}},npmRegistries:{description:"Settings per registry",type:A.a2.MAP,normalizeKeys:f,valueDefinition:{description:"",type:A.a2.SHAPE,properties:{...P}}}},fetchers:[class{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r,params:n}=o.structUtils.parseRange(e.reference);return!!a().valid(r)&&(null!==n&&"string"==typeof n.__archiveUrl)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,A]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,o.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:o.structUtils.getIdentVendorPath(e),checksum:A}}async fetchFromNetwork(e,t){const{params:r}=o.structUtils.parseRange(e.reference);if(null===r||"string"!=typeof r.__archiveUrl)throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");const n=await Q(r.__archiveUrl,{configuration:t.project.configuration,ident:e});return await o.tgzUtils.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:o.structUtils.getIdentVendorPath(e),stripComponents:1})}},N],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!o.structUtils.tryParseDescriptor(e.range.slice("npm:".length),!0)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){const r=o.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return t.resolver.getResolutionDependencies(r,t)}async getCandidates(e,t,r){const n=o.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return await r.resolver.getCandidates(n,t,r)}async getSatisfying(e,t,r){const n=o.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return r.resolver.getSatisfying(n,t,r)}resolve(e,t){throw new Error("Unreachable")}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!o.semverUtils.F(e.range.slice("npm:".length))}supportsLocator(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r}=o.structUtils.parseRange(e.reference);return!!a().valid(r)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=o.semverUtils.F(e.range.slice("npm:".length));if(null===n)throw new Error("Expected a valid range, got "+e.range.slice("npm:".length));const i=await Q(w(e),{configuration:r.project.configuration,ident:e,jsonResponse:!0}),A=Object.keys(i.versions).map(e=>new(a().SemVer)(e)).filter(e=>n.test(e)),s=A.filter(e=>!i.versions[e.raw].deprecated),c=s.length>0?s:A;return c.sort((e,t)=>-e.compare(t)),c.map(t=>{const n=o.structUtils.makeLocator(e,"npm:"+t.raw),A=i.versions[t.raw].dist.tarball;return N.isConventionalTarballUrl(n,A,{configuration:r.project.configuration})?n:o.structUtils.bindLocator(n,{__archiveUrl:A})})}async getSatisfying(e,t,r){const n=o.semverUtils.F(e.range.slice("npm:".length));if(null===n)throw new Error("Expected a valid range, got "+e.range.slice("npm:".length));return t.map(e=>{try{return new(a().SemVer)(e.slice("npm:".length))}catch(e){return null}}).filter(e=>null!==e).filter(e=>n.test(e)).sort((e,t)=>-e.compare(t)).map(t=>o.structUtils.makeLocator(e,"npm:"+t.raw))}async resolve(e,t){const{selector:r}=o.structUtils.parseRange(e.reference),n=a().clean(r);if(null===n)throw new l.lk(u.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");const i=await Q(w(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(i,"versions"))throw new l.lk(u.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(i.versions,n))throw new l.lk(u.b.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);const A=new F.G;if(A.load(i.versions[n]),!A.dependencies.has(K.identHash)&&!A.peerDependencies.has(K.identHash))for(const r of A.scripts.values())if(r.match(L)){A.dependencies.set(K.identHash,o.structUtils.makeDescriptor(K,"latest")),t.report.reportWarning(u.b.NODE_GYP_INJECTED,o.structUtils.prettyLocator(t.project.configuration,e)+": Implicit dependencies on node-gyp are discouraged");break}return"string"==typeof A.raw.deprecated&&t.report.reportWarning(u.b.DEPRECATED_PACKAGE,`${o.structUtils.prettyLocator(t.project.configuration,e)} is deprecated: ${A.raw.deprecated}`),{...e,version:n,languageName:"node",linkType:R.U.HARD,dependencies:A.dependencies,peerDependencies:A.peerDependencies,dependenciesMeta:A.dependenciesMeta,peerDependenciesMeta:A.peerDependenciesMeta,bin:A.bin}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!x.c.test(e.range.slice("npm:".length))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice("npm:".length),i=await Q(w(e),{configuration:r.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(i,"dist-tags"))throw new l.lk(u.b.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');const A=i["dist-tags"];if(!Object.prototype.hasOwnProperty.call(A,n))throw new l.lk(u.b.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);const s=A[n],a=o.structUtils.makeLocator(e,"npm:"+s),c=i.versions[s].dist.tarball;return N.isConventionalTarballUrl(a,c,{configuration:r.project.configuration})?[a]:[o.structUtils.bindLocator(a,{__archiveUrl:c})]}async getSatisfying(e,t,r){return null}async resolve(e,t){throw new Error("Unreachable")}}]}},5973:(e,t,r)=>{"use strict";r.r(t),r.d(t,{packUtils:()=>n,default:()=>x});var n={};r.r(n),r.d(n,{genPackList:()=>S,genPackStream:()=>b,genPackageManifest:()=>D,hasPackScripts:()=>Q,prepareForPack:()=>v});var i=r(32741),A=r(35691),o=r(92659),s=r(36370),a=r(95397),c=r(27122),g=r(40376),l=r(28148),u=r(33720),h=r(15815),p=r(46009),f=r(56537),d=r(40822),C=r(10489),I=r(2401),E=r.n(I),m=r(59938),B=r(78761);const y=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],w=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function Q(e){return!!i.scriptUtils.hasWorkspaceScript(e,"prepack")||!!i.scriptUtils.hasWorkspaceScript(e,"postpack")}async function v(e,{report:t},r){await i.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"prepack",{report:t});try{await r()}finally{await i.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"postpack",{report:t})}}async function b(e,t){var r,n;void 0===t&&(t=await S(e));const i=new Set;for(const t of null!==(n=null===(r=e.manifest.publishConfig)||void 0===r?void 0:r.executableFiles)&&void 0!==n?n:new Set)i.add(p.y1.normalize(t));for(const t of e.manifest.bin.values())i.add(p.y1.normalize(t));const A=m.P();process.nextTick(async()=>{for(const r of t){const t=p.y1.normalize(r),n=p.y1.resolve(e.cwd,t),o=p.y1.join("package",t),s=await f.xfs.lstatPromise(n),a={name:o,mtime:new Date(3155328e5)},c=i.has(t)?493:420;let g,l;const u=new Promise((e,t)=>{g=e,l=t}),h=e=>{e?l(e):g()};if(s.isFile()){let r;r="package.json"===t?Buffer.from(JSON.stringify(await D(e),null,2)):await f.xfs.readFilePromise(n),A.entry({...a,mode:c,type:"file"},r,h)}else s.isSymbolicLink()&&A.entry({...a,mode:c,type:"symlink",linkname:await f.xfs.readlinkPromise(n)},h);await u}A.finalize()});const o=(0,B.createGzip)();return A.pipe(o),o}async function D(e){const t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(e=>e.beforeWorkspacePacking,e,t),t}async function S(e){var t,r,n,i,A,o,s,a;const c=e.project,g=c.configuration,l={accept:[],reject:[]};for(const e of w)l.reject.push(e);for(const e of y)l.accept.push(e);l.reject.push(g.get("rcFilename"));const u=t=>{if(null===t||!t.startsWith(e.cwd+"/"))return;const r=p.y1.relative(e.cwd,t),n=p.y1.resolve(p.LZ.root,r);l.reject.push(n)};u(p.y1.resolve(c.cwd,g.get("lockfileFilename"))),u(g.get("bstatePath")),u(g.get("cacheFolder")),u(g.get("globalFolder")),u(g.get("installStatePath")),u(g.get("virtualFolder")),u(g.get("yarnPath")),await g.triggerHook(e=>e.populateYarnPaths,c,e=>{u(e)});for(const t of c.workspaces){const r=p.y1.relative(e.cwd,t.cwd);""===r||r.match(/^(\.\.)?\//)||l.reject.push("/"+r)}const h={accept:[],reject:[]},f=null!==(r=null===(t=e.manifest.publishConfig)||void 0===t?void 0:t.main)&&void 0!==r?r:e.manifest.main,d=null!==(i=null===(n=e.manifest.publishConfig)||void 0===n?void 0:n.module)&&void 0!==i?i:e.manifest.module,I=null!==(o=null===(A=e.manifest.publishConfig)||void 0===A?void 0:A.browser)&&void 0!==o?o:e.manifest.browser,E=null!==(a=null===(s=e.manifest.publishConfig)||void 0===s?void 0:s.bin)&&void 0!==a?a:e.manifest.bin;null!=f&&h.accept.push(p.y1.resolve(p.LZ.root,f)),null!=d&&h.accept.push(p.y1.resolve(p.LZ.root,d)),"string"==typeof I&&h.accept.push(p.y1.resolve(p.LZ.root,I));for(const e of E.values())h.accept.push(p.y1.resolve(p.LZ.root,e));if(I instanceof Map)for(const[e,t]of I.entries())h.accept.push(p.y1.resolve(p.LZ.root,e)),"string"==typeof t&&h.accept.push(p.y1.resolve(p.LZ.root,t));const m=null!==e.manifest.files;if(m){h.reject.push("/*");for(const t of e.manifest.files)M(h.accept,t,{cwd:p.LZ.root})}return await async function(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){const i=[],A=new C.n(e),o=[[p.LZ.root,[n]]];for(;o.length>0;){const[e,n]=o.pop(),s=await A.lstatPromise(e);if(!N(e,{globalList:r,ignoreLists:s.isDirectory()?null:n}))if(s.isDirectory()){const i=await A.readdirPromise(e);let s=!1,a=!1;if(!t||e!==p.LZ.root)for(const e of i)s=s||".gitignore"===e,a=a||".npmignore"===e;const c=a?await k(A,e,".npmignore"):s?await k(A,e,".gitignore"):null;let g=null!==c?[c].concat(n):n;N(e,{globalList:r,ignoreLists:n})&&(g=[...n,{accept:[],reject:["**/*"]}]);for(const t of i)o.push([p.y1.resolve(e,t),g])}else i.push(p.y1.relative(p.LZ.root,e))}return i.sort()}(e.cwd,{hasExplicitFileList:m,globalList:l,ignoreList:h})}async function k(e,t,r){const n={accept:[],reject:[]},i=await e.readFilePromise(p.y1.join(t,r),"utf8");for(const e of i.split(/\n/g))M(n.reject,e,{cwd:t});return n}function M(e,t,{cwd:r}){const n=t.trim();""!==n&&"#"!==n[0]&&e.push(function(e,{cwd:t}){const r="!"===e[0];return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=p.y1.resolve(t,e)),r&&(e="!"+e),e}(n,{cwd:r}))}function N(e,{globalList:t,ignoreLists:r}){if(F(e,t.accept))return!1;if(F(e,t.reject))return!0;if(null!==r)for(const t of r){if(F(e,t.accept))return!1;if(F(e,t.reject))return!0}return!1}function F(e,t){let r=t;const n=[];for(let e=0;e{await v(r,{report:t},async()=>{t.reportJson({base:r.cwd});const e=await S(r);for(const r of e)t.reportInfo(null,r),t.reportJson({location:r});if(!this.dryRun){const t=await b(r,e),i=f.xfs.createWriteStream(n);t.pipe(i),await new Promise(e=>{i.on("finish",e)})}}),this.dryRun||(t.reportInfo(o.b.UNNAMED,"Package archive generated in "+i.formatUtils.pretty(e,n,i.formatUtils.Type.PATH)),t.reportJson({output:n}))})).exitCode()}}K.usage=d.Command.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]}),(0,s.gn)([d.Command.Boolean("--install-if-needed",{description:"Run a preliminary `yarn install` if the package contains build scripts"})],K.prototype,"installIfNeeded",void 0),(0,s.gn)([d.Command.Boolean("-n,--dry-run",{description:"Print the file paths without actually generating the package archive"})],K.prototype,"dryRun",void 0),(0,s.gn)([d.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],K.prototype,"json",void 0),(0,s.gn)([d.Command.String("--filename",{hidden:!1,description:"Create the archive at the specified path"}),d.Command.String("-o,--out",{description:"Create the archive at the specified path"})],K.prototype,"out",void 0),(0,s.gn)([d.Command.Path("pack")],K.prototype,"execute",null);const L=["dependencies","devDependencies","peerDependencies"],x={hooks:{beforeWorkspacePacking:(e,t)=>{t.publishConfig&&(t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));const r=e.project;for(const n of L)for(const s of e.manifest.getForScope(n).values()){const e=r.tryWorkspaceByDescriptor(s),a=i.structUtils.parseRange(s.range);if("workspace:"===a.protocol)if(null===e){if(null===r.tryWorkspaceByIdent(s))throw new A.lk(o.b.WORKSPACE_NOT_FOUND,i.structUtils.prettyDescriptor(r.configuration,s)+": No local workspace found for this range")}else{let r;r=i.structUtils.areDescriptorsEqual(s,e.anchoredDescriptor)||"*"===a.selector?e.manifest.version:a.selector,t[n][i.structUtils.stringifyIdent(s)]=r}}}},commands:[K]}},48719:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchUtils:()=>n,default:()=>X});var n={};r.r(n),r.d(n,{applyPatchFile:()=>v,diffFolders:()=>Y,extractPackageToDisk:()=>O,isParentRequired:()=>U,loadPatchFiles:()=>T,makeDescriptor:()=>L,makeLocator:()=>x,parseDescriptor:()=>F,parseLocator:()=>R,parsePatchFile:()=>y});var i=r(27122),A=r(35691),o=r(92659),s=r(32741),a=r(56537),c=r(46009),g=r(90739),l=r(75448),u=r(29486),h=r(33720),p=r(78420);class f extends Error{constructor(e,t){super("Cannot apply hunk #"+(e+1)),this.hunk=t}}const d=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function C(e){return c.y1.relative(c.LZ.root,c.y1.resolve(c.LZ.root,c.cS.toPortablePath(e)))}function I(e){const t=e.trim().match(d);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}var E;!function(e){e.Context="context",e.Insertion="insertion",e.Deletion="deletion"}(E||(E={}));const m={"@":"header","-":E.Deletion,"+":E.Insertion," ":E.Context,"\\":"pragma",undefined:E.Context};function B(e){const t=511&parseInt(e,8);if(420!==t&&493!==t)throw new Error("Unexpected file mode string: "+e);return t}function y(e){const t=e.split(/\n/g);return""===t[t.length-1]&&t.pop(),function(e){const t=[];for(const r of e){const{semverExclusivity:e,diffLineFromPath:n,diffLineToPath:i,oldMode:A,newMode:o,deletedFileMode:a,newFileMode:c,renameFrom:g,renameTo:l,beforeHash:u,afterHash:h,fromPath:p,toPath:f,hunks:d}=r,I=g?"rename":a?"file deletion":c?"file creation":d&&d.length>0?"patch":"mode change";let E=null;switch(I){case"rename":if(!g||!l)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:e,fromPath:C(g),toPath:C(l)}),E=l;break;case"file deletion":{const r=n||p;if(!r)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:e,hunk:d&&d[0]||null,path:C(r),mode:B(a),hash:u})}break;case"file creation":{const r=i||f;if(!r)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:e,hunk:d&&d[0]||null,path:C(r),mode:B(c),hash:h})}break;case"patch":case"mode change":E=f||i;break;default:s.miscUtils.assertNever(I)}E&&A&&o&&A!==o&&t.push({type:"mode change",semverExclusivity:e,path:C(E),oldMode:B(A),newMode:B(o)}),E&&d&&d.length&&t.push({type:"patch",semverExclusivity:e,path:C(E),hunks:d,beforeHash:u,afterHash:h})}return t}(function(e){const t=[];let r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null},n="parsing header",i=null,A=null;function o(){i&&(A&&(i.parts.push(A),A=null),r.hunks.push(i),i=null)}function a(){o(),t.push(r),r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}}for(let t=0;te<0?e:"+"+e;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}async function Q(e,t,r){const n=await e.lstatPromise(t),i=await r();if(void 0!==i&&(t=i),e.lutimesPromise)await e.lutimesPromise(t,n.atime,n.mtime);else{if(n.isSymbolicLink())throw new Error("Cannot preserve the time values of a symlink");await e.utimesPromise(t,n.atime,n.mtime)}}async function v(e,{baseFs:t=new p.S,dryRun:r=!1,version:n=null}={}){for(const i of e)if(null===i.semverExclusivity||null===n||s.semverUtils.v(n,i.semverExclusivity))switch(i.type){case"file deletion":if(r){if(!t.existsSync(i.path))throw new Error("Trying to delete a file that doesn't exist: "+i.path)}else await Q(t,c.y1.dirname(i.path),async()=>{await t.unlinkPromise(i.path)});break;case"rename":if(r){if(!t.existsSync(i.fromPath))throw new Error("Trying to move a file that doesn't exist: "+i.fromPath)}else await Q(t,c.y1.dirname(i.fromPath),async()=>{await Q(t,c.y1.dirname(i.toPath),async()=>{await Q(t,i.fromPath,async()=>(await t.movePromise(i.fromPath,i.toPath),i.toPath))})});break;case"file creation":if(r){if(t.existsSync(i.path))throw new Error("Trying to create a file that already exists: "+i.path)}else{const e=i.hunk?i.hunk.parts[0].lines.join("\n")+(i.hunk.parts[0].noNewlineAtEndOfFile?"":"\n"):"";await t.mkdirpPromise(c.y1.dirname(i.path),{chmod:493,utimes:[315532800,315532800]}),await t.writeFilePromise(i.path,e,{mode:i.mode}),await t.utimesPromise(i.path,315532800,315532800)}break;case"patch":await Q(t,i.path,async()=>{await S(i,{baseFs:t,dryRun:r})});break;case"mode change":{const e=(await t.statPromise(i.path)).mode;if(b(i.newMode)!==b(e))continue;await Q(t,i.path,async()=>{await t.chmodPromise(i.path,i.newMode)})}break;default:s.miscUtils.assertNever(i)}}function b(e){return(64&e)>0}function D(e){return e.replace(/\s+$/,"")}async function S({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){const i=await r.statSync(t).mode,A=(await r.readFileSync(t,"utf8")).split(/\n/),o=[];let a=0,c=0;for(const t of e){const r=Math.max(c,t.header.patched.start+a),n=Math.max(0,r-c),i=Math.max(0,A.length-r-t.header.original.length),s=Math.max(n,i);let g=0,l=0,u=null;for(;g<=s;){if(g<=n&&(l=r-g,u=k(t,A,l),null!==u)){g=-g;break}if(g<=i&&(l=r+g,u=k(t,A,l),null!==u))break;g+=1}if(null===u)throw new f(e.indexOf(t),t);o.push(u),a+=g,c=l+t.header.original.length}if(n)return;let g=0;for(const e of o)for(const t of e)switch(t.type){case"splice":{const e=t.index+g;A.splice(e,t.numToDelete,...t.linesToInsert),g+=t.linesToInsert.length-t.numToDelete}break;case"pop":A.pop();break;case"push":A.push(t.line);break;default:s.miscUtils.assertNever(t)}await r.writeFilePromise(t,A.join("\n"),{mode:i})}function k(e,t,r){const n=[];for(const A of e.parts)switch(A.type){case E.Context:case E.Deletion:for(const e of A.lines){const n=t[r];if(null==n||(i=e,D(n)!==D(i)))return null;r+=1}A.type===E.Deletion&&(n.push({type:"splice",index:r-A.lines.length,numToDelete:A.lines.length,linesToInsert:[]}),A.noNewlineAtEndOfFile&&n.push({type:"push",line:""}));break;case E.Insertion:n.push({type:"splice",index:r,numToDelete:0,linesToInsert:A.lines}),A.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:s.miscUtils.assertNever(A.type)}var i;return n}const M=/^builtin<([^>]+)>$/;function N(e,t){const{source:r,selector:n,params:i}=s.structUtils.parseRange(e);if(null===r)throw new Error("Patch locators must explicitly define their source");const A=n?n.split(/&/).map(e=>c.cS.toPortablePath(e)):[],o=i&&"string"==typeof i.locator?s.structUtils.parseLocator(i.locator):null,a=i&&"string"==typeof i.version?i.version:null;return{parentLocator:o,sourceItem:t(r),patchPaths:A,sourceVersion:a}}function F(e){const{sourceItem:t,...r}=N(e.range,s.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function R(e){const{sourceItem:t,...r}=N(e.reference,s.structUtils.parseLocator);return{...r,sourceLocator:t}}function K({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:i},A){const o=null!==e?{locator:s.structUtils.stringifyLocator(e)}:{},a=void 0!==n?{version:n}:{},c=void 0!==i?{hash:i}:{};return s.structUtils.makeRange({protocol:"patch:",source:A(t),selector:r.join("&"),params:{...a,...c,...o}})}function L(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return s.structUtils.makeLocator(e,K({parentLocator:t,sourceItem:r,patchPaths:n},s.structUtils.stringifyDescriptor))}function x(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:i}){return s.structUtils.makeLocator(e,K({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:i},s.structUtils.stringifyLocator))}function P({onAbsolute:e,onRelative:t,onBuiltin:r},n){const i=n.match(M);return null!==i?r(i[1]):c.y1.isAbsolute(n)?e(n):t(n)}function U(e){return P({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},e)}async function T(e,t,r){const n=null!==e?await r.fetcher.fetch(e,r):null,i=n&&n.localPath?{packageFs:new l.M(c.LZ.root),prefixPath:c.y1.relative(c.LZ.root,n.localPath)}:n;n&&n!==i&&n.releaseFs&&n.releaseFs();return(await s.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async e=>P({onAbsolute:async()=>await a.xfs.readFilePromise(e,"utf8"),onRelative:async()=>{if(null===n)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(e,"utf8")},onBuiltin:async e=>await r.project.configuration.firstHook(e=>e.getBuiltinPatch,r.project,e)},e))))).map(e=>"string"==typeof e?e.replace(/\r\n?/g,"\n"):e)}async function O(e,{cache:t,project:r}){const n=r.storedChecksums,i=new h.$,A=r.configuration.makeFetcher(),o=await A.fetch(e,{cache:t,project:r,fetcher:A,checksums:n,report:i}),g=await a.xfs.mktempPromise();return await a.xfs.copyPromise(g,o.prefixPath,{baseFs:o.packageFs}),await a.xfs.writeJsonPromise(c.y1.join(g,".yarn-patch.json"),{locator:s.structUtils.stringifyLocator(e)}),a.xfs.detachTemp(g),g}async function Y(e,t){const r=c.cS.fromPortablePath(e).replace(/\\/g,"/"),n=c.cS.fromPortablePath(t).replace(/\\/g,"/"),{stdout:i}=await s.execUtils.execvp("git",["diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index",r,n],{cwd:c.cS.toPortablePath(process.cwd())}),A=r.startsWith("/")?e=>e.slice(1):e=>e;return i.replace(new RegExp(`(a|b)(${s.miscUtils.escapeRegExp(`/${A(r)}/`)})`,"g"),"$1/").replace(new RegExp("(a|b)"+s.miscUtils.escapeRegExp(`/${A(n)}/`),"g"),"$1/").replace(new RegExp(s.miscUtils.escapeRegExp(r+"/"),"g"),"").replace(new RegExp(s.miscUtils.escapeRegExp(n+"/"),"g"),"")}function j(e,{configuration:t,report:r}){for(const n of e.parts)for(const e of n.lines)switch(n.type){case E.Context:r.reportInfo(null," "+s.formatUtils.pretty(t,e,"grey"));break;case E.Deletion:r.reportError(o.b.FROZEN_LOCKFILE_EXCEPTION,"- "+s.formatUtils.pretty(t,e,s.formatUtils.Type.REMOVED));break;case E.Insertion:r.reportError(o.b.FROZEN_LOCKFILE_EXCEPTION,"+ "+s.formatUtils.pretty(t,e,s.formatUtils.Type.ADDED));break;default:s.miscUtils.assertNever(n.type)}}var G=r(36370),H=r(95397),J=r(40376),_=r(28148),q=r(40822);class z extends H.BaseCommand{async execute(){const e=await i.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await J.I.find(e,this.context.cwd),n=await _.C.find(e);if(!r)throw new H.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const A=c.y1.resolve(this.context.cwd,c.cS.toPortablePath(this.patchFolder)),o=c.y1.join(A,".yarn-patch.json");if(!a.xfs.existsSync(o))throw new q.UsageError("The argument folder didn't get created by 'yarn patch'");const g=await a.xfs.readJsonPromise(o),l=s.structUtils.parseLocator(g.locator,!0);if(!t.storedPackages.has(l.locatorHash))throw new q.UsageError("No package found in the project for the given locator");const u=await O(l,{cache:n,project:t});this.context.stdout.write(await Y(u,A))}}z.usage=q.Command.Usage({description:"\n This will turn the folder passed in parameter into a patchfile suitable for consumption with the `patch:` protocol.\n\n Only folders generated through `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "}),(0,G.gn)([q.Command.String()],z.prototype,"patchFolder",void 0),(0,G.gn)([q.Command.Path("patch-commit")],z.prototype,"execute",null);var W=r(15815);class V extends H.BaseCommand{async execute(){const e=await i.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await J.I.find(e,this.context.cwd),n=await _.C.find(e);if(!r)throw new H.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();let A=s.structUtils.parseLocator(this.package);if("unknown"===A.reference){const r=s.miscUtils.mapAndFilter([...t.storedPackages.values()],e=>e.identHash!==A.identHash||s.structUtils.isVirtualLocator(e)?s.miscUtils.mapAndFilter.skip:e);if(0===r.length)throw new q.UsageError("No package found in the project for the given locator");if(r.length>1)throw new q.UsageError("Multiple candidate packages found; explicitly choose one of them (use `yarn why ` to get more information as to who depends on them):\n"+r.map(t=>"\n- "+s.structUtils.prettyLocator(e,t)).join(""));A=r[0]}if(!t.storedPackages.has(A.locatorHash))throw new q.UsageError("No package found in the project for the given locator");await W.Pk.start({configuration:e,stdout:this.context.stdout},async r=>{const i=await O(A,{cache:n,project:t});r.reportInfo(o.b.UNNAMED,`Package ${s.structUtils.prettyLocator(e,A)} got extracted with success!`),r.reportInfo(o.b.UNNAMED,"You can now edit the following folder: "+s.formatUtils.pretty(e,c.cS.fromPortablePath(i),"magenta")),r.reportInfo(o.b.UNNAMED,`Once you are done run ${s.formatUtils.pretty(e,"yarn patch-commit "+c.cS.fromPortablePath(i),"cyan")} and Yarn will store a patchfile based on your changes.`)})}}V.usage=q.Command.Usage({description:'\n This command will cause a package to be extracted in a temporary directory (under a folder named "patch-workdir"). This folder will be editable at will; running `yarn patch` inside it will then cause Yarn to generate a patchfile and register it into your top-level manifest (cf the `patch:` protocol).\n '}),(0,G.gn)([q.Command.String()],V.prototype,"package",void 0),(0,G.gn)([q.Command.Path("patch")],V.prototype,"execute",null);const X={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:i.a2.BOOLEAN,default:!1}},commands:[z,V],fetchers:[class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,A]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,s.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:A}}async patchPackage(e,t){const{parentLocator:r,sourceLocator:n,sourceVersion:i,patchPaths:h}=R(e),p=await T(r,h,t),d=await a.xfs.mktempPromise(),C=c.y1.join(d,"patched.zip"),I=await t.fetcher.fetch(n,t),E=s.structUtils.getIdentVendorPath(e),m=await(0,u.getLibzipPromise)(),B=new g.d(C,{libzip:m,create:!0,level:t.project.configuration.get("compressionLevel")});await B.mkdirpPromise(E),await s.miscUtils.releaseAfterUseAsync(async()=>{await B.copyPromise(E,I.prefixPath,{baseFs:I.packageFs,stableSort:!0})},I.releaseFs);const w=new l.M(c.y1.resolve(c.LZ.root,E),{baseFs:B});for(const e of p)if(null!==e)try{await v(y(e),{baseFs:w,version:i})}catch(e){if(!(e instanceof f))throw e;const r=t.project.configuration.get("enableInlineHunks"),n=r?"":" (set enableInlineHunks for details)";throw new A.lk(o.b.PATCH_HUNK_FAILED,e.message+n,n=>{r&&j(e.hunk,{configuration:t.project.configuration,report:n})})}return B}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){const{patchPaths:n}=F(e);return n.every(e=>!U(e))?e:s.structUtils.bindDescriptor(e,{locator:s.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){const{sourceDescriptor:r}=F(e);return[r]}async getCandidates(e,t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const{parentLocator:n,sourceDescriptor:i,patchPaths:A}=F(e),o=await T(n,A,r.fetchOptions),a=t.get(i.descriptorHash);if(void 0===a)throw new Error("Assertion failed: The dependency should have been resolved");return[x(e,{parentLocator:n,sourcePackage:a,patchPaths:A,patchHash:s.hashUtils.makeHash("2",...o).slice(0,6)})]}async getSatisfying(e,t,r){return null}async resolve(e,t){const{sourceLocator:r}=R(e);return{...await t.resolver.resolve(r,t),...e}}}]}},57436:(e,t,r)=>{"use strict";r.r(t),r.d(t,{pnpUtils:()=>n,getPnpPath:()=>N,quotePathIfNeeded:()=>F,AbstractPnpInstaller:()=>C,PnpInstaller:()=>y,PnpLinker:()=>B,default:()=>R});var n={};r.r(n),r.d(n,{getUnpluggedPath:()=>I});var i=r(27122),A=r(46009),o=r(56537),s=r(53887),a=r.n(s),c=r(92659),g=r(92409),l=r(32741),u=r(75448),h=r(88563),p=r(40822),f=r(46611),d=r(32485);class C{constructor(e){this.opts=e,this.packageRegistry=new Map,this.blacklistedPaths=new Set,this.opts=e}checkAndReportManifestIncompatibility(e,t){return e&&!e.isCompatibleWithOS(process.platform)?(this.opts.report.reportWarningOnce(c.b.INCOMPATIBLE_OS,`${l.structUtils.prettyLocator(this.opts.project.configuration,t)} The platform ${process.platform} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1):!(e&&!e.isCompatibleWithCPU(process.arch))||(this.opts.report.reportWarningOnce(c.b.INCOMPATIBLE_CPU,`${l.structUtils.prettyLocator(this.opts.project.configuration,t)} The CPU architecture ${process.arch} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1)}async installPackage(e,t){const r=l.structUtils.requirableIdent(e),n=e.reference,i=e.peerDependencies.size>0&&!l.structUtils.isVirtualLocator(e)&&!this.opts.project.tryWorkspaceByLocator(e),o=!i||this.opts.skipIncompatiblePackageLinking?await f.G.tryFind(t.prefixPath,{baseFs:t.packageFs}):null,s=this.checkAndReportManifestIncompatibility(o,e);if(this.opts.skipIncompatiblePackageLinking&&!s)return{packageLocation:null,buildDirective:null};const a=i?[]:await this.getBuildScripts(e,o,t),g=this.opts.project.getDependencyMeta(e,e.version);a.length>0&&!this.opts.project.configuration.get("enableScripts")&&!g.built&&(this.opts.report.reportWarningOnce(c.b.DISABLED_BUILD_SCRIPTS,l.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but all build scripts have been disabled."),a.length=0),a.length>0&&e.linkType!==d.U.HARD&&!this.opts.project.tryWorkspaceByLocator(e)&&(this.opts.report.reportWarningOnce(c.b.SOFT_LINK_BUILD,l.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),a.length=0),a.length>0&&g&&!1===g.built&&(this.opts.report.reportInfoOnce(c.b.BUILD_DISABLED,l.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but its build has been explicitly disabled through configuration."),a.length=0);const u=i||e.linkType===d.U.SOFT?t.packageFs:await this.transformPackage(e,o,t,g,{hasBuildScripts:a.length>0});if(A.y1.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);const h=A.y1.resolve(u.getRealPath(),t.prefixPath),p=this.normalizeDirectoryPath(h),C=new Map,I=new Set;if(l.structUtils.isVirtualLocator(e))for(const t of e.peerDependencies.values())C.set(l.structUtils.requirableIdent(t),null),I.add(l.structUtils.stringifyIdent(t));return l.miscUtils.getMapWithDefault(this.packageRegistry,r).set(n,{packageLocation:p,packageDependencies:C,packagePeers:I,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),i&&this.blacklistedPaths.add(p),{packageLocation:h,buildDirective:a.length>0&&s?a:null}}async attachInternalDependencies(e,t){const r=this.getPackageInformation(e);for(const[e,n]of t){const t=l.structUtils.areIdentsEqual(e,n)?n.reference:[l.structUtils.requirableIdent(n),n.reference];r.packageDependencies.set(l.structUtils.requirableIdent(e),t)}}async attachExternalDependents(e,t){for(const r of t){this.getDiskInformation(r).packageDependencies.set(l.structUtils.requirableIdent(e),e.reference)}}async finalizeInstall(){this.trimBlacklistedPackages(),this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));const e=this.opts.project.configuration.get("pnpFallbackMode"),t=this.blacklistedPaths,r=this.opts.project.workspaces.map(({anchoredLocator:e})=>({name:l.structUtils.requirableIdent(e),reference:e.reference})),n="none"!==e,i=[],A=new Map,o=l.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),s=this.packageRegistry,a=this.opts.project.configuration.get("pnpShebang");if("dependencies-only"===e)for(const e of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(e)&&i.push({name:l.structUtils.requirableIdent(e),reference:e.reference});return await this.finalizeInstallWithPnp({blacklistedLocations:t,dependencyTreeRoots:r,enableTopLevelFallback:n,fallbackExclusionList:i,fallbackPool:A,ignorePattern:o,packageRegistry:s,shebang:a})}getPackageInformation(e){const t=l.structUtils.requirableIdent(e),r=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${l.structUtils.prettyIdent(this.opts.project.configuration,e)})`);const i=n.get(r);if(!i)throw new Error(`Assertion failed: The package information should have been available (for ${l.structUtils.prettyLocator(this.opts.project.configuration,e)})`);return i}getDiskInformation(e){const t=l.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),r=this.normalizeDirectoryPath(e);return l.miscUtils.getFactoryWithDefault(t,r,()=>({packageLocation:r,packageDependencies:new Map,packagePeers:new Set,linkType:d.U.SOFT,discardFromLookup:!1}))}trimBlacklistedPackages(){for(const e of this.packageRegistry.values())for(const[t,r]of e)r.packageLocation&&this.blacklistedPaths.has(r.packageLocation)&&e.delete(t)}normalizeDirectoryPath(e){let t=A.y1.relative(this.opts.project.cwd,e);return t.match(/^\.{0,2}\//)||(t="./"+t),t.replace(/\/?$/,"/")}}function I(e,{configuration:t}){return A.y1.resolve(t.get("pnpUnpluggedFolder"),l.structUtils.slugifyLocator(e))}const E=new Set([l.structUtils.makeIdent(null,"nan").identHash,l.structUtils.makeIdent(null,"node-gyp").identHash,l.structUtils.makeIdent(null,"node-pre-gyp").identHash,l.structUtils.makeIdent(null,"node-addon-api").identHash,l.structUtils.makeIdent(null,"fsevents").identHash]),m=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);class B{constructor(){this.mode="strict"}supportsPackage(e,t){return"pnp"===t.project.configuration.get("nodeLinker")&&t.project.configuration.get("pnpMode")===this.mode}async findPackageLocation(e,t){const r=N(t.project).main;if(!o.xfs.existsSync(r))throw new p.UsageError(`The project in ${t.project.cwd}/package.json doesn't seem to have been installed - running an install there might help`);const n=l.miscUtils.dynamicRequireNoCache(r),i={name:l.structUtils.requirableIdent(e),reference:e.reference},s=n.getPackageInformation(i);if(!s)throw new p.UsageError(`Couldn't find ${l.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return A.cS.toPortablePath(s.packageLocation)}async findPackageLocator(e,t){const n=N(t.project).main;if(!o.xfs.existsSync(n))return null;const i=A.cS.fromPortablePath(n),s=l.miscUtils.dynamicRequire(i);delete r.c[i];const a=s.findPackageLocator(A.cS.fromPortablePath(e));return a?l.structUtils.makeLocator(l.structUtils.parseIdent(a.name),a.reference):null}makeInstaller(e){return new y(e)}}class y extends C{constructor(){super(...arguments),this.mode="strict",this.unpluggedPaths=new Set}async getBuildScripts(e,t,r){if(null===t)return[];const n=[];for(const e of["preinstall","install","postinstall"])t.scripts.has(e)&&n.push([g.k.SCRIPT,e]);const i=A.y1.join(r.prefixPath,"binding.gyp");return!t.scripts.has("install")&&r.packageFs.existsSync(i)&&n.push([g.k.SHELLCODE,"node-gyp rebuild"]),n}async transformPackage(e,t,r,n,{hasBuildScripts:i}){return this.isUnplugged(e,t,r,n,{hasBuildScripts:i})?this.unplugPackage(e,r.packageFs):r.packageFs}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=N(this.opts.project),r=this.opts.project.configuration.get("pnpDataPath");if(await o.xfs.removePromise(t.other),"pnp"!==this.opts.project.configuration.get("nodeLinker"))return await o.xfs.removePromise(t.main),void await o.xfs.removePromise(r);const n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(c.b.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(const e of n)await o.xfs.removePromise(e)}if(this.opts.project.configuration.get("pnpEnableInlining")){const n=(0,h.gY)(e);await o.xfs.changeFilePromise(t.main,n,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.removePromise(r)}else{const n=A.y1.relative(A.y1.dirname(t.main),r),{dataFile:i,loaderFile:s}=(0,h.Q$)({...e,dataLocation:n});await o.xfs.changeFilePromise(t.main,s,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.changeFilePromise(r,i,{automaticNewlines:!0}),await o.xfs.chmodPromise(r,420)}const i=this.opts.project.configuration.get("pnpUnpluggedFolder");if(0===this.unpluggedPaths.size)await o.xfs.removePromise(i);else for(const e of await o.xfs.readdirPromise(i)){const t=A.y1.resolve(i,e);this.unpluggedPaths.has(t)||await o.xfs.removePromise(t)}}async locateNodeModules(e){const t=[],r=e?new RegExp(e):null;for(const e of this.opts.project.workspaces){const n=A.y1.join(e.cwd,"node_modules");if(r&&r.test(A.y1.relative(this.opts.project.cwd,e.cwd))||!o.xfs.existsSync(n))continue;const i=await o.xfs.readdirPromise(n,{withFileTypes:!0}),s=i.filter(e=>!e.isDirectory()||".bin"===e.name||!e.name.startsWith("."));if(s.length===i.length)t.push(n);else for(const e of s)t.push(A.y1.join(n,e.name))}return t}async unplugPackage(e,t){const r=I(e,{configuration:this.opts.project.configuration});return this.unpluggedPaths.add(r),await o.xfs.mkdirPromise(r,{recursive:!0}),await o.xfs.copyPromise(r,A.LZ.dot,{baseFs:t,overwrite:!1}),new u.M(r)}isUnplugged(e,t,r,n,{hasBuildScripts:i}){return void 0!==n.unplugged?n.unplugged:!!E.has(e.identHash)||(null!==t&&null!==t.preferUnplugged?t.preferUnplugged:!(!i&&!r.packageFs.getExtractHint({relevantExtensions:m})))}}var w=r(36370),Q=r(95397),v=r(40376),b=r(28148),D=r(15815),S=r(2401),k=r.n(S);class M extends Q.BaseCommand{constructor(){super(...arguments),this.patterns=[],this.all=!1,this.recursive=!1,this.json=!1}async execute(){const e=await i.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await v.I.find(e,this.context.cwd),n=await b.C.find(e);if(!r)throw new Q.WorkspaceRequiredError(t.cwd,this.context.cwd);if("pnp"!==e.get("nodeLinker"))throw new p.UsageError("This command can only be used if the `nodeLinker` option is set to `pnp`");await t.restoreInstallState();const A=new Set(this.patterns),o=this.patterns.map(t=>{const r=l.structUtils.parseDescriptor(t),n="unknown"!==r.range?r:l.structUtils.makeDescriptor(r,"*");if(!a().validRange(n.range))throw new p.UsageError(`The range of the descriptor patterns must be a valid semver range (${l.structUtils.prettyDescriptor(e,n)})`);return e=>{const r=l.structUtils.stringifyIdent(e);return!!k().isMatch(r,l.structUtils.stringifyIdent(n))&&(!(e.version&&!l.semverUtils.v(e.version,n.range))&&(A.delete(t),!0))}}),s=e=>{const r=new Set,n=[],i=(e,A)=>{if(!r.has(e.locatorHash)&&(r.add(e.locatorHash),!t.tryWorkspaceByLocator(e)&&o.some(t=>t(e))&&n.push(e),!(A>0)||this.recursive))for(const r of e.dependencies.values()){const e=t.storedResolutions.get(r.descriptorHash);if(!e)throw new Error("Assertion failed: The resolution should have been registered");const n=t.storedPackages.get(e);if(!n)throw new Error("Assertion failed: The package should have been registered");i(n,A+1)}};for(const r of e){const e=t.storedPackages.get(r.anchoredLocator.locatorHash);if(!e)throw new Error("Assertion failed: The package should have been registered");i(e,0)}return n};let g,u;if(this.all&&this.recursive?(g=(()=>{const e=[];for(const r of t.storedPackages.values())t.tryWorkspaceByLocator(r)||l.structUtils.isVirtualLocator(r)||!o.some(e=>e(r))||e.push(r);return e})(),u="the project"):this.all?(g=s(t.workspaces),u="any workspace"):(g=s([r]),u="this workspace"),A.size>1)throw new p.UsageError(`Patterns ${l.formatUtils.prettyList(e,A,l.formatUtils.Type.CODE)} don't match any packages referenced by ${u}`);if(A.size>0)throw new p.UsageError(`Pattern ${l.formatUtils.prettyList(e,A,l.formatUtils.Type.CODE)} doesn't match any packages referenced by ${u}`);g=l.miscUtils.sortMap(g,e=>l.structUtils.stringifyLocator(e));return(await D.Pk.start({configuration:e,stdout:this.context.stdout,json:this.json},async r=>{var i;for(const n of g){const A=null!==(i=n.version)&&void 0!==i?i:"unknown";t.topLevelWorkspace.manifest.ensureDependencyMeta(l.structUtils.makeDescriptor(n,A)).unplugged=!0,r.reportInfo(c.b.UNNAMED,`Will unpack ${l.structUtils.prettyLocator(e,n)} to ${l.formatUtils.pretty(e,I(n,{configuration:e}),l.formatUtils.Type.PATH)}`),r.reportJson({locator:l.structUtils.stringifyLocator(n),version:A})}await t.topLevelWorkspace.persistManifest(),r.reportSeparator(),await t.install({cache:n,report:r})})).exitCode()}}M.usage=p.Command.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]}),(0,w.gn)([p.Command.Rest()],M.prototype,"patterns",void 0),(0,w.gn)([p.Command.Boolean("-A,--all",{description:"Unplug direct dependencies from the entire project"})],M.prototype,"all",void 0),(0,w.gn)([p.Command.Boolean("-R,--recursive",{description:"Unplug both direct and transitive dependencies"})],M.prototype,"recursive",void 0),(0,w.gn)([p.Command.Boolean("--json",{description:"Format the output as an NDJSON stream"})],M.prototype,"json",void 0),(0,w.gn)([p.Command.Path("unplug")],M.prototype,"execute",null);const N=e=>{let t,r;return"module"===e.topLevelWorkspace.manifest.type?(t=".pnp.cjs",r=".pnp.js"):(t=".pnp.js",r=".pnp.cjs"),{main:A.y1.join(e.cwd,t),other:A.y1.join(e.cwd,r)}},F=e=>/\s/.test(e)?JSON.stringify(e):e;const R={hooks:{populateYarnPaths:async function(e,t){t(N(e).main),t(N(e).other),t(e.configuration.get("pnpDataPath")),t(e.configuration.get("pnpUnpluggedFolder"))},setupScriptEnvironment:async function(e,t,r){const n=N(e).main,i="--require "+F(A.cS.fromPortablePath(n));if(n.includes(" ")&&a().lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(o.xfs.existsSync(n)){let e=t.NODE_OPTIONS||"";const r=/\s*--require\s+\S*\.pnp\.c?js\s*/g;e=e.replace(r," ").trim(),e=e?`${i} ${e}`:i,t.NODE_OPTIONS=e}}},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:i.a2.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:i.a2.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:i.a2.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:i.a2.STRING,default:[],isArray:!0},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:i.a2.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:i.a2.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:i.a2.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:i.a2.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[B],commands:[M]}},28638:(e,t,r)=>{"use strict";r.r(t);var n=r(50683),i=r.n(n);Object.fromEntries||(Object.fromEntries=i());var A=r(59355),o=r(91058),s=r(45330);(0,o.D)({binaryVersion:A.o||"",pluginConfiguration:(0,s.e)()})},95397:(e,t,r)=>{"use strict";r.r(t),r.d(t,{BaseCommand:()=>n.F,WorkspaceRequiredError:()=>s,getDynamicLibs:()=>c,getPluginConfiguration:()=>g.e,openWorkspace:()=>u,main:()=>h.D,pluginCommands:()=>p.f});var n=r(56087),i=r(46611),A=r(46009),o=r(40822);class s extends o.UsageError{constructor(e,t){super(`This command can only be run from within a workspace of your project (${A.y1.relative(e,t)} isn't a workspace of ${A.y1.join(e,i.G.fileName)}).`)}}const a=["@yarnpkg/cli","@yarnpkg/core","@yarnpkg/fslib","@yarnpkg/libzip","@yarnpkg/parsers","@yarnpkg/shell","clipanion","semver","yup"],c=()=>new Map(a.map(e=>[e,r(98497)(e)]));var g=r(45330),l=r(40376);async function u(e,t){const{project:r,workspace:n}=await l.I.find(e,t);if(!n)throw new s(r.cwd,t);return n}var h=r(91058),p=r(15683)},91058:(e,t,r)=>{"use strict";r.d(t,{D:()=>d});var n=r(32741),i=r(27122),A=r(81832),o=r(46009),s=r(56537),a=r(63129),c=r(5864),g=r(40822),l=r(35747),u=r(15683),h=r(36370),p=r(56087);class f extends p.F{async execute(){const e=await i.VK.find(this.context.cwd,this.context.plugins);this.context.stdout.write((e=>`\n${n.formatUtils.pretty(e,"Welcome on Yarn 2!","bold")} 🎉 Thanks for helping us shape our vision of how projects\nshould be managed going forward.\n\nBeing still in RC, Yarn 2 isn't completely stable yet. Some features might be\nmissing, and some behaviors may have received major overhaul. In case of doubt,\nuse the following URLs to get some insight:\n\n - The changelog:\n ${n.formatUtils.pretty(e,"https://github.com/yarnpkg/berry/tree/CHANGELOG.md","cyan")}\n\n - Our issue tracker:\n ${n.formatUtils.pretty(e,"https://github.com/yarnpkg/berry","cyan")}\n\n - Our Discord server:\n ${n.formatUtils.pretty(e,"https://discord.gg/yarnpkg","cyan")}\n\nWe're hoping you will enjoy the experience. For now, a good start is to run\nthe two following commands:\n\n ${n.formatUtils.pretty(e,"find . -name node_modules -prune -exec rm -r {} \\;","magenta")}\n ${n.formatUtils.pretty(e,"yarn install","magenta")}\n\nOne last trick! If you need at some point to upgrade Yarn to a nightly build,\nthe following command will install the CLI straight from master:\n\n ${n.formatUtils.pretty(e,"yarn set version from sources","magenta")}\n\nSee you later 👋\n`)(e).trim()+"\n")}}async function d({binaryVersion:e,pluginConfiguration:t}){async function r(){const h=new g.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:e});h.register(f);try{await async function h(p){var f,d,C,I,E;const m=process.versions.node;if(!n.semverUtils.v(m,">=10.17")&&"1"!==process.env.YARN_IGNORE_NODE)throw new g.UsageError(`This tool requires a Node version compatible with >=10.17 (got ${m}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);const B=await i.VK.find(o.cS.toPortablePath(process.cwd()),t,{usePath:!0,strict:!1}),y=B.get("yarnPath"),w=B.get("ignorePath"),Q=B.get("ignoreCwd");if(!w&&!Q&&y===o.cS.toPortablePath(o.cS.resolve(process.argv[1])))return process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",void await h(p);if(null===y||w){w&&delete process.env.YARN_IGNORE_PATH;B.get("enableTelemetry")&&!c.isCI&&process.stdout.isTTY&&(i.VK.telemetry=new A.E(B,"puba9cdc10ec5790a2cf4969dd413a47270")),null===(f=i.VK.telemetry)||void 0===f||f.reportVersion(e);for(const[e,t]of B.plugins.entries()){u.f.has(null!==(C=null===(d=e.match(/^@yarnpkg\/plugin-(.*)$/))||void 0===d?void 0:d[1])&&void 0!==C?C:"")&&(null===(I=i.VK.telemetry)||void 0===I||I.reportPluginName(e));for(const e of t.commands||[])p.register(e)}const n=p.process(process.argv.slice(2));n.help||null===(E=i.VK.telemetry)||void 0===E||E.reportCommandName(n.path.join(" "));const s=n.cwd;if(void 0!==s&&!Q){const e=(0,l.realpathSync)(process.cwd()),t=(0,l.realpathSync)(s);if(e!==t)return process.chdir(s),void await r()}await p.runExit(n,{cwd:o.cS.toPortablePath(process.cwd()),plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}else if(s.xfs.existsSync(y))try{!function(e){const t=o.cS.fromPortablePath(e);process.on("SIGINT",()=>{}),t?(0,a.execFileSync)(process.execPath,[t,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,a.execFileSync)(t,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}(y)}catch(e){process.exitCode=e.code||1}else process.stdout.write(p.error(new Error(`The "yarn-path" option has been set (in ${B.sources.get("yarnPath")}), but the specified location doesn't exist (${y}).`))),process.exitCode=1}(h)}catch(e){process.stdout.write(h.error(e)),process.exitCode=1}}return r().catch(e=>{process.stdout.write(e.stack||e.message),process.exitCode=1}).finally(()=>s.xfs.rmtempPromise())}(0,h.gn)([g.Command.Path("--welcome")],f.prototype,"execute",null)},15683:(e,t,r)=>{"use strict";r.d(t,{f:()=>n});const n=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]])},56087:(e,t,r)=>{"use strict";r.d(t,{F:()=>A});var n=r(36370),i=r(40822);class A extends i.Command{}(0,n.gn)([i.Command.String("--cwd",{hidden:!0})],A.prototype,"cwd",void 0)},28148:(e,t,r)=>{"use strict";r.d(t,{C:()=>I});var n=r(78420),i=r(15037),A=r(90739),o=r(14626),s=r(46009),a=r(56537),c=r(29486),g=r(35747),l=r.n(g),u=r(92659),h=r(35691),p=r(20624),f=r(73632),d=r(54143);const C=7;class I{constructor(e,{configuration:t,immutable:r=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set,this.mutexes=new Map,this.configuration=t,this.cwd=e,this.immutable=r,this.check=n;const i=t.get("cacheKeyOverride");if(null!==i)this.cacheKey=""+i;else{const e=t.get("compressionLevel"),r=e!==A.k?"c"+e:"";this.cacheKey=[C,r].join("")}}static async find(e,{immutable:t,check:r}={}){const n=new I(e.get("cacheFolder"),{configuration:e,immutable:t,check:r});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;const e=this.configuration.get("globalFolder")+"/cache";return e!==this.cwd?e:null}getVersionFilename(e){return`${d.slugifyLocator(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){const r=function(e){const t=e.indexOf("/");return-1!==t?e.slice(t+1):e}(t).slice(0,10);return`${d.slugifyLocator(e)}-${r}.zip`}getLocatorPath(e,t){if(null===this.mirrorCwd)return s.y1.resolve(this.cwd,this.getVersionFilename(e));if(null===t)return null;return E(t)!==this.cacheKey?null:s.y1.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){const t=this.mirrorCwd;return null!==t?s.y1.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache")){await a.xfs.mkdirPromise(this.cwd,{recursive:!0});const e=s.y1.resolve(this.cwd,".gitignore");await a.xfs.existsPromise(e)||await a.xfs.writeFilePromise(e,"/.gitignore\n*.lock\n")}}async fetchPackageFromCache(e,t,{onHit:r,onMiss:g,loader:C,skipIntegrityCheck:I}){const m=this.getLocatorMirrorPath(e),B=new n.S,y=async(e,r=null)=>{const n=I&&t?t:`${this.cacheKey}/${await p.checksumFile(e)}`;if(null!==r){if(n!==(I&&t?t:`${this.cacheKey}/${await p.checksumFile(r)}`))throw new h.lk(u.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(null!==t&&n!==t){let e;switch(e=this.check?"throw":E(t)!==E(n)?"update":this.configuration.get("checksumBehavior"),e){case"ignore":return t;case"update":return n;default:case"throw":throw new h.lk(u.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return n},w=async t=>{if(!C)throw new Error("Cache check required but no loader configured for "+d.prettyLocator(this.configuration,e));const r=await C(),n=r.getRealPath();return r.saveAndClose(),await a.xfs.chmodPromise(n,420),await y(t,n)},Q=async()=>{if(null===m||!await a.xfs.existsPromise(m)){const e=await C(),t=e.getRealPath();return e.saveAndClose(),t}const t=await a.xfs.mktempPromise(),r=s.y1.join(t,this.getVersionFilename(e));return await a.xfs.copyFilePromise(m,r,l().constants.COPYFILE_FICLONE),r},v=async()=>{if(!C)throw new Error("Cache entry required but missing for "+d.prettyLocator(this.configuration,e));if(this.immutable)throw new h.lk(u.b.IMMUTABLE_CACHE,"Cache entry required but missing for "+d.prettyLocator(this.configuration,e));const t=await Q();await a.xfs.chmodPromise(t,420);const r=await y(t),n=this.getLocatorPath(e,r);if(!n)throw new Error("Assertion failed: Expected the cache path to be available");return await this.writeFileWithLock(n,async()=>await this.writeFileWithLock(m,async()=>(await a.xfs.movePromise(t,n),null!==m&&await a.xfs.copyFilePromise(n,m,l().constants.COPYFILE_FICLONE),[n,r])))};for(let t;t=this.mutexes.get(e.locatorHash);)await t;const[b,D]=await(async()=>{const n=(async()=>{const n=this.getLocatorPath(e,t),i=null!==n&&await B.existsPromise(n),A=i?r:g;if(A&&A(),i){let e=null;const t=n;return e=this.check?await w(t):await y(t),[t,e]}return v()})();this.mutexes.set(e.locatorHash,n);try{return await n}finally{this.mutexes.delete(e.locatorHash)}})();this.markedFiles.add(b);let S=null;const k=await(0,c.getLibzipPromise)(),M=new i.v(()=>f.prettifySyncErrors(()=>S=new A.d(b,{baseFs:B,libzip:k,readOnly:!0}),t=>`Failed to open the cache entry for ${d.prettyLocator(this.configuration,e)}: ${t}`),s.y1);return[new o.K(b,{baseFs:M,pathUtils:s.y1}),()=>{null!==S&&S.discardAndClose()},D]}async writeFileWithLock(e,t){return null===e?await t():(await a.xfs.mkdirPromise(s.y1.dirname(e),{recursive:!0}),await a.xfs.lockPromise(e,async()=>await t()))}}function E(e){const t=e.indexOf("/");return-1!==t?e.slice(0,t):null}},27122:(e,t,r)=>{"use strict";r.d(t,{tr:()=>P,nh:()=>U,a2:()=>T,a5:()=>O,EW:()=>_,VK:()=>z});var n=r(90739),i=r(46009),A=r(56537),o=r(55125),s=r(54738),a=r.n(s),c=r(5864),g=r(40822),l=r(61578),u=r.n(l),h=r(53887),p=r.n(h),f=r(92413),d=r(92659),C=r(54143);const I={hooks:{reduceDependency:(e,t,r,n,{resolver:i,resolveOptions:A})=>{for(const{pattern:n,reference:o}of t.topLevelWorkspace.manifest.resolutions){if(n.from&&n.from.fullName!==C.requirableIdent(r))continue;if(n.from&&n.from.description&&n.from.description!==r.reference)continue;if(n.descriptor.fullName!==C.requirableIdent(e))continue;if(n.descriptor.description&&n.descriptor.description!==e.range)continue;return i.bindDescriptor(C.makeDescriptor(e,o),t.topLevelWorkspace.anchoredLocator,A)}return e},validateProject:async(e,t)=>{for(const r of e.workspaces){const n=C.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(e=>e.validateWorkspace,r,{reportWarning:(e,r)=>t.reportWarning(e,`${n}: ${r}`),reportError:(e,r)=>t.reportError(e,`${n}: ${r}`)})}},validateWorkspace:async(e,t)=>{const{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(const e of r.errors)t.reportWarning(d.b.INVALID_MANIFEST,e.message)}}};var E=r(46611),m=r(35691);class B{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){const r=this.getFetcher(e,t);return await r.fetch(e,t)}tryFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));return r||null}getFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));if(!r)throw new m.lk(d.b.FETCHER_NOT_FOUND,C.prettyLocator(t.project.configuration,e)+" isn't supported by any available fetcher");return r}}var y=r(27092),w=r(52779),Q=r(60895);class v{static isVirtualDescriptor(e){return!!e.range.startsWith(v.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(v.protocol)}supportsDescriptor(e,t){return v.isVirtualDescriptor(e)}supportsLocator(e,t){return v.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,r){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,r){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}v.protocol="virtual:";var b=r(75448),D=r(94538);class S{supports(e){return!!e.reference.startsWith(D.d.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){const r=this.getWorkspace(e,t).cwd;return{packageFs:new b.M(r),prefixPath:i.LZ.dot,localPath:r}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(D.d.protocol.length))}}var k=r(81111),M=r(71643),N=r(73632),F=r(32282),R=r.n(F);function K(e){return("undefined"!=typeof require?require:r(32178))(e)}var L=r(36545);const x=new Set(["binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput"]),P=".yarnrc.yml",U="yarn.lock";var T;!function(e){e.ANY="ANY",e.BOOLEAN="BOOLEAN",e.ABSOLUTE_PATH="ABSOLUTE_PATH",e.LOCATOR="LOCATOR",e.LOCATOR_LOOSE="LOCATOR_LOOSE",e.NUMBER="NUMBER",e.STRING="STRING",e.SECRET="SECRET",e.SHAPE="SHAPE",e.MAP="MAP"}(T||(T={}));const O=M.Type,Y={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:T.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:T.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:T.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:T.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:T.STRING,default:null},globalFolder:{description:"Folder where are stored the system-wide settings",type:T.ABSOLUTE_PATH,default:k.getDefaultGlobalFolder()},cacheFolder:{description:"Folder where the cache files must be written",type:T.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:T.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:n.k},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named $$virtual)",type:T.ABSOLUTE_PATH,default:"./.yarn/$$virtual"},bstatePath:{description:"Path of the file where the current state of the built packages must be stored",type:T.ABSOLUTE_PATH,default:"./.yarn/build-state.yml"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:T.STRING,default:U},installStatePath:{description:"Path of the file where the install state will be persisted",type:T.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:T.STRING,default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:T.STRING,default:J()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:T.BOOLEAN,default:!1},enableAbsoluteVirtuals:{description:"If true, the virtual symlinks will use absolute paths if required [non portable!!]",type:T.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:T.BOOLEAN,default:M.supportsColor,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:T.BOOLEAN,default:M.supportsHyperlinks,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:T.BOOLEAN,default:c.isCI,defaultText:""},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:T.BOOLEAN,default:!c.isCI&&process.stdout.isTTY&&process.stdout.columns>22,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:T.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:T.BOOLEAN,default:c.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:T.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:T.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:T.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:T.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:T.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:T.BOOLEAN,default:!0},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:T.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:T.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:T.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:T.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:T.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:T.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:T.NUMBER,default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:T.NUMBER,default:1/0},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:T.BOOLEAN,default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:T.NUMBER,default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:T.STRING,default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:T.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:T.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:T.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:T.MAP,valueDefinition:{description:"",type:T.ANY}}};function j(e,t,r,n,i){if(n.isArray)return Array.isArray(r)?r.map((r,A)=>G(e,`${t}[${A}]`,r,n,i)):String(r).split(/,/).map(r=>G(e,t,r,n,i));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${t}" cannot be an array`);return G(e,t,r,n,i)}function G(e,t,r,n,A){var o;switch(n.type){case T.ANY:return r;case T.SHAPE:return function(e,t,r,n,i){if("object"!=typeof r||Array.isArray(r))throw new g.UsageError(`Object configuration settings "${t}" must be an object`);const A=H(e,n);if(null===r)return A;for(const[o,s]of Object.entries(r)){const r=`${t}.${o}`;if(!n.properties[o])throw new g.UsageError(`Unrecognized configuration settings found: ${t}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);A.set(o,j(e,r,s,n.properties[o],i))}return A}(e,t,r,n,A);case T.MAP:return function(e,t,r,n,i){const A=new Map;if("object"!=typeof r||Array.isArray(r))throw new g.UsageError(`Map configuration settings "${t}" must be an object`);if(null===r)return A;for(const[o,s]of Object.entries(r)){const r=n.normalizeKeys?n.normalizeKeys(o):o,a=`${t}['${r}']`,c=n.valueDefinition;A.set(r,j(e,a,s,c,i))}return A}(e,t,r,n,A)}if(null===r&&!n.isNullable&&null!==n.default)throw new Error(`Non-nullable configuration settings "${t}" cannot be set to null`);if(null===(o=n.values)||void 0===o?void 0:o.includes(r))return r;const s=(()=>{if(n.type===T.BOOLEAN)return function(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}(r);if("string"!=typeof r)throw new Error(`Expected value (${r}) to be a string`);const e=N.replaceEnvVariables(r,{env:process.env});switch(n.type){case T.ABSOLUTE_PATH:return i.y1.resolve(A,i.cS.toPortablePath(e));case T.LOCATOR_LOOSE:return C.parseLocator(e,!1);case T.NUMBER:return parseInt(e);case T.LOCATOR:return C.parseLocator(e);default:return e}})();if(n.values&&!n.values.includes(s))throw new Error("Invalid value, expected one of "+n.values.join(", "));return s}function H(e,t){switch(t.type){case T.SHAPE:{const r=new Map;for(const[n,i]of Object.entries(t.properties))r.set(n,H(e,i));return r}case T.MAP:return new Map;case T.ABSOLUTE_PATH:return null===t.default?null:null===e.projectCwd?i.y1.isAbsolute(t.default)?i.y1.normalize(t.default):t.isNullable?null:void 0:Array.isArray(t.default)?t.default.map(t=>i.y1.resolve(e.projectCwd,t)):i.y1.resolve(e.projectCwd,t.default);default:return t.default}}function J(){for(const[e,t]of Object.entries(process.env))if("yarn_rc_filename"===e.toLowerCase()&&"string"==typeof t)return t;return P}var _,q;!function(e){e[e.LOCKFILE=0]="LOCKFILE",e[e.MANIFEST=1]="MANIFEST",e[e.NONE=2]="NONE"}(_||(_={})),function(e){e.Dependency="Dependency",e.PeerDependency="PeerDependency",e.PeerDependencyMeta="PeerDependencyMeta"}(q||(q={}));class z{constructor(e){this.projectCwd=null,this.plugins=new Map,this.settings=new Map,this.values=new Map,this.sources=new Map,this.invalid=new Map,this.packageExtensions=new Map,this.limits=new Map,this.startingCwd=e}static create(e,t,r){const n=new z(e);void 0===t||t instanceof Map||(n.projectCwd=t),n.importSettings(Y);const i=void 0!==r?r:t instanceof Map?t:new Map;for(const[e,t]of i)n.activatePlugin(e,t);return n}static async find(e,t,{lookup:r=_.LOCKFILE,strict:n=!0,usePath:o=!1,useRc:s=!0}={}){const c=function(){const e={};for(let[t,r]of Object.entries(process.env))t=t.toLowerCase(),t.startsWith("yarn_")&&(t=a()(t.slice("yarn_".length)),e[t]=r);return e}();delete c.rcFilename;const l=await z.findRcFiles(e),u=await z.findHomeRcFile(),h=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n})=>({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n}),p=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n,...i})=>i,f=new z(e);f.importSettings(h(Y)),f.useWithSource("",h(c),e,{strict:!1});for(const{path:e,cwd:t,data:r}of l)f.useWithSource(e,h(r),t,{strict:!1});if(u&&f.useWithSource(u.path,h(u.data),u.cwd,{strict:!1}),o){const e=f.get("yarnPath"),t=f.get("ignorePath");if(null!==e&&!t)return f}const d=f.get("lockfileFilename");let C;switch(r){case _.LOCKFILE:C=await z.findProjectCwd(e,d);break;case _.MANIFEST:C=await z.findProjectCwd(e,null);break;case _.NONE:C=A.xfs.existsSync(i.y1.join(e,"package.json"))?i.y1.resolve(e):null}f.startingCwd=e,f.projectCwd=C,f.importSettings(p(Y));const E=new Map([["@@core",I]]);if(null!==t){for(const e of t.plugins.keys())E.set(e,(m=t.modules.get(e)).__esModule?m.default:m);const r=new Map;for(const e of new Set(R().builtinModules||Object.keys(process.binding("natives"))))r.set(e,()=>K(e));for(const[e,n]of t.modules)r.set(e,()=>n);const n=new Set,A=e=>e.default||e,o=(e,t)=>{const{factory:o,name:s}=K(i.cS.fromPortablePath(e));if(n.has(s))return;const a=new Map(r),c=e=>{if(a.has(e))return a.get(e)();throw new g.UsageError(`This plugin cannot access the package referenced via ${e} which is neither a builtin, nor an exposed entry`)},l=N.prettifySyncErrors(()=>A(o(c)),e=>`${e} (when initializing ${s}, defined in ${t})`);r.set(s,()=>l),n.add(s),E.set(s,l)};if(c.plugins)for(const t of c.plugins.split(";")){o(i.y1.resolve(e,i.cS.toPortablePath(t)),"")}for(const{path:e,cwd:t,data:r}of l)if(s&&Array.isArray(r.plugins))for(const n of r.plugins){const r="string"!=typeof n?n.path:n;o(i.y1.resolve(t,i.cS.toPortablePath(r)),e)}}var m;for(const[e,t]of E)f.activatePlugin(e,t);f.useWithSource("",p(c),e,{strict:n});for(const{path:e,cwd:t,data:r}of l)f.useWithSource(e,p(r),t,{strict:n});return u&&f.useWithSource(u.path,p(u.data),u.cwd,{strict:!1}),f.get("enableGlobalCache")&&(f.values.set("cacheFolder",f.get("globalFolder")+"/cache"),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){const t=J(),r=[];let n=e,s=null;for(;n!==s;){s=n;const e=i.y1.join(s,t);if(A.xfs.existsSync(e)){const t=await A.xfs.readFilePromise(e,"utf8");let n;try{n=(0,o.parseSyml)(t)}catch(r){let n="";throw t.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(n=" (in particular, make sure you list the colons after each key name)"),new g.UsageError(`Parse error when loading ${e}; please check it's proper Yaml${n}`)}r.push({path:e,cwd:s,data:n})}n=i.y1.dirname(s)}return r}static async findHomeRcFile(){const e=J(),t=k.getHomeFolder(),r=i.y1.join(t,e);if(A.xfs.existsSync(r)){const e=await A.xfs.readFilePromise(r,"utf8");return{path:r,cwd:t,data:(0,o.parseSyml)(e)}}return null}static async findProjectCwd(e,t){let r=null,n=e,o=null;for(;n!==o;){if(o=n,A.xfs.existsSync(i.y1.join(o,"package.json"))&&(r=o),null!==t){if(A.xfs.existsSync(i.y1.join(o,t))){r=o;break}}else if(null!==r)break;n=i.y1.dirname(o)}return r}static async updateConfiguration(e,t){const r=J(),n=i.y1.join(e,r),s=A.xfs.existsSync(n)?(0,o.parseSyml)(await A.xfs.readFilePromise(n,"utf8")):{};let a,c=!1;if("function"==typeof t){try{a=t(s)}catch(e){a=t({})}if(a===s)return}else{a=s;for(const e of Object.keys(t)){const r=s[e],n=t[e];let i;if("function"==typeof n)try{i=n(r)}catch(e){i=n(void 0)}else i=n;r!==i&&(a[e]=i,c=!0)}if(!c)return}await A.xfs.changeFilePromise(n,(0,o.stringifySyml)(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){const t=k.getHomeFolder();return await z.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),void 0!==t.configuration&&this.importSettings(t.configuration)}importSettings(e){for(const[t,r]of Object.entries(e))if(null!=r){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,r),this.values.set(t,H(this,r))}}useWithSource(e,t,r,n){try{this.use(e,t,r,n)}catch(t){throw t.message+=` (in ${M.pretty(this,e,M.Type.PATH)})`,t}}use(e,t,r,{strict:n=!0,overwrite:i=!1}={}){for(const A of Object.keys(t)){if(void 0===t[A])continue;if("plugins"===A)continue;if(""===e&&x.has(A))continue;if("rcFilename"===A)throw new g.UsageError(`The rcFilename settings can only be set via ${"yarn_RC_FILENAME".toUpperCase()}, not via a rc file`);const o=this.settings.get(A);if(!o){if(n)throw new g.UsageError(`Unrecognized or legacy configuration settings found: ${A} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(A,e);continue}if(this.sources.has(A)&&!i&&o.type!==T.MAP)continue;let s;try{s=j(this,A,t[A],o,r)}catch(t){throw t.message+=" in "+M.pretty(this,e,M.Type.PATH),t}if(o.type===T.MAP){const t=this.values.get(A);this.values.set(A,new Map(i?[...t,...s]:[...s,...t])),this.sources.set(A,`${this.sources.get(A)}, ${e}`)}else this.values.set(A,s),this.sources.set(A,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:r=!1}){const n=this.get(e),A=this.settings.get(e);if(void 0===A)throw new g.UsageError(`Couldn't find a configuration settings named "${e}"`);return function e(t,r,n){if(r.type===T.SECRET&&"string"==typeof t&&n.hideSecrets)return"********";if(r.type===T.ABSOLUTE_PATH&&"string"==typeof t&&n.getNativePaths)return i.cS.fromPortablePath(t);if(r.isArray&&Array.isArray(t)){const i=[];for(const A of t)i.push(e(A,r,n));return i}if(r.type===T.MAP&&t instanceof Map){const i=new Map;for(const[A,o]of t.entries())i.set(A,e(o,r.valueDefinition,n));return i}if(r.type===T.SHAPE&&t instanceof Map){const i=new Map;for(const[A,o]of t.entries()){const t=r.properties[A];i.set(A,e(o,t,n))}return i}return t}(n,A,{hideSecrets:t,getNativePaths:r})}getSubprocessStreams(e,{header:t,prefix:r,report:n}){let i,o;const s=A.xfs.createWriteStream(e);if(this.get("enableInlineBuilds")){const e=n.createStreamReporter(`${r} ${M.pretty(this,"STDOUT","green")}`),t=n.createStreamReporter(`${r} ${M.pretty(this,"STDERR","red")}`);i=new f.PassThrough,i.pipe(e),i.pipe(s),o=new f.PassThrough,o.pipe(t),o.pipe(s)}else i=s,o=s,void 0!==t&&i.write(t+"\n");return{stdout:i,stderr:o}}makeResolver(){const e=[];for(const t of this.plugins.values())for(const r of t.resolvers||[])e.push(new r);return new y.B([new v,new D.d,new w.O,...e])}makeFetcher(){const e=[];for(const t of this.plugins.values())for(const r of t.fetchers||[])e.push(new r);return new B([new Q.N,new S,...e])}getLinkers(){const e=[];for(const t of this.plugins.values())for(const r of t.linkers||[])e.push(new r);return e}async refreshPackageExtensions(){this.packageExtensions=new Map;const e=this.packageExtensions,t=(t,r)=>{if(!p().validRange(t.range))throw new Error("Only semver ranges are allowed as keys for the lockfileExtensions setting");const n=new E.G;n.load(r);const i=[];N.getArrayWithDefault(e,t.identHash).push([t.range,i]);for(const e of n.dependencies.values())i.push({type:q.Dependency,descriptor:e,active:!1,description:`${C.stringifyIdent(t)} > ${C.stringifyIdent(e)}`});for(const e of n.peerDependencies.values())i.push({type:q.PeerDependency,descriptor:e,active:!1,description:`${C.stringifyIdent(t)} >> ${C.stringifyIdent(e)}`});for(const[e,r]of n.peerDependenciesMeta)for(const[n,A]of Object.entries(r))i.push({type:q.PeerDependencyMeta,selector:e,key:n,value:A,active:!1,description:`${C.stringifyIdent(t)} >> ${e} / ${n}`})};for(const[e,r]of this.get("packageExtensions"))t(C.parseDescriptor(e,!0),r);await this.triggerHook(e=>e.registerPackageExtensions,this,t)}normalizePackage(e){const t=C.copyPackage(e);if(null==this.packageExtensions)throw new Error("refreshPackageExtensions has to be called before normalizing packages");const r=this.packageExtensions.get(e.identHash);if(void 0!==r){const n=e.version;if(null!==n)for(const[e,i]of r)if(L.v(n,e))for(const e of i)switch(e.type){case q.Dependency:t.dependencies.set(e.descriptor.identHash,e.descriptor),e.active=!0;break;case q.PeerDependency:t.peerDependencies.set(e.descriptor.identHash,e.descriptor),e.active=!0;break;case q.PeerDependencyMeta:N.getFactoryWithDefault(t.peerDependenciesMeta,e.selector,()=>({}))[e.key]=e.value,e.active=!0;break;default:N.assertNever(e)}}const n=e=>e.scope?`${e.scope}__${e.name}`:""+e.name;for(const e of t.peerDependencies.values()){if("@types"===e.scope)continue;const r=n(e),i=C.makeIdent("types",r);t.peerDependencies.has(i.identHash)||t.peerDependenciesMeta.has(i.identHash)||t.peerDependenciesMeta.set(C.stringifyIdent(i),{optional:!0})}for(const e of t.peerDependenciesMeta.keys()){const r=C.parseIdent(e);t.peerDependencies.has(r.identHash)||t.peerDependencies.set(r.identHash,C.makeDescriptor(r,"*"))}return t.dependencies=new Map(N.sortMap(t.dependencies,([,e])=>C.stringifyDescriptor(e))),t.peerDependencies=new Map(N.sortMap(t.peerDependencies,([,e])=>C.stringifyDescriptor(e))),t}getLimit(e){return N.getFactoryWithDefault(this.limits,e,()=>u()(this.get(e)))}async triggerHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);i&&await i(...t)}}async triggerMultipleHooks(e,t){for(const r of t)await this.triggerHook(e,...r)}async reduceHook(e,t,...r){let n=t;for(const t of this.plugins.values()){const i=t.hooks;if(!i)continue;const A=e(i);A&&(n=await A(n,...r))}return n}async firstHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);if(!i)continue;const A=await i(...t);if(void 0!==A)return A}return null}format(e,t){return M.pretty(this,e,t)}}z.telemetry=null},92409:(e,t,r)=>{"use strict";var n;r.d(t,{k:()=>n}),function(e){e[e.SCRIPT=0]="SCRIPT",e[e.SHELLCODE=1]="SHELLCODE"}(n||(n={}))},62152:(e,t,r)=>{"use strict";r.d(t,{h:()=>o});var n=r(35691),i=r(15815),A=r(71643);class o extends n.yG{constructor({configuration:e,stdout:t,suggestInstall:r=!0}){super(),this.errorCount=0,this.configuration=e,this.stdout=t,this.suggestInstall=r}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){this.errorCount+=1,this.stdout.write(`${A.pretty(this.configuration,"➤","redBright")} ${this.formatNameWithHyperlink(e)}: ${t}\n`)}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(A.pretty(this.configuration,"➤","redBright")+" Errors happened when preparing the environment required to run this command.\n"),this.suggestInstall&&this.stdout.write(A.pretty(this.configuration,"➤","redBright")+' This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.\n'))}formatNameWithHyperlink(e){return(0,i.Qw)(e,{configuration:this.configuration,json:!1})}}},46611:(e,t,r)=>{"use strict";r.d(t,{G:()=>l});var n=r(78420),i=r(46009),A=r(55125),o=r(53887),s=r.n(o),a=r(73632),c=r(36545),g=r(54143);class l{constructor(){this.indent=" ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.type=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.browser=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.installConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(e,{baseFs:t=new n.S}={}){const r=i.y1.join(e,"package.json");return await t.existsPromise(r)?await l.fromFile(r,{baseFs:t}):null}static async find(e,{baseFs:t}={}){const r=await l.tryFind(e,{baseFs:t});if(null===r)throw new Error("Manifest not found");return r}static async fromFile(e,{baseFs:t=new n.S}={}){const r=new l;return await r.loadFile(e,{baseFs:t}),r}static fromText(e){const t=new l;return t.loadFromText(e),t}loadFromText(e){let t;try{t=JSON.parse(h(e)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(t),this.indent=u(e)}async loadFile(e,{baseFs:t=new n.S}){const r=await t.readFilePromise(e,"utf8");let i;try{i=JSON.parse(h(r)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(i),this.indent=u(r)}load(e){if("object"!=typeof e||null===e)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;const t=[];if("string"==typeof e.name)try{this.name=g.parseIdent(e.name)}catch(e){t.push(new Error("Parsing failed for the 'name' field"))}if("string"==typeof e.version&&(this.version=e.version),Array.isArray(e.os)){const r=[];this.os=r;for(const n of e.os)"string"!=typeof n?t.push(new Error("Parsing failed for the 'os' field")):r.push(n)}if(Array.isArray(e.cpu)){const r=[];this.cpu=r;for(const n of e.cpu)"string"!=typeof n?t.push(new Error("Parsing failed for the 'cpu' field")):r.push(n)}if("string"==typeof e.type&&(this.type=e.type),"boolean"==typeof e.private&&(this.private=e.private),"string"==typeof e.license&&(this.license=e.license),"string"==typeof e.languageName&&(this.languageName=e.languageName),"string"==typeof e.main&&(this.main=e.main),"string"==typeof e.module&&(this.module=e.module),null!=e.browser&&("string"==typeof e.browser?this.browser=e.browser:this.browser=new Map(Object.entries(e.browser))),"string"==typeof e.bin)null!==this.name?this.bin=new Map([[this.name.name,e.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.bin&&null!==e.bin)for(const[r,n]of Object.entries(e.bin))"string"==typeof n?this.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`));if("object"==typeof e.scripts&&null!==e.scripts)for(const[r,n]of Object.entries(e.scripts))"string"==typeof n?this.scripts.set(r,n):t.push(new Error(`Invalid script definition for '${r}'`));if("object"==typeof e.dependencies&&null!==e.dependencies)for(const[r,n]of Object.entries(e.dependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=g.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=g.makeDescriptor(e,n);this.dependencies.set(i.identHash,i)}if("object"==typeof e.devDependencies&&null!==e.devDependencies)for(const[r,n]of Object.entries(e.devDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=g.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=g.makeDescriptor(e,n);this.devDependencies.set(i.identHash,i)}if("object"==typeof e.peerDependencies&&null!==e.peerDependencies)for(let[r,n]of Object.entries(e.peerDependencies)){let e;try{e=g.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}"string"==typeof n&&c.F(n)||(t.push(new Error(`Invalid dependency range for '${r}'`)),n="*");const i=g.makeDescriptor(e,n);this.peerDependencies.set(i.identHash,i)}"object"==typeof e.workspaces&&e.workspaces.nohoist&&t.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));const r=Array.isArray(e.workspaces)?e.workspaces:"object"==typeof e.workspaces&&null!==e.workspaces&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];for(const e of r)"string"==typeof e?this.workspaceDefinitions.push({pattern:e}):t.push(new Error(`Invalid workspace definition for '${e}'`));if("object"==typeof e.dependenciesMeta&&null!==e.dependenciesMeta)for(const[r,n]of Object.entries(e.dependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=g.parseDescriptor(r),i=this.ensureDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.peerDependenciesMeta&&null!==e.peerDependenciesMeta)for(const[r,n]of Object.entries(e.peerDependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=g.parseDescriptor(r),i=this.ensurePeerDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.resolutions&&null!==e.resolutions)for(const[r,n]of Object.entries(e.resolutions))if("string"==typeof n)try{this.resolutions.push({pattern:(0,A.parseResolution)(r),reference:n})}catch(e){t.push(e);continue}else t.push(new Error(`Invalid resolution entry for '${r}'`));if(Array.isArray(e.files)&&0!==e.files.length){this.files=new Set;for(const r of e.files)"string"==typeof r?this.files.add(r):t.push(new Error(`Invalid files entry for '${r}'`))}if("object"==typeof e.publishConfig&&null!==e.publishConfig){if(this.publishConfig={},"string"==typeof e.publishConfig.access&&(this.publishConfig.access=e.publishConfig.access),"string"==typeof e.publishConfig.main&&(this.publishConfig.main=e.publishConfig.main),"string"==typeof e.publishConfig.module&&(this.publishConfig.module=e.publishConfig.module),"string"==typeof e.publishConfig.browser&&(this.publishConfig.browser=e.publishConfig.browser),"object"==typeof e.publishConfig.browser&&null!==e.publishConfig.browser&&(this.publishConfig.browser=new Map(Object.entries(e.publishConfig.browser))),"string"==typeof e.publishConfig.registry&&(this.publishConfig.registry=e.publishConfig.registry),"string"==typeof e.publishConfig.bin)null!==this.name?this.publishConfig.bin=new Map([[this.name.name,e.publishConfig.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.publishConfig.bin&&null!==e.publishConfig.bin){this.publishConfig.bin=new Map;for(const[r,n]of Object.entries(e.publishConfig.bin))"string"==typeof n?this.publishConfig.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`))}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(const r of e.publishConfig.executableFiles)"string"==typeof r?this.publishConfig.executableFiles.add(i.cS.toPortablePath(r)):t.push(new Error("Invalid executable file definition"))}}if("object"==typeof e.installConfig&&null!==e.installConfig){this.installConfig={};for(const r of Object.keys(e.installConfig))"hoistingLimits"===r?"string"==typeof e.installConfig.hoistingLimits?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:t.push(new Error("Invalid hoisting limits definition")):t.push(new Error("Unrecognized installConfig key: "+r))}if("object"==typeof e.optionalDependencies&&null!==e.optionalDependencies)for(const[r,n]of Object.entries(e.optionalDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=g.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=g.makeDescriptor(e,n);this.dependencies.set(i.identHash,i);const A=g.makeDescriptor(e,"unknown"),o=this.ensureDependencyMeta(A);Object.assign(o,{optional:!0})}"boolean"==typeof e.preferUnplugged&&(this.preferUnplugged=e.preferUnplugged),this.errors=t}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!this.dependencies.has(e.identHash)||!!this.peerDependencies.has(e.identHash)}hasHardDependency(e){return!!this.dependencies.has(e.identHash)||!!this.devDependencies.has(e.identHash)}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!this.hasHardDependency(e)||!!this.hasSoftDependency(e)}isCompatibleWithOS(e){return null===this.os||p(this.os,e)}isCompatibleWithCPU(e){return null===this.cpu||p(this.cpu,e)}ensureDependencyMeta(e){if("unknown"!==e.range&&!s().valid(e.range))throw new Error(`Invalid meta field range for '${g.stringifyDescriptor(e)}'`);const t=g.stringifyIdent(e),r="unknown"!==e.range?e.range:null;let n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let i=n.get(r);return i||n.set(r,i={}),i}ensurePeerDependencyMeta(e){if("unknown"!==e.range)throw new Error(`Invalid meta field range for '${g.stringifyDescriptor(e)}'`);const t=g.stringifyIdent(e);let r=this.peerDependenciesMeta.get(t);return r||this.peerDependenciesMeta.set(t,r={}),r}setRawField(e,t,{after:r=[]}={}){const n=new Set(r.filter(e=>Object.prototype.hasOwnProperty.call(this.raw,e)));if(0===n.size||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{const r=this.raw,i=this.raw={};let A=!1;for(const o of Object.keys(r))i[o]=r[o],A||(n.delete(o),0===n.size&&(i[e]=t,A=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){if(Object.assign(e,this.raw),null!==this.name?e.name=g.stringifyIdent(this.name):delete e.name,null!==this.version?e.version=this.version:delete e.version,null!==this.os?e.os=this.os:delete e.os,null!==this.cpu?e.cpu=this.cpu:delete e.cpu,null!==this.type?e.type=this.type:delete e.type,this.private?e.private=!0:delete e.private,null!==this.license?e.license=this.license:delete e.license,null!==this.languageName?e.languageName=this.languageName:delete e.languageName,null!==this.main?e.main=this.main:delete e.main,null!==this.module?e.module=this.module:delete e.module,null!==this.browser){const t=this.browser;"string"==typeof t?e.browser=t:t instanceof Map&&(e.browser=Object.assign({},...Array.from(t.keys()).sort().map(e=>({[e]:t.get(e)}))))}else delete e.browser;1===this.bin.size&&null!==this.name&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(e=>({[e]:this.bin.get(e)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:e})=>e)}:e.workspaces=this.workspaceDefinitions.map(({pattern:e})=>e):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;const r=[],n=[];for(const e of this.dependencies.values()){const i=this.dependenciesMeta.get(g.stringifyIdent(e));let A=!1;if(t&&i){const e=i.get(null);e&&e.optional&&(A=!0)}A?n.push(e):r.push(e)}r.length>0?e.dependencies=Object.assign({},...g.sortDescriptors(r).map(e=>({[g.stringifyIdent(e)]:e.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...g.sortDescriptors(n).map(e=>({[g.stringifyIdent(e)]:e.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...g.sortDescriptors(this.devDependencies.values()).map(e=>({[g.stringifyIdent(e)]:e.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...g.sortDescriptors(this.peerDependencies.values()).map(e=>({[g.stringifyIdent(e)]:e.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(const[r,n]of a.sortMap(this.dependenciesMeta.entries(),([e,t])=>e))for(const[i,A]of a.sortMap(n.entries(),([e,t])=>null!==e?"0"+e:"1")){const n=null!==i?g.stringifyDescriptor(g.makeDescriptor(g.parseIdent(r),i)):r,o={...A};t&&null===i&&delete o.optional,0!==Object.keys(o).length&&(e.dependenciesMeta[n]=o)}return 0===Object.keys(e.dependenciesMeta).length&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...a.sortMap(this.peerDependenciesMeta.entries(),([e,t])=>e).map(([e,t])=>({[e]:t}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:e,reference:t})=>({[(0,A.stringifyResolution)(e)]:t}))):delete e.resolutions,null!==this.files?e.files=Array.from(this.files):delete e.files,null!==this.preferUnplugged?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,e}}function u(e){const t=e.match(/^[ \t]+/m);return t?t[0]:" "}function h(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function p(e,t){let r=!0,n=!1;for(const i of e)if("!"===i[0]){if(n=!0,t===i.slice(1))return!1}else if(r=!1,i===t)return!0;return n&&r}l.fileName="package.json",l.allDependencies=["dependencies","devDependencies","peerDependencies"],l.hardDependencies=["dependencies","devDependencies"]},92659:(e,t,r)=>{"use strict";var n;r.d(t,{b:()=>n}),function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",e[e.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",e[e.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",e[e.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",e[e.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE"}(n||(n={}))},27092:(e,t,r)=>{"use strict";r.d(t,{B:()=>i});var n=r(54143);class i{constructor(e){this.resolvers=e.filter(e=>e)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.getResolverByDescriptor(e,r).bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,r){const n=this.getResolverByDescriptor(e,r);return await n.getCandidates(e,t,r)}async getSatisfying(e,t,r){return this.getResolverByDescriptor(e,r).getSatisfying(e,t,r)}async resolve(e,t){const r=this.getResolverByLocator(e,t);return await r.resolve(e,t)}tryResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));return r||null}getResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));if(!r)throw new Error(n.prettyDescriptor(t.project.configuration,e)+" isn't supported by any available resolver");return r}tryResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));return r||null}getResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));if(!r)throw new Error(n.prettyLocator(t.project.configuration,e)+" isn't supported by any available resolver");return r}}},40376:(e,t,r)=>{"use strict";r.d(t,{I:()=>Ae});var n=r(56537),i=r(46009),A=r(35398),o=r(55125),s=r(40822),a=r(76417);function c(){}function g(e,t,r,n,i){for(var A=0,o=t.length,s=0,a=0;Ae.length?r:e})),c.value=e.join(l)}else c.value=e.join(r.slice(s,s+c.count));s+=c.count,c.added||(a+=c.count)}}var u=t[o-1];return o>1&&"string"==typeof u.value&&(u.added||u.removed)&&e.equals("",u.value)&&(t[o-2].value+=u.value,t.pop()),t}function l(e){return{newPos:e.newPos,components:e.components.slice(0)}}c.prototype={diff:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.callback;"function"==typeof r&&(n=r,r={}),this.options=r;var i=this;function A(e){return n?(setTimeout((function(){n(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var o=(t=this.removeEmpty(this.tokenize(t))).length,s=e.length,a=1,c=o+s,u=[{newPos:-1,components:[]}],h=this.extractCommon(u[0],t,e,0);if(u[0].newPos+1>=o&&h+1>=s)return A([{value:this.join(t),count:t.length}]);function p(){for(var r=-1*a;r<=a;r+=2){var n=void 0,c=u[r-1],h=u[r+1],p=(h?h.newPos:0)-r;c&&(u[r-1]=void 0);var f=c&&c.newPos+1=o&&p+1>=s)return A(g(i,n.components,t,e,i.useLongestToken));u[r]=n}else u[r]=void 0}a++}if(n)!function e(){setTimeout((function(){if(a>c)return n();p()||e()}),0)}();else for(;a<=c;){var f=p();if(f)return f}},pushComponent:function(e,t,r){var n=e[e.length-1];n&&n.added===t&&n.removed===r?e[e.length-1]={count:n.count+1,added:t,removed:r}:e.push({count:1,added:t,removed:r})},extractCommon:function(e,t,r,n){for(var i=t.length,A=r.length,o=e.newPos,s=o-n,a=0;o+10?a(f.lines.slice(-o.context)):[],g-=u.length,l-=u.length)}(A=u).push.apply(A,E(i.map((function(e){return(t.added?"+":"-")+e})))),t.added?p+=i.length:h+=i.length}else{if(g)if(i.length<=2*o.context&&e=s.length-2&&i.length<=o.context){var B=/\n$/.test(r),y=/\n$/.test(n),w=0==i.length&&u.length>m.oldLines;!B&&w&&u.splice(m.oldLines,0,"\\ No newline at end of file"),(B||w)&&y||u.push("\\ No newline at end of file")}c.push(m),g=0,l=0,u=[]}h+=i.length,p+=i.length}},C=0;C`${r}#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit=${i}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@[^/]+\/)?([^/]+)\/-\/\1-[^/]+\.tgz(?:#|$)/,e=>"npm:"+e],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)$/,e=>"npm:"+e],[/^[^/]+\.tgz#[0-9a-f]+$/,e=>"npm:"+e]];class O{constructor(){this.resolutions=null}async setup(e,{report:t}){const r=i.y1.join(e.cwd,e.configuration.get("lockfileFilename"));if(!n.xfs.existsSync(r))return;const A=await n.xfs.readFilePromise(r,"utf8"),s=(0,o.parseSyml)(A);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;const a=this.resolutions=new Map;for(const r of Object.keys(s)){let n=U.tryParseDescriptor(r);if(!n){t.reportWarning(P.b.YARN_IMPORT_FAILED,`Failed to parse the string "${r}" into a proper descriptor`);continue}k().validRange(n.range)&&(n=U.makeDescriptor(n,"npm:"+n.range));const{version:i,resolved:A}=s[r];if(!A)continue;let o;for(const[e,t]of T){const r=A.match(e);if(r){o=t(i,...r);break}}if(!o){t.reportWarning(P.b.YARN_IMPORT_FAILED,`${U.prettyDescriptor(e.configuration,n)}: Only some patterns can be imported from legacy lockfiles (not "${A}")`);continue}const c=U.makeLocator(n,o);a.set(n.descriptorHash,c)}}supportsDescriptor(e,t){return!!this.resolutions&&this.resolutions.has(e.descriptorHash)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");const n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return[n]}async getSatisfying(e,t,r){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}class Y{supportsDescriptor(e,t){return!!t.project.storedResolutions.get(e.descriptorHash)||!!t.project.originalPackages.has(U.convertDescriptorToLocator(e).locatorHash)}supportsLocator(e,t){return!!t.project.originalPackages.has(e.locatorHash)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let n=r.project.originalPackages.get(U.convertDescriptorToLocator(e).locatorHash);if(n)return[n];const i=r.project.storedResolutions.get(e.descriptorHash);if(!i)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=r.project.originalPackages.get(i),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,t,r){return null}async resolve(e,t){const r=t.project.originalPackages.get(e.locatorHash);if(!r)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return r}}var j=r(46611),G=r(27092),H=r(35691);class J{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.resolver.bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,r){throw new H.lk(P.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}async getSatisfying(e,t,r){throw new H.lk(P.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}async resolve(e,t){throw new H.lk(P.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}}var _=r(33720),q=r(17722),z=r(81111),W=r(71643),V=r(20624),X=r(73632),Z=r(63088),$=r(36545),ee=r(32485);const te=/ *, */g,re=/\/$/,ne=(0,M.promisify)(K().gzip),ie=(0,M.promisify)(K().gunzip);class Ae{constructor(e,{configuration:t}){this.resolutionAliases=new Map,this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map,this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.storedChecksums=new Map,this.accessibleLocators=new Set,this.originalPackages=new Map,this.optionalBuilds=new Set,this.lockFileChecksum=null,this.configuration=t,this.cwd=e}static async find(e,t){var r,A,o;if(!e.projectCwd)throw new s.UsageError("No project found in "+t);let a=e.projectCwd,c=t,g=null;for(;g!==e.projectCwd;){if(g=c,n.xfs.existsSync(i.y1.join(g,i.QS.manifest))){a=g;break}c=i.y1.dirname(g)}const l=new Ae(e.projectCwd,{configuration:e});null===(r=L.VK.telemetry)||void 0===r||r.reportProject(l.cwd),await l.setupResolutions(),await l.setupWorkspaces(),null===(A=L.VK.telemetry)||void 0===A||A.reportWorkspaceCount(l.workspaces.length),null===(o=L.VK.telemetry)||void 0===o||o.reportDependencyCount(l.workspaces.reduce((e,t)=>e+t.manifest.dependencies.size+t.manifest.devDependencies.size,0));const u=l.tryWorkspaceByCwd(a);if(u)return{project:l,workspace:u,locator:u.anchoredLocator};const h=await l.findLocatorForLocation(a+"/",{strict:!0});if(h)return{project:l,locator:h,workspace:null};throw new s.UsageError(`The nearest package directory (${W.pretty(e,a,W.Type.PATH)}) doesn't seem to be part of the project declared in ${W.pretty(e,l.cwd,W.Type.PATH)}.\n\n- If the project directory is right, it might be that you forgot to list ${W.pretty(e,i.y1.relative(l.cwd,a),W.Type.PATH)} as a workspace.\n- If it isn't, it's likely because you have a yarn.lock or package.json file there, confusing the project root detection.`)}static generateBuildStateFile(e,t){let r="# Warning: This file is automatically generated. Removing it is fine, but will\n# cause all your builds to become invalidated.\n";const n=[...e].map(([e,r])=>{const n=t.get(e);if(void 0===n)throw new Error("Assertion failed: The locator should have been registered");return[U.stringifyLocator(n),n.locatorHash,r]});for(const[e,t,i]of X.sortMap(n,[e=>e[0],e=>e[1]]))r+="\n",r+=`# ${e}\n`,r+=JSON.stringify(t)+":\n",r+=` ${i}\n`;return r}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(n.xfs.existsSync(e)){const r=await n.xfs.readFilePromise(e,"utf8");this.lockFileChecksum=V.makeHash("1",r);const i=(0,o.parseSyml)(r);if(i.__metadata){const e=i.__metadata.version,r=i.__metadata.cacheKey;for(const n of Object.keys(i)){if("__metadata"===n)continue;const A=i[n];if(void 0===A.resolution)throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${n})`);const o=U.parseLocator(A.resolution,!0),s=new j.G;s.load(A);const a=s.version,c=s.languageName||t,g=A.linkType.toUpperCase(),l=s.dependencies,u=s.peerDependencies,h=s.dependenciesMeta,p=s.peerDependenciesMeta,f=s.bin;if(null!=A.checksum){const e=void 0===r||A.checksum.includes("/")?A.checksum:`${r}/${A.checksum}`;this.storedChecksums.set(o.locatorHash,e)}if(e>=4){const e={...o,version:a,languageName:c,linkType:g,dependencies:l,peerDependencies:u,dependenciesMeta:h,peerDependenciesMeta:p,bin:f};this.originalPackages.set(e.locatorHash,e)}for(const t of n.split(te)){const r=U.parseDescriptor(t);if(this.storedDescriptors.set(r.descriptorHash,r),e>=4)this.storedResolutions.set(r.descriptorHash,o.locatorHash);else{const e=U.convertLocatorToDescriptor(o);e.descriptorHash!==r.descriptorHash&&(this.storedDescriptors.set(e.descriptorHash,e),this.resolutionAliases.set(r.descriptorHash,e.descriptorHash))}}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=[this.cwd];for(;e.length>0;){const t=e;e=[];for(const r of t){if(this.workspacesByCwd.has(r))continue;const t=await this.addWorkspace(r),n=this.storedPackages.get(t.anchoredLocator.locatorHash);n&&(t.dependencies=n.dependencies);for(const r of t.workspacesCwds)e.push(r)}}}async addWorkspace(e){const t=new q.j(e,{project:this});await t.setup();const r=this.workspacesByIdent.get(t.locator.identHash);if(void 0!==r)throw new Error(`Duplicate workspace name ${U.prettyIdent(this.configuration,t.locator)}: ${e} conflicts with ${r.cwd}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){i.y1.isAbsolute(e)||(e=i.y1.resolve(this.cwd,e));const t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){const t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(const r of this.workspaces){i.y1.relative(r.cwd,e).startsWith("../")||(t&&t.cwd.length>=r.cwd.length||(t=r))}return t||null}getWorkspaceByFilePath(e){const t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){const t=this.workspacesByIdent.get(e.identHash);return void 0===t?null:t}getWorkspaceByIdent(e){const t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${U.prettyIdent(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){const t=this.tryWorkspaceByIdent(e);return null!==t&&t.accepts(e.range)?t:null}getWorkspaceByDescriptor(e){const t=this.tryWorkspaceByDescriptor(e);if(null===t)throw new Error(`Workspace not found (${U.prettyDescriptor(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){U.isVirtualLocator(e)&&(e=U.devirtualizeLocator(e));const t=this.tryWorkspaceByIdent(e);return null===t||t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash?null:t}getWorkspaceByLocator(e){const t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${U.prettyLocator(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(const e of this.workspaces){const t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error("Assertion failed: Expected workspace to have been resolved");e.dependencies=new Map(t.dependencies)}}forgetResolution(e){const t=e=>{this.storedResolutions.delete(e),this.storedDescriptors.delete(e)},r=e=>{this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)};if("descriptorHash"in e){const n=this.storedResolutions.get(e.descriptorHash);t(e.descriptorHash);const i=new Set(this.storedResolutions.values());void 0===n||i.has(n)||r(n)}if("locatorHash"in e){r(e.locatorHash);for(const[r,n]of this.storedResolutions)n===e.locatorHash&&t(r)}}forgetTransientResolutions(){const e=this.configuration.makeResolver();for(const t of this.originalPackages.values()){let r;try{r=e.shouldPersistResolution(t,{project:this,resolver:e})}catch(e){r=!1}r||this.forgetResolution(t)}}forgetVirtualResolutions(){for(const e of this.storedPackages.values())for(const[t,r]of e.dependencies)U.isVirtualDescriptor(r)&&e.dependencies.set(t,U.devirtualizeDescriptor(r))}getDependencyMeta(e,t){const r={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(U.stringifyIdent(e));if(!n)return r;const i=n.get(null);if(i&&Object.assign(r,i),null===t||!k().valid(t))return r;for(const[e,i]of n)null!==e&&e===t&&Object.assign(r,i);return r}async findLocatorForLocation(e,{strict:t=!1}={}){const r=new _.$,n=this.configuration.getLinkers(),i={project:this,report:r};for(const r of n){const n=await r.findPackageLocator(e,i);if(n){if(t){if((await r.findPackageLocation(n,i)).replace(re,"")!==e.replace(re,""))continue}return n}}return null}async validateEverything(e){for(const t of e.validationWarnings)e.report.reportWarning(t.name,t.text);for(const t of e.validationErrors)e.report.reportError(t.name,t.text)}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();const t=e.resolver||this.configuration.makeResolver(),r=new O;await r.setup(this,{report:e.report});const A=e.lockfileOnly?new G.B([new Y,new J(t)]):new G.B([new Y,r,t]),o=this.configuration.makeFetcher(),s=e.lockfileOnly?{project:this,report:e.report,resolver:A}:{project:this,report:e.report,resolver:A,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o}},a=new Map,c=new Map,g=new Map,l=new Map,u=new Map,h=new Set;let p=new Set;for(const e of this.workspaces){const t=e.anchoredDescriptor;a.set(t.descriptorHash,t),p.add(t.descriptorHash)}for(;0!==p.size;){const e=p;p=new Set;for(const t of e)g.has(t)&&e.delete(t);if(0===e.size)break;const t=new Set,r=new Map;for(const n of e){const i=a.get(n);if(!i)throw new Error("Assertion failed: The descriptor should have been registered");let o=u.get(n);if(void 0===o){u.set(n,o=new Set);for(const e of A.getResolutionDependencies(i,s))a.set(e.descriptorHash,e),o.add(e.descriptorHash)}const l=X.getMapWithDefault(r,n);for(const r of o){const i=g.get(r);if(void 0!==i){const e=c.get(i);if(void 0===e)throw new Error("Assertion failed: The package should have been registered");l.set(r,e)}else t.add(n),e.add(r)}}for(const r of t)e.delete(r),p.add(r);if(0===e.size)throw new Error("Assertion failed: Descriptors should not have cyclic dependencies");const n=new Map(await Promise.all(Array.from(e).map(async e=>{const t=a.get(e);if(void 0===t)throw new Error("Assertion failed: The descriptor should have been registered");const n=r.get(t.descriptorHash);if(void 0===n)throw new Error("Assertion failed: The descriptor dependencies should have been registered");let i;try{i=await A.getCandidates(t,n,s)}catch(e){throw e.message=`${U.prettyDescriptor(this.configuration,t)}: ${e.message}`,e}if(0===i.length)throw new Error("No candidate found for "+U.prettyDescriptor(this.configuration,t));return[t.descriptorHash,i]}))),i=new Map;for(const[e,t]of n)1===t.length&&(i.set(e,t[0]),n.delete(e));for(const[e,t]of n){const r=t.find(e=>c.has(e.locatorHash));r&&(i.set(e,r),n.delete(e))}if(n.size>0){const e=new(v().Solver);for(const t of n.values())e.require(v().or(...t.map(e=>e.locatorHash)));let t,r=100,A=null,o=1/0;for(;r>0&&null!==(t=e.solve());){const n=t.getTrueVars();e.forbid(t.getFormula()),n.lengths.has(e.locatorHash));if(!r)throw new Error("Assertion failed: The descriptor should have been solved during the previous step");i.set(e,r),n.delete(e)}}const o=Array.from(i.values()).filter(e=>!c.has(e.locatorHash)),f=new Map(await Promise.all(o.map(async e=>{const t=await X.prettifyAsyncErrors(async()=>await A.resolve(e,s),t=>`${U.prettyLocator(this.configuration,e)}: ${t}`);if(!U.areLocatorsEqual(e,t))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${U.prettyLocator(this.configuration,e)} to ${U.prettyLocator(this.configuration,t)})`);const r=this.configuration.normalizePackage(t);for(const[t,n]of r.dependencies){const i=await this.configuration.reduceHook(e=>e.reduceDependency,n,this,r,n,{resolver:A,resolveOptions:s});if(!U.areIdentsEqual(n,i))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");const o=A.bindDescriptor(i,e,s);r.dependencies.set(t,o)}return[r.locatorHash,{original:t,pkg:r}]})));for(const t of e){const e=i.get(t);if(!e)throw new Error("Assertion failed: The locator should have been registered");g.set(t,e.locatorHash);const r=f.get(e.locatorHash);if(void 0===r)continue;const{original:n,pkg:A}=r;l.set(n.locatorHash,n),c.set(A.locatorHash,A);for(const e of A.dependencies.values()){a.set(e.descriptorHash,e),p.add(e.descriptorHash);const t=this.resolutionAliases.get(e.descriptorHash);if(void 0===t)continue;if(e.descriptorHash===t)continue;const r=this.storedDescriptors.get(t);if(!r)throw new Error("Assertion failed: The alias should have been registered");g.has(e.descriptorHash)||(g.set(e.descriptorHash,"temporary"),p.delete(e.descriptorHash),p.add(t),a.set(t,r),h.add(e.descriptorHash))}}}for(;h.size>0;){let e=!1;for(const t of h){if(!a.get(t))throw new Error("Assertion failed: The descriptor should have been registered");const r=this.resolutionAliases.get(t);if(void 0===r)throw new Error("Assertion failed: The descriptor should have an alias");const n=g.get(r);if(void 0===n)throw new Error("Assertion failed: The resolution should have been registered");"temporary"!==n&&(h.delete(t),g.set(t,n),e=!0)}if(!e)throw new Error("Alias loop detected")}const f=new Set(this.resolutionAliases.values()),d=new Set(c.keys()),C=new Set;!function({project:e,allDescriptors:t,allResolutions:r,allPackages:A,accessibleLocators:o=new Set,optionalBuilds:s=new Set,volatileDescriptors:a=new Set,report:c,tolerateMissingPackages:g=!1}){const l=new Map,u=[],h=new Map,p=new Map,f=new Map(e.workspaces.map(e=>{const t=e.anchoredLocator.locatorHash,r=A.get(t);if(void 0===r){if(g)return[t,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[t,U.copyPackage(r)]})),d=()=>{const e=n.xfs.mktempSync(),t=i.y1.join(e,"stacktrace.log"),r=String(u.length+1).length,A=u.map((e,t)=>`${(t+1+".").padStart(r," ")} ${U.stringifyLocator(e)}\n`).join("");throw n.xfs.writeFileSync(t,A),new H.lk(P.b.STACK_OVERFLOW_RESOLUTION,"Encountered a stack overflow when resolving peer dependencies; cf "+t)},C=e=>{const t=r.get(e.descriptorHash);if(void 0===t)throw new Error("Assertion failed: The resolution should have been registered");const n=A.get(t);if(!n)throw new Error("Assertion failed: The package could not be found");return n},I=(e,t,r)=>{u.length>1e3&&d(),u.push(e);const n=E(e,t,r);return u.pop(),n},E=(n,i,u)=>{if(o.has(n.locatorHash))return;o.add(n.locatorHash),u||s.delete(n.locatorHash);const E=A.get(n.locatorHash);if(!E){if(g)return;throw new Error(`Assertion failed: The package (${U.prettyLocator(e.configuration,n)}) should have been registered`)}const m=[],B=[],y=[],w=[],Q=[];for(const o of Array.from(E.dependencies.values())){if(E.peerDependencies.has(o.identHash)&&!i)continue;if(U.isVirtualDescriptor(o))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(o.descriptorHash);let s=u;if(!s){const e=E.dependenciesMeta.get(U.stringifyIdent(o));if(void 0!==e){const t=e.get(null);void 0!==t&&t.optional&&(s=!0)}}const h=r.get(o.descriptorHash);if(!h){if(g)continue;throw new Error(`Assertion failed: The resolution (${U.prettyDescriptor(e.configuration,o)}) should have been registered`)}const v=f.get(h)||A.get(h);if(!v)throw new Error(`Assertion failed: The package (${h}, resolved from ${U.prettyDescriptor(e.configuration,o)}) should have been registered`);if(0===v.peerDependencies.size){I(v,!1,s);continue}const b=l.get(v.locatorHash);let D,S;"number"==typeof b&&b>=2&&d();const k=new Set;B.push(()=>{D=U.virtualizeDescriptor(o,n.locatorHash),S=U.virtualizePackage(v,n.locatorHash),E.dependencies.delete(o.identHash),E.dependencies.set(D.identHash,D),r.set(D.descriptorHash,S.locatorHash),t.set(D.descriptorHash,D),A.set(S.locatorHash,S),m.push([v,D,S])}),y.push(()=>{for(const i of S.peerDependencies.values()){let A=E.dependencies.get(i.identHash);if(!A&&U.areIdentsEqual(n,i)&&(A=U.convertLocatorToDescriptor(n),t.set(A.descriptorHash,A),r.set(A.descriptorHash,n.locatorHash),a.delete(A.descriptorHash)),A||!S.dependencies.has(i.identHash)){if(!A){if(!E.peerDependencies.has(i.identHash)){const t=S.peerDependenciesMeta.get(U.stringifyIdent(i));null===c||t&&t.optional||c.reportWarning(P.b.MISSING_PEER_DEPENDENCY,`${U.prettyLocator(e.configuration,n)} doesn't provide ${U.prettyDescriptor(e.configuration,i)} requested by ${U.prettyLocator(e.configuration,v)}`)}A=U.makeDescriptor(i,"missing:")}if(S.dependencies.set(A.identHash,A),U.isVirtualDescriptor(A)){X.getSetWithDefault(p,A.descriptorHash).add(S.locatorHash)}if("missing:"===A.range)k.add(A.identHash);else if(null!==c){const t=C(A);$.v(t.version,i.range)||c.reportWarning(P.b.INCOMPATIBLE_PEER_DEPENDENCY,`${U.prettyLocator(e.configuration,n)} provides ${U.prettyLocator(e.configuration,t)} with version ${t.version} which doesn't satisfy ${U.prettyRange(e.configuration,i.range)} requested by ${U.prettyLocator(e.configuration,v)}`)}}else S.peerDependencies.delete(i.identHash)}S.dependencies=new Map(X.sortMap(S.dependencies,([e,t])=>U.stringifyIdent(t)))}),w.push(()=>{if(!A.has(S.locatorHash))return;const e=l.get(v.locatorHash),t=void 0!==e?e+1:1;l.set(v.locatorHash,t),I(S,!1,s),l.set(v.locatorHash,t-1)}),Q.push(()=>{if(A.has(S.locatorHash))for(const e of k)S.dependencies.delete(e)})}for(const e of[...B,...y])e();let v;do{v=!0;for(const[n,i,s]of m){if(!A.has(s.locatorHash))continue;const a=X.getMapWithDefault(h,n.locatorHash),c=V.makeHash(...[...s.dependencies.values()].map(t=>{const n="missing:"!==t.range?r.get(t.descriptorHash):"missing:";if(void 0===n)throw new Error(`Assertion failed: Expected the resolution for ${U.prettyDescriptor(e.configuration,t)} to have been registered`);return n}),i.identHash),g=a.get(c);if(void 0===g){a.set(c,i);continue}if(g===i)continue;v=!1,A.delete(s.locatorHash),t.delete(i.descriptorHash),r.delete(i.descriptorHash),o.delete(s.locatorHash);const l=p.get(i.descriptorHash)||[],u=[E.locatorHash,...l];for(const e of u){const t=A.get(e);void 0!==t&&t.dependencies.set(i.identHash,g)}}}while(!v);for(const e of[...w,...Q])e()};for(const t of e.workspaces)a.delete(t.anchoredDescriptor.descriptorHash),I(t.anchoredLocator,!0,!1)}({project:this,report:e.report,accessibleLocators:C,volatileDescriptors:f,optionalBuilds:d,allDescriptors:a,allResolutions:g,allPackages:c});for(const e of f)a.delete(e),g.delete(e);this.storedResolutions=g,this.storedDescriptors=a,this.storedPackages=c,this.accessibleLocators=C,this.originalPackages=l,this.optionalBuilds=d,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:r}){const n=r||this.configuration.makeFetcher(),i={checksums:this.storedChecksums,project:this,cache:e,fetcher:n,report:t},A=Array.from(new Set(X.sortMap(this.storedResolutions.values(),[e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");return U.stringifyLocator(t)}])));let o=!1;const s=H.yG.progressViaCounter(A.length);t.reportProgress(s);const a=D()(32);if(await t.startCacheReport(async()=>{await Promise.all(A.map(e=>a(async()=>{const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The locator should have been registered");if(U.isVirtualLocator(r))return;let A;try{A=await n.fetch(r,i)}catch(e){return e.message=`${U.prettyLocator(this.configuration,r)}: ${e.message}`,t.reportExceptionOnce(e),void(o=e)}A.checksum?this.storedChecksums.set(r.locatorHash,A.checksum):this.storedChecksums.delete(r.locatorHash),A.releaseFs&&A.releaseFs()}).finally(()=>{s.tick()})))}),o)throw o}async linkEverything({cache:e,report:t,fetcher:r}){const A=r||this.configuration.makeFetcher(),s={checksums:this.storedChecksums,project:this,cache:e,fetcher:A,report:t,skipIntegrityCheck:!0},c=this.configuration.getLinkers(),g={project:this,report:t},l=new Map(c.map(e=>[e,e.makeInstaller(g)])),u=new Map,h=new Map,p=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=await A.fetch(t,s);if(null!==this.tryWorkspaceByLocator(t)){const e=[],{scripts:n}=await j.G.find(r.prefixPath,{baseFs:r.packageFs});for(const t of["preinstall","install","postinstall"])n.has(t)&&e.push([x.k.SCRIPT,t]);try{for(const e of l.values())await e.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}const A=i.y1.join(r.packageFs.getRealPath(),r.prefixPath);h.set(t.locatorHash,A),e.length>0&&p.set(t.locatorHash,{directives:e,buildLocations:[A]})}else{const e=c.find(e=>e.supportsPackage(t,g));if(!e)throw new H.lk(P.b.LINKER_NOT_FOUND,U.prettyLocator(this.configuration,t)+" isn't supported by any available linker");const n=l.get(e);if(!n)throw new Error("Assertion failed: The installer should have been registered");let i;try{i=await n.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}u.set(t.locatorHash,e),h.set(t.locatorHash,i.packageLocation),i.buildDirective&&i.packageLocation&&p.set(t.locatorHash,{directives:i.buildDirective,buildLocations:[i.packageLocation]})}}const f=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=null!==this.tryWorkspaceByLocator(t),n=async(e,n)=>{const i=h.get(t.locatorHash);if(void 0===i)throw new Error(`Assertion failed: The package (${U.prettyLocator(this.configuration,t)}) should have been registered`);const A=[];for(const n of t.dependencies.values()){const o=this.storedResolutions.get(n.descriptorHash);if(void 0===o)throw new Error(`Assertion failed: The resolution (${U.prettyDescriptor(this.configuration,n)}, from ${U.prettyLocator(this.configuration,t)})should have been registered`);const s=this.storedPackages.get(o);if(void 0===s)throw new Error(`Assertion failed: The package (${o}, resolved from ${U.prettyDescriptor(this.configuration,n)}) should have been registered`);const a=null===this.tryWorkspaceByLocator(s)?u.get(o):null;if(void 0===a)throw new Error(`Assertion failed: The package (${o}, resolved from ${U.prettyDescriptor(this.configuration,n)}) should have been registered`);const c=null===a;if(a===e||r||c)null!==h.get(s.locatorHash)&&A.push([n,s]);else if(null!==i){X.getArrayWithDefault(f,o).push(i)}}null!==i&&await n.attachInternalDependencies(t,A)};if(r)for(const[e,t]of l)await n(e,t);else{const e=u.get(t.locatorHash);if(!e)throw new Error("Assertion failed: The linker should have been found");const r=l.get(e);if(!r)throw new Error("Assertion failed: The installer should have been registered");await n(e,r)}}for(const[e,t]of f){const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The package should have been registered");const n=u.get(r.locatorHash);if(!n)throw new Error("Assertion failed: The linker should have been found");const i=l.get(n);if(!i)throw new Error("Assertion failed: The installer should have been registered");await i.attachExternalDependents(r,t)}for(const e of l.values()){const t=await e.finalizeInstall();if(t)for(const e of t)e.buildDirective&&p.set(e.locatorHash,{directives:e.buildDirective,buildLocations:e.buildLocations})}const d=new Set(this.storedPackages.keys()),C=new Set(p.keys());for(const e of C)d.delete(e);const I=(0,a.createHash)("sha512");I.update(process.versions.node),this.configuration.triggerHook(e=>e.globalHashGeneration,this,e=>{I.update("\0"),I.update(e)});const E=I.digest("hex"),m=new Map,B=e=>{let t=m.get(e.locatorHash);if(void 0!==t)return t;const r=this.storedPackages.get(e.locatorHash);if(void 0===r)throw new Error("Assertion failed: The package should have been registered");const n=(0,a.createHash)("sha512");n.update(e.locatorHash),m.set(e.locatorHash,"");for(const e of r.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(void 0===t)throw new Error(`Assertion failed: The resolution (${U.prettyDescriptor(this.configuration,e)}) should have been registered`);const r=this.storedPackages.get(t);if(void 0===r)throw new Error("Assertion failed: The package should have been registered");n.update(B(r))}return t=n.digest("hex"),m.set(e.locatorHash,t),t},y=(e,t)=>{const r=(0,a.createHash)("sha512");r.update(E),r.update(B(e));for(const e of t)r.update(e);return r.digest("hex")},w=this.configuration.get("bstatePath"),Q=n.xfs.existsSync(w)?(0,o.parseSyml)(await n.xfs.readFilePromise(w,"utf8")):{},v=new Map;for(;C.size>0;){const e=C.size,r=[];for(const e of C){const A=this.storedPackages.get(e);if(!A)throw new Error("Assertion failed: The package should have been registered");let o=!0;for(const e of A.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(!t)throw new Error(`Assertion failed: The resolution (${U.prettyDescriptor(this.configuration,e)}) should have been registered`);if(C.has(t)){o=!1;break}}if(!o)continue;C.delete(e);const s=p.get(A.locatorHash);if(!s)throw new Error("Assertion failed: The build directive should have been registered");const a=y(A,s.buildLocations);if(Object.prototype.hasOwnProperty.call(Q,A.locatorHash)&&Q[A.locatorHash]===a)v.set(A.locatorHash,a);else{Object.prototype.hasOwnProperty.call(Q,A.locatorHash)?t.reportInfo(P.b.MUST_REBUILD,U.prettyLocator(this.configuration,A)+" must be rebuilt because its dependency tree changed"):t.reportInfo(P.b.MUST_BUILD,U.prettyLocator(this.configuration,A)+" must be built because it never did before or the last one failed");for(const e of s.buildLocations){if(!i.y1.isAbsolute(e))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${e})`);r.push((async()=>{for(const[r,o]of s.directives){let s=`# This file contains the result of Yarn building a package (${U.stringifyLocator(A)})\n`;switch(r){case x.k.SCRIPT:s+=`# Script name: ${o}\n`;break;case x.k.SHELLCODE:s+=`# Script code: ${o}\n`}const c=null;await n.xfs.mktempPromise(async g=>{const l=i.y1.join(g,"build.log"),{stdout:u,stderr:h}=this.configuration.getSubprocessStreams(l,{header:s,prefix:U.prettyLocator(this.configuration,A),report:t});let p;try{switch(r){case x.k.SCRIPT:p=await Z.executePackageScript(A,o,[],{cwd:e,project:this,stdin:c,stdout:u,stderr:h});break;case x.k.SHELLCODE:p=await Z.executePackageShellcode(A,o,[],{cwd:e,project:this,stdin:c,stdout:u,stderr:h})}}catch(e){h.write(e.stack),p=1}if(u.end(),h.end(),0===p)return v.set(A.locatorHash,a),!0;n.xfs.detachTemp(g);const f=`${U.prettyLocator(this.configuration,A)} couldn't be built successfully (exit code ${W.pretty(this.configuration,p,W.Type.NUMBER)}, logs can be found here: ${W.pretty(this.configuration,l,W.Type.PATH)})`;return t.reportInfo(P.b.BUILD_FAILED,f),this.optionalBuilds.has(A.locatorHash)?(v.set(A.locatorHash,a),!0):(t.reportError(P.b.BUILD_FAILED,f),!1)})}})())}}}if(await Promise.all(r),e===C.size){const e=Array.from(C).map(e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The package should have been registered");return U.prettyLocator(this.configuration,t)}).join(", ");t.reportError(P.b.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${e})`);break}}if(v.size>0){const e=this.configuration.get("bstatePath"),t=Ae.generateBuildStateFile(v,this.storedPackages);await n.xfs.mkdirPromise(i.y1.dirname(e),{recursive:!0}),await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}else await n.xfs.removePromise(w)}async install(e){var t,r;const o=this.configuration.get("nodeLinker");null===(t=L.VK.telemetry)||void 0===t||t.reportInstall(o);const s=[],a=[];await this.configuration.triggerHook(e=>e.validateProject,this,{reportWarning:(e,t)=>s.push({name:e,text:t}),reportError:(e,t)=>a.push({name:e,text:t})});s.length+a.length>0&&await e.report.startTimerPromise("Validation step",async()=>{await this.validateEverything({validationWarnings:s,validationErrors:a,report:e.report})});for(const e of this.configuration.packageExtensions.values())for(const[,t]of e)for(const e of t)e.active=!1;await e.report.startTimerPromise("Resolution step",async()=>{const t=i.y1.join(this.cwd,this.configuration.get("lockfileFilename"));let r=null;if(e.immutable)try{r=await n.xfs.readFilePromise(t,"utf8")}catch(e){throw"ENOENT"===e.code?new H.lk(P.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):e}if(await this.resolveEverything(e),null!==r){const n=(0,A.qH)(r,this.generateLockfile());if(n!==r){const i=w(t,t,r,n);e.report.reportSeparator();for(const t of i.hunks){e.report.reportInfo(null,`@@ -${t.oldStart},${t.oldLines} +${t.newStart},${t.newLines} @@`);for(const r of t.lines)r.startsWith("+")?e.report.reportError(P.b.FROZEN_LOCKFILE_EXCEPTION,W.pretty(this.configuration,r,W.Type.ADDED)):r.startsWith("-")?e.report.reportError(P.b.FROZEN_LOCKFILE_EXCEPTION,W.pretty(this.configuration,r,W.Type.REMOVED)):e.report.reportInfo(null,W.pretty(this.configuration,r,"grey"))}throw e.report.reportSeparator(),new H.lk(P.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(const e of this.configuration.packageExtensions.values())for(const[,t]of e)for(const e of t)e.active&&(null===(r=L.VK.telemetry)||void 0===r||r.reportPackageExtension(e.description));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(void 0===e.persistProject||e.persistProject)&&await this.cacheCleanup(e)}),(void 0===e.persistProject||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{const t=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],r=await Promise.all(t.map(async e=>V.checksumPattern(e,{cwd:this.cwd})));await this.linkEverything(e);const n=await Promise.all(t.map(async e=>V.checksumPattern(e,{cwd:this.cwd})));for(let i=0;ie.afterAllInstalled,this,e)}generateLockfile(){const e=new Map;for(const[t,r]of this.storedResolutions.entries()){let n=e.get(r);n||e.set(r,n=new Set),n.add(t)}const t={__metadata:{version:4}};for(const[r,n]of e.entries()){const e=this.originalPackages.get(r);if(!e)continue;const i=[];for(const e of n){const t=this.storedDescriptors.get(e);if(!t)throw new Error("Assertion failed: The descriptor should have been registered");i.push(t)}const A=i.map(e=>U.stringifyDescriptor(e)).sort().join(", "),o=new j.G;let s;o.version=e.linkType===ee.U.HARD?e.version:"0.0.0-use.local",o.languageName=e.languageName,o.dependencies=new Map(e.dependencies),o.peerDependencies=new Map(e.peerDependencies),o.dependenciesMeta=new Map(e.dependenciesMeta),o.peerDependenciesMeta=new Map(e.peerDependenciesMeta),o.bin=new Map(e.bin);const a=this.storedChecksums.get(e.locatorHash);if(void 0!==a){const e=a.indexOf("/");if(-1===e)throw new Error("Assertion failed: Expecte the checksum to reference its cache key");const r=a.slice(0,e),n=a.slice(e+1);void 0===t.__metadata.cacheKey&&(t.__metadata.cacheKey=r),s=r===t.__metadata.cacheKey?n:a}t[A]={...o.exportTo({},{compatibilityMode:!1}),linkType:e.linkType.toLowerCase(),resolution:U.stringifyLocator(e),checksum:s}}return['# This file is generated by running "yarn install" inside your project.\n',"# Manual changes might be lost - proceed with caution!\n"].join("")+"\n"+(0,o.stringifySyml)(t)}async persistLockfile(){const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.generateLockfile();await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}async persistInstallStateFile(){const{accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:A,storedPackages:o,lockFileChecksum:s}=this,a={accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:A,storedPackages:o,lockFileChecksum:s},c=await ne(F().serialize(a)),g=this.configuration.get("installStatePath");await n.xfs.mkdirPromise(i.y1.dirname(g),{recursive:!0}),await n.xfs.writeFilePromise(g,c)}async restoreInstallState(){const e=this.configuration.get("installStatePath");if(!n.xfs.existsSync(e))return void await this.applyLightResolution();const t=await n.xfs.readFilePromise(e),r=F().deserialize(await ie(t));r.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,r),this.refreshWorkspaceDependencies()):await this.applyLightResolution()}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new _.$}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile(),await this.persistInstallStateFile();for(const e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){const r=new Set([".gitignore"]);if(n.xfs.existsSync(e.cwd)&&(0,z.isFolderInside)(e.cwd,this.cwd)){for(const A of await n.xfs.readdirPromise(e.cwd)){if(r.has(A))continue;const o=i.y1.resolve(e.cwd,A);e.markedFiles.has(o)||(e.immutable?t.reportError(P.b.IMMUTABLE_CACHE,W.pretty(this.configuration,i.y1.basename(o),"magenta")+" appears to be unused and would marked for deletion, but the cache is immutable"):(t.reportInfo(P.b.UNUSED_CACHE_ENTRY,W.pretty(this.configuration,i.y1.basename(o),"magenta")+" appears to be unused - removing"),await n.xfs.removePromise(o)))}e.markedFiles.clear()}}}},52779:(e,t,r)=>{"use strict";r.d(t,{c:()=>s,O:()=>a});var n=r(53887),i=r.n(n),A=r(36545),o=r(54143);const s=/^(?!v)[a-z0-9-.]+$/i;class a{supportsDescriptor(e,t){return!!A.F(e.range)||!!s.test(e.range)}supportsLocator(e,t){return!!i().valid(e.reference)||!!s.test(e.reference)}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,r){return r.resolver.bindDescriptor(this.forwardDescriptor(e,r),t,r)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,r){return await r.resolver.getCandidates(this.forwardDescriptor(e,r),t,r)}async getSatisfying(e,t,r){return await r.resolver.getSatisfying(this.forwardDescriptor(e,r),t,r)}async resolve(e,t){const r=await t.resolver.resolve(this.forwardLocator(e,t),t);return o.renamePackage(r,e)}forwardDescriptor(e,t){return o.makeDescriptor(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return o.makeLocator(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}}},35691:(e,t,r)=>{"use strict";r.d(t,{lk:()=>o,yG:()=>s});var n=r(92413),i=r(24304),A=r(92659);class o extends Error{constructor(e,t,r){super(t),this.reportExtra=r,this.reportCode=e}}class s{constructor(){this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}static progressViaCounter(e){let t,r=0,n=new Promise(e=>{t=e});const i=e=>{const i=t;n=new Promise(e=>{t=e}),r=e,i()},A=async function*(){for(;rA,set:i,tick:(e=0)=>{i(r+1)}}}reportInfoOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t))}reportWarningOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t))}reportErrorOnce(e,t,r){var n;const i=r&&r.key?r.key:t;this.reportedErrors.has(i)||(this.reportedErrors.add(i),this.reportError(e,t),null===(n=null==r?void 0:r.reportExtra)||void 0===n||n.call(r,this))}reportExceptionOnce(e){!function(e){return void 0!==e.reportCode}(e)?this.reportErrorOnce(A.b.EXCEPTION,e.stack||e.message,{key:e}):this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra})}createStreamReporter(e=null){const t=new n.PassThrough,r=new i.StringDecoder;let A="";return t.on("data",t=>{let n,i=r.write(t);do{if(n=i.indexOf("\n"),-1!==n){const t=A+i.substr(0,n);i=i.substr(n+1),A="",null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t)}}while(-1!==n);A+=i}),t.on("end",()=>{const t=r.end();""!==t&&(null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t))}),t}}},15815:(e,t,r)=>{"use strict";r.d(t,{Qw:()=>d,Pk:()=>C});var n=r(29148),i=r.n(n),A=r(92659),o=r(35691),s=r(71643);const a=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],c=new Set([A.b.FETCH_NOT_CACHED,A.b.UNUSED_CACHE_ENTRY]),g=process.env.GITHUB_ACTIONS?{start:e=>`::group::${e}\n`,end:e=>"::endgroup::\n"}:process.env.TRAVIS?{start:e=>`travis_fold:start:${e}\n`,end:e=>`travis_fold:end:${e}\n`}:process.env.GITLAB_CI?{start:e=>`section_start:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r${e}\n`,end:e=>`section_end:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r`}:null,l=new Date,u=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,h={patrick:{date:[17,3],chars:["🍀","🌱"],size:40},simba:{date:[19,7],chars:["🦁","🌴"],size:40},jack:{date:[31,10],chars:["🎃","🦇"],size:40},hogsfather:{date:[31,12],chars:["🎉","🎄"],size:40},default:{chars:["=","-"],size:80}},p=u&&Object.keys(h).find(e=>{const t=h[e];return!t.date||t.date[0]===l.getDate()&&t.date[1]===l.getMonth()+1})||"default";function f(e,{configuration:t,json:r}){const n="YN"+(null===e?0:e).toString(10).padStart(4,"0");return r||null!==e?n:s.pretty(t,n,"grey")}function d(e,{configuration:t,json:r}){const n=f(e,{configuration:t,json:r});if(!t.get("enableHyperlinks"))return n;if(null===e||e===A.b.UNNAMED)return n;return`]8;;${`https://yarnpkg.com/advanced/error-codes#${n}---${A.b[e]}`.toLowerCase()}${n}]8;;`}class C extends o.yG{constructor({configuration:e,stdout:t,json:r=!1,includeFooter:n=!0,includeLogs:i=!r,includeInfos:A=i,includeWarnings:o=i,forgettableBufferSize:s=5,forgettableNames:a=new Set}){super(),this.cacheHitCount=0,this.cacheMissCount=0,this.warningCount=0,this.errorCount=0,this.startTime=Date.now(),this.indent=0,this.progress=new Map,this.progressTime=0,this.progressFrame=0,this.progressTimeout=null,this.forgettableLines=[],this.configuration=e,this.forgettableBufferSize=s,this.forgettableNames=new Set([...a,...c]),this.includeFooter=n,this.includeInfos=A,this.includeWarnings=o,this.json=r,this.stdout=t}static async start(e,t){const r=new this(e),n=process.emitWarning;process.emitWarning=(e,t)=>{if("string"!=typeof e){const r=e;e=r.message,t=null!=t?t:r.name}const n=void 0!==t?`${t}: ${e}`:e;r.reportWarning(A.b.UNNAMED,n)};try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize(),process.emitWarning=n}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,t){this.cacheMissCount+=1,void 0===t||this.configuration.get("preferAggregateCacheInfo")||this.reportInfo(A.b.FETCH_NOT_CACHED,t)}startTimerSync(e,t){this.reportInfo(null,"┌ "+e);const r=Date.now();this.indent+=1;try{return t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const e=Date.now();this.indent-=1,this.configuration.get("enableTimers")&&e-r>200?this.reportInfo(null,"└ Completed in "+s.pretty(this.configuration,e-r,s.Type.DURATION)):this.reportInfo(null,"└ Completed")}}async startTimerPromise(e,t){this.reportInfo(null,"┌ "+e),null!==g&&this.stdout.write(g.start(e));const r=Date.now();this.indent+=1;try{return await t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const t=Date.now();this.indent-=1,null!==g&&this.stdout.write(g.end(e)),this.configuration.get("enableTimers")&&t-r>200?this.reportInfo(null,"└ Completed in "+s.pretty(this.configuration,t-r,s.Type.DURATION)):this.reportInfo(null,"└ Completed")}}async startCacheReport(e){const t=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(e){throw this.reportExceptionOnce(e),e}finally{null!==t&&this.reportCacheChanges(t)}}reportSeparator(){0===this.indent?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,t){if(!this.includeInfos)return;const r=`${s.pretty(this.configuration,"➤","blueBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(r),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(r,{truncate:!0});else this.writeLineWithForgettableReset(r)}reportWarning(e,t){this.warningCount+=1,this.includeWarnings&&(this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${s.pretty(this.configuration,"➤","yellowBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`))}reportError(e,t){this.errorCount+=1,this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${s.pretty(this.configuration,"➤","redBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`,{truncate:!1})}reportProgress(e){let t=!1;const r=Promise.resolve().then(async()=>{const r={progress:0,title:void 0};this.progress.set(e,r),this.refreshProgress(-1);for await(const{progress:n,title:i}of e)t||r.progress===n&&r.title===i||(r.progress=n,r.title=i,this.refreshProgress());n()}),n=()=>{t||(t=!0,this.progress.delete(e),this.refreshProgress(1))};return{...r,stop:n}}reportJson(e){this.json&&this.writeLineWithForgettableReset(""+JSON.stringify(e))}async finalize(){if(!this.includeFooter)return;let e="";e=this.errorCount>0?"Failed with errors":this.warningCount>0?"Done with warnings":"Done";const t=s.pretty(this.configuration,Date.now()-this.startTime,s.Type.DURATION),r=this.configuration.get("enableTimers")?`${e} in ${t}`:e;this.errorCount>0?this.reportError(A.b.UNNAMED,r):this.warningCount>0?this.reportWarning(A.b.UNNAMED,r):this.reportInfo(A.b.UNNAMED,r)}writeLine(e,{truncate:t}={}){this.clearProgress({clear:!0}),this.stdout.write(this.truncate(e,{truncate:t})+"\n"),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:t}={}){this.forgettableLines=[],this.writeLine(e,{truncate:t})}writeLines(e,{truncate:t}={}){this.clearProgress({delta:e.length});for(const r of e)this.stdout.write(this.truncate(r,{truncate:t})+"\n");this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:t}){const r=this.cacheHitCount-e,n=this.cacheMissCount-t;if(0===r&&0===n)return;let i="";this.cacheHitCount>1?i+=this.cacheHitCount+" packages were already cached":1===this.cacheHitCount?i+=" - one package was already cached":i+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?i+=`, ${this.cacheMissCount} had to be fetched`:1===this.cacheMissCount&&(i+=", one had to be fetched"):this.cacheMissCount>1?i+=` - ${this.cacheMissCount} packages had to be fetched`:1===this.cacheMissCount&&(i+=" - one package had to be fetched"),this.reportInfo(A.b.FETCH_NOT_CACHED,i)}clearProgress({delta:e=0,clear:t=!1}){this.configuration.get("enableProgressBars")&&!this.json&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||t)&&this.stdout.write(""))}writeProgress(){if(!this.configuration.get("enableProgressBars")||this.json)return;if(null!==this.progressTimeout&&clearTimeout(this.progressTimeout),this.progressTimeout=null,0===this.progress.size)return;const e=Date.now();e-this.progressTime>80&&(this.progressFrame=(this.progressFrame+1)%a.length,this.progressTime=e);const t=a[this.progressFrame],r=this.configuration.get("progressBarStyle")||p;if(!Object.prototype.hasOwnProperty.call(h,r))throw new Error("Assertion failed: Invalid progress bar style");const n=h[r],i="➤ YN0000: ┌ ".length,A=Math.max(0,Math.min(process.stdout.columns-i,80)),o=Math.floor(n.size*A/80);for(const{progress:e}of this.progress.values()){const r=o*e,i=n.chars[0].repeat(r),A=n.chars[1].repeat(o-r);this.stdout.write(`${s.pretty(this.configuration,"➤","blueBright")} ${this.formatName(null)}: ${t} ${i}${A}\n`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress()},1e3/60)}refreshProgress(e=0){this.clearProgress({delta:e}),this.writeProgress()}truncate(e,{truncate:t}={}){return this.configuration.get("enableProgressBars")||(t=!1),void 0===t&&(t=this.configuration.get("preferTruncatedLines")),t&&(e=i()(e,0,process.stdout.columns-1)),e}formatName(e){return f(e,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(e){return d(e,{configuration:this.configuration,json:this.json})}formatIndent(){return"│ ".repeat(this.indent)}}},81832:(e,t,r)=>{"use strict";r.d(t,{E:()=>a});var n,i=r(56537),A=r(46009),o=r(79669),s=r(73632);!function(e){e.VERSION="version",e.COMMAND_NAME="commandName",e.PLUGIN_NAME="pluginName",e.INSTALL_COUNT="installCount",e.PROJECT_COUNT="projectCount",e.WORKSPACE_COUNT="workspaceCount",e.DEPENDENCY_COUNT="dependencyCount",e.EXTENSION="packageExtension"}(n||(n={}));class a{constructor(e,t){this.values=new Map,this.hits=new Map,this.enumerators=new Map,this.configuration=e;const r=this.getRegistryPath();this.isNew=!i.xfs.existsSync(r),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue(n.VERSION,e)}reportCommandName(e){this.reportValue(n.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(n.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(n.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(n.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(n.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(n.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(n.DEPENDENCY_COUNT,String(e))}reportValue(e,t){s.getSetWithDefault(this.values,e).add(t)}reportEnumerator(e,t){s.getSetWithDefault(this.enumerators,e).add(t)}reportHit(e,t="*"){const r=s.getMapWithDefault(this.hits,e),n=s.getFactoryWithDefault(r,t,()=>0);r.set(t,n+1)}getRegistryPath(){const e=this.configuration.get("globalFolder");return A.y1.join(e,"telemetry.json")}sendReport(e){var t,r,n;const s=this.getRegistryPath();let a;try{a=i.xfs.readJsonSync(s)}catch(e){a={}}const c=Date.now(),g=24*this.configuration.get("telemetryInterval")*60*60*1e3,l=(null!==(t=a.lastUpdate)&&void 0!==t?t:c+g+Math.floor(g*Math.random()))+g;if(!(l>c&&null!=a.lastUpdate)){try{i.xfs.mkdirSync(A.y1.dirname(s),{recursive:!0}),i.xfs.writeJsonSync(s,{lastUpdate:c})}catch(e){return}if(!(l>c)&&a.blocks)for(const[t,i]of Object.entries(null!==(r=a.blocks)&&void 0!==r?r:{})){if(0===Object.keys(i).length)continue;const r=i;r.userId=t;for(const e of Object.keys(null!==(n=r.enumerators)&&void 0!==n?n:{}))r.enumerators[e]=r.enumerators[e].length;const A=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`;o.post(A,r,{configuration:this.configuration}).catch(()=>{})}}}applyChanges(){var e,t,r,n,o,s,a,c,g;const l=this.getRegistryPath();let u;try{u=i.xfs.readJsonSync(l)}catch(e){u={}}const h=null!==(e=this.configuration.get("telemetryUserId"))&&void 0!==e?e:"*",p=u.blocks=null!==(t=u.blocks)&&void 0!==t?t:{},f=p[h]=null!==(r=p[h])&&void 0!==r?r:{};for(const e of this.hits.keys()){const t=f.hits=null!==(n=f.hits)&&void 0!==n?n:{},r=t[e]=null!==(o=t[e])&&void 0!==o?o:{};for(const[t,n]of this.hits.get(e))r[t]=(null!==(s=r[t])&&void 0!==s?s:0)+n}for(const e of["values","enumerators"])for(const t of this[e].keys()){const r=f[e]=null!==(a=f[e])&&void 0!==a?a:{};r[t]=[...new Set([...null!==(c=r[t])&&void 0!==c?c:[],...null!==(g=this[e].get(t))&&void 0!==g?g:[]])]}i.xfs.mkdirSync(A.y1.dirname(l),{recursive:!0}),i.xfs.writeJsonSync(l,u)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch(e){}})}}},33720:(e,t,r)=>{"use strict";r.d(t,{$:()=>i});var n=r(35691);class i extends n.yG{reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}}},60895:(e,t,r)=>{"use strict";r.d(t,{N:()=>s});var n=r(17674),i=r(14626),A=r(46009),o=r(54143);class s{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=o.makeLocator(e,n);return t.fetcher.getLocalPath(i,t)}async fetch(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=o.makeLocator(e,n),A=await t.fetcher.fetch(i,t);return await this.ensureVirtualLink(e,A,t)}getLocatorFilename(e){return o.slugifyLocator(e)}async ensureVirtualLink(e,t,r){const o=t.packageFs.getRealPath(),s=r.project.configuration.get("virtualFolder"),a=this.getLocatorFilename(e),c=n.p.makeVirtualPath(s,a,o),g=new i.K(c,{baseFs:t.packageFs,pathUtils:A.y1});return{...t,packageFs:g}}}},17722:(e,t,r)=>{"use strict";r.d(t,{j:()=>h});var n=r(56537),i=r(46009),A=r(58592),o=r.n(A),s=r(53887),a=r.n(s),c=r(46611),g=r(94538),l=r(20624),u=r(54143);class h{constructor(e,{project:t}){this.workspacesCwds=new Set,this.dependencies=new Map,this.project=t,this.cwd=e}async setup(){this.manifest=n.xfs.existsSync(i.y1.join(this.cwd,c.G.fileName))?await c.G.find(this.cwd):new c.G,this.relativeCwd=i.y1.relative(this.project.cwd,this.cwd)||i.LZ.dot;const e=this.manifest.name?this.manifest.name:u.makeIdent(null,`${this.computeCandidateName()}-${l.makeHash(this.relativeCwd).substr(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=u.makeLocator(e,t),this.anchoredDescriptor=u.makeDescriptor(this.locator,`${g.d.protocol}${this.relativeCwd}`),this.anchoredLocator=u.makeLocator(this.locator,`${g.d.protocol}${this.relativeCwd}`);const r=this.manifest.workspaceDefinitions.map(({pattern:e})=>e),A=await o()(r,{absolute:!0,cwd:i.cS.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});A.sort();for(const e of A){const t=i.y1.resolve(this.cwd,i.cS.toPortablePath(e));n.xfs.existsSync(i.y1.join(t,"package.json"))&&this.workspacesCwds.add(t)}}accepts(e){const t=e.indexOf(":"),r=-1!==t?e.slice(0,t+1):null,n=-1!==t?e.slice(t+1):e;return r===g.d.protocol&&i.y1.normalize(n)===this.relativeCwd||(r===g.d.protocol&&"*"===n||!!a().validRange(n)&&(r===g.d.protocol?a().satisfies(null!==this.manifest.version?this.manifest.version:"0.0.0",n):!!this.project.configuration.get("enableTransparentWorkspaces")&&(null!==this.manifest.version&&a().satisfies(this.manifest.version,n))))}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":""+i.y1.basename(this.cwd)||"unnamed-workspace"}async persistManifest(){const e={};this.manifest.exportTo(e);const t=i.y1.join(this.cwd,c.G.fileName),r=JSON.stringify(e,null,this.manifest.indent)+"\n";await n.xfs.changeFilePromise(t,r,{automaticNewlines:!0})}}},94538:(e,t,r)=>{"use strict";r.d(t,{d:()=>i});var n=r(32485);class i{supportsDescriptor(e,t){if(e.range.startsWith(i.protocol))return!0;return null!==t.project.tryWorkspaceByDescriptor(e)}supportsLocator(e,t){return!!e.reference.startsWith(i.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[r.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,r){return null}async resolve(e,t){const r=t.project.getWorkspaceByCwd(e.reference.slice(i.protocol.length));return{...e,version:r.manifest.version||"0.0.0",languageName:"unknown",linkType:n.U.SOFT,dependencies:new Map([...r.manifest.dependencies,...r.manifest.devDependencies]),peerDependencies:new Map([...r.manifest.peerDependencies]),dependenciesMeta:r.manifest.dependenciesMeta,peerDependenciesMeta:r.manifest.peerDependenciesMeta,bin:r.manifest.bin}}}i.protocol="workspace:"},59355:(e,t,r)=>{"use strict";r.d(t,{o:()=>n});const n="2.3.2"},6220:(e,t,r)=>{"use strict";r.r(t),r.d(t,{EndStrategy:()=>n,pipevp:()=>g,execvp:()=>l});var n,i=r(46009),A=r(67566),o=r.n(A);function s(e){return null!==e&&"number"==typeof e.fd}function a(){}!function(e){e[e.Never=0]="Never",e[e.ErrorCode=1]="ErrorCode",e[e.Always=2]="Always"}(n||(n={}));let c=0;async function g(e,t,{cwd:r,env:A=process.env,strict:g=!1,stdin:l=null,stdout:u,stderr:p,end:f=n.Always}){const d=["pipe","pipe","pipe"];null===l?d[0]="ignore":s(l)&&(d[0]=l),s(u)&&(d[1]=u),s(p)&&(d[2]=p),0==c++&&process.on("SIGINT",a);const C=o()(e,t,{cwd:i.cS.fromPortablePath(r),env:{...A,PWD:i.cS.fromPortablePath(r)},stdio:d});s(l)||null===l||l.pipe(C.stdin),s(u)||C.stdout.pipe(u,{end:!1}),s(p)||C.stderr.pipe(p,{end:!1});const I=()=>{for(const e of new Set([u,p]))s(e)||e.end()};return new Promise((t,r)=>{C.on("error",e=>{0==--c&&process.off("SIGINT",a),f!==n.Always&&f!==n.ErrorCode||I(),r(e)}),C.on("close",(i,A)=>{0==--c&&process.off("SIGINT",a),(f===n.Always||f===n.ErrorCode&&i>0)&&I(),0!==i&&g?r(null!==i?new Error(`Child "${e}" exited with exit code ${i}`):new Error(`Child "${e}" exited with signal ${A}`)):t({code:h(i,A)})})})}async function l(e,t,{cwd:r,env:n=process.env,encoding:A="utf8",strict:s=!1}){const a=["ignore","pipe","pipe"],c=[],g=[],l=i.cS.fromPortablePath(r);void 0!==n.PWD&&(n={...n,PWD:l});const u=o()(e,t,{cwd:l,env:n,stdio:a});return u.stdout.on("data",e=>{c.push(e)}),u.stderr.on("data",e=>{g.push(e)}),await new Promise((t,r)=>{u.on("error",r),u.on("close",(n,i)=>{const o="buffer"===A?Buffer.concat(c):Buffer.concat(c).toString(A),a="buffer"===A?Buffer.concat(g):Buffer.concat(g).toString(A);0!==n&&s?r(Object.assign(new Error(`Child "${e}" exited with exit code ${n}\n\n${a}`),{code:h(n,i),stdout:o,stderr:a})):t({code:h(n,i),stdout:o,stderr:a})})})}const u=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function h(e,t){const r=u.get(t);return void 0!==r?128+r:null!=e?e:1}},81111:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getDefaultGlobalFolder:()=>A,getHomeFolder:()=>o,isFolderInside:()=>s});var n=r(46009),i=r(12087);function A(){if("win32"===process.platform){const e=n.cS.toPortablePath(process.env.LOCALAPPDATA||n.cS.join((0,i.homedir)(),"AppData","Local"));return n.y1.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){const e=n.cS.toPortablePath(process.env.XDG_DATA_HOME);return n.y1.resolve(e,"yarn/berry")}return n.y1.resolve(o(),".yarn/berry")}function o(){return n.cS.toPortablePath((0,i.homedir)()||"/usr/local/share")}function s(e,t){const r=n.y1.relative(t,e);return r&&!r.startsWith("..")&&!n.y1.isAbsolute(r)}},71643:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Type:()=>n,Style:()=>i,supportsColor:()=>l,supportsHyperlinks:()=>u,tuple:()=>d,applyStyle:()=>C,applyColor:()=>I,pretty:()=>E,prettyList:()=>m,json:()=>B});var n,i,A=r(46009),o=r(95882),s=r.n(o),a=r(73632),c=r(54143);!function(e){e.NO_HINT="NO_HINT",e.NULL="NULL",e.SCOPE="SCOPE",e.NAME="NAME",e.RANGE="RANGE",e.REFERENCE="REFERENCE",e.NUMBER="NUMBER",e.PATH="PATH",e.URL="URL",e.ADDED="ADDED",e.REMOVED="REMOVED",e.CODE="CODE",e.DURATION="DURATION",e.SIZE="SIZE",e.IDENT="IDENT",e.DESCRIPTOR="DESCRIPTOR",e.LOCATOR="LOCATOR",e.RESOLUTION="RESOLUTION",e.DEPENDENT="DEPENDENT"}(n||(n={})),function(e){e[e.BOLD=2]="BOLD"}(i||(i={}));const g=process.env.GITHUB_ACTIONS?{level:2}:s().supportsColor?{level:s().supportsColor.level}:{level:0},l=0!==g.level,u=l&&!process.env.GITHUB_ACTIONS,h=new(s().Instance)(g),p=new Map([[n.NO_HINT,null],[n.NULL,["#a853b5",129]],[n.SCOPE,["#d75f00",166]],[n.NAME,["#d7875f",173]],[n.RANGE,["#00afaf",37]],[n.REFERENCE,["#87afff",111]],[n.NUMBER,["#ffd700",220]],[n.PATH,["#d75fd7",170]],[n.URL,["#d75fd7",170]],[n.ADDED,["#5faf00",70]],[n.REMOVED,["#d70000",160]],[n.CODE,["#87afff",111]],[n.SIZE,["#ffd700",220]]]),f={[n.NUMBER]:{pretty:(e,t)=>""+t,json:e=>e},[n.IDENT]:{pretty:(e,t)=>c.prettyIdent(e,t),json:e=>c.stringifyIdent(e)},[n.LOCATOR]:{pretty:(e,t)=>c.prettyLocator(e,t),json:e=>c.stringifyLocator(e)},[n.DESCRIPTOR]:{pretty:(e,t)=>c.prettyDescriptor(e,t),json:e=>c.stringifyDescriptor(e)},[n.RESOLUTION]:{pretty:(e,{descriptor:t,locator:r})=>c.prettyResolution(e,t,r),json:({descriptor:e,locator:t})=>({descriptor:c.stringifyDescriptor(e),locator:null!==t?c.stringifyLocator(t):null})},[n.DEPENDENT]:{pretty:(e,{locator:t,descriptor:r})=>c.prettyDependent(e,t,r),json:({locator:e,descriptor:t})=>({locator:c.stringifyLocator(e),descriptor:c.stringifyDescriptor(t)})},[n.DURATION]:{pretty:(e,t)=>{if(t>6e4){const e=Math.floor(t/1e3/60),r=Math.ceil((t-60*e*1e3)/1e3);return 0===r?e+"m":`${e}m ${r}s`}{const e=Math.floor(t/1e3),r=t-1e3*e;return 0===r?e+"s":`${e}s ${r}ms`}},json:e=>e},[n.SIZE]:{pretty:(e,t)=>{const r=["KB","MB","GB","TB"];let i=r.length;for(;i>1&&t<1024**i;)i-=1;const A=1024**i;return I(e,`${Math.floor(100*t/A)/100} ${r[i-1]}`,n.NUMBER)},json:e=>e},[n.PATH]:{pretty:(e,t)=>I(e,A.cS.fromPortablePath(t),n.PATH),json:e=>A.cS.fromPortablePath(e)}};function d(e,t){return[t,e]}function C(e,t,r){return e.get("enableColors")?(r&i.BOLD&&(t=s().bold(t)),t):t}function I(e,t,r){if(!e.get("enableColors"))return t;const n=p.get(r);if(null===n)return t;const i=void 0===n?r:g.level>=3?n[0]:n[1],A="number"==typeof i?h.ansi256(i):i.startsWith("#")?h.hex(i):h[i];if("function"!=typeof A)throw new Error("Invalid format type "+i);return A(t)}function E(e,t,r){if(null===t)return I(e,"null",n.NULL);if(Object.prototype.hasOwnProperty.call(f,r)){return f[r].pretty(e,t)}if("string"!=typeof t)throw new Error("Assertion failed: Expected the value to be a string, got "+typeof t);return I(e,t,r)}function m(e,t,r,{separator:n=", "}={}){return[...t].map(t=>E(e,t,r)).join(n)}function B(e,t){if(null===e)return null;if(Object.prototype.hasOwnProperty.call(f,t))return a.overrideType(t),f[t].json(e);if("string"!=typeof e)throw new Error("Assertion failed: Expected the value to be a string, got "+typeof e);return e}},20624:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeHash:()=>a,checksumFile:()=>c,checksumPattern:()=>g});var n=r(56537),i=r(46009),A=r(76417),o=r(58592),s=r.n(o);function a(...e){const t=(0,A.createHash)("sha512");for(const r of e)t.update(r||"");return t.digest("hex")}function c(e){return new Promise((t,r)=>{const i=(0,A.createHash)("sha512"),o=n.xfs.createReadStream(e);o.on("data",e=>{i.update(e)}),o.on("error",e=>{r(e)}),o.on("end",()=>{t(i.digest("hex"))})})}async function g(e,{cwd:t}){const r=(await s()(e,{cwd:i.cS.fromPortablePath(t),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(e=>e+"/**/*"),o=await s()([e,...r],{cwd:i.cS.fromPortablePath(t),expandDirectories:!1,onlyFiles:!1,unique:!0});o.sort();const a=await Promise.all(o.map(async e=>{const t=[Buffer.from(e)],r=i.cS.toPortablePath(e),A=await n.xfs.lstatPromise(r);return A.isSymbolicLink()?t.push(Buffer.from(await n.xfs.readlinkPromise(r))):A.isFile()&&t.push(await n.xfs.readFilePromise(r)),t.join("\0")})),c=(0,A.createHash)("sha512");for(const e of a)c.update(e);return c.digest("hex")}},79669:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Method:()=>p,request:()=>f,get:()=>d,put:()=>C,post:()=>I,del:()=>E});var n=r(57211),i=r(98605),A=r(2401),o=r.n(A),s=r(98161),a=r.n(s),c=r(78835);const g=new Map,l=new i.Agent({keepAlive:!0}),u=new n.Agent({keepAlive:!0});function h(e){const t=new c.URL(e),r={host:t.hostname,headers:{}};return t.port&&(r.port=Number(t.port)),{proxy:r}}var p;async function f(e,t,{configuration:n,headers:i,json:A,jsonRequest:s=A,jsonResponse:g=A,method:f=p.GET}){if(!n.get("enableNetwork"))throw new Error(`Network access have been disabled by configuration (${f} ${e})`);const d=new c.URL(e);if("http:"===d.protocol&&!o().isMatch(d.hostname,n.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${d.hostname})`);const C=n.get("httpProxy"),I=n.get("httpsProxy"),E={agent:{http:C?a().httpOverHttp(h(C)):l,https:I?a().httpsOverHttp(h(I)):u},headers:i,method:f};E.responseType=g?"json":"buffer",null!==t&&(Buffer.isBuffer(t)||!s&&"string"==typeof t?E.body=t:E.json=t);const m=n.get("httpTimeout"),B=n.get("httpRetry"),{default:y}=await Promise.resolve().then(r.t.bind(r,22395,7)),w=y.extend({timeout:{socket:m},retry:B,...E});return n.getLimit("networkConcurrency")(()=>w(e))}async function d(e,{configuration:t,json:r,jsonResponse:n=r,...i}){let A=g.get(e);return A||(A=f(e,null,{configuration:t,...i}).then(t=>(g.set(e,t.body),t.body)),g.set(e,A)),!1===Buffer.isBuffer(A)&&(A=await A),n?JSON.parse(A.toString()):A}async function C(e,t,r){return(await f(e,t,{...r,method:p.PUT})).body}async function I(e,t,r){return(await f(e,t,{...r,method:p.POST})).body}async function E(e,t){return(await f(e,null,{...t,method:p.DELETE})).body}!function(e){e.GET="GET",e.PUT="PUT",e.POST="POST",e.DELETE="DELETE"}(p||(p={}))},32741:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Cache:()=>F.C,DEFAULT_RC_FILENAME:()=>R.tr,DEFAULT_LOCK_FILENAME:()=>R.nh,Configuration:()=>R.VK,FormatType:()=>R.a5,ProjectLookup:()=>R.EW,SettingsType:()=>R.a2,BuildType:()=>K.k,LightReport:()=>L.h,Manifest:()=>x.G,MessageName:()=>P.b,Project:()=>U.I,TAG_REGEXP:()=>T.c,ReportError:()=>O.lk,Report:()=>O.yG,StreamReport:()=>Y.Pk,TelemetryManager:()=>j.E,ThrowReport:()=>G.$,VirtualFetcher:()=>H.N,WorkspaceResolver:()=>J.d,Workspace:()=>_.j,YarnVersion:()=>q.o,LinkType:()=>z.U,hashUtils:()=>a,httpUtils:()=>c,execUtils:()=>A,folderUtils:()=>o,formatUtils:()=>s,miscUtils:()=>g,scriptUtils:()=>l,semverUtils:()=>u,structUtils:()=>h,tgzUtils:()=>n,treeUtils:()=>i});var n={};r.r(n),r.d(n,{convertToZip:()=>v,extractArchiveTo:()=>b,makeArchiveFromDirectory:()=>Q});var i={};r.r(i),r.d(i,{emitList:()=>M,emitTree:()=>N,treeNodeToJson:()=>k,treeNodeToTreeify:()=>S});var A=r(6220),o=r(81111),s=r(71643),a=r(20624),c=r(79669),g=r(73632),l=r(63088),u=r(36545),h=r(54143),p=r(78420),f=r(46009),d=r(90739),C=r(56537),I=r(29486),E=r(59938),m=r(31669),B=r(78761),y=r.n(B);const w=(0,m.promisify)(y().gunzip);async function Q(e,{baseFs:t=new p.S,prefixPath:r=f.LZ.root,compressionLevel:n,inMemory:i=!1}={}){const A=await(0,I.getLibzipPromise)();let o;if(i)o=new d.d(null,{libzip:A,level:n});else{const e=await C.xfs.mktempPromise(),t=f.y1.join(e,"archive.zip");o=new d.d(t,{create:!0,libzip:A,level:n})}const s=f.y1.resolve(f.LZ.root,r);return await o.copyPromise(s,e,{baseFs:t,stableTime:!0,stableSort:!0}),o}async function v(e,t){const r=await C.xfs.mktempPromise(),n=f.y1.join(r,"archive.zip"),{compressionLevel:i,...A}=t;return await b(e,new d.d(n,{create:!0,libzip:await(0,I.getLibzipPromise)(),level:i}),A)}async function b(e,t,{stripComponents:r=0,prefixPath:n=f.LZ.dot}={}){const i=E.K();i.on("entry",(e,i,A)=>{var o,s;if(function(e){if("/"===e.name[0])return!0;const t=e.name.split(/\//g);return!!t.some(e=>".."===e)||t.length<=r}(e))return void A();const a=f.y1.normalize(f.cS.toPortablePath(e.name)).replace(/\/$/,"").split(/\//g);if(a.length<=r)return i.resume(),void A();const c=a.slice(r).join("/"),g=f.y1.join(n,c);let l=420;switch("directory"!==e.type&&0==(73&(null!==(o=e.mode)&&void 0!==o?o:0))||(l|=73),e.type){case"directory":t.mkdirpSync(f.y1.dirname(g),{chmod:493,utimes:[315532800,315532800]}),t.mkdirSync(g),t.chmodSync(g,l),t.utimesSync(g,315532800,315532800),A();break;case"file":{t.mkdirpSync(f.y1.dirname(g),{chmod:493,utimes:[315532800,315532800]});const e=[];i.on("data",t=>e.push(t)),i.on("end",()=>{t.writeFileSync(g,Buffer.concat(e)),t.chmodSync(g,l),t.utimesSync(g,315532800,315532800),A()})}break;case"symlink":t.mkdirpSync(f.y1.dirname(g),{chmod:493,utimes:[315532800,315532800]}),t.symlinkSync(e.linkname,g),null===(s=t.lutimesSync)||void 0===s||s.call(t,g,315532800,315532800),A();break;default:i.resume(),A()}});const A=await w(e);return await new Promise((e,r)=>{i.on("error",e=>{r(e)}),i.on("finish",()=>{e(t)}),i.end(A)})}var D=r(94682);function S(e,{configuration:t}){const r={},n=(e,r)=>{const i=Array.isArray(e)?e.entries():Object.entries(e);for(const[e,{label:A,value:o,children:a}]of i){const i=[];void 0!==A&&i.push(s.applyStyle(t,A,s.Style.BOLD)),void 0!==o&&i.push(s.pretty(t,o[0],o[1])),0===i.length&&i.push(s.applyStyle(t,""+e,s.Style.BOLD));const c=r[i.join(": ")]={};void 0!==a&&n(a,c)}};if(void 0===e.children)throw new Error("The root node must only contain children");return n(e.children,r),r}function k(e){const t=e=>{var r;if(void 0===e.children){if(void 0===e.value)throw new Error("Assertion failed: Expected a value to be set if the children are missing");return s.json(e.value[0],e.value[1])}const n=Array.isArray(e.children)?e.children.entries():Object.entries(null!==(r=e.children)&&void 0!==r?r:{}),i=Array.isArray(e.children)?[]:{};for(const[e,r]of n)i[e]=t(r);return void 0===e.value?i:{value:s.json(e.value[0],e.value[1]),children:i}};return t(e)}function M(e,{configuration:t,stdout:r,json:n}){N({children:e.map(e=>({value:e}))},{configuration:t,stdout:r,json:n})}function N(e,{configuration:t,stdout:r,json:n,separators:i=0}){var A;if(n){const t=Array.isArray(e.children)?e.children.values():Object.values(null!==(A=e.children)&&void 0!==A?A:{});for(const e of t)r.write(JSON.stringify(k(e))+"\n");return}let o=(0,D.asTree)(S(e,{configuration:t}),!1,!1);if(i>=1&&(o=o.replace(/^([├└]─)/gm,"│\n$1").replace(/^│\n/,"")),i>=2)for(let e=0;e<2;++e)o=o.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,"$1$3 │\n$2").replace(/^│\n/,"");if(i>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(o)}var F=r(28148),R=r(27122),K=r(92409),L=r(62152),x=r(46611),P=r(92659),U=r(40376),T=r(52779),O=r(35691),Y=r(15815),j=r(81832),G=r(33720),H=r(60895),J=r(94538),_=r(17722),q=r(59355),z=r(32485)},73632:(e,t,r)=>{"use strict";r.r(t),r.d(t,{escapeRegExp:()=>a,overrideType:()=>c,assertNever:()=>g,validateEnum:()=>l,mapAndFilter:()=>u,mapAndFind:()=>p,isIndexableObject:()=>d,getFactoryWithDefault:()=>C,getArrayWithDefault:()=>I,getSetWithDefault:()=>E,getMapWithDefault:()=>m,releaseAfterUseAsync:()=>B,prettifyAsyncErrors:()=>y,prettifySyncErrors:()=>w,bufferStream:()=>Q,BufferStream:()=>v,DefaultStream:()=>b,dynamicRequire:()=>D,dynamicRequireNoCache:()=>S,sortMap:()=>k,buildIgnorePattern:()=>M,replaceEnvVariables:()=>N});var n=r(46009),i=r(40822),A=r(2401),o=r.n(A),s=r(92413);function a(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function c(e){}function g(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function l(e,t){if(!Object.values(e).includes(t))throw new Error("Assertion failed: Invalid value for enumeration");return t}function u(e,t){const r=[];for(const n of e){const e=t(n);e!==h&&r.push(e)}return r}e=r.hmd(e);const h=Symbol();function p(e,t){for(const r of e){const e=t(r);if(e!==f)return e}}u.skip=h;const f=Symbol();function d(e){return"object"==typeof e&&null!==e}function C(e,t,r){let n=e.get(t);return void 0===n&&e.set(t,n=r()),n}function I(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=[]),r}function E(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Set),r}function m(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Map),r}async function B(e,t){if(null==t)return await e();try{return await e()}finally{await t()}}async function y(e,t){try{return await e()}catch(e){throw e.message=t(e.message),e}}function w(e,t){try{return e()}catch(e){throw e.message=t(e.message),e}}async function Q(e){return await new Promise((t,r)=>{const n=[];e.on("error",e=>{r(e)}),e.on("data",e=>{n.push(e)}),e.on("end",()=>{t(Buffer.concat(n))})})}p.skip=f;class v extends s.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),r(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}}class b extends s.Transform{constructor(e=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=e}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,r(null,e)}_flush(e){this.active&&this.ifEmpty.length>0&&e(null,this.ifEmpty)}}function D(e){return"undefined"!=typeof require?require(e):r(32178)(e)}function S(t){const i=n.cS.fromPortablePath(t),A=r.c[i];let o;delete r.c[i];try{o=D(i);const t=r.c[i],n=e.children.indexOf(t);-1!==n&&e.children.splice(n,1)}finally{r.c[i]=A}return o}function k(e,t){const r=Array.from(e);Array.isArray(t)||(t=[t]);const n=[];for(const e of t)n.push(r.map(t=>e(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function M(e){return 0===e.length?null:e.map(e=>`(${o().makeRe(e,{windows:!1}).source})`).join("|")}function N(e,{env:t}){return e.replace(/\${(?[\d\w_]+)(?:)?-?(?[^}]+)?}/g,(...e)=>{const{variableName:r,colon:n,fallback:A}=e[e.length-1],o=Object.prototype.hasOwnProperty.call(t,r),s=t[r];if(s)return s;if(o&&!s&&n)return A;if(o)return s;if(A)return A;throw new i.UsageError(`Environment variable not found (${r})`)})}},63088:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeScriptEnv:()=>b,prepareExternalProject:()=>S,hasPackageScript:()=>k,executePackageScript:()=>M,executePackageShellcode:()=>N,executeWorkspaceScript:()=>R,hasWorkspaceScript:()=>K,executeWorkspaceLifecycleScript:()=>L,maybeExecuteWorkspaceLifecycleScript:()=>x,getPackageAccessibleBinaries:()=>P,getWorkspaceAccessibleBinaries:()=>U,executePackageAccessibleBinary:()=>T,executeWorkspaceAccessibleBinary:()=>O});var n,i=r(46009),A=r(53660),o=r(75448),s=r(56537),a=r(29486),c=r(174),g=r(31228),l=r(61814),u=r.n(l),h=r(61578),p=r.n(h),f=r(92413),d=r(46611),C=r(92659),I=r(35691),E=r(15815),m=r(59355),B=r(6220),y=r(71643),w=r(73632),Q=r(54143);async function v(e,t,r,n=[]){"win32"===process.platform&&await Promise.all([s.xfs.writeFilePromise(i.y1.format({dir:e,name:t,ext:".exe"}),(0,g.O9)()),s.xfs.writeFilePromise(i.y1.format({dir:e,name:t,ext:".exe.info"}),[r,...n].join("\n")),s.xfs.writeFilePromise(i.y1.format({dir:e,name:t,ext:".cmd"}),`@"${r}" ${n.map(e=>`"${e.replace('"','""')}"`).join(" ")} %*\n`)]),await s.xfs.writeFilePromise(i.y1.join(e,t),`#!/bin/sh\nexec "${r}" ${n.map(e=>`'${e.replace(/'/g,"'\"'\"'")}'`).join(" ")} "$@"\n`),await s.xfs.chmodPromise(i.y1.join(e,t),493)}async function b({project:e,binFolder:t,lifecycleScript:r}){const n={};for(const[e,t]of Object.entries(process.env))void 0!==t&&(n["path"!==e.toLowerCase()?e:"PATH"]=t);const A=i.cS.fromPortablePath(t);n.BERRY_BIN_FOLDER=i.cS.fromPortablePath(A),await v(t,"node",process.execPath),null!==m.o&&(await v(t,"run",process.execPath,[process.argv[1],"run"]),await v(t,"yarn",process.execPath,[process.argv[1]]),await v(t,"yarnpkg",process.execPath,[process.argv[1]]),await v(t,"node-gyp",process.execPath,[process.argv[1],"run","--top-level","node-gyp"])),e&&(n.INIT_CWD=i.cS.fromPortablePath(e.configuration.startingCwd)),n.PATH=n.PATH?`${A}${i.cS.delimiter}${n.PATH}`:""+A,n.npm_execpath=`${A}${i.cS.sep}yarn`,n.npm_node_execpath=`${A}${i.cS.sep}node`;const o=null!==m.o?"yarn/"+m.o:`yarn/${w.dynamicRequire("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${o} npm/? node/${process.versions.node} ${process.platform} ${process.arch}`,r&&(n.npm_lifecycle_event=r),e&&await e.configuration.triggerHook(e=>e.setupScriptEnvironment,e,n,async(e,r,n)=>await v(t,(0,i.Zu)(e),r,n)),n}!function(e){e.Yarn1="Yarn Classic",e.Yarn2="Yarn",e.Npm="npm",e.Pnpm="pnpm"}(n||(n={}));const D=p()(2);async function S(e,t,{configuration:r,report:A,workspace:o=null}){await D(async()=>{await s.xfs.mktempPromise(async a=>{const c=i.y1.join(a,"pack.log"),{stdout:g,stderr:l}=r.getSubprocessStreams(c,{prefix:e,report:A}),u=await async function(e){let t=null;try{t=await s.xfs.readFilePromise(i.y1.join(e,i.QS.lockfile),"utf8")}catch(e){}return null!==t?t.match(/^__metadata:$/m)?n.Yarn2:n.Yarn1:s.xfs.existsSync(i.y1.join(e,"package-lock.json"))?n.Npm:s.xfs.existsSync(i.y1.join(e,"pnpm-lock.yaml"))?n.Pnpm:null}(e);let h;null!==u?(g.write(`Installing the project using ${u}\n\n`),h=u):(g.write("No package manager detected; defaulting to Yarn\n\n"),h=n.Yarn2),await s.xfs.mktempPromise(async r=>{const A=await b({binFolder:r}),u=new Map([[n.Yarn1,async()=>{const r=null!==o?["workspace",o]:[],n=await B.pipevp("yarn",["set","version","classic","--only-if-needed"],{cwd:e,env:A,stdin:null,stdout:g,stderr:l,end:B.EndStrategy.ErrorCode});if(0!==n.code)return n.code;await s.xfs.appendFilePromise(i.y1.join(e,".npmignore"),"/.yarn\n"),g.write("\n");const a=await B.pipevp("yarn",["install"],{cwd:e,env:A,stdin:null,stdout:g,stderr:l,end:B.EndStrategy.ErrorCode});if(0!==a.code)return a.code;g.write("\n");const c=await B.pipevp("yarn",[...r,"pack","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:A,stdin:null,stdout:g,stderr:l});return 0!==c.code?c.code:0}],[n.Yarn2,async()=>{const r=null!==o?["workspace",o]:[];A.YARN_ENABLE_INLINE_BUILDS="1";const n=await B.pipevp("yarn",[...r,"pack","--install-if-needed","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:A,stdin:null,stdout:g,stderr:l});return 0!==n.code?n.code:0}],[n.Npm,async()=>{if(null!==o)throw new Error("Workspaces aren't supported by npm, which has been detected as the primary package manager for "+e);delete A.npm_config_user_agent;const r=await B.pipevp("npm",["install"],{cwd:e,env:A,stdin:null,stdout:g,stderr:l,end:B.EndStrategy.ErrorCode});if(0!==r.code)return r.code;const n=new f.PassThrough,a=w.bufferStream(n);n.pipe(g);const c=await B.pipevp("npm",["pack","--silent"],{cwd:e,env:A,stdin:null,stdout:n,stderr:l});if(0!==c.code)return c.code;const u=(await a).toString().trim(),h=i.y1.resolve(e,i.cS.toPortablePath(u));return await s.xfs.renamePromise(h,t),0}]]).get(h);if(void 0===u)throw new Error("Assertion failed: Unsupported workflow");const p=await u();if(0!==p&&void 0!==p)throw s.xfs.detachTemp(a),new I.lk(C.b.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${p}, logs can be found here: ${c})`)})})})}async function k(e,t,{project:r}){const n=r.storedPackages.get(e.locatorHash);if(!n)throw new Error(`Package for ${Q.prettyLocator(r.configuration,e)} not found in the project`);return await A.A.openPromise(async e=>{const A=r.configuration,s=r.configuration.getLinkers(),a={project:r,report:new E.Pk({stdout:new f.PassThrough,configuration:A})},c=s.find(e=>e.supportsPackage(n,a));if(!c)throw new Error(`The package ${Q.prettyLocator(r.configuration,n)} isn't supported by any of the available linkers`);const g=await c.findPackageLocation(n,a),l=new o.M(g,{baseFs:e});return(await d.G.find(i.LZ.dot,{baseFs:l})).scripts.has(t)},{libzip:await(0,a.getLibzipPromise)()})}async function M(e,t,r,{cwd:n,project:i,stdin:A,stdout:o,stderr:a}){return await s.xfs.mktempPromise(async s=>{const{manifest:g,env:l,cwd:u}=await F(e,{project:i,binFolder:s,cwd:n,lifecycleScript:t}),h=g.scripts.get(t);if(void 0===h)return 1;const p=await i.configuration.reduceHook(e=>e.wrapScriptExecution,async()=>await(0,c.execute)(h,r,{cwd:u,env:l,stdin:A,stdout:o,stderr:a}),i,e,t,{script:h,args:r,cwd:u,env:l,stdin:A,stdout:o,stderr:a});return await p()})}async function N(e,t,r,{cwd:n,project:i,stdin:A,stdout:o,stderr:a}){return await s.xfs.mktempPromise(async s=>{const{env:g,cwd:l}=await F(e,{project:i,binFolder:s,cwd:n});return await(0,c.execute)(t,r,{cwd:l,env:g,stdin:A,stdout:o,stderr:a})})}async function F(e,{project:t,binFolder:r,cwd:n,lifecycleScript:s}){const c=t.storedPackages.get(e.locatorHash);if(!c)throw new Error(`Package for ${Q.prettyLocator(t.configuration,e)} not found in the project`);return await A.A.openPromise(async A=>{const a=t.configuration,g=t.configuration.getLinkers(),l={project:t,report:new E.Pk({stdout:new f.PassThrough,configuration:a})},u=g.find(e=>e.supportsPackage(c,l));if(!u)throw new Error(`The package ${Q.prettyLocator(t.configuration,c)} isn't supported by any of the available linkers`);const h=await b({project:t,binFolder:r,lifecycleScript:s});for(const[n,[,A]]of await P(e,{project:t}))await v(r,(0,i.Zu)(n),process.execPath,[A]);const p=await u.findPackageLocation(c,l),C=new o.M(p,{baseFs:A}),I=await d.G.find(i.LZ.dot,{baseFs:C});return void 0===n&&(n=p),{manifest:I,binFolder:r,env:h,cwd:n}},{libzip:await(0,a.getLibzipPromise)()})}async function R(e,t,r,{cwd:n,stdin:i,stdout:A,stderr:o}){return await M(e.anchoredLocator,t,r,{cwd:n,project:e.project,stdin:i,stdout:A,stderr:o})}function K(e,t){return e.manifest.scripts.has(t)}async function L(e,t,{cwd:r,report:n}){const{configuration:A}=e.project;await s.xfs.mktempPromise(async o=>{const a=i.y1.join(o,t+".log"),c=`# This file contains the result of Yarn calling the "${t}" lifecycle script inside a workspace ("${e.cwd}")\n`,{stdout:g,stderr:l}=A.getSubprocessStreams(a,{report:n,prefix:Q.prettyLocator(A,e.anchoredLocator),header:c});n.reportInfo(C.b.LIFECYCLE_SCRIPT,`Calling the "${t}" lifecycle script`);const h=await R(e,t,[],{cwd:r,stdin:null,stdout:g,stderr:l});if(g.end(),l.end(),0!==h)throw s.xfs.detachTemp(o),new I.lk(C.b.LIFECYCLE_SCRIPT,`${u()(t)} script failed (exit code ${y.pretty(A,h,y.Type.NUMBER)}, logs can be found here: ${y.pretty(A,a,y.Type.PATH)}); run ${y.pretty(A,"yarn "+t,y.Type.CODE)} to investigate`)})}async function x(e,t,r){K(e,t)&&await L(e,t,r)}async function P(e,{project:t}){const r=t.configuration,n=new Map,A=t.storedPackages.get(e.locatorHash);if(!A)throw new Error(`Package for ${Q.prettyLocator(r,e)} not found in the project`);const o=new f.Writable,s=r.getLinkers(),a={project:t,report:new E.Pk({configuration:r,stdout:o})},c=new Set([e.locatorHash]);for(const e of A.dependencies.values()){const n=t.storedResolutions.get(e.descriptorHash);if(!n)throw new Error(`Assertion failed: The resolution (${Q.prettyDescriptor(r,e)}) should have been registered`);c.add(n)}for(const e of c){const r=t.storedPackages.get(e);if(!r)throw new Error(`Assertion failed: The package (${e}) should have been registered`);if(0===r.bin.size)continue;const A=s.find(e=>e.supportsPackage(r,a));if(!A)continue;const o=await A.findPackageLocation(r,a);for(const[e,t]of r.bin)n.set(e,[r,i.cS.fromPortablePath(i.y1.resolve(o,t))])}return n}async function U(e){return await P(e.anchoredLocator,{project:e.project})}async function T(e,t,r,{cwd:n,project:A,stdin:o,stdout:a,stderr:c,nodeArgs:g=[]}){const l=await P(e,{project:A}),u=l.get(t);if(!u)throw new Error(`Binary not found (${t}) for ${Q.prettyLocator(A.configuration,e)}`);return await s.xfs.mktempPromise(async e=>{const[,t]=u,h=await b({project:A,binFolder:e});for(const[e,[,t]]of l)await v(h.BERRY_BIN_FOLDER,(0,i.Zu)(e),process.execPath,[t]);let p;try{p=await B.pipevp(process.execPath,[...g,t,...r],{cwd:n,env:h,stdin:o,stdout:a,stderr:c})}finally{await s.xfs.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function O(e,t,r,{cwd:n,stdin:i,stdout:A,stderr:o}){return await T(e.anchoredLocator,t,r,{project:e.project,cwd:n,stdin:i,stdout:A,stderr:o})}},36545:(e,t,r)=>{"use strict";r.d(t,{v:()=>A,F:()=>s});var n=r(53887),i=r.n(n);function A(e,t,r=!1){let n,A;try{n=new(i().Range)(t,{includePrerelease:!0,loose:r})}catch(e){return!1}if(!e)return!1;try{A=new(i().SemVer)(e,n),A.prerelease&&(A.prerelease=[])}catch(e){return!1}return n.set.some(e=>{for(const t of e)t.semver.prerelease&&(t.semver.prerelease=[]);return e.every(e=>e.test(A))})}const o=new Map;function s(e){if(-1!==e.indexOf(":"))return null;let t=o.get(e);if(void 0!==t)return t;try{t=new(i().Range)(e)}catch(e){t=null}return o.set(e,t),t}},54143:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeIdent:()=>u,makeDescriptor:()=>h,makeLocator:()=>p,convertToIdent:()=>f,convertDescriptorToLocator:()=>d,convertLocatorToDescriptor:()=>C,convertPackageToLocator:()=>I,renamePackage:()=>E,copyPackage:()=>m,virtualizeDescriptor:()=>B,virtualizePackage:()=>y,isVirtualDescriptor:()=>w,isVirtualLocator:()=>Q,devirtualizeDescriptor:()=>v,devirtualizeLocator:()=>b,bindDescriptor:()=>D,bindLocator:()=>S,areIdentsEqual:()=>k,areDescriptorsEqual:()=>M,areLocatorsEqual:()=>N,areVirtualPackagesEquivalent:()=>F,parseIdent:()=>R,tryParseIdent:()=>K,parseDescriptor:()=>L,tryParseDescriptor:()=>x,parseLocator:()=>P,tryParseLocator:()=>U,parseRange:()=>T,parseFileStyleRange:()=>O,makeRange:()=>j,convertToManifestRange:()=>G,requirableIdent:()=>H,stringifyIdent:()=>J,stringifyDescriptor:()=>_,stringifyLocator:()=>q,slugifyIdent:()=>z,slugifyLocator:()=>W,prettyIdent:()=>V,prettyRange:()=>Z,prettyDescriptor:()=>$,prettyReference:()=>ee,prettyLocator:()=>te,prettyLocatorNoColors:()=>re,sortDescriptors:()=>ne,prettyWorkspace:()=>ie,prettyResolution:()=>Ae,prettyDependent:()=>oe,getIdentVendorPath:()=>se});var n=r(46009),i=r(71191),A=r.n(i),o=r(53887),s=r.n(o),a=r(71643),c=r(20624),g=r(73632),l=r(54143);function u(e,t){if(null==e?void 0:e.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:c.makeHash(e,t),scope:e,name:t}}function h(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:c.makeHash(e.identHash,t),range:t}}function p(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:c.makeHash(e.identHash,t),reference:t}}function f(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function d(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function C(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function I(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function E(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function m(e){return E(e,e)}function B(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return h(e,`virtual:${t}#${e.range}`)}function y(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return E(e,p(e,`virtual:${t}#${e.reference}`))}function w(e){return e.range.startsWith("virtual:")}function Q(e){return e.reference.startsWith("virtual:")}function v(e){if(!w(e))throw new Error("Not a virtual descriptor");return h(e,e.range.replace(/^[^#]*#/,""))}function b(e){if(!Q(e))throw new Error("Not a virtual descriptor");return p(e,e.reference.replace(/^[^#]*#/,""))}function D(e,t){return e.range.includes("::")?e:h(e,`${e.range}::${A().stringify(t)}`)}function S(e,t){return e.reference.includes("::")?e:p(e,`${e.reference}::${A().stringify(t)}`)}function k(e,t){return e.identHash===t.identHash}function M(e,t){return e.descriptorHash===t.descriptorHash}function N(e,t){return e.locatorHash===t.locatorHash}function F(e,t){if(!Q(e))throw new Error("Invalid package type");if(!Q(t))throw new Error("Invalid package type");if(!k(e,t))return!1;if(e.dependencies.size!==t.dependencies.size)return!1;for(const r of e.dependencies.values()){const e=t.dependencies.get(r.identHash);if(!e)return!1;if(!M(r,e))return!1}return!0}function R(e){const t=K(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}function K(e){const t=e.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!t)return null;const[,r,n]=t;return u(void 0!==r?r:null,n)}function L(e,t=!1){const r=x(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}function x(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,A]=r;if("unknown"===A)throw new Error(`Invalid range (${e})`);const o=void 0!==A?A:"unknown";return h(u(void 0!==n?n:null,i),o)}function P(e,t=!1){const r=U(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}function U(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,A]=r;if("unknown"===A)throw new Error(`Invalid reference (${e})`);const o=void 0!==A?A:"unknown";return p(u(void 0!==n?n:null,i),o)}function T(e,t){const r=e.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(null===r)throw new Error(`Invalid range (${e})`);const n=void 0!==r[1]?r[1]:null;if("string"==typeof(null==t?void 0:t.requireProtocol)&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if((null==t?void 0:t.requireProtocol)&&null===n)throw new Error(`Missing protocol (${n})`);const i=void 0!==r[3]?decodeURIComponent(r[2]):null;if((null==t?void 0:t.requireSource)&&null===i)throw new Error(`Missing source (${e})`);const o=void 0!==r[3]?decodeURIComponent(r[3]):decodeURIComponent(r[2]);return{protocol:n,source:i,selector:(null==t?void 0:t.parseSelector)?A().parse(o):o,params:void 0!==r[4]?A().parse(r[4]):null}}function O(e,{protocol:t}){const{selector:r,params:n}=T(e,{requireProtocol:t,requireBindings:!0});if("string"!=typeof n.locator)throw new Error("Assertion failed: Invalid bindings for "+e);return{parentLocator:P(n.locator,!0),path:r}}function Y(e){return e=(e=(e=e.replace(/%/g,"%25")).replace(/:/g,"%3A")).replace(/#/g,"%23")}function j({protocol:e,source:t,selector:r,params:n}){let i="";return null!==e&&(i+=""+e),null!==t&&(i+=Y(t)+"#"),i+=Y(r),function(e){return null!==e&&Object.entries(e).length>0}(n)&&(i+="::"+A().stringify(n)),i}function G(e){const{params:t,protocol:r,source:n,selector:i}=T(e);for(const e in t)e.startsWith("__")&&delete t[e];return j({protocol:r,source:n,params:t,selector:i})}function H(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function J(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function _(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function q(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function z(e){return null!==e.scope?`@${e.scope}-${e.name}`:e.name}function W(e){const{protocol:t,selector:r}=T(e.reference),i=null!==t?t.replace(/:$/,""):"exotic",A=s().valid(r),o=null!==A?`${i}-${A}`:""+i,a=(e.scope,`${z(e)}-${o}-${e.locatorHash.slice(0,10)}`);return(0,n.Zu)(a)}function V(e,t){return t.scope?`${a.pretty(e,`@${t.scope}/`,a.Type.SCOPE)}${a.pretty(e,t.name,a.Type.NAME)}`:""+a.pretty(e,t.name,a.Type.NAME)}function X(e){if(e.startsWith("virtual:")){return`${X(e.substr(e.indexOf("#")+1))} [${e.substr("virtual:".length,5)}]`}return e.replace(/\?.*/,"?[...]")}function Z(e,t){return""+a.pretty(e,X(t),a.Type.RANGE)}function $(e,t){return`${V(e,t)}${a.pretty(e,"@",a.Type.RANGE)}${Z(e,t.range)}`}function ee(e,t){return""+a.pretty(e,X(t),a.Type.REFERENCE)}function te(e,t){return`${V(e,t)}${a.pretty(e,"@",a.Type.REFERENCE)}${ee(e,t.reference)}`}function re(e){return`${J(e)}@${X(e.reference)}`}function ne(e){return g.sortMap(e,[e=>J(e),e=>e.range])}function ie(e,t){return V(e,t.locator)}function Ae(e,t,r){const n=w(t)?v(t):t;return null===r?`${l.prettyDescriptor(e,n)} → ${a.pretty(e,"✘","red")}`:n.identHash===r.identHash?`${l.prettyDescriptor(e,n)} → ${ee(e,r.reference)}`:`${l.prettyDescriptor(e,n)} → ${te(e,r)}`}function oe(e,t,r){return null===r?""+te(e,t):`${te(e,t)} (via ${l.prettyRange(e,r.range)})`}function se(e){return"node_modules/"+H(e)}},32485:(e,t,r)=>{"use strict";var n;r.d(t,{U:()=>n}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={}))},14626:(e,t,r)=>{"use strict";r.d(t,{K:()=>i});var n=r(42096);class i extends n.p{constructor(e,{baseFs:t,pathUtils:r}){super(r),this.target=e,this.baseFs=t}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}},75448:(e,t,r)=>{"use strict";r.d(t,{M:()=>o});var n=r(78420),i=r(42096),A=r(46009);class o extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(A.y1),this.target=this.pathUtils.normalize(e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?A.y1.normalize(e):this.baseFs.resolve(A.y1.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}},35398:(e,t,r)=>{"use strict";r.d(t,{uY:()=>a,fS:()=>c,qH:()=>g});var n=r(12087),i=r(35747),A=r.n(i),o=r(46009);async function s(e,t,r,n,i,a,c,g){const l=await async function(e,t){try{return await e.lstatPromise(t)}catch(e){return null}}(n,i),u=await a.lstatPromise(c);switch(g.stableTime?t.push(()=>r(i,315532800,315532800)):t.push(()=>r(i,u.atime,u.mtime)),!0){case u.isDirectory():await async function(e,t,r,n,i,A,o,a,c,g){if(null!==A&&!A.isDirectory()){if(!g.overwrite)return;e.push(async()=>n.removePromise(i)),A=null}null===A&&e.push(async()=>n.mkdirPromise(i,{mode:c.mode}));const l=await o.readdirPromise(a);if(g.stableSort)for(const A of l.sort())await s(e,t,r,n,n.pathUtils.join(i,A),o,o.pathUtils.join(a,A),g);else await Promise.all(l.map(async A=>{await s(e,t,r,n,n.pathUtils.join(i,A),o,o.pathUtils.join(a,A),g)}))}(e,t,r,n,i,l,a,c,u,g);break;case u.isFile():await async function(e,t,r,n,i,o,s,a,c,g){if(null!==o){if(!g.overwrite)return;e.push(async()=>n.removePromise(i)),o=null}n===s?e.push(async()=>n.copyFilePromise(a,i,A().constants.COPYFILE_FICLONE)):e.push(async()=>n.writeFilePromise(i,await s.readFilePromise(a)))}(e,0,0,n,i,l,a,c,0,g);break;case u.isSymbolicLink():await async function(e,t,r,n,i,A,s,a,c,g){if(null!==A){if(!g.overwrite)return;e.push(async()=>n.removePromise(i)),A=null}const l=await s.readlinkPromise(a);e.push(async()=>n.symlinkPromise((0,o.CI)(n.pathUtils,l),i))}(e,0,0,n,i,l,a,c,0,g);break;default:throw new Error(`Unsupported file type (${u.mode})`)}t.push(()=>n.chmodPromise(i,511&u.mode))}class a{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){const r=[e];for(;r.length>0;){const e=r.shift();if((await this.lstatPromise(e)).isDirectory()){const n=await this.readdirPromise(e);if(!t)throw new Error("Not supported");for(const t of n.sort())r.push(this.pathUtils.join(e,t))}else yield e}}async removePromise(e,{recursive:t=!0,maxRetries:r=5}={}){let n;try{n=await this.lstatPromise(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(n.isDirectory()){if(t)for(const t of await this.readdirPromise(e))await this.removePromise(this.pathUtils.resolve(e,t));let n=0;do{try{await this.rmdirPromise(e);break}catch(e){if("EBUSY"===e.code||"ENOTEMPTY"===e.code){if(0===r)break;await new Promise(e=>setTimeout(e,100*n));continue}throw e}}while(n++e()))}(this,e,r,t,{overwrite:n,stableSort:i,stableTime:A})}copySync(e,t,{baseFs:r=this,overwrite:n=!0}={}){const i=r.lstatSync(t),A=this.existsSync(e);if(i.isDirectory()){this.mkdirpSync(e);const i=r.readdirSync(t);for(const A of i)this.copySync(this.pathUtils.join(e,A),r.pathUtils.join(t,A),{baseFs:r,overwrite:n})}else if(i.isFile()){if(!A||n){A&&this.removeSync(e);const n=r.readFileSync(t);this.writeFileSync(e,n)}}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${i.mode.toString(8).padStart(6,"0")})`);if(!A||n){A&&this.removeSync(e);const n=r.readlinkSync(t);this.symlinkSync((0,o.CI)(this.pathUtils,n),e)}}const s=511&i.mode;this.chmodSync(e,s)}async changeFilePromise(e,t,{automaticNewlines:r}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch(e){}const i=r?g(n,t):t;n!==i&&await this.writeFilePromise(e,i)}changeFileSync(e,t,{automaticNewlines:r=!1}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch(e){}const i=r?g(n,t):t;n!==i&&this.writeFileSync(e,i)}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(r){if("EXDEV"!==r.code)throw r;await this.copyPromise(t,e),await this.removePromise(e)}}moveSync(e,t){try{this.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;this.copySync(t,e),this.removeSync(e)}}async lockPromise(e,t){const r=e+".flock",n=Date.now();let i=null;const A=async()=>{let e;try{[e]=await this.readJsonPromise(r)}catch(e){return Date.now()-n<500}try{return process.kill(e,0),!0}catch(e){return!1}};for(;null===i;)try{i=await this.openPromise(r,"wx")}catch(e){if("EEXIST"!==e.code)throw e;if(!await A())try{await this.unlinkPromise(r);continue}catch(e){}if(!(Date.now()-n<6e4))throw new Error(`Couldn't acquire a lock in a reasonable time (via ${r})`);await new Promise(e=>setTimeout(e,1e3/60))}await this.writePromise(i,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(i),await this.unlinkPromise(r)}catch(e){}}}async readJsonPromise(e){const t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}readJsonSync(e){const t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,JSON.stringify(t,null,2)+"\n")}writeJsonSync(e,t){return this.writeFileSync(e,JSON.stringify(t,null,2)+"\n")}async preserveTimePromise(e,t){const r=await this.lstatPromise(e),n=await t();void 0!==n&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,r.atime,r.mtime):r.isSymbolicLink()||await this.utimesPromise(e,r.atime,r.mtime)}async preserveTimeSync(e,t){const r=this.lstatSync(e),n=t();void 0!==n&&(e=n),this.lutimesSync?this.lutimesSync(e,r.atime,r.mtime):r.isSymbolicLink()||this.utimesSync(e,r.atime,r.mtime)}}a.DEFAULT_TIME=315532800;class c extends a{constructor(){super(o.y1)}}function g(e,t){return t.replace(/\r?\n/g,function(e){const t=e.match(/\r?\n/g);if(null===t)return n.EOL;const r=t.filter(e=>"\r\n"===e).length;return r>t.length-r?"\r\n":"\n"}(e))}},10489:(e,t,r)=>{"use strict";r.d(t,{n:()=>s});var n=r(78420),i=r(42096),A=r(46009);const o=A.LZ.root;class s extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(A.y1),this.target=this.pathUtils.resolve(A.LZ.root,e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(A.LZ.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){const t=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(o,e));if(t.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(o,this.pathUtils.relative(this.target,e))}}},15037:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(42096);class i extends n.p{constructor(e,t){super(t),this.instance=null,this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}}},78420:(e,t,r)=>{"use strict";r.d(t,{S:()=>a});var n=r(35747),i=r.n(n),A=r(35398),o=r(26984),s=r(46009);class a extends A.fS{constructor(e=i()){super(),this.realFs=e,void 0!==this.realFs.lutimes&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return s.LZ.root}resolve(e){return s.y1.resolve(e)}async openPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.open(s.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}openSync(e,t,r){return this.realFs.openSync(s.cS.fromPortablePath(e),t,r)}async readPromise(e,t,r=0,n=0,i=-1){return await new Promise((A,o)=>{this.realFs.read(e,t,r,n,i,(e,t)=>{e?o(e):A(t)})})}readSync(e,t,r,n,i){return this.realFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return await new Promise((A,o)=>"string"==typeof t?this.realFs.write(e,t,r,this.makeCallback(A,o)):this.realFs.write(e,t,r,n,i,this.makeCallback(A,o)))}writeSync(e,t,r,n,i){return"string"==typeof t?this.realFs.writeSync(e,t,r):this.realFs.writeSync(e,t,r,n,i)}async closePromise(e){await new Promise((t,r)=>{this.realFs.close(e,this.makeCallback(t,r))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,t){const r=null!==e?s.cS.fromPortablePath(e):e;return this.realFs.createReadStream(r,t)}createWriteStream(e,t){const r=null!==e?s.cS.fromPortablePath(e):e;return this.realFs.createWriteStream(r,t)}async realpathPromise(e){return await new Promise((t,r)=>{this.realFs.realpath(s.cS.fromPortablePath(e),{},this.makeCallback(t,r))}).then(e=>s.cS.toPortablePath(e))}realpathSync(e){return s.cS.toPortablePath(this.realFs.realpathSync(s.cS.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(t=>{this.realFs.exists(s.cS.fromPortablePath(e),t)})}accessSync(e,t){return this.realFs.accessSync(s.cS.fromPortablePath(e),t)}async accessPromise(e,t){return await new Promise((r,n)=>{this.realFs.access(s.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}existsSync(e){return this.realFs.existsSync(s.cS.fromPortablePath(e))}async statPromise(e){return await new Promise((t,r)=>{this.realFs.stat(s.cS.fromPortablePath(e),this.makeCallback(t,r))})}statSync(e){return this.realFs.statSync(s.cS.fromPortablePath(e))}async lstatPromise(e){return await new Promise((t,r)=>{this.realFs.lstat(s.cS.fromPortablePath(e),this.makeCallback(t,r))})}lstatSync(e){return this.realFs.lstatSync(s.cS.fromPortablePath(e))}async chmodPromise(e,t){return await new Promise((r,n)=>{this.realFs.chmod(s.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}chmodSync(e,t){return this.realFs.chmodSync(s.cS.fromPortablePath(e),t)}async chownPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.chown(s.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}chownSync(e,t,r){return this.realFs.chownSync(s.cS.fromPortablePath(e),t,r)}async renamePromise(e,t){return await new Promise((r,n)=>{this.realFs.rename(s.cS.fromPortablePath(e),s.cS.fromPortablePath(t),this.makeCallback(r,n))})}renameSync(e,t){return this.realFs.renameSync(s.cS.fromPortablePath(e),s.cS.fromPortablePath(t))}async copyFilePromise(e,t,r=0){return await new Promise((n,i)=>{this.realFs.copyFile(s.cS.fromPortablePath(e),s.cS.fromPortablePath(t),r,this.makeCallback(n,i))})}copyFileSync(e,t,r=0){return this.realFs.copyFileSync(s.cS.fromPortablePath(e),s.cS.fromPortablePath(t),r)}async appendFilePromise(e,t,r){return await new Promise((n,i)=>{const A="string"==typeof e?s.cS.fromPortablePath(e):e;r?this.realFs.appendFile(A,t,r,this.makeCallback(n,i)):this.realFs.appendFile(A,t,this.makeCallback(n,i))})}appendFileSync(e,t,r){const n="string"==typeof e?s.cS.fromPortablePath(e):e;r?this.realFs.appendFileSync(n,t,r):this.realFs.appendFileSync(n,t)}async writeFilePromise(e,t,r){return await new Promise((n,i)=>{const A="string"==typeof e?s.cS.fromPortablePath(e):e;r?this.realFs.writeFile(A,t,r,this.makeCallback(n,i)):this.realFs.writeFile(A,t,this.makeCallback(n,i))})}writeFileSync(e,t,r){const n="string"==typeof e?s.cS.fromPortablePath(e):e;r?this.realFs.writeFileSync(n,t,r):this.realFs.writeFileSync(n,t)}async unlinkPromise(e){return await new Promise((t,r)=>{this.realFs.unlink(s.cS.fromPortablePath(e),this.makeCallback(t,r))})}unlinkSync(e){return this.realFs.unlinkSync(s.cS.fromPortablePath(e))}async utimesPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.utimes(s.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}utimesSync(e,t,r){this.realFs.utimesSync(s.cS.fromPortablePath(e),t,r)}async lutimesPromiseImpl(e,t,r){const n=this.realFs.lutimes;if(void 0===n)throw(0,o.bk)("unavailable Node binding",`lutimes '${e}'`);return await new Promise((i,A)=>{n.call(this.realFs,s.cS.fromPortablePath(e),t,r,this.makeCallback(i,A))})}lutimesSyncImpl(e,t,r){const n=this.realFs.lutimesSync;if(void 0===n)throw(0,o.bk)("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,s.cS.fromPortablePath(e),t,r)}async mkdirPromise(e,t){return await new Promise((r,n)=>{this.realFs.mkdir(s.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}mkdirSync(e,t){return this.realFs.mkdirSync(s.cS.fromPortablePath(e),t)}async rmdirPromise(e,t){return await new Promise((r,n)=>{t?this.realFs.rmdir(s.cS.fromPortablePath(e),t,this.makeCallback(r,n)):this.realFs.rmdir(s.cS.fromPortablePath(e),this.makeCallback(r,n))})}rmdirSync(e,t){return this.realFs.rmdirSync(s.cS.fromPortablePath(e),t)}async linkPromise(e,t){return await new Promise((r,n)=>{this.realFs.link(s.cS.fromPortablePath(e),s.cS.fromPortablePath(t),this.makeCallback(r,n))})}linkSync(e,t){return this.realFs.linkSync(s.cS.fromPortablePath(e),s.cS.fromPortablePath(t))}async symlinkPromise(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return await new Promise((r,i)=>{this.realFs.symlink(s.cS.fromPortablePath(e.replace(/\/+$/,"")),s.cS.fromPortablePath(t),n,this.makeCallback(r,i))})}symlinkSync(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return this.realFs.symlinkSync(s.cS.fromPortablePath(e.replace(/\/+$/,"")),s.cS.fromPortablePath(t),n)}async readFilePromise(e,t){return await new Promise((r,n)=>{const i="string"==typeof e?s.cS.fromPortablePath(e):e;this.realFs.readFile(i,t,this.makeCallback(r,n))})}readFileSync(e,t){const r="string"==typeof e?s.cS.fromPortablePath(e):e;return this.realFs.readFileSync(r,t)}async readdirPromise(e,{withFileTypes:t}={}){return await new Promise((r,n)=>{t?this.realFs.readdir(s.cS.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(r,n)):this.realFs.readdir(s.cS.fromPortablePath(e),this.makeCallback(e=>r(e),n))})}readdirSync(e,{withFileTypes:t}={}){return t?this.realFs.readdirSync(s.cS.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(s.cS.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((t,r)=>{this.realFs.readlink(s.cS.fromPortablePath(e),this.makeCallback(t,r))}).then(e=>s.cS.toPortablePath(e))}readlinkSync(e){return s.cS.toPortablePath(this.realFs.readlinkSync(s.cS.fromPortablePath(e)))}async truncatePromise(e,t){return await new Promise((r,n)=>{this.realFs.truncate(s.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}truncateSync(e,t){return this.realFs.truncateSync(s.cS.fromPortablePath(e),t)}watch(e,t,r){return this.realFs.watch(s.cS.fromPortablePath(e),t,r)}watchFile(e,t,r){return this.realFs.watchFile(s.cS.fromPortablePath(e),t,r)}unwatchFile(e,t){return this.realFs.unwatchFile(s.cS.fromPortablePath(e),t)}makeCallback(e,t){return(r,n)=>{r?t(r):e(n)}}}},39725:(e,t,r)=>{"use strict";r.d(t,{i:()=>A});var n=r(42096),i=r(46009);class A extends n.p{constructor(e){super(i.cS),this.baseFs=e}mapFromBase(e){return i.cS.fromPortablePath(e)}mapToBase(e){return i.cS.toPortablePath(e)}}},42096:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var n=r(35398);class i extends n.uY{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}openPromise(e,t,r){return this.baseFs.openPromise(this.mapToBase(e),t,r)}openSync(e,t,r){return this.baseFs.openSync(this.mapToBase(e),t,r)}async readPromise(e,t,r,n,i){return await this.baseFs.readPromise(e,t,r,n,i)}readSync(e,t,r,n,i){return this.baseFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i)}writeSync(e,t,r,n,i){return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i)}closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(null!==e?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(null!==e?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}statPromise(e){return this.baseFs.statPromise(this.mapToBase(e))}statSync(e){return this.baseFs.statSync(this.mapToBase(e))}lstatPromise(e){return this.baseFs.lstatPromise(this.mapToBase(e))}lstatSync(e){return this.baseFs.lstatSync(this.mapToBase(e))}chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}chownPromise(e,t,r){return this.baseFs.chownPromise(this.mapToBase(e),t,r)}chownSync(e,t,r){return this.baseFs.chownSync(this.mapToBase(e),t,r)}renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}copyFilePromise(e,t,r=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),r)}copyFileSync(e,t,r=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),r)}appendFilePromise(e,t,r){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,r)}appendFileSync(e,t,r){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,r)}writeFilePromise(e,t,r){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,r)}writeFileSync(e,t,r){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,r)}unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}utimesPromise(e,t,r){return this.baseFs.utimesPromise(this.mapToBase(e),t,r)}utimesSync(e,t,r){return this.baseFs.utimesSync(this.mapToBase(e),t,r)}mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}symlinkPromise(e,t,r){return this.baseFs.symlinkPromise(this.mapToBase(e),this.mapToBase(t),r)}symlinkSync(e,t,r){return this.baseFs.symlinkSync(this.mapToBase(e),this.mapToBase(t),r)}readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,{withFileTypes:t}={}){return this.baseFs.readdirPromise(this.mapToBase(e),{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){return this.baseFs.readdirSync(this.mapToBase(e),{withFileTypes:t})}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}watch(e,t,r){return this.baseFs.watch(this.mapToBase(e),t,r)}watchFile(e,t,r){return this.baseFs.watchFile(this.mapToBase(e),t,r)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return"number"==typeof e?e:this.mapToBase(e)}}},17674:(e,t,r)=>{"use strict";r.d(t,{p:()=>c});var n=r(78420),i=r(42096),A=r(46009);const o=/^[0-9]+$/,s=/^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,a=/^([^/]+-)?[a-f0-9]+$/;class c extends i.p{constructor({baseFs:e=new n.S}={}){super(A.y1),this.baseFs=e}static makeVirtualPath(e,t,r){if("$$virtual"!==A.y1.basename(e))throw new Error('Assertion failed: Virtual folders must be named "$$virtual"');if(!A.y1.basename(t).match(a))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");const n=A.y1.relative(A.y1.dirname(e),r).split("/");let i=0;for(;i{"use strict";r.d(t,{k:()=>f,d:()=>d});var n=r(35747),i=r(92413),A=r(31669),o=r(78761),s=r.n(o),a=r(35398),c=r(78420),g=r(91438),l=r(22004),u=r(26984),h=r(46009),p=r(65760);const f="mixed";class d extends a.fS{constructor(e,t){super(),this.lzSource=null,this.listings=new Map,this.entries=new Map,this.fileSources=new Map,this.fds=new Map,this.nextFd=0,this.ready=!1,this.readOnly=!1,this.libzip=t.libzip;const r=t;if(this.level=void 0!==r.level?r.level:f,null===e&&(e=Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),"string"==typeof e){const{baseFs:t=new c.S}=r;this.baseFs=t,this.path=e}else this.path=null,this.baseFs=null;if(t.stats)this.stats=t.stats;else if("string"==typeof e)try{this.stats=this.baseFs.statSync(e)}catch(e){if("ENOENT"!==e.code||!r.create)throw e;this.stats=p.makeDefaultStats()}else this.stats=p.makeDefaultStats();const n=this.libzip.malloc(4);try{let i=0;if("string"==typeof e&&r.create&&(i|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),t.readOnly&&(i|=this.libzip.ZIP_RDONLY,this.readOnly=!0),"string"==typeof e)this.zip=this.libzip.open(h.cS.fromPortablePath(e),i,n);else{const t=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(t,i,n),this.lzSource=t}catch(e){throw this.libzip.source.free(t),e}}if(0===this.zip){const e=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(e,this.libzip.getValue(n,"i32")),this.makeLibzipError(e)}}finally{this.libzip.free(n)}this.listings.set(h.LZ.root,new Set);const i=this.libzip.getNumEntries(this.zip,0);for(let e=0;ee)throw new Error("Overread");const n=this.libzip.HEAPU8.subarray(t,t+e);return Buffer.from(n)}finally{this.libzip.free(t)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw u.Vw("archive closed, close");(0,g.L)(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly)return void this.discardAndClose();const e=this.baseFs.existsSync(this.path)?511&this.baseFs.statSync(this.path).mode:null;if(-1===this.libzip.close(this.zip))throw this.makeLibzipError(this.libzip.getError(this.zip));null===e?this.baseFs.chmodSync(this.path,this.stats.mode):e!==(511&this.baseFs.statSync(this.path).mode)&&this.baseFs.chmodSync(this.path,e),this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(e){return h.y1.resolve(h.LZ.root,e)}async openPromise(e,t,r){return this.openSync(e,t,r)}openSync(e,t,r){const n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}hasOpenFileHandles(){return!!this.fds.size}async readPromise(e,t,r,n,i){return this.readSync(e,t,r,n,i)}readSync(e,t,r=0,n=0,i=-1){const A=this.fds.get(e);if(void 0===A)throw u.Ch("read");let o;o=-1===i||null===i?A.cursor:i;const s=this.readFileSync(A.p);s.copy(t,r,o,o+n);const a=Math.max(0,Math.min(s.length-o,n));return-1!==i&&null!==i||(A.cursor+=a),a}async writePromise(e,t,r,n,i){return"string"==typeof t?this.writeSync(e,t,i):this.writeSync(e,t,r,n,i)}writeSync(e,t,r,n,i){if(void 0===this.fds.get(e))throw u.Ch("read");throw new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(void 0===this.fds.get(e))throw u.Ch("read");this.fds.delete(e)}createReadStream(e,{encoding:t}={}){if(null===e)throw new Error("Unimplemented");let r=this.openSync(e,"r");const n=()=>{-1!==r&&(this.closeSync(r),r=-1)},A=Object.assign(new i.PassThrough,{bytesRead:0,path:e,close:()=>{clearImmediate(o),n()},_destroy:(e,t)=>{clearImmediate(o),n(),t(e)}}),o=setImmediate(()=>{try{const r=this.readFileSync(e,t);A.bytesRead=r.length,A.end(r),A.destroy()}catch(e){A.emit("error",e),A.end(),A.destroy()}finally{n()}});return A}createWriteStream(e,{encoding:t}={}){if(this.readOnly)throw u.YW(`open '${e}'`);if(null===e)throw new Error("Unimplemented");const r=[];let n=this.openSync(e,"w");const A=()=>{if(-1!==n)try{this.writeFileSync(e,Buffer.concat(r),t)}finally{this.closeSync(n),n=-1}},o=Object.assign(new i.PassThrough,{bytesWritten:0,path:e,close:()=>{o.end(),A()},_destroy:(e,t)=>{A(),t(e)}});return o.on("data",e=>{const t=Buffer.from(e);o.bytesWritten+=t.length,r.push(t)}),o.on("end",()=>{A()}),o}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){const t=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw u.z6(`lstat '${e}'`);return t}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw u.Vw(`archive closed, existsSync '${e}'`);if(0===this.symlinkCount){const t=h.y1.resolve(h.LZ.root,e);return this.entries.has(t)||this.listings.has(t)}let t;try{t=this.resolveFilename(`stat '${e}'`,e)}catch(e){return!1}return this.entries.has(t)||this.listings.has(t)}async accessPromise(e,t){return this.accessSync(e,t)}accessSync(e,t=n.constants.F_OK){const r=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw u.z6(`access '${e}'`);if(this.readOnly&&t&n.constants.W_OK)throw u.YW(`access '${e}'`)}async statPromise(e){return this.statSync(e)}statSync(e){const t=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw u.z6(`stat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw u.Ab(`stat '${e}'`);return this.statImpl(`stat '${e}'`,t)}async lstatPromise(e){return this.lstatSync(e)}lstatSync(e){const t=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw u.z6(`lstat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw u.Ab(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,t)}statImpl(e,t){const r=this.entries.get(t);if(void 0!==r){const e=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,r,0,0,e))throw this.makeLibzipError(this.libzip.getError(this.zip));const n=this.stats.uid,i=this.stats.gid,A=this.libzip.struct.statSize(e)>>>0,o=512,s=Math.ceil(A/o),a=1e3*(this.libzip.struct.statMtime(e)>>>0),c=a,g=a,u=a,h=new Date(c),f=new Date(g),d=new Date(u),C=new Date(a),I=this.listings.has(t)?l.QB:this.isSymbolicLink(r)?l.Zv:l.Pe,E=I===l.QB?493:420,m=I|511&this.getUnixMode(r,E);return Object.assign(new p.StatEntry,{uid:n,gid:i,size:A,blksize:o,blocks:s,atime:h,birthtime:f,ctime:d,mtime:C,atimeMs:c,birthtimeMs:g,ctimeMs:u,mtimeMs:a,mode:m})}if(this.listings.has(t)){const e=this.stats.uid,t=this.stats.gid,r=0,n=512,i=0,A=this.stats.mtimeMs,o=this.stats.mtimeMs,s=this.stats.mtimeMs,a=this.stats.mtimeMs,c=new Date(A),g=new Date(o),u=new Date(s),h=new Date(a),f=493|l.QB;return Object.assign(new p.StatEntry,{uid:e,gid:t,size:r,blksize:n,blocks:i,atime:c,birthtime:g,ctime:u,mtime:h,atimeMs:A,birthtimeMs:o,ctimeMs:s,mtimeMs:a,mode:f})}throw new Error("Unreachable")}getUnixMode(e,t){if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?t:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let t=this.listings.get(e);if(t)return t;const r=this.registerListing(h.y1.dirname(e));return t=new Set,r.add(h.y1.basename(e)),this.listings.set(e,t),t}registerEntry(e,t){this.registerListing(h.y1.dirname(e)).add(h.y1.basename(e)),this.entries.set(e,t)}unregisterListing(e){this.listings.delete(e);const t=this.listings.get(h.y1.dirname(e));null==t||t.delete(h.y1.basename(e))}unregisterEntry(e){this.unregisterListing(e);const t=this.entries.get(e);this.entries.delete(e),void 0!==t&&(this.fileSources.delete(t),this.isSymbolicLink(t)&&this.symlinkCount--)}deleteEntry(e,t){this.unregisterEntry(e);if(-1===this.libzip.delete(this.zip,t))throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(e,t,r=!0){if(!this.ready)throw u.Vw("archive closed, "+e);let n=h.y1.resolve(h.LZ.root,t);if("/"===n)return h.LZ.root;const i=this.entries.get(n);if(r&&void 0!==i){if(0!==this.symlinkCount&&this.isSymbolicLink(i)){const t=this.getFileSource(i).toString();return this.resolveFilename(e,h.y1.resolve(h.y1.dirname(n),t),!0)}return n}for(;;){const t=this.resolveFilename(e,h.y1.dirname(n),!0),i=this.listings.has(t),A=this.entries.has(t);if(!i&&!A)throw u.z6(e);if(!i)throw u.Ab(e);if(n=h.y1.resolve(t,h.y1.basename(n)),!r||0===this.symlinkCount)break;const o=this.libzip.name.locate(this.zip,n.slice(1));if(-1===o)break;if(!this.isSymbolicLink(o))break;{const e=this.getFileSource(o).toString();n=h.y1.resolve(h.y1.dirname(n),e)}}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));const t=this.libzip.malloc(e.byteLength);if(!t)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,t,e.byteLength).set(e),{buffer:t,byteLength:e.byteLength}}allocateUnattachedSource(e){const t=this.libzip.struct.errorS(),{buffer:r,byteLength:n}=this.allocateBuffer(e),i=this.libzip.source.fromUnattachedBuffer(r,n,0,!0,t);if(0===i)throw this.libzip.free(t),this.makeLibzipError(t);return i}allocateSource(e){const{buffer:t,byteLength:r}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,t,r,0,!0);if(0===n)throw this.libzip.free(t),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(e,t){const r=Buffer.isBuffer(t)?t:Buffer.from(t),n=h.y1.relative(h.LZ.root,e),i=this.allocateSource(t);try{const e=this.libzip.file.add(this.zip,n,i,this.libzip.ZIP_FL_OVERWRITE);if(-1===e)throw this.makeLibzipError(this.libzip.getError(this.zip));if("mixed"!==this.level){let t;t=0===this.level?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(-1===this.libzip.file.setCompression(this.zip,e,0,t,this.level))throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(e,r),e}catch(e){throw this.libzip.source.free(i),e}}isSymbolicLink(e){if(0===this.symlinkCount)return!1;if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)return!1;return(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&l.wK)===l.Zv}getFileSource(e,t={asyncDecompress:!1}){const r=this.fileSources.get(e);if(void 0!==r)return r;const n=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,e,0,0,n))throw this.makeLibzipError(this.libzip.getError(this.zip));const i=this.libzip.struct.statCompSize(n),A=this.libzip.struct.statCompMethod(n),o=this.libzip.malloc(i);try{const r=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(0===r)throw this.makeLibzipError(this.libzip.getError(this.zip));try{const n=this.libzip.fread(r,o,i,0);if(-1===n)throw this.makeLibzipError(this.libzip.file.getError(r));if(ni)throw new Error("Overread");const a=this.libzip.HEAPU8.subarray(o,o+i),c=Buffer.from(a);if(0===A)return this.fileSources.set(e,c),c;if(t.asyncDecompress)return new Promise((t,r)=>{s().inflateRaw(c,(n,i)=>{n?r(n):(this.fileSources.set(e,i),t(i))})});{const t=s().inflateRawSync(c);return this.fileSources.set(e,t),t}}finally{this.libzip.fclose(r)}}finally{this.libzip.free(o)}}async chmodPromise(e,t){return this.chmodSync(e,t)}chmodSync(e,t){if(this.readOnly)throw u.YW(`chmod '${e}'`);t&=493;const r=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(r);if(void 0===n)throw new Error(`Assertion failed: The entry should have been registered (${r})`);const i=-512&this.getUnixMode(n,0|l.Pe)|t;if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,i<<16))throw this.makeLibzipError(this.libzip.getError(this.zip))}async chownPromise(e,t,r){return this.chownSync(e,t,r)}chownSync(e,t,r){throw new Error("Unimplemented")}async renamePromise(e,t){return this.renameSync(e,t)}renameSync(e,t){throw new Error("Unimplemented")}async copyFilePromise(e,t,r){const{indexSource:n,indexDest:i,resolvedDestP:A}=this.prepareCopyFile(e,t,r),o=await this.getFileSource(n,{asyncDecompress:!0}),s=this.setFileSource(A,o);s!==i&&this.registerEntry(A,s)}copyFileSync(e,t,r=0){const{indexSource:n,indexDest:i,resolvedDestP:A}=this.prepareCopyFile(e,t,r),o=this.getFileSource(n),s=this.setFileSource(A,o);s!==i&&this.registerEntry(A,s)}prepareCopyFile(e,t,r=0){if(this.readOnly)throw u.YW(`copyfile '${e} -> '${t}'`);if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw u.bk("unsupported clone operation",`copyfile '${e}' -> ${t}'`);const i=this.resolveFilename(`copyfile '${e} -> ${t}'`,e),A=this.entries.get(i);if(void 0===A)throw u.hq(`copyfile '${e}' -> '${t}'`);const o=this.resolveFilename(`copyfile '${e}' -> ${t}'`,t),s=this.entries.get(o);if(0!=(r&(n.constants.COPYFILE_EXCL|n.constants.COPYFILE_FICLONE_FORCE))&&void 0!==s)throw u.cT(`copyfile '${e}' -> '${t}'`);return{indexSource:A,resolvedDestP:o,indexDest:s}}async appendFilePromise(e,t,r){if(this.readOnly)throw u.YW(`open '${e}'`);return void 0===r?r={flag:"a"}:"string"==typeof r?r={flag:"a",encoding:r}:void 0===r.flag&&(r={flag:"a",...r}),this.writeFilePromise(e,t,r)}appendFileSync(e,t,r={}){if(this.readOnly)throw u.YW(`open '${e}'`);return void 0===r?r={flag:"a"}:"string"==typeof r?r={flag:"a",encoding:r}:void 0===r.flag&&(r={flag:"a",...r}),this.writeFileSync(e,t,r)}async writeFilePromise(e,t,r){const{encoding:n,index:i,resolvedP:A}=this.prepareWriteFile(e,r);void 0!==i&&"object"==typeof r&&r.flag&&r.flag.includes("a")&&(t=Buffer.concat([await this.getFileSource(i,{asyncDecompress:!0}),Buffer.from(t)])),null!==n&&(t=t.toString(n));const o=this.setFileSource(A,t);o!==i&&this.registerEntry(A,o)}writeFileSync(e,t,r){const{encoding:n,index:i,resolvedP:A}=this.prepareWriteFile(e,r);void 0!==i&&"object"==typeof r&&r.flag&&r.flag.includes("a")&&(t=Buffer.concat([this.getFileSource(i),Buffer.from(t)])),null!==n&&(t=t.toString(n));const o=this.setFileSource(A,t);o!==i&&this.registerEntry(A,o)}prepareWriteFile(e,t){if("string"!=typeof e)throw u.Ch("read");if(this.readOnly)throw u.YW(`open '${e}'`);const r=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(r))throw u.GA(`open '${e}'`);let n=null;"string"==typeof t?n=t:"object"==typeof t&&t.encoding&&(n=t.encoding);return{encoding:n,resolvedP:r,index:this.entries.get(r)}}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){if(this.readOnly)throw u.YW(`unlink '${e}'`);const t=this.resolveFilename(`unlink '${e}'`,e);if(this.listings.has(t))throw u.GA(`unlink '${e}'`);const r=this.entries.get(t);if(void 0===r)throw u.hq(`unlink '${e}'`);this.deleteEntry(t,r)}async utimesPromise(e,t,r){return this.utimesSync(e,t,r)}utimesSync(e,t,r){if(this.readOnly)throw u.YW(`utimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,r)}async lutimesPromise(e,t,r){return this.lutimesSync(e,t,r)}lutimesSync(e,t,r){if(this.readOnly)throw u.YW(`lutimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,r)}utimesImpl(e,t){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));const r=this.entries.get(e);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.setMtime(this.zip,r,0,function(e){if("string"==typeof e&&String(+e)===e)return+e;if(Number.isFinite(e))return e<0?Date.now()/1e3:e;if((0,A.isDate)(e))return e.getTime()/1e3;throw new Error("Invalid time")}(t),0))throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(e,t){return this.mkdirSync(e,t)}mkdirSync(e,{mode:t=493,recursive:r=!1}={}){if(r)return void this.mkdirpSync(e,{chmod:t});if(this.readOnly)throw u.YW(`mkdir '${e}'`);const n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw u.cT(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,t)}async rmdirPromise(e,t){return this.rmdirSync(e,t)}rmdirSync(e,{recursive:t=!1}={}){if(this.readOnly)throw u.YW(`rmdir '${e}'`);if(t)return void this.removeSync(e);const r=this.resolveFilename(`rmdir '${e}'`,e),n=this.listings.get(r);if(!n)throw u.Ab(`rmdir '${e}'`);if(n.size>0)throw u.re(`rmdir '${e}'`);const i=this.entries.get(r);if(void 0===i)throw u.hq(`rmdir '${e}'`);this.deleteEntry(e,i)}hydrateDirectory(e){const t=this.libzip.dir.add(this.zip,h.y1.relative(h.LZ.root,e));if(-1===t)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(e),this.registerEntry(e,t),t}async linkPromise(e,t){return this.linkSync(e,t)}linkSync(e,t){throw u.Hs(`link '${e}' -> '${t}'`)}async symlinkPromise(e,t){return this.symlinkSync(e,t)}symlinkSync(e,t){if(this.readOnly)throw u.YW(`symlink '${e}' -> '${t}'`);const r=this.resolveFilename(`symlink '${e}' -> '${t}'`,t);if(this.listings.has(r))throw u.GA(`symlink '${e}' -> '${t}'`);if(this.entries.has(r))throw u.cT(`symlink '${e}' -> '${t}'`);const n=this.setFileSource(r,e);this.registerEntry(r,n);if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(511|l.Zv)<<16))throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(e,t){"object"==typeof t&&(t=t?t.encoding:void 0);const r=await this.readFileBuffer(e,{asyncDecompress:!0});return t?r.toString(t):r}readFileSync(e,t){"object"==typeof t&&(t=t?t.encoding:void 0);const r=this.readFileBuffer(e);return t?r.toString(t):r}readFileBuffer(e,t={asyncDecompress:!1}){if("string"!=typeof e)throw u.Ch("read");const r=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw u.z6(`open '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(r))throw u.Ab(`open '${e}'`);if(this.listings.has(r))throw u.GA("read");const n=this.entries.get(r);if(void 0===n)throw new Error("Unreachable");return this.getFileSource(n,t)}async readdirPromise(e,{withFileTypes:t}={}){return this.readdirSync(e,{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){const r=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw u.z6(`scandir '${e}'`);const n=this.listings.get(r);if(!n)throw u.Ab(`scandir '${e}'`);const i=[...n];return t?i.map(t=>Object.assign(this.statImpl("lstat",h.y1.join(e,t)),{name:t})):i}async readlinkPromise(e){const t=this.prepareReadlink(e);return(await this.getFileSource(t,{asyncDecompress:!0})).toString()}readlinkSync(e){const t=this.prepareReadlink(e);return this.getFileSource(t).toString()}prepareReadlink(e){const t=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw u.z6(`readlink '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw u.Ab(`open '${e}'`);if(this.listings.has(t))throw u.hq(`readlink '${e}'`);const r=this.entries.get(t);if(void 0===r)throw new Error("Unreachable");if(!this.isSymbolicLink(r))throw u.hq(`readlink '${e}'`);return r}async truncatePromise(e,t=0){const r=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(r);if(void 0===n)throw u.hq(`open '${e}'`);const i=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(t,0);return i.copy(A),await this.writeFilePromise(e,A)}truncateSync(e,t=0){const r=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(r);if(void 0===n)throw u.hq(`open '${e}'`);const i=this.getFileSource(n),A=Buffer.alloc(t,0);return i.copy(A),this.writeFileSync(e,A)}watch(e,t,r){let n;switch(typeof t){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=t)}if(!n)return{on:()=>{},close:()=>{}};const i=setInterval(()=>{},864e5);return{on:()=>{},close:()=>{clearInterval(i)}}}watchFile(e,t,r){const n=this.resolveFilename(`open '${e}'`,e);return(0,g._x)(this,n,t,r)}unwatchFile(e,t){const r=this.resolveFilename(`open '${e}'`,e);return(0,g.nd)(this,r,t)}}},53660:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(35747),i=r(35398),A=r(78420),o=r(90739),s=r(91438),a=r(46009);const c=2147483648,g=/.*?(?await this.baseFs.openPromise(e,t,r),async(e,{subPath:n})=>this.remapFd(e,await e.openPromise(n,t,r)))}openSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.openSync(e,t,r),(e,{subPath:n})=>this.remapFd(e,e.openSync(n,t,r)))}async readPromise(e,t,r,n,i){if(0==(e&c))return await this.baseFs.readPromise(e,t,r,n,i);const A=this.fdMap.get(e);if(void 0===A)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[o,s]=A;return await o.readPromise(s,t,r,n,i)}readSync(e,t,r,n,i){if(0==(e&c))return this.baseFs.readSync(e,t,r,n,i);const A=this.fdMap.get(e);if(void 0===A)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[o,s]=A;return o.readSync(s,t,r,n,i)}async writePromise(e,t,r,n,i){if(0==(e&c))return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i);const A=this.fdMap.get(e);if(void 0===A)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[o,s]=A;return"string"==typeof t?await o.writePromise(s,t,r):await o.writePromise(s,t,r,n,i)}writeSync(e,t,r,n,i){if(0==(e&c))return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i);const A=this.fdMap.get(e);if(void 0===A)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[o,s]=A;return"string"==typeof t?o.writeSync(s,t,r):o.writeSync(s,t,r,n,i)}async closePromise(e){if(0==(e&c))return await this.baseFs.closePromise(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return await r.closePromise(n)}closeSync(e){if(0==(e&c))return this.baseFs.closeSync(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return r.closeSync(n)}createReadStream(e,t){return null===e?this.baseFs.createReadStream(e,t):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,t),(e,{subPath:r})=>e.createReadStream(r,t))}createWriteStream(e,t){return null===e?this.baseFs.createWriteStream(e,t):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,t),(e,{subPath:r})=>e.createWriteStream(r,t))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(e,{archivePath:t,subPath:r})=>{let n=this.realPaths.get(t);return void 0===n&&(n=await this.baseFs.realpathPromise(t),this.realPaths.set(t,n)),this.pathUtils.join(n,this.pathUtils.relative(a.LZ.root,await e.realpathPromise(r)))})}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(e,{archivePath:t,subPath:r})=>{let n=this.realPaths.get(t);return void 0===n&&(n=this.baseFs.realpathSync(t),this.realPaths.set(t,n)),this.pathUtils.join(n,this.pathUtils.relative(a.LZ.root,e.realpathSync(r)))})}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(e,{subPath:t})=>await e.existsPromise(t))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(e,{subPath:t})=>e.existsSync(t))}async accessPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,t),async(e,{subPath:r})=>await e.accessPromise(r,t))}accessSync(e,t){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,t),(e,{subPath:r})=>e.accessSync(r,t))}async statPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e),async(e,{subPath:t})=>await e.statPromise(t))}statSync(e){return this.makeCallSync(e,()=>this.baseFs.statSync(e),(e,{subPath:t})=>e.statSync(t))}async lstatPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e),async(e,{subPath:t})=>await e.lstatPromise(t))}lstatSync(e){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e),(e,{subPath:t})=>e.lstatSync(t))}async chmodPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,t),async(e,{subPath:r})=>await e.chmodPromise(r,t))}chmodSync(e,t){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,t),(e,{subPath:r})=>e.chmodSync(r,t))}async chownPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.chownPromise(e,t,r),async(e,{subPath:n})=>await e.chownPromise(n,t,r))}chownSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.chownSync(e,t,r),(e,{subPath:n})=>e.chownSync(n,t,r))}async renamePromise(e,t){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.renamePromise(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(e,{subPath:r})=>await this.makeCallPromise(t,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await e.renamePromise(r,n)}))}renameSync(e,t){return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.renameSync(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(e,{subPath:r})=>this.makeCallSync(t,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return e.renameSync(r,n)}))}async copyFilePromise(e,t,r=0){const i=async(e,t,i,A)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${A}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&await this.existsPromise(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${A}'`),{code:"EEXIST"});let o;try{o=await e.readFilePromise(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${A}'`),{code:"EINVAL"})}await i.writeFilePromise(A,o)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.copyFilePromise(e,t,r),async(t,{subPath:r})=>await i(this.baseFs,e,t,r)),async(e,{subPath:n})=>await this.makeCallPromise(t,async()=>await i(e,n,this.baseFs,t),async(t,{subPath:A})=>e!==t?await i(e,n,t,A):await e.copyFilePromise(n,A,r)))}copyFileSync(e,t,r=0){const i=(e,t,i,A)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${A}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&this.existsSync(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${A}'`),{code:"EEXIST"});let o;try{o=e.readFileSync(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${A}'`),{code:"EINVAL"})}i.writeFileSync(A,o)};return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.copyFileSync(e,t,r),(t,{subPath:r})=>i(this.baseFs,e,t,r)),(e,{subPath:n})=>this.makeCallSync(t,()=>i(e,n,this.baseFs,t),(t,{subPath:A})=>e!==t?i(e,n,t,A):e.copyFileSync(n,A,r)))}async appendFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,t,r),async(e,{subPath:n})=>await e.appendFilePromise(n,t,r))}appendFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,t,r),(e,{subPath:n})=>e.appendFileSync(n,t,r))}async writeFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,t,r),async(e,{subPath:n})=>await e.writeFilePromise(n,t,r))}writeFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,t,r),(e,{subPath:n})=>e.writeFileSync(n,t,r))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(e,{subPath:t})=>await e.unlinkPromise(t))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(e,{subPath:t})=>e.unlinkSync(t))}async utimesPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,t,r),async(e,{subPath:n})=>await e.utimesPromise(n,t,r))}utimesSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,t,r),(e,{subPath:n})=>e.utimesSync(n,t,r))}async mkdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,t),async(e,{subPath:r})=>await e.mkdirPromise(r,t))}mkdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,t),(e,{subPath:r})=>e.mkdirSync(r,t))}async rmdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e,t),async(e,{subPath:r})=>await e.rmdirPromise(r,t))}rmdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e,t),(e,{subPath:r})=>e.rmdirSync(r,t))}async linkPromise(e,t){return await this.makeCallPromise(t,async()=>await this.baseFs.linkPromise(e,t),async(t,{subPath:r})=>await t.linkPromise(e,r))}linkSync(e,t){return this.makeCallSync(t,()=>this.baseFs.linkSync(e,t),(t,{subPath:r})=>t.linkSync(e,r))}async symlinkPromise(e,t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.symlinkPromise(e,t,r),async(t,{subPath:r})=>await t.symlinkPromise(e,r))}symlinkSync(e,t,r){return this.makeCallSync(t,()=>this.baseFs.symlinkSync(e,t,r),(t,{subPath:r})=>t.symlinkSync(e,r))}async readFilePromise(e,t){return this.makeCallPromise(e,async()=>{switch(t){case"utf8":default:return await this.baseFs.readFilePromise(e,t)}},async(e,{subPath:r})=>await e.readFilePromise(r,t))}readFileSync(e,t){return this.makeCallSync(e,()=>{switch(t){case"utf8":default:return this.baseFs.readFileSync(e,t)}},(e,{subPath:r})=>e.readFileSync(r,t))}async readdirPromise(e,{withFileTypes:t}={}){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,{withFileTypes:t}),async(e,{subPath:r})=>await e.readdirPromise(r,{withFileTypes:t}),{requireSubpath:!1})}readdirSync(e,{withFileTypes:t}={}){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,{withFileTypes:t}),(e,{subPath:r})=>e.readdirSync(r,{withFileTypes:t}),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(e,{subPath:t})=>await e.readlinkPromise(t))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(e,{subPath:t})=>e.readlinkSync(t))}async truncatePromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.truncatePromise(e,t),async(e,{subPath:r})=>await e.truncatePromise(r,t))}truncateSync(e,t){return this.makeCallSync(e,()=>this.baseFs.truncateSync(e,t),(e,{subPath:r})=>e.truncateSync(r,t))}watch(e,t,r){return this.makeCallSync(e,()=>this.baseFs.watch(e,t,r),(e,{subPath:n})=>e.watch(n,t,r))}watchFile(e,t,r){return this.makeCallSync(e,()=>this.baseFs.watchFile(e,t,r),()=>(0,s._x)(this,e,t,r))}unwatchFile(e,t){return this.makeCallSync(e,()=>this.baseFs.unwatchFile(e,t),()=>(0,s.nd)(this,e,t))}async makeCallPromise(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return await t();const i=this.resolve(e),A=this.findZip(i);return A?n&&"/"===A.subPath?await t():await this.getZipPromise(A.archivePath,async e=>await r(e,A)):await t()}makeCallSync(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return t();const i=this.resolve(e),A=this.findZip(i);return A?n&&"/"===A.subPath?t():this.getZipSync(A.archivePath,e=>r(e,A)):t()}findZip(e){if(this.filter&&!this.filter.test(e))return null;let t="";for(;;){const r=g.exec(e.substr(t.length));if(!r)return null;if(t=this.pathUtils.join(t,r[0]),!1===this.isZip.has(t)){if(this.notZip.has(t))continue;try{if(!this.baseFs.lstatSync(t).isFile()){this.notZip.add(t);continue}}catch(e){return null}this.isZip.add(t)}return{archivePath:t,subPath:this.pathUtils.join(a.LZ.root,e.substr(t.length))}}}limitOpenFiles(e){if(null===this.zipInstances)return;const t=Date.now();let r=t+this.maxAge,n=null===e?0:this.zipInstances.size-e;for(const[i,{zipFs:A,expiresAt:o,refCount:s}]of this.zipInstances.entries())if(0===s&&!A.hasOpenFileHandles())if(t>=o)A.saveAndClose(),this.zipInstances.delete(i),n-=1;else{if(null===e||n<=0){r=o;break}A.saveAndClose(),this.zipInstances.delete(i),n-=1}null===this.limitOpenFilesTimeout&&(null===e&&this.zipInstances.size>0||null!==e)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},r-t).unref())}async getZipPromise(e,t){const r=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){const t=await r();n=this.zipInstances.get(e),n||(n={zipFs:new o.d(e,t),expiresAt:0,refCount:0})}this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await t(n.zipFs)}finally{n.refCount-=1}}else{const n=new o.d(e,await r());try{return await t(n)}finally{n.saveAndClose()}}}getZipSync(e,t){const r=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n={zipFs:new o.d(e,r()),expiresAt:0,refCount:0}),this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,t(n.zipFs)}{const n=new o.d(e,r());try{return t(n)}finally{n.saveAndClose()}}}}},91438:(e,t,r)=>{"use strict";r.d(t,{_x:()=>g,nd:()=>l,L:()=>u});var n,i,A=r(28614),o=r(65760);function s(e,t){if(e!==t)throw new Error(`Invalid StatWatcher status: expected '${t}', got '${e}'`)}!function(e){e.Change="change",e.Stop="stop"}(n||(n={})),function(e){e.Ready="ready",e.Running="running",e.Stopped="stopped"}(i||(i={}));class a extends A.EventEmitter{constructor(e,t,{bigint:r=!1}={}){super(),this.status=i.Ready,this.changeListeners=new Map,this.startTimeout=null,this.fakeFs=e,this.path=t,this.bigint=r,this.lastStats=this.stat()}static create(e,t,r){const n=new a(e,t,r);return n.start(),n}start(){s(this.status,i.Ready),this.status=i.Running,this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(n.Change,this.lastStats,this.lastStats)},3)}stop(){s(this.status,i.Running),this.status=i.Stopped,null!==this.startTimeout&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(n.Stop)}stat(){try{return this.fakeFs.statSync(this.path)}catch(e){if("ENOENT"===e.code)return o.makeEmptyStats();throw e}}makeInterval(e){const t=setInterval(()=>{const e=this.stat(),t=this.lastStats;o.areStatsEqual(e,t)||(this.lastStats=e,this.emit(n.Change,e,t))},e.interval);return e.persistent?t:t.unref()}registerChangeListener(e,t){this.addListener(n.Change,e),this.changeListeners.set(e,this.makeInterval(t))}unregisterChangeListener(e){this.removeListener(n.Change,e);const t=this.changeListeners.get(e);void 0!==t&&clearInterval(t),this.changeListeners.delete(e)}unregisterAllChangeListeners(){for(const e of this.changeListeners.keys())this.unregisterChangeListener(e)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(const e of this.changeListeners.values())e.ref();return this}unref(){for(const e of this.changeListeners.values())e.unref();return this}}const c=new WeakMap;function g(e,t,r,n){let i,A,o,s;switch(typeof r){case"function":i=!1,A=!0,o=5007,s=r;break;default:({bigint:i=!1,persistent:A=!0,interval:o=5007}=r),s=n}let g=c.get(e);void 0===g&&c.set(e,g=new Map);let l=g.get(t);return void 0===l&&(l=a.create(e,t,{bigint:i}),g.set(t,l)),l.registerChangeListener(s,{persistent:A,interval:o}),l}function l(e,t,r){const n=c.get(e);if(void 0===n)return;const i=n.get(t);void 0!==i&&(void 0===r?i.unregisterAllChangeListeners():i.unregisterChangeListener(r),i.hasChangeListeners()||(i.stop(),n.delete(t)))}function u(e){const t=c.get(e);if(void 0!==t)for(const r of t.keys())l(e,r)}},22004:(e,t,r)=>{"use strict";r.d(t,{wK:()=>n,QB:()=>i,Pe:()=>A,Zv:()=>o});const n=61440,i=16384,A=32768,o=40960},26984:(e,t,r)=>{"use strict";function n(e,t){return Object.assign(new Error(`${e}: ${t}`),{code:e})}function i(e){return n("EBUSY",e)}function A(e,t){return n("ENOSYS",`${e}, ${t}`)}function o(e){return n("EINVAL","invalid argument, "+e)}function s(e){return n("EBADF","bad file descriptor, "+e)}function a(e){return n("ENOENT","no such file or directory, "+e)}function c(e){return n("ENOTDIR","not a directory, "+e)}function g(e){return n("EISDIR","illegal operation on a directory, "+e)}function l(e){return n("EEXIST","file already exists, "+e)}function u(e){return n("EROFS","read-only filesystem, "+e)}function h(e){return n("ENOTEMPTY","directory not empty, "+e)}function p(e){return n("EOPNOTSUPP","operation not supported, "+e)}r.d(t,{Vw:()=>i,bk:()=>A,hq:()=>o,Ch:()=>s,z6:()=>a,Ab:()=>c,GA:()=>g,cT:()=>l,YW:()=>u,re:()=>h,Hs:()=>p,Yn:()=>f});class f extends Error{constructor(e,t){super(e),this.name="Libzip Error",this.code=t}}},56537:(e,t,r)=>{"use strict";r.r(t),r.d(t,{statUtils:()=>a,normalizeLineEndings:()=>c.qH,DEFAULT_COMPRESSION_LEVEL:()=>g.k,PortablePath:()=>s.LZ,Filename:()=>s.QS,npath:()=>s.cS,ppath:()=>s.y1,toFilename:()=>s.Zu,AliasFS:()=>l.K,FakeFS:()=>c.uY,CwdFS:()=>u.M,JailFS:()=>h.n,LazyFS:()=>p.v,NoFS:()=>d,NodeFS:()=>o.S,PosixFS:()=>C.i,ProxiedFS:()=>I.p,VirtualFS:()=>E.p,ZipFS:()=>g.d,ZipOpenFS:()=>m.A,patchFs:()=>y,extendFs:()=>w,xfs:()=>D});var n=r(12087),i=r.n(n),A=r(31669),o=r(78420),s=r(46009),a=r(65760),c=r(35398),g=r(90739),l=r(14626),u=r(75448),h=r(10489),p=r(15037);const f=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"});class d extends c.uY{constructor(){super(s.y1)}getExtractHint(){throw f()}getRealPath(){throw f()}resolve(){throw f()}async openPromise(){throw f()}openSync(){throw f()}async readPromise(){throw f()}readSync(){throw f()}async writePromise(){throw f()}writeSync(){throw f()}async closePromise(){throw f()}closeSync(){throw f()}createWriteStream(){throw f()}createReadStream(){throw f()}async realpathPromise(){throw f()}realpathSync(){throw f()}async readdirPromise(){throw f()}readdirSync(){throw f()}async existsPromise(e){throw f()}existsSync(e){throw f()}async accessPromise(){throw f()}accessSync(){throw f()}async statPromise(){throw f()}statSync(){throw f()}async lstatPromise(e){throw f()}lstatSync(e){throw f()}async chmodPromise(){throw f()}chmodSync(){throw f()}async chownPromise(){throw f()}chownSync(){throw f()}async mkdirPromise(){throw f()}mkdirSync(){throw f()}async rmdirPromise(){throw f()}rmdirSync(){throw f()}async linkPromise(){throw f()}linkSync(){throw f()}async symlinkPromise(){throw f()}symlinkSync(){throw f()}async renamePromise(){throw f()}renameSync(){throw f()}async copyFilePromise(){throw f()}copyFileSync(){throw f()}async appendFilePromise(){throw f()}appendFileSync(){throw f()}async writeFilePromise(){throw f()}writeFileSync(){throw f()}async unlinkPromise(){throw f()}unlinkSync(){throw f()}async utimesPromise(){throw f()}utimesSync(){throw f()}async readFilePromise(){throw f()}readFileSync(){throw f()}async readlinkPromise(){throw f()}readlinkSync(){throw f()}async truncatePromise(){throw f()}truncateSync(){throw f()}watch(){throw f()}watchFile(){throw f()}unwatchFile(){throw f()}}d.instance=new d;var C=r(39725),I=r(42096),E=r(17674),m=r(53660);function B(e){const t=s.cS.toPortablePath(i().tmpdir()),r=Math.ceil(4294967296*Math.random()).toString(16).padStart(8,"0");return s.y1.join(t,`${e}${r}`)}function y(e,t){const r=new Set(["accessSync","appendFileSync","createReadStream","chmodSync","chownSync","closeSync","copyFileSync","linkSync","lstatSync","lutimesSync","mkdirSync","openSync","readSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),n=new Set(["accessPromise","appendFilePromise","chmodPromise","chownPromise","closePromise","copyFilePromise","linkPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),i=new Set(["appendFilePromise","chmodPromise","chownPromise","closePromise","readPromise","readFilePromise","statPromise","truncatePromise","utimesPromise","writePromise","writeFilePromise"]),o=(e,t,r)=>{const n=e[t];e[t]=r,void 0!==(null==n?void 0:n[A.promisify.custom])&&(r[A.promisify.custom]=n[A.promisify.custom])};o(e,"exists",(e,...r)=>{const n="function"==typeof r[r.length-1]?r.pop():()=>{};process.nextTick(()=>{t.existsPromise(e).then(e=>{n(e)},()=>{n(!1)})})}),o(e,"read",(e,r,...n)=>{const i="function"==typeof n[n.length-1]?n.pop():()=>{};process.nextTick(()=>{t.readPromise(e,r,...n).then(e=>{i(null,e,r)},e=>{i(e)})})});for(const r of n){const n=r.replace(/Promise$/,"");if(void 0===e[n])continue;const i=t[r];if(void 0===i)continue;o(e,n,(...e)=>{const r="function"==typeof e[e.length-1]?e.pop():()=>{};process.nextTick(()=>{i.apply(t,e).then(e=>{r(null,e)},e=>{r(e)})})})}e.realpath.native=e.realpath,o(e,"existsSync",e=>{try{return t.existsSync(e)}catch(e){return!1}});for(const n of r){const r=n;if(void 0===e[r])continue;const i=t[n];void 0!==i&&o(e,r,i.bind(t))}e.realpathSync.native=e.realpathSync;{const r=process.emitWarning;let A;process.emitWarning=()=>{};try{A=e.promises}finally{process.emitWarning=r}if(void 0!==A){for(const e of n){const r=e.replace(/Promise$/,"");if(void 0===A[r])continue;const n=t[e];void 0!==n&&("open"!==e&&o(A,r,n.bind(t)))}class e{constructor(e){this.fd=e}}for(const r of i){const n=r.replace(/Promise$/,""),i=t[r];void 0!==i&&o(e.prototype,n,(function(...e){return i.call(t,this.fd,...e)}))}o(A,"open",async(...r)=>{const n=await t.openPromise(...r);return new e(n)})}}}function w(e,t){const r=Object.create(e);return y(r,t),r}const Q=new Set;let v=!1;function b(){v||(v=!0,process.once("exit",()=>{D.rmtempSync()}))}const D=Object.assign(new o.S,{detachTemp(e){Q.delete(e)},mktempSync(e){for(b();;){const t=B("xfs-");try{this.mkdirSync(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=this.realpathSync(t);if(Q.add(r),void 0===e)return t;try{return e(r)}finally{if(Q.has(r)){Q.delete(r);try{this.removeSync(r)}catch(e){}}}}},async mktempPromise(e){for(b();;){const t=B("xfs-");try{await this.mkdirPromise(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=await this.realpathPromise(t);if(Q.add(r),void 0===e)return r;try{return await e(r)}finally{if(Q.has(r)){Q.delete(r);try{await this.removePromise(r)}catch(e){}}}}},async rmtempPromise(){await Promise.all(Array.from(Q.values()).map(async e=>{try{await D.removePromise(e,{maxRetries:0}),Q.delete(e)}catch(e){}}))},rmtempSync(){for(const e of Q)try{D.removeSync(e),Q.delete(e)}catch(e){}}})},46009:(e,t,r)=>{"use strict";r.d(t,{LZ:()=>o,QS:()=>s,cS:()=>a,y1:()=>c,CI:()=>C,Zu:()=>I});var n,i=r(85622),A=r.n(i);!function(e){e[e.File=0]="File",e[e.Portable=1]="Portable",e[e.Native=2]="Native"}(n||(n={}));const o={root:"/",dot:"."},s={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",pnpJs:".pnp.js",rc:".yarnrc.yml"},a=Object.create(A()),c=Object.create(A().posix);a.cwd=()=>process.cwd(),c.cwd=()=>d(process.cwd()),c.resolve=(...e)=>e.length>0&&c.isAbsolute(e[0])?A().posix.resolve(...e):A().posix.resolve(c.cwd(),...e);const g=function(e,t,r){return(t=e.normalize(t))===(r=e.normalize(r))?".":(t.endsWith(e.sep)||(t+=e.sep),r.startsWith(t)?r.slice(t.length):null)};a.fromPortablePath=f,a.toPortablePath=d,a.contains=(e,t)=>g(a,e,t),c.contains=(e,t)=>g(c,e,t);const l=/^([a-zA-Z]:.*)$/,u=/^\\\\(\.\\)?(.*)$/,h=/^\/([a-zA-Z]:.*)$/,p=/^\/unc\/(\.dot\/)?(.*)$/;function f(e){if("win32"!==process.platform)return e;if(e.match(h))e=e.replace(h,"$1");else{if(!e.match(p))return e;e=e.replace(p,(e,t,r)=>`\\\\${t?".\\":""}${r}`)}return e.replace(/\//g,"\\")}function d(e){return"win32"!==process.platform?e:(e.match(l)?e=e.replace(l,"/$1"):e.match(u)&&(e=e.replace(u,(e,t,r)=>`/unc/${t?".dot/":""}${r}`)),e.replace(/\\/g,"/"))}function C(e,t){return e===a?f(t):d(t)}function I(e){if(""!==a.parse(e).dir||""!==c.parse(e).dir)throw new Error(`Invalid filename: "${e}"`);return e}},65760:(e,t,r)=>{"use strict";r.r(t),r.d(t,{DirEntry:()=>i,StatEntry:()=>A,makeDefaultStats:()=>o,makeEmptyStats:()=>s,areStatsEqual:()=>a});var n=r(22004);class i{constructor(){this.name="",this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&n.wK)===n.QB}isFIFO(){return!1}isFile(){return(this.mode&n.wK)===n.Pe}isSocket(){return!1}isSymbolicLink(){return(this.mode&n.wK)===n.Zv}}class A{constructor(){this.dev=0,this.ino=0,this.mode=0,this.nlink=1,this.rdev=0,this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&n.wK)===n.QB}isFIFO(){return!1}isFile(){return(this.mode&n.wK)===n.Pe}isSocket(){return!1}isSymbolicLink(){return(this.mode&n.wK)===n.Zv}}function o(){return Object.assign(new A,{uid:0,gid:0,size:0,blksize:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),birthtime:new Date(0),mode:420|n.Pe})}function s(){return Object.assign(o(),{nlink:0,blocks:0,mode:0})}function a(e,t){return e.atimeMs===t.atimeMs&&(e.birthtimeMs===t.birthtimeMs&&(e.blksize===t.blksize&&(e.blocks===t.blocks&&(e.ctimeMs===t.ctimeMs&&(e.dev===t.dev&&(e.gid===t.gid&&(e.ino===t.ino&&(e.isBlockDevice()===t.isBlockDevice()&&(e.isCharacterDevice()===t.isCharacterDevice()&&(e.isDirectory()===t.isDirectory()&&(e.isFIFO()===t.isFIFO()&&(e.isFile()===t.isFile()&&(e.isSocket()===t.isSocket()&&(e.isSymbolicLink()===t.isSymbolicLink()&&(e.mode===t.mode&&(e.mtimeMs===t.mtimeMs&&(e.nlink===t.nlink&&(e.rdev===t.rdev&&(e.size===t.size&&e.uid===t.uid)))))))))))))))))))}},29486:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getLibzipSync:()=>o,getLibzipPromise:()=>s});const n=["number","number"];var i;!function(e){e[e.ZIP_ER_OK=0]="ZIP_ER_OK",e[e.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",e[e.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",e[e.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",e[e.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",e[e.ZIP_ER_READ=5]="ZIP_ER_READ",e[e.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",e[e.ZIP_ER_CRC=7]="ZIP_ER_CRC",e[e.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",e[e.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",e[e.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",e[e.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",e[e.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",e[e.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",e[e.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",e[e.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",e[e.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",e[e.ZIP_ER_EOF=17]="ZIP_ER_EOF",e[e.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",e[e.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",e[e.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",e[e.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",e[e.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",e[e.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",e[e.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",e[e.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",e[e.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",e[e.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",e[e.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",e[e.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",e[e.ZIP_ER_TELL=30]="ZIP_ER_TELL",e[e.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA"}(i||(i={}));let A=null;function o(){var e;return null===A&&(e=r(3368),A={get HEAP8(){return e.HEAP8},get HEAPU8(){return e.HEAPU8},errors:i,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:e._malloc(1),uint16S:e._malloc(2),uint32S:e._malloc(4),uint64S:e._malloc(8),malloc:e._malloc,free:e._free,getValue:e.getValue,open:e.cwrap("zip_open","number",["string","number","number"]),openFromSource:e.cwrap("zip_open_from_source","number",["number","number","number"]),close:e.cwrap("zip_close","number",["number"]),discard:e.cwrap("zip_discard",null,["number"]),getError:e.cwrap("zip_get_error","number",["number"]),getName:e.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:e.cwrap("zip_get_num_entries","number",["number","number"]),delete:e.cwrap("zip_delete","number",["number","number"]),stat:e.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:e.cwrap("zip_stat_index","number",["number",...n,"number","number"]),fopen:e.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:e.cwrap("zip_fopen_index","number",["number",...n,"number"]),fread:e.cwrap("zip_fread","number",["number","number","number","number"]),fclose:e.cwrap("zip_fclose","number",["number"]),dir:{add:e.cwrap("zip_dir_add","number",["number","string"])},file:{add:e.cwrap("zip_file_add","number",["number","string","number","number"]),getError:e.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:e.cwrap("zip_file_get_external_attributes","number",["number",...n,"number","number","number"]),setExternalAttributes:e.cwrap("zip_file_set_external_attributes","number",["number",...n,"number","number","number"]),setMtime:e.cwrap("zip_file_set_mtime","number",["number",...n,"number","number"]),setCompression:e.cwrap("zip_set_file_compression","number",["number",...n,"number","number"])},ext:{countSymlinks:e.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:e.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:e.cwrap("zip_error_strerror","string",["number"])},name:{locate:e.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:e.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:e.cwrap("zip_source_buffer","number",["number","number",...n,"number"]),free:e.cwrap("zip_source_free",null,["number"]),keep:e.cwrap("zip_source_keep",null,["number"]),open:e.cwrap("zip_source_open","number",["number"]),close:e.cwrap("zip_source_close","number",["number"]),seek:e.cwrap("zip_source_seek","number",["number",...n,"number"]),tell:e.cwrap("zip_source_tell","number",["number"]),read:e.cwrap("zip_source_read","number",["number","number","number"]),error:e.cwrap("zip_source_error","number",["number"]),setMtime:e.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:e.cwrap("zipstruct_stat","number",[]),statS:e.cwrap("zipstruct_statS","number",[]),statName:e.cwrap("zipstruct_stat_name","string",["number"]),statIndex:e.cwrap("zipstruct_stat_index","number",["number"]),statSize:e.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:e.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:e.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:e.cwrap("zipstruct_stat_mtime","number",["number"]),error:e.cwrap("zipstruct_error","number",[]),errorS:e.cwrap("zipstruct_errorS","number",[]),errorCodeZip:e.cwrap("zipstruct_error_code_zip","number",["number"])}}),A}async function s(){return o()}},55125:(e,t,r)=>{"use strict";r.r(t),r.d(t,{parseShell:()=>i,parseResolution:()=>o,stringifyResolution:()=>s,parseSyml:()=>I,stringifySyml:()=>f});var n=r(92962);function i(e,t={isGlobPattern:()=>!1}){try{return(0,n.parse)(e,t)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}var A=r(98261);function o(e){const t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,A.parse)(e)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function s(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+="@"+e.from.description),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+="@"+e.descriptor.description),t}var a=r(21194),c=r(85443);const g=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,l=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"];class u{constructor(e){this.data=e}}function h(e){return e.match(g)?e:JSON.stringify(e)}function p(e,t,r){if(null===e)return"null\n";if("number"==typeof e||"boolean"==typeof e)return e.toString()+"\n";if("string"==typeof e)return h(e)+"\n";if(Array.isArray(e)){if(0===e.length)return"[]\n";const r=" ".repeat(t);return"\n"+e.map(e=>`${r}- ${p(e,t+1,!1)}`).join("")}if("object"==typeof e&&e){let n,i;e instanceof u?(n=e.data,i=!1):(n=e,i=!0);const A=" ".repeat(t),o=Object.keys(n);i&&o.sort((e,t)=>{const r=l.indexOf(e),n=l.indexOf(t);return-1===r&&-1===n?et?1:0:-1!==r&&-1===n?-1:-1===r&&-1!==n?1:r-n});const s=o.filter(e=>!function e(t){return void 0===t||"object"==typeof t&&null!==t&&Object.keys(t).every(r=>e(t[r]))}(n[e])).map((e,i)=>{const o=n[e],s=h(e),a=p(o,t+1,!0),c=i>0||r?A:"";return a.startsWith("\n")?`${c}${s}:${a}`:`${c}${s}: ${a}`}).join(0===t?"\n":"")||"\n";return r?"\n"+s:""+s}throw new Error(`Unsupported value type (${e})`)}function f(e){try{const t=p(e,0,!1);return"\n"!==t?t:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}f.PreserveOrdering=u;const d=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function C(e){if(d.test(e))return function(e){return e.endsWith("\n")||(e+="\n"),(0,c.parse)(e)}(e);const t=(0,a.safeLoad)(e,{schema:a.FAILSAFE_SCHEMA});if(null==t)return{};if("object"!=typeof t)throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function I(e){return C(e)}},88563:(e,t,r)=>{"use strict";var n,i;r.d(t,{gY:()=>E,Q$:()=>m,oC:()=>F}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={})),function(e){e.DEFAULT="DEFAULT",e.TOP_LEVEL="TOP_LEVEL",e.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",e.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",e.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",e.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",e.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",e.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",e.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",e.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",e.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",e.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"}(i||(i={}));const A={[i.DEFAULT]:{collapsed:!1,next:{"*":i.DEFAULT}},[i.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:i.FALLBACK_EXCLUSION_LIST,packageRegistryData:i.PACKAGE_REGISTRY_DATA,"*":i.DEFAULT}},[i.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{"*":i.FALLBACK_EXCLUSION_ENTRIES}},[i.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{"*":i.FALLBACK_EXCLUSION_DATA}},[i.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{"*":i.DEFAULT}},[i.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_REGISTRY_ENTRIES}},[i.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_STORE_DATA}},[i.PACKAGE_STORE_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_STORE_ENTRIES}},[i.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_INFORMATION_DATA}},[i.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:i.PACKAGE_DEPENDENCIES,"*":i.DEFAULT}},[i.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{"*":i.PACKAGE_DEPENDENCY}},[i.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{"*":i.DEFAULT}}};function o(e,t,r,n){const{next:i}=A[r];return s(t,i[e]||i["*"],n)}function s(e,t,r){const{collapsed:n}=A[t];return Array.isArray(e)?n?function(e,t,r){let n="";n+="[";for(let i=0,A=e.length;ie(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function g(e){const t=new Map,r=c(e.fallbackExclusionList||[],[({name:e,reference:t})=>e,({name:e,reference:t})=>t]);for(const{name:e,reference:n}of r){let r=t.get(e);void 0===r&&t.set(e,r=new Set),r.add(n)}return Array.from(t).map(([e,t])=>[e,Array.from(t)])}function l(e){return c(e.fallbackPool||[],([e])=>e)}function u(e){const t=[];for(const[r,n]of c(e.packageRegistry,([e])=>null===e?"0":"1"+e)){const e=[];t.push([r,e]);for(const[t,{packageLocation:i,packageDependencies:A,packagePeers:o,linkType:s,discardFromLookup:a}]of c(n,([e])=>null===e?"0":"1"+e)){const n=[];null===r||null===t||A.has(r)||n.push([r,t]);for(const[e,t]of c(A.entries(),([e])=>e))n.push([e,t]);const g=o&&o.size>0?Array.from(o):void 0,l=a||void 0;e.push([t,{packageLocation:i,packageDependencies:n,packagePeers:g,linkType:s,discardFromLookup:l}])}}return t}function h(e){return c(e.blacklistedLocations||[],e=>e)}function p(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,fallbackExclusionList:g(e),fallbackPool:l(e),locationBlacklistData:h(e),packageRegistryData:u(e)}}var f=r(20103),d=r.n(f);function C(e,t){return[e?e+"\n":"","/* eslint-disable */\n\n","try {\n"," Object.freeze({}).detectStrictMode = true;\n","} catch (error) {\n"," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n","}\n","\n","var __non_webpack_module__ = module;\n","\n","function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n",t.replace(/^/gm," "),"}\n","\n",d()()].join("")}function I(e){return JSON.stringify(e,null,2)}function E(e){const t=function(e){return[`return hydrateRuntimeState(${a(e)}, {basePath: basePath || __dirname});\n`].join("")}(p(e));return C(e.shebang,t)}function m(e){const t=p(e),r=(n=e.dataLocation,["var path = require('path');\n",`var dataLocation = path.resolve(__dirname, ${JSON.stringify(n)});\n`,"return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});\n"].join(""));var n;const i=C(e.shebang,r);return{dataFile:I(t),loaderFile:i}}var B=r(35747),y=(r(85622),r(31669)),w=r(46009);function Q(e,{basePath:t}){const r=w.cS.toPortablePath(t),n=w.y1.resolve(r),i=null!==e.ignorePatternData?new RegExp(e.ignorePatternData):null,A=new Map(e.packageRegistryData.map(([e,t])=>[e,new Map(t.map(([e,t])=>[e,{packageLocation:w.y1.join(n,t.packageLocation),packageDependencies:new Map(t.packageDependencies),packagePeers:new Set(t.packagePeers),linkType:t.linkType,discardFromLookup:t.discardFromLookup||!1}]))])),o=new Map,s=new Set;for(const[t,r]of e.packageRegistryData)for(const[e,n]of r){if(null===t!=(null===e))throw new Error("Assertion failed: The name and reference should be null, or neither should");if(n.discardFromLookup)continue;const r={name:t,reference:e};o.set(n.packageLocation,r),s.add(n.packageLocation.length)}for(const t of e.locationBlacklistData)o.set(t,null);const a=new Map(e.fallbackExclusionList.map(([e,t])=>[e,new Set(t)])),c=new Map(e.fallbackPool);return{basePath:r,dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback,fallbackExclusionList:a,fallbackPool:c,ignorePattern:i,packageLocationLengths:[...s].sort((e,t)=>t-e),packageLocatorsByLocations:o,packageRegistry:A}}var v,b=r(17674),D=r(32282);!function(e){e.API_ERROR="API_ERROR",e.BLACKLISTED="BLACKLISTED",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED"}(v||(v={}));const S=new Set([v.BLACKLISTED,v.BUILTIN_NODE_RESOLUTION_FAILED,v.MISSING_DEPENDENCY,v.MISSING_PEER_DEPENDENCY,v.QUALIFIED_PATH_RESOLUTION_FAILED,v.UNDECLARED_DEPENDENCY]);function k(e,t,r={}){const n=S.has(e)?"MODULE_NOT_FOUND":e,i={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...i,value:n},pnpCode:{...i,value:e},data:{...i,value:r}})}function M(e){return w.cS.normalize(w.cS.fromPortablePath(e))}function N(e,t){const r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),i=new Set(D.Module.builtinModules||Object.keys(process.binding("natives"))),A=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/,o=/^\.{0,2}\//,s=/\/$/,a={name:null,reference:null},c=[],g=new Set;if(!0===e.enableTopLevelFallback&&c.push(a),!1!==t.compatibilityMode)for(const t of["react-scripts","gatsby"]){const r=e.packageRegistry.get(t);if(r)for(const e of r.keys()){if(null===e)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:t,reference:e})}}const{ignorePattern:l,packageRegistry:u,packageLocatorsByLocations:h,packageLocationLengths:p}=e;function f(e,t){return{fn:e,args:t,error:null,result:null}}function d(e,r){if(!1===t.allowDebug)return r;if(Number.isFinite(n)){if(n>=2)return(...t)=>{const n=f(e,t);try{return n.result=r(...t)}catch(e){throw n.error=e}finally{console.trace(n)}};if(n>=1)return(...t)=>{try{return r(...t)}catch(r){const n=f(e,t);throw n.error=r,console.trace(n),r}}}return r}function C(e){const t=m(e);if(!t)throw k(v.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return t}function I(t){if(null===t.name)return!0;for(const r of e.dependencyTreeRoots)if(r.name===t.name&&r.reference===t.reference)return!0;return!1}function E(e,t){return t.endsWith("/")&&(t=w.y1.join(t,"internal.js")),D.Module._resolveFilename(e,function(e){const t=new D.Module(e,null);return t.filename=e,t.paths=D.Module._nodeModulePaths(e),t}(w.cS.fromPortablePath(t)),!1,{plugnplay:!1})}function m({name:e,reference:t}){const r=u.get(e);if(!r)return null;const n=r.get(t);return n||null}function B(e,t){const r=new Map,n=new Set,i=t=>{const A=JSON.stringify(t.name);if(n.has(A))return;n.add(A);const o=function({name:e,reference:t}){const r=[];for(const[n,i]of u)if(null!==n)for(const[A,o]of i){if(null===A)continue;o.packageDependencies.get(e)===t&&(n===e&&A===t||r.push({name:n,reference:A}))}return r}(t);for(const t of o){if(C(t).packagePeers.has(e))i(t);else{let e=r.get(t.name);void 0===e&&r.set(t.name,e=new Set),e.add(t.reference)}}};i(t);const A=[];for(const e of[...r.keys()].sort())for(const t of[...r.get(e)].sort())A.push({name:e,reference:t});return A}function y(t){let r=(n=w.y1.relative(e.basePath,t),w.cS.toPortablePath(n));var n;r.match(o)||(r="./"+r),t.match(s)&&!r.endsWith("/")&&(r+="/");let i=0;for(;ir.length;)i+=1;for(let e=i;eI(e))?k(v.MISSING_PEER_DEPENDENCY,`${s.name} tried to access ${t} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${u}")\nRequired by: ${s.name}@${s.reference} (via ${h})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:u,issuer:h,issuerLocator:Object.assign({},s),dependencyName:t,brokenAncestors:e}):k(v.MISSING_PEER_DEPENDENCY,`${s.name} tried to access ${t} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${u}")\nRequired by: ${s.name}@${s.reference} (via ${h})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:u,issuer:h,issuerLocator:Object.assign({},s),dependencyName:t,brokenAncestors:e})}else void 0===l&&(m=!a&&i.has(n)?I(s)?k(v.UNDECLARED_DEPENDENCY,`Your application tried to access ${t}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${t} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${u}")\nRequired by: ${h}\n`,{request:u,issuer:h,dependencyName:t}):k(v.UNDECLARED_DEPENDENCY,`${s.name} tried to access ${t}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${t} isn't otherwise declared in ${s.name}'s dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${u}")\nRequired by: ${h}\n`,{request:u,issuer:h,issuerLocator:Object.assign({},s),dependencyName:t}):I(s)?k(v.UNDECLARED_DEPENDENCY,`Your application tried to access ${t}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${u}")\nRequired by: ${h}\n`,{request:u,issuer:h,dependencyName:t}):k(v.UNDECLARED_DEPENDENCY,`${s.name} tried to access ${t}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${u}")\nRequired by: ${s.name}@${s.reference} (via ${h})\n`,{request:u,issuer:h,issuerLocator:Object.assign({},s),dependencyName:t}));if(null==l){if(null===d||null===m)throw m||new Error("Assertion failed: Expected an error to have been set");l=d;const e=m.message.replace(/\n.*/g,"");m.message=e,g.has(e)||(g.add(e),process.emitWarning(m))}const Q=Array.isArray(l)?{name:l[0],reference:l[1]}:{name:t,reference:l},b=C(Q);if(!b.packageLocation)throw k(v.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${Q.name}@${Q.reference} (via "${u}")\nRequired by: ${s.name}@${s.reference} (via ${h})\n`,{request:u,issuer:h,dependencyLocator:Object.assign({},Q)});const D=b.packageLocation;p=A?w.y1.join(D,A):D}else{if(w.y1.isAbsolute(n))p=w.y1.normalize(n);else{if(!o)throw k(v.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:u,issuer:h});const e=w.y1.resolve(o);p=o.match(s)?w.y1.normalize(w.y1.join(e,n)):w.y1.normalize(w.y1.join(w.y1.dirname(e),n))}y(p)}return w.y1.normalize(p)}function S(e,{extensions:r=Object.keys(D.Module._extensions)}={}){const n=[],i=function e(r,n,{extensions:i}){let A;try{n.push(r),A=t.fakeFs.statSync(r)}catch(e){}if(A&&!A.isDirectory())return t.fakeFs.realpathSync(r);if(A&&A.isDirectory()){let A,o;try{A=JSON.parse(t.fakeFs.readFileSync(w.y1.join(r,"package.json"),"utf8"))}catch(e){}if(A&&A.main&&(o=w.y1.resolve(r,A.main)),o&&o!==r){const t=e(o,n,{extensions:i});if(null!==t)return t}}for(let e=0,A=i.length;e`Rejected candidate: ${M(e)}\n`).join("")}`,{unqualifiedPath:t})}}return{VERSIONS:{std:3,resolveVirtual:1,getAllLocators:1},topLevel:a,getLocator:(e,t)=>Array.isArray(t)?{name:t[0],reference:t[1]}:{name:e,reference:t},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getAllLocators(){const e=[];for(const[t,r]of u)for(const n of r.keys())null!==t&&null!==n&&e.push({name:t,reference:n});return e},getPackageInformation:e=>{const t=m(e);if(null===t)return null;const r=w.cS.fromPortablePath(t.packageLocation);return{...t,packageLocation:r}},findPackageLocator:e=>y(w.cS.toPortablePath(e)),resolveToUnqualified:d("resolveToUnqualified",(e,t,r)=>{const n=null!==t?w.cS.toPortablePath(t):null,i=Q(w.cS.toPortablePath(e),n,r);return null===i?null:w.cS.fromPortablePath(i)}),resolveUnqualified:d("resolveUnqualified",(e,t)=>w.cS.fromPortablePath(S(w.cS.toPortablePath(e),t))),resolveRequest:d("resolveRequest",(e,t,r)=>{const n=null!==t?w.cS.toPortablePath(t):null,i=function(e,t,{considerBuiltins:r,extensions:n}={}){const i=Q(e,t,{considerBuiltins:r});if(null===i)return null;try{return S(i,{extensions:n})}catch(r){throw"QUALIFIED_PATH_RESOLUTION_FAILED"===r.pnpCode&&Object.assign(r.data,{request:M(e),issuer:t&&M(t)}),r}}(w.cS.toPortablePath(e),n,r);return null===i?null:w.cS.fromPortablePath(i)}),resolveVirtual:d("resolveVirtual",e=>{const t=function(e){const t=w.y1.normalize(e),r=b.p.resolveVirtual(t);return r!==t?r:null}(w.cS.toPortablePath(e));return null!==t?w.cS.fromPortablePath(t):null})}}(0,y.promisify)(B.readFile);const F=(e,t,r)=>N(Q(p(e),{basePath:t}),{fakeFs:r,pnpapiResolution:w.cS.join(t,".pnp.js")})},174:(e,t,r)=>{"use strict";r.r(t),r.d(t,{globUtils:()=>n,execute:()=>X});var n={};r.r(n),r.d(n,{fastGlobOptions:()=>I,isGlobPattern:()=>E,match:()=>m,micromatchOptions:()=>C});var i=r(46009),A=r(78420),o=r(55125),s=r(12087),a=r(92413),c=r(56537),g=r(39725),l=r(19347),u=r.n(l),h=r(35747),p=r.n(h),f=r(2401),d=r.n(f);const C={strictBrackets:!0},I={onlyDirectories:!1,onlyFiles:!1};function E(e){if(!d().scan(e,C).isGlob)return!1;try{d().parse(e,C)}catch(e){return!1}return!0}function m(e,{cwd:t,baseFs:r}){return u()(e,{...I,cwd:i.cS.fromPortablePath(t),fs:(0,c.extendFs)(p(),new g.i(r))})}var B,y=r(67566),w=r.n(y);function Q(){}!function(e){e[e.STDIN=0]="STDIN",e[e.STDOUT=1]="STDOUT",e[e.STDERR=2]="STDERR"}(B||(B={}));let v=0;class b{constructor(e){this.stream=e}close(){}get(){return this.stream}}class D{constructor(){this.stream=null}close(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");return this.stream}}class S{constructor(e,t){this.stdin=null,this.stdout=null,this.stderr=null,this.pipe=null,this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:r,stderr:n}){const i=new S(null,e);return i.stdin=t,i.stdout=r,i.stderr=n,i}pipeTo(e,t=B.STDOUT){const r=new S(this,e),n=new D;return r.pipe=n,r.stdout=this.stdout,r.stderr=this.stderr,(t&B.STDOUT)===B.STDOUT?this.stdout=n:null!==this.ancestor&&(this.stderr=this.ancestor.stdout),(t&B.STDERR)===B.STDERR?this.stderr=n:null!==this.ancestor&&(this.stderr=this.ancestor.stderr),r}async exec(){const e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(null===this.stdin)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t,r;if(null===this.stdout)throw new Error("Assertion failed: No output stream registered");if(t=this.stdout,e[1]=t.get(),null===this.stderr)throw new Error("Assertion failed: No error stream registered");r=this.stderr,e[2]=r.get();const n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(e=>(t.close(),r.close(),e))}async run(){const e=[];for(let t=this;t;t=t.ancestor)e.push(t.exec());return(await Promise.all(e))[0]}}function k(e,t){return S.start(e,t)}var M;function N(e,t,r){const n=new a.PassThrough({autoDestroy:!0});switch(e){case B.STDIN:(t&M.Readable)===M.Readable&&r.stdin.pipe(n,{end:!1}),(t&M.Writable)===M.Writable&&r.stdin instanceof a.Writable&&n.pipe(r.stdin,{end:!1});break;case B.STDOUT:(t&M.Readable)===M.Readable&&r.stdout.pipe(n,{end:!1}),(t&M.Writable)===M.Writable&&n.pipe(r.stdout,{end:!1});break;case B.STDERR:(t&M.Readable)===M.Readable&&r.stderr.pipe(n,{end:!1}),(t&M.Writable)===M.Writable&&n.pipe(r.stderr,{end:!1});break;default:throw new Error("Bad file descriptor: "+e)}return n}function F(e,t={}){const r={...e,...t};return r.environment={...e.environment,...t.environment},r.variables={...e.variables,...t.variables},r}!function(e){e[e.Readable=1]="Readable",e[e.Writable=2]="Writable"}(M||(M={}));const R=new Map([["cd",async([e=(0,s.homedir)(),...t],r,n)=>{const A=i.y1.resolve(n.cwd,i.cS.toPortablePath(e));return(await r.baseFs.statPromise(A)).isDirectory()?(n.cwd=A,0):(n.stderr.write("cd: not a directory\n"),1)}],["pwd",async(e,t,r)=>(r.stdout.write(i.cS.fromPortablePath(r.cwd)+"\n"),0)],[":",async(e,t,r)=>0],["true",async(e,t,r)=>0],["false",async(e,t,r)=>1],["exit",async([e,...t],r,n)=>n.exitCode=parseInt(null!=e?e:n.variables["?"],10)],["echo",async(e,t,r)=>(r.stdout.write(e.join(" ")+"\n"),0)],["__ysh_run_procedure",async(e,t,r)=>{const n=r.procedures[e[0]];return await k(n,{stdin:new b(r.stdin),stdout:new b(r.stdout),stderr:new b(r.stderr)}).run()}],["__ysh_set_redirects",async(e,t,r)=>{let n=r.stdin,A=r.stdout;const o=r.stderr,s=[],c=[];let g=0;for(;"--"!==e[g];){const n=e[g++],A=Number(e[g++]),o=g+A;for(let A=g;At.baseFs.createReadStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[A]))));break;case"<<<":s.push(()=>{const t=new a.PassThrough;return process.nextTick(()=>{t.write(e[A]+"\n"),t.end()}),t});break;case"<&":s.push(()=>N(Number(e[A]),M.Readable,r));break;case">":c.push(t.baseFs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[A]))));break;case">>":c.push(t.baseFs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[A])),{flags:"a"}));break;case">&":c.push(N(Number(e[A]),M.Writable,r));break;default:throw new Error(`Unsupported redirection type: "${n}"`)}}if(s.length>0){const e=new a.PassThrough;n=e;const t=r=>{if(r===s.length)e.end();else{const n=s[r]();n.pipe(e,{end:!1}),n.on("end",()=>{t(r+1)})}};t(0)}if(c.length>0){const e=new a.PassThrough;A=e;for(const t of c)e.pipe(t)}const l=await k(Y(e.slice(g+1),t,r),{stdin:new b(n),stdout:new b(A),stderr:new b(o)}).run();return await Promise.all(c.map(e=>new Promise(t=>{e.on("close",()=>{t()}),e.end()}))),l}]]);async function K(e,t,r){const n=[],i=new a.PassThrough;return i.on("data",e=>n.push(e)),await q(e,t,F(r,{stdout:i})),Buffer.concat(n).toString().replace(/[\r\n]+$/,"")}async function L(e,t,r){const n=e.map(async e=>{const n=await O(e.args,t,r);return{name:e.name,value:n.join(" ")}});return(await Promise.all(n)).reduce((e,t)=>(e[t.name]=t.value,e),{})}function x(e){return e.match(/[^ \r\n\t]+/g)||[]}async function P(e,t,r,n,i=n){switch(e.name){case"$":n(String(process.pid));break;case"#":n(String(t.args.length));break;case"@":if(e.quoted)for(const e of t.args)i(e);else for(const e of t.args){const t=x(e);for(let e=0;e=0&&ie+t,subtraction:(e,t)=>e-t,multiplication:(e,t)=>e*t,division:(e,t)=>Math.trunc(e/t)};async function T(e,t,r){if("number"===e.type){if(Number.isInteger(e.value))return e.value;throw new Error(`Invalid number: "${e.value}", only integers are allowed`)}if("variable"===e.type){const n=[];await P({...e,quoted:!0},t,r,e=>n.push(e));const i=Number(n.join(" "));return Number.isNaN(i)?T({type:"variable",name:n.join(" ")},t,r):T({type:"number",value:i},t,r)}return U[e.type](await T(e.left,t,r),await T(e.right,t,r))}async function O(e,t,r){const n=new Map,i=[];let A=[];const o=e=>{A.push(e)},s=()=>{A.length>0&&i.push(A.join("")),A=[]},a=e=>{o(e),s()},c=(e,t)=>{let r=n.get(e);void 0===r&&n.set(e,r=[]),r.push(t)};for(const n of e){let e=!1;switch(n.type){case"redirection":{const e=await O(n.args,t,r);for(const t of e)c(n.subtype,t)}break;case"argument":for(const i of n.segments)switch(i.type){case"text":o(i.text);break;case"glob":o(i.pattern),e=!0;break;case"shell":{const e=await K(i.shell,t,r);if(i.quoted)o(e);else{const t=x(e);for(let e=0;e0){const e=[];for(const[t,r]of n.entries())e.splice(e.length,0,t,String(r.length),...r);i.splice(0,0,"__ysh_set_redirects",...e,"--")}return i}function Y(e,t,r){t.builtins.has(e[0])||(e=["command",...e]);const n=i.cS.fromPortablePath(r.cwd);let A=r.environment;void 0!==A.PWD&&(A={...A,PWD:n});const[o,...s]=e;if("command"===o)return function(e,t,r,n){return r=>{const i=r[0]instanceof a.Transform?"pipe":r[0],A=r[1]instanceof a.Transform?"pipe":r[1],o=r[2]instanceof a.Transform?"pipe":r[2],s=w()(e,t,{...n,stdio:[i,A,o]});return 0==v++&&process.on("SIGINT",Q),r[0]instanceof a.Transform&&r[0].pipe(s.stdin),r[1]instanceof a.Transform&&s.stdout.pipe(r[1],{end:!1}),r[2]instanceof a.Transform&&s.stderr.pipe(r[2],{end:!1}),{stdin:s.stdin,promise:new Promise(t=>{s.on("error",n=>{switch(0==--v&&process.off("SIGINT",Q),n.code){case"ENOENT":r[2].write(`command not found: ${e}\n`),t(127);break;case"EACCES":r[2].write(`permission denied: ${e}\n`),t(128);break;default:r[2].write(`uncaught error: ${n.message}\n`),t(1)}}),s.on("exit",e=>{0==--v&&process.off("SIGINT",Q),t(null!==e?e:129)})})}}}(s[0],s.slice(1),0,{cwd:n,env:A});const c=t.builtins.get(o);if(void 0===c)throw new Error(`Assertion failed: A builtin should exist for "${o}"`);return function(e){return t=>{const r="pipe"===t[0]?new a.PassThrough:t[0];return{stdin:r,promise:Promise.resolve().then(()=>e({stdin:r,stdout:t[1],stderr:t[2]}))}}}(async({stdin:e,stdout:n,stderr:i})=>(r.stdin=e,r.stdout=n,r.stderr=i,await c(s,t,r)))}function j(e,t,r){return n=>{const i=new a.PassThrough;return{stdin:i,promise:q(e,t,F(r,{stdin:i}))}}}function G(e,t,r){return n=>({stdin:new a.PassThrough,promise:q(e,t,r)})}function H(e,t,r,n){if(0===t.length)return e;{let i;do{i=String(Math.random())}while(Object.prototype.hasOwnProperty.call(n.procedures,i));return n.procedures={...n.procedures},n.procedures[i]=e,Y([...t,"__ysh_run_procedure",i],r,n)}}async function J(e,t,r){let n=e,i=null,A=null;for(;n;){const e=n.then?{...r}:r;let o;switch(n.type){case"command":{const i=await O(n.args,t,r),A=await L(n.envs,t,r);o=n.envs.length?Y(i,t,F(e,{environment:A})):Y(i,t,e)}break;case"subshell":{const i=await O(n.args,t,r);o=H(j(n.subshell,t,e),i,t,e)}break;case"group":{const i=await O(n.args,t,r);o=H(G(n.group,t,e),i,t,e)}break;case"envs":{const i=await L(n.envs,t,r);e.environment={...e.environment,...i},o=Y(["true"],t,e)}}if(void 0===o)throw new Error("Assertion failed: An action should have been generated");if(null===i)A=k(o,{stdin:new b(e.stdin),stdout:new b(e.stdout),stderr:new b(e.stderr)});else{if(null===A)throw new Error("The execution pipeline should have been setup");switch(i){case"|":A=A.pipeTo(o,B.STDOUT);break;case"|&":A=A.pipeTo(o,B.STDOUT|B.STDERR)}}n.then?(i=n.then.type,n=n.then.chain):n=null}if(null===A)throw new Error("Assertion failed: The execution pipeline should have been setup");return await A.run()}async function _(e,t,r){let n;const i=e=>{n=e,r.variables["?"]=String(e)};for(i(await J(e.chain,t,r));e.then;){if(null!==r.exitCode)return r.exitCode;switch(e.then.type){case"&&":0===n&&i(await J(e.then.line.chain,t,r));break;case"||":0!==n&&i(await J(e.then.line.chain,t,r));break;default:throw new Error(`Unsupported command type: "${e.then.type}"`)}e=e.then.line}return n}async function q(e,t,r){let n=0;for(const i of e){if(n=await _(i,t,r),null!==r.exitCode)return r.exitCode;r.variables["?"]=String(n)}return n}function z(e){switch(e.type){case"variable":return"@"===e.name||"#"===e.name||"*"===e.name||Number.isFinite(parseInt(e.name,10))||"defaultValue"in e&&!!e.defaultValue&&e.defaultValue.some(e=>W(e));case"arithmetic":return function e(t){switch(t.type){case"variable":return z(t);case"number":return!1;default:return e(t.left)||e(t.right)}}(e.arithmetic);case"shell":return V(e.shell);default:return!1}}function W(e){switch(e.type){case"redirection":return e.args.some(e=>W(e));case"argument":return e.segments.some(e=>z(e));default:throw new Error("Unreacheable")}}function V(e){return e.some(e=>{for(;e;){let t=e.chain;for(;t;){let e;switch(t.type){case"subshell":e=V(t.subshell);break;case"command":e=t.envs.some(e=>e.args.some(e=>W(e)))||t.args.some(e=>W(e))}if(e)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function X(e,t=[],{baseFs:r=new A.S,builtins:s={},cwd:c=i.cS.toPortablePath(process.cwd()),env:g=process.env,stdin:l=process.stdin,stdout:u=process.stdout,stderr:h=process.stderr,variables:p={},glob:f=n}={}){const d={};for(const[e,t]of Object.entries(g))void 0!==t&&(d[e]=t);const C=new Map(R);for(const[e,t]of Object.entries(s))C.set(e,t);null===l&&(l=new a.PassThrough).end();const I=(0,o.parseShell)(e,f);if(!V(I)&&I.length>0&&t.length>0){let e=I[I.length-1];for(;e.then;)e=e.then.line;let r=e.chain;for(;r.then;)r=r.then.chain;"command"===r.type&&(r.args=r.args.concat(t.map(e=>({type:"argument",segments:[{type:"text",text:e}]}))))}return await q(I,{args:t,baseFs:r,builtins:C,initialStdin:l,initialStdout:u,initialStderr:h,glob:f},{cwd:c,environment:d,exitCode:null,procedures:{},stdin:l,stdout:u,stderr:h,variables:Object.assign({},p,{"?":0})})}},45330:(e,t,r)=>{t.e=()=>({modules:new Map([["@yarnpkg/cli",r(95397)],["@yarnpkg/core",r(32741)],["@yarnpkg/fslib",r(56537)],["@yarnpkg/libzip",r(29486)],["@yarnpkg/parsers",r(55125)],["@yarnpkg/shell",r(174)],["clipanion",r(40822)],["semver",r(53887)],["yup",r(15966)],["@yarnpkg/plugin-essentials",r(51202)],["@yarnpkg/plugin-compat",r(80150)],["@yarnpkg/plugin-dlx",r(10420)],["@yarnpkg/plugin-file",r(74802)],["@yarnpkg/plugin-git",r(10284)],["@yarnpkg/plugin-github",r(23599)],["@yarnpkg/plugin-http",r(21754)],["@yarnpkg/plugin-init",r(74230)],["@yarnpkg/plugin-link",r(86161)],["@yarnpkg/plugin-node-modules",r(8149)],["@yarnpkg/plugin-npm",r(86717)],["@yarnpkg/plugin-npm-cli",r(33671)],["@yarnpkg/plugin-pack",r(5973)],["@yarnpkg/plugin-patch",r(48719)],["@yarnpkg/plugin-pnp",r(57436)]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-node-modules","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp"])})},29148:(e,t,r)=>{const n=r(74988),i=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,A=new n;e.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");const n=r-t;let o="",s=0,a=0;for(;e.length>0;){const r=e.match(i)||[e,e,void 0];let c=A.splitGraphemes(r[1]);const g=Math.min(t-s,c.length);c=c.slice(g);const l=Math.min(n-a,c.length);o+=c.slice(0,l).join(""),s+=g,a+=l,void 0!==r[2]&&(o+=r[2]),e=e.slice(r[0].length)}return o}},72912:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},19228:(e,t,r)=>{var n=r(54694);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r={},A=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var s=A?Object.getOwnPropertyDescriptor(e,o):null;s&&(s.get||s.set)?Object.defineProperty(r,o,s):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}},74943:e=>{e.exports=function(e,t){if(null==e)return{};var r,n,i={},A=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}},62407:e=>{e.exports=function(e,t){return t||(t=e.slice(0)),e.raw=t,e}},54694:e=>{function t(r){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(r)}e.exports=t},96117:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},79774:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=process.versions.node.split("."),n=parseInt(r[0],10),i=parseInt(r[1],10),A=n>10,o=10===n&&i>=10;t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=A||o},85670:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31020),i=r(35516),A=r(38844);function o(e={}){return e instanceof A.default?e:new A.default(e)}t.Settings=A.default,t.scandir=function(e,t,r){if("function"==typeof t)return n.read(e,o(),t);n.read(e,o(t),r)},t.scandirSync=function(e,t){const r=o(t);return i.read(e,r)}},31020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(69078),A=r(79774),o=r(65225);function s(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,A)=>{if(null!==n)return c(r,n);const s=A.map(r=>({dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`}));if(!t.followSymbolicLinks)return g(r,s);const a=s.map(e=>function(e,t){return r=>{if(!e.dirent.isSymbolicLink())return r(null,e);t.fs.stat(e.path,(n,i)=>null!==n?t.throwErrorOnBrokenSymbolicLink?r(n):r(null,e):(e.dirent=o.fs.createDirentFromStats(e.name,i),r(null,e)))}}(e,t));i(a,(e,t)=>{if(null!==e)return c(r,e);g(r,t)})})}function a(e,t,r){t.fs.readdir(e,(A,s)=>{if(null!==A)return c(r,A);const a=s.map(r=>`${e}${t.pathSegmentSeparator}${r}`),l=a.map(e=>r=>n.stat(e,t.fsStatSettings,r));i(l,(e,n)=>{if(null!==e)return c(r,e);const i=[];s.forEach((e,r)=>{const A=n[r],s={name:e,path:a[r],dirent:o.fs.createDirentFromStats(e,A)};t.stats&&(s.stats=A),i.push(s)}),g(r,i)})})}function c(e,t){e(t)}function g(e,t){e(null,t)}t.read=function(e,t,r){return!t.stats&&A.IS_SUPPORT_READDIR_WITH_FILE_TYPES?s(e,t,r):a(e,t,r)},t.readdirWithFileTypes=s,t.readdir=a},35516:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(79774),A=r(65225);function o(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(r=>{const n={dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`};if(n.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{const e=t.fs.statSync(n.path);n.dirent=A.fs.createDirentFromStats(n.name,e)}catch(e){if(t.throwErrorOnBrokenSymbolicLink)throw e}return n})}function s(e,t){return t.fs.readdirSync(e).map(r=>{const i=`${e}${t.pathSegmentSeparator}${r}`,o=n.statSync(i,t.fsStatSettings),s={name:r,path:i,dirent:A.fs.createDirentFromStats(r,o)};return t.stats&&(s.stats=o),s})}t.read=function(e,t){return!t.stats&&i.IS_SUPPORT_READDIR_WITH_FILE_TYPES?o(e,t):s(e,t)},t.readdirWithFileTypes=o,t.readdir=s},38844:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),A=r(96117);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=A.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new i.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},72156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},65225:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(72156);t.fs=n},71208:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},53403:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(17790),i=r(34846),A=r(92687);function o(e={}){return e instanceof A.default?e:new A.default(e)}t.Settings=A.default,t.stat=function(e,t,r){if("function"==typeof t)return n.read(e,o(),t);n.read(e,o(t),r)},t.statSync=function(e,t){const r=o(t);return i.read(e,r)}},17790:(e,t)=>{"use strict";function r(e,t){e(t)}function n(e,t){e(null,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t,i){t.fs.lstat(e,(A,o)=>null!==A?r(i,A):o.isSymbolicLink()&&t.followSymbolicLink?void t.fs.stat(e,(e,A)=>{if(null!==e)return t.throwErrorOnBrokenSymbolicLink?r(i,e):n(i,o);t.markSymbolicLink&&(A.isSymbolicLink=()=>!0),n(i,A)}):n(i,o))}},34846:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t){const r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{const r=t.fs.statSync(e);return t.markSymbolicLink&&(r.isSymbolicLink=()=>!0),r}catch(e){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw e}}},92687:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71208);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=n.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return void 0===e?t:e}}},72897:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(42369),i=r(27696),A=r(22111),o=r(14954);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.walk=function(e,t,r){if("function"==typeof t)return new n.default(e,s()).read(t);new n.default(e,s(t)).read(r)},t.walkSync=function(e,t){const r=s(t);return new A.default(e,r).read()},t.walkStream=function(e,t){const r=s(t);return new i.default(e,r).read()}},42369:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{!function(e,t){e(t)}(e,t)}),this._reader.onEntry(e=>{this._storage.add(e)}),this._reader.onEnd(()=>{!function(e,t){e(null,t)}(e,[...this._storage])}),this._reader.read()}}},27696:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new i.default(this._root,this._settings),this._stream=new n.Readable({objectMode:!0,read:()=>{},destroy:this._reader.destroy.bind(this._reader)})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}}},22111:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(97835);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings)}read(){return this._reader.read()}}},98566:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(85670),A=r(98360),o=r(10750),s=r(75504);class a extends s.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=i.scandir,this._emitter=new n.EventEmitter,this._queue=A(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){const r={directory:e,base:t};this._queue.push(r,e=>{null!==e&&this._handleError(e)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(r,n)=>{if(null!==r)return t(r,void 0);for(const t of n)this._handleEntry(t,e.base);t(null,void 0)})}_handleError(e){o.isFatalError(this._settings,e)&&(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;const r=e.path;void 0!==t&&(e.path=o.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),o.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&o.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}}t.default=a},10750:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isFatalError=function(e,t){return null===e.errorFilter||!e.errorFilter(t)},t.isAppliedFilter=function(e,t){return null===e||e(t)},t.replacePathSegmentSeparator=function(e,t){return e.split(/[\\/]/).join(t)},t.joinPathSegments=function(e,t,r){return""===e?t:e+r+t}},75504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10750);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._root=n.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}}},97835:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85670),i=r(10750),A=r(75504);class o extends A.default{constructor(){super(...arguments),this._scandir=n.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(const e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{const r=this._scandir(e,this._settings.fsScandirSettings);for(const e of r)this._handleEntry(e,t)}catch(e){this._handleError(e)}}_handleError(e){if(i.isFatalError(this._settings,e))throw e}_handleEntry(e,t){const r=e.path;void 0!==t&&(e.path=i.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),i.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&i.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_pushToStorage(e){this._storage.add(e)}}t.default=o},14954:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(85670);t.default=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,1/0),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.fsScandirSettings=new i.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},8189:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const{toString:r}=Object.prototype,n=e=>t=>typeof t===e,i=e=>{const t=r.call(e).slice(8,-1);if(t)return t},A=e=>t=>i(t)===e;function o(e){switch(e){case null:return"null";case!0:case!1:return"boolean"}switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"bigint":return"bigint";case"symbol":return"symbol"}if(o.function_(e))return"Function";if(o.observable(e))return"Observable";if(o.array(e))return"Array";if(o.buffer(e))return"Buffer";const t=i(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}o.undefined=n("undefined"),o.string=n("string");const s=n("number");o.number=e=>s(e)&&!o.nan(e),o.bigint=n("bigint"),o.function_=n("function"),o.null_=e=>null===e,o.class_=e=>o.function_(e)&&e.toString().startsWith("class "),o.boolean=e=>!0===e||!1===e,o.symbol=n("symbol"),o.numericString=e=>o.string(e)&&!o.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),o.array=Array.isArray,o.buffer=e=>{var t,r,n,i;return null!==(i=null===(n=null===(r=null===(t=e)||void 0===t?void 0:t.constructor)||void 0===r?void 0:r.isBuffer)||void 0===n?void 0:n.call(r,e))&&void 0!==i&&i},o.nullOrUndefined=e=>o.null_(e)||o.undefined(e),o.object=e=>!o.null_(e)&&("object"==typeof e||o.function_(e)),o.iterable=e=>{var t;return o.function_(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},o.asyncIterable=e=>{var t;return o.function_(null===(t=e)||void 0===t?void 0:t[Symbol.asyncIterator])},o.generator=e=>o.iterable(e)&&o.function_(e.next)&&o.function_(e.throw),o.asyncGenerator=e=>o.asyncIterable(e)&&o.function_(e.next)&&o.function_(e.throw),o.nativePromise=e=>A("Promise")(e);o.promise=e=>o.nativePromise(e)||(e=>{var t,r;return o.function_(null===(t=e)||void 0===t?void 0:t.then)&&o.function_(null===(r=e)||void 0===r?void 0:r.catch)})(e),o.generatorFunction=A("GeneratorFunction"),o.asyncGeneratorFunction=e=>"AsyncGeneratorFunction"===i(e),o.asyncFunction=e=>"AsyncFunction"===i(e),o.boundFunction=e=>o.function_(e)&&!e.hasOwnProperty("prototype"),o.regExp=A("RegExp"),o.date=A("Date"),o.error=A("Error"),o.map=e=>A("Map")(e),o.set=e=>A("Set")(e),o.weakMap=e=>A("WeakMap")(e),o.weakSet=e=>A("WeakSet")(e),o.int8Array=A("Int8Array"),o.uint8Array=A("Uint8Array"),o.uint8ClampedArray=A("Uint8ClampedArray"),o.int16Array=A("Int16Array"),o.uint16Array=A("Uint16Array"),o.int32Array=A("Int32Array"),o.uint32Array=A("Uint32Array"),o.float32Array=A("Float32Array"),o.float64Array=A("Float64Array"),o.bigInt64Array=A("BigInt64Array"),o.bigUint64Array=A("BigUint64Array"),o.arrayBuffer=A("ArrayBuffer"),o.sharedArrayBuffer=A("SharedArrayBuffer"),o.dataView=A("DataView"),o.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,o.urlInstance=e=>A("URL")(e),o.urlString=e=>{if(!o.string(e))return!1;try{return new URL(e),!0}catch(e){return!1}},o.truthy=e=>Boolean(e),o.falsy=e=>!e,o.nan=e=>Number.isNaN(e);const a=new Set(["undefined","string","number","bigint","boolean","symbol"]);o.primitive=e=>o.null_(e)||a.has(typeof e),o.integer=e=>Number.isInteger(e),o.safeInteger=e=>Number.isSafeInteger(e),o.plainObject=e=>{if("Object"!==i(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.getPrototypeOf({})};const c=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"]);o.typedArray=e=>{const t=i(e);return void 0!==t&&c.has(t)};o.arrayLike=e=>!o.nullOrUndefined(e)&&!o.function_(e)&&(e=>o.safeInteger(e)&&e>=0)(e.length),o.inRange=(e,t)=>{if(o.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(o.array(t)&&2===t.length)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError("Invalid range: "+JSON.stringify(t))};const g=["innerHTML","ownerDocument","style","attributes","nodeValue"];o.domElement=e=>o.object(e)&&1===e.nodeType&&o.string(e.nodeName)&&!o.plainObject(e)&&g.every(t=>t in e),o.observable=e=>{var t,r,n,i;return!!e&&(e===(null===(r=(t=e)[Symbol.observable])||void 0===r?void 0:r.call(t))||e===(null===(i=(n=e)["@@observable"])||void 0===i?void 0:i.call(n)))},o.nodeStream=e=>o.object(e)&&o.function_(e.pipe)&&!o.observable(e),o.infinite=e=>e===1/0||e===-1/0;const l=e=>t=>o.integer(t)&&Math.abs(t%2)===e;o.evenInteger=l(0),o.oddInteger=l(1),o.emptyArray=e=>o.array(e)&&0===e.length,o.nonEmptyArray=e=>o.array(e)&&e.length>0,o.emptyString=e=>o.string(e)&&0===e.length,o.nonEmptyString=e=>o.string(e)&&e.length>0;o.emptyStringOrWhitespace=e=>o.emptyString(e)||(e=>o.string(e)&&!/\S/.test(e))(e),o.emptyObject=e=>o.object(e)&&!o.map(e)&&!o.set(e)&&0===Object.keys(e).length,o.nonEmptyObject=e=>o.object(e)&&!o.map(e)&&!o.set(e)&&Object.keys(e).length>0,o.emptySet=e=>o.set(e)&&0===e.size,o.nonEmptySet=e=>o.set(e)&&e.size>0,o.emptyMap=e=>o.map(e)&&0===e.size,o.nonEmptyMap=e=>o.map(e)&&e.size>0;const u=(e,t,r)=>{if(!o.function_(t))throw new TypeError("Invalid predicate: "+JSON.stringify(t));if(0===r.length)throw new TypeError("Invalid number of values");return e.call(r,t)};o.any=(e,...t)=>(o.array(e)?e:[e]).some(e=>u(Array.prototype.some,e,t)),o.all=(e,...t)=>u(Array.prototype.every,e,t);const h=(e,t,r)=>{if(!e)throw new TypeError(`Expected value which is \`${t}\`, received value of type \`${o(r)}\`.`)};t.assert={undefined:e=>h(o.undefined(e),"undefined",e),string:e=>h(o.string(e),"string",e),number:e=>h(o.number(e),"number",e),bigint:e=>h(o.bigint(e),"bigint",e),function_:e=>h(o.function_(e),"Function",e),null_:e=>h(o.null_(e),"null",e),class_:e=>h(o.class_(e),"Class",e),boolean:e=>h(o.boolean(e),"boolean",e),symbol:e=>h(o.symbol(e),"symbol",e),numericString:e=>h(o.numericString(e),"string with a number",e),array:e=>h(o.array(e),"Array",e),buffer:e=>h(o.buffer(e),"Buffer",e),nullOrUndefined:e=>h(o.nullOrUndefined(e),"null or undefined",e),object:e=>h(o.object(e),"Object",e),iterable:e=>h(o.iterable(e),"Iterable",e),asyncIterable:e=>h(o.asyncIterable(e),"AsyncIterable",e),generator:e=>h(o.generator(e),"Generator",e),asyncGenerator:e=>h(o.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>h(o.nativePromise(e),"native Promise",e),promise:e=>h(o.promise(e),"Promise",e),generatorFunction:e=>h(o.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>h(o.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>h(o.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>h(o.boundFunction(e),"Function",e),regExp:e=>h(o.regExp(e),"RegExp",e),date:e=>h(o.date(e),"Date",e),error:e=>h(o.error(e),"Error",e),map:e=>h(o.map(e),"Map",e),set:e=>h(o.set(e),"Set",e),weakMap:e=>h(o.weakMap(e),"WeakMap",e),weakSet:e=>h(o.weakSet(e),"WeakSet",e),int8Array:e=>h(o.int8Array(e),"Int8Array",e),uint8Array:e=>h(o.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>h(o.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>h(o.int16Array(e),"Int16Array",e),uint16Array:e=>h(o.uint16Array(e),"Uint16Array",e),int32Array:e=>h(o.int32Array(e),"Int32Array",e),uint32Array:e=>h(o.uint32Array(e),"Uint32Array",e),float32Array:e=>h(o.float32Array(e),"Float32Array",e),float64Array:e=>h(o.float64Array(e),"Float64Array",e),bigInt64Array:e=>h(o.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>h(o.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>h(o.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>h(o.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>h(o.dataView(e),"DataView",e),urlInstance:e=>h(o.urlInstance(e),"URL",e),urlString:e=>h(o.urlString(e),"string with a URL",e),truthy:e=>h(o.truthy(e),"truthy",e),falsy:e=>h(o.falsy(e),"falsy",e),nan:e=>h(o.nan(e),"NaN",e),primitive:e=>h(o.primitive(e),"primitive",e),integer:e=>h(o.integer(e),"integer",e),safeInteger:e=>h(o.safeInteger(e),"integer",e),plainObject:e=>h(o.plainObject(e),"plain object",e),typedArray:e=>h(o.typedArray(e),"TypedArray",e),arrayLike:e=>h(o.arrayLike(e),"array-like",e),domElement:e=>h(o.domElement(e),"Element",e),observable:e=>h(o.observable(e),"Observable",e),nodeStream:e=>h(o.nodeStream(e),"Node.js Stream",e),infinite:e=>h(o.infinite(e),"infinite number",e),emptyArray:e=>h(o.emptyArray(e),"empty array",e),nonEmptyArray:e=>h(o.nonEmptyArray(e),"non-empty array",e),emptyString:e=>h(o.emptyString(e),"empty string",e),nonEmptyString:e=>h(o.nonEmptyString(e),"non-empty string",e),emptyStringOrWhitespace:e=>h(o.emptyStringOrWhitespace(e),"empty string or whitespace",e),emptyObject:e=>h(o.emptyObject(e),"empty object",e),nonEmptyObject:e=>h(o.nonEmptyObject(e),"non-empty object",e),emptySet:e=>h(o.emptySet(e),"empty set",e),nonEmptySet:e=>h(o.nonEmptySet(e),"non-empty set",e),emptyMap:e=>h(o.emptyMap(e),"empty map",e),nonEmptyMap:e=>h(o.nonEmptyMap(e),"non-empty map",e),evenInteger:e=>h(o.evenInteger(e),"even integer",e),oddInteger:e=>h(o.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>h(o.directInstanceOf(e,t),"T",e),inRange:(e,t)=>h(o.inRange(e,t),"in range",e),any:(e,...t)=>h(o.any(e,...t),"predicate returns truthy for any value",t),all:(e,...t)=>h(o.all(e,...t),"predicate returns truthy for all values",t)},Object.defineProperties(o,{class:{value:o.class_},function:{value:o.function_},null:{value:o.null_}}),Object.defineProperties(t.assert,{class:{value:t.assert.class_},function:{value:t.assert.function_},null:{value:t.assert.null_}}),t.default=o,e.exports=o,e.exports.default=o,e.exports.assert=t.assert},98298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(93121),i=Number(process.versions.node.split(".")[0]),A=e=>{const t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;const r=e=>{const r=e.emit.bind(e);e.emit=(n,...i)=>("error"===n&&(t.error=Date.now(),t.phases.total=t.error-t.start,e.emit=r),r(n,...i))};r(e),e.prependOnceListener("abort",()=>{t.abort=Date.now(),(!t.response||i>=13)&&(t.phases.total=Date.now()-t.start)});const A=e=>{t.socket=Date.now(),t.phases.wait=t.socket-t.start;const r=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};e.prependOnceListener("lookup",r),n.default(e,{connect:()=>{t.connect=Date.now(),void 0===t.lookup&&(e.removeListener("lookup",r),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?A(e.socket):e.prependOnceListener("socket",A);const o=()=>{var e;t.upload=Date.now(),t.phases.request=t.upload-(null!=(e=t.secureConnect)?e:t.connect)};return("boolean"==typeof e.writableFinished?!e.writableFinished:!e.finished||0!==e.outputSize||e.socket&&0!==e.socket.writableLength)?e.prependOnceListener("finish",o):o(),e.prependOnceListener("response",e=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,e.timings=t,r(e),e.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start})}),t};t.default=A,e.exports=A,e.exports.default=A},58069:(e,t,r)=>{"use strict";l.ifExists=function(e,t,r){return l(e,t,r).catch(()=>{})};const n=r(31669),i=r(46227),A=r(85622),o=r(97369),s=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,a={createPwshFile:!0,createCmdFile:o(),fs:r(35747)},c=new Map([[".js","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function g(e){const t={...a,...e},r=t.fs;return t.fs_={chmod:r.chmod?n.promisify(r.chmod):async()=>{},stat:n.promisify(r.stat),unlink:n.promisify(r.unlink),readFile:n.promisify(r.readFile),writeFile:n.promisify(r.writeFile)},t}async function l(e,t,r){const n=g(r);await n.fs_.stat(e),await async function(e,t,r){const n=await async function(e,t){const r=await t.fs_.readFile(e,"utf8"),n=r.trim().split(/\r*\n/)[0].match(s);if(!n){const t=A.extname(e).toLowerCase();return{program:c.get(t)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}(e,r);return await function(e,t){return i(A.dirname(e),{fs:t.fs})}(t,r),function(e,t,r,n){const i=g(n),A=[{generator:h,extension:""}];i.createCmdFile&&A.push({generator:u,extension:".cmd"});i.createPwshFile&&A.push({generator:p,extension:".ps1"});return Promise.all(A.map(n=>async function(e,t,r,n,i){const A=i.preserveSymlinks?"--preserve-symlinks":"",o=[r.additionalArgs,A].filter(e=>e).join(" ");return i=Object.assign({},i,{prog:r.program,args:o}),await function(e,t){return function(e,t){return t.fs_.unlink(e).catch(()=>{})}(e,t)}(t,i),await i.fs_.writeFile(t,n(e,t,i),"utf8"),function(e,t){return function(e,t){return t.fs_.chmod(e,493)}(e,t)}(t,i)}(e,t+n.extension,r,n.generator,i)))}(e,t,n,r)}(e,t,n)}function u(e,t,r){let n=A.relative(A.dirname(t),e).split("/").join("\\");const i=A.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`;let o,s=r.prog,a=r.args||"";const c=f(r.nodePath).win32;s?(o=`"%~dp0\\${s}.exe"`,n=i):(s=i,a="",n="");let g=r.progArgs?r.progArgs.join(" ")+" ":"",l=c?`@SET NODE_PATH=${c}\r\n`:"";return l+=o?`@IF EXIST ${o} (\r\n ${o} ${a} ${n} ${g}%*\r\n) ELSE (\r\n @SETLOCAL\r\n @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n ${s} ${a} ${n} ${g}%*\r\n)`:`@${s} ${a} ${n} ${g}%*\r\n`,l}function h(e,t,r){let n,i=A.relative(A.dirname(t),e),o=r.prog&&r.prog.split("\\").join("/");i=i.split("\\").join("/");const s=A.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`;let a=r.args||"";const c=f(r.nodePath).posix;o?(n=`"$basedir/${r.prog}"`,i=s):(o=s,a="",i="");let g=r.progArgs?r.progArgs.join(" ")+" ":"",l="#!/bin/sh\n";l+='basedir=$(dirname "$(echo "$0" | sed -e \'s,\\\\,/,g\')")\n\ncase `uname` in\n *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\nesac\n\n';const u=r.nodePath?`export NODE_PATH="${c}"\n`:"";return l+=n?u+`if [ -x ${n} ]; then\n`+` exec ${n} ${a} ${i} ${g}"$@"\nelse \n`+` exec ${o} ${a} ${i} ${g}"$@"\nfi\n`:`${u}${o} ${a} ${i} ${g}"$@"\nexit $?\n`,l}function p(e,t,r){let n=A.relative(A.dirname(t),e);const i=r.prog&&r.prog.split("\\").join("/");let o,s=i&&`"${i}$exe"`;n=n.split("\\").join("/");const a=A.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`;let c=r.args||"",g=f(r.nodePath);const l=g.win32,u=g.posix;s?(o=`"$basedir/${r.prog}$exe"`,n=a):(s=a,c="",n="");let h=r.progArgs?r.progArgs.join(" ")+" ":"",p='#!/usr/bin/env pwsh\n$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n\n$exe=""\n'+(r.nodePath?`$env_node_path=$env:NODE_PATH\n$env:NODE_PATH="${l}"\n`:"")+'if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {\n # Fix case when both the Windows and Linux builds of Node\n # are installed in the same directory\n $exe=".exe"\n}';return r.nodePath&&(p=p+" else {\n"+` $env:NODE_PATH="${u}"\n}`),p+="\n",p=o?p+"$ret=0\n"+`if (Test-Path ${o}) {\n # Support pipeline input\n if ($MyInvocation.ExpectingInput) {\n`+` $input | & ${o} ${c} ${n} ${h}$args\n } else {\n`+` & ${o} ${c} ${n} ${h}$args\n }\n $ret=$LASTEXITCODE\n} else {\n # Support pipeline input\n if ($MyInvocation.ExpectingInput) {\n`+` $input | & ${s} ${c} ${n} ${h}$args\n } else {\n`+` & ${s} ${c} ${n} ${h}$args\n }\n $ret=$LASTEXITCODE\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $ret\n":p+"# Support pipeline input\nif ($MyInvocation.ExpectingInput) {\n"+` $input | & ${s} ${c} ${n} ${h}$args\n} else {\n`+` & ${s} ${c} ${n} ${h}$args\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $LASTEXITCODE\n",p}function f(e){if(!e)return{win32:"",posix:""};let t="string"==typeof e?e.split(A.delimiter):Array.from(e),r={};for(let e=0;e"/mnt/"+t.toLowerCase()):t[e];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${i}`:i,r[e]={win32:n,posix:i}}return r}e.exports=l},97991:(e,t,r)=>{"use strict";const n=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,i=()=>{const e={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(e.enabled="0"!==process.env.FORCE_COLOR);const t=(e,t,r)=>"function"==typeof e?e(t):e.wrap(t,r),i=(r,n)=>{if(""===r||null==r)return"";if(!1===e.enabled)return r;if(!1===e.visible)return"";let i=""+r,A=i.includes("\n"),o=n.length;for(o>0&&n.includes("unstyle")&&(n=[...new Set(["unstyle",...n])].reverse());o-- >0;)i=t(e.styles[n[o]],i,A);return i},A=(t,r,n)=>{e.styles[t]=(e=>{let t=e.open=`[${e.codes[0]}m`,r=e.close=`[${e.codes[1]}m`,n=e.regex=new RegExp(`\\u001b\\[${e.codes[1]}m`,"g");return e.wrap=(e,i)=>{e.includes(r)&&(e=e.replace(n,r+t));let A=t+e+r;return i?A.replace(/\r*\n/g,`${r}$&${t}`):A},e})({name:t,codes:r}),(e.keys[n]||(e.keys[n]=[])).push(t),Reflect.defineProperty(e,t,{configurable:!0,enumerable:!0,set(r){e.alias(t,r)},get(){let r=e=>i(e,r.stack);return Reflect.setPrototypeOf(r,e),r.stack=this.stack?this.stack.concat(t):[t],r}})};return A("reset",[0,0],"modifier"),A("bold",[1,22],"modifier"),A("dim",[2,22],"modifier"),A("italic",[3,23],"modifier"),A("underline",[4,24],"modifier"),A("inverse",[7,27],"modifier"),A("hidden",[8,28],"modifier"),A("strikethrough",[9,29],"modifier"),A("black",[30,39],"color"),A("red",[31,39],"color"),A("green",[32,39],"color"),A("yellow",[33,39],"color"),A("blue",[34,39],"color"),A("magenta",[35,39],"color"),A("cyan",[36,39],"color"),A("white",[37,39],"color"),A("gray",[90,39],"color"),A("grey",[90,39],"color"),A("bgBlack",[40,49],"bg"),A("bgRed",[41,49],"bg"),A("bgGreen",[42,49],"bg"),A("bgYellow",[43,49],"bg"),A("bgBlue",[44,49],"bg"),A("bgMagenta",[45,49],"bg"),A("bgCyan",[46,49],"bg"),A("bgWhite",[47,49],"bg"),A("blackBright",[90,39],"bright"),A("redBright",[91,39],"bright"),A("greenBright",[92,39],"bright"),A("yellowBright",[93,39],"bright"),A("blueBright",[94,39],"bright"),A("magentaBright",[95,39],"bright"),A("cyanBright",[96,39],"bright"),A("whiteBright",[97,39],"bright"),A("bgBlackBright",[100,49],"bgBright"),A("bgRedBright",[101,49],"bgBright"),A("bgGreenBright",[102,49],"bgBright"),A("bgYellowBright",[103,49],"bgBright"),A("bgBlueBright",[104,49],"bgBright"),A("bgMagentaBright",[105,49],"bgBright"),A("bgCyanBright",[106,49],"bgBright"),A("bgWhiteBright",[107,49],"bgBright"),e.ansiRegex=n,e.hasColor=e.hasAnsi=t=>(e.ansiRegex.lastIndex=0,"string"==typeof t&&""!==t&&e.ansiRegex.test(t)),e.alias=(t,r)=>{let n="string"==typeof r?e[r]:r;if("function"!=typeof n)throw new TypeError("Expected alias to be the name of an existing color (string) or a function");n.stack||(Reflect.defineProperty(n,"name",{value:t}),e.styles[t]=n,n.stack=[t]),Reflect.defineProperty(e,t,{configurable:!0,enumerable:!0,set(r){e.alias(t,r)},get(){let t=e=>i(e,t.stack);return Reflect.setPrototypeOf(t,e),t.stack=this.stack?this.stack.concat(n.stack):n.stack,t}})},e.theme=t=>{if(null===(r=t)||"object"!=typeof r||Array.isArray(r))throw new TypeError("Expected theme to be an object");var r;for(let r of Object.keys(t))e.alias(r,t[r]);return e},e.alias("unstyle",t=>"string"==typeof t&&""!==t?(e.ansiRegex.lastIndex=0,t.replace(e.ansiRegex,"")):""),e.alias("noop",e=>e),e.none=e.clear=e.noop,e.stripColor=e.unstyle,e.symbols=r(31283),e.define=A,e};e.exports=i(),e.exports.create=i},31283:e=>{"use strict";const t="Hyper"===process.env.TERM_PROGRAM,r="win32"===process.platform,n="linux"===process.platform,i={ballotDisabled:"☒",ballotOff:"☐",ballotOn:"☑",bullet:"•",bulletWhite:"◦",fullBlock:"█",heart:"❤",identicalTo:"≡",line:"─",mark:"※",middot:"·",minus:"-",multiplication:"×",obelus:"÷",pencilDownRight:"✎",pencilRight:"✏",pencilUpRight:"✐",percent:"%",pilcrow2:"❡",pilcrow:"¶",plusMinus:"±",section:"§",starsOff:"☆",starsOn:"★",upDownArrow:"↕"},A=Object.assign({},i,{check:"√",cross:"×",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"»",radioOff:"( )",radioOn:"(*)",warning:"‼"}),o=Object.assign({},i,{ballotCross:"✘",check:"✔",cross:"✖",ellipsisLarge:"⋯",ellipsis:"…",info:"ℹ",question:"?",questionFull:"?",questionSmall:"﹖",pointer:n?"▸":"❯",pointerSmall:n?"‣":"›",radioOff:"◯",radioOn:"◉",warning:"⚠"});e.exports=r&&!t?A:o,Reflect.defineProperty(e.exports,"common",{enumerable:!1,value:i}),Reflect.defineProperty(e.exports,"windows",{enumerable:!1,value:A}),Reflect.defineProperty(e.exports,"other",{enumerable:!1,value:o})},18483:(e,t,r)=>{"use strict";e=r.nmd(e);const n=(e,t)=>(...r)=>`[${e(...r)+t}m`,i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},A=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},o=e=>e,s=(e,t,r)=>[e,t,r],a=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let c;const g=(e,t,n,i)=>{void 0===c&&(c=r(2744));const A=i?10:0,o={};for(const[r,i]of Object.entries(c)){const s="ansi16"===r?"ansi":r;r===t?o[s]=e(n,A):"object"==typeof i&&(o[s]=e(i[t],A))}return o};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[r,n]of Object.entries(t)){for(const[r,i]of Object.entries(n))t[r]={open:`[${i[0]}m`,close:`[${i[1]}m`},n[r]=t[r],e.set(i[0],i[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",a(t.color,"ansi",()=>g(n,"ansi16",o,!1)),a(t.color,"ansi256",()=>g(i,"ansi256",o,!1)),a(t.color,"ansi16m",()=>g(A,"rgb",s,!1)),a(t.bgColor,"ansi",()=>g(n,"ansi16",o,!0)),a(t.bgColor,"ansi256",()=>g(i,"ansi256",o,!0)),a(t.bgColor,"ansi16m",()=>g(A,"rgb",s,!0)),t}})},39920:e=>{"use strict";e.exports=(...e)=>[...new Set([].concat(...e))]},98662:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBinjumper=void 0;const n=r(78761);let i=null;t.getBinjumper=function(){return i||(i=n.gunzipSync(Buffer.from("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","base64"))),i}},31228:(e,t,r)=>{"use strict";t.O9=void 0;const n=r(85622),i=r(35747),A=r(31669),o=r(98662);Object.defineProperty(t,"O9",{enumerable:!0,get:function(){return o.getBinjumper}})},73975:(e,t,r)=>{"use strict";var n=r(86897).Duplex;function i(e){if(!(this instanceof i))return new i(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);n.call(this)}r(31669).inherits(i,n),i.prototype._offset=function(e){var t,r=0,n=0;if(0===e)return[0,0];for(;nthis.length||e<0)){var t=this._offset(e);return this._bufs[t[0]][t[1]]}},i.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},i.prototype.copy=function(e,t,r,n){if(("number"!=typeof r||r<0)&&(r=0),("number"!=typeof n||n>this.length)&&(n=this.length),r>=this.length)return e||Buffer.alloc(0);if(n<=0)return e||Buffer.alloc(0);var i,A,o=!!e,s=this._offset(r),a=n-r,c=a,g=o&&t||0,l=s[1];if(0===r&&n==this.length){if(!o)return 1===this._bufs.length?this._bufs[0]:Buffer.concat(this._bufs,this.length);for(A=0;A(i=this._bufs[A].length-l))){this._bufs[A].copy(e,g,l,l+c);break}this._bufs[A].copy(e,g,l),g+=i,c-=i,l&&(l=0)}return e},i.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"!=typeof t?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return new i;var r=this._offset(e),n=this._offset(t),A=this._bufs.slice(r[0],n[0]+1);return 0==n[1]?A.pop():A[A.length-1]=A[A.length-1].slice(0,n[1]),0!=r[1]&&(A[0]=A[0].slice(r[1])),new i(A)},i.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},i.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},i.prototype.duplicate=function(){for(var e=0,t=new i;ethis.length?this.length:t;for(var n=this._offset(t),A=n[0],o=n[1];A=e.length){var a=s.indexOf(e,o);if(-1!==a)return this._reverseOffset([A,a]);o=s.length-e.length+1}else{var c=this._reverseOffset([A,o]);if(this._match(c,e))return c;o++}}o=0}return-1},i.prototype._match=function(e,t){if(this.length-e{"use strict";const n=r(54900),i=r(44617),A=r(1495),o=r(425),s=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let e=s.create(n,t);Array.isArray(e)?r.push(...e):r.push(e)}else r=[].concat(s.create(e,t));return t&&!0===t.expand&&!0===t.nodupes&&(r=[...new Set(r)]),r};s.parse=(e,t={})=>o(e,t),s.stringify=(e,t={})=>n("string"==typeof e?s.parse(e,t):e,t),s.compile=(e,t={})=>("string"==typeof e&&(e=s.parse(e,t)),i(e,t)),s.expand=(e,t={})=>{"string"==typeof e&&(e=s.parse(e,t));let r=A(e,t);return!0===t.noempty&&(r=r.filter(Boolean)),!0===t.nodupes&&(r=[...new Set(r)]),r},s.create=(e,t={})=>""===e||e.length<3?[e]:!0!==t.expand?s.compile(e,t):s.expand(e,t),e.exports=s},44617:(e,t,r)=>{"use strict";const n=r(52169),i=r(4542);e.exports=(e,t={})=>{let r=(e,A={})=>{let o=i.isInvalidBrace(A),s=!0===e.invalid&&!0===t.escapeInvalid,a=!0===o||!0===s,c=!0===t.escapeInvalid?"\\":"",g="";if(!0===e.isOpen)return c+e.value;if(!0===e.isClose)return c+e.value;if("open"===e.type)return a?c+e.value:"(";if("close"===e.type)return a?c+e.value:")";if("comma"===e.type)return"comma"===e.prev.type?"":a?e.value:"|";if(e.value)return e.value;if(e.nodes&&e.ranges>0){let r=i.reduce(e.nodes),A=n(...r,{...t,wrap:!1,toRegex:!0});if(0!==A.length)return r.length>1&&A.length>1?`(${A})`:A}if(e.nodes)for(let t of e.nodes)g+=r(t,e);return g};return r(e)}},5384:e=>{"use strict";e.exports={MAX_LENGTH:65536,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},1495:(e,t,r)=>{"use strict";const n=r(52169),i=r(54900),A=r(4542),o=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),!(t=[].concat(t)).length)return e;if(!e.length)return r?A.flatten(t).map(e=>`{${e}}`):t;for(let i of e)if(Array.isArray(i))for(let e of i)n.push(o(e,t,r));else for(let e of t)!0===r&&"string"==typeof e&&(e=`{${e}}`),n.push(Array.isArray(e)?o(i,e,r):i+e);return A.flatten(n)};e.exports=(e,t={})=>{let r=void 0===t.rangeLimit?1e3:t.rangeLimit,s=(e,a={})=>{e.queue=[];let c=a,g=a.queue;for(;"brace"!==c.type&&"root"!==c.type&&c.parent;)c=c.parent,g=c.queue;if(e.invalid||e.dollar)return void g.push(o(g.pop(),i(e,t)));if("brace"===e.type&&!0!==e.invalid&&2===e.nodes.length)return void g.push(o(g.pop(),["{}"]));if(e.nodes&&e.ranges>0){let s=A.reduce(e.nodes);if(A.exceedsLimit(...s,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let a=n(...s,t);return 0===a.length&&(a=i(e,t)),g.push(o(g.pop(),a)),void(e.nodes=[])}let l=A.encloseBrace(e),u=e.queue,h=e;for(;"brace"!==h.type&&"root"!==h.type&&h.parent;)h=h.parent,u=h.queue;for(let t=0;t{"use strict";const n=r(54900),{MAX_LENGTH:i,CHAR_BACKSLASH:A,CHAR_BACKTICK:o,CHAR_COMMA:s,CHAR_DOT:a,CHAR_LEFT_PARENTHESES:c,CHAR_RIGHT_PARENTHESES:g,CHAR_LEFT_CURLY_BRACE:l,CHAR_RIGHT_CURLY_BRACE:u,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_RIGHT_SQUARE_BRACKET:p,CHAR_DOUBLE_QUOTE:f,CHAR_SINGLE_QUOTE:d,CHAR_NO_BREAK_SPACE:C,CHAR_ZERO_WIDTH_NOBREAK_SPACE:I}=r(5384);e.exports=(e,t={})=>{if("string"!=typeof e)throw new TypeError("Expected a string");let r=t||{},E="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;if(e.length>E)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${E})`);let m,B={type:"root",input:e,nodes:[]},y=[B],w=B,Q=B,v=0,b=e.length,D=0,S=0;const k=()=>e[D++],M=e=>{if("text"===e.type&&"dot"===Q.type&&(Q.type="text"),!Q||"text"!==Q.type||"text"!==e.type)return w.nodes.push(e),e.parent=w,e.prev=Q,Q=e,e;Q.value+=e.value};for(M({type:"bos"});D0){if(w.ranges>0){w.ranges=0;let e=w.nodes.shift();w.nodes=[e,{type:"text",value:n(w)}]}M({type:"comma",value:m}),w.commas++}else if(m===a&&S>0&&0===w.commas){let e=w.nodes;if(0===S||0===e.length){M({type:"text",value:m});continue}if("dot"===Q.type){if(w.range=[],Q.value+=m,Q.type="range",3!==w.nodes.length&&5!==w.nodes.length){w.invalid=!0,w.ranges=0,Q.type="text";continue}w.ranges++,w.args=[];continue}if("range"===Q.type){e.pop();let t=e[e.length-1];t.value+=Q.value+m,Q=t,w.ranges--;continue}M({type:"dot",value:m})}else M({type:"text",value:m});else{if("brace"!==w.type){M({type:"text",value:m});continue}let e="close";w=y.pop(),w.close=!0,M({type:e,value:m}),S--,w=y[y.length-1]}else{S++;let e=Q.value&&"$"===Q.value.slice(-1)||!0===w.dollar;w=M({type:"brace",open:!0,close:!1,dollar:e,depth:S,commas:0,ranges:0,nodes:[]}),y.push(w),M({type:"open",value:m})}else{let e,r=m;for(!0!==t.keepQuotes&&(m="");D{e.nodes||("open"===e.type&&(e.isOpen=!0),"close"===e.type&&(e.isClose=!0),e.nodes||(e.type="text"),e.invalid=!0)});let e=y[y.length-1],t=e.nodes.indexOf(w);e.nodes.splice(t,1,...w.nodes)}}while(y.length>0);return M({type:"eos"}),B}},54900:(e,t,r)=>{"use strict";const n=r(4542);e.exports=(e,t={})=>{let r=(e,i={})=>{let A=t.escapeInvalid&&n.isInvalidBrace(i),o=!0===e.invalid&&!0===t.escapeInvalid,s="";if(e.value)return(A||o)&&n.isOpenOrClose(e)?"\\"+e.value:e.value;if(e.value)return e.value;if(e.nodes)for(let t of e.nodes)s+=r(t);return s};return r(e)}},4542:(e,t)=>{"use strict";t.isInteger=e=>"number"==typeof e?Number.isInteger(e):"string"==typeof e&&""!==e.trim()&&Number.isInteger(Number(e)),t.find=(e,t)=>e.nodes.find(e=>e.type===t),t.exceedsLimit=(e,r,n=1,i)=>!1!==i&&(!(!t.isInteger(e)||!t.isInteger(r))&&(Number(r)-Number(e))/Number(n)>=i),t.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||"open"===n.type||"close"===n.type)&&!0!==n.escaped&&(n.value="\\"+n.value,n.escaped=!0)},t.encloseBrace=e=>"brace"===e.type&&(e.commas>>0+e.ranges>>0==0&&(e.invalid=!0,!0)),t.isInvalidBrace=e=>"brace"===e.type&&(!(!0!==e.invalid&&!e.dollar)||(e.commas>>0+e.ranges>>0==0||!0!==e.open||!0!==e.close)&&(e.invalid=!0,!0)),t.isOpenOrClose=e=>"open"===e.type||"close"===e.type||(!0===e.open||!0===e.close),t.reduce=e=>e.reduce((e,t)=>("text"===t.type&&e.push(t.value),"range"===t.type&&(t.type="text"),e),[]),t.flatten=(...e)=>{const t=[],r=e=>{for(let n=0;n{"use strict";const n=r(85622),{watch:i}=r(35747),{readFile:A}=r(35747).promises,{isIP:o}=r(11631),s="win32"===process.platform?n.join(process.env.SystemDrive,"Windows\\System32\\drivers\\etc\\hosts"):"/etc/hosts",a=/^(?:(?:[a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])\.)*(?:[A-Za-z\d]|[A-Za-z\d][A-Za-z\d-]*[A-Za-z\d])$/,c=e=>a.test(e),g={encoding:"utf8"},l=/\s+/g;class u{constructor({watching:e,customHostsPath:t=s}){this._hostsPath=t,this._error=null,this._watcher=null,this._watching=e,this._hosts={},this._init()}_init(){"string"==typeof this._hostsPath&&(this._promise=(async()=>{await this._update(),this._promise=null,this._error||this._watching&&(this._watcher=i(this._hostsPath,{persistent:!1},e=>{"change"===e?this._update():this._watcher.close()}),this._watcher.once("error",e=>{this._error=e,this._hosts={}}),this._watcher.once("close",()=>{this._init()}))})())}async _update(){try{let e=await A(this._hostsPath,g);e=e.split("\n"),this._hosts={};for(let t of e){t=t.replace(l," ").trim();const e=t.split(" "),r=o(e[0]);if(!r)continue;const n=e.shift();for(const t of e){if(!c(t))break;if(this._hosts[t]){let e=!1;for(const n of this._hosts[t])if(n.family===r){e=!0;break}if(e)continue}else this._hosts[t]=[],this._hosts[t].expires=1/0;this._hosts[t].push({address:n,family:r,expires:1/0,ttl:1/0})}}}catch(e){this._hosts={},this._error=e}}async get(e){if(this._promise&&await this._promise,this._error)throw this._error;return this._hosts[e]}}const h={};u.getResolver=({customHostsPath:e,watching:t})=>{void 0!==e&&"string"!=typeof e&&(e=!1);const r=`${e}:${t=Boolean(t)}`;let n=h[r];return n||(n=new u({customHostsPath:e,watching:t}),h[r]=n,n)},e.exports=u},43261:(e,t,r)=>{"use strict";const{V4MAPPED:n,ADDRCONFIG:i,promises:{Resolver:A},lookup:o}=r(40881),{promisify:s}=r(31669),a=r(12087),{getResolver:c}=r(76438),g=Symbol("cacheableLookupCreateConnection"),l=Symbol("cacheableLookupInstance"),u=e=>{if(!e||"function"!=typeof e.createConnection)throw new Error("Expected an Agent instance as the first argument")},h=()=>{let e=!1,t=!1;for(const r of Object.values(a.networkInterfaces()))for(const n of r)if(!n.internal&&("IPv6"===n.family?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},p={ttl:!0};class f{constructor({customHostsPath:e,watchingHostsFile:t=!1,cache:r=new Map,maxTtl:n=1/0,resolver:i=new A,fallbackTtl:a=1,errorTtl:g=.15}={}){this.maxTtl=n,this.fallbackTtl=a,this.errorTtl=g,this._cache=r,this._resolver=i,this._lookup=s(o),this._resolver instanceof A?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=s(this._resolver.resolve4.bind(this._resolver)),this._resolve6=s(this._resolver.resolve6.bind(this._resolver))),this._iface=h(),this._hostsResolver=c({customHostsPath:e,watching:t}),this._pending={},this._nextRemovalTime=!1,this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.updateInterfaceInfo(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,r){if("function"==typeof t?(r=t,t={}):"number"==typeof t&&(t={family:t}),!r)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(e=>{t.all?r(null,e):r(null,e.address,e.family,e.expires,e.ttl)},r)}async lookupAsync(e,t={}){"number"==typeof t&&(t={family:t});let r=await this.query(e);if(6===t.family){const e=r.filter(e=>6===e.family);0===e.length&&t.hints&n?(e=>{for(const t of e)t.address="::ffff:"+t.address,t.family=6})(r):r=e}else 4===t.family&&(r=r.filter(e=>4===e.family));if(t.hints&i){const{_iface:e}=this;r=r.filter(t=>6===t.family?e.has6:e.has4)}if(0===r.length){const t=new Error("ENOTFOUND "+e);throw t.code="ENOTFOUND",t.hostname=e,t}return t.all?r:1===r.length?r[0]:this._getEntry(r,e)}async query(e){let t=await this._hostsResolver.get(e)||await this._cache.get(e);if(!t){const r=this._pending[e];if(r)t=await r;else{const r=this.queryAndCache(e);this._pending[e]=r,t=await r}}return t=t.map(e=>({...e})),t}async queryAndCache(e){const[t,r]=await Promise.all([this._resolve4(e,p).catch(()=>[]),this._resolve6(e,p).catch(()=>[])]);let n=0;if(t)for(const e of t)e.family=4,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);if(r)for(const e of r)e.family=6,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);let i=[...t||[],...r||[]];if(0===i.length)try{i=await this._lookup(e,{all:!0});for(const e of i)e.ttl=this.fallbackTtl,e.expires=Date.now()+1e3*e.ttl;n=1e3*this.fallbackTtl}catch(t){throw delete this._pending[e],"ENOTFOUND"===t.code&&(n=1e3*this.errorTtl,i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),t}else n=1e3*Math.min(this.maxTtl,n);return this.maxTtl>0&&n>0&&(i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),delete this._pending[e],i}_getEntry(e,t){return e[0]}tick(){}_tick(e){if(!(this._cache instanceof Map)||void 0===e)return;const t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let e=1/0;const t=Date.now();for(const[r,{expires:n}]of this._cache)t>=n?this._cache.delete(r):n("lookup"in t||(t.lookup=this.lookup),e[g](t,r))}uninstall(e){if(u(e),e[g]){if(e[l]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[g],delete e[g],delete e[l]}}updateInterfaceInfo(){this._iface=h(),this._cache.clear()}clear(e){e?this._cache.delete(e):this._cache.clear()}}e.exports=f,e.exports.default=f},11200:(e,t,r)=>{"use strict";const n=r(28614),i=r(78835),A=r(19793),o=r(58764),s=r(86834),a=r(48491),c=r(55737),g=r(15751),l=r(72515);class u{constructor(e,t){if("function"!=typeof e)throw new TypeError("Parameter `request` must be a function");return this.cache=new l({uri:"string"==typeof t&&t,store:"string"!=typeof t&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,r)=>{let l;if("string"==typeof t)l=p(i.parse(t)),t={};else if(t instanceof i.URL)l=p(i.parse(t.toString())),t={};else{const[e,...r]=(t.path||"").split("?"),n=r.length>0?"?"+r.join("?"):"";l=p({...t,pathname:e,search:n})}(t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...h(l)}).headers=c(t.headers);const f=new n,d=A(i.format(l),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),C=`${t.method}:${d}`;let I=!1,E=!1;const m=t=>{E=!0;let n,i=!1;const A=new Promise(e=>{n=()=>{i||(i=!0,e())}}),c=e=>{if(I&&!t.forceRefresh){e.status=e.statusCode;const r=s.fromObject(I.cachePolicy).revalidatedPolicy(t,e);if(!r.modified){const t=r.policy.responseHeaders();(e=new a(I.statusCode,t,I.body,I.url)).cachePolicy=r.policy,e.fromCache=!0}}let n;e.fromCache||(e.cachePolicy=new s(t,e,t),e.fromCache=!1),t.cache&&e.cachePolicy.storable()?(n=g(e),(async()=>{try{const r=o.buffer(e);if(await Promise.race([A,new Promise(t=>e.once("end",t))]),i)return;const n=await r,s={cachePolicy:e.cachePolicy.toObject(),url:e.url,statusCode:e.fromCache?I.statusCode:e.statusCode,body:n};let a=t.strictTtl?e.cachePolicy.timeToLive():void 0;t.maxTtl&&(a=a?Math.min(a,t.maxTtl):t.maxTtl),await this.cache.set(C,s,a)}catch(e){f.emit("error",new u.CacheError(e))}})()):t.cache&&I&&(async()=>{try{await this.cache.delete(C)}catch(e){f.emit("error",new u.CacheError(e))}})(),f.emit("response",n||e),"function"==typeof r&&r(n||e)};try{const r=e(t,c);r.once("error",n),r.once("abort",n),f.emit("request",r)}catch(e){f.emit("error",new u.RequestError(e))}};return(async()=>{const e=async e=>{await Promise.resolve();const t=e.cache?await this.cache.get(C):void 0;if(void 0===t)return m(e);const n=s.fromObject(t.cachePolicy);if(n.satisfiesWithoutRevalidation(e)&&!e.forceRefresh){const e=n.responseHeaders(),i=new a(t.statusCode,e,t.body,t.url);i.cachePolicy=n,i.fromCache=!0,f.emit("response",i),"function"==typeof r&&r(i)}else I=t,e.headers=n.revalidationHeaders(e),m(e)},n=e=>f.emit("error",new u.CacheError(e));this.cache.once("error",n),f.on("response",()=>this.cache.removeListener("error",n));try{await e(t)}catch(e){t.automaticFailover&&!E&&m(t),f.emit("error",new u.CacheError(e))}})(),f}}}function h(e){const t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function p(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}u.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}},u.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}},e.exports=u},54738:e=>{"use strict";const t=(e,t)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);if(0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length)return"";if(1===e.length)return t.pascalCase?e.toUpperCase():e.toLowerCase();return e!==e.toLowerCase()&&(e=(e=>{let t=!1,r=!1,n=!1;for(let i=0;it.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase()),r=e,t.pascalCase?r.charAt(0).toUpperCase()+r.slice(1):r;var r};e.exports=t,e.exports.default=t},95882:(e,t,r)=>{"use strict";const n=r(18483),{stdout:i,stderr:A}=r(59428),{stringReplaceAll:o,stringEncaseCRLFWithFirstIndex:s}=r(73327),a=["ansi","ansi","ansi256","ansi16m"],c=Object.create(null);class g{constructor(e){return l(e)}}const l=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const r=i?i.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>E(t.template,...e),Object.setPrototypeOf(t,u.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=g,t.template};function u(e){return l(e)}for(const[e,t]of Object.entries(n))c[e]={get(){const r=d(this,f(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};c.visible={get(){const e=d(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const h=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of h)c[e]={get(){const{level:t}=this;return function(...r){const i=f(n.color[a[t]][e](...r),n.color.close,this._styler);return d(this,i,this._isEmpty)}}};for(const e of h){c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const i=f(n.bgColor[a[t]][e](...r),n.bgColor.close,this._styler);return d(this,i,this._isEmpty)}}}}const p=Object.defineProperties(()=>{},{...c,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),f=(e,t,r)=>{let n,i;return void 0===r?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},d=(e,t,r)=>{const n=(...e)=>C(n,1===e.length?""+e[0]:e.join(" "));return n.__proto__=p,n._generator=e,n._styler=t,n._isEmpty=r,n},C=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:i}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=o(t,r.close,r.open),r=r.parent;const A=t.indexOf("\n");return-1!==A&&(t=s(t,i,n,A)),n+t+i};let I;const E=(e,...t)=>{const[n]=t;if(!Array.isArray(n))return t.join(" ");const i=t.slice(1),A=[n.raw[0]];for(let e=1;e{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,n=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,A=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function o(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):A.get(e)||e}function s(e,t){const r=[],A=t.trim().split(/\s*,\s*/g);let s;for(const t of A){const A=Number(t);if(Number.isNaN(A)){if(!(s=t.match(n)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(s[2].replace(i,(e,t,r)=>t?o(t):r))}else r.push(A)}return r}function a(e){r.lastIndex=0;const t=[];let n;for(;null!==(n=r.exec(e));){const e=n[1];if(n[2]){const r=s(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function c(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error("Unknown Chalk style: "+e);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,r)=>{const n=[],i=[];let A=[];if(r.replace(t,(t,r,s,g,l,u)=>{if(r)A.push(o(r));else if(g){const t=A.join("");A=[],i.push(0===n.length?t:c(e,n)(t)),n.push({inverse:s,styles:a(g)})}else if(l){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");i.push(c(e,n)(A.join(""))),A=[],n.pop()}else A.push(u)}),i.push(A.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},73327:e=>{"use strict";e.exports={stringReplaceAll:(e,t,r)=>{let n=e.indexOf(t);if(-1===n)return e;const i=t.length;let A=0,o="";do{o+=e.substr(A,n-A)+t+r,A=n+i,n=e.indexOf(t,A)}while(-1!==n);return o+=e.substr(A),o},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let i=0,A="";do{const o="\r"===e[n-1];A+=e.substr(i,(o?n-1:n)-i)+t+(o?"\r\n":"\n")+r,i=n+1,n=e.indexOf("\n",i)}while(-1!==n);return A+=e.substr(i),A}}},5864:(e,t,r)=>{"use strict";var n=r(85832),i=process.env;function A(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:n.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,n.forEach((function(e){var r=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return A(e)}));if(t[e.constant]=r,r)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=A(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},85832:e=>{"use strict";e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},40822:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Cli:()=>j,Command:()=>R,UsageError:()=>a});const n=/^(-h|--help)(?:=([0-9]+))?$/,i=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,A=/^-[a-zA-Z]{2,}$/,o=/^([^=]+)=([\s\S]*)$/,s="1"===process.env.DEBUG_CLI;class a extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}}class c extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",0===this.candidates.length)this.message="Command not found, but we're not sure what's the alternative.";else if(1===this.candidates.length&&null!==this.candidates[0].reason){const[{usage:e,reason:t}]=this.candidates;this.message=`${t}\n\n$ ${e}`}else if(1===this.candidates.length){const[{usage:t}]=this.candidates;this.message=`Command not found; did you mean:\n\n$ ${t}\n${l(e)}`}else this.message=`Command not found; did you mean one of:\n\n${this.candidates.map(({usage:e},t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${l(e)}`}}class g extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find who to pick amongst the following alternatives:\n\n${this.usages.map((e,t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${l(e)}`}}const l=e=>"While running "+e.filter(e=>"\0"!==e).map(e=>{const t=JSON.stringify(e);return e.match(/\s/)||0===e.length||t!==`"${e}"`?t:e}).join(" ");function u(e){s&&console.log(e)}const h={candidateUsage:null,errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function p(e,t){return e.nodes.push(t),e.nodes.length-1}function f(e,t,r=!1){u("Running a vm on "+JSON.stringify(t));let n=[{node:0,state:{candidateUsage:null,errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];!function(e,{prefix:t=""}={}){u(t+"Nodes are:");for(let r=0;r2!==e).map(({state:e})=>({usage:e.candidateUsage,reason:null})));if(s.every(({node:e})=>2===e))throw new c(t,s.map(({state:e})=>({usage:e.candidateUsage,reason:e.errorMessage})));n=I(s)}if(n.length>0){u(" Results:");for(const e of n)u(` - ${e.node} -> ${JSON.stringify(e.state)}`)}else u(" No results");return n}function d(e,t){if(null!==t.selectedIndex)return!0;if(Object.prototype.hasOwnProperty.call(e.statics,"\0"))for(const{to:t}of e.statics["\0"])if(1===t)return!0;return!1}function C(e,t){return function(e,t){const r=t.filter(e=>null!==e.selectedIndex);if(0===r.length)throw new Error;let n=0;for(const e of r)e.path.length>n&&(n=e.path.length);const i=r.filter(e=>e.path.length===n),A=e=>e.positionals.filter(({extra:e})=>!e).length+e.options.length,o=i.map(e=>({state:e,positionalCount:A(e)}));let s=0;for(const{positionalCount:e}of o)e>s&&(s=e);const a=function(e){const t=[],r=[];for(const n of e)-1===n.selectedIndex?r.push(n):t.push(n);r.length>0&&t.push(Object.assign(Object.assign({},h),{path:E(...r.map(e=>e.path)),options:r.reduce((e,t)=>e.concat(t.options),[])}));return t}(o.filter(({positionalCount:e})=>e===s).map(({state:e})=>e));if(a.length>1)throw new g(e,a.map(e=>e.candidateUsage));return a[0]}(t,f(e,[...t,"\0"]).map(({state:e})=>e))}function I(e){let t=0;for(const{state:r}of e)r.path.length>t&&(t=r.path.length);return e.filter(({state:e})=>e.path.length===t)}function E(e,t,...r){return void 0===t?Array.from(e):E(e.filter((e,r)=>e===t[r]),...r)}function m(e){return 1===e||2===e}function B(e,t=0){return{to:m(e.to)?e.to:e.to>2?e.to+t-2:e.to+t,reducer:e.reducer}}function y(e,t=0){const r={dynamics:[],shortcuts:[],statics:{}};for(const[n,i]of e.dynamics)r.dynamics.push([n,B(i,t)]);for(const n of e.shortcuts)r.shortcuts.push(B(n,t));for(const[n,i]of Object.entries(e.statics))r.statics[n]=i.map(e=>B(e,t));return r}function w(e,t,r,n,i){e.nodes[t].dynamics.push([r,{to:n,reducer:i}])}function Q(e,t,r,n){e.nodes[t].shortcuts.push({to:r,reducer:n})}function v(e,t,r,n,i){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,r)?e.nodes[t].statics[r]:e.nodes[t].statics[r]=[]).push({to:n,reducer:i})}function b(e,t,r,n){if(Array.isArray(t)){const[i,...A]=t;return e[i](r,n,...A)}return e[t](r,n)}function D(e,t){const r=Array.isArray(e)?S[e[0]]:S[e];if(void 0===r.suggest)return null;const n=Array.isArray(e)?e.slice(1):[];return r.suggest(t,...n)}const S={always:()=>!0,isOptionLike:(e,t)=>!e.ignoreOptions&&t.startsWith("-"),isNotOptionLike:(e,t)=>e.ignoreOptions||!t.startsWith("-"),isOption:(e,t,r,n)=>!e.ignoreOptions&&t===r,isBatchOption:(e,t,r)=>!e.ignoreOptions&&A.test(t)&&[...t.slice(1)].every(e=>r.includes("-"+e)),isBoundOption:(e,t,r,n)=>{const A=t.match(o);return!e.ignoreOptions&&!!A&&i.test(A[1])&&r.includes(A[1])&&n.filter(e=>e.names.includes(A[1])).every(e=>e.allowBinding)},isNegatedOption:(e,t,r)=>!e.ignoreOptions&&t==="--no-"+r.slice(2),isHelp:(e,t)=>!e.ignoreOptions&&n.test(t),isUnsupportedOption:(e,t,r)=>!e.ignoreOptions&&t.startsWith("-")&&i.test(t)&&!r.includes(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!i.test(t)};S.isOption.suggest=(e,t,r=!0)=>r?null:[t];const k={setCandidateUsage:(e,t,r)=>Object.assign(Object.assign({},e),{candidateUsage:r}),setSelectedIndex:(e,t,r)=>Object.assign(Object.assign({},e),{selectedIndex:r}),pushBatch:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat([...t.slice(1)].map(e=>({name:"-"+e,value:!0})))}),pushBound:(e,t)=>{const[,r,n]=t.match(o);return Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:n})})},pushPath:(e,t)=>Object.assign(Object.assign({},e),{path:e.path.concat(t)}),pushPositional:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!1})}),pushExtra:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!0})}),pushExtraNoLimits:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:M})}),pushTrue:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:!0})}),pushFalse:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:!1})}),pushUndefined:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:void 0})}),pushStringValue:(e,t)=>{var r;const n=Object.assign(Object.assign({},e),{options:[...e.options]}),i=e.options[e.options.length-1];return i.value=(null!==(r=i.value)&&void 0!==r?r:[]).concat([t]),n},setStringValue:(e,t)=>{const r=Object.assign(Object.assign({},e),{options:[...e.options]});return e.options[e.options.length-1].value=t,r},inhibateOptions:e=>Object.assign(Object.assign({},e),{ignoreOptions:!0}),useHelp:(e,t,r)=>{const[,i,A]=t.match(n);return void 0!==A?Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)},{name:"-i",value:A}]}):Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)}]})},setError:(e,t,r)=>"\0"===t?Object.assign(Object.assign({},e),{errorMessage:r+"."}):Object.assign(Object.assign({},e),{errorMessage:`${r} ("${t}").`}),setOptionArityError:(e,t)=>{const r=e.options[e.options.length-1];return Object.assign(Object.assign({},e),{errorMessage:`Not enough arguments to option ${r.name}.`})}},M=Symbol();class N{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:r=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:r,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===M)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");t||this.arity.extra===M?this.arity.extra!==M&&0===this.arity.extra.length?this.arity.leading.push(e):this.arity.trailing.push(e):this.arity.extra.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===M)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let r=0;r1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(r))throw new Error("The arity must be an integer, got "+r);if(r<0)throw new Error("The arity must be positive, got "+r);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:r,hidden:n,allowBinding:i})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){const r=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&r.push(...this.paths[0]),e){for(const{names:e,arity:i,hidden:A,description:o}of this.options){if(A)continue;const s=[];for(let e=0;e`<${e}>`)),this.arity.extra===M?r.push("..."):r.push(...this.arity.extra.map(e=>`[${e}]`)),r.push(...this.arity.trailing.map(e=>`<${e}>`))}return{usage:r.join(" "),options:n}}compile(){if(void 0===this.context)throw new Error("Assertion failed: No context attached");const e={nodes:[{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}}]};let t=0;t=p(e,{dynamics:[],shortcuts:[],statics:{}}),v(e,0,"",t,["setCandidateUsage",this.usage().usage]);const r=this.arity.proxy?"always":"isNotOptionLike",n=this.paths.length>0?this.paths:[[]];for(const i of n){let n=t;if(i.length>0){const t=p(e,{dynamics:[],shortcuts:[],statics:{}});Q(e,n,t),this.registerOptions(e,t),n=t}for(let t=0;t0||!this.arity.proxy){const t=p(e,{dynamics:[],shortcuts:[],statics:{}});w(e,n,"isHelp",t,["useHelp",this.cliIndex]),v(e,t,"\0",1,["setSelectedIndex",-1]),this.registerOptions(e,n)}this.arity.leading.length>0&&v(e,n,"\0",2,["setError","Not enough positional arguments"]);let A=n;for(let t=0;t0||t+1!==this.arity.leading.length)&&v(e,r,"\0",2,["setError","Not enough positional arguments"]),w(e,A,"isNotOptionLike",r,"pushPositional"),A=r}let o=A;if(this.arity.extra===M||this.arity.extra.length>0){const t=p(e,{dynamics:[],shortcuts:[],statics:{}});if(Q(e,A,t),this.arity.extra===M){const n=p(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,n),w(e,A,r,n,"pushExtraNoLimits"),w(e,n,r,n,"pushExtraNoLimits"),Q(e,n,t)}else for(let n=0;n0&&v(e,o,"\0",2,["setError","Not enough positional arguments"]);let s=o;for(let t=0;tt.length>e.length?t:e,"");if(0===r.arity)for(const i of r.names)w(e,t,["isOption",i,r.hidden||i!==n],t,"pushTrue"),i.startsWith("--")&&!i.startsWith("--no-")&&w(e,t,["isNegatedOption",i],t,["pushFalse",i]);else{let i=p(e,{dynamics:[],shortcuts:[],statics:{}});for(const A of r.names)w(e,t,["isOption",A,r.hidden||A!==n],i,"pushUndefined");for(let t=0;t=0&&e{if(t.has(n))return;t.add(n);const i=e.nodes[n];for(const e of Object.values(i.statics))for(const{to:t}of e)r(t);for(const[,{to:e}]of i.dynamics)r(e);for(const{to:e}of i.shortcuts)r(e);const A=new Set(i.shortcuts.map(({to:e})=>e));for(;i.shortcuts.length>0;){const{to:t}=i.shortcuts.shift(),r=e.nodes[t];for(const[e,t]of Object.entries(r.statics)){let r=Object.prototype.hasOwnProperty.call(i.statics,e)?i.statics[e]:i.statics[e]=[];for(const e of t)r.some(({to:t})=>e.to===t)||r.push(e)}for(const[e,t]of r.dynamics)i.dynamics.some(([r,{to:n}])=>e===r&&t.to===n)||i.dynamics.push([e,t]);for(const e of r.shortcuts)A.has(e.to)||(i.shortcuts.push(e),A.add(e.to))}};r(0)}(r),{machine:r,contexts:t,process:e=>C(r,e),suggest:(e,t)=>function(e,t,r){const n=r&&t.length>0?[""]:[],i=f(e,t,r),A=[],o=new Set,s=(t,r,n=!0)=>{let i=[r];for(;i.length>0;){const r=i;i=[];for(const A of r){const r=e.nodes[A],o=Object.keys(r.statics);for(const e of Object.keys(r.statics)){const e=o[0];for(const{to:A,reducer:o}of r.statics[e])"pushPath"===o&&(n||t.push(e),i.push(A))}}n=!1}const s=JSON.stringify(t);o.has(s)||(A.push(t),o.add(s))};for(const{node:t,state:r}of i){if(null!==r.remainder){s([r.remainder],t);continue}const i=e.nodes[t],A=d(i,r);for(const[e,r]of Object.entries(i.statics))(A&&"\0"!==e||!e.startsWith("-")&&r.some(({reducer:e})=>"pushPath"===e))&&s([...n,e],t);if(A)for(const[e,{to:A}]of i.dynamics){if(2===A)continue;const i=D(e,r);if(null!==i)for(const e of i)s([...n,e],t)}}return[...A].sort()}(r,e,t)}}}class R{constructor(){this.help=!1}static getMeta(e){const t=e.constructor;return t.meta=Object.prototype.hasOwnProperty.call(t,"meta")?t.meta:{definitions:[],transformers:[(e,t)=>{for(const{name:r,value:n}of e.options)"-h"!==r&&"--help"!==r||(t.help=n)}]}}static resolveMeta(e){const t=[],r=[];for(let n=e;n instanceof R;n=n.__proto__){const e=this.getMeta(n);for(const r of e.definitions)t.push(r);for(const t of e.transformers)r.push(t)}return{definitions:t,transformers:r}}static registerDefinition(e,t){this.getMeta(e).definitions.push(t)}static registerTransformer(e,t){this.getMeta(e).transformers.push(t)}static addPath(...e){this.Path(...e)(this.prototype,"execute")}static addOption(e,t){t(this.prototype,e)}static Path(...e){return(t,r)=>{this.registerDefinition(t,t=>{t.addPath(e)})}}static Boolean(e,{hidden:t=!1,description:r}={}){return(n,i)=>{const A=e.split(",");this.registerDefinition(n,e=>{e.addOption({names:A,arity:0,hidden:t,allowBinding:!1,description:r})}),this.registerTransformer(n,(e,t)=>{for(const{name:r,value:n}of e.options)A.includes(r)&&(t[i]=n)})}}static Counter(e,{hidden:t=!1,description:r}={}){return(n,i)=>{const A=e.split(",");this.registerDefinition(n,e=>{e.addOption({names:A,arity:0,hidden:t,allowBinding:!1,description:r})}),this.registerTransformer(n,(e,t)=>{var r;for(const{name:n,value:o}of e.options)A.includes(n)&&(null!==(r=t[i])&&void 0!==r||(t[i]=0),o?t[i]++:t[i]=0)})}}static String(e={},{arity:t=1,tolerateBoolean:r=!1,hidden:n=!1,description:i}={}){return(A,o)=>{if("string"==typeof e){const s=e.split(",");this.registerDefinition(A,e=>{e.addOption({names:s,arity:r?0:t,hidden:n,description:i})}),this.registerTransformer(A,(e,t)=>{for(const{name:r,value:n}of e.options)s.includes(r)&&(t[o]=n)})}else{const{name:t=o,required:r=!0}=e;this.registerDefinition(A,e=>{e.addPositional({name:t,required:r})}),this.registerTransformer(A,(e,t)=>{for(let n=0;n{if(0===t)throw new Error("Array options are expected to have at least an arity of 1");const o=e.split(",");this.registerDefinition(i,e=>{e.addOption({names:o,arity:t,hidden:r,description:n})}),this.registerTransformer(i,(e,t)=>{for(const{name:r,value:n}of e.options)o.includes(r)&&(t[A]=t[A]||[],t[A].push(n))})}}static Rest({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addRest({name:r,required:e})}),this.registerTransformer(t,(e,t,n)=>{const i=t=>{const r=e.positionals[t];return r.extra===M||!1===r.extra&&te)})}}static Proxy({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addProxy({required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Usage(e){return e}static Schema(e){return e}async catch(e){throw e}async validateAndExecute(){const e=this.constructor.schema;if(void 0!==e)try{await e.validate(this)}catch(e){throw"ValidationError"===e.name&&(e.clipanion={type:"usage"}),e}const t=await this.execute();return void 0!==t?t:0}} -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ -function K(e,t,r,n){var i,A=arguments.length,o=A<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(A<3?i(o):A>3?i(t,r,o):i(t,r))||o);return A>3&&o&&Object.defineProperty(t,r,o),o}R.Entries={};class L extends R{async execute(){this.context.stdout.write(this.cli.usage(null))}}K([R.Path("--help"),R.Path("-h")],L.prototype,"execute",null);class x extends R{async execute(){var e;this.context.stdout.write((null!==(e=this.cli.binaryVersion)&&void 0!==e?e:"")+"\n")}}K([R.Path("--version"),R.Path("-v")],x.prototype,"execute",null);const P={bold:e=>`${e}`,error:e=>`${e}`,code:e=>`${e}`},U={bold:e=>e,error:e=>e,code:e=>e};function T(e,{format:t,paragraphs:r}){return e=(e=(e=(e=(e=e.replace(/\r\n?/g,"\n")).replace(/^[\t ]+|[\t ]+$/gm,"")).replace(/^\n+|\n+$/g,"")).replace(/^-([^\n]*?)\n+/gm,"-$1\n\n")).replace(/\n(\n)?\n*/g,"$1"),r&&(e=e.split(/\n/).map((function(e){let t=e.match(/^[*-][\t ]+(.*)/);return t?t[1].match(/(.{1,78})(?: |$)/g).map((e,t)=>(0===t?"- ":" ")+e).join("\n"):e.match(/(.{1,80})(?: |$)/g).join("\n")})).join("\n\n")),(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(function(e,r,n){return t.code(r+n+r)})))?e+"\n":""}class O extends R{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){const r=new O(t);r.path=e.path;for(const t of e.options)switch(t.name){case"-c":r.commands.push(Number(t.value));break;case"-i":r.index=Number(t.value)}return r}async execute(){let e=this.commands;if(void 0!==this.index&&this.index>=0&&this.index1){this.context.stdout.write("Multiple commands match your selection:\n"),this.context.stdout.write("\n");let e=0;for(const t of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[t].commandClass,{prefix:(e+++". ").padStart(5)}));this.context.stdout.write("\n"),this.context.stdout.write("Run again with -h= to see the longer details of any of those commands.\n")}}}function Y(){return"0"!==process.env.FORCE_COLOR&&("1"===process.env.FORCE_COLOR||!(void 0===process.stdout||!process.stdout.isTTY))}class j{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:r,enableColors:n=Y()}={}){this.registrations=new Map,this.builder=new F({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=r,this.enableColors=n}static from(e,t={}){const r=new j(t);for(const t of e)r.register(t);return r}register(e){const t=this.builder.command();this.registrations.set(e,t.cliIndex);const{definitions:r}=e.resolveMeta(e.prototype);for(const e of r)e(t);t.setContext({commandClass:e})}process(e){const{contexts:t,process:r}=this.builder.compile(),n=r(e);switch(n.selectedIndex){case-1:return O.from(n,t);default:{const{commandClass:e}=t[n.selectedIndex],r=this.registrations.get(e);if(void 0===r)throw new Error("Assertion failed: Expected the command class to have been registered.");const i=this.builder.getBuilderByIndex(r),A=new e;A.path=n.path;const{transformers:o}=e.resolveMeta(e.prototype);for(const e of o)e(n,A,i);return A}}}async run(e,t){let r,n;if(Array.isArray(e))try{r=this.process(e)}catch(e){return t.stdout.write(this.error(e)),1}else r=e;if(r.help)return t.stdout.write(this.usage(r,{detailed:!0})),0;r.context=t,r.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(e,t)=>this.error(e,t),process:e=>this.process(e),run:(e,r)=>this.run(e,Object.assign(Object.assign({},t),r)),usage:(e,t)=>this.usage(e,t)};try{n=await r.validateAndExecute().catch(e=>r.catch(e).then(()=>0))}catch(e){return t.stdout.write(this.error(e,{command:r})),1}return n}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){const{contexts:r,process:n,suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){const t=[];for(const[r,n]of this.registrations){if(void 0===r.usage)continue;const{usage:i}=this.getUsageByIndex(n,{detailed:!1}),{usage:A,options:o}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),s=void 0!==r.usage.category?T(r.usage.category,{format:this.format(e),paragraphs:!1}):void 0,a=void 0!==r.usage.description?T(r.usage.description,{format:this.format(e),paragraphs:!1}):void 0,c=void 0!==r.usage.details?T(r.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=void 0!==r.usage.examples?r.usage.examples.map(([t,r])=>[T(t,{format:this.format(e),paragraphs:!1}),r.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:i,usage:A,category:s,description:a,details:c,examples:g,options:o})}return t}usage(e=null,{colored:t,detailed:r=!1,prefix:n="$ "}={}){const i=null!==e&&void 0===e.getMeta?e.constructor:e;let A="";if(i)if(r){const{description:e="",details:r="",examples:o=[]}=i.usage||{};""!==e&&(A+=T(e,{format:this.format(t),paragraphs:!1}).replace(/^./,e=>e.toUpperCase()),A+="\n"),(""!==r||o.length>0)&&(A+=this.format(t).bold("Usage:")+"\n",A+="\n");const{usage:s,options:a}=this.getUsageByRegistration(i,{inlineOptions:!1});if(A+=`${this.format(t).bold(n)}${s}\n`,a.length>0){A+="\n",A+=P.bold("Options:")+"\n";const e=a.reduce((e,t)=>Math.max(e,t.definition.length),0);A+="\n";for(const{definition:r,description:n}of a)A+=` ${r.padEnd(e)} ${T(n,{format:this.format(t),paragraphs:!1})}`}if(""!==r&&(A+="\n",A+=this.format(t).bold("Details:")+"\n",A+="\n",A+=T(r,{format:this.format(t),paragraphs:!0})),o.length>0){A+="\n",A+=this.format(t).bold("Examples:")+"\n";for(let[e,r]of o)A+="\n",A+=T(e,{format:this.format(t),paragraphs:!1}),A+=r.replace(/^/m," "+this.format(t).bold(n)).replace(/\$0/g,this.binaryName)+"\n"}}else{const{usage:e}=this.getUsageByRegistration(i);A+=`${this.format(t).bold(n)}${e}\n`}else{const e=new Map;for(const[r,n]of this.registrations.entries()){if(void 0===r.usage)continue;const i=void 0!==r.usage.category?T(r.usage.category,{format:this.format(t),paragraphs:!1}):null;let A=e.get(i);void 0===A&&e.set(i,A=[]);const{usage:o}=this.getUsageByIndex(n);A.push({commandClass:r,usage:o})}const r=Array.from(e.keys()).sort((e,t)=>null===e?-1:null===t?1:e.localeCompare(t,"en",{usage:"sort",caseFirst:"upper"})),i=void 0!==this.binaryLabel,o=void 0!==this.binaryVersion;i||o?(A+=i&&o?this.format(t).bold(`${this.binaryLabel} - ${this.binaryVersion}`)+"\n\n":i?this.format(t).bold(""+this.binaryLabel)+"\n":this.format(t).bold(""+this.binaryVersion)+"\n",A+=` ${this.format(t).bold(n)}${this.binaryName} \n`):A+=`${this.format(t).bold(n)}${this.binaryName} \n`;for(let n of r){const r=e.get(n).slice().sort((e,t)=>e.usage.localeCompare(t.usage,"en",{usage:"sort",caseFirst:"upper"})),i=null!==n?n.trim():"Where is one of";A+="\n",A+=this.format(t).bold(i+":")+"\n";for(let{commandClass:e,usage:n}of r){const r=e.usage.description||"undocumented";A+="\n",A+=` ${this.format(t).bold(n)}\n`,A+=" "+T(r,{format:this.format(t),paragraphs:!1})}}A+="\n",A+=T("You can also print more details about any of these commands by calling them after adding the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return A}error(e,{colored:t,command:r=null}={}){e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let n="",i=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");"Error"===i&&(i="Internal Error"),n+=`${this.format(t).error(i)}: ${e.message}\n`;const A=e.clipanion;return void 0!==A?"usage"===A.type&&(n+="\n",n+=this.usage(r)):e.stack&&(n+=e.stack.replace(/^.*\n/,"")+"\n"),n}getUsageByRegistration(e,t){const r=this.registrations.get(e);if(void 0===r)throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(r,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}format(e=this.enableColors){return e?P:U}}j.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr},R.Entries.Help=L,R.Entries.Version=x},15751:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=r(65007);e.exports=e=>{if(!e||!e.pipe)throw new TypeError("Parameter `response` must be a response stream.");const t=new n;return i(e,t),e.pipe(t)}},15311:(e,t,r)=>{const n=r(93300),i={};for(const e of Object.keys(n))i[n[e]]=e;const A={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=A;for(const e of Object.keys(A)){if(!("channels"in A[e]))throw new Error("missing channels property: "+e);if(!("labels"in A[e]))throw new Error("missing channel labels property: "+e);if(A[e].labels.length!==A[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=A[e];delete A[e].channels,delete A[e].labels,Object.defineProperty(A[e],"channels",{value:t}),Object.defineProperty(A[e],"labels",{value:r})}A.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),A=Math.max(t,r,n),o=A-i;let s,a;A===i?s=0:t===A?s=(r-n)/o:r===A?s=2+(n-t)/o:n===A&&(s=4+(t-r)/o),s=Math.min(60*s,360),s<0&&(s+=360);const c=(i+A)/2;return a=A===i?0:c<=.5?o/(A+i):o/(2-A-i),[s,100*a,100*c]},A.rgb.hsv=function(e){let t,r,n,i,A;const o=e[0]/255,s=e[1]/255,a=e[2]/255,c=Math.max(o,s,a),g=c-Math.min(o,s,a),l=function(e){return(c-e)/6/g+.5};return 0===g?(i=0,A=0):(A=g/c,t=l(o),r=l(s),n=l(a),o===c?i=n-r:s===c?i=1/3+t-n:a===c&&(i=2/3+r-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*A,100*c]},A.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];const i=A.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[i,100*o,100*n]},A.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-r,1-n);return[100*((1-t-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},A.rgb.keyword=function(e){const t=i[e];if(t)return t;let r,A=1/0;for(const t of Object.keys(n)){const i=n[t],a=(s=i,((o=e)[0]-s[0])**2+(o[1]-s[1])**2+(o[2]-s[2])**2);a.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;return[100*(.4124*t+.3576*r+.1805*n),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},A.rgb.lab=function(e){const t=A.rgb.xyz(e);let r=t[0],n=t[1],i=t[2];r/=95.047,n/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*n-16,500*(r-n),200*(n-i)]},A.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let i,A,o;if(0===r)return o=255*n,[o,o,o];i=n<.5?n*(1+r):n+r-n*r;const s=2*n-i,a=[0,0,0];for(let e=0;e<3;e++)A=t+1/3*-(e-1),A<0&&A++,A>1&&A--,o=6*A<1?s+6*(i-s)*A:2*A<1?i:3*A<2?s+(i-s)*(2/3-A)*6:s,a[e]=255*o;return a},A.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,i=r;const A=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=A<=1?A:2-A;return[t,100*(0===n?2*i/(A+i):2*r/(n+r)),100*((n+r)/2)]},A.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const i=Math.floor(t)%6,A=t-Math.floor(t),o=255*n*(1-r),s=255*n*(1-r*A),a=255*n*(1-r*(1-A));switch(n*=255,i){case 0:return[n,a,o];case 1:return[s,n,o];case 2:return[o,n,a];case 3:return[o,s,n];case 4:return[a,o,n];case 5:return[n,o,s]}},A.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,i=Math.max(n,.01);let A,o;o=(2-r)*n;const s=(2-r)*i;return A=r*i,A/=s<=1?s:2-s,A=A||0,o/=2,[t,100*A,100*o]},A.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const i=r+n;let A;i>1&&(r/=i,n/=i);const o=Math.floor(6*t),s=1-n;A=6*t-o,0!=(1&o)&&(A=1-A);const a=r+A*(s-r);let c,g,l;switch(o){default:case 6:case 0:c=s,g=a,l=r;break;case 1:c=a,g=s,l=r;break;case 2:c=r,g=s,l=a;break;case 3:c=r,g=a,l=s;break;case 4:c=a,g=r,l=s;break;case 5:c=s,g=r,l=a}return[255*c,255*g,255*l]},A.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},A.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let i,A,o;return i=3.2406*t+-1.5372*r+-.4986*n,A=-.9689*t+1.8758*r+.0415*n,o=.0557*t+-.204*r+1.057*n,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,A=A>.0031308?1.055*A**(1/2.4)-.055:12.92*A,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,i=Math.min(Math.max(0,i),1),A=Math.min(Math.max(0,A),1),o=Math.min(Math.max(0,o),1),[255*i,255*A,255*o]},A.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;return[116*r-16,500*(t-r),200*(r-n)]},A.lab.xyz=function(e){let t,r,n;r=(e[0]+16)/116,t=e[1]/500+r,n=r-e[2]/200;const i=r**3,A=t**3,o=n**3;return r=i>.008856?i:(r-16/116)/7.787,t=A>.008856?A:(t-16/116)/7.787,n=o>.008856?o:(n-16/116)/7.787,t*=95.047,r*=100,n*=108.883,[t,r,n]},A.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let i;i=360*Math.atan2(n,r)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(r*r+n*n),i]},A.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},A.rgb.ansi16=function(e,t=null){const[r,n,i]=e;let o=null===t?A.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),0===o)return 30;let s=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===o&&(s+=60),s},A.hsv.ansi16=function(e){return A.rgb.ansi16(A.hsv.rgb(e),e[2])},A.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},A.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},A.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},A.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},A.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map(e=>e+e).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},A.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,r),n),A=Math.min(Math.min(t,r),n),o=i-A;let s,a;return s=o<1?A/(1-o):0,a=o<=0?0:i===t?(r-n)/o%6:i===r?2+(n-t)/o:4+(t-r)/o,a/=6,a%=1,[360*a,100*o,100*s]},A.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let i=0;return n<1&&(i=(r-.5*n)/(1-n)),[e[0],100*n,100*i]},A.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},A.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const i=[0,0,0],A=t%1*6,o=A%1,s=1-o;let a=0;switch(Math.floor(A)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return a=(1-r)*n,[255*(r*i[0]+a),255*(r*i[1]+a),255*(r*i[2]+a)]},A.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},A.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},A.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},A.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},A.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},A.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},A.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},A.gray.hsl=function(e){return[0,0,e[0]]},A.gray.hsv=A.gray.hsl,A.gray.hwb=function(e){return[0,100,e[0]]},A.gray.cmyk=function(e){return[0,0,0,e[0]]},A.gray.lab=function(e){return[e[0],0,0]},A.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},A.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2744:(e,t,r)=>{const n=r(15311),i=r(78577),A={};Object.keys(n).forEach(e=>{A[e]={},Object.defineProperty(A[e],"channels",{value:n[e].channels}),Object.defineProperty(A[e],"labels",{value:n[e].labels});const t=i(e);Object.keys(t).forEach(r=>{const n=t[r];A[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)})}),e.exports=A},78577:(e,t,r)=>{const n=r(15311);function i(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},67566:(e,t,r)=>{"use strict";const n=r(63129),i=r(14951),A=r(10779);function o(e,t,r){const o=i(e,t,r),s=n.spawn(o.command,o.args,o.options);return A.hookChildProcess(s,o),s}e.exports=o,e.exports.spawn=o,e.exports.sync=function(e,t,r){const o=i(e,t,r),s=n.spawnSync(o.command,o.args,o.options);return s.error=s.error||A.verifyENOENTSync(s.status,o),s},e.exports._parse=i,e.exports._enoent=A},10779:e=>{"use strict";const t="win32"===process.platform;function r(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function n(e,n){return t&&1===e&&!n.file?r(n.original,"spawn"):null}e.exports={hookChildProcess:function(e,r){if(!t)return;const i=e.emit;e.emit=function(t,A){if("exit"===t){const t=n(A,r);if(t)return i.call(e,"error",t)}return i.apply(e,arguments)}},verifyENOENT:n,verifyENOENTSync:function(e,n){return t&&1===e&&!n.file?r(n.original,"spawnSync"):null},notFoundError:r}},14951:(e,t,r)=>{"use strict";const n=r(85622),i=r(47447),A=r(27066),o=r(35187),s="win32"===process.platform,a=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function g(e){if(!s)return e;const t=function(e){e.file=i(e);const t=e.file&&o(e.file);return t?(e.args.unshift(e.file),e.command=t,i(e)):e.file}(e),r=!a.test(t);if(e.options.forceShell||r){const r=c.test(t);e.command=n.normalize(e.command),e.command=A.command(e.command),e.args=e.args.map(e=>A.argument(e,r));const i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}e.exports=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);const n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:g(n)}},27066:e=>{"use strict";const t=/([()\][%!^"`<>&|;, *?])/g;e.exports.command=function(e){return e=e.replace(t,"^$1")},e.exports.argument=function(e,r){return e=(e=`"${e=(e=(e=""+e).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1")}"`).replace(t,"^$1"),r&&(e=e.replace(t,"^$1")),e}},35187:(e,t,r)=>{"use strict";const n=r(35747),i=r(91470);e.exports=function(e){const t=Buffer.alloc(150);let r;try{r=n.openSync(e,"r"),n.readSync(r,t,0,150,0),n.closeSync(r)}catch(e){}return i(t.toString())}},47447:(e,t,r)=>{"use strict";const n=r(85622),i=r(87945),A=r(37127);function o(e,t){const r=e.options.env||process.env,o=process.cwd(),s=null!=e.options.cwd,a=s&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd)}catch(e){}let c;try{c=i.sync(e.command,{path:r[A({env:r})],pathExt:t?n.delimiter:void 0})}catch(e){}finally{a&&process.chdir(o)}return c&&(c=n.resolve(s?e.options.cwd:"",c)),c}e.exports=function(e){return o(e)||o(e,!0)}},53832:(e,t,r)=>{"use strict";const{pipeline:n,PassThrough:i}=r(92413),A=r(78761),o=r(60102);e.exports=e=>{const t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;const r="br"===t;if(r&&"function"!=typeof A.createBrotliDecompress)return e;const s=r?A.createBrotliDecompress():A.createUnzip(),a=new i;s.on("error",e=>{"Z_BUF_ERROR"!==e.code?a.emit("error",e):a.end()});const c=n(e,s,a,()=>{});return o(e,c),c}},93121:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4016),i=(e,t)=>{let r;if("function"==typeof t){r={connect:t}}else r=t;const i="function"==typeof r.connect,A="function"==typeof r.secureConnect,o="function"==typeof r.close,s=()=>{i&&r.connect(),e instanceof n.TLSSocket&&A&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),o&&e.once("close",r.close)};e.writable&&!e.connecting?s():e.connecting?e.once("connect",s):e.destroyed&&o&&r.close(e._hadError)};t.default=i,e.exports=i,e.exports.default=i},66241:(e,t,r)=>{"use strict";const n=r(85622),i=r(5763),A=e=>e.length>1?`{${e.join(",")}}`:e[0],o=(e,t)=>{const r="!"===e[0]?e.slice(1):e;return n.isAbsolute(r)?r:n.join(t,r)},s=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>{return n.posix.join(e,(i=r,o=t.extensions,n.extname(i)?"**/"+i:`**/${i}.${A(o)}`));var i,o}):t.files?t.files.map(t=>n.posix.join(e,"**/"+t)):t.extensions?[n.posix.join(e,"**/*."+A(t.extensions))]:[n.posix.join(e,"**")]};e.exports=async(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=await Promise.all([].concat(e).map(async e=>await i.isDirectory(o(e,t.cwd))?s(e,t):e));return[].concat.apply([],r)},e.exports.sync=(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=[].concat(e).map(e=>i.isDirectorySync(o(e,t.cwd))?s(e,t):e);return[].concat.apply([],r)}},97681:(e,t,r)=>{var n=r(91162),i=function(){},A=function(e,t,r){if("function"==typeof t)return A(e,null,t);t||(t={}),r=n(r||i);var o=e._writableState,s=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,g=function(){e.writable||l()},l=function(){c=!1,a||r()},u=function(){a=!1,c||r()},h=function(e){r(e?new Error("exited with error code: "+e):null)},p=function(){return(!a||s&&s.ended)&&(!c||o&&o.ended)?void 0:r(new Error("premature close"))},f=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!o&&(e.on("end",g),e.on("close",g)):(e.on("complete",l),e.on("abort",p),e.req?f():e.on("request",f)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",h),e.on("end",u),e.on("finish",l),!1!==t.error&&e.on("error",r),e.on("close",p),function(){e.removeListener("complete",l),e.removeListener("abort",p),e.removeListener("request",f),e.req&&e.req.removeListener("finish",l),e.removeListener("end",g),e.removeListener("close",g),e.removeListener("finish",l),e.removeListener("exit",h),e.removeListener("end",u),e.removeListener("error",r),e.removeListener("close",p)}};e.exports=A},17067:(e,t,r)=>{var n=r(27180),i=function(){},A=function(e,t,r){if("function"==typeof t)return A(e,null,t);t||(t={}),r=n(r||i);var o=e._writableState,s=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,g=function(){e.writable||l()},l=function(){c=!1,a||r.call(e)},u=function(){a=!1,c||r.call(e)},h=function(t){r.call(e,t?new Error("exited with error code: "+t):null)},p=function(t){r.call(e,t)},f=function(){return(!a||s&&s.ended)&&(!c||o&&o.ended)?void 0:r.call(e,new Error("premature close"))},d=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!o&&(e.on("end",g),e.on("close",g)):(e.on("complete",l),e.on("abort",f),e.req?d():e.on("request",d)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",h),e.on("end",u),e.on("finish",l),!1!==t.error&&e.on("error",p),e.on("close",f),function(){e.removeListener("complete",l),e.removeListener("abort",f),e.removeListener("request",d),e.req&&e.req.removeListener("finish",l),e.removeListener("end",g),e.removeListener("close",g),e.removeListener("finish",l),e.removeListener("exit",h),e.removeListener("end",u),e.removeListener("error",p),e.removeListener("close",f)}};e.exports=A},61899:(e,t,r)=>{"use strict";const n=r(42357),i=r(28614),A=r(10278);class o extends i{constructor(e,t){super(),this.options=A.merge({},e),this.answers={...t}}register(e,t){if(A.isObject(e)){for(let t of Object.keys(e))this.register(t,e[t]);return this}n.equal(typeof t,"function","expected a function");let r=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[r]=t:this.prompts[r]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{"function"==typeof t&&(t=await t.call(this)),await this.ask(A.merge({},this.options,t))}catch(e){return Promise.reject(e)}return this.answers}async ask(e){"function"==typeof e&&(e=await e.call(this));let t=A.merge({},this.options,e),{type:r,name:i}=e,{set:o,get:s}=A;if("function"==typeof r&&(r=await r.call(this,e,this.answers)),!r)return this.answers[i];n(this.prompts[r],`Prompt "${r}" is not registered`);let a=new this.prompts[r](t),c=s(this.answers,i);a.state.answers=this.answers,a.enquirer=this,i&&a.on("submit",e=>{this.emit("answer",i,e,a),o(this.answers,i,e)});let g=a.emit.bind(a);return a.emit=(...e)=>(this.emit.call(this,...e),g(...e)),this.emit("prompt",a,this),t.autofill&&null!=c?(a.value=a.input=c,"show"===t.autofill&&await a.submit()):c=a.value=await a.run(),c}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||r(58386)}static get prompts(){return r(53609)}static get types(){return r(13235)}static get prompt(){const e=(t,...r)=>{let n=new this(...r),i=n.emit.bind(n);return n.emit=(...t)=>(e.emit(...t),i(...t)),n.prompt(t)};return A.mixinEmitter(e,new i),e}}A.mixinEmitter(o,new i);const s=o.prompts;for(let e of Object.keys(s)){let t=e.toLowerCase(),r=t=>new s[e](t).run();o.prompt[t]=r,o[t]=r,o[e]||Reflect.defineProperty(o,e,{get:()=>s[e]})}const a=e=>{A.defineExport(o,e,()=>o.types[e])};a("ArrayPrompt"),a("AuthPrompt"),a("BooleanPrompt"),a("NumberPrompt"),a("StringPrompt"),e.exports=o},72380:(e,t,r)=>{"use strict";const n="Apple_Terminal"===process.env.TERM_PROGRAM,i=r(97991),A=r(10278),o=e.exports=t,s="[";let a=!1;const c=o.code={bell:"",beep:"",beginning:"",down:"",esc:s,getPosition:"",hide:"[?25l",line:"",lineEnd:"",lineStart:"",restorePosition:s+(n?"8":"u"),savePosition:s+(n?"7":"s"),screen:"",show:"[?25h",up:""},g=o.cursor={get hidden(){return a},hide:()=>(a=!0,c.hide),show:()=>(a=!1,c.show),forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>"".repeat(e),prevLine:(e=1)=>"".repeat(e),up:(e=1)=>e?`[${e}A`:"",down:(e=1)=>e?`[${e}B`:"",right:(e=1)=>e?`[${e}C`:"",left:(e=1)=>e?`[${e}D`:"",to:(e,t)=>t?`[${t+1};${e+1}H`:`[${e+1}G`,move(e=0,t=0){let r="";return r+=e<0?g.left(-e):e>0?g.right(e):"",r+=t<0?g.up(-t):t>0?g.down(t):"",r},restore(e={}){let{after:t,cursor:r,initial:n,input:i,prompt:s,size:a,value:c}=e;if(n=A.isPrimitive(n)?String(n):"",i=A.isPrimitive(i)?String(i):"",c=A.isPrimitive(c)?String(c):"",a){let e=o.cursor.up(a)+o.cursor.to(s.length),t=i.length-r;return t>0&&(e+=o.cursor.left(t)),e}if(c||t){let e=!i&&n?-n.length:-i.length+r;return t&&(e-=t.length),""===i&&n&&!s.includes(n)&&(e+=n.length),o.cursor.move(e)}}},l=o.erase={screen:c.screen,up:c.up,down:c.down,line:c.line,lineEnd:c.lineEnd,lineStart:c.lineStart,lines(e){let t="";for(let r=0;r{if(!t)return l.line+g.to(0);let r=e.split(/\r?\n/),n=0;for(let e of r)n+=1+Math.floor(Math.max((A=e,[...i.unstyle(A)].length-1),0)/t);var A;return(l.line+g.prevLine()).repeat(n-1)+l.line+g.to(0)}},62475:(e,t)=>{"use strict";t.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"},t.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"},t.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"},t.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"},t.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}},64083:e=>{"use strict";const t=e=>(e=>e.filter((t,r)=>e.lastIndexOf(t)===r))(e).filter(Boolean);e.exports=(e,r={},n="")=>{let i,A,{past:o=[],present:s=""}=r;switch(e){case"prev":case"undo":return i=o.slice(0,o.length-1),A=o[o.length-1]||"",{past:t([n,...i]),present:A};case"next":case"redo":return i=o.slice(1),A=o[0]||"",{past:t([...i,n]),present:A};case"save":return{past:t([...o,n]),present:""};case"remove":return A=t(o.filter(e=>e!==n)),s="",A.length&&(s=A.pop()),{past:A,present:s};default:throw new Error(`Invalid action: "${e}"`)}}},84368:(e,t,r)=>{"use strict";const n=r(97991);class i{constructor(e){this.name=e.key,this.field=e.field||{},this.value=((e="")=>"string"==typeof e?e.replace(/^['"]|['"]$/g,""):"")(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}}function A(e,t,r,n){return(r,i,A,o)=>"function"==typeof A.field[e]?A.field[e].call(t,r,i,A,o):[n,r].find(e=>t.isValue(e))}e.exports=async e=>{let t=e.options,r=new Set(!0===t.required?[]:t.required||[]),o={...t.values,...t.initial},{tabstops:s,items:a,keys:c}=await(async(e={},t={},r=(e=>e))=>{let n=new Set,A=e.fields||[],o=e.template,s=[],a=[],c=[],g=1;"function"==typeof o&&(o=await o());let l=-1,u=()=>o[++l],h=()=>o[l+1],p=e=>{e.line=g,s.push(e)};for(p({type:"bos",value:""});le.name===s.key);s.field=A.find(e=>e.name===s.key),g||(g=new i(s),a.push(g)),g.lines.push(s.line-1);continue}let o=s[s.length-1];"text"===o.type&&o.line===g?o.value+=e:p({type:"text",value:e})}return p({type:"eos",value:""}),{input:o,tabstops:s,unique:n,keys:c,items:a}})(t,o),g=A("result",e,t),l=A("format",e,t),u=A("validate",e,t,!0),h=e.isValue.bind(e);return async(i={},A=!1)=>{let o=0;i.required=r,i.items=a,i.keys=c,i.output="";let p=async(e,t,r,n)=>{let i=await u(e,t,r,n);return!1===i?"Invalid field "+r.name:i};for(let r of s){let s=r.value,c=r.key;if("template"===r.type){if("template"===r.type){let u=a.find(e=>e.name===c);!0===t.required&&i.required.add(u.name);let f=[u.input,i.values[u.value],u.value,s].find(h),d=(u.field||{}).message||r.inner;if(A){let e=await p(i.values[c],i,u,o);if(e&&"string"==typeof e||!1===e){i.invalid.set(c,e);continue}i.invalid.delete(c);let t=await g(i.values[c],i,u,o);i.output+=n.unstyle(t);continue}u.placeholder=!1;let C=s;s=await l(s,i,u,o),f!==s?(i.values[c]=f,s=e.styles.typing(f),i.missing.delete(d)):(i.values[c]=void 0,f=`<${d}>`,s=e.styles.primary(f),u.placeholder=!0,i.required.has(c)&&i.missing.add(d)),i.missing.has(d)&&i.validating&&(s=e.styles.warning(f)),i.invalid.has(c)&&i.validating&&(s=e.styles.danger(f)),o===i.index&&(s=C!==s?e.styles.underline(s):e.styles.heading(n.unstyle(s))),o++}s&&(i.output+=s)}else s&&(i.output+=s)}let f=i.output.split("\n").map(e=>" "+e),d=a.length,C=0;for(let t of a)i.invalid.has(t.name)&&t.lines.forEach(e=>{" "===f[e][0]&&(f[e]=i.styles.danger(i.symbols.bullet)+f[e].slice(1))}),e.isValue(i.values[t.name])&&C++;return i.completed=(C/d*100).toFixed(0),i.output=f.join("\n"),i.output}}},30650:(e,t,r)=>{"use strict";const n=r(51058),i=r(62475),A=/^(?:\x1b)([a-zA-Z0-9])$/,o=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,s={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};const a=(e="",t={})=>{let r,n={name:t.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:e,raw:e,...t};if(Buffer.isBuffer(e)?e[0]>127&&void 0===e[1]?(e[0]-=128,e=""+String(e)):e=String(e):void 0!==e&&"string"!=typeof e?e=String(e):e||(e=n.sequence||""),n.sequence=n.sequence||e||n.name,"\r"===e)n.raw=void 0,n.name="return";else if("\n"===e)n.name="enter";else if("\t"===e)n.name="tab";else if("\b"===e||""===e||""===e||"\b"===e)n.name="backspace",n.meta=""===e.charAt(0);else if(""===e||""===e)n.name="escape",n.meta=2===e.length;else if(" "===e||" "===e)n.name="space",n.meta=2===e.length;else if(e<="")n.name=String.fromCharCode(e.charCodeAt(0)+"a".charCodeAt(0)-1),n.ctrl=!0;else if(1===e.length&&e>="0"&&e<="9")n.name="number";else if(1===e.length&&e>="a"&&e<="z")n.name=e;else if(1===e.length&&e>="A"&&e<="Z")n.name=e.toLowerCase(),n.shift=!0;else if(r=A.exec(e))n.meta=!0,n.shift=/^[A-Z]$/.test(r[1]);else if(r=o.exec(e)){let t=[...e];""===t[0]&&""===t[1]&&(n.option=!0);let i=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),A=(r[3]||r[5]||1)-1;n.ctrl=!!(4&A),n.meta=!!(10&A),n.shift=!!(1&A),n.code=i,n.name=s[i],n.shift=function(e){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e)}(i)||n.shift,n.ctrl=function(e){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e)}(i)||n.ctrl}return n};a.listen=(e={},t)=>{let{stdin:r}=e;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let i=n.createInterface({terminal:!0,input:r});n.emitKeypressEvents(r,i);let A=(e,r)=>t(e,a(e,r),i),o=r.isRaw;r.isTTY&&r.setRawMode(!0),r.on("keypress",A),i.resume();return()=>{r.isTTY&&r.setRawMode(o),r.removeListener("keypress",A),i.pause(),i.close()}},a.action=(e,t,r)=>{let n={...i,...r};return t.ctrl?(t.action=n.ctrl[t.name],t):t.option&&n.option?(t.action=n.option[t.name],t):t.shift?(t.action=n.shift[t.name],t):(t.action=n.keys[t.name],t)},e.exports=a},96496:(e,t,r)=>{"use strict";const n=r(10278);e.exports=(e,t={})=>{e.cursorHide();let{input:r="",initial:i="",pos:A,showCursor:o=!0,color:s}=t,a=s||e.styles.placeholder,c=n.inverse(e.styles.primary),g=t=>c(e.styles.black(t)),l=r,u=g(" ");if(e.blink&&!0===e.blink.off&&(g=e=>e,u=""),o&&0===A&&""===i&&""===r)return g(" ");if(o&&0===A&&(r===i||""===r))return g(i[0])+a(i.slice(1));i=n.isPrimitive(i)?""+i:"",r=n.isPrimitive(r)?""+r:"";let h=i&&i.startsWith(r)&&i!==r,p=h?g(i[r.length]):u;if(A!==r.length&&!0===o&&(l=r.slice(0,A)+g(r[A])+r.slice(A+1),p=""),!1===o&&(p=""),h){let t=e.styles.unstyle(l+p);return l+p+a(i.slice(t.length))}return l+p}},58386:(e,t,r)=>{"use strict";const n=r(28614),i=r(97991),A=r(30650),o=r(47159),s=r(61807),a=r(26205),c=r(10278),g=r(72380);class l extends n{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,a(this),o(this),this.state=new s(this),this.initial=[e.initial,e.default].find(e=>null!=e),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=function(e){"number"==typeof e&&(e=[e,e,e,e]);let t=[].concat(e||[]),r=e=>e%2==0?"\n":" ",n=[];for(let e=0;e<4;e++){let i=r(e);t[e]?n.push(i.repeat(t[e])):n.push("")}return n}(this.options.margin),this.setMaxListeners(0),function(e){let t=t=>void 0===e[t]||"function"==typeof e[t],r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],n=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let i of Object.keys(e.options)){if(r.includes(i))continue;if(/^on[A-Z]/.test(i))continue;let A=e.options[i];"function"==typeof A&&t(i)?n.includes(i)||(e[i]=A.bind(e)):"function"!=typeof e[i]&&(e[i]=A)}}(this)}async keypress(e,t={}){this.keypressed=!0;let r=A.action(e,A(e,t),this.options.actions);this.state.keypress=r,this.emit("keypress",e,r),this.emit("state",this.state.clone());let n=this.options[r.action]||this[r.action]||this.dispatch;if("function"==typeof n)return await n.call(this,e,r);this.alert()}alert(){delete this.state.alert,!1===this.options.show?this.emit("alert"):this.stdout.write(g.code.beep)}cursorHide(){this.stdout.write(g.cursor.hide()),c.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(g.cursor.show())}write(e){e&&(this.stdout&&!1!==this.state.show&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",(t||e)&&!1!==this.options.show&&this.stdout.write(g.cursor.down(e)+g.clear(t,this.width))}restore(){if(this.state.closed||!1===this.options.show)return;let{prompt:e,after:t,rest:r}=this.sections(),{cursor:n,initial:i="",input:A="",value:o=""}=this,s={after:t,cursor:n,initial:i,input:A,prompt:e,size:this.state.size=r.length,value:o},a=g.cursor.restore(s);a&&this.stdout.write(a)}sections(){let{buffer:e,input:t,prompt:r}=this.state;r=i.unstyle(r);let n=i.unstyle(e),A=n.indexOf(r),o=n.slice(0,A),s=n.slice(A).split("\n"),a=s[0],c=s[s.length-1],g=(r+(t?" "+t:"")).length,l=ge.call(this,this.value),this.result=()=>r.call(this,this.value),"function"==typeof t.initial&&(this.initial=await t.initial.call(this,this)),"function"==typeof t.onRun&&await t.onRun.call(this,this),"function"==typeof t.onSubmit){let e=t.onSubmit.bind(this),r=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await e(this.name,this.value,this),r())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,r){let{options:n,state:i,symbols:A,timers:o}=this,s=o&&o[e];i.timer=s;let a=n[e]||i[e]||A[e],c=t&&null!=t[e]?t[e]:await a;if(""===c)return c;let g=await this.resolve(c,i,t,r);return!g&&t&&t[e]?this.resolve(a,i,t,r):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,r=this.state;if(r.timer=t,c.isObject(e)&&(e=e[r.status]||e.pending),!c.hasColor(e)){return(this.styles[r.status]||this.styles.pending)(e)}return e}async message(){let e=await this.element("message");return c.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,r=this.state;r.timer=t;let n=e[r.status]||e.pending||r.separator,i=await this.resolve(n,r);return c.isObject(i)&&(i=i[r.status]||i.pending),c.hasColor(i)?i:this.styles.muted(i)}async pointer(e,t){let r=await this.element("pointer",e,t);if("string"==typeof r&&c.hasColor(r))return r;if(r){let e=this.styles,n=this.index===t,i=n?e.primary:e=>e,A=await this.resolve(r[n?"on":"off"]||r,this.state),o=c.hasColor(A)?A:i(A);return n?o:" ".repeat(A.length)}}async indicator(e,t){let r=await this.element("indicator",e,t);if("string"==typeof r&&c.hasColor(r))return r;if(r){let t=this.styles,n=!0===e.enabled,i=n?t.success:t.dark,A=r[n?"on":"off"]||r;return c.hasColor(A)?A:i(A)}return""}body(){return null}footer(){if("pending"===this.state.status)return this.element("footer")}header(){if("pending"===this.state.status)return this.element("header")}async hint(){if("pending"===this.state.status&&!this.isValue(this.state.input)){let e=await this.element("hint");return c.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return!0!==this.options.required||this.isValue(e)}isValue(e){return null!=e&&""!==e}resolve(e,...t){return c.resolve(this,e,...t)}get base(){return l.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||c.height(this.stdout,25)}get width(){return this.options.columns||c.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,r=[t,e].find(this.isValue.bind(this));return this.isValue(r)?r:this.initial}static get prompt(){return e=>new this(e).run()}}e.exports=l},63310:(e,t,r)=>{"use strict";const n=r(31557);e.exports=class extends n{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:r}=this.state;return this.input=r.slice(0,t)+e+r.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return void 0===t[e]?this.alert():(this.input=(""+t).slice(0,e)+(""+t).slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if("function"==typeof this.options.suggest)return this.options.suggest.call(this,e,t);let r=e.toLowerCase();return t.filter(e=>e.message.toLowerCase().includes(r))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if("pending"!==this.state.status)return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=((e,t)=>{let r=e.toLowerCase();return e=>{let n=e.toLowerCase().indexOf(r),i=t(e.slice(n,n+r.length));return n>=0?e.slice(0,n)+i+e.slice(n+r.length):e}})(this.input,e),r=this.choices;this.choices=r.map(e=>({...e,message:t(e.message)})),await super.render(),this.choices=r}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}}},52810:(e,t,r)=>{"use strict";const n=r(46614);function i(e,t){return e.username===this.options.username&&e.password===this.options.password}const A=(e=i)=>{const t=[{name:"username",message:"username"},{name:"password",message:"password",format(e){if(this.options.showPassword)return e;return(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length))}}];class r extends(n.create(e)){constructor(e){super({...e,choices:t})}static create(e){return A(e)}}return r};e.exports=A()},65742:(e,t,r)=>{"use strict";const n=r(82710);e.exports=class extends n{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}}},24570:(e,t,r)=>{"use strict";const n=r(31557),i=r(71447).prototype;e.exports=class extends n{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(e=>null!=e),this.emptyError="",this.values={}}dispatch(e,t){let r=this.focused,n=r.parent||{};return r.editable||n.editable||"a"!==e&&"i"!==e?i.dispatch.call(this,e,t):super[e]()}append(e,t){return i.append.call(this,e,t)}delete(e,t){return i.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?i.next.call(this):super.next()}prev(){return this.focused.editable?i.prev.call(this):super.prev()}async indicator(e,t){let r=e.indicator||"",n=e.editable?r:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return"heading"===e.role?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?i.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if("function"!=typeof t.validate)continue;if("heading"===t.role)continue;let r=t.parent?this.value[t.parent.name]:this.value;if(t.editable?r=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(r=!0===t.enabled),e=await t.validate(r,this.state),!0!==e)break}return!0!==e&&(this.state.error="string"==typeof e?e:"Invalid Input"),e}submit(){if(!0===this.focused.newChoice)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;"heading"!==e.role?e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=!0===e.enabled):this.value[e.name]={}}return this.base.submit.call(this)}}},71447:(e,t,r)=>{"use strict";const n=r(97991),i=r(31557),A=r(96496);e.exports=class extends i{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(e=>null!=e),this.emptyError="",this.values={}}async reset(e){return await super.reset(),!0===e&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(e=>e.reset&&e.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:r,input:n}=t;return t.value=t.input=n.slice(0,r)+e+n.slice(r),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:r}=e;return e.value=e.input=r.slice(0,t-1)+r.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:r}=e;if(void 0===r[t])return this.alert();let n=(""+r).slice(0,t)+(""+r).slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:r}=e;return t&&t.startsWith(r)&&r!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?0===e.cursor?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"⦿":"⊙"}async choiceSeparator(e,t){let r=await this.resolve(e.separator,this.state,e,t)||":";return r?" "+this.styles.disabled(r):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:r,styles:i}=this,{cursor:o,initial:s="",name:a,hint:c,input:g=""}=e,{muted:l,submitted:u,primary:h,danger:p}=i,f=c,d=this.index===t,C=e.validate||(()=>!0),I=await this.choiceSeparator(e,t),E=e.message;"right"===this.align&&(E=E.padStart(this.longest+1," ")),"left"===this.align&&(E=E.padEnd(this.longest+1," "));let m=this.values[a]=g||s,B=g?"success":"dark";!0!==await C.call(e,m,this.state)&&(B="danger");let y=(0,i[B])(await this.indicator(e,t))+(e.pad||""),w=this.indent(e),Q=()=>[w,y,E+I,g,f].filter(Boolean).join(" ");if(r.submitted)return E=n.unstyle(E),g=u(g),f="",Q();if(e.format)g=await e.format.call(this,g,e,t);else{let e=this.styles.muted;g=A(this,{input:g,initial:s,pos:o,showCursor:d,color:e})}return this.isValue(g)||(g=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,m,e,t)),d&&(E=h(E)),e.error?g+=(g?" ":"")+p(e.error.trim()):e.hint&&(g+=(g?" ":"")+l(e.hint.trim())),Q()}async submit(){return this.value=this.values,super.base.submit.call(this)}}},53609:(e,t,r)=>{"use strict";const n=r(10278),i=(e,r)=>{n.defineExport(t,e,r),n.defineExport(t,e.toLowerCase(),r)};i("AutoComplete",()=>r(63310)),i("BasicAuth",()=>r(52810)),i("Confirm",()=>r(65742)),i("Editable",()=>r(24570)),i("Form",()=>r(71447)),i("Input",()=>r(12372)),i("Invisible",()=>r(32684)),i("List",()=>r(40876)),i("MultiSelect",()=>r(42293)),i("Numeral",()=>r(42126)),i("Password",()=>r(84697)),i("Scale",()=>r(99580)),i("Select",()=>r(31557)),i("Snippet",()=>r(98094)),i("Sort",()=>r(60042)),i("Survey",()=>r(25223)),i("Text",()=>r(97298)),i("Toggle",()=>r(41817)),i("Quiz",()=>r(88677))},12372:(e,t,r)=>{"use strict";const n=r(45853),i=r(64083);e.exports=class extends n{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let e=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:e},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=i(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=i("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&!0===this.autosave&&this.save(),super.submit()}}},32684:(e,t,r)=>{"use strict";const n=r(45853);e.exports=class extends n{format(){return""}}},40876:(e,t,r)=>{"use strict";const n=r(45853);e.exports=class extends n{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:e=>e;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return!0!==t?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}}},42293:(e,t,r)=>{"use strict";const n=r(31557);e.exports=class extends n{constructor(e){super({...e,multiple:!0})}}},42126:(e,t,r)=>{e.exports=r(64987)},84697:(e,t,r)=>{"use strict";const n=r(45853);e.exports=class extends n{constructor(e){super(e),this.cursorShow()}format(e=this.input){if(!this.keypressed)return"";return(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length))}}},88677:(e,t,r)=>{"use strict";const n=r(31557);e.exports=class extends n{constructor(e){if(super(e),"number"!=typeof this.options.correctChoice||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let r=await super.toChoices(e,t);if(r.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>r.length)throw new Error("Please specify the index of the correct answer from the list of choices");return r}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}}},99580:(e,t,r)=>{"use strict";const n=r(97991),i=r(14723),A=r(10278);e.exports=class extends i{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||"\n ";let t=e.startNumber||1;"number"==typeof this.scale&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((e,r)=>({name:r+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(!0===this.tableized)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let e=0;e=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){if(this.state.submitted){return this.choices.map(e=>this.styles.info(e.index)).join(", ")}return""}pointer(){return""}renderScaleKey(){if(!1===this.scaleKey)return"";if(this.state.submitted)return"";return["",...this.scale.map(e=>` ${e.name} - ${e.message}`)].map(e=>this.styles.muted(e)).join("\n")}renderScaleHeading(e){let t=this.scale.map(e=>e.name);"function"==typeof this.options.renderScaleHeading&&(t=this.options.renderScaleHeading.call(this,e));let r=this.scaleLength-t.join("").length,n=Math.round(r/(t.length-1)),i=t.map(e=>this.styles.strong(e)).join(" ".repeat(n)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+i}scaleIndicator(e,t,r){if("function"==typeof this.options.scaleIndicator)return this.options.scaleIndicator.call(this,e,t,r);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let r=e.scale.map(r=>this.scaleIndicator(e,r,t)),n="Hyper"===this.term?"":" ";return r.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let r=this.index===t,i=await this.pointer(e,t),o=await e.hint;o&&!A.hasColor(o)&&(o=this.styles.muted(o));let s=e=>this.margin[3]+e.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,c=this.indent(e),g=await this.resolve(e.message,this.state,e,t),l=await this.renderScale(e,t),u=this.margin[1]+this.margin[3];this.scaleLength=n.unstyle(l).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-u.length);let h=A.wordWrap(g,{width:this.widths[0],newline:a}).split("\n").map(e=>s(e)+this.margin[1]);return r&&(l=this.styles.info(l),h=h.map(e=>this.styles.info(e))),h[0]+=l,this.linebreak&&h.push(""),[c+i,h.join("\n")].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(e,t)=>await this.renderChoice(e,t)),t=await Promise.all(e),r=await this.renderScaleHeading();return this.margin[0]+[r,...t.map(e=>e.join(" "))].join("\n")}async render(){let{submitted:e,size:t}=this.state,r=await this.prefix(),n=await this.separator(),i=await this.message(),A="";!1!==this.options.promptLine&&(A=[r,i,n,""].join(" "),this.state.prompt=A);let o=await this.header(),s=await this.format(),a=await this.renderScaleKey(),c=await this.error()||await this.hint(),g=await this.renderChoices(),l=await this.footer(),u=this.emptyError;s&&(A+=s),c&&!A.includes(c)&&(A+=" "+c),e&&!s&&!g.trim()&&this.multiple&&null!=u&&(A+=this.styles.danger(u)),this.clear(t),this.write([o,A,a,g,l].filter(Boolean).join("\n")),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}}},31557:(e,t,r)=>{"use strict";const n=r(14723),i=r(10278);e.exports=class extends n{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let r=this.resolve(e.message,this.state,e,t);return"heading"!==e.role||i.hasColor(r)||(r=this.styles.strong(r)),this.resolve(r,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let r=this.index===t,n=await this.pointer(e,t),A=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!i.hasColor(o)&&(o=this.styles.muted(o));let s=this.indent(e),a=await this.choiceMessage(e,t),c=()=>[this.margin[3],s+n+A,a,this.margin[1],o].filter(Boolean).join(" ");return"heading"===e.role?c():e.disabled?(i.hasColor(a)||(a=this.styles.disabled(a)),c()):(r&&(a=this.styles.em(a)),c())}async renderChoices(){if("choices"===this.state.loading)return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(e,t)=>await this.renderChoice(e,t)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let r,n=this.margin[0]+t.join("\n");return this.options.choicesHeader&&(r=await this.resolve(this.options.choicesHeader,this.state)),[r,n].filter(Boolean).join("\n")}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,r="",n=await this.header(),i=await this.prefix(),A=await this.separator(),o=await this.message();!1!==this.options.promptLine&&(r=[i,o,A,""].join(" "),this.state.prompt=r);let s=await this.format(),a=await this.error()||await this.hint(),c=await this.renderChoices(),g=await this.footer();s&&(r+=s),a&&!r.includes(a)&&(r+=" "+a),e&&!s&&!c.trim()&&this.multiple&&null!=this.emptyError&&(r+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,r,c,g].filter(Boolean).join("\n")),this.write(this.margin[2]),this.restore()}}},98094:(e,t,r)=>{"use strict";const n=r(97991),i=r(84368),A=r(58386);e.exports=class extends A{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await i(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},!0!==e&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){t.code||t.ctrl||null==e||!this.getItem()?this.alert():this.append(e,t)}append(e,t){let r=this.getItem(),n=r.input.slice(0,this.cursor),i=r.input.slice(this.cursor);this.input=r.input=`${n}${e}${i}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),r=e.input.slice(0,this.cursor-1);this.input=e.input=`${r}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return!0===this.state.submitted&&100!==this.state.completed&&(t=this.styles.danger),t(this.state.completed+"% completed")}async render(){let{index:e,keys:t=[],submitted:r,size:n}=this.state,i=[this.options.newline,"\n"].find(e=>null!=e),A=await this.prefix(),o=await this.separator(),s=[A,await this.message(),o].filter(Boolean).join(" ");this.state.prompt=s;let a=await this.header(),c=await this.error()||"",g=await this.hint()||"",l=r?"":await this.interpolate(this.state),u=this.state.key=t[e]||"",h=await this.format(u),p=await this.footer();h&&(s+=" "+h),g&&!h&&0===this.state.completed&&(s+=" "+g),this.clear(n);let f=[a,s,l,p,c.trim()];this.write(f.filter(Boolean).join(i)),this.restore()}getItem(e){let{items:t,keys:r,index:n}=this.state,i=t.find(e=>e.name===r[n]);return i&&null!=i.input&&(this.input=i.input,this.cursor=i.cursor),i}async submit(){"function"!=typeof this.interpolate&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:r,values:i}=this.state;if(e.size){let t="";for(let[r,n]of e)t+=`Invalid ${r}: ${n}\n`;return this.state.error=t,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let A=n.unstyle(r).split("\n").map(e=>e.slice(1)).join("\n");return this.value={values:i,result:A},super.submit()}}},60042:(e,t,r)=>{"use strict";const n="(Use + to sort)",i=r(31557);e.exports=class extends i{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,n].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let r=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",i=this.index===t&&this.sorting?this.styles.muted(n):" ";return!1===this.options.drag&&(i=""),!0===this.options.numbered?i+(t+1+" - ")+r:i+r}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}}},25223:(e,t,r)=>{"use strict";const n=r(14723);function i(e,t={}){if(Array.isArray(t.scale))return t.scale.map(e=>({...e}));let r=[];for(let t=1;tthis.styles.muted(e)),this.state.header=e.join("\n ")}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let e of t)e.scale=i(5,this.options),e.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],r=t.selected;return e.scale.forEach(e=>e.selected=!1),t.selected=!r,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let r=this.index===t,n="Hyper"===this.term,i=n?9:8,A=n?"":" ",o=this.symbols.line.repeat(i),s=" ".repeat(i+(n?0:1)),a=e=>(e?this.styles.success("◉"):"◯")+A,c=t+1+".",g=r?this.styles.heading:this.styles.noop,l=await this.resolve(e.message,this.state,e,t),u=this.indent(e),h=u+e.scale.map((t,r)=>a(r===e.scaleIdx)).join(o),p=u+e.scale.map((t,r)=>(t=>t===e.scaleIdx?g(t):t)(r)).join(s);return r&&(h=this.styles.cyan(h),p=this.styles.cyan(p)),[[c,l].filter(Boolean).join(" "),h,p," "].filter(Boolean).join("\n")}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(e,t)=>await this.renderChoice(e,t)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join("\n")}format(){if(this.state.submitted){return this.choices.map(e=>this.styles.info(e.scaleIdx)).join(", ")}return""}async render(){let{submitted:e,size:t}=this.state,r=await this.prefix(),n=await this.separator(),i=[r,await this.message(),n].filter(Boolean).join(" ");this.state.prompt=i;let A=await this.header(),o=await this.format(),s=await this.error()||await this.hint(),a=await this.renderChoices(),c=await this.footer();!o&&s||(i+=" "+o),s&&!i.includes(s)&&(i+=" "+s),e&&!o&&!a&&this.multiple&&"form"!==this.type&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([i,A,a,c].filter(Boolean).join("\n")),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}}},97298:(e,t,r)=>{e.exports=r(12372)},41817:(e,t,r)=>{"use strict";const n=r(82710);e.exports=class extends n{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(!0===this.value)return this.alert();this.value=!0,this.render()}disable(){if(!1===this.value)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=e=>this.styles.primary.underline(e);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),r=await this.prefix(),n=await this.separator(),i=await this.message(),A=await this.format(),o=await this.error()||await this.hint(),s=await this.footer(),a=[r,i,n,A].join(" ");this.state.prompt=a,o&&!a.includes(o)&&(a+=" "+o),this.clear(e),this.write([t,a,s].filter(Boolean).join("\n")),this.write(this.margin[2]),this.restore()}}},27011:(e,t,r)=>{"use strict";const n=r(10278),i={default:(e,t)=>t,checkbox(e,t){throw new Error("checkbox role is not implemented yet")},editable(e,t){throw new Error("editable role is not implemented yet")},expandable(e,t){throw new Error("expandable role is not implemented yet")},heading:(e,t)=>(t.disabled="",t.indicator=[t.indicator," "].find(e=>null!=e),t.message=t.message||"",t),input(e,t){throw new Error("input role is not implemented yet")},option:(e,t)=>i.default(e,t),radio(e,t){throw new Error("radio role is not implemented yet")},separator:(e,t)=>(t.disabled="",t.indicator=[t.indicator," "].find(e=>null!=e),t.message=t.message||e.symbols.line.repeat(5),t),spacer:(e,t)=>t};e.exports=(e,t={})=>{let r=n.merge({},i,t.roles);return r[e]||r.default}},61807:(e,t,r)=>{"use strict";const{define:n,width:i}=r(10278);e.exports=class{constructor(e){let t=e.options;n(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=i(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return"function"==typeof t?t:e.pending}set loading(e){this._loading=e}get loading(){return"boolean"==typeof this._loading?this._loading:!!this.loadingChoices&&"choices"}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}}},64402:(e,t,r)=>{"use strict";const n=r(10278),i=r(97991),A={default:i.noop,noop:i.noop,set inverse(e){this._inverse=e},get inverse(){return this._inverse||n.inverse(this.primary)},set complement(e){this._complement=e},get complement(){return this._complement||n.complement(this.primary)},primary:i.cyan,success:i.green,danger:i.magenta,strong:i.bold,warning:i.yellow,muted:i.dim,disabled:i.gray,dark:i.dim.gray,underline:i.underline,set info(e){this._info=e},get info(){return this._info||this.primary},set em(e){this._em=e},get em(){return this._em||this.primary.underline},set heading(e){this._heading=e},get heading(){return this._heading||this.muted.underline},set pending(e){this._pending=e},get pending(){return this._pending||this.primary},set submitted(e){this._submitted=e},get submitted(){return this._submitted||this.success},set cancelled(e){this._cancelled=e},get cancelled(){return this._cancelled||this.danger},set typing(e){this._typing=e},get typing(){return this._typing||this.dim},set placeholder(e){this._placeholder=e},get placeholder(){return this._placeholder||this.primary.dim},set highlight(e){this._highlight=e},get highlight(){return this._highlight||this.inverse},merge:(e={})=>{e.styles&&"boolean"==typeof e.styles.enabled&&(i.enabled=e.styles.enabled),e.styles&&"boolean"==typeof e.styles.visible&&(i.visible=e.styles.visible);let t=n.merge({},A,e.styles);delete t.merge;for(let e of Object.keys(i))t.hasOwnProperty(e)||Reflect.defineProperty(t,e,{get:()=>i[e]});for(let e of Object.keys(i.styles))t.hasOwnProperty(e)||Reflect.defineProperty(t,e,{get:()=>i[e]});return t}};e.exports=A},50511:(e,t,r)=>{"use strict";const n="win32"===process.platform,i=r(97991),A=r(10278),o={...i.symbols,upDownDoubleArrow:"⇕",upDownDoubleArrow2:"⬍",upDownArrow:"↕",asterisk:"*",asterism:"⁂",bulletWhite:"◦",electricArrow:"⌁",ellipsisLarge:"⋯",ellipsisSmall:"…",fullBlock:"█",identicalTo:"≡",indicator:i.symbols.check,leftAngle:"‹",mark:"※",minus:"−",multiplication:"×",obelus:"÷",percent:"%",pilcrow:"¶",pilcrow2:"❡",pencilUpRight:"✐",pencilDownRight:"✎",pencilRight:"✏",plus:"+",plusMinus:"±",pointRight:"☞",rightAngle:"›",section:"§",hexagon:{off:"⬡",on:"⬢",disabled:"⬢"},ballot:{on:"☑",off:"☐",disabled:"☒"},stars:{on:"★",off:"☆",disabled:"☆"},folder:{on:"▼",off:"▶",disabled:"▶"},prefix:{pending:i.symbols.question,submitted:i.symbols.check,cancelled:i.symbols.cross},separator:{pending:i.symbols.pointerSmall,submitted:i.symbols.middot,cancelled:i.symbols.middot},radio:{off:n?"( )":"◯",on:n?"(*)":"◉",disabled:n?"(|)":"Ⓘ"},numbers:["⓪","①","②","③","④","⑤","⑥","⑦","⑧","⑨","⑩","⑪","⑫","⑬","⑭","⑮","⑯","⑰","⑱","⑲","⑳","㉑","㉒","㉓","㉔","㉕","㉖","㉗","㉘","㉙","㉚","㉛","㉜","㉝","㉞","㉟","㊱","㊲","㊳","㊴","㊵","㊶","㊷","㊸","㊹","㊺","㊻","㊼","㊽","㊾","㊿"]};o.merge=e=>{let t=A.merge({},i.symbols,o,e.symbols);return delete t.merge,t},e.exports=o},26205:(e,t,r)=>{"use strict";const n=r(64402),i=r(50511),A=r(10278);e.exports=e=>{e.options=A.merge({},e.options.theme,e.options),e.symbols=i.merge(e.options),e.styles=n.merge(e.options)}},47159:e=>{"use strict";function t(e,t,r={}){let n=e.timers[t]={name:t,start:Date.now(),ms:0,tick:0},i=r.interval||120;n.frames=r.frames||[],n.loading=!0;let A=setInterval(()=>{n.ms=Date.now()-n.start,n.tick++,e.render()},i);return n.stop=()=>{n.loading=!1,clearInterval(A)},Reflect.defineProperty(n,"interval",{value:A}),e.once("close",()=>n.stop()),n.stop}e.exports=e=>{e.timers=e.timers||{};let r=e.options.timers;if(r)for(let n of Object.keys(r)){let i=r[n];"number"==typeof i&&(i={interval:i}),t(e,n,i)}}},14723:(e,t,r)=>{"use strict";const n=r(97991),i=r(58386),A=r(27011),o=r(10278),{reorder:s,scrollUp:a,scrollDown:c,isObject:g,swap:l}=o;function u(e,t){if(t instanceof Promise)return t;if("function"==typeof t){if(o.isAsyncFn(t))return t;t=t.call(e,e)}for(let r of t){if(Array.isArray(r.choices)){let t=r.choices.filter(t=>!e.isDisabled(t));r.enabled=t.every(e=>!0===e.enabled)}!0===e.isDisabled(r)&&delete r.enabled}return t}e.exports=class extends i{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){"function"==typeof this.options.initial&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:r,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(e=>e.enabled=!1),"function"!=typeof n&&0===this.selectable.length)throw new Error("At least one choice must be selectable");g(t)&&(t=Object.keys(t)),Array.isArray(t)?(null!=r&&(this.index=this.findIndex(r)),t.forEach(e=>this.enable(this.find(e))),await this.render()):(null!=r&&(t=r),"string"==typeof t&&(t=this.findIndex(t)),"number"==typeof t&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let r=[],n=0,i=async(e,t)=>{"function"==typeof e&&(e=await e.call(this)),e instanceof Promise&&(e=await e);for(let A=0;A(this.state.loadingChoices=!1,e))}async toChoice(e,t,r){if("function"==typeof e&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),"string"==typeof e&&(e={name:e}),e.normalized)return e;e.normalized=!0;let i=e.value,s=A(e.role,this.options);if("string"!=typeof(e=s(this,e)).disabled||e.hint||(e.hint=e.disabled,e.disabled=!0),!0===e.disabled&&null==e.hint&&(e.hint="(disabled)"),null!=e.index)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,o.define(e,"parent",r),e.level=r?r.level+1:1,null==e.indent&&(e.indent=r?r.indent+" ":e.indent||""),e.path=r?r.path+"."+e.name:e.name,e.enabled=!(!this.multiple||this.isDisabled(e)||!e.enabled&&!this.isSelected(e)),this.isDisabled(e)||(this.longest=Math.max(this.longest,n.unstyle(e.message).length));let a={...e};return e.reset=(t=a.input,r=a.value)=>{for(let t of Object.keys(a))e[t]=a[t];e.input=t,e.value=r},null==i&&"function"==typeof e.initial&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),"function"==typeof e.onChoice&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,r){let n=await this.toChoice(e,t,r);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,r){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},i=await this.addChoice(n,t,r);return i.updateChoice=()=>{delete i.newChoice,i.name=i.message=i.input,i.input="",i.cursor=0},this.render()}indent(e){return null==e.indent?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return"boolean"!=typeof t&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectede.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(e=>!!e.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();"boolean"!=typeof t&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(e=>this.toggle(e,t));let r=e.parent;for(;r;){let e=r.choices.filter(e=>this.isDisabled(e));r.enabled=e.every(e=>!0===e.enabled),r=r.parent}return u(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=e=>{let t=Number(e);if(t>this.choices.length-1)return this.alert();let r=this.focused,n=this.choices.find(e=>t===e.index);if(!n.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(-1===this.visible.indexOf(n)){let e=s(this.choices),t=e.indexOf(n);if(r.index>t){let r=e.slice(t,t+this.limit),n=e.filter(e=>!r.includes(e));this.choices=r.concat(n)}else{let r=t-this.limit+1;this.choices=e.slice(r).concat(e.slice(0,r))}}return this.index=this.choices.indexOf(n),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(e=>{let r=this.choices.length,n=this.num,i=(r=!1,i)=>{clearTimeout(this.numberTimeout),r&&(i=t(n)),this.num="",e(i)};return"0"===n||1===n.length&&Number(n+"0")>r?i(!0):Number(n)>r?i(!1,this.alert()):void(this.numberTimeout=setTimeout(()=>i(!0),this.delay))})}home(){return this.choices=s(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=s(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,r=this.index;return!1===this.options.scroll&&0===r?this.alert():e>t&&0===r?this.scrollUp():(this.index=(r-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,r=this.index;return!1===this.options.scroll&&r===t-1?this.alert():e>t&&r===t-1?this.scrollDown():(this.index=(r+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=a(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=c(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){return!0===this.options.sort?(this.sorting=!0,this.swap(this.index-1),await this.up(),void(this.sorting=!1)):this.scrollUp(this.index)}async shiftDown(){return!0===this.options.sort?(this.sorting=!0,this.swap(this.index+1),await this.down(),void(this.sorting=!1)):this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){l(this.choices,this.index,e)}isDisabled(e=this.focused){return!(!e||!["disabled","collapsed","hidden","completing","readonly"].some(t=>!0===e[t]))||e&&"heading"===e.role}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(e=>this.isEnabled(e));if(e.choices){let t=e.choices.filter(e=>!this.isDisabled(e));return e.enabled&&t.every(e=>this.isEnabled(e))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((e,r)=>(e[r]=this.find(r,t),e),{})}filter(e,t){let r="function"==typeof e?e:(t,r)=>[t.name,r].includes(e),n=(this.options.multiple?this.state._choices:this.choices).filter(r);return t?n.map(e=>e[t]):n}find(e,t){if(g(e))return t?e[t]:e;let r="function"==typeof e?e:(t,r)=>[t.name,r].includes(e),n=this.choices.find(r);return n?t?n[t]:n:void 0}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(e=>e.newChoice))return this.alert();let{reorder:t,sort:r}=this.options,n=!0===this.multiple,i=this.selected;return void 0===i?this.alert():(Array.isArray(i)&&!1!==t&&!0!==r&&(i=o.reorder(i)),this.value=n?i.map(e=>e.name):i.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(e=>e.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let e=this.initial;if("string"==typeof e||"number"==typeof e){let t=this.find(e);t&&(this.initial=t.index,this.focus(t,!0))}}}get choices(){return u(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:r}=this,n=e.limit||this._limit||t.limit||r.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return"string"!=typeof super.value&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&!0!==this.multiple&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}}},46614:(e,t,r)=>{"use strict";const n=r(71447),i=()=>{throw new Error("expected prompt to have a custom authenticate method")},A=(e=i)=>class extends n{constructor(e){super(e)}async submit(){this.value=await e.call(this,this.values,this.state),super.base.submit.call(this)}static create(e){return A(e)}};e.exports=A()},82710:(e,t,r)=>{"use strict";const n=r(58386),{isPrimitive:i,hasColor:A}=r(10278);e.exports=class extends n{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:r}=this;return r.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return i(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if("pending"===this.state.status){let e=await this.element("hint");return A(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,r=await this.prefix(),n=await this.separator(),i=[r,await this.message(),this.styles.muted(this.default),n].filter(Boolean).join(" ");this.state.prompt=i;let A=await this.header(),o=this.value=this.cast(e),s=await this.format(o),a=await this.error()||await this.hint(),c=await this.footer();a&&!i.includes(a)&&(s+=" "+a),i+=" "+s,this.clear(t),this.write([A,i,c].filter(Boolean).join("\n")),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}}},13235:(e,t,r)=>{e.exports={ArrayPrompt:r(14723),AuthPrompt:r(46614),BooleanPrompt:r(82710),NumberPrompt:r(64987),StringPrompt:r(45853)}},64987:(e,t,r)=>{"use strict";const n=r(45853);e.exports=class extends n{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=null!=e.delay?e.delay:1e3,this.float=!1!==e.float,this.round=!0===e.round||!1===e.float,this.major=e.major||10,this.minor=e.minor||1,this.initial=null!=e.initial?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||"."===e&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,r=this.toNumber(this.input);return r>this.max+t?this.alert():(this.input=""+(r+t),this.render())}down(e){let t=e||this.minor,r=this.toNumber(this.input);return rthis.isValue(e));return this.value=this.toNumber(e||0),super.submit()}}},45853:(e,t,r)=>{"use strict";const n=r(58386),i=r(96496),{isPrimitive:A}=r(10278);e.exports=class extends n{constructor(e){super(e),this.initial=A(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let r=this.state.prevKeypress;return this.state.prevKeypress=t,!0!==this.options.multiline||"return"!==t.name||r&&"return"===r.name?super.keypress(e,t):this.append("\n",t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:r}=this.state;this.input=(""+r).slice(0,t)+e+(""+r).slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=(""+t).slice(0,e-1)+(""+t).slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(void 0===t[e])return this.alert();this.input=(""+t).slice(0,e)+(""+t).slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(0===e)return this.alert();let t=this.input.slice(0,e),r=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=r,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=null!=this.initial?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):i(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),r=await this.separator(),n=[t,await this.message(),r].filter(Boolean).join(" ");this.state.prompt=n;let i=await this.header(),A=await this.format(),o=await this.error()||await this.hint(),s=await this.footer();o&&!A.includes(o)&&(A+=" "+o),n+=" "+A,this.clear(e),this.write([i,n,s].filter(Boolean).join("\n")),this.restore()}}},10278:(e,t,r)=>{"use strict";const n=Object.prototype.toString,i=r(97991);let A=!1,o=[];const s={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};t.longest=(e,t)=>e.reduce((e,r)=>Math.max(e,t?r[t].length:r.length),0),t.hasColor=e=>!!e&&i.hasColor(e);const a=t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e);t.nativeType=e=>n.call(e).slice(8,-1).toLowerCase().replace(/\s/g,""),t.isAsyncFn=e=>"asyncfunction"===t.nativeType(e),t.isPrimitive=e=>null!=e&&"object"!=typeof e&&"function"!=typeof e,t.resolve=(e,t,...r)=>"function"==typeof t?t.call(e,...r):t,t.scrollDown=(e=[])=>[...e.slice(1),e[0]],t.scrollUp=(e=[])=>[e.pop(),...e],t.reorder=(e=[])=>{let t=e.slice();return t.sort((e,t)=>e.index>t.index?1:e.index{let n=e.length,i=r===n?0:r<0?n-1:r,A=e[t];e[t]=e[i],e[i]=A},t.width=(e,t=80)=>{let r=e&&e.columns?e.columns:t;return e&&"function"==typeof e.getWindowSize&&(r=e.getWindowSize()[0]),"win32"===process.platform?r-1:r},t.height=(e,t=20)=>{let r=e&&e.rows?e.rows:t;return e&&"function"==typeof e.getWindowSize&&(r=e.getWindowSize()[1]),r},t.wordWrap=(e,t={})=>{if(!e)return e;"number"==typeof t&&(t={width:t});let{indent:r="",newline:n="\n"+r,width:i=80}=t,A=(n+r).match(/[^\S\n]/g)||[];i-=A.length;let o=`.{1,${i}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,s=e.trim(),a=new RegExp(o,"g"),c=s.match(a)||[];return c=c.map(e=>e.replace(/\n$/,"")),t.padEnd&&(c=c.map(e=>e.padEnd(i," "))),t.padStart&&(c=c.map(e=>e.padStart(i," "))),r+c.join(n)},t.unmute=e=>{let t=e.stack.find(e=>i.keys.color.includes(e));return t?i[t]:e.stack.find(e=>"bg"===e.slice(2))?i[t.slice(2)]:e=>e},t.pascal=e=>e?e[0].toUpperCase()+e.slice(1):"",t.inverse=e=>{if(!e||!e.stack)return e;let r=e.stack.find(e=>i.keys.color.includes(e));if(r){let n=i["bg"+t.pascal(r)];return n?n.black:e}let n=e.stack.find(e=>"bg"===e.slice(0,2));return n?i[n.slice(2).toLowerCase()]||e:i.none},t.complement=e=>{if(!e||!e.stack)return e;let r=e.stack.find(e=>i.keys.color.includes(e)),n=e.stack.find(e=>"bg"===e.slice(0,2));if(r&&!n)return i[s[r]||r];if(n){let r=n.slice(2).toLowerCase(),A=s[r];return A&&i["bg"+t.pascal(A)]||e}return i.none},t.meridiem=e=>{let t=e.getHours(),r=e.getMinutes(),n=t>=12?"pm":"am";return t%=12,(0===t?12:t)+":"+(r<10?"0"+r:r)+" "+n},t.set=(e={},r="",n)=>r.split(".").reduce((e,r,i,A)=>{let o=A.length-1>i?e[r]||{}:n;return!t.isObject(o)&&i{let n=null==e[t]?t.split(".").reduce((e,t)=>e&&e[t],e):e[t];return null==n?r:n},t.mixin=(e,r)=>{if(!a(e))return r;if(!a(r))return e;for(let n of Object.keys(r)){let i=Object.getOwnPropertyDescriptor(r,n);if(i.hasOwnProperty("value"))if(e.hasOwnProperty(n)&&a(i.value)){let A=Object.getOwnPropertyDescriptor(e,n);a(A.value)?e[n]=t.merge({},e[n],r[n]):Reflect.defineProperty(e,n,i)}else Reflect.defineProperty(e,n,i);else Reflect.defineProperty(e,n,i)}return e},t.merge=(...e)=>{let r={};for(let n of e)t.mixin(r,n);return r},t.mixinEmitter=(e,r)=>{let n=r.constructor.prototype;for(let i of Object.keys(n)){let A=n[i];"function"==typeof A?t.define(e,i,A.bind(r)):t.define(e,i,A)}},t.onExit=e=>{const t=(e,t)=>{A||(A=!0,o.forEach(e=>e()),!0===e&&process.exit(128+t))};0===o.length&&(process.once("SIGTERM",t.bind(null,!0,15)),process.once("SIGINT",t.bind(null,!0,2)),process.once("exit",t)),o.push(e)},t.define=(e,t,r)=>{Reflect.defineProperty(e,t,{value:r})},t.defineExport=(e,t,r)=>{let n;Reflect.defineProperty(e,t,{enumerable:!0,configurable:!0,set(e){n=e},get:()=>n?n():r()})}},19347:(e,t,r)=>{"use strict";const n=r(80598),i=r(58182),A=r(67652),o=r(81340),s=r(43754),a=r(16777);async function c(e,t){l(e);const r=g(e,i.default,t),n=await Promise.all(r);return a.array.flatten(n)}function g(e,t,r){const i=[].concat(e),A=new s.default(r),o=n.generate(i,A),a=new t(A);return o.map(a.read,a)}function l(e){if(![].concat(e).every(e=>a.string.isString(e)&&!a.string.isEmpty(e)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}!function(e){e.sync=function(e,t){l(e);const r=g(e,o.default,t);return a.array.flatten(r)},e.stream=function(e,t){l(e);const r=g(e,A.default,t);return a.stream.merge(r)},e.generateTasks=function(e,t){l(e);const r=[].concat(e),i=new s.default(t);return n.generate(r,i)},e.isDynamicPattern=function(e,t){l(e);const r=new s.default(t);return a.pattern.isDynamicPattern(e,r)},e.escapePath=function(e){return l(e),a.path.escape(e)}}(c||(c={})),e.exports=c},80598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);function i(e,t,r){const n=s(e);if("."in n){return[c(".",e,t,r)]}return a(n,t,r)}function A(e){return n.pattern.getPositivePatterns(e)}function o(e,t){return n.pattern.getNegativePatterns(e).concat(t).map(n.pattern.convertToPositivePattern)}function s(e){return e.reduce((e,t)=>{const r=n.pattern.getBaseDirectory(t);return r in e?e[r].push(t):e[r]=[t],e},{})}function a(e,t,r){return Object.keys(e).map(n=>c(n,e[n],t,r))}function c(e,t,r,i){return{dynamic:i,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(n.pattern.convertToNegativePattern))}}t.generate=function(e,t){const r=A(e),s=o(e,t.ignore),a=r.filter(e=>n.pattern.isStaticPattern(e,t)),c=r.filter(e=>n.pattern.isDynamicPattern(e,t)),g=i(a,s,!1),l=i(c,s,!0);return g.concat(l)},t.convertPatternsToTasks=i,t.getPositivePatterns=A,t.getNegativePatternsAsPositive=o,t.groupPatternsByBaseDirectory=s,t.convertPatternGroupsToTasks=a,t.convertPatternGroupToTask=c},58182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(82774),i=r(40545);class A extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),n=[];return new Promise((i,A)=>{const o=this.api(t,e,r);o.once("error",A),o.on("data",e=>n.push(r.transform(e))),o.once("end",()=>i(n))})}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=A},65989:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777),i=r(42585);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,r){const n=this._getMatcher(t),i=this._getNegativePatternsRe(r);return t=>this._filter(e,t,n,i)}_getMatcher(e){return new i.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){const t=e.filter(n.pattern.isAffectDepthOfReadingPattern);return n.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,r,i){const A=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(A))return!1;if(this._isSkippedSymbolicLink(t))return!1;const o=n.path.removeLeadingDotSegment(t.path);return!this._isSkippedByPositivePatterns(o,r)&&this._isSkippedByNegativePatterns(o,i)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){const r=e.split("/").length;return t.split("/").length-(""===e?0:r)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!n.pattern.matchAny(e,t)}}},37338:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){const r=n.pattern.convertPatternsToRe(e,this._micromatchOptions),i=n.pattern.convertPatternsToRe(t,this._micromatchOptions);return e=>this._filter(e,r,i)}_filter(e,t,r){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e))return!1;if(this._isSkippedByAbsoluteNegativePatterns(e,r))return!1;const n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,r)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;const r=n.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(r,t)}_isMatchToPatterns(e,t){const r=n.path.removeLeadingDotSegment(e);return n.pattern.matchAny(r,t)}}},54345:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return n.errno.isEnoentCodeError(e)||this._settings.suppressErrors}}},34789:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t,r){this._patterns=e,this._settings=t,this._micromatchOptions=r,this._storage=[],this._fillStorage()}_fillStorage(){const e=n.pattern.expandPatternsWithBraceExpansion(this._patterns);for(const t of e){const e=this._getPatternSegments(t),r=this._splitSegmentsIntoSections(e);this._storage.push({complete:r.length<=1,pattern:t,segments:e,sections:r})}}_getPatternSegments(e){return n.pattern.getPatternParts(e,this._micromatchOptions).map(e=>n.pattern.isDynamicPattern(e,this._settings)?{dynamic:!0,pattern:e,patternRe:n.pattern.makeRe(e,this._micromatchOptions)}:{dynamic:!1,pattern:e})}_splitSegmentsIntoSections(e){return n.array.splitWhen(e,e=>e.dynamic&&n.pattern.hasGlobStar(e.pattern))}}},42585:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(34789);class i extends n.default{match(e){const t=e.split("/"),r=t.length,n=this._storage.filter(e=>!e.complete||e.segments.length>r);for(const e of n){const n=e.sections[0];if(!e.complete&&r>n.length)return!0;if(t.every((t,r)=>{const n=e.segments[r];return!(!n.dynamic||!n.patternRe.test(t))||!n.dynamic&&n.pattern===t}))return!0}return!1}}t.default=i},40545:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(65989),A=r(37338),o=r(54345),s=r(77541);t.default=class{constructor(e){this._settings=e,this.errorFilter=new o.default(this._settings),this.entryFilter=new A.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new i.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new s.default(this._settings)}_getRootDirectory(e){return n.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){const t="."===e.base?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}},67652:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(82774),A=r(40545);class o extends A.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),i=this.api(t,e,r),A=new n.Readable({objectMode:!0,read:()=>{}});return i.once("error",e=>A.emit("error",e)).on("data",e=>A.emit("data",r.transform(e))).once("end",()=>A.emit("end")),A.once("close",()=>i.destroy()),A}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=o},81340:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29543),i=r(40545);class A extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e);return this.api(t,e,r).map(r.transform)}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=A},77541:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=n.path.makeAbsolute(this._settings.cwd,t),t=n.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}}},99458:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),A=r(16777);t.default=class{constructor(e){this._settings=e,this._fsStatSettings=new i.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return n.resolve(this._settings.cwd,e)}_makeEntry(e,t){const r={name:t,path:t,dirent:A.fs.createDirentFromStats(t,e)};return this._settings.stats&&(r.stats=e),r}_isFatalError(e){return!A.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}}},82774:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(53403),A=r(72897),o=r(99458);class s extends o.default{constructor(){super(...arguments),this._walkStream=A.walkStream,this._stat=i.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){const r=e.map(this._getFullEntryPath,this),i=new n.PassThrough({objectMode:!0});i._write=(n,A,o)=>this._getEntry(r[n],e[n],t).then(e=>{null!==e&&t.entryFilter(e)&&i.push(e),n===r.length-1&&i.end(),o()}).catch(o);for(let e=0;ethis._makeEntry(e,t)).catch(e=>{if(r.errorFilter(e))return null;throw e})}_getStat(e){return new Promise((t,r)=>{this._stat(e,this._fsStatSettings,(e,n)=>null===e?t(n):r(e))})}}t.default=s},29543:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(72897),A=r(99458);class o extends A.default{constructor(){super(...arguments),this._walkSync=i.walkSync,this._statSync=n.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){const r=[];for(const n of e){const e=this._getFullEntryPath(n),i=this._getEntry(e,n,t);null!==i&&t.entryFilter(i)&&r.push(i)}return r}_getEntry(e,t,r){try{const r=this._getStat(e);return this._makeEntry(r,t)}catch(e){if(r.errorFilter(e))return null;throw e}}_getStat(e){return this._statSync(e,this._fsStatSettings)}}t.default=o},43754:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(12087).cpus().length;t.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:n.lstat,lstatSync:n.lstatSync,stat:n.stat,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync};t.default=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,i),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return void 0===e?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},t.DEFAULT_FILE_SYSTEM_ADAPTER),e)}}},60919:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flatten=function(e){return e.reduce((e,t)=>[].concat(e,t),[])},t.splitWhen=function(e,t){const r=[[]];let n=0;for(const i of e)t(i)?(n++,r[n]=[]):r[n].push(i);return r}},35525:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEnoentCodeError=function(e){return"ENOENT"===e.code}},62524:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},16777:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(60919);t.array=n;const i=r(35525);t.errno=i;const A=r(62524);t.fs=A;const o=r(71462);t.path=o;const s=r(14659);t.pattern=s;const a=r(2042);t.stream=a;const c=r(10217);t.string=c},71462:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;t.unixify=function(e){return e.replace(/\\/g,"/")},t.makeAbsolute=function(e,t){return n.resolve(e,t)},t.escape=function(e){return e.replace(i,"\\$2")},t.removeLeadingDotSegment=function(e){if("."===e.charAt(0)){const t=e.charAt(1);if("/"===t||"\\"===t)return e.slice(2)}return e}},14659:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(97098),A=r(2401),o=r(54722),s=/[*?]|^!/,a=/\[.*]/,c=/(?:^|[^!*+?@])\(.*\|.*\)/,g=/[!*+?@]\(.*\)/,l=/{.*(?:,|\.\.).*}/;function u(e,t={}){return!h(e,t)}function h(e,t={}){return!(!1!==t.caseSensitiveMatch&&!e.includes("\\"))||(!!(s.test(e)||a.test(e)||c.test(e))||(!(!1===t.extglob||!g.test(e))||!(!1===t.braceExpansion||!l.test(e))))}function p(e){return e.startsWith("!")&&"("!==e[1]}function f(e){return!p(e)}function d(e){return e.endsWith("/**")}function C(e){return A.braces(e,{expand:!0,nodupes:!0})}function I(e,t){return A.makeRe(e,t)}t.isStaticPattern=u,t.isDynamicPattern=h,t.convertToPositivePattern=function(e){return p(e)?e.slice(1):e},t.convertToNegativePattern=function(e){return"!"+e},t.isNegativePattern=p,t.isPositivePattern=f,t.getNegativePatterns=function(e){return e.filter(p)},t.getPositivePatterns=function(e){return e.filter(f)},t.getBaseDirectory=function(e){return i(e,{flipBackslashes:!1})},t.hasGlobStar=function(e){return e.includes("**")},t.endsWithSlashGlobStar=d,t.isAffectDepthOfReadingPattern=function(e){const t=n.basename(e);return d(e)||u(t)},t.expandPatternsWithBraceExpansion=function(e){return e.reduce((e,t)=>e.concat(C(t)),[])},t.expandBraceExpansion=C,t.getPatternParts=function(e,t){const r=o.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return 0===r.parts.length?[e]:r.parts},t.makeRe=I,t.convertPatternsToRe=function(e,t){return e.map(e=>I(e,t))},t.matchAny=function(e,t){return t.some(t=>t.test(e))}},2042:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(55598);function i(e){e.forEach(e=>e.emit("close"))}t.merge=function(e){const t=n(e);return e.forEach(e=>{e.once("error",e=>t.emit("error",e))}),t.once("close",()=>i(e)),t.once("end",()=>i(e)),t}},10217:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isString=function(e){return"string"==typeof e},t.isEmpty=function(e){return""===e}},98360:(e,t,r)=>{"use strict";var n=r(2383);function i(){}function A(){this.value=null,this.callback=i,this.next=null,this.release=i,this.context=null;var e=this;this.worked=function(t,r){var n=e.callback;e.value=null,e.callback=i,n.call(e.context,t,r),e.release(e)}}e.exports=function(e,t,r){"function"==typeof e&&(r=t,t=e,e=null);var o=n(A),s=null,a=null,c=0,g={push:function(r,n){var A=o.get();A.context=e,A.release=l,A.value=r,A.callback=n||i,c===g.concurrency||g.paused?a?(a.next=A,a=A):(s=A,a=A,g.saturated()):(c++,t.call(e,A.value,A.worked))},drain:i,saturated:i,pause:function(){g.paused=!0},paused:!1,concurrency:r,running:function(){return c},resume:function(){if(!g.paused)return;g.paused=!1;for(var e=0;e{"use strict";class n{constructor(e,t,r){this.__specs=e||{},Object.keys(this.__specs).forEach(e=>{if("string"==typeof this.__specs[e]){const t=this.__specs[e],r=this.__specs[t];if(!r)throw new Error(`Alias refers to invalid key: ${t} -> ${e}`);{const n=r.aliases||[];n.push(e,t),r.aliases=[...new Set(n)],this.__specs[e]=r}}}),this.__opts=t||{},this.__providers=s(r.filter(e=>null!=e&&"object"==typeof e)),this.__isFiggyPudding=!0}get(e){return i(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[r,n]of this.entries())e.call(t,n,r,this)}toJSON(){const e={};return this.forEach((t,r)=>{e[r]=t}),e}*entries(e){for(let e of Object.keys(this.__specs))yield[e,this.get(e)];const t=e||this.__opts.other;if(t){const e=new Set;for(let r of this.__providers){const n=r.entries?r.entries(t):a(r);for(let[r,i]of n)t(r)&&!e.has(r)&&(e.add(r),yield[r,i])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new n(this.__specs,this.__opts,s(this.__providers).concat(e)),o)}}try{const e=r(31669);n.prototype[e.inspect.custom]=function(t,r){return this[Symbol.toStringTag]+" "+e.inspect(this.toJSON(),r)}}catch(e){}function i(e,t,r){let n=e.__specs[t];if(!r||n||e.__opts.other&&e.__opts.other(t)){let r;n||(n={});for(let i of e.__providers){if(r=A(t,i),void 0===r&&n.aliases&&n.aliases.length)for(let e of n.aliases)if(e!==t&&(r=A(e,i),void 0!==r))break;if(void 0!==r)break}return void 0===r&&void 0!==n.default?"function"==typeof n.default?n.default(e):n.default:r}!function(e){throw Object.assign(new Error("invalid config key requested: "+e),{code:"EBADKEY"})}(t)}function A(e,t){let r;return r=t.__isFiggyPudding?i(t,e,!1):"function"==typeof t.get?t.get(e):t[e],r}const o={has:(e,t)=>t in e.__specs&&void 0!==i(e,t,!1),ownKeys:e=>Object.keys(e.__specs),get:(e,t)=>"symbol"==typeof t||"__"===t.slice(0,2)||t in n.prototype?e[t]:e.get(t),set(e,t,r){if("symbol"==typeof t||"__"===t.slice(0,2))return e[t]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};function s(e){const t=[];return e.forEach(e=>t.unshift(e)),t}function a(e){return Object.keys(e).map(t=>[t,e[t]])}e.exports=function(e,t){return function(...r){return new Proxy(new n(e,t,r),o)}}},52169:(e,t,r)=>{"use strict"; -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */const n=r(31669),i=r(84615),A=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),o=e=>"number"==typeof e||"string"==typeof e&&""!==e,s=e=>Number.isInteger(+e),a=e=>{let t=""+e,r=-1;if("-"===t[0]&&(t=t.slice(1)),"0"===t)return!1;for(;"0"===t[++r];);return r>0},c=(e,t,r)=>{if(t>0){let r="-"===e[0]?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return!1===r?String(e):e},g=(e,t)=>{let r="-"===e[0]?"-":"";for(r&&(e=e.slice(1),t--);e.length{if(r)return i(e,t,{wrap:!1,...n});let A=String.fromCharCode(e);return e===t?A:`[${A}-${String.fromCharCode(t)}]`},u=(e,t,r)=>{if(Array.isArray(e)){let t=!0===r.wrap,n=r.capture?"":"?:";return t?`(${n}${e.join("|")})`:e.join("|")}return i(e,t,r)},h=(...e)=>new RangeError("Invalid range arguments: "+n.inspect(...e)),p=(e,t,r)=>{if(!0===r.strictRanges)throw h([e,t]);return[]},f=(e,t,r=1,n={})=>{let i=Number(e),A=Number(t);if(!Number.isInteger(i)||!Number.isInteger(A)){if(!0===n.strictRanges)throw h([e,t]);return[]}0===i&&(i=0),0===A&&(A=0);let o=i>A,s=String(e),p=String(t),f=String(r);r=Math.max(Math.abs(r),1);let d=a(s)||a(p)||a(f),C=d?Math.max(s.length,p.length,f.length):0,I=!1===d&&!1===((e,t,r)=>"string"==typeof e||"string"==typeof t||!0===r.stringify)(e,t,n),E=n.transform||(e=>t=>!0===e?Number(t):String(t))(I);if(n.toRegex&&1===r)return l(g(e,C),g(t,C),!0,n);let m={negatives:[],positives:[]},B=[],y=0;for(;o?i>=A:i<=A;)!0===n.toRegex&&r>1?m[(w=i)<0?"negatives":"positives"].push(Math.abs(w)):B.push(c(E(i,y),C,I)),i=o?i-r:i+r,y++;var w;return!0===n.toRegex?r>1?((e,t)=>{e.negatives.sort((e,t)=>et?1:0),e.positives.sort((e,t)=>et?1:0);let r,n=t.capture?"":"?:",i="",A="";return e.positives.length&&(i=e.positives.join("|")),e.negatives.length&&(A=`-(${n}${e.negatives.join("|")})`),r=i&&A?`${i}|${A}`:i||A,t.wrap?`(${n}${r})`:r})(m,n):u(B,null,{wrap:!1,...n}):B},d=(e,t,r,n={})=>{if(null==t&&o(e))return[e];if(!o(e)||!o(t))return p(e,t,n);if("function"==typeof r)return d(e,t,1,{transform:r});if(A(r))return d(e,t,0,r);let i={...n};return!0===i.capture&&(i.wrap=!0),r=r||i.step||1,s(r)?s(e)&&s(t)?f(e,t,r,i):((e,t,r=1,n={})=>{if(!s(e)&&e.length>1||!s(t)&&t.length>1)return p(e,t,n);let i=n.transform||(e=>String.fromCharCode(e)),A=(""+e).charCodeAt(0),o=(""+t).charCodeAt(0),a=A>o,c=Math.min(A,o),g=Math.max(A,o);if(n.toRegex&&1===r)return l(c,g,!1,n);let h=[],f=0;for(;a?A>=o:A<=o;)h.push(i(A,f)),A=a?A-r:A+r,f++;return!0===n.toRegex?u(h,null,{wrap:!1,options:n}):h})(e,t,Math.max(Math.abs(r),1),i):null==r||A(r)?d(e,t,1,r):((e,t)=>{if(!0===t.strictRanges)throw new TypeError(`Expected step "${e}" to be a number`);return[]})(r,i)};e.exports=d},50683:e=>{e.exports=function(e){return[...e].reduce((e,[t,r])=>(e[t]=r,e),{})}},13302:(e,t,r)=>{e.exports=r(35747).constants||r(27619)},72137:(e,t,r)=>{"use strict";const{PassThrough:n}=r(92413);e.exports=e=>{e={...e};const{array:t}=e;let{encoding:r}=e;const i="buffer"===r;let A=!1;t?A=!(r||i):r=r||"utf8",i&&(r=null);const o=new n({objectMode:A});r&&o.setEncoding(r);let s=0;const a=[];return o.on("data",e=>{a.push(e),A?s=a.length:s+=e.length}),o.getBufferedValue=()=>t?a:i?Buffer.concat(a,s):a.join(""),o.getBufferedLength=()=>s,o}},58764:(e,t,r)=>{"use strict";const n=r(50372),i=r(72137);class A extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}async function o(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:r}=t;let o;return await new Promise((s,a)=>{const c=e=>{e&&(e.bufferedData=o.getBufferedValue()),a(e)};o=n(e,i(t),e=>{e?c(e):s()}),o.on("data",()=>{o.getBufferedLength()>r&&c(new A)})}),o.getBufferedValue()}e.exports=o,e.exports.default=o,e.exports.buffer=(e,t)=>o(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>o(e,{...t,array:!0}),e.exports.MaxBufferError=A},97098:(e,t,r)=>{"use strict";var n=r(18193),i=r(85622).posix.dirname,A="win32"===r(12087).platform(),o=/\\/g,s=/[\{\[].*[\/]*.*[\}\]]$/,a=/(^|[^\\])([\{\[]|\([^\)]+$)/,c=/\\([\*\?\|\[\]\(\)\{\}])/g;e.exports=function(e,t){Object.assign({flipBackslashes:!0},t).flipBackslashes&&A&&e.indexOf("/")<0&&(e=e.replace(o,"/")),s.test(e)&&(e+="/"),e+="a";do{e=i(e)}while(n(e)||a.test(e));return e.replace(c,"$1")}},90734:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747),A=r(85622),o=r(19347),s=r(46458),a=r(17234),c=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],g=n(i.readFile),l=(e,t)=>{const r=a(A.relative(t.cwd,A.dirname(t.fileName)));return e.split(/\r?\n/).filter(Boolean).filter(e=>!e.startsWith("#")).map((e=>t=>t.startsWith("!")?"!"+A.posix.join(e,t.slice(1)):A.posix.join(e,t))(r))},u=e=>e.reduce((e,t)=>(e.add(l(t.content,{cwd:t.cwd,fileName:t.filePath})),e),s()),h=(e,t)=>r=>e.ignores(a(A.relative(t,((e,t)=>{if(e=a(e),A.isAbsolute(t)){if(t.startsWith(e))return t;throw new Error(`Path ${t} is not in cwd ${e}`)}return A.join(e,t)})(t,r)))),p=({ignore:e=[],cwd:t=a(process.cwd())}={})=>({ignore:e,cwd:t});e.exports=async e=>{e=p(e);const t=await o("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}),r=await Promise.all(t.map(t=>(async(e,t)=>{const r=A.join(t,e);return{cwd:t,filePath:r,content:await g(r,"utf8")}})(t,e.cwd))),n=u(r);return h(n,e.cwd)},e.exports.sync=e=>{e=p(e);const t=o.sync("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}).map(t=>((e,t)=>{const r=A.join(t,e);return{cwd:t,filePath:r,content:i.readFileSync(r,"utf8")}})(t,e.cwd)),r=u(t);return h(r,e.cwd)}},58592:(e,t,r)=>{"use strict";const n=r(35747),i=r(39920),A=r(55598),o=r(19347),s=r(66241),a=r(90734),{FilterStream:c,UniqueStream:g}=r(66160),l=()=>!1,u=e=>"!"===e[0],h=(e,t)=>{(e=>{if(!e.every(e=>"string"==typeof e))throw new TypeError("Patterns must be a string or an array of strings")})(e=i([].concat(e))),((e={})=>{if(!e.cwd)return;let t;try{t=n.statSync(e.cwd)}catch(e){return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")})(t);const r=[];t={ignore:[],expandDirectories:!0,...t};for(const[n,i]of e.entries()){if(u(i))continue;const A=e.slice(n).filter(u).map(e=>e.slice(1)),o={...t,ignore:t.ignore.concat(A)};r.push({pattern:i,options:o})}return r},p=(e,t)=>e.options.expandDirectories?((e,t)=>{let r={};return e.options.cwd&&(r.cwd=e.options.cwd),Array.isArray(e.options.expandDirectories)?r={...r,files:e.options.expandDirectories}:"object"==typeof e.options.expandDirectories&&(r={...r,...e.options.expandDirectories}),t(e.pattern,r)})(e,t):[e.pattern],f=e=>e&&e.gitignore?a.sync({cwd:e.cwd,ignore:e.ignore}):l,d=e=>t=>{const{options:r}=e;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=s.sync(r.ignore)),{pattern:t,options:r}};e.exports=async(e,t)=>{const r=h(e,t),[A,c]=await Promise.all([(async()=>t&&t.gitignore?a({cwd:t.cwd,ignore:t.ignore}):l)(),(async()=>{const e=await Promise.all(r.map(async e=>{const t=await p(e,s);return Promise.all(t.map(d(e)))}));return i(...e)})()]),g=await Promise.all(c.map(e=>o(e.pattern,e.options)));return i(...g).filter(e=>{return!A((t=e,t.stats instanceof n.Stats?t.path:t));var t})},e.exports.sync=(e,t)=>{const r=h(e,t).reduce((e,t)=>{const r=p(t,s.sync).map(d(t));return e.concat(r)},[]),n=f(t);return r.reduce((e,t)=>i(e,o.sync(t.pattern,t.options)),[]).filter(e=>!n(e))},e.exports.stream=(e,t)=>{const r=h(e,t).reduce((e,t)=>{const r=p(t,s.sync).map(d(t));return e.concat(r)},[]),n=f(t),i=new c(e=>!n(e)),a=new g;return A(r.map(e=>o.stream(e.pattern,e.options))).pipe(i).pipe(a)},e.exports.generateGlobTasks=h,e.exports.hasMagic=(e,t)=>[].concat(e).some(e=>o.isDynamicPattern(e,t)),e.exports.gitignore=a},66160:(e,t,r)=>{"use strict";const{Transform:n}=r(92413);class i extends n{constructor(){super({objectMode:!0})}}e.exports={FilterStream:class extends i{constructor(e){super(),this._filter=e}_transform(e,t,r){this._filter(e)&&this.push(e),r()}},UniqueStream:class extends i{constructor(){super(),this._pushed=new Set}_transform(e,t,r){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),r()}}}},67078:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143),i=new Set([413,429,503]),A=e=>e instanceof n.HTTPError||e instanceof n.ParseError||e instanceof n.MaxRedirectsError;t.default=({attemptCount:e,retryOptions:t,error:r})=>{if(e>t.limit)return 0;const n=t.methods.includes(r.options.method),o=t.errorCodes.includes(r.code),s=A(r)&&t.statusCodes.includes(r.response.statusCode);if(!n||!o&&!s)return 0;if(A(r)){const{response:e}=r;if(e&&"retry-after"in e.headers&&i.has(e.statusCode)){let r=Number(e.headers["retry-after"]);return Number.isNaN(r)?r=Date.parse(e.headers["retry-after"])-Date.now():r*=1e3,void 0===t.maxRetryAfter||r>t.maxRetryAfter?0:r}if(413===e.statusCode)return 0}return 2**(e-1)*1e3+100*Math.random()}},39560:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189),i=r(27143),A=r(8859);A.knownHookEvents.includes("beforeRetry")||A.knownHookEvents.push("beforeRetry","afterResponse"),t.knownBodyTypes=["json","buffer","text"],t.parseBody=(e,t,r)=>{const{rawBody:n}=e;try{if("text"===t)return n.toString(r);if("json"===t)return 0===n.length?"":JSON.parse(n.toString());if("buffer"===t)return Buffer.from(n);throw new i.ParseError({message:`Unknown body type '${t}'`,name:"Error"},e)}catch(t){throw new i.ParseError(t,e)}};class o extends A.default{static normalizeArguments(e,t,r){const i=super.normalizeArguments(e,t,r);if(n.default.null_(i.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");n.assert.any([n.default.string,n.default.undefined],i.encoding),n.assert.any([n.default.boolean,n.default.undefined],i.resolveBodyOnly),n.assert.any([n.default.boolean,n.default.undefined],i.methodRewriting),n.assert.any([n.default.boolean,n.default.undefined],i.isStream);const{retry:A}=i;if(i.retry=r?{...r.retry}:{calculateDelay:e=>e.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},n.default.object(A)?(i.retry={...i.retry,...A},i.retry.methods=[...new Set(i.retry.methods.map(e=>e.toUpperCase()))],i.retry.statusCodes=[...new Set(i.retry.statusCodes)],i.retry.errorCodes=[...new Set(i.retry.errorCodes)]):n.default.number(A)&&(i.retry.limit=A),n.default.undefined(i.retry.maxRetryAfter)&&(i.retry.maxRetryAfter=Math.min(...[i.timeout.request,i.timeout.connect].filter(n.default.number))),n.default.object(i.pagination)){r&&(i.pagination={...r.pagination,...i.pagination});const{pagination:e}=i;if(!n.default.function_(e.transform))throw new Error("`options.pagination.transform` must be implemented");if(!n.default.function_(e.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!n.default.function_(e.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!n.default.function_(e.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return"json"===i.responseType&&void 0===i.headers.accept&&(i.headers.accept="application/json"),i}static mergeOptions(...e){let t;for(const r of e)t=o.normalizeArguments(void 0,r,t);return t}async _beforeError(e){e instanceof A.RequestError||(e=new A.RequestError(e.message,e,this)),this.emit("error",e)}}t.default=o},57019:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143);t.default=function(e,...t){const r=(async()=>{if(e instanceof n.RequestError)try{for(const r of t)if(r)for(const t of r)e=await t(e)}catch(t){e=t}throw e})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}},74850:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(58764),A=r(59351),o=r(67078),s=r(27143),a=r(39560);t.PromisableRequest=a.default;const c=r(63227),g=["request","response","redirect","uploadProgress","downloadProgress"];t.default=function e(t){let r,l,u=0;const h=new n.EventEmitter,p=new A((n,A,f)=>{const d=()=>{const{throwHttpErrors:C}=t;C||(t.throwHttpErrors=!0);const I=new a.default(t.url,t);I._noPipe=!0,f(()=>I.destroy());const E=async e=>{try{for(const r of t.hooks.beforeError)e=await r(e)}catch(e){return void A(new s.RequestError(e.message,e,I))}A(e)};r=I,I.once("response",async r=>{if(r.retryCount=u,r.request.aborted)return;const A=()=>{const{statusCode:e}=r,n=t.followRedirect?299:399;return e>=200&&e<=n||304===e};let o;try{o=await i.buffer(I),r.rawBody=o}catch(e){return}try{r.body=a.parseBody(r,t.responseType,t.encoding)}catch(e){if(r.body=o.toString(),A())return void E(e)}try{for(const[n,i]of t.hooks.afterResponse.entries())r=await i(r,async r=>{const i=a.default.normalizeArguments(void 0,{...r,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},t);i.hooks.afterResponse=i.hooks.afterResponse.slice(0,n);for(const e of i.hooks.beforeRetry)await e(i);const A=e(i);return f(()=>{A.catch(()=>{}),A.cancel()}),A})}catch(e){return void E(new s.RequestError(e.message,e,I))}!C||A()?(l=r,n(t.resolveBodyOnly?r.body:r)):E(new s.HTTPError(r))}),I.once("error",e=>{if(p.isCanceled)return;if(!I.options)return void E(e);let r;u++;try{r=t.retry.calculateDelay({attemptCount:u,retryOptions:t.retry,error:e,computedValue:o.default({attemptCount:u,retryOptions:t.retry,error:e,computedValue:0})})}catch(t){return I.destroy(),void E(new s.RequestError(t.message,e,I))}if(r){I.destroy();setTimeout(async()=>{t.throwHttpErrors=C;try{for(const r of t.hooks.beforeRetry)await r(t,e,u)}catch(t){return I.destroy(),void E(new s.RequestError(t.message,e,I))}d()},r)}else u--,e instanceof s.HTTPError||(I.destroy(),E(e))}),c.default(I,h,g)};d()});p.on=(e,t)=>(h.on(e,t),p);const f=e=>{const r=(async()=>(await p,a.parseBody(l,e,t.encoding)))();return Object.defineProperties(r,Object.getOwnPropertyDescriptors(p)),r};return p.json=()=>(r.writableFinished||void 0!==t.headers.accept||(t.headers.accept="application/json"),f("json")),p.buffer=()=>f("buffer"),p.text=()=>f("text"),p},function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(27143))},27143:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351);t.CancelError=n.CancelError;const i=r(8859);t.RequestError=i.RequestError,t.MaxRedirectsError=i.MaxRedirectsError,t.CacheError=i.CacheError,t.UploadError=i.UploadError,t.TimeoutError=i.TimeoutError,t.HTTPError=i.HTTPError,t.ReadError=i.ReadError,t.UnsupportedProtocolError=i.UnsupportedProtocolError;class A extends i.RequestError{constructor(e,t){const{options:r}=t.request;super(`${e.message} in "${r.url.toString()}"`,e,t.request),this.name="ParseError",Object.defineProperty(this,"response",{enumerable:!1,value:t})}}t.ParseError=A},8859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31669),i=r(92413),A=r(35747),o=r(78835),s=r(98605),a=r(98605),c=r(57211),g=r(98298),l=r(53832),u=r(43261),h=r(11200),p=r(9453),f=r(55737),d=r(58764),C=r(8189),I=r(96596),E=r(35637),m=r(63227),B=r(32449),y=r(13656),w=r(80972),Q=r(30291),v=Symbol("request"),b=Symbol("response"),D=Symbol("responseSize"),S=Symbol("downloadedSize"),k=Symbol("bodySize"),M=Symbol("uploadedSize"),N=Symbol("serverResponsesPiped"),F=Symbol("unproxyEvents"),R=Symbol("isFromCache"),K=Symbol("cancelTimeouts"),L=Symbol("startedReading"),x=Symbol("stopReading"),P=Symbol("triggerRead"),U=Symbol("body"),T=Symbol("jobs"),O=Symbol("originalResponse");t.kIsNormalizedAlready=Symbol("isNormalizedAlready");const Y=C.default.string(process.versions.brotli);t.withoutBody=new Set(["GET","HEAD"]),t.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError"];const j=new Q.default,G=new Set([300,301,302,303,304,307,308]),H=["context","body","json","form"];class J extends Error{constructor(e,t,r){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,r instanceof ee?(Object.defineProperty(this,"request",{enumerable:!1,value:r}),Object.defineProperty(this,"response",{enumerable:!1,value:r[b]}),Object.defineProperty(this,"options",{enumerable:!1,value:r.options})):Object.defineProperty(this,"options",{enumerable:!1,value:r}),this.timings=null===(n=this.request)||void 0===n?void 0:n.timings,!C.default.undefined(t.stack)){const e=this.stack.indexOf(this.message)+this.message.length,r=this.stack.slice(e).split("\n").reverse(),n=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split("\n").reverse();for(;0!==n.length&&n[0]===r[0];)r.shift();this.stack=`${this.stack.slice(0,e)}${r.reverse().join("\n")}${n.reverse().join("\n")}`}}}t.RequestError=J;class _ extends J{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}}t.MaxRedirectsError=_;class q extends J{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}}t.HTTPError=q;class z extends J{constructor(e,t){super(e.message,e,t),this.name="CacheError"}}t.CacheError=z;class W extends J{constructor(e,t){super(e.message,e,t),this.name="UploadError"}}t.UploadError=W;class V extends J{constructor(e,t,r){super(e.message,e,r),this.name="TimeoutError",this.event=e.event,this.timings=t}}t.TimeoutError=V;class X extends J{constructor(e,t){super(e.message,e,t),this.name="ReadError"}}t.ReadError=X;class Z extends J{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}}t.UnsupportedProtocolError=Z;const $=["socket","connect","continue","information","upgrade","timeout"];class ee extends i.Duplex{constructor(e,r={},n){super({highWaterMark:0}),this[S]=0,this[M]=0,this.requestInitialized=!1,this[N]=new Set,this.redirects=[],this[x]=!1,this[P]=!1,this[T]=[],this._progressCallbacks=[];const i=()=>this._unlockWrite(),o=()=>this._lockWrite();this.on("pipe",e=>{e.prependListener("data",i),e.on("data",o),e.prependListener("end",i),e.on("end",o)}),this.on("unpipe",e=>{e.off("data",i),e.off("data",o),e.off("end",i),e.off("end",o)}),this.on("pipe",e=>{e instanceof a.IncomingMessage&&(this.options.headers={...e.headers,...this.options.headers})});const{json:s,body:c,form:g}=r;(s||c||g)&&this._lockWrite(),(async r=>{var i;try{r.body instanceof A.ReadStream&&await(async e=>new Promise((t,r)=>{const n=e=>{r(e)};e.once("error",n),e.once("open",()=>{e.off("error",n),t()})}))(r.body),t.kIsNormalizedAlready in r?this.options=r:this.options=this.constructor.normalizeArguments(e,r,n);const{url:o}=this.options;if(!o)throw new TypeError("Missing `url` property");if(this.requestUrl=o.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed)return void(null===(i=this[v])||void 0===i||i.destroy());for(const e of this[T])e();this.requestInitialized=!0}catch(e){if(e instanceof J)return void this._beforeError(e);this.destroyed||this.destroy(e)}})(r)}static normalizeArguments(e,r,i){var A,s,a,c;const g=r;if(C.default.object(e)&&!C.default.urlInstance(e))r={...i,...e,...r};else{if(e&&r&&r.url)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...i,...r},e&&(r.url=e),C.default.urlInstance(r.url)&&(r.url=new o.URL(r.url.toString()))}if(!1===r.cache&&(r.cache=void 0),!1===r.dnsCache&&(r.dnsCache=void 0),C.assert.any([C.default.string,C.default.undefined],r.method),C.assert.any([C.default.object,C.default.undefined],r.headers),C.assert.any([C.default.string,C.default.urlInstance,C.default.undefined],r.prefixUrl),C.assert.any([C.default.object,C.default.undefined],r.cookieJar),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.searchParams),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.cache),C.assert.any([C.default.object,C.default.number,C.default.undefined],r.timeout),C.assert.any([C.default.object,C.default.undefined],r.context),C.assert.any([C.default.object,C.default.undefined],r.hooks),C.assert.any([C.default.boolean,C.default.undefined],r.decompress),C.assert.any([C.default.boolean,C.default.undefined],r.ignoreInvalidCookies),C.assert.any([C.default.boolean,C.default.undefined],r.followRedirect),C.assert.any([C.default.number,C.default.undefined],r.maxRedirects),C.assert.any([C.default.boolean,C.default.undefined],r.throwHttpErrors),C.assert.any([C.default.boolean,C.default.undefined],r.http2),C.assert.any([C.default.boolean,C.default.undefined],r.allowGetBody),C.assert.any([C.default.boolean,C.default.undefined],r.rejectUnauthorized),C.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(null==i?void 0:i.headers)?r.headers={...r.headers}:r.headers=f({...null==i?void 0:i.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(null==i?void 0:i.searchParams)){C.default.string(r.searchParams)||r.searchParams instanceof o.URLSearchParams||function(e){for(const t in e){const r=e[t];if(!(C.default.string(r)||C.default.number(r)||C.default.boolean(r)||C.default.null_(r)))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}(r.searchParams);const e=new o.URLSearchParams(r.searchParams);null===(A=null==i?void 0:i.searchParams)||void 0===A||A.forEach((t,r)=>{e.has(r)||e.append(r,t)}),r.searchParams=e}if(r.username=null!==(s=r.username)&&void 0!==s?s:"",r.password=null!==(a=r.password)&&void 0!==a?a:"",r.prefixUrl?(r.prefixUrl=r.prefixUrl.toString(),""===r.prefixUrl||r.prefixUrl.endsWith("/")||(r.prefixUrl+="/")):r.prefixUrl="",C.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=w.default(r.prefixUrl+r.url,r)}else(C.default.undefined(r.url)&&""!==r.prefixUrl||r.protocol)&&(r.url=w.default(r.prefixUrl,r));if(r.url){let{prefixUrl:e}=r;Object.defineProperty(r,"prefixUrl",{set:t=>{const n=r.url;if(!n.href.startsWith(t))throw new Error(`Cannot change \`prefixUrl\` from ${e} to ${t}: ${n.href}`);r.url=new o.URL(t+n.href.slice(e.length)),e=t},get:()=>e});let{protocol:t}=r.url;if("unix:"===t&&(t="http:",r.url=new o.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),r.url.search){const e="_GOT_INTERNAL_TRIGGER_NORMALIZATION";r.url.searchParams.append(e,""),r.url.searchParams.delete(e)}if("http:"!==t&&"https:"!==t)throw new Z(r);""===r.username?r.username=r.url.username:r.url.username=r.username,""===r.password?r.password=r.url.password:r.url.password=r.password}const{cookieJar:l}=r;if(l){let{setCookie:e,getCookieString:t}=l;C.assert.function_(e),C.assert.function_(t),4===e.length&&0===t.length&&(e=n.promisify(e.bind(r.cookieJar)),t=n.promisify(t.bind(r.cookieJar)),r.cookieJar={setCookie:e,getCookieString:t})}const{cache:p}=r;if(p&&(j.has(p)||j.set(p,new h((e,t)=>e[v](e,t),p))),!0===r.dnsCache)r.dnsCache=new u.default;else if(!(C.default.undefined(r.dnsCache)||r.dnsCache instanceof u.default))throw new TypeError("Parameter `dnsCache` must be a CacheableLookup instance or a boolean, got "+C.default(r.dnsCache));C.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout={...i.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});const d=r.hooks===(null==i?void 0:i.hooks);r.hooks={...r.hooks};for(const e of t.knownHookEvents)if(e in r.hooks){if(!C.default.array(r.hooks[e]))throw new TypeError(`Parameter \`${e}\` must be an Array, got ${C.default(r.hooks[e])}`);r.hooks[e]=[...r.hooks[e]]}else r.hooks[e]=[];if(i&&!d)for(const e of t.knownHookEvents){0!==i.hooks[e].length&&(r.hooks[e]=[...i.hooks[e],...r.hooks[e]])}if("followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent)for(const e in r.agent)if("http"!==e&&"https"!==e&&"http2"!==e)throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${e}\``);return r.maxRedirects=null!==(c=r.maxRedirects)&&void 0!==c?c:0,((e,t)=>{const r={};for(const t of e)if(t)for(const e of H)e in t&&(r[e]={writable:!0,configurable:!0,enumerable:!1,value:t[e]});Object.defineProperties(t,r)})([i,g],r),r}_lockWrite(){const e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){const{options:e}=this,{headers:r}=e,n=!C.default.undefined(e.form),A=!C.default.undefined(e.json),s=!C.default.undefined(e.body),a=n||A||s,c=t.withoutBody.has(e.method)&&!("GET"===e.method&&e.allowGetBody);if(this._cannotHaveBody=c,a){if(c)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,n,A].filter(e=>e).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof i.Readable)&&!C.default.string(e.body)&&!C.default.buffer(e.body)&&!E.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(n&&!C.default.object(e.form))throw new TypeError("The `form` option must be an Object");{const t=!C.default.string(r["content-type"]);s?(E.default(e.body)&&t&&(r["content-type"]="multipart/form-data; boundary="+e.body.getBoundary()),this[U]=e.body):n?(t&&(r["content-type"]="application/x-www-form-urlencoded"),this[U]=new o.URLSearchParams(e.form).toString()):(t&&(r["content-type"]="application/json"),this[U]=JSON.stringify(e.json));const i=await I.default(this[U],e.headers);C.default.undefined(r["content-length"])&&C.default.undefined(r["transfer-encoding"])&&(c||C.default.undefined(i)||(r["content-length"]=String(i)))}}else c?this._lockWrite():this._unlockWrite();this[k]=Number(r["content-length"])||void 0}async _onResponse(e){const{options:t}=this,{url:r}=t;this[O]=e,t.decompress&&(e=l(e));const n=e.statusCode,i=e;i.statusMessage=i.statusMessage?i.statusMessage:s.STATUS_CODES[n],i.url=t.url.toString(),i.requestUrl=this.requestUrl,i.redirectUrls=this.redirects,i.request=this,i.isFromCache=e.fromCache||!1,i.ip=this.ip,this[R]=i.isFromCache,this[D]=Number(e.headers["content-length"])||void 0,this[b]=e,e.once("end",()=>{this[D]=this[S],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",t=>{e.destroy(),this._beforeError(new X(t,this))}),e.once("aborted",()=>{this.aborted||this._beforeError(new X({name:"Error",message:"The server aborted the pending request"},this))}),this.emit("downloadProgress",this.downloadProgress);const A=e.headers["set-cookie"];if(C.default.object(t.cookieJar)&&A){let e=A.map(async e=>t.cookieJar.setCookie(e,r.toString()));t.ignoreInvalidCookies&&(e=e.map(async e=>e.catch(()=>{})));try{await Promise.all(e)}catch(e){return void this._beforeError(e)}}if(t.followRedirect&&e.headers.location&&G.has(n)){e.resume(),this[v]&&(this[K](),delete this[v],this[F]());if(!(303===n&&"GET"!==t.method&&"HEAD"!==t.method)&&t.methodRewriting||(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form),this.redirects.length>=t.maxRedirects)return void this._beforeError(new _(this));try{const n=Buffer.from(e.headers.location,"binary").toString(),A=new o.URL(n,r),s=A.toString();decodeURI(s),A.hostname!==r.hostname&&("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(delete t.username,delete t.password)),this.redirects.push(s),t.url=A;for(const e of t.hooks.beforeRedirect)await e(t,i);this.emit("redirect",i,t),await this._makeRequest()}catch(e){return void this._beforeError(e)}return}const a=t.followRedirect?299:399,c=n>=200&&n<=a||304===n;if(!t.throwHttpErrors||c||(await this._beforeError(new q(i)),!this.destroyed)){e.on("readable",()=>{this[P]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(const r of this[N])if(!r.headersSent){for(const n in e.headers){const i=!t.decompress||"content-encoding"!==n,A=e.headers[n];i&&r.setHeader(n,A)}r.statusCode=n}}}_onRequest(e){const{options:t}=this,{timeout:r,url:n}=t;g.default(e),this[K]=B.default(e,r,n);const i=t.cache?"cacheableResponse":"response";e.once(i,e=>{this._onResponse(e)}),e.once("error",t=>{e.destroy(),t=t instanceof B.TimeoutError?new V(t,this.timings,this):new J(t.message,t,this),this._beforeError(t)}),this[F]=m.default(e,this,$),this[v]=e,this.emit("uploadProgress",this.uploadProgress);const A=this[U],o=0===this.redirects.length?this:e;C.default.nodeStream(A)?(A.pipe(o),A.once("error",e=>{this._beforeError(new W(e,this))}),A.once("end",()=>{delete t.body})):(this._unlockWrite(),C.default.undefined(A)?(this._cannotHaveBody||this._noPipe)&&(o.end(),this._lockWrite()):(this._writeRequest(A,null,()=>{}),o.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((r,n)=>{Object.assign(t,y.default(e)),delete t.url;const i=j.get(t.cache)(t,e=>{const t=e,{req:n}=t;n&&n.emit("cacheableResponse",t),r(t)});t.url=e,i.once("error",n),i.once("request",r)})}async _makeRequest(){var e;const{options:t}=this,{url:r,headers:n,request:i,agent:A,timeout:o}=t;for(const e in n)if(C.default.undefined(n[e]))delete n[e];else if(C.default.null_(n[e]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${e}\` header`);if(t.decompress&&C.default.undefined(n["accept-encoding"])&&(n["accept-encoding"]=Y?"gzip, deflate, br":"gzip, deflate"),t.cookieJar){const e=await t.cookieJar.getCookieString(t.url.toString());C.default.nonEmptyString(e)&&(t.headers.cookie=e)}for(const e of t.hooks.beforeRequest){const r=await e(t);if(!C.default.undefined(r)){t.request=()=>r;break}}if(t.dnsCache&&!("lookup"in t)&&(t.lookup=t.dnsCache.lookup),"unix"===r.hostname){const e=/(?.+?):(?.+)/.exec(`${r.pathname}${r.search}`);if(null==e?void 0:e.groups){const{socketPath:r,path:n}=e.groups;Object.assign(t,{socketPath:r,path:n,host:""})}}const a="https:"===r.protocol;let g;g=t.http2?p.auto:a?c.request:s.request;const l=null!==(e=t.request)&&void 0!==e?e:g,u=t.cache?this._createCacheableRequest:l;A&&!t.http2&&(t.agent=A[a?"https":"http"]),t[v]=l,delete t.request,delete t.timeout;try{let e=await u(r,t);C.default.undefined(e)&&(e=g(r,t)),t.request=i,t.timeout=o,t.agent=A,f=e,C.default.object(f)&&!("statusCode"in f)?this._onRequest(e):this.writable?(this.once("finish",()=>{this._onResponse(e)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(e)}catch(e){if(e instanceof h.CacheError)throw new z(e,this);throw new J(e.message,e,this)}var f}async _beforeError(e){this[x]=!0,e instanceof J||(e=new J(e.message,e,this));try{const{response:t}=e;t&&(t.setEncoding(this._readableState.encoding),t.rawBody=await d.buffer(t),t.body=t.rawBody.toString())}catch(e){}try{for(const t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new J(t.message,t,this)}this.destroyed||this.destroy(e)}_read(){this[P]=!0;const e=this[b];if(e&&!this[x]){let t;for(e.readableLength&&(this[P]=!1);null!==(t=e.read());){this[S]+=t.length,this[L]=!0;const e=this.downloadProgress;e.percent<1&&this.emit("downloadProgress",e),this.push(t)}}}_write(e,t,r){const n=()=>{this._writeRequest(e,t,r)};this.requestInitialized?n():this[T].push(n)}_writeRequest(e,t,r){this._progressCallbacks.push(()=>{this[M]+=Buffer.byteLength(e,t);const r=this.uploadProgress;r.percent<1&&this.emit("uploadProgress",r)}),this[v].write(e,t,e=>{e||0===this._progressCallbacks.length||this._progressCallbacks.shift()(),r(e)})}_final(e){const t=()=>{for(;0!==this._progressCallbacks.length;)this._progressCallbacks.shift()();v in this?this[v].end(t=>{t||(this[k]=this[M],this.emit("uploadProgress",this.uploadProgress),this[v].emit("upload-complete")),e(t)}):e()};this.requestInitialized?t():this[T].push(t)}_destroy(e,t){var r;v in this&&(this[K](),(null===(r=this[b])||void 0===r?void 0:r.complete)||this[v].destroy()),null===e||C.default.undefined(e)||e instanceof J||(e=new J(e.message,e,this)),t(e)}get ip(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket.remoteAddress}get aborted(){var e,t,r;return(null!==(t=null===(e=this[v])||void 0===e?void 0:e.destroyed)&&void 0!==t?t:this.destroyed)&&!(null===(r=this[O])||void 0===r?void 0:r.complete)}get socket(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket}get downloadProgress(){let e;return e=this[D]?this[S]/this[D]:this[D]===this[S]?1:0,{percent:e,transferred:this[S],total:this[D]}}get uploadProgress(){let e;return e=this[k]?this[M]/this[k]:this[k]===this[M]?1:0,{percent:e,transferred:this[M],total:this[k]}}get timings(){var e;return null===(e=this[v])||void 0===e?void 0:e.timings}get isFromCache(){return this[R]}pipe(e,t){if(this[L])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof a.ServerResponse&&this[N].add(e),super.pipe(e,t)}unpipe(e){return e instanceof a.ServerResponse&&this[N].delete(e),super.unpipe(e),this}}t.default=ee},96596:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(31669),A=r(8189),o=r(35637),s=i.promisify(n.stat);t.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(A.default.string(e))return Buffer.byteLength(e);if(A.default.buffer(e))return e.length;if(o.default(e))return i.promisify(e.getLength.bind(e))();if(e instanceof n.ReadStream){const{size:t}=await s(e.path);return t}}},35637:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>n.default.nodeStream(e)&&n.default.function_(e.getBoundary)},80972:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(78835),i=["protocol","host","hostname","port","pathname","search"];t.default=(e,t)=>{var r,A;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${null!==(A=null!==(r=t.hostname)&&void 0!==r?r:t.host)&&void 0!==A?A:""}`}const o=new n.URL(e);if(t.path){const e=t.path.indexOf("?");-1===e?t.pathname=t.path:(t.pathname=t.path.slice(0,e),t.search=t.path.slice(e+1)),delete t.path}for(const e of i)t[e]&&(o[e]=t[e].toString());return o}},63227:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){const n={};for(const i of r)n[i]=(...e)=>{t.emit(i,...e)},e.on(i,n[i]);return()=>{for(const t of r)e.off(t,n[t])}}},32449:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(11631),i=r(46248),A=Symbol("reentry"),o=()=>{};class s extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}}t.TimeoutError=s,t.default=(e,t,r)=>{if(A in e)return o;e[A]=!0;const a=[],{once:c,unhandleAll:g}=i.default(),l=(e,t,r)=>{var n;const i=setTimeout(t,e,e,r);null===(n=i.unref)||void 0===n||n.call(i);const A=()=>{clearTimeout(i)};return a.push(A),A},{host:u,hostname:h}=r,p=(t,r)=>{e.destroy(new s(t,r))},f=()=>{for(const e of a)e();g()};if(e.once("error",t=>{if(f(),0===e.listenerCount("error"))throw t}),e.once("close",f),c(e,"response",e=>{c(e,"end",f)}),void 0!==t.request&&l(t.request,p,"request"),void 0!==t.socket){const r=()=>{p(t.socket,"socket")};e.setTimeout(t.socket,r),a.push(()=>{e.removeListener("timeout",r)})}return c(e,"socket",i=>{var A;const{socketPath:o}=e;if(i.connecting){const e=Boolean(null!=o?o:0!==n.isIP(null!==(A=null!=h?h:u)&&void 0!==A?A:""));if(void 0!==t.lookup&&!e&&void 0===i.address().address){const e=l(t.lookup,p,"lookup");c(i,"lookup",e)}if(void 0!==t.connect){const r=()=>l(t.connect,p,"connect");e?c(i,"connect",r()):c(i,"lookup",e=>{null===e&&c(i,"connect",r())})}void 0!==t.secureConnect&&"https:"===r.protocol&&c(i,"connect",()=>{const e=l(t.secureConnect,p,"secureConnect");c(i,"secureConnect",e)})}if(void 0!==t.send){const r=()=>l(t.send,p,"send");i.connecting?c(i,"connect",()=>{c(e,"upload-complete",r())}):c(e,"upload-complete",r())}}),void 0!==t.response&&c(e,"upload-complete",()=>{const r=l(t.response,p,"response");c(e,"response",r)}),f}},46248:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=()=>{const e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(const t of e){const{origin:e,event:r,fn:n}=t;e.removeListener(r,n)}e.length=0}}}},13656:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>{const t={protocol:(e=e).protocol,hostname:n.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return n.default.string(e.port)&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},30291:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){"object"==typeof e?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return"object"==typeof e?this.weakMap.get(e):this.map.get(e)}has(e){return"object"==typeof e?this.weakMap.has(e):this.map.has(e)}}},88190:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351),i=r(8189),A=r(74850),o=r(57019),s=r(8859),a=r(5571),c={RequestError:A.RequestError,CacheError:A.CacheError,ReadError:A.ReadError,HTTPError:A.HTTPError,MaxRedirectsError:A.MaxRedirectsError,TimeoutError:A.TimeoutError,ParseError:A.ParseError,CancelError:n.CancelError,UnsupportedProtocolError:A.UnsupportedProtocolError,UploadError:A.UploadError},{normalizeArguments:g,mergeOptions:l}=A.PromisableRequest,u=e=>e.isStream?new s.default(e.url,e):A.default(e),h=e=>"defaults"in e&&"options"in e.defaults,p=["get","post","put","patch","head","delete"];t.defaultHandler=(e,t)=>t(e);const f=(e,t)=>{if(e)for(const r of e)r(t)},d=e=>{e._rawHandlers=e.handlers,e.handlers=e.handlers.map(e=>(t,r)=>{let n;const i=e(t,e=>(n=r(e),n));if(i!==n&&!t.isStream&&n){const e=i,{then:t,catch:r,finally:A}=e;Object.setPrototypeOf(e,Object.getPrototypeOf(n)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)),e.then=t,e.catch=r,e.finally=A}return i});const r=(t,r)=>{var n,a;let c=0;const l=t=>e.handlers[c++](t,c===e.handlers.length?u:l);i.default.plainObject(t)&&(r={...t,...r},t=void 0);try{let i;try{f(e.options.hooks.init,r),f(null===(n=null==r?void 0:r.hooks)||void 0===n?void 0:n.init,r)}catch(e){i=e}const o=g(t,r,e.options);if(o[s.kIsNormalizedAlready]=!0,i)throw new A.RequestError(i.message,i,o);return l(o)}catch(t){if(null==r?void 0:r.isStream)throw t;return o.default(t,e.options.hooks.beforeError,null===(a=null==r?void 0:r.hooks)||void 0===a?void 0:a.beforeError)}};r.extend=(...r)=>{const n=[e.options];let i,A=[...e._rawHandlers];for(const e of r)h(e)?(n.push(e.defaults.options),A.push(...e.defaults._rawHandlers),i=e.defaults.mutableDefaults):(n.push(e),"handlers"in e&&A.push(...e.handlers),i=e.mutableDefaults);return A=A.filter(e=>e!==t.defaultHandler),0===A.length&&A.push(t.defaultHandler),d({options:l(...n),handlers:A,mutableDefaults:Boolean(i)})},(r.paginate=async function*(t,n){let A=g(t,n,e.options);A.resolveBodyOnly=!1;const o=A.pagination;if(!i.default.object(o))throw new TypeError("`options.pagination` must be implemented");const s=[];let{countLimit:a}=o,c=0;for(;c{const n=[];for await(const i of r.paginate(e,t))n.push(i);return n},r.stream=(e,t)=>r(e,{...t,isStream:!0});for(const e of p)r[e]=(t,n)=>r(t,{...n,method:e}),r.stream[e]=(t,n)=>r(t,{...n,method:e,isStream:!0});return Object.assign(r,{...c,mergeOptions:l}),Object.defineProperty(r,"defaults",{value:e.mutableDefaults?e:a.default(e),writable:e.mutableDefaults,configurable:e.mutableDefaults,enumerable:!0}),r};t.default=d},22395:(e,t,r)=>{"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});const i=r(78835),A=r(88190),o={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,rejectUnauthorized:!0,pagination:{transform:e=>"json"===e.request.options.responseType?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,"link"))return!1;const t=e.headers.link.split(",");let r;for(const e of t){const t=e.split(";");if(t[1].includes("next")){r=t[0].trimStart().trim(),r=r.slice(1,-1);break}}if(r){return{url:new i.URL(r)}}return!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,requestLimit:1e4,stackAllItems:!0}},handlers:[A.defaultHandler],mutableDefaults:!1},s=A.default(o);t.default=s,e.exports=s,e.exports.default=s,n(r(88190)),n(r(74850))},5571:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=function e(t){for(const r of Object.values(t))(n.default.plainObject(r)||n.default.array(r))&&e(r);return Object.freeze(t)}},74988:e=>{e.exports&&(e.exports=function(){var e=3,t=4,r=12,n=13,i=16,A=17;function o(e,t){void 0===t&&(t=0);var r=e.charCodeAt(t);if(55296<=r&&r<=56319&&t=1){var i=r;return 55296<=(n=e.charCodeAt(t-1))&&n<=56319?1024*(n-55296)+(i-56320)+65536:i}return r}function s(o,s,a){var c=[o].concat(s).concat([a]),g=c[c.length-2],l=a,u=c.lastIndexOf(14);if(u>1&&c.slice(1,u).every((function(t){return t==e}))&&-1==[e,n,A].indexOf(o))return 2;var h=c.lastIndexOf(t);if(h>0&&c.slice(1,h).every((function(e){return e==t}))&&-1==[r,t].indexOf(g))return c.filter((function(e){return e==t})).length%2==1?3:4;if(0==g&&1==l)return 0;if(2==g||0==g||1==g)return 14==l&&s.every((function(t){return t==e}))?2:1;if(2==l||0==l||1==l)return 1;if(6==g&&(6==l||7==l||9==l||10==l))return 0;if(!(9!=g&&7!=g||7!=l&&8!=l))return 0;if((10==g||8==g)&&8==l)return 0;if(l==e||15==l)return 0;if(5==l)return 0;if(g==r)return 0;var p=-1!=c.indexOf(e)?c.lastIndexOf(e)-1:c.length-2;return-1!=[n,A].indexOf(c[p])&&c.slice(p+1,-1).every((function(t){return t==e}))&&14==l||15==g&&-1!=[i,A].indexOf(l)?0:-1!=s.indexOf(t)?2:g==t&&l==t?0:1}function a(o){return 1536<=o&&o<=1541||1757==o||1807==o||2274==o||3406==o||69821==o||70082<=o&&o<=70083||72250==o||72326<=o&&o<=72329||73030==o?r:13==o?0:10==o?1:0<=o&&o<=9||11<=o&&o<=12||14<=o&&o<=31||127<=o&&o<=159||173==o||1564==o||6158==o||8203==o||8206<=o&&o<=8207||8232==o||8233==o||8234<=o&&o<=8238||8288<=o&&o<=8292||8293==o||8294<=o&&o<=8303||55296<=o&&o<=57343||65279==o||65520<=o&&o<=65528||65529<=o&&o<=65531||113824<=o&&o<=113827||119155<=o&&o<=119162||917504==o||917505==o||917506<=o&&o<=917535||917632<=o&&o<=917759||918e3<=o&&o<=921599?2:768<=o&&o<=879||1155<=o&&o<=1159||1160<=o&&o<=1161||1425<=o&&o<=1469||1471==o||1473<=o&&o<=1474||1476<=o&&o<=1477||1479==o||1552<=o&&o<=1562||1611<=o&&o<=1631||1648==o||1750<=o&&o<=1756||1759<=o&&o<=1764||1767<=o&&o<=1768||1770<=o&&o<=1773||1809==o||1840<=o&&o<=1866||1958<=o&&o<=1968||2027<=o&&o<=2035||2070<=o&&o<=2073||2075<=o&&o<=2083||2085<=o&&o<=2087||2089<=o&&o<=2093||2137<=o&&o<=2139||2260<=o&&o<=2273||2275<=o&&o<=2306||2362==o||2364==o||2369<=o&&o<=2376||2381==o||2385<=o&&o<=2391||2402<=o&&o<=2403||2433==o||2492==o||2494==o||2497<=o&&o<=2500||2509==o||2519==o||2530<=o&&o<=2531||2561<=o&&o<=2562||2620==o||2625<=o&&o<=2626||2631<=o&&o<=2632||2635<=o&&o<=2637||2641==o||2672<=o&&o<=2673||2677==o||2689<=o&&o<=2690||2748==o||2753<=o&&o<=2757||2759<=o&&o<=2760||2765==o||2786<=o&&o<=2787||2810<=o&&o<=2815||2817==o||2876==o||2878==o||2879==o||2881<=o&&o<=2884||2893==o||2902==o||2903==o||2914<=o&&o<=2915||2946==o||3006==o||3008==o||3021==o||3031==o||3072==o||3134<=o&&o<=3136||3142<=o&&o<=3144||3146<=o&&o<=3149||3157<=o&&o<=3158||3170<=o&&o<=3171||3201==o||3260==o||3263==o||3266==o||3270==o||3276<=o&&o<=3277||3285<=o&&o<=3286||3298<=o&&o<=3299||3328<=o&&o<=3329||3387<=o&&o<=3388||3390==o||3393<=o&&o<=3396||3405==o||3415==o||3426<=o&&o<=3427||3530==o||3535==o||3538<=o&&o<=3540||3542==o||3551==o||3633==o||3636<=o&&o<=3642||3655<=o&&o<=3662||3761==o||3764<=o&&o<=3769||3771<=o&&o<=3772||3784<=o&&o<=3789||3864<=o&&o<=3865||3893==o||3895==o||3897==o||3953<=o&&o<=3966||3968<=o&&o<=3972||3974<=o&&o<=3975||3981<=o&&o<=3991||3993<=o&&o<=4028||4038==o||4141<=o&&o<=4144||4146<=o&&o<=4151||4153<=o&&o<=4154||4157<=o&&o<=4158||4184<=o&&o<=4185||4190<=o&&o<=4192||4209<=o&&o<=4212||4226==o||4229<=o&&o<=4230||4237==o||4253==o||4957<=o&&o<=4959||5906<=o&&o<=5908||5938<=o&&o<=5940||5970<=o&&o<=5971||6002<=o&&o<=6003||6068<=o&&o<=6069||6071<=o&&o<=6077||6086==o||6089<=o&&o<=6099||6109==o||6155<=o&&o<=6157||6277<=o&&o<=6278||6313==o||6432<=o&&o<=6434||6439<=o&&o<=6440||6450==o||6457<=o&&o<=6459||6679<=o&&o<=6680||6683==o||6742==o||6744<=o&&o<=6750||6752==o||6754==o||6757<=o&&o<=6764||6771<=o&&o<=6780||6783==o||6832<=o&&o<=6845||6846==o||6912<=o&&o<=6915||6964==o||6966<=o&&o<=6970||6972==o||6978==o||7019<=o&&o<=7027||7040<=o&&o<=7041||7074<=o&&o<=7077||7080<=o&&o<=7081||7083<=o&&o<=7085||7142==o||7144<=o&&o<=7145||7149==o||7151<=o&&o<=7153||7212<=o&&o<=7219||7222<=o&&o<=7223||7376<=o&&o<=7378||7380<=o&&o<=7392||7394<=o&&o<=7400||7405==o||7412==o||7416<=o&&o<=7417||7616<=o&&o<=7673||7675<=o&&o<=7679||8204==o||8400<=o&&o<=8412||8413<=o&&o<=8416||8417==o||8418<=o&&o<=8420||8421<=o&&o<=8432||11503<=o&&o<=11505||11647==o||11744<=o&&o<=11775||12330<=o&&o<=12333||12334<=o&&o<=12335||12441<=o&&o<=12442||42607==o||42608<=o&&o<=42610||42612<=o&&o<=42621||42654<=o&&o<=42655||42736<=o&&o<=42737||43010==o||43014==o||43019==o||43045<=o&&o<=43046||43204<=o&&o<=43205||43232<=o&&o<=43249||43302<=o&&o<=43309||43335<=o&&o<=43345||43392<=o&&o<=43394||43443==o||43446<=o&&o<=43449||43452==o||43493==o||43561<=o&&o<=43566||43569<=o&&o<=43570||43573<=o&&o<=43574||43587==o||43596==o||43644==o||43696==o||43698<=o&&o<=43700||43703<=o&&o<=43704||43710<=o&&o<=43711||43713==o||43756<=o&&o<=43757||43766==o||44005==o||44008==o||44013==o||64286==o||65024<=o&&o<=65039||65056<=o&&o<=65071||65438<=o&&o<=65439||66045==o||66272==o||66422<=o&&o<=66426||68097<=o&&o<=68099||68101<=o&&o<=68102||68108<=o&&o<=68111||68152<=o&&o<=68154||68159==o||68325<=o&&o<=68326||69633==o||69688<=o&&o<=69702||69759<=o&&o<=69761||69811<=o&&o<=69814||69817<=o&&o<=69818||69888<=o&&o<=69890||69927<=o&&o<=69931||69933<=o&&o<=69940||70003==o||70016<=o&&o<=70017||70070<=o&&o<=70078||70090<=o&&o<=70092||70191<=o&&o<=70193||70196==o||70198<=o&&o<=70199||70206==o||70367==o||70371<=o&&o<=70378||70400<=o&&o<=70401||70460==o||70462==o||70464==o||70487==o||70502<=o&&o<=70508||70512<=o&&o<=70516||70712<=o&&o<=70719||70722<=o&&o<=70724||70726==o||70832==o||70835<=o&&o<=70840||70842==o||70845==o||70847<=o&&o<=70848||70850<=o&&o<=70851||71087==o||71090<=o&&o<=71093||71100<=o&&o<=71101||71103<=o&&o<=71104||71132<=o&&o<=71133||71219<=o&&o<=71226||71229==o||71231<=o&&o<=71232||71339==o||71341==o||71344<=o&&o<=71349||71351==o||71453<=o&&o<=71455||71458<=o&&o<=71461||71463<=o&&o<=71467||72193<=o&&o<=72198||72201<=o&&o<=72202||72243<=o&&o<=72248||72251<=o&&o<=72254||72263==o||72273<=o&&o<=72278||72281<=o&&o<=72283||72330<=o&&o<=72342||72344<=o&&o<=72345||72752<=o&&o<=72758||72760<=o&&o<=72765||72767==o||72850<=o&&o<=72871||72874<=o&&o<=72880||72882<=o&&o<=72883||72885<=o&&o<=72886||73009<=o&&o<=73014||73018==o||73020<=o&&o<=73021||73023<=o&&o<=73029||73031==o||92912<=o&&o<=92916||92976<=o&&o<=92982||94095<=o&&o<=94098||113821<=o&&o<=113822||119141==o||119143<=o&&o<=119145||119150<=o&&o<=119154||119163<=o&&o<=119170||119173<=o&&o<=119179||119210<=o&&o<=119213||119362<=o&&o<=119364||121344<=o&&o<=121398||121403<=o&&o<=121452||121461==o||121476==o||121499<=o&&o<=121503||121505<=o&&o<=121519||122880<=o&&o<=122886||122888<=o&&o<=122904||122907<=o&&o<=122913||122915<=o&&o<=122916||122918<=o&&o<=122922||125136<=o&&o<=125142||125252<=o&&o<=125258||917536<=o&&o<=917631||917760<=o&&o<=917999?e:127462<=o&&o<=127487?t:2307==o||2363==o||2366<=o&&o<=2368||2377<=o&&o<=2380||2382<=o&&o<=2383||2434<=o&&o<=2435||2495<=o&&o<=2496||2503<=o&&o<=2504||2507<=o&&o<=2508||2563==o||2622<=o&&o<=2624||2691==o||2750<=o&&o<=2752||2761==o||2763<=o&&o<=2764||2818<=o&&o<=2819||2880==o||2887<=o&&o<=2888||2891<=o&&o<=2892||3007==o||3009<=o&&o<=3010||3014<=o&&o<=3016||3018<=o&&o<=3020||3073<=o&&o<=3075||3137<=o&&o<=3140||3202<=o&&o<=3203||3262==o||3264<=o&&o<=3265||3267<=o&&o<=3268||3271<=o&&o<=3272||3274<=o&&o<=3275||3330<=o&&o<=3331||3391<=o&&o<=3392||3398<=o&&o<=3400||3402<=o&&o<=3404||3458<=o&&o<=3459||3536<=o&&o<=3537||3544<=o&&o<=3550||3570<=o&&o<=3571||3635==o||3763==o||3902<=o&&o<=3903||3967==o||4145==o||4155<=o&&o<=4156||4182<=o&&o<=4183||4228==o||6070==o||6078<=o&&o<=6085||6087<=o&&o<=6088||6435<=o&&o<=6438||6441<=o&&o<=6443||6448<=o&&o<=6449||6451<=o&&o<=6456||6681<=o&&o<=6682||6741==o||6743==o||6765<=o&&o<=6770||6916==o||6965==o||6971==o||6973<=o&&o<=6977||6979<=o&&o<=6980||7042==o||7073==o||7078<=o&&o<=7079||7082==o||7143==o||7146<=o&&o<=7148||7150==o||7154<=o&&o<=7155||7204<=o&&o<=7211||7220<=o&&o<=7221||7393==o||7410<=o&&o<=7411||7415==o||43043<=o&&o<=43044||43047==o||43136<=o&&o<=43137||43188<=o&&o<=43203||43346<=o&&o<=43347||43395==o||43444<=o&&o<=43445||43450<=o&&o<=43451||43453<=o&&o<=43456||43567<=o&&o<=43568||43571<=o&&o<=43572||43597==o||43755==o||43758<=o&&o<=43759||43765==o||44003<=o&&o<=44004||44006<=o&&o<=44007||44009<=o&&o<=44010||44012==o||69632==o||69634==o||69762==o||69808<=o&&o<=69810||69815<=o&&o<=69816||69932==o||70018==o||70067<=o&&o<=70069||70079<=o&&o<=70080||70188<=o&&o<=70190||70194<=o&&o<=70195||70197==o||70368<=o&&o<=70370||70402<=o&&o<=70403||70463==o||70465<=o&&o<=70468||70471<=o&&o<=70472||70475<=o&&o<=70477||70498<=o&&o<=70499||70709<=o&&o<=70711||70720<=o&&o<=70721||70725==o||70833<=o&&o<=70834||70841==o||70843<=o&&o<=70844||70846==o||70849==o||71088<=o&&o<=71089||71096<=o&&o<=71099||71102==o||71216<=o&&o<=71218||71227<=o&&o<=71228||71230==o||71340==o||71342<=o&&o<=71343||71350==o||71456<=o&&o<=71457||71462==o||72199<=o&&o<=72200||72249==o||72279<=o&&o<=72280||72343==o||72751==o||72766==o||72873==o||72881==o||72884==o||94033<=o&&o<=94078||119142==o||119149==o?5:4352<=o&&o<=4447||43360<=o&&o<=43388?6:4448<=o&&o<=4519||55216<=o&&o<=55238?7:4520<=o&&o<=4607||55243<=o&&o<=55291?8:44032==o||44060==o||44088==o||44116==o||44144==o||44172==o||44200==o||44228==o||44256==o||44284==o||44312==o||44340==o||44368==o||44396==o||44424==o||44452==o||44480==o||44508==o||44536==o||44564==o||44592==o||44620==o||44648==o||44676==o||44704==o||44732==o||44760==o||44788==o||44816==o||44844==o||44872==o||44900==o||44928==o||44956==o||44984==o||45012==o||45040==o||45068==o||45096==o||45124==o||45152==o||45180==o||45208==o||45236==o||45264==o||45292==o||45320==o||45348==o||45376==o||45404==o||45432==o||45460==o||45488==o||45516==o||45544==o||45572==o||45600==o||45628==o||45656==o||45684==o||45712==o||45740==o||45768==o||45796==o||45824==o||45852==o||45880==o||45908==o||45936==o||45964==o||45992==o||46020==o||46048==o||46076==o||46104==o||46132==o||46160==o||46188==o||46216==o||46244==o||46272==o||46300==o||46328==o||46356==o||46384==o||46412==o||46440==o||46468==o||46496==o||46524==o||46552==o||46580==o||46608==o||46636==o||46664==o||46692==o||46720==o||46748==o||46776==o||46804==o||46832==o||46860==o||46888==o||46916==o||46944==o||46972==o||47e3==o||47028==o||47056==o||47084==o||47112==o||47140==o||47168==o||47196==o||47224==o||47252==o||47280==o||47308==o||47336==o||47364==o||47392==o||47420==o||47448==o||47476==o||47504==o||47532==o||47560==o||47588==o||47616==o||47644==o||47672==o||47700==o||47728==o||47756==o||47784==o||47812==o||47840==o||47868==o||47896==o||47924==o||47952==o||47980==o||48008==o||48036==o||48064==o||48092==o||48120==o||48148==o||48176==o||48204==o||48232==o||48260==o||48288==o||48316==o||48344==o||48372==o||48400==o||48428==o||48456==o||48484==o||48512==o||48540==o||48568==o||48596==o||48624==o||48652==o||48680==o||48708==o||48736==o||48764==o||48792==o||48820==o||48848==o||48876==o||48904==o||48932==o||48960==o||48988==o||49016==o||49044==o||49072==o||49100==o||49128==o||49156==o||49184==o||49212==o||49240==o||49268==o||49296==o||49324==o||49352==o||49380==o||49408==o||49436==o||49464==o||49492==o||49520==o||49548==o||49576==o||49604==o||49632==o||49660==o||49688==o||49716==o||49744==o||49772==o||49800==o||49828==o||49856==o||49884==o||49912==o||49940==o||49968==o||49996==o||50024==o||50052==o||50080==o||50108==o||50136==o||50164==o||50192==o||50220==o||50248==o||50276==o||50304==o||50332==o||50360==o||50388==o||50416==o||50444==o||50472==o||50500==o||50528==o||50556==o||50584==o||50612==o||50640==o||50668==o||50696==o||50724==o||50752==o||50780==o||50808==o||50836==o||50864==o||50892==o||50920==o||50948==o||50976==o||51004==o||51032==o||51060==o||51088==o||51116==o||51144==o||51172==o||51200==o||51228==o||51256==o||51284==o||51312==o||51340==o||51368==o||51396==o||51424==o||51452==o||51480==o||51508==o||51536==o||51564==o||51592==o||51620==o||51648==o||51676==o||51704==o||51732==o||51760==o||51788==o||51816==o||51844==o||51872==o||51900==o||51928==o||51956==o||51984==o||52012==o||52040==o||52068==o||52096==o||52124==o||52152==o||52180==o||52208==o||52236==o||52264==o||52292==o||52320==o||52348==o||52376==o||52404==o||52432==o||52460==o||52488==o||52516==o||52544==o||52572==o||52600==o||52628==o||52656==o||52684==o||52712==o||52740==o||52768==o||52796==o||52824==o||52852==o||52880==o||52908==o||52936==o||52964==o||52992==o||53020==o||53048==o||53076==o||53104==o||53132==o||53160==o||53188==o||53216==o||53244==o||53272==o||53300==o||53328==o||53356==o||53384==o||53412==o||53440==o||53468==o||53496==o||53524==o||53552==o||53580==o||53608==o||53636==o||53664==o||53692==o||53720==o||53748==o||53776==o||53804==o||53832==o||53860==o||53888==o||53916==o||53944==o||53972==o||54e3==o||54028==o||54056==o||54084==o||54112==o||54140==o||54168==o||54196==o||54224==o||54252==o||54280==o||54308==o||54336==o||54364==o||54392==o||54420==o||54448==o||54476==o||54504==o||54532==o||54560==o||54588==o||54616==o||54644==o||54672==o||54700==o||54728==o||54756==o||54784==o||54812==o||54840==o||54868==o||54896==o||54924==o||54952==o||54980==o||55008==o||55036==o||55064==o||55092==o||55120==o||55148==o||55176==o?9:44033<=o&&o<=44059||44061<=o&&o<=44087||44089<=o&&o<=44115||44117<=o&&o<=44143||44145<=o&&o<=44171||44173<=o&&o<=44199||44201<=o&&o<=44227||44229<=o&&o<=44255||44257<=o&&o<=44283||44285<=o&&o<=44311||44313<=o&&o<=44339||44341<=o&&o<=44367||44369<=o&&o<=44395||44397<=o&&o<=44423||44425<=o&&o<=44451||44453<=o&&o<=44479||44481<=o&&o<=44507||44509<=o&&o<=44535||44537<=o&&o<=44563||44565<=o&&o<=44591||44593<=o&&o<=44619||44621<=o&&o<=44647||44649<=o&&o<=44675||44677<=o&&o<=44703||44705<=o&&o<=44731||44733<=o&&o<=44759||44761<=o&&o<=44787||44789<=o&&o<=44815||44817<=o&&o<=44843||44845<=o&&o<=44871||44873<=o&&o<=44899||44901<=o&&o<=44927||44929<=o&&o<=44955||44957<=o&&o<=44983||44985<=o&&o<=45011||45013<=o&&o<=45039||45041<=o&&o<=45067||45069<=o&&o<=45095||45097<=o&&o<=45123||45125<=o&&o<=45151||45153<=o&&o<=45179||45181<=o&&o<=45207||45209<=o&&o<=45235||45237<=o&&o<=45263||45265<=o&&o<=45291||45293<=o&&o<=45319||45321<=o&&o<=45347||45349<=o&&o<=45375||45377<=o&&o<=45403||45405<=o&&o<=45431||45433<=o&&o<=45459||45461<=o&&o<=45487||45489<=o&&o<=45515||45517<=o&&o<=45543||45545<=o&&o<=45571||45573<=o&&o<=45599||45601<=o&&o<=45627||45629<=o&&o<=45655||45657<=o&&o<=45683||45685<=o&&o<=45711||45713<=o&&o<=45739||45741<=o&&o<=45767||45769<=o&&o<=45795||45797<=o&&o<=45823||45825<=o&&o<=45851||45853<=o&&o<=45879||45881<=o&&o<=45907||45909<=o&&o<=45935||45937<=o&&o<=45963||45965<=o&&o<=45991||45993<=o&&o<=46019||46021<=o&&o<=46047||46049<=o&&o<=46075||46077<=o&&o<=46103||46105<=o&&o<=46131||46133<=o&&o<=46159||46161<=o&&o<=46187||46189<=o&&o<=46215||46217<=o&&o<=46243||46245<=o&&o<=46271||46273<=o&&o<=46299||46301<=o&&o<=46327||46329<=o&&o<=46355||46357<=o&&o<=46383||46385<=o&&o<=46411||46413<=o&&o<=46439||46441<=o&&o<=46467||46469<=o&&o<=46495||46497<=o&&o<=46523||46525<=o&&o<=46551||46553<=o&&o<=46579||46581<=o&&o<=46607||46609<=o&&o<=46635||46637<=o&&o<=46663||46665<=o&&o<=46691||46693<=o&&o<=46719||46721<=o&&o<=46747||46749<=o&&o<=46775||46777<=o&&o<=46803||46805<=o&&o<=46831||46833<=o&&o<=46859||46861<=o&&o<=46887||46889<=o&&o<=46915||46917<=o&&o<=46943||46945<=o&&o<=46971||46973<=o&&o<=46999||47001<=o&&o<=47027||47029<=o&&o<=47055||47057<=o&&o<=47083||47085<=o&&o<=47111||47113<=o&&o<=47139||47141<=o&&o<=47167||47169<=o&&o<=47195||47197<=o&&o<=47223||47225<=o&&o<=47251||47253<=o&&o<=47279||47281<=o&&o<=47307||47309<=o&&o<=47335||47337<=o&&o<=47363||47365<=o&&o<=47391||47393<=o&&o<=47419||47421<=o&&o<=47447||47449<=o&&o<=47475||47477<=o&&o<=47503||47505<=o&&o<=47531||47533<=o&&o<=47559||47561<=o&&o<=47587||47589<=o&&o<=47615||47617<=o&&o<=47643||47645<=o&&o<=47671||47673<=o&&o<=47699||47701<=o&&o<=47727||47729<=o&&o<=47755||47757<=o&&o<=47783||47785<=o&&o<=47811||47813<=o&&o<=47839||47841<=o&&o<=47867||47869<=o&&o<=47895||47897<=o&&o<=47923||47925<=o&&o<=47951||47953<=o&&o<=47979||47981<=o&&o<=48007||48009<=o&&o<=48035||48037<=o&&o<=48063||48065<=o&&o<=48091||48093<=o&&o<=48119||48121<=o&&o<=48147||48149<=o&&o<=48175||48177<=o&&o<=48203||48205<=o&&o<=48231||48233<=o&&o<=48259||48261<=o&&o<=48287||48289<=o&&o<=48315||48317<=o&&o<=48343||48345<=o&&o<=48371||48373<=o&&o<=48399||48401<=o&&o<=48427||48429<=o&&o<=48455||48457<=o&&o<=48483||48485<=o&&o<=48511||48513<=o&&o<=48539||48541<=o&&o<=48567||48569<=o&&o<=48595||48597<=o&&o<=48623||48625<=o&&o<=48651||48653<=o&&o<=48679||48681<=o&&o<=48707||48709<=o&&o<=48735||48737<=o&&o<=48763||48765<=o&&o<=48791||48793<=o&&o<=48819||48821<=o&&o<=48847||48849<=o&&o<=48875||48877<=o&&o<=48903||48905<=o&&o<=48931||48933<=o&&o<=48959||48961<=o&&o<=48987||48989<=o&&o<=49015||49017<=o&&o<=49043||49045<=o&&o<=49071||49073<=o&&o<=49099||49101<=o&&o<=49127||49129<=o&&o<=49155||49157<=o&&o<=49183||49185<=o&&o<=49211||49213<=o&&o<=49239||49241<=o&&o<=49267||49269<=o&&o<=49295||49297<=o&&o<=49323||49325<=o&&o<=49351||49353<=o&&o<=49379||49381<=o&&o<=49407||49409<=o&&o<=49435||49437<=o&&o<=49463||49465<=o&&o<=49491||49493<=o&&o<=49519||49521<=o&&o<=49547||49549<=o&&o<=49575||49577<=o&&o<=49603||49605<=o&&o<=49631||49633<=o&&o<=49659||49661<=o&&o<=49687||49689<=o&&o<=49715||49717<=o&&o<=49743||49745<=o&&o<=49771||49773<=o&&o<=49799||49801<=o&&o<=49827||49829<=o&&o<=49855||49857<=o&&o<=49883||49885<=o&&o<=49911||49913<=o&&o<=49939||49941<=o&&o<=49967||49969<=o&&o<=49995||49997<=o&&o<=50023||50025<=o&&o<=50051||50053<=o&&o<=50079||50081<=o&&o<=50107||50109<=o&&o<=50135||50137<=o&&o<=50163||50165<=o&&o<=50191||50193<=o&&o<=50219||50221<=o&&o<=50247||50249<=o&&o<=50275||50277<=o&&o<=50303||50305<=o&&o<=50331||50333<=o&&o<=50359||50361<=o&&o<=50387||50389<=o&&o<=50415||50417<=o&&o<=50443||50445<=o&&o<=50471||50473<=o&&o<=50499||50501<=o&&o<=50527||50529<=o&&o<=50555||50557<=o&&o<=50583||50585<=o&&o<=50611||50613<=o&&o<=50639||50641<=o&&o<=50667||50669<=o&&o<=50695||50697<=o&&o<=50723||50725<=o&&o<=50751||50753<=o&&o<=50779||50781<=o&&o<=50807||50809<=o&&o<=50835||50837<=o&&o<=50863||50865<=o&&o<=50891||50893<=o&&o<=50919||50921<=o&&o<=50947||50949<=o&&o<=50975||50977<=o&&o<=51003||51005<=o&&o<=51031||51033<=o&&o<=51059||51061<=o&&o<=51087||51089<=o&&o<=51115||51117<=o&&o<=51143||51145<=o&&o<=51171||51173<=o&&o<=51199||51201<=o&&o<=51227||51229<=o&&o<=51255||51257<=o&&o<=51283||51285<=o&&o<=51311||51313<=o&&o<=51339||51341<=o&&o<=51367||51369<=o&&o<=51395||51397<=o&&o<=51423||51425<=o&&o<=51451||51453<=o&&o<=51479||51481<=o&&o<=51507||51509<=o&&o<=51535||51537<=o&&o<=51563||51565<=o&&o<=51591||51593<=o&&o<=51619||51621<=o&&o<=51647||51649<=o&&o<=51675||51677<=o&&o<=51703||51705<=o&&o<=51731||51733<=o&&o<=51759||51761<=o&&o<=51787||51789<=o&&o<=51815||51817<=o&&o<=51843||51845<=o&&o<=51871||51873<=o&&o<=51899||51901<=o&&o<=51927||51929<=o&&o<=51955||51957<=o&&o<=51983||51985<=o&&o<=52011||52013<=o&&o<=52039||52041<=o&&o<=52067||52069<=o&&o<=52095||52097<=o&&o<=52123||52125<=o&&o<=52151||52153<=o&&o<=52179||52181<=o&&o<=52207||52209<=o&&o<=52235||52237<=o&&o<=52263||52265<=o&&o<=52291||52293<=o&&o<=52319||52321<=o&&o<=52347||52349<=o&&o<=52375||52377<=o&&o<=52403||52405<=o&&o<=52431||52433<=o&&o<=52459||52461<=o&&o<=52487||52489<=o&&o<=52515||52517<=o&&o<=52543||52545<=o&&o<=52571||52573<=o&&o<=52599||52601<=o&&o<=52627||52629<=o&&o<=52655||52657<=o&&o<=52683||52685<=o&&o<=52711||52713<=o&&o<=52739||52741<=o&&o<=52767||52769<=o&&o<=52795||52797<=o&&o<=52823||52825<=o&&o<=52851||52853<=o&&o<=52879||52881<=o&&o<=52907||52909<=o&&o<=52935||52937<=o&&o<=52963||52965<=o&&o<=52991||52993<=o&&o<=53019||53021<=o&&o<=53047||53049<=o&&o<=53075||53077<=o&&o<=53103||53105<=o&&o<=53131||53133<=o&&o<=53159||53161<=o&&o<=53187||53189<=o&&o<=53215||53217<=o&&o<=53243||53245<=o&&o<=53271||53273<=o&&o<=53299||53301<=o&&o<=53327||53329<=o&&o<=53355||53357<=o&&o<=53383||53385<=o&&o<=53411||53413<=o&&o<=53439||53441<=o&&o<=53467||53469<=o&&o<=53495||53497<=o&&o<=53523||53525<=o&&o<=53551||53553<=o&&o<=53579||53581<=o&&o<=53607||53609<=o&&o<=53635||53637<=o&&o<=53663||53665<=o&&o<=53691||53693<=o&&o<=53719||53721<=o&&o<=53747||53749<=o&&o<=53775||53777<=o&&o<=53803||53805<=o&&o<=53831||53833<=o&&o<=53859||53861<=o&&o<=53887||53889<=o&&o<=53915||53917<=o&&o<=53943||53945<=o&&o<=53971||53973<=o&&o<=53999||54001<=o&&o<=54027||54029<=o&&o<=54055||54057<=o&&o<=54083||54085<=o&&o<=54111||54113<=o&&o<=54139||54141<=o&&o<=54167||54169<=o&&o<=54195||54197<=o&&o<=54223||54225<=o&&o<=54251||54253<=o&&o<=54279||54281<=o&&o<=54307||54309<=o&&o<=54335||54337<=o&&o<=54363||54365<=o&&o<=54391||54393<=o&&o<=54419||54421<=o&&o<=54447||54449<=o&&o<=54475||54477<=o&&o<=54503||54505<=o&&o<=54531||54533<=o&&o<=54559||54561<=o&&o<=54587||54589<=o&&o<=54615||54617<=o&&o<=54643||54645<=o&&o<=54671||54673<=o&&o<=54699||54701<=o&&o<=54727||54729<=o&&o<=54755||54757<=o&&o<=54783||54785<=o&&o<=54811||54813<=o&&o<=54839||54841<=o&&o<=54867||54869<=o&&o<=54895||54897<=o&&o<=54923||54925<=o&&o<=54951||54953<=o&&o<=54979||54981<=o&&o<=55007||55009<=o&&o<=55035||55037<=o&&o<=55063||55065<=o&&o<=55091||55093<=o&&o<=55119||55121<=o&&o<=55147||55149<=o&&o<=55175||55177<=o&&o<=55203?10:9757==o||9977==o||9994<=o&&o<=9997||127877==o||127938<=o&&o<=127940||127943==o||127946<=o&&o<=127948||128066<=o&&o<=128067||128070<=o&&o<=128080||128110==o||128112<=o&&o<=128120||128124==o||128129<=o&&o<=128131||128133<=o&&o<=128135||128170==o||128372<=o&&o<=128373||128378==o||128400==o||128405<=o&&o<=128406||128581<=o&&o<=128583||128587<=o&&o<=128591||128675==o||128692<=o&&o<=128694||128704==o||128716==o||129304<=o&&o<=129308||129310<=o&&o<=129311||129318==o||129328<=o&&o<=129337||129341<=o&&o<=129342||129489<=o&&o<=129501?n:127995<=o&&o<=127999?14:8205==o?15:9792==o||9794==o||9877<=o&&o<=9878||9992==o||10084==o||127752==o||127806==o||127859==o||127891==o||127908==o||127912==o||127979==o||127981==o||128139==o||128187<=o&&o<=128188||128295==o||128300==o||128488==o||128640==o||128658==o?i:128102<=o&&o<=128105?A:11}return this.nextBreak=function(e,t){if(void 0===t&&(t=0),t<0)return 0;if(t>=e.length-1)return e.length;for(var r,n,i=a(o(e,t)),A=[],c=t+1;c{"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return-1!==n&&(-1===i||n{"use strict";const t=[200,203,204,206,300,301,404,405,410,414,501],r=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],n={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},i={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function A(e){const t={};if(!e)return t;const r=e.trim().split(/\s*,\s*/);for(const e of r){const[r,n]=e.split(/\s*=\s*/,2);t[r]=void 0===n||n.replace(/^"|"$/g,"")}return t}function o(e){let t=[];for(const r in e){const n=e[r];t.push(!0===n?r:r+"="+n)}if(t.length)return t.join(", ")}e.exports=class{constructor(e,t,{shared:r,cacheHeuristic:n,immutableMinTimeToLive:i,ignoreCargoCult:s,trustServerDate:a,_fromObject:c}={}){if(c)this._fromObject(c);else{if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=!1!==r,this._trustServerDate=void 0===a||a,this._cacheHeuristic=void 0!==n?n:.1,this._immutableMinTtl=void 0!==i?i:864e5,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=A(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=A(e.headers["cache-control"]),s&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":o(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!t.headers["cache-control"]&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}}now(){return Date.now()}storable(){return!(this._reqcc["no-store"]||!("GET"===this._method||"HEAD"===this._method||"POST"===this._method&&this._hasExplicitExpiration())||-1===r.indexOf(this._status)||this._rescc["no-store"]||this._isShared&&this._rescc.private||this._isShared&&!this._noAuthorization&&!this._allowsStoringAuthenticated()||!(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||-1!==t.indexOf(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);const t=A(e.headers["cache-control"]);if(t["no-cache"]||/no-cache/.test(e.headers.pragma))return!1;if(t["max-age"]&&this.age()>t["max-age"])return!1;if(t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"])return!1;if(this.stale()){if(!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(!0===t["max-stale"]||t["max-stale"]>this.age()-this.maxAge())))return!1}return this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&"HEAD"===e.method)&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if("*"===this._resHeaders.vary)return!1;const t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(const r of t)if(e.headers[r]!==this._reqHeaders[r])return!1;return!0}_copyWithoutHopByHopHeaders(e){const t={};for(const r in e)n[r]||(t[r]=e[r]);if(e.connection){const r=e.connection.trim().split(/\s*,\s*/);for(const e of r)delete t[e]}if(t.warning){const e=t.warning.split(/,/).filter(e=>!/^\s*1[0-9][0-9]/.test(e));e.length?t.warning=e.join(",").trim():delete t.warning}return t}responseHeaders(){const e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>86400&&!this._hasExplicitExpiration()&&this.maxAge()>86400&&(e.warning=(e.warning?e.warning+", ":"")+'113 - "rfc7234 5.5.4"'),e.age=""+Math.round(t),e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){const e=Date.parse(this._resHeaders.date);if(isFinite(e)){const t=288e5;if(Math.abs(this._responseTime-e)e&&(e=t)}return e+(this.now()-this._responseTime)/1e3}_ageValue(){const e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"])return 0;if(this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable)return 0;if("*"===this._resHeaders.vary)return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);const e=this._rescc.immutable?this._immutableMinTtl:0,t=this._serverDate();if(this._resHeaders.expires){const r=Date.parse(this._resHeaders.expires);return Number.isNaN(r)||rr)return Math.max(e,(t-r)/1e3*this._cacheHeuristic)}return e}timeToLive(){return 1e3*Math.max(0,this.maxAge()-this.age())}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||1!==e.v)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=void 0!==e.imm?e.imm:864e5,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);const t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag);if(t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&"GET"!=this._method){if(delete t["if-modified-since"],t["if-none-match"]){const e=t["if-none-match"].split(/,/).filter(e=>!/^\s*W\//.test(e));e.length?t["if-none-match"]=e.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),!t||!t.headers)throw Error("Response headers missing");let r=!1;if(void 0!==t.status&&304!=t.status?r=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?r=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?r=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?r=this._resHeaders["last-modified"]===t.headers["last-modified"]:this._resHeaders.etag||this._resHeaders["last-modified"]||t.headers.etag||t.headers["last-modified"]||(r=!0),!r)return{policy:new this.constructor(e,t),modified:304!=t.status,matches:!1};const n={};for(const e in this._resHeaders)n[e]=e in t.headers&&!i[e]?t.headers[e]:this._resHeaders[e];const A=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,A,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}},92967:(e,t,r)=>{"use strict";const n=r(28614),i=r(4016),A=r(97565),o=r(82905),s=Symbol("currentStreamsCount"),a=Symbol("request"),c=Symbol("cachedOriginSet"),g=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],l=(e,t,r)=>{if(t in e){const n=e[t].indexOf(r);if(-1!==n)return e[t].splice(n,1),0===e[t].length&&delete e[t],!0}return!1},u=(e,t,r)=>{t in e?e[t].push(r):e[t]=[r]},h=(e,t,r)=>t in e?e[t].filter(e=>!e.closed&&!e.destroyed&&e[c].includes(r)):[],p=(e,t,r)=>{if(t in e)for(const n of e[t])n[c].lengthr[c].includes(e))&&n[s]+r[s]<=r.remoteSettings.maxConcurrentStreams&&n.close()};class f extends n{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:r=1,maxCachedTlsSessions:n=100}={}){super(),this.busySessions={},this.freeSessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=r,this.settings={enablePush:!1},this.tlsSessionCache=new o({maxSize:n})}static normalizeOrigin(e,t){return"string"==typeof e&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(const r of g)e[r]&&(t+=":"+e[r]);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;const r=h(this.busySessions,e,t).length,n=this.queue[e][t];r{Array.isArray(r)?(r=[...r],n()):r=[{resolve:n,reject:i}];const o=this.normalizeOptions(t),g=f.normalizeOrigin(e,t&&t.servername);if(void 0===g){for(const{reject:e}of r)e(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.freeSessions){const e=h(this.freeSessions,o,g);if(0!==e.length){const t=e.reduce((e,t)=>t.remoteSettings.maxConcurrentStreams>=e.remoteSettings.maxConcurrentStreams&&t[s]>e[s]?t:e);for(const{resolve:e}of r)e(t);return}}if(o in this.queue){if(g in this.queue[o])return void this.queue[o][g].listeners.push(...r)}else this.queue[o]={};const p=()=>{o in this.queue&&this.queue[o][g]===d&&(delete this.queue[o][g],0===Object.keys(this.queue[o]).length&&delete this.queue[o])},d=()=>{const n=`${g}:${o}`;let i,f=!1;try{const C=this.tlsSessionCache.get(n),I=A.connect(e,{createConnection:this.createConnection,settings:this.settings,session:C?C.session:void 0,...t});I[s]=0;const E=()=>I[c].reduce((e,t)=>Math.min(e,h(this.freeSessions,o,t).length),1/0)I[s]{setImmediate(()=>{this.tlsSessionCache.set(n,{session:e,servername:i})})}),I.socket.once("secureConnect",()=>{i=I.socket.servername,!1===i&&void 0!==C&&void 0!==C.servername&&(I.socket.servername=C.servername)}),I.once("error",e=>{if(!f)for(const{reject:t}of r)t(e);this.tlsSessionCache.delete(n)}),I.setTimeout(this.timeout,()=>{I.destroy()}),I.once("close",()=>{if(!f){const e=new Error("Session closed without receiving a SETTINGS frame");for(const{reject:t}of r)t(e)}p(),l(this.freeSessions,o,I),this._tryToCreateNewSession(o,g)});const B=()=>{if(o in this.queue)for(const e of I[c])if(e in this.queue[o]){const{listeners:t}=this.queue[o][e];for(;0!==t.length&&m();)t.shift().resolve(I);if(0===this.queue[o][e].listeners.length&&(delete this.queue[o][e],0===Object.keys(this.queue[o]).length)){delete this.queue[o];break}if(!m())break}};I.once("origin",()=>{I[c]=I.originSet,m()&&(this._closeCoveredSessions(o,I),B(),I.on("remoteSettings",()=>{this._closeCoveredSessions(o,I)}))}),I.once("remoteSettings",()=>{if(d.destroyed){const e=new Error("Agent has been destroyed");for(const t of r)t.reject(e);I.destroy()}else I[c]=I.originSet,this.emit("session",I),E()?B():0===this.maxFreeSessions?(B(),setImmediate(()=>{I.close()})):I.close(),p(),0!==r.length&&(this.getSession(g,t,r),r.length=0),f=!0,I.on("remoteSettings",()=>{m()&&l(this.busySessions,o,I)&&(E()?B():u(this.busySessions,o,I))})}),I[a]=I.request,I.request=e=>{const t=I[a](e,{endStream:!1});return I.ref(),++I[s],!m()&&l(this.freeSessions,o,I)&&u(this.busySessions,o,I),t.once("close",()=>{--I[s],m()&&(0===I[s]&&I.unref(),!l(this.busySessions,o,I)||I.destroyed||I.closed||(E()?(this._closeCoveredSessions(o,I),B()):I.close())),I.destroyed||I.closed||((e,t,r)=>{if(t in e)for(const n of e[t])r[c].lengthn[c].includes(e))&&r[s]+n[s]<=n.remoteSettings.maxConcurrentStreams&&r.close()})(this.freeSessions,o,I)}),t}}catch(e){for(const t of r)t.reject(e);p()}};d.listeners=r,d.completed=!1,d.destroyed=!1,this.queue[o][g]=d,this._tryToCreateNewSession(o,g)})}request(e,t,r){return new Promise((n,i)=>{this.getSession(e,t,[{reject:i,resolve:e=>{n(e.request(r))}}])})}createConnection(e,t){return f.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];const r=e.port||443,n=e.hostname||e.host;return void 0===t.servername&&(t.servername=n),i.connect(r,n,t)}closeFreeSessions(){for(const e of Object.values(this.freeSessions))for(const t of e)0===t[s]&&t.close()}destroy(e){for(const t of Object.values(this.busySessions))for(const r of t)r.destroy(e);for(const t of Object.values(this.freeSessions))for(const r of t)r.destroy(e);for(const e of Object.values(this.queue))for(const t of Object.values(e))t.destroyed=!0;this.queue={}}}e.exports={Agent:f,globalAgent:new f}},89018:(e,t,r)=>{"use strict";const n=r(98605),i=r(57211),A=r(19476),o=r(82905),s=r(46889),a=r(44294),c=r(95581),g=new o({maxSize:100}),l=new Map,u=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};const n=()=>{e.emit("free",t,r)};t.on("free",n);const i=()=>{e.removeSocket(t,r)};t.on("close",i);const A=()=>{e.removeSocket(t,r),t.off("close",i),t.off("free",n),t.off("agentRemove",A)};t.on("agentRemove",A),e.emit("free",t,r)};e.exports=async(e,t,r)=>{("string"==typeof e||e instanceof URL)&&(e=c(new URL(e))),"function"==typeof t&&(r=t,t=void 0);const o="https:"===(t={ALPNProtocols:["h2","http/1.1"],protocol:"https:",...e,...t,resolveSocket:!0}).protocol,h=t.agent;if(t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||a(t),t.port=t.port||(o?443:80),t._defaultAgent=o?i.globalAgent:n.globalAgent,h){if(h.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=h[o?"https":"http"]}if(o){if("h2"===await(async e=>{const t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!g.has(t)){if(l.has(t)){return(await l.get(t)).alpnProtocol}const{path:r,agent:n}=e;e.path=e.socketPath;const o=A(e);l.set(t,o);try{const{socket:A,alpnProtocol:s}=await o;if(g.set(t,s),e.path=r,"h2"===s)A.destroy();else{const{globalAgent:t}=i,r=i.Agent.prototype.createConnection;n?n.createConnection===r?u(n,A,e):A.destroy():t.createConnection===r?u(t,A,e):A.destroy()}return l.delete(t),s}catch(e){throw l.delete(t),e}}return g.get(t)})(t))return h&&(t.agent=h.http2),new s(t,r)}return n.request(t,r)},e.exports.protocolCache=g},46889:(e,t,r)=>{"use strict";const n=r(97565),{Writable:i}=r(92413),{Agent:A,globalAgent:o}=r(92967),s=r(75744),a=r(95581),c=r(17395),g=r(13110),{ERR_INVALID_ARG_TYPE:l,ERR_INVALID_PROTOCOL:u,ERR_HTTP_HEADERS_SENT:h,ERR_INVALID_HTTP_TOKEN:p,ERR_HTTP_INVALID_HEADER_VALUE:f,ERR_INVALID_CHAR:d}=r(91078),{HTTP2_HEADER_STATUS:C,HTTP2_HEADER_METHOD:I,HTTP2_HEADER_PATH:E,HTTP2_METHOD_CONNECT:m}=n.constants,B=Symbol("headers"),y=Symbol("origin"),w=Symbol("session"),Q=Symbol("options"),v=Symbol("flushedHeaders"),b=Symbol("jobs"),D=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,S=/[^\t\u0020-\u007E\u0080-\u00FF]/;e.exports=class extends i{constructor(e,t,r){super({autoDestroy:!1});const n="string"==typeof e||e instanceof URL;if(n&&(e=a(e instanceof URL?e:new URL(e))),"function"==typeof t||void 0===t?(r=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[w]=t.h2session;else if(!1===t.agent)this.agent=new A({maxFreeSessions:0});else if(void 0===t.agent||null===t.agent)"function"==typeof t.createConnection?(this.agent=new A({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=o;else{if("function"!=typeof t.agent.request)throw new l("options.agent",["Agent-like Object","undefined","false"],t.agent);this.agent=t.agent}if(t.port||(t.port=t.defaultPort||this.agent&&this.agent.defaultPort||443),t.host=t.hostname||t.host||"localhost",t.protocol&&"https:"!==t.protocol)throw new u(t.protocol,"https:");const{timeout:i}=t;if(t.timeout=void 0,this[B]=Object.create(null),this[b]=[],this.socket=null,this.connection=null,this.method=t.method,this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(const[e,r]of Object.entries(t.headers))this.setHeader(e,r);t.auth&&!("authorization"in this[B])&&(this[B].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[Q]=t,443===t.port?(t.origin="https://"+t.host,":authority"in this[B]||(this[B][":authority"]=t.host)):(t.origin=`https://${t.host}:${t.port}`,":authority"in this[B]||(this[B][":authority"]=`${t.host}:${t.port}`)),this[y]=t,i&&this.setTimeout(i),r&&this.once("response",r),this[v]=!1}get method(){return this[B][I]}set method(e){e&&(this[B][I]=e.toUpperCase())}get path(){return this[B][E]}set path(e){e&&(this[B][E]=e)}_write(e,t,r){this.flushHeaders();const n=()=>this._request.write(e,t,r);this._request?n():this[b].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();const t=()=>this._request.end(e);this._request?t():this[b].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[v]||this.destroyed)return;this[v]=!0;const e=this.method===m,t=t=>{if(this._request=t,this.destroyed)return void t.destroy();e||c(t,this,["timeout","continue","close","error"]),t.once("response",(r,n,i)=>{const A=new s(this.socket,t.readableHighWaterMark);this.res=A,A.req=this,A.statusCode=r[C],A.headers=r,A.rawHeaders=i,A.once("end",()=>{this.aborted?(A.aborted=!0,A.emit("aborted")):(A.complete=!0,A.socket=null,A.connection=null)}),e?(A.upgrade=!0,this.emit("connect",A,t,Buffer.alloc(0))?this.emit("close"):t.destroy()):(t.on("data",e=>{A._dumped||A.push(e)||t.pause()}),t.once("end",()=>{A.push(null)}),this.emit("response",A)||A._dump())}),t.once("headers",e=>this.emit("information",{statusCode:e[C]})),t.once("trailers",(e,t,r)=>{const{res:n}=this;n.trailers=e,n.rawTrailers=r});const{socket:r}=t.session;this.socket=r,this.connection=r;for(const e of this[b])e();this.emit("socket",this.socket)};if(this[w])try{t(this[w].request(this[B],{endStream:!1}))}catch(e){this.emit("error",e)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[y],this[Q],this[B]))}catch(e){this.emit("error",e)}}}getHeader(e){if("string"!=typeof e)throw new l("name","string",e);return this[B][e.toLowerCase()]}get headersSent(){return this[v]}removeHeader(e){if("string"!=typeof e)throw new l("name","string",e);if(this.headersSent)throw new h("remove");delete this[B][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new h("set");if("string"!=typeof e||!D.test(e)&&!g(e))throw new p("Header name",e);if(void 0===t)throw new f(t,e);if(S.test(t))throw new d("header content",e);this[B][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){const r=()=>this._request.setTimeout(e,t);return this._request?r():this[b].push(r),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}}},75744:(e,t,r)=>{"use strict";const{Readable:n}=r(92413);e.exports=class extends n{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}}},9453:(e,t,r)=>{"use strict";const n=r(97565),i=r(92967),A=r(46889),o=r(75744),s=r(89018);e.exports={...n,ClientRequest:A,IncomingMessage:o,...i,request:(e,t,r)=>new A(e,t,r),get:(e,t,r)=>{const n=new A(e,t,r);return n.end(),n},auto:s}},44294:(e,t,r)=>{"use strict";const n=r(11631);e.exports=e=>{let t=e.host;const r=e.headers&&e.headers.host;if(r)if(r.startsWith("[")){t=-1===r.indexOf("]")?r:r.slice(1,-1)}else t=r.split(":",1)[0];return n.isIP(t)?"":t}},91078:e=>{"use strict";const t=(t,r,n)=>{e.exports[r]=class extends t{constructor(...e){super("string"==typeof n?n:n(e)),this.name=`${super.name} [${r}]`,this.code=r}}};t(TypeError,"ERR_INVALID_ARG_TYPE",e=>{const t=e[0].includes(".")?"property":"argument";let r=e[1];const n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`}),t(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`),t(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`),t(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`),t(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`),t(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)},13110:e=>{"use strict";e.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}},17395:e=>{"use strict";e.exports=(e,t,r)=>{for(const n of r)e.on(n,(...e)=>t.emit(n,...e))}},95581:e=>{"use strict";e.exports=e=>{const t={protocol:e.protocol,hostname:"string"==typeof e.hostname&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return"string"==typeof e.port&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},46458:e=>{function t(e){return Array.isArray(e)?e:[e]}const r=/^\s+$/,n=/^\\!/,i=/^\\#/,A=/\r?\n/g,o=/^\.*\/|^\.+$/,s="undefined"!=typeof Symbol?Symbol.for("node-ignore"):"node-ignore",a=/([0-z])-([0-z])/g,c=[[/\\?\s+$/,e=>0===e.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\^$.|*+(){]/g,e=>"\\"+e],[/\[([^\]/]*)($|\])/g,(e,t,r)=>{return"]"===r?`[${n=t,n.replace(a,(e,t,r)=>t.charCodeAt(0)<=r.charCodeAt(0)?e:"")}]`:"\\"+e;var n}],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/(?:[^*])$/,e=>/\/$/.test(e)?e+"$":e+"(?=$|\\/$)"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6t+"[^\\/]*"],[/(\^|\\\/)?\\\*$/,(e,t)=>(t?t+"[^/]+":"[^/]*")+"(?=$|\\/$)"],[/\\\\\\/g,()=>"\\"]],g=Object.create(null),l=e=>"string"==typeof e;class u{constructor(e,t,r,n){this.origin=e,this.pattern=t,this.negative=r,this.regex=n}}const h=(e,t)=>{const r=e;let A=!1;0===e.indexOf("!")&&(A=!0,e=e.substr(1));const o=((e,t,r)=>{const n=g[e];if(n)return n;const i=c.reduce((t,r)=>t.replace(r[0],r[1].bind(e)),e);return g[e]=r?new RegExp(i,"i"):new RegExp(i)})(e=e.replace(n,"!").replace(i,"#"),0,t);return new u(r,e,A,o)},p=(e,t)=>{throw new t(e)},f=(e,t,r)=>{if(!l(e))return r(`path must be a string, but got \`${t}\``,TypeError);if(!e)return r("path must not be empty",TypeError);if(f.isNotRelative(e)){return r(`path should be a ${"`path.relative()`d"} string, but got "${t}"`,RangeError)}return!0},d=e=>o.test(e);f.isNotRelative=d,f.convert=e=>e;class C{constructor({ignorecase:e=!0}={}){var t,r,n;this._rules=[],this._ignorecase=e,t=this,r=s,n=!0,Object.defineProperty(t,r,{value:n}),this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[s])return this._rules=this._rules.concat(e._rules),void(this._added=!0);if((e=>e&&l(e)&&!r.test(e)&&0!==e.indexOf("#"))(e)){const t=h(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,t(l(e)?(e=>e.split(A))(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let r=!1,n=!1;return this._rules.forEach(i=>{const{negative:A}=i;if(n===A&&r!==n||A&&!r&&!n&&!t)return;i.regex.test(e)&&(r=!A,n=A)}),{ignored:r,unignored:n}}_test(e,t,r,n){const i=e&&f.convert(e);return f(i,e,p),this._t(i,t,r,n)}_t(e,t,r,n){if(e in t)return t[e];if(n||(n=e.split("/")),n.pop(),!n.length)return t[e]=this._testOne(e,r);const i=this._t(n.join("/")+"/",t,r,n);return t[e]=i.ignored?i:this._testOne(e,r)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return t(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}}const I=e=>new C(e),E=()=>!1;if(I.isPathValid=e=>f(e&&f.convert(e),e,E),I.default=I,e.exports=I,"undefined"!=typeof process&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){const e=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,"/");f.convert=e;const t=/^[a-z]:\//i;f.isNotRelative=e=>t.test(e)||d(e)}},85870:(e,t,r)=>{try{var n=r(31669);if("function"!=typeof n.inherits)throw"";e.exports=n.inherits}catch(t){e.exports=r(48145)}},48145:e=>{"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},44486:e=>{ -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -e.exports=function(e){if("string"!=typeof e||""===e)return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}},18193:(e,t,r)=>{ -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ -var n=r(44486),i={"{":"}","(":")","[":"]"},A=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,o=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;e.exports=function(e,t){if("string"!=typeof e||""===e)return!1;if(n(e))return!0;var r,s=A;for(t&&!1===t.strict&&(s=o);r=s.exec(e);){if(r[2])return!0;var a=r.index+r[0].length,c=r[1],g=c?i[c]:null;if(c&&g){var l=e.indexOf(g,a);-1!==l&&(a=l+1)}e=e.slice(a)}return!1}},59235:e=>{"use strict"; -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */e.exports=function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(Number.isFinite?Number.isFinite(+e):isFinite(+e))}},97369:(e,t)=>{var r,n,i,A; -/*! - * is-windows - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */A=function(){"use strict";return function(){return process&&("win32"===process.platform||/^(msys|cygwin)$/.test(process.env.OSTYPE))}},t&&"object"==typeof t?e.exports=A():(n=[],void 0===(i="function"==typeof(r=A)?r.apply(t,n):r)||(e.exports=i))},64151:(e,t,r)=>{var n;r(35747);function i(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw new TypeError("callback not provided");return new Promise((function(r,n){i(e,t||{},(function(e,t){e?n(e):r(t)}))}))}n(e,t||{},(function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n)}))}n="win32"===process.platform||global.TESTING_WINDOWS?r(3202):r(2151),e.exports=i,i.sync=function(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e}}},2151:(e,t,r)=>{e.exports=i,i.sync=function(e,t){return A(n.statSync(e),t)};var n=r(35747);function i(e,t,r){n.stat(e,(function(e,n){r(e,!e&&A(n,t))}))}function A(e,t){return e.isFile()&&function(e,t){var r=e.mode,n=e.uid,i=e.gid,A=void 0!==t.uid?t.uid:process.getuid&&process.getuid(),o=void 0!==t.gid?t.gid:process.getgid&&process.getgid(),s=parseInt("100",8),a=parseInt("010",8),c=parseInt("001",8),g=s|a;return r&c||r&a&&i===o||r&s&&n===A||r&g&&0===A}(e,t)}},3202:(e,t,r)=>{e.exports=A,A.sync=function(e,t){return i(n.statSync(e),e,t)};var n=r(35747);function i(e,t,r){return!(!e.isSymbolicLink()&&!e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r)return!0;if(-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n{"use strict";var n=r(40744);e.exports=n},40744:(e,t,r)=>{"use strict";var n=r(55384),i=r(24129);function A(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=r(81704),e.exports.Schema=r(8212),e.exports.FAILSAFE_SCHEMA=r(44413),e.exports.JSON_SCHEMA=r(45247),e.exports.CORE_SCHEMA=r(8769),e.exports.DEFAULT_SAFE_SCHEMA=r(65483),e.exports.DEFAULT_FULL_SCHEMA=r(5235),e.exports.load=n.load,e.exports.loadAll=n.loadAll,e.exports.safeLoad=n.safeLoad,e.exports.safeLoadAll=n.safeLoadAll,e.exports.dump=i.dump,e.exports.safeDump=i.safeDump,e.exports.YAMLException=r(17345),e.exports.MINIMAL_SCHEMA=r(44413),e.exports.SAFE_SCHEMA=r(65483),e.exports.DEFAULT_SCHEMA=r(5235),e.exports.scan=A("scan"),e.exports.parse=A("parse"),e.exports.compose=A("compose"),e.exports.addConstructor=A("addConstructor")},28149:e=>{"use strict";function t(e){return null==e}e.exports.isNothing=t,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:t(e)?[]:[e]},e.exports.repeat=function(e,t){var r,n="";for(r=0;r{"use strict";var n=r(28149),i=r(17345),A=r(5235),o=r(65483),s=Object.prototype.toString,a=Object.prototype.hasOwnProperty,c={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},g=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function l(e){var t,r,A;if(t=e.toString(16).toUpperCase(),e<=255)r="x",A=2;else if(e<=65535)r="u",A=4;else{if(!(e<=4294967295))throw new i("code point within a string may not be greater than 0xFFFFFFFF");r="U",A=8}return"\\"+r+n.repeat("0",A-t.length)+t}function u(e){this.schema=e.schema||A,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=n.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var r,n,i,A,o,s,c;if(null===t)return{};for(r={},i=0,A=(n=Object.keys(t)).length;in&&" "!==e[l+1],l=A);else if(!d(o))return 5;u=u&&C(o)}c=c||g&&A-l-1>n&&" "!==e[l+1]}return a||c?r>9&&I(e)?5:c?4:3:u&&!i(e)?1:2}function m(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==g.indexOf(t))return"'"+t+"'";var A=e.indent*Math.max(1,r),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-A),s=n||e.flowLevel>-1&&r>=e.flowLevel;switch(E(t,s,e.indent,o,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+B(t,e.indent)+y(h(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,A=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,w(e.slice(0,s),t)),o="\n"===e[0]||" "===e[0];var s;for(;n=i.exec(e);){var a=n[1],c=n[2];r=" "===c[0],A+=a+(o||r||""===c?"":"\n")+w(c,t),o=r}return A}(t,o),A));case 5:return'"'+function(e){for(var t,r,n,i="",A=0;A=55296&&t<=56319&&(r=e.charCodeAt(A+1))>=56320&&r<=57343?(i+=l(1024*(t-55296)+r-56320+65536),A++):(n=c[t],i+=!n&&d(t)?e[A]:n||l(t));return i}(t)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function B(e,t){var r=I(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function y(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function w(e,t){if(""===e||" "===e[0])return e;for(var r,n,i=/ [^ ]/g,A=0,o=0,s=0,a="";r=i.exec(e);)(s=r.index)-A>t&&(n=o>A?o:s,a+="\n"+e.slice(A,n),A=n+1),o=s;return a+="\n",e.length-A>t&&o>A?a+=e.slice(A,o)+"\n"+e.slice(o+1):a+=e.slice(A),a.slice(1)}function Q(e,t,r){var n,A,o,c,g,l;for(o=0,c=(A=r?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+l+'" style');n=g.represent[l](t,l)}e.dump=n}return!0}return!1}function v(e,t,r,n,A,o){e.tag=null,e.dump=r,Q(e,r,!1)||Q(e,r,!0);var a=s.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var c,g,l="[object Object]"===a||"[object Array]"===a;if(l&&(g=-1!==(c=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||g||2!==e.indent&&t>0)&&(A=!1),g&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(l&&g&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var A,o,s,a,c,g,l="",u=e.tag,h=Object.keys(r);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new i("sortKeys must be a boolean or a function");for(A=0,o=h.length;A1024)&&(e.dump&&10===e.dump.charCodeAt(0)?g+="?":g+="? "),g+=e.dump,c&&(g+=p(e,t)),v(e,t+1,a,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?g+=":":g+=": ",l+=g+=e.dump));e.tag=u,e.dump=l||"{}"}(e,t,e.dump,A),g&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,r){var n,i,A,o,s,a="",c=e.tag,g=Object.keys(r);for(n=0,i=g.length;n1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),v(e,t,o,!1,!1)&&(a+=s+=e.dump));e.tag=c,e.dump="{"+a+"}"}(e,t,e.dump),g&&(e.dump="&ref_"+c+" "+e.dump));else if("[object Array]"===a){var u=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,r,n){var i,A,o="",s=e.tag;for(i=0,A=r.length;i "+e.dump)}return!0}function b(e,t){var r,n,i=[],A=[];for(function e(t,r,n){var i,A,o;if(null!==t&&"object"==typeof t)if(-1!==(A=r.indexOf(t)))-1===n.indexOf(A)&&n.push(A);else if(r.push(t),Array.isArray(t))for(A=0,o=t.length;A{"use strict";function t(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=t},55384:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),A=r(30399),o=r(65483),s=r(5235),a=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/[\x85\u2028\u2029]/,l=/[,\[\]\{\}]/,u=/^(?:!|!!|![a-z\-]+!)$/i,h=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function p(e){return 10===e||13===e}function f(e){return 9===e||32===e}function d(e){return 9===e||32===e||10===e||13===e}function C(e){return 44===e||91===e||93===e||123===e||125===e}function I(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function E(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function m(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var B=new Array(256),y=new Array(256),w=0;w<256;w++)B[w]=E(w)?1:0,y[w]=E(w);function Q(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function v(e,t){return new i(t,new A(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function b(e,t){throw v(e,t)}function D(e,t){e.onWarning&&e.onWarning.call(null,v(e,t))}var S={YAML:function(e,t,r){var n,i,A;null!==e.version&&b(e,"duplication of %YAML directive"),1!==r.length&&b(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&b(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),A=parseInt(n[2],10),1!==i&&b(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=A<2,1!==A&&2!==A&&D(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,i;2!==r.length&&b(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],u.test(n)||b(e,"ill-formed tag handle (first argument) of the TAG directive"),a.call(e.tagMap,n)&&b(e,'there is a previously declared suffix for "'+n+'" tag handle'),h.test(i)||b(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function k(e,t,r,n){var i,A,o,s;if(t1&&(e.result+=n.repeat("\n",t-1))}function x(e,t){var r,n,i=e.tag,A=e.anchor,o=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),n=e.input.charCodeAt(e.position);0!==n&&45===n&&d(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,R(e,!0,-1)&&e.lineIndent<=t)o.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,T(e,t,3,!1,!0),o.push(e.result),R(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)b(e,"bad indentation of a sequence entry");else if(e.lineIndentt?w=1:e.lineIndent===t?w=0:e.lineIndentt?w=1:e.lineIndent===t?w=0:e.lineIndentt)&&(T(e,t,4,!0,i)&&(C?h=e.result:p=e.result),C||(N(e,g,l,u,h,p,A,o),u=h=p=null),R(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)b(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===A?b(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):g?b(e,"repeat of an indentation width identifier"):(l=t+A-1,g=!0)}if(f(o)){do{o=e.input.charCodeAt(++e.position)}while(f(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!p(o)&&0!==o)}for(;0!==o;){for(F(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!g||e.lineIndentl&&(l=e.lineIndent),p(o))u++;else{if(e.lineIndent0){for(i=o,A=0;i>0;i--)(o=I(s=e.input.charCodeAt(++e.position)))>=0?A=(A<<4)+o:b(e,"expected hexadecimal character");e.result+=m(A),e.position++}else b(e,"unknown escape sequence");r=n=e.position}else p(s)?(k(e,r,n,!0),L(e,R(e,!1,t)),r=n=e.position):e.position===e.lineStart&&K(e)?b(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}b(e,"unexpected end of the stream within a double quoted scalar")}(e,h)?v=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!d(n)&&!C(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&b(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(r)||b(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],R(e,!0,-1),!0}(e)?function(e,t,r){var n,i,A,o,s,a,c,g,l=e.kind,u=e.result;if(d(g=e.input.charCodeAt(e.position))||C(g)||35===g||38===g||42===g||33===g||124===g||62===g||39===g||34===g||37===g||64===g||96===g)return!1;if((63===g||45===g)&&(d(n=e.input.charCodeAt(e.position+1))||r&&C(n)))return!1;for(e.kind="scalar",e.result="",i=A=e.position,o=!1;0!==g;){if(58===g){if(d(n=e.input.charCodeAt(e.position+1))||r&&C(n))break}else if(35===g){if(d(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&K(e)||r&&C(g))break;if(p(g)){if(s=e.line,a=e.lineStart,c=e.lineIndent,R(e,!1,-1),e.lineIndent>=t){o=!0,g=e.input.charCodeAt(e.position);continue}e.position=A,e.line=s,e.lineStart=a,e.lineIndent=c;break}}o&&(k(e,i,A,!1),L(e,e.line-s),i=A=e.position,o=!1),f(g)||(A=e.position+1),g=e.input.charCodeAt(++e.position)}return k(e,i,A,!1),!!e.result||(e.kind=l,e.result=u,!1)}(e,h,1===r)&&(v=!0,null===e.tag&&(e.tag="?")):(v=!0,null===e.tag&&null===e.anchor||b(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===w&&(v=c&&x(e,E))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(g=0,l=e.implicitTypes.length;g tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):b(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):b(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||v}function O(e){var t,r,n,i,A=e.position,o=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(i=e.input.charCodeAt(e.position))&&(R(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(o=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&b(e,"directive name must not be less than one character in length");0!==i;){for(;f(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!p(i));break}if(p(i))break;for(t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&F(e),a.call(S,r)?S[r](e,r,n):D(e,'unknown document directive "'+r+'"')}R(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,R(e,!0,-1)):o&&b(e,"directives end mark is expected"),T(e,e.lineIndent-1,4,!1,!0),R(e,!0,-1),e.checkLineBreaks&&g.test(e.input.slice(A,e.position))&&D(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&K(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,R(e,!0,-1)):e.position{"use strict";var n=r(28149);function i(e,t,r,n,i){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=i}i.prototype.getSnippet=function(e,t){var r,i,A,o,s;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",i=this.position;i>0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){r=" ... ",i+=5;break}for(A="",o=this.position;ot/2-1){A=" ... ",o-=5;break}return s=this.buffer.slice(i,o),n.repeat(" ",e)+r+s+A+"\n"+n.repeat(" ",e+this.position-i+r.length)+"^"},i.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},e.exports=i},8212:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),A=r(81704);function o(e,t,r){var n=[];return e.include.forEach((function(e){r=o(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new i("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=o(this,"implicit",[]),this.compiledExplicit=o(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e{"use strict";var n=r(8212);e.exports=new n({include:[r(45247)]})},5235:(e,t,r)=>{"use strict";var n=r(8212);e.exports=n.DEFAULT=new n({include:[r(65483)],explicit:[r(61425),r(61872),r(79982)]})},65483:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(8769)],implicit:[r(83516),r(95441)],explicit:[r(34836),r(6847),r(65173),r(92025)]})},44413:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({explicit:[r(19952),r(46557),r(90173)]})},45247:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(44413)],implicit:[r(40188),r(58357),r(82106),r(71945)]})},81704:(e,t,r)=>{"use strict";var n=r(17345),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],A=["scalar","sequence","mapping"];e.exports=function(e,t){var r,o;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,o={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){o[String(t)]=e}))})),o),-1===A.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},34836:(e,t,r)=>{"use strict";var n;try{n=r(64293).Buffer}catch(e){}var i=r(81704),A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new i("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,o=A;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,i=e.replace(/[\r\n=]/g,""),o=i.length,s=A,a=0,c=[];for(t=0;t>16&255),c.push(a>>8&255),c.push(255&a)),a=a<<6|s.indexOf(i.charAt(t));return 0===(r=o%4*6)?(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)):18===r?(c.push(a>>10&255),c.push(a>>2&255)):12===r&&c.push(a>>4&255),n?n.from?n.from(c):new n(c):c},predicate:function(e){return n&&n.isBuffer(e)},represent:function(e){var t,r,n="",i=0,o=e.length,s=A;for(t=0;t>18&63],n+=s[i>>12&63],n+=s[i>>6&63],n+=s[63&i]),i=(i<<8)+e[t];return 0===(r=o%3)?(n+=s[i>>18&63],n+=s[i>>12&63],n+=s[i>>6&63],n+=s[63&i]):2===r?(n+=s[i>>10&63],n+=s[i>>4&63],n+=s[i<<2&63],n+=s[64]):1===r&&(n+=s[i>>2&63],n+=s[i<<4&63],n+=s[64],n+=s[64]),n}})},58357:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},71945:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704),A=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var o=/^[-+]?[0-9]+e/;e.exports=new i("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!A.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,i;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){i.unshift(parseFloat(e,10))})),t=0,n=1,i.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),o.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},82106:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704);function A(e){return 48<=e&&e<=55}function o(e){return 48<=e&&e<=57}e.exports=new i("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,i=0,s=!1;if(!n)return!1;if("-"!==(t=e[i])&&"+"!==t||(t=e[++i]),"0"===t){if(i+1===n)return!0;if("b"===(t=e[++i])){for(i++;i=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},79982:(e,t,r)=>{"use strict";var n;try{n=r(Object(function(){var e=new Error("Cannot find module 'esprima'");throw e.code="MODULE_NOT_FOUND",e}()))}catch(e){"undefined"!=typeof window&&(n=window.esprima)}var i=r(81704);e.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=n.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,r="("+e+")",i=n.parse(r,{range:!0}),A=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(e){A.push(e.name)})),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(A,r.slice(t[0]+1,t[1]-1)):new Function(A,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},61872:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),n.length>3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},61425:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},90173:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},95441:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},40188:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},6847:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty,A=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,s,a=[],c=e;for(t=0,r=c.length;t{"use strict";var n=r(81704),i=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,A,o,s=e;for(o=new Array(s.length),t=0,r=s.length;t{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},92025:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty;e.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,r=e;for(t in r)if(i.call(r,t)&&null!==r[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},19952:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},83516:(e,t,r)=>{"use strict";var n=r(81704),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),A=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==i.exec(e)||null!==A.exec(e))},construct:function(e){var t,r,n,o,s,a,c,g,l=0,u=null;if(null===(t=i.exec(e))&&(t=A.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,o=+t[3],!t[4])return new Date(Date.UTC(r,n,o));if(s=+t[4],a=+t[5],c=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),g=new Date(Date.UTC(r,n,o,s,a,c,l)),u&&g.setTime(g.getTime()-u),g},instanceOf:Date,represent:function(e){return e.toISOString()}})},7427:(e,t)=>{t.stringify=function e(t){if(void 0===t)return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&"object"==typeof t){var r="",n=Array.isArray(t);r=n?"[":"{";var i=!0;for(var A in t){var o="function"==typeof t[A]||!n&&void 0===t[A];Object.hasOwnProperty.call(t,A)&&!o&&(i||(r+=","),i=!1,n?null==t[A]?r+="null":r+=e(t[A]):void 0!==t[A]&&(r+=e(A)+":"+e(t[A])))}return r+=n?"]":"}"}return"string"==typeof t?JSON.stringify(/^:/.test(t)?":"+t:t):void 0===t?"null":JSON.stringify(t)},t.parse=function(e){return JSON.parse(e,(function(e,t){return"string"==typeof t?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t}))}},72515:(e,t,r)=>{"use strict";const n=r(28614),i=r(7427);e.exports=class extends n{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:i.stringify,deserialize:i.parse},"string"==typeof e?{uri:e}:e,t),!this.opts.store){const e=Object.assign({},this.opts);this.opts.store=(e=>{const t={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(e.adapter||e.uri){const n=e.adapter||/^[^:]*/.exec(e.uri)[0];return new(r(89112)(t[n]))(e)}return new Map})(e)}"function"==typeof this.opts.store.on&&this.opts.store.on("error",e=>this.emit("error",e)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);const{store:r}=this.opts;return Promise.resolve().then(()=>r.get(e)).then(e=>"string"==typeof e?this.opts.deserialize(e):e).then(r=>{if(void 0!==r){if(!("number"==typeof r.expires&&Date.now()>r.expires))return t&&t.raw?r:r.value;this.delete(e)}})}set(e,t,r){e=this._getKeyPrefix(e),void 0===r&&(r=this.opts.ttl),0===r&&(r=void 0);const{store:n}=this.opts;return Promise.resolve().then(()=>{const e="number"==typeof r?Date.now()+r:null;return t={value:t,expires:e},this.opts.serialize(t)}).then(t=>n.set(e,t,r)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);const{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){const{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}}},89112:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=89112,e.exports=t},78962:(e,t,r)=>{var n=r(99513)(r(76169),"DataView");e.exports=n},72574:(e,t,r)=>{var n=r(31713),i=r(86688),A=r(45937),o=r(5017),s=r(79457);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t{var n=r(14620),i=r(73682),A=r(43112),o=r(90640),s=r(9380);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t{var n=r(99513)(r(76169),"Map");e.exports=n},75009:(e,t,r)=>{var n=r(18209),i=r(89706),A=r(43786),o=r(17926),s=r(87345);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t{var n=r(99513)(r(76169),"Promise");e.exports=n},43231:(e,t,r)=>{var n=r(99513)(r(76169),"Set");e.exports=n},46235:(e,t,r)=>{var n=r(75009),i=r(74785),A=r(87760);function o(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t{var n=r(29197),i=r(35678),A=r(33336),o=r(97163),s=r(43737),a=r(48548);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=A,c.prototype.get=o,c.prototype.has=s,c.prototype.set=a,e.exports=c},69976:(e,t,r)=>{var n=r(76169).Symbol;e.exports=n},2740:(e,t,r)=>{var n=r(76169).Uint8Array;e.exports=n},47063:(e,t,r)=>{var n=r(99513)(r(76169),"WeakMap");e.exports=n},66636:e=>{e.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},33326:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,A=[];++r{var n=r(7089),i=r(61771),A=r(82664),o=r(10667),s=r(98041),a=r(32565),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=A(e),g=!r&&i(e),l=!r&&!g&&o(e),u=!r&&!g&&!l&&a(e),h=r||g||l||u,p=h?n(e.length,String):[],f=p.length;for(var d in e)!t&&!c.call(e,d)||h&&("length"==d||l&&("offset"==d||"parent"==d)||u&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||s(d,f))||p.push(d);return p}},60783:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r{e.exports=function(e,t){for(var r=-1,n=t.length,i=e.length;++r{e.exports=function(e,t,r,n){var i=-1,A=null==e?0:e.length;for(n&&A&&(r=e[++i]);++i{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r{e.exports=function(e){return e.split("")}},11852:e=>{var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(t)||[]}},26943:(e,t,r)=>{var n=r(91198),i=r(71074);e.exports=function(e,t,r){(void 0!==r&&!i(e[t],r)||void 0===r&&!(t in e))&&n(e,t,r)}},65759:(e,t,r)=>{var n=r(91198),i=r(71074),A=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){var o=e[t];A.call(e,t)&&i(o,r)&&(void 0!==r||t in e)||n(e,t,r)}},39836:(e,t,r)=>{var n=r(71074);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},28628:(e,t,r)=>{var n=r(75182),i=r(42185);e.exports=function(e,t){return e&&n(t,i(t),e)}},78707:(e,t,r)=>{var n=r(75182),i=r(24887);e.exports=function(e,t){return e&&n(t,i(t),e)}},91198:(e,t,r)=>{var n=r(65);e.exports=function(e,t,r){"__proto__"==t&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}},41076:(e,t,r)=>{var n=r(22851),i=r(33326),A=r(65759),o=r(28628),s=r(78707),a=r(64266),c=r(87229),g=r(23105),l=r(60741),u=r(60753),h=r(64420),p=r(79435),f=r(27908),d=r(37836),C=r(88438),I=r(82664),E=r(10667),m=r(13349),B=r(46778),y=r(33931),w=r(42185),Q={};Q["[object Arguments]"]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q["[object Object]"]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q["[object Function]"]=Q["[object WeakMap]"]=!1,e.exports=function e(t,r,v,b,D,S){var k,M=1&r,N=2&r,F=4&r;if(v&&(k=D?v(t,b,D,S):v(t)),void 0!==k)return k;if(!B(t))return t;var R=I(t);if(R){if(k=f(t),!M)return c(t,k)}else{var K=p(t),L="[object Function]"==K||"[object GeneratorFunction]"==K;if(E(t))return a(t,M);if("[object Object]"==K||"[object Arguments]"==K||L&&!D){if(k=N||L?{}:C(t),!M)return N?l(t,s(k,t)):g(t,o(k,t))}else{if(!Q[K])return D?t:{};k=d(t,K,M)}}S||(S=new n);var x=S.get(t);if(x)return x;S.set(t,k),y(t)?t.forEach((function(n){k.add(e(n,r,v,n,t,S))})):m(t)&&t.forEach((function(n,i){k.set(i,e(n,r,v,i,t,S))}));var P=F?N?h:u:N?keysIn:w,U=R?void 0:P(t);return i(U||t,(function(n,i){U&&(n=t[i=n]),A(k,i,e(n,r,v,i,t,S))})),k}},15178:(e,t,r)=>{var n=r(46778),i=Object.create,A=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=A},31689:(e,t,r)=>{var n=r(59907)();e.exports=n},62164:(e,t,r)=>{var n=r(31689),i=r(42185);e.exports=function(e,t){return e&&n(e,t,i)}},84173:(e,t,r)=>{var n=r(56725),i=r(49874);e.exports=function(e,t){for(var r=0,A=(t=n(t,e)).length;null!=e&&r{var n=r(40945),i=r(82664);e.exports=function(e,t,r){var A=t(e);return i(e)?A:n(A,r(e))}},52502:(e,t,r)=>{var n=r(69976),i=r(2854),A=r(87427),o=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":o&&o in Object(e)?i(e):A(e)}},95325:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e,r){return null!=e&&t.call(e,r)}},3881:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},76357:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return i(e)&&"[object Arguments]"==n(e)}},74195:(e,t,r)=>{var n=r(48957),i=r(38496);e.exports=function e(t,r,A,o,s){return t===r||(null==t||null==r||!i(t)&&!i(r)?t!=t&&r!=r:n(t,r,A,o,e,s))}},48957:(e,t,r)=>{var n=r(22851),i=r(75500),A=r(28475),o=r(50245),s=r(79435),a=r(82664),c=r(10667),g=r(32565),l="[object Object]",u=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,h,p,f){var d=a(e),C=a(t),I=d?"[object Array]":s(e),E=C?"[object Array]":s(t),m=(I="[object Arguments]"==I?l:I)==l,B=(E="[object Arguments]"==E?l:E)==l,y=I==E;if(y&&c(e)){if(!c(t))return!1;d=!0,m=!1}if(y&&!m)return f||(f=new n),d||g(e)?i(e,t,r,h,p,f):A(e,t,I,r,h,p,f);if(!(1&r)){var w=m&&u.call(e,"__wrapped__"),Q=B&&u.call(t,"__wrapped__");if(w||Q){var v=w?e.value():e,b=Q?t.value():t;return f||(f=new n),p(v,b,r,h,f)}}return!!y&&(f||(f=new n),o(e,t,r,h,p,f))}},55994:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Map]"==n(e)}},66470:(e,t,r)=>{var n=r(22851),i=r(74195);e.exports=function(e,t,r,A){var o=r.length,s=o,a=!A;if(null==e)return!s;for(e=Object(e);o--;){var c=r[o];if(a&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++o{var n=r(92533),i=r(15061),A=r(46778),o=r(76384),s=/^\[object .+?Constructor\]$/,a=Function.prototype,c=Object.prototype,g=a.toString,l=c.hasOwnProperty,u=RegExp("^"+g.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!A(e)||i(e))&&(n(e)?u:s).test(o(e))}},28612:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Set]"==n(e)}},98998:(e,t,r)=>{var n=r(52502),i=r(46369),A=r(38496),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,e.exports=function(e){return A(e)&&i(e.length)&&!!o[n(e)]}},42208:(e,t,r)=>{var n=r(96962),i=r(90348),A=r(61977),o=r(82664),s=r(7430);e.exports=function(e){return"function"==typeof e?e:null==e?A:"object"==typeof e?o(e)?i(e[0],e[1]):n(e):s(e)}},50994:(e,t,r)=>{var n=r(89513),i=r(60657),A=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return i(e);var t=[];for(var r in Object(e))A.call(e,r)&&"constructor"!=r&&t.push(r);return t}},8372:(e,t,r)=>{var n=r(46778),i=r(89513),A=r(95632),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return A(e);var t=i(e),r=[];for(var s in e)("constructor"!=s||!t&&o.call(e,s))&&r.push(s);return r}},96962:(e,t,r)=>{var n=r(66470),i=r(98705),A=r(12757);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?A(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},90348:(e,t,r)=>{var n=r(74195),i=r(44674),A=r(34878),o=r(70474),s=r(20925),a=r(12757),c=r(49874);e.exports=function(e,t){return o(e)&&s(t)?a(c(e),t):function(r){var o=i(r,e);return void 0===o&&o===t?A(r,e):n(t,o,3)}}},51264:(e,t,r)=>{var n=r(22851),i=r(26943),A=r(31689),o=r(16834),s=r(46778),a=r(24887),c=r(36883);e.exports=function e(t,r,g,l,u){t!==r&&A(r,(function(A,a){if(u||(u=new n),s(A))o(t,r,a,g,e,l,u);else{var h=l?l(c(t,a),A,a+"",t,r,u):void 0;void 0===h&&(h=A),i(t,a,h)}}),a)}},16834:(e,t,r)=>{var n=r(26943),i=r(64266),A=r(58042),o=r(87229),s=r(88438),a=r(61771),c=r(82664),g=r(16064),l=r(10667),u=r(92533),h=r(46778),p=r(11672),f=r(32565),d=r(36883),C=r(36506);e.exports=function(e,t,r,I,E,m,B){var y=d(e,r),w=d(t,r),Q=B.get(w);if(Q)n(e,r,Q);else{var v=m?m(y,w,r+"",e,t,B):void 0,b=void 0===v;if(b){var D=c(w),S=!D&&l(w),k=!D&&!S&&f(w);v=w,D||S||k?c(y)?v=y:g(y)?v=o(y):S?(b=!1,v=i(w,!0)):k?(b=!1,v=A(w,!0)):v=[]:p(w)||a(w)?(v=y,a(y)?v=C(y):h(y)&&!u(y)||(v=s(w))):b=!1}b&&(B.set(w,v),E(v,w,I,m,B),B.delete(w)),n(e,r,v)}}},35400:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},43018:(e,t,r)=>{var n=r(84173);e.exports=function(e){return function(t){return n(t,e)}}},51587:e=>{e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},30383:(e,t,r)=>{var n=r(61977),i=r(44322),A=r(3111);e.exports=function(e,t){return A(i(e,t,n),e+"")}},10624:(e,t,r)=>{var n=r(65759),i=r(56725),A=r(98041),o=r(46778),s=r(49874);e.exports=function(e,t,r,a){if(!o(e))return e;for(var c=-1,g=(t=i(t,e)).length,l=g-1,u=e;null!=u&&++c{var n=r(4967),i=r(65),A=r(61977),o=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:A;e.exports=o},27708:e=>{e.exports=function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var A=Array(i);++n{e.exports=function(e,t){for(var r=-1,n=Array(e);++r{var n=r(69976),i=r(60783),A=r(82664),o=r(65558),s=n?n.prototype:void 0,a=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(A(t))return i(t,e)+"";if(o(t))return a?a.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},73635:e=>{e.exports=function(e){return function(t){return e(t)}}},18290:(e,t,r)=>{var n=r(60783);e.exports=function(e,t){return n(t,(function(t){return e[t]}))}},93022:e=>{e.exports=function(e,t){return e.has(t)}},56725:(e,t,r)=>{var n=r(82664),i=r(70474),A=r(8689),o=r(33580);e.exports=function(e,t){return n(e)?e:i(e,t)?[e]:A(o(e))}},92568:(e,t,r)=>{var n=r(27708);e.exports=function(e,t,r){var i=e.length;return r=void 0===r?i:r,!t&&r>=i?e:n(e,t,r)}},76255:(e,t,r)=>{var n=r(2740);e.exports=function(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}},64266:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=t&&!t.nodeType&&t,A=i&&e&&!e.nodeType&&e,o=A&&A.exports===i?n.Buffer:void 0,s=o?o.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var r=e.length,n=s?s(r):new e.constructor(r);return e.copy(n),n}},63749:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}},41705:e=>{var t=/\w*$/;e.exports=function(e){var r=new e.constructor(e.source,t.exec(e));return r.lastIndex=e.lastIndex,r}},25791:(e,t,r)=>{var n=r(69976),i=n?n.prototype:void 0,A=i?i.valueOf:void 0;e.exports=function(e){return A?Object(A.call(e)):{}}},58042:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}},87229:e=>{e.exports=function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r{var n=r(65759),i=r(91198);e.exports=function(e,t,r,A){var o=!r;r||(r={});for(var s=-1,a=t.length;++s{var n=r(75182),i=r(68727);e.exports=function(e,t){return n(e,i(e),t)}},60741:(e,t,r)=>{var n=r(75182),i=r(35368);e.exports=function(e,t){return n(e,i(e),t)}},14429:(e,t,r)=>{var n=r(76169)["__core-js_shared__"];e.exports=n},27913:(e,t,r)=>{var n=r(30383),i=r(33193);e.exports=function(e){return n((function(t,r){var n=-1,A=r.length,o=A>1?r[A-1]:void 0,s=A>2?r[2]:void 0;for(o=e.length>3&&"function"==typeof o?(A--,o):void 0,s&&i(r[0],r[1],s)&&(o=A<3?void 0:o,A=1),t=Object(t);++n{e.exports=function(e){return function(t,r,n){for(var i=-1,A=Object(t),o=n(t),s=o.length;s--;){var a=o[e?s:++i];if(!1===r(A[a],a,A))break}return t}}},56989:(e,t,r)=>{var n=r(92568),i=r(93024),A=r(30475),o=r(33580);e.exports=function(e){return function(t){t=o(t);var r=i(t)?A(t):void 0,s=r?r[0]:t.charAt(0),a=r?n(r,1).join(""):t.slice(1);return s[e]()+a}}},30369:(e,t,r)=>{var n=r(66054),i=r(68968),A=r(97684),o=RegExp("['’]","g");e.exports=function(e){return function(t){return n(A(i(t).replace(o,"")),e,"")}}},69922:(e,t,r)=>{var n=r(51587)({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"});e.exports=n},65:(e,t,r)=>{var n=r(99513),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},75500:(e,t,r)=>{var n=r(46235),i=r(17765),A=r(93022);e.exports=function(e,t,r,o,s,a){var c=1&r,g=e.length,l=t.length;if(g!=l&&!(c&&l>g))return!1;var u=a.get(e);if(u&&a.get(t))return u==t;var h=-1,p=!0,f=2&r?new n:void 0;for(a.set(e,t),a.set(t,e);++h{var n=r(69976),i=r(2740),A=r(71074),o=r(75500),s=r(7877),a=r(7442),c=n?n.prototype:void 0,g=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,l,u){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!l(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return A(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var h=s;case"[object Set]":var p=1&n;if(h||(h=a),e.size!=t.size&&!p)return!1;var f=u.get(e);if(f)return f==t;n|=2,u.set(e,t);var d=o(h(e),h(t),n,c,l,u);return u.delete(e),d;case"[object Symbol]":if(g)return g.call(e)==g.call(t)}return!1}},50245:(e,t,r)=>{var n=r(60753),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,A,o,s){var a=1&r,c=n(e),g=c.length;if(g!=n(t).length&&!a)return!1;for(var l=g;l--;){var u=c[l];if(!(a?u in t:i.call(t,u)))return!1}var h=s.get(e);if(h&&s.get(t))return h==t;var p=!0;s.set(e,t),s.set(t,e);for(var f=a;++l{var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},60753:(e,t,r)=>{var n=r(40104),i=r(68727),A=r(42185);e.exports=function(e){return n(e,A,i)}},64420:(e,t,r)=>{var n=r(40104),i=r(35368),A=r(24887);e.exports=function(e){return n(e,A,i)}},59253:(e,t,r)=>{var n=r(69448);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},98705:(e,t,r)=>{var n=r(20925),i=r(42185);e.exports=function(e){for(var t=i(e),r=t.length;r--;){var A=t[r],o=e[A];t[r]=[A,o,n(o)]}return t}},99513:(e,t,r)=>{var n=r(91686),i=r(98054);e.exports=function(e,t){var r=i(e,t);return n(r)?r:void 0}},41181:(e,t,r)=>{var n=r(64309)(Object.getPrototypeOf,Object);e.exports=n},2854:(e,t,r)=>{var n=r(69976),i=Object.prototype,A=i.hasOwnProperty,o=i.toString,s=n?n.toStringTag:void 0;e.exports=function(e){var t=A.call(e,s),r=e[s];try{e[s]=void 0;var n=!0}catch(e){}var i=o.call(e);return n&&(t?e[s]=r:delete e[s]),i}},68727:(e,t,r)=>{var n=r(9073),i=r(62162),A=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,s=o?function(e){return null==e?[]:(e=Object(e),n(o(e),(function(t){return A.call(e,t)})))}:i;e.exports=s},35368:(e,t,r)=>{var n=r(40945),i=r(41181),A=r(68727),o=r(62162),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,A(e)),e=i(e);return t}:o;e.exports=s},79435:(e,t,r)=>{var n=r(78962),i=r(63603),A=r(5825),o=r(43231),s=r(47063),a=r(52502),c=r(76384),g=c(n),l=c(i),u=c(A),h=c(o),p=c(s),f=a;(n&&"[object DataView]"!=f(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=f(new i)||A&&"[object Promise]"!=f(A.resolve())||o&&"[object Set]"!=f(new o)||s&&"[object WeakMap]"!=f(new s))&&(f=function(e){var t=a(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case g:return"[object DataView]";case l:return"[object Map]";case u:return"[object Promise]";case h:return"[object Set]";case p:return"[object WeakMap]"}return t}),e.exports=f},98054:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},71507:(e,t,r)=>{var n=r(56725),i=r(61771),A=r(82664),o=r(98041),s=r(46369),a=r(49874);e.exports=function(e,t,r){for(var c=-1,g=(t=n(t,e)).length,l=!1;++c{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},60466:e=>{var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},31713:(e,t,r)=>{var n=r(52437);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},86688:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},45937:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return i.call(t,e)?t[e]:void 0}},5017:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:i.call(t,e)}},79457:(e,t,r)=>{var n=r(52437);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},27908:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var r=e.length,n=new e.constructor(r);return r&&"string"==typeof e[0]&&t.call(e,"index")&&(n.index=e.index,n.input=e.input),n}},37836:(e,t,r)=>{var n=r(76255),i=r(63749),A=r(41705),o=r(25791),s=r(58042);e.exports=function(e,t,r){var a=e.constructor;switch(t){case"[object ArrayBuffer]":return n(e);case"[object Boolean]":case"[object Date]":return new a(+e);case"[object DataView]":return i(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,r);case"[object Map]":return new a;case"[object Number]":case"[object String]":return new a(e);case"[object RegExp]":return A(e);case"[object Set]":return new a;case"[object Symbol]":return o(e)}}},88438:(e,t,r)=>{var n=r(15178),i=r(41181),A=r(89513);e.exports=function(e){return"function"!=typeof e.constructor||A(e)?{}:n(i(e))}},98041:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e{var n=r(71074),i=r(41929),A=r(98041),o=r(46778);e.exports=function(e,t,r){if(!o(r))return!1;var s=typeof t;return!!("number"==s?i(r)&&A(t,r.length):"string"==s&&t in r)&&n(r[t],e)}},70474:(e,t,r)=>{var n=r(82664),i=r(65558),A=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!i(e))||(o.test(e)||!A.test(e)||null!=t&&e in Object(t))}},69448:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15061:(e,t,r)=>{var n,i=r(14429),A=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!A&&A in e}},89513:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},20925:(e,t,r)=>{var n=r(46778);e.exports=function(e){return e==e&&!n(e)}},82262:e=>{e.exports=function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}},14620:e=>{e.exports=function(){this.__data__=[],this.size=0}},73682:(e,t,r)=>{var n=r(39836),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0)&&(r==t.length-1?t.pop():i.call(t,r,1),--this.size,!0)}},43112:(e,t,r)=>{var n=r(39836);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},90640:(e,t,r)=>{var n=r(39836);e.exports=function(e){return n(this.__data__,e)>-1}},9380:(e,t,r)=>{var n=r(39836);e.exports=function(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}},18209:(e,t,r)=>{var n=r(72574),i=r(29197),A=r(63603);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(A||i),string:new n}}},89706:(e,t,r)=>{var n=r(59253);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},43786:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).get(e)}},17926:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).has(e)}},87345:(e,t,r)=>{var n=r(59253);e.exports=function(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}},7877:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},12757:e=>{e.exports=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}},31948:(e,t,r)=>{var n=r(74499);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},52437:(e,t,r)=>{var n=r(99513)(Object,"create");e.exports=n},60657:(e,t,r)=>{var n=r(64309)(Object.keys,Object);e.exports=n},95632:e=>{e.exports=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}},26391:(e,t,r)=>{e=r.nmd(e);var n=r(68399),i=t&&!t.nodeType&&t,A=i&&e&&!e.nodeType&&e,o=A&&A.exports===i&&n.process,s=function(){try{var e=A&&A.require&&A.require("util").types;return e||o&&o.binding&&o.binding("util")}catch(e){}}();e.exports=s},87427:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},64309:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},44322:(e,t,r)=>{var n=r(66636),i=Math.max;e.exports=function(e,t,r){return t=i(void 0===t?e.length-1:t,0),function(){for(var A=arguments,o=-1,s=i(A.length-t,0),a=Array(s);++o{var n=r(68399),i="object"==typeof self&&self&&self.Object===Object&&self,A=n||i||Function("return this")();e.exports=A},36883:e=>{e.exports=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}},74785:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},87760:e=>{e.exports=function(e){return this.__data__.has(e)}},7442:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},3111:(e,t,r)=>{var n=r(4899),i=r(19908)(n);e.exports=i},19908:e=>{var t=Date.now;e.exports=function(e){var r=0,n=0;return function(){var i=t(),A=16-(i-n);if(n=i,A>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},35678:(e,t,r)=>{var n=r(29197);e.exports=function(){this.__data__=new n,this.size=0}},33336:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},97163:e=>{e.exports=function(e){return this.__data__.get(e)}},43737:e=>{e.exports=function(e){return this.__data__.has(e)}},48548:(e,t,r)=>{var n=r(29197),i=r(63603),A=r(75009);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var o=r.__data__;if(!i||o.length<199)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new A(o)}return r.set(e,t),this.size=r.size,this}},30475:(e,t,r)=>{var n=r(1051),i=r(93024),A=r(297);e.exports=function(e){return i(e)?A(e):n(e)}},8689:(e,t,r)=>{var n=r(31948),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,A=/\\(\\)?/g,o=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,r,n,i){t.push(n?i.replace(A,"$1"):r||e)})),t}));e.exports=o},49874:(e,t,r)=>{var n=r(65558);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},76384:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},297:e=>{var t="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",i="[^\\ud800-\\udfff]",A="(?:\\ud83c[\\udde6-\\uddff]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",s="(?:"+r+"|"+n+")"+"?",a="[\\ufe0e\\ufe0f]?"+s+("(?:\\u200d(?:"+[i,A,o].join("|")+")[\\ufe0e\\ufe0f]?"+s+")*"),c="(?:"+[i+r+"?",r,A,o,t].join("|")+")",g=RegExp(n+"(?="+n+")|"+c+a,"g");e.exports=function(e){return e.match(g)||[]}},89887:e=>{var t="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",r="["+t+"]",n="\\d+",i="[\\u2700-\\u27bf]",A="[a-z\\xdf-\\xf6\\xf8-\\xff]",o="[^\\ud800-\\udfff"+t+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",s="(?:\\ud83c[\\udde6-\\uddff]){2}",a="[\\ud800-\\udbff][\\udc00-\\udfff]",c="[A-Z\\xc0-\\xd6\\xd8-\\xde]",g="(?:"+A+"|"+o+")",l="(?:"+c+"|"+o+")",u="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",h="[\\ufe0e\\ufe0f]?"+u+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",s,a].join("|")+")[\\ufe0e\\ufe0f]?"+u+")*"),p="(?:"+[i,s,a].join("|")+")"+h,f=RegExp([c+"?"+A+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[r,c,"$"].join("|")+")",l+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[r,c+g,"$"].join("|")+")",c+"?"+g+"+(?:['’](?:d|ll|m|re|s|t|ve))?",c+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,p].join("|"),"g");e.exports=function(e){return e.match(f)||[]}},89170:(e,t,r)=>{var n=r(61814),i=r(30369)((function(e,t,r){return t=t.toLowerCase(),e+(r?n(t):t)}));e.exports=i},61814:(e,t,r)=>{var n=r(33580),i=r(72609);e.exports=function(e){return i(n(e).toLowerCase())}},82558:(e,t,r)=>{var n=r(41076);e.exports=function(e){return n(e,5)}},26052:(e,t,r)=>{var n=r(41076);e.exports=function(e,t){return n(e,5,t="function"==typeof t?t:void 0)}},4967:e=>{e.exports=function(e){return function(){return e}}},68968:(e,t,r)=>{var n=r(69922),i=r(33580),A=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,o=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=i(e))&&e.replace(A,n).replace(o,"")}},71074:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},44674:(e,t,r)=>{var n=r(84173);e.exports=function(e,t,r){var i=null==e?void 0:n(e,t);return void 0===i?r:i}},15215:(e,t,r)=>{var n=r(95325),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},34878:(e,t,r)=>{var n=r(3881),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},61977:e=>{e.exports=function(e){return e}},61771:(e,t,r)=>{var n=r(76357),i=r(38496),A=Object.prototype,o=A.hasOwnProperty,s=A.propertyIsEnumerable,a=n(function(){return arguments}())?n:function(e){return i(e)&&o.call(e,"callee")&&!s.call(e,"callee")};e.exports=a},82664:e=>{var t=Array.isArray;e.exports=t},41929:(e,t,r)=>{var n=r(92533),i=r(46369);e.exports=function(e){return null!=e&&i(e.length)&&!n(e)}},16064:(e,t,r)=>{var n=r(41929),i=r(38496);e.exports=function(e){return i(e)&&n(e)}},10667:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=r(88988),A=t&&!t.nodeType&&t,o=A&&e&&!e.nodeType&&e,s=o&&o.exports===A?n.Buffer:void 0,a=(s?s.isBuffer:void 0)||i;e.exports=a},92533:(e,t,r)=>{var n=r(52502),i=r(46778);e.exports=function(e){if(!i(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},46369:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},13349:(e,t,r)=>{var n=r(55994),i=r(73635),A=r(26391),o=A&&A.isMap,s=o?i(o):n;e.exports=s},46778:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},38496:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},11672:(e,t,r)=>{var n=r(52502),i=r(41181),A=r(38496),o=Function.prototype,s=Object.prototype,a=o.toString,c=s.hasOwnProperty,g=a.call(Object);e.exports=function(e){if(!A(e)||"[object Object]"!=n(e))return!1;var t=i(e);if(null===t)return!0;var r=c.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&a.call(r)==g}},33931:(e,t,r)=>{var n=r(28612),i=r(73635),A=r(26391),o=A&&A.isSet,s=o?i(o):n;e.exports=s},221:(e,t,r)=>{var n=r(52502),i=r(82664),A=r(38496);e.exports=function(e){return"string"==typeof e||!i(e)&&A(e)&&"[object String]"==n(e)}},65558:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==n(e)}},32565:(e,t,r)=>{var n=r(98998),i=r(73635),A=r(26391),o=A&&A.isTypedArray,s=o?i(o):n;e.exports=s},42185:(e,t,r)=>{var n=r(11886),i=r(50994),A=r(41929);e.exports=function(e){return A(e)?n(e):i(e)}},24887:(e,t,r)=>{var n=r(11886),i=r(8372),A=r(41929);e.exports=function(e){return A(e)?n(e,!0):i(e)}},5253:(e,t,r)=>{var n=r(91198),i=r(62164),A=r(42208);e.exports=function(e,t){var r={};return t=A(t,3),i(e,(function(e,i,A){n(r,t(e,i,A),e)})),r}},89612:(e,t,r)=>{var n=r(91198),i=r(62164),A=r(42208);e.exports=function(e,t){var r={};return t=A(t,3),i(e,(function(e,i,A){n(r,i,t(e,i,A))})),r}},74499:(e,t,r)=>{var n=r(75009);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],A=r.cache;if(A.has(i))return A.get(i);var o=e.apply(this,n);return r.cache=A.set(i,o)||A,o};return r.cache=new(i.Cache||n),r}i.Cache=n,e.exports=i},80305:(e,t,r)=>{var n=r(51264),i=r(27913)((function(e,t,r){n(e,t,r)}));e.exports=i},7430:(e,t,r)=>{var n=r(35400),i=r(43018),A=r(70474),o=r(49874);e.exports=function(e){return A(e)?n(o(e)):i(e)}},81534:(e,t,r)=>{var n=r(10624);e.exports=function(e,t,r){return null==e?e:n(e,t,r)}},36494:(e,t,r)=>{var n=r(30369)((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}));e.exports=n},62162:e=>{e.exports=function(){return[]}},88988:e=>{e.exports=function(){return!1}},78700:(e,t,r)=>{var n=r(69976),i=r(87229),A=r(79435),o=r(41929),s=r(221),a=r(82262),c=r(7877),g=r(7442),l=r(30475),u=r(24448),h=n?n.iterator:void 0;e.exports=function(e){if(!e)return[];if(o(e))return s(e)?l(e):i(e);if(h&&e[h])return a(e[h]());var t=A(e);return("[object Map]"==t?c:"[object Set]"==t?g:u)(e)}},36506:(e,t,r)=>{var n=r(75182),i=r(24887);e.exports=function(e){return n(e,i(e))}},33580:(e,t,r)=>{var n=r(35);e.exports=function(e){return null==e?"":n(e)}},72609:(e,t,r)=>{var n=r(56989)("toUpperCase");e.exports=n},24448:(e,t,r)=>{var n=r(18290),i=r(42185);e.exports=function(e){return null==e?[]:n(e,i(e))}},97684:(e,t,r)=>{var n=r(11852),i=r(60466),A=r(33580),o=r(89887);e.exports=function(e,t,r){return e=A(e),void 0===(t=r?void 0:t)?i(e)?o(e):n(e):e.match(t)||[]}},58708:(e,t,r)=>{var n,i=r(73789),A=r(5817),o=function(e,t){return t.description=e,t},s=function(e,t,r){return o(e,(function(e){return e instanceof t[r]}))};(n={}).isNumTerm=o("a NumTerm (non-zero integer)",(function(e){return e===(0|e)&&0!==e})),n.isNameTerm=o("a NameTerm (string)",(function(e){return"string"==typeof e&&!/^-*[0-9]*$/.test(e)})),n.isTerm=o("a Term (appropriate string or number)",(function(e){return n.isNumTerm(e)||n.isNameTerm(e)})),n.isWholeNumber=o("a whole number (integer >= 0)",(function(e){return e===(0|e)&&e>=0})),n.isFormula=s("a Formula",n,"Formula"),n.isClause=s("a Clause",n,"Clause"),n.isBits=s("a Bits",n,"Bits"),n._isInteger=o("an integer",(function(e){return e===(0|e)})),n._isFunction=o("a Function",(function(e){return"function"==typeof e})),n._isString=o("a String",(function(e){return"string"==typeof e})),n._isArrayWhere=function(e){var t="an array";return e.description&&(t+=" of "+e.description),o(t,(function(t){if(A.isArray(t)){for(var r=0;r=t.length)throw new Error("Bad variable num: "+e);return t[e]},n.Solver.prototype.toNumTerm=function(e,t){if(f&&f(e,n.isTerm),"number"==typeof e)return e;for(var r=!1;"-"===e.charAt(0);)e=e.slice(1),r=!r;var i=this.getVarNum(e,t);return i?r?-i:i:0},n.Solver.prototype.toNameTerm=function(e){if(f&&f(e,n.isTerm),"string"==typeof e){for(;"--"===e.slice(0,2);)e=e.slice(2);return e}var t=!1;return e<0&&(t=!0,e=-e),e=this.getVarName(e),t&&(e="-"+e),e},n.Solver.prototype._addClause=function(e,t,r){f&&f(e,n.isClause);var i=null;t&&(i=t,f&&f(i,l(n.isNumTerm)));var A=!1,o=!1,s=e.terms.length;i&&(e=e.append(i));for(var a=0;a=this._num2name.length)throw new Error("Bad variable number: "+g);a0,g=null;if(t?o=t:(g=[],o=function(e,t){g.push({clauses:e,extraTerms:t})}),c&&!a.occursPositively){a.occursPositively=!0;var l=r._generateFormula(!0,s);o(l,[-i])}else if(!c&&!a.occursNegatively){a.occursNegatively=!0;l=r._generateFormula(!1,s);o(l,[i])}if(a.occursPositively&&a.occursNegatively&&delete r._ungeneratedFormulas[i],g&&g.length)for(var u=function(e){r._useFormulaTerm(e,o)};g.length;){var h=g.pop();r._addClauses(h.clauses,h.extraTerms,u)}}},n.Solver.prototype._addClauses=function(e,t,r){f&&f(e,l(n.isClause));var i=this;A.each(e,(function(e){i._addClause(e,t,r)}))},n.Solver.prototype.require=function(){this._requireForbidImpl(!0,A.flatten(arguments))},n.Solver.prototype.forbid=function(){this._requireForbidImpl(!1,A.flatten(arguments))},n.Solver.prototype._requireForbidImpl=function(e,t){var r=this;f&&f(t,l(u)),A.each(t,(function(t){if(t instanceof n.NotFormula)r._requireForbidImpl(!e,[t.operand]);else if(t instanceof n.Formula){var i=r._getFormulaInfo(t);if(null!==i.varNum){var A=e?1:-1;r._addClause(new n.Clause(A*i.varNum))}else r._addClauses(r._generateFormula(e,t));e?i.isRequired=!0:i.isForbidden=!0}else r._addClauses(r._generateFormula(e,t))}))},n.Solver.prototype._generateFormula=function(e,t,r){if(f&&f(t,u),t instanceof n.NotFormula)return this._generateFormula(!e,t.operand);if(t instanceof n.Formula){var i=this._getFormulaInfo(t);if(e&&i.isRequired||!e&&i.isForbidden)return[];if(e&&i.isForbidden||!e&&i.isRequired)return[new n.Clause];var o=t.generateClauses(e,r||this._termifier);return A.isArray(o)?o:[o]}var s=this.toNumTerm(t),a=e?1:-1;return s===a*n.NUM_TRUE||s===-a*n.NUM_FALSE?[]:s===a*n.NUM_FALSE||s===-a*n.NUM_TRUE?[new n.Clause]:[new n.Clause(a*s)]},n.Solver.prototype._clauseData=function(){var e=A.pluck(this.clauses,"terms");return this._T_used||e.splice(1,1),this._F_used||e.splice(0,1),e},n.Solver.prototype._clauseStrings=function(){var e=this,t=e._clauseData();return A.map(t,(function(t){return A.map(t,(function(t){var r=e.toNameTerm(t);if(/\s/.test(r)){var n="";"-"===r.charAt(0)&&(n="-",r=r.slice(1)),r=n+'"'+r+'"'}return r})).join(" v ")}))},n.Solver.prototype._getFormulaInfo=function(e,t){var r=e.guid();if(!this._formulaInfo[r]){if(t)return null;this._formulaInfo[r]=new d}return this._formulaInfo[r]},n.Solver.prototype._formulaToTerm=function(e){if(A.isArray(e))return f&&f(e,l(u)),A.map(e,A.bind(this._formulaToTerm,this));if(f&&f(e,u),e instanceof n.NotFormula)return n.not(this._formulaToTerm(e.operand));if(e instanceof n.Formula){var t=this._getFormulaInfo(e);if(t.isRequired)return n.NUM_TRUE;if(t.isForbidden)return n.NUM_FALSE;if(null===t.varNum){var r=e.type;this._nextFormulaNumByType[r]||(this._nextFormulaNumByType[r]=1);var i=this._nextFormulaNumByType[r]++;t.varName="$"+e.type+i,t.varNum=this.getVarNum(t.varName,!1,!0),this._ungeneratedFormulas[t.varNum]=e}return t.varNum}return this.toNumTerm(e)},n.or=function(){var e=A.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(f&&f(e[0],u),e[0]):new n.OrFormula(e)},n.OrFormula=function(e){f&&f(e,l(u)),this.operands=e},n._defineFormula(n.OrFormula,"or",{generateClauses:function(e,t){if(e)return t.clause(this.operands);var r=[];return A.each(this.operands,(function(e){r.push.apply(r,t.generate(!1,e))})),r}}),n.NotFormula=function(e){f&&f(e,u),this.operand=e},n._defineFormula(n.NotFormula,"not"),n.and=function(){var e=A.flatten(arguments);return 0===e.length?n.TRUE:1===e.length?(f&&f(e[0],u),e[0]):new n.AndFormula(e)},n.AndFormula=function(e){f&&f(e,l(u)),this.operands=e},n._defineFormula(n.AndFormula,"and",{generateClauses:function(e,t){if(e){var r=[];return A.each(this.operands,(function(e){r.push.apply(r,t.generate(!0,e))})),r}return t.clause(A.map(this.operands,n.not))}});var C=function(e,t){for(var r=[],n=0;n3)return t.generate(e,n.xor(A.map(C(this.operands,3),(function(e){return n.xor(e)}))));if(e){if(0===r.length)return t.clause();if(1===r.length)return t.clause(r[0]);if(2===r.length){var o=r[0],s=r[1];return[t.clause(o,s),t.clause(i(o),i(s))]}if(3===r.length){o=r[0],s=r[1];var a=r[2];return[t.clause(o,s,a),t.clause(o,i(s),i(a)),t.clause(i(o),s,i(a)),t.clause(i(o),i(s),a)]}}else{if(0===r.length)return[];if(1===r.length)return t.clause(i(r[0]));if(2===r.length){o=r[0],s=r[1];return[t.clause(o,i(s)),t.clause(i(o),s)]}if(3===r.length){o=r[0],s=r[1],a=r[2];return[t.clause(i(o),i(s),i(a)),t.clause(i(o),s,a),t.clause(o,i(s),a),t.clause(o,s,i(a))]}}}}),n.atMostOne=function(){var e=A.flatten(arguments);return e.length<=1?n.TRUE:new n.AtMostOneFormula(e)},n.AtMostOneFormula=function(e){f&&f(e,l(u)),this.operands=e},n._defineFormula(n.AtMostOneFormula,"atMostOne",{generateClauses:function(e,t){var r=this.operands,i=n.not;if(r.length<=1)return[];if(2===r.length)return t.generate(e,n.not(n.and(r)));if(e&&3===r.length){for(var o=[],s=0;s>>=1;return new n.Bits(t)},n.variableBits=function(e,t){f&&f(t,n.isWholeNumber);for(var r=[],i=0;ia.length;){var c=s.pop();o.push(r.clause(n.not(c)))}for(var g=A.map(a,(function(e,t){return t=0;l--)o.push(r.clause(g.slice(l+1),n.not(s[l]),a[l]));return i&&o.push.apply(o,r.generate(!0,n.or(g))),o};n._defineFormula(n.LessThanOrEqualFormula,"lte",{generateClauses:function(e,t){return e?I(this.bits1,this.bits2,t,!1):I(this.bits2,this.bits1,t,!0)}}),n.lessThan=function(e,t){return new n.LessThanFormula(e,t)},n.LessThanFormula=function(e,t){f&&f(e,n.isBits),f&&f(t,n.isBits),f&&p(arguments.length,2,"Bits comparison function"),this.bits1=e,this.bits2=t},n._defineFormula(n.LessThanFormula,"lt",{generateClauses:function(e,t){return e?I(this.bits1,this.bits2,t,!0):I(this.bits2,this.bits1,t,!1)}}),n.greaterThan=function(e,t){return n.lessThan(t,e)},n.greaterThanOrEqual=function(e,t){return n.lessThanOrEqual(t,e)},n.equalBits=function(e,t){return new n.EqualBitsFormula(e,t)},n.EqualBitsFormula=function(e,t){f&&f(e,n.isBits),f&&f(t,n.isBits),f&&p(arguments.length,2,"Logic.equalBits"),this.bits1=e,this.bits2=t},n._defineFormula(n.EqualBitsFormula,"equalBits",{generateClauses:function(e,t){for(var r=this.bits1.bits,i=this.bits2.bits,A=Math.max(r.length,i.length),o=[],s=0;s=r.length?o.push(n.not(i[s])):s>=i.length?o.push(n.not(r[s])):o.push(n.equiv(r[s],i[s]));return t.generate(e,n.and(o))}}),n.HalfAdderSum=function(e,t){f&&f(e,u),f&&f(t,u),f&&p(arguments.length,2,"Logic.HalfAdderSum"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderSum,"hsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b))}}),n.HalfAdderCarry=function(e,t){f&&f(e,u),f&&f(t,u),f&&p(arguments.length,2,"Logic.HalfAdderCarry"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderCarry,"hcarry",{generateClauses:function(e,t){return t.generate(e,n.and(this.a,this.b))}}),n.FullAdderSum=function(e,t,r){f&&f(e,u),f&&f(t,u),f&&f(r,u),f&&p(arguments.length,3,"Logic.FullAdderSum"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderSum,"fsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b,this.c))}}),n.FullAdderCarry=function(e,t,r){f&&f(e,u),f&&f(t,u),f&&f(r,u),f&&p(arguments.length,3,"Logic.FullAdderCarry"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderCarry,"fcarry",{generateClauses:function(e,t){return t.generate(!e,n.atMostOne(this.a,this.b,this.c))}});var E=function(e){f&&f(e,l(l(u)));for(var t=A.map(e,A.clone),r=0,i=[];r=e.length;)e.push([]);e[t].push(r)},B=function(e,t){if(f&&f(e,l(u)),"number"==typeof t)f&&f(t,n.isWholeNumber);else if(f&&f(t,l(n.isWholeNumber)),e.length!==t.length)throw new Error("Formula array and weight array must be same length; they are "+e.length+" and "+t.length)};n.weightedSum=function(e,t){if(B(e,t),0===e.length)return new n.Bits([]);"number"==typeof t&&(t=A.map(e,(function(){return t})));var r=[];return A.each(e,(function(e,n){for(var i=t[n],A=0;i;)1&i&&m(r,A,e),i>>>=1,A++})),new n.Bits(E(r))},n.sum=function(){var e=A.flatten(arguments);f&&f(e,l(h));var t=[];return A.each(e,(function(e){e instanceof n.Bits?A.each(e.bits,(function(e,r){m(t,r,e)})):m(t,0,e)})),new n.Bits(E(t))},n.Solver.prototype.solve=function(e){if(void 0!==e&&!(e>=1))throw new Error("_assumpVar must be a variable number");if(this._unsat)return null;for(;this._numClausesAddedToMiniSat0))throw new Error("Assertion failure: not a positive numeric term");this._useFormulaTerm(r);var i=this.solve(r);return this._minisat.retireVar(r),i},n.Assumption=function(e){f&&f(e,u),this.formula=e},n._defineFormula(n.Assumption,"assump",{generateClauses:function(e,t){return e?t.clause(this.formula):t.clause(n.not(this.formula))}}),n.Solution=function(e,t){var r=this;r._solver=e,r._assignment=t,r._ungeneratedFormulas=A.clone(e._ungeneratedFormulas),r._formulaValueCache={},r._termifier=new n.Termifier(r._solver),r._termifier.term=function(e){return r.evaluate(e)?n.NUM_TRUE:n.NUM_FALSE},r._ignoreUnknownVariables=!1},n.Solution.prototype.ignoreUnknownVariables=function(){this._ignoreUnknownVariables=!0},n.Solution.prototype.getMap=function(){for(var e=this._solver,t=this._assignment,r={},n=1;n=s.length){d=C;if(C>=1&&C0){g&&g("trying",0);var h=null;u=y(r,i),(h=e.solveAssuming(n.not(n.or(u))))&&(s=h,a=0)}if(o&&"bottom-up"===l)for(var p=1;p0;){g&&g("improving",a);var d,C=(o?n.lessThan:n.greaterThan)(c,n.constantBits(a));if(!(d=e.solveAssuming(C)))break;e.require(C),a=(s=d).getWeightedSum(r,i)}return o&&0===a?(u||(u=y(r,i)),e.forbid(u)):e.require(n.equalBits(c,n.constantBits(a))),g&&g("finished",a),s};n.Solver.prototype.minimizeWeightedSum=function(e,t,r,n){return w(this,e,t,r,n,!0)},n.Solver.prototype.maximizeWeightedSum=function(e,t,r,n){return w(this,e,t,r,n,!1)},e.exports=n},98312:module=>{var C_MINISAT;C_MINISAT=function(){var module={},require=function(){},process={argv:["node","minisat"],on:function(){},stdout:{write:function(e){console.log("MINISAT-out:",e.replace(/\n$/,""))}},stderr:{write:function(e){console.log("MINISAT-err:",e.replace(/\n$/,""))}}},window=0,Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(e){process.stdout.write(e+"\n")}),Module.printErr||(Module.printErr=function(e){process.stderr.write(e+"\n")});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(e,t){e=nodePath.normalize(e);var r=nodeFS.readFileSync(e);return r||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),r=nodeFS.readFileSync(e)),r&&!t&&(r=r.toString()),r},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program",Module.arguments=process.argv.slice(2),void 0!==module&&(module.exports=Module),process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e}))}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),this.Module=Module;else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WEB?window.Module=Module:Module.load=importScripts}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,t,r){return r||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,r){return r&&r.length?(r.splice||(r=Array.prototype.slice.call(r)),r.splice(0,0,t),Module["dynCall_"+e].apply(null,r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t0))return"";var n,i=e[0],A=e[1],o=e[2],s=e[3];if(2==e.length)n=String.fromCharCode((31&i)<<6|63&A);else if(3==e.length)n=String.fromCharCode((15&i)<<12|(63&A)<<6|63&o);else{var a=(7&i)<<18|(63&A)<<12|(63&o)<<6|63&s;n=String.fromCharCode(55296+((a-65536)/1024|0),(a-65536)%1024+56320)}return e.length=0,n},this.processJSString=function(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r=TOTAL_MEMORY&&enlargeMemory(),t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,r){return r?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var __THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,t){e||abort("Assertion failed: "+t)}var globalScope=this,cwrap,ccall;function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,r,n){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}function getValue(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;return null!=e&&0!==e&&writeStringToMemory(e,t=Runtime.stackAlloc(1+(e.length<<2))),t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,r,n){var i=getCFunc(e),A=[],o=0;if(n)for(var s=0;s>2]=0;for(a=o+A;n>0]=0;return o}if("i8"===s)return e.subarray||e.slice?HEAPU8.set(e,o):HEAPU8.set(new Uint8Array(e),o),o;for(var c,g,l,u=0;u>0])>=128)n=!0;else if(0==r&&!t)break;if(i++,t&&i==t)break}t||(t=i);var A="";if(!n){for(var o;t>0;)o=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),A=A?A+o:o,e+=1024,t-=1024;return A}var s=new Runtime.UTF8Processor;for(i=0;i>0],A+=s.processCChar(r);return A}function UTF16ToString(e){for(var t=0,r="";;){var n=HEAP16[e+2*t>>1];if(0==n)return r;++t,r+=String.fromCharCode(n)}}function stringToUTF16(e,t){for(var r=0;r>1]=n}HEAP16[t+2*e.length>>1]=0}function UTF32ToString(e){for(var t=0,r="";;){var n=HEAP32[e+4*t>>2];if(0==n)return r;if(++t,n>=65536){var i=n-65536;r+=String.fromCharCode(55296|i>>10,56320|1023&i)}else r+=String.fromCharCode(n)}}function stringToUTF32(e,t){for(var r=0,n=0;n=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n);HEAP32[t+4*r>>2]=i,++r}HEAP32[t+4*r>>2]=0}function demangle(e){var t=!!Module.___cxa_demangle;if(t)try{var r=_malloc(e.length);writeStringToMemory(e.substr(1),r);var n=_malloc(4),i=Module.___cxa_demangle(r,0,0,n);if(0===getValue(n,"i32")&&i)return Pointer_stringify(i)}catch(e){}finally{r&&_free(r),n&&_free(n),i&&_free(i)}var A=3,o={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},s=[],a=!0;var c=e;try{if("Object._main"==e||"_main"==e)return"main()";if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}c=function t(r,n,i){n=n||1/0;var c,g="",l=[];if("N"===e[A]){if(c=function(){A++,"K"===e[A]&&A++;for(var t=[];"E"!==e[A];)if("S"!==e[A])if("C"!==e[A]){var r=parseInt(e.substr(A)),n=r.toString().length;if(!r||!n){A--;break}var i=e.substr(A+n,r);t.push(i),s.push(i),A+=n+r}else t.push(t[t.length-1]),A+=2;else{A++;var o=e.indexOf("_",A),a=e.substring(A,o)||0;t.push(s[a]||"?"),A=o+1}return A++,t}().join("::"),0===--n)return r?[c]:c}else if(("K"===e[A]||a&&"L"===e[A])&&A++,f=parseInt(e.substr(A))){var u=f.toString().length;c=e.substr(A+u,f),A+=u+f}if(a=!1,"I"===e[A]){A++;var h=t(!0);g+=t(!0,1,!0)[0]+" "+c+"<"+h.join(", ")+">"}else g=c;e:for(;A0;){var p=e[A++];if(p in o)l.push(o[p]);else switch(p){case"P":l.push(t(!0,1,!0)[0]+"*");break;case"R":l.push(t(!0,1,!0)[0]+"&");break;case"L":A++;var f=e.indexOf("E",A)-A;l.push(e.substr(A,f)),A+=f+2;break;case"A":f=parseInt(e.substr(A));if(A+=f.toString().length,"_"!==e[A])throw"?";A++,l.push(t(!0,1,!0)[0]+" ["+f+"]");break;case"E":break e;default:g+="?"+p;break e}}return i||1!==l.length||"void"!==l[0]||(l=[]),r?(g&&l.push(g+"?"),l):g+"("+l.join(", ")+")"}()}catch(e){c+="?"}return c.indexOf("?")>=0&&!t&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),c}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.stackTrace=stackTrace;var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function alignMemoryPage(e){return e+4095&-4096}var STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}for(var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,FAST_MEMORY=Module.FAST_MEMORY||2097152,totalMemory=65536;totalMemory0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?Runtime.dynCall("v",r):Runtime.dynCall("vi",r,[t.arg]):r(void 0===t.arg?null:t.arg)}else t()}}HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,r){var n=(new Runtime.UTF8Processor).processJSString(e);return r&&(n.length=r),t||n.push(0),n}function intArrayToString(e){for(var t=[],r=0;r255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")}function writeStringToMemory(e,t,r){for(var n=intArrayFromString(e,r),i=0;i>0]=A,i+=1}}function writeArrayToMemory(e,t){for(var r=0;r>0]=e[r]}function writeAsciiToMemory(e,t,r){for(var n=0;n>0]=e.charCodeAt(n);r||(HEAP8[t+e.length>>0]=0)}function unSign(e,t,r){return e>=0?e:t<=32?2*Math.abs(1<=n&&(t<=32||e>n)&&(e=-2*n+e),e}Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,t){var r=65535&e,n=65535&t;return r*n+((e>>>16)*n+r*(t>>>16)<<16)|0}),Math.imul=Math.imul;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+5664,__ATINIT__.push({func:function(){__GLOBAL__I_a()}},{func:function(){__GLOBAL__I_a127()}}),allocate([78,55,77,105,110,105,115,97,116,50,48,79,117,116,79,102,77,101,109,111,114,121,69,120,99,101,112,116,105,111,110,69,0,0,0,0,0,0,0,0,88,18,0,0,8,0,0,0,78,55,77,105,110,105,115,97,116,54,79,112,116,105,111,110,69,0,0,0,0,0,0,0,88,18,0,0,56,0,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,0,0,0,0,80,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,78,55,77,105,110,105,115,97,116,49,48,66,111,111,108,79,112,116,105,111,110,69,0,0,128,18,0,0,176,0,0,0,80,0,0,0,0,0,0,0,32,32,45,37,115,44,32,45,110,111,45,37,115,0,0,0,40,100,101,102,97,117,108,116,58,32,37,115,41,10,0,0,111,110,0,0,0,0,0,0,111,102,102,0,0,0,0,0,110,111,45,0,0,0,0,0,0,0,0,0,64,1,0,0,1,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,78,55,77,105,110,105,115,97,116,57,73,110,116,79,112,116,105,111,110,69,0,0,0,0,128,18,0,0,40,1,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,91,0,0,0,0,0,0,0,105,109,105,110,0,0,0,0,37,52,100,0,0,0,0,0,32,46,46,32,0,0,0,0,105,109,97,120,0,0,0,0,93,32,40,100,101,102,97,117,108,116,58,32,37,100,41,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,97,114,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,118,97,114,105,97,98,108,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,97,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,99,108,97,117,115,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,102,114,101,113,0,0,0,0,0,0,0,0,84,104,101,32,102,114,101,113,117,101,110,99,121,32,119,105,116,104,32,119,104,105,99,104,32,116,104,101,32,100,101,99,105,115,105,111,110,32,104,101,117,114,105,115,116,105,99,32,116,114,105,101,115,32,116,111,32,99,104,111,111,115,101,32,97,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,115,101,101,100,0,0,0,0,0,0,0,0,85,115,101,100,32,98,121,32,116,104,101,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,32,115,101,108,101,99,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,109,105,110,45,109,111,100,101,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,99,111,110,102,108,105,99,116,32,99,108,97,117,115,101,32,109,105,110,105,109,105,122,97,116,105,111,110,32,40,48,61,110,111,110,101,44,32,49,61,98,97,115,105,99,44,32,50,61,100,101,101,112,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,104,97,115,101,45,115,97,118,105,110,103,0,0,0,0,67,111,110,116,114,111,108,115,32,116,104,101,32,108,101,118,101,108,32,111,102,32,112,104,97,115,101,32,115,97,118,105,110,103,32,40,48,61,110,111,110,101,44,32,49,61,108,105,109,105,116,101,100,44,32,50,61,102,117,108,108,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,105,110,105,116,0,0,0,0,0,0,0,0,82,97,110,100,111,109,105,122,101,32,116,104,101,32,105,110,105,116,105,97,108,32,97,99,116,105,118,105,116,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,117,98,121,0,0,0,0,85,115,101,32,116,104,101,32,76,117,98,121,32,114,101,115,116,97,114,116,32,115,101,113,117,101,110,99,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,102,105,114,115,116,0,0,84,104,101,32,98,97,115,101,32,114,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,105,110,99,0,0,0,0,82,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,32,105,110,99,114,101,97,115,101,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,99,45,102,114,97,99,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,105,110,45,108,101,97,114,110,116,115,0,0,0,0,0,77,105,110,105,109,117,109,32,108,101,97,114,110,116,32,99,108,97,117,115,101,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,192,7,0,0,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,124,32,37,57,100,32,124,32,37,55,100,32,37,56,100,32,37,56,100,32,124,32,37,56,100,32,37,56,100,32,37,54,46,48,102,32,124,32,37,54,46,51,102,32,37,37,32,124,10,0,0,0,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,54,83,111,108,118,101,114,69,0,0,0,0,0,0,0,88,18,0,0,168,7,0,0,60,98,111,111,108,62,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,60,105,110,116,51,50,62,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,67,79,82,69,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,0,0,0,0,168,8,0,0,1,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,78,55,77,105,110,105,115,97,116,49,50,68,111,117,98,108,101,79,112,116,105,111,110,69,0,0,0,0,0,0,0,0,128,18,0,0,136,8,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,37,99,37,52,46,50,103,32,46,46,32,37,52,46,50,103,37,99,32,40,100,101,102,97,117,108,116,58,32,37,103,41,10,0,0,0,0,0,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,91,32,83,101,97,114,99,104,32,83,116,97,116,105,115,116,105,99,115,32,93,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,124,32,67,111,110,102,108,105,99,116,115,32,124,32,32,32,32,32,32,32,32,32,32,79,82,73,71,73,78,65,76,32,32,32,32,32,32,32,32,32,124,32,32,32,32,32,32,32,32,32,32,76,69,65,82,78,84,32,32,32,32,32,32,32,32,32,32,124,32,80,114,111,103,114,101,115,115,32,124,0,124,32,32,32,32,32,32,32,32,32,32,32,124,32,32,32,32,86,97,114,115,32,32,67,108,97,117,115,101,115,32,76,105,116,101,114,97,108,115,32,124,32,32,32,32,76,105,109,105,116,32,32,67,108,97,117,115,101,115,32,76,105,116,47,67,108,32,124,32,32,32,32,32,32,32,32,32,32,124,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,115,121,109,109,0,0,0,83,104,114,105,110,107,32,99,108,97,117,115,101,115,32,98,121,32,97,115,121,109,109,101,116,114,105,99,32,98,114,97,110,99,104,105,110,103,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,99,104,101,99,107,0,0,67,104,101,99,107,32,105,102,32,97,32,99,108,97,117,115,101,32,105,115,32,97,108,114,101,97,100,121,32,105,109,112,108,105,101,100,46,32,40,99,111,115,116,108,121,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,108,105,109,0,0,0,0,80,101,114,102,111,114,109,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,114,111,119,0,0,0,0,65,108,108,111,119,32,97,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,32,115,116,101,112,32,116,111,32,103,114,111,119,32,98,121,32,97,32,110,117,109,98,101,114,32,111,102,32,99,108,97,117,115,101,115,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,45,108,105,109,0,0,86,97,114,105,97,98,108,101,115,32,97,114,101,32,110,111,116,32,101,108,105,109,105,110,97,116,101,100,32,105,102,32,105,116,32,112,114,111,100,117,99,101,115,32,97,32,114,101,115,111,108,118,101,110,116,32,119,105,116,104,32,97,32,108,101,110,103,116,104,32,97,98,111,118,101,32,116,104,105,115,32,108,105,109,105,116,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,117,98,45,108,105,109,0,68,111,32,110,111,116,32,99,104,101,99,107,32,105,102,32,115,117,98,115,117,109,112,116,105,111,110,32,97,103,97,105,110,115,116,32,97,32,99,108,97,117,115,101,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,105,115,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,105,109,112,45,103,99,45,102,114,97,99,0,0,0,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,32,100,117,114,105,110,103,32,115,105,109,112,108,105,102,105,99,97,116,105,111,110,46,0,0,0,0,0,0,0,120,14,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,115,117,98,115,117,109,112,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,32,40,37,49,48,100,32,115,117,98,115,117,109,101,100,44,32,37,49,48,100,32,100,101,108,101,116,101,100,32,108,105,116,101,114,97,108,115,41,13,0,0,101,108,105,109,105,110,97,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,13,0,124,32,32,69,108,105,109,105,110,97,116,101,100,32,99,108,97,117,115,101,115,58,32,32,32,32,32,37,49,48,46,50,102,32,77,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,48,83,105,109,112,83,111,108,118,101,114,69,0,0,128,18,0,0,96,14,0,0,192,7,0,0,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,60,105,110,116,51,50,62,0,83,73,77,80,0,0,0,0,60,98,111,111,108,62,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,79,33,0,0,0,0,0,2,0,0,0,0,0,0,0,48,15,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,200,16,0,0,12,0,0,0,13,0,0,0,1,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,128,18,0,0,184,16,0,0,80,17,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,88,18,0,0,64,17,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,88,18,0,0,88,17,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,128,18,0,0,112,17,0,0,104,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,168,17,0,0,152,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,8,18,0,0,152,17,0,0,0,0,0,0,128,18,0,0,224,17,0,0,48,18,0,0,0,0,0,0,0,0,0,0,208,17,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,200,18,0,0,14,0,0,0,18,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,128,18,0,0,160,18,0,0,208,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function copyTempFloat(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3]}function copyTempDouble(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3],HEAP8[tempDoublePtr+4]=HEAP8[e+4],HEAP8[tempDoublePtr+5]=HEAP8[e+5],HEAP8[tempDoublePtr+6]=HEAP8[e+6],HEAP8[tempDoublePtr+7]=HEAP8[e+7]}function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}assert(tempDoublePtr%8==0),Module._i64Subtract=_i64Subtract;var ___errno_state=0;function ___setErrNo(e){return HEAP32[___errno_state>>2]=e,e}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(e){if(!e||EXCEPTIONS.infos[e])return e;for(var t in EXCEPTIONS.infos){if(EXCEPTIONS.infos[t].adjusted===e)return t}return e},addRef:function(e){e&&EXCEPTIONS.infos[e].refcount++},decRef:function(e){if(e){var t=EXCEPTIONS.infos[e];assert(t.refcount>0),t.refcount--,0===t.refcount&&(t.destructor&&Runtime.dynCall("vi",t.destructor,[e]),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){e&&(EXCEPTIONS.infos[e].refcount=0)}};function ___resumeException(e){throw EXCEPTIONS.last||(EXCEPTIONS.last=e),EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(e)),e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var e=EXCEPTIONS.last;if(!e)return 0|(asm.setTempRet0(0),0);var t=EXCEPTIONS.infos[e],r=t.type;if(!r)return 0|(asm.setTempRet0(0),e);var n=Array.prototype.slice.call(arguments);Module.___cxa_is_pointer_type(r);___cxa_find_matching_catch.buffer||(___cxa_find_matching_catch.buffer=_malloc(4)),HEAP32[___cxa_find_matching_catch.buffer>>2]=e,e=___cxa_find_matching_catch.buffer;for(var i=0;i>2],t.adjusted=e,0|(asm.setTempRet0(n[i]),e);return e=HEAP32[e>>2],0|(asm.setTempRet0(r),e)}function ___cxa_throw(e,t,r){throw EXCEPTIONS.infos[e]={ptr:e,adjusted:e,type:t,destructor:r,refcount:0},EXCEPTIONS.last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function _abort(){Module.abort()}Module._memset=_memset,Module._bitshift64Shl=_bitshift64Shl;var FS=void 0,SOCKFS=void 0;function _send(e,t,r,n){return SOCKFS.getSocket(e)?_write(e,t,r):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,t,r,n){var i=FS.getStream(e);if(!i)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var A=HEAP8;return FS.write(i,A,t,r,n)}catch(e){return FS.handleFSError(e),-1}}function _write(e,t,r){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var i=HEAP8;return FS.write(n,i,t,r)}catch(e){return FS.handleFSError(e),-1}}function _fileno(e){return(e=FS.getStreamFromPtr(e))?e.fd:-1}function _fwrite(e,t,r,n){var i=r*t;if(0==i)return 0;var A=_write(_fileno(n),e,i);if(-1==A){var o=FS.getStreamFromPtr(n);return o&&(o.error=!0),0}return A/t|0}function __reallyNegative(e){return e<0||0===e&&1/e==-1/0}function __formatString(e,t){var r=e,n=0;function i(e){var r;return"double"===e?(HEAP32[tempDoublePtr>>2]=HEAP32[t+n>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[t+(n+4)>>2],r=+HEAPF64[tempDoublePtr>>3]):"i64"==e?r=[HEAP32[t+n>>2],HEAP32[t+(n+4)>>2]]:(e="i32",r=HEAP32[t+n>>2]),n+=Runtime.getNativeFieldSize(e),r}for(var A,o,s=[];;){var a=r;if(0===(A=HEAP8[r>>0]))break;if(o=HEAP8[r+1>>0],37==A){var c=!1,g=!1,l=!1,u=!1,h=!1;e:for(;;){switch(o){case 43:c=!0;break;case 45:g=!0;break;case 35:l=!0;break;case 48:if(u)break e;u=!0;break;case 32:h=!0;break;default:break e}r++,o=HEAP8[r+1>>0]}var p=0;if(42==o)p=i("i32"),r++,o=HEAP8[r+1>>0];else for(;o>=48&&o<=57;)p=10*p+(o-48),r++,o=HEAP8[r+1>>0];var f,d=!1,C=-1;if(46==o){if(C=0,d=!0,r++,42==(o=HEAP8[r+1>>0]))C=i("i32"),r++;else for(;;){var I=HEAP8[r+1>>0];if(I<48||I>57)break;C=10*C+(I-48),r++}o=HEAP8[r+1>>0]}switch(C<0&&(C=6,d=!1),String.fromCharCode(o)){case"h":104==HEAP8[r+2>>0]?(r++,f=1):f=2;break;case"l":108==HEAP8[r+2>>0]?(r++,f=8):f=4;break;case"L":case"q":case"j":f=8;break;case"z":case"t":case"I":f=4;break;default:f=null}switch(f&&r++,o=HEAP8[r+1>>0],String.fromCharCode(o)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var E=100==o||105==o,m=D=i("i"+8*(f=f||4));if(8==f&&(D=Runtime.makeBigInt(D[0],D[1],117==o)),f<=4)D=(E?reSign:unSign)(D&Math.pow(256,f)-1,8*f);var B=Math.abs(D),y="";if(100==o||105==o)b=8==f&&i64Math?i64Math.stringify(m[0],m[1],null):reSign(D,8*f,1).toString(10);else if(117==o)b=8==f&&i64Math?i64Math.stringify(m[0],m[1],!0):unSign(D,8*f,1).toString(10),D=Math.abs(D);else if(111==o)b=(l?"0":"")+B.toString(8);else if(120==o||88==o){if(y=l&&0!=D?"0x":"",8==f&&i64Math)if(m[1]){b=(m[1]>>>0).toString(16);for(var w=(m[0]>>>0).toString(16);w.length<8;)w="0"+w;b+=w}else b=(m[0]>>>0).toString(16);else if(D<0){D=-D,b=(B-1).toString(16);for(var Q=[],v=0;v=0&&(c?y="+"+y:h&&(y=" "+y)),"-"==b.charAt(0)&&(y="-"+y,b=b.substr(1));y.length+b.lengthM&&M>=-4?(o=(103==o?"f":"F").charCodeAt(0),C-=M+1):(o=(103==o?"e":"E").charCodeAt(0),C--),k=Math.min(C,20)}101==o||69==o?(b=D.toExponential(k),/[eE][-+]\d$/.test(b)&&(b=b.slice(0,-1)+"0"+b.slice(-1))):102!=o&&70!=o||(b=D.toFixed(k),0===D&&__reallyNegative(D)&&(b="-"+b));var N=b.split("e");if(S&&!l)for(;N[0].length>1&&-1!=N[0].indexOf(".")&&("0"==N[0].slice(-1)||"."==N[0].slice(-1));)N[0]=N[0].slice(0,-1);else for(l&&-1==b.indexOf(".")&&(N[0]+=".");C>k++;)N[0]+="0";b=N[0]+(N.length>1?"e"+N[1]:""),69==o&&(b=b.toUpperCase()),D>=0&&(c?b="+"+b:h&&(b=" "+b))}else b=(D<0?"-":"")+"inf",u=!1;for(;b.length>0]);else s=s.concat(intArrayFromString("(null)".substr(0,R),!0));if(g)for(;R0;)s.push(32);g||s.push(i("i8"));break;case"n":var K=i("i32*");HEAP32[K>>2]=s.length;break;case"%":s.push(A);break;default:for(v=a;v>0])}r+=2}else s.push(A),r+=1}return s}function _fprintf(e,t,r){var n=__formatString(t,r),i=Runtime.stackSave(),A=_fwrite(allocate(n,"i8",ALLOC_STACK),1,n.length,e);return Runtime.stackRestore(i),A}function _printf(e,t){var r=__formatString(e,t),n=intArrayToString(r);return"\n"===n[n.length-1]&&(n=n.substr(0,n.length-1)),Module.print(n),r.length}function _pthread_once(e,t){_pthread_once.seen||(_pthread_once.seen={}),e in _pthread_once.seen||(Runtime.dynCall("v",t),_pthread_once.seen[e]=1)}function _fputc(e,t){var r=unSign(255&e);if(HEAP8[_fputc.ret>>0]=r,-1==_write(_fileno(t),_fputc.ret,1)){var n=FS.getStreamFromPtr(t);return n&&(n.error=!0),-1}return r}Module._strlen=_strlen;var PTHREAD_SPECIFIC={};function _pthread_getspecific(e){return PTHREAD_SPECIFIC[e]||0}function _fputs(e,t){return _write(_fileno(t),e,_strlen(e))}Module._i64Add=_i64Add;var _stdout=allocate(1,"i32*",ALLOC_STATIC);function _puts(e){var t=Pointer_stringify(e),r=t.substr(0);return"\n"===r[r.length-1]&&(r=r.substr(0,r.length-1)),Module.print(r),t.length}function _pthread_setspecific(e,t){return e in PTHREAD_SPECIFIC?(PTHREAD_SPECIFIC[e]=t,0):ERRNO_CODES.EINVAL}function __exit(e){Module.exit(e)}function _exit(e){__exit(e)}var _UItoD=!0;function _malloc(e){return Runtime.dynamicAlloc(e+8)+8&4294967288}function ___cxa_allocate_exception(e){return _malloc(e)}function _fmod(e,t){return e%t}function _fmodl(){return _fmod.apply(null,arguments)}function ___cxa_pure_virtual(){throw ABORT=!0,"Pure virtual function called!"}function _time(e){var t=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=t),t}Module._malloc=_malloc,Module._bitshift64Lshr=_bitshift64Lshr;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(e,t){return 0==e?ERRNO_CODES.EINVAL:(HEAP32[e>>2]=PTHREAD_SPECIFIC_NEXT_KEY,PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0,PTHREAD_SPECIFIC_NEXT_KEY++,0)}function ___cxa_guard_acquire(e){return HEAP8[e>>0]?0:(HEAP8[e>>0]=1,1)}function ___cxa_guard_release(){}function _vfprintf(e,t,r){return _fprintf(e,t,HEAP32[r>>2])}function ___cxa_begin_catch(e){return __ZSt18uncaught_exceptionv.uncaught_exception--,EXCEPTIONS.caught.push(e),EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(e)),e}function _emscripten_memcpy_big(e,t,r){return HEAPU8.set(HEAPU8.subarray(t,t+r),e),e}Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;function _sbrk(e){var t=_sbrk;t.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),t.called=!0,assert(Runtime.dynamicAlloc),t.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var r=DYNAMICTOP;return 0!=e&&t.alloc(e),r}var _fabs=Math_abs;function ___errno_location(){return ___errno_state}var _BItoD=!0;function _copysign(e,t){return __reallyNegative(e)===__reallyNegative(t)?e:-e}function _copysignl(){return _copysign.apply(null,arguments)}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC),_stderr=allocate(1,"i32*",ALLOC_STATIC);___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,_fputc.ret=allocate([0],"i8",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE>0]=n[e>>0];n[h+1>>0]=n[e+1>>0];n[h+2>>0]=n[e+2>>0];n[h+3>>0]=n[e+3>>0]}function ut(e){e=e|0;n[h>>0]=n[e>>0];n[h+1>>0]=n[e+1>>0];n[h+2>>0]=n[e+2>>0];n[h+3>>0]=n[e+3>>0];n[h+4>>0]=n[e+4>>0];n[h+5>>0]=n[e+5>>0];n[h+6>>0]=n[e+6>>0];n[h+7>>0]=n[e+7>>0]}function ht(e){e=e|0;K=e}function pt(){return K|0}function ft(e){e=e|0;Me(e|0)|0;fn()}function dt(e){e=e|0;return}function Ct(e,t,r,i,o){e=e|0;t=t|0;r=r|0;i=i|0;o=o|0;var s=0;s=l;A[e>>2]=112;A[e+4>>2]=t;A[e+8>>2]=r;A[e+12>>2]=i;A[e+16>>2]=o;if((n[144]|0)==0?(Be(144)|0)!=0:0){A[32]=0;A[33]=0;A[34]=0;Je(19,128,C|0)|0;be(144)}o=A[33]|0;if((o|0)==(A[34]|0)){i=(o>>1)+2&-2;i=(i|0)<2?2:i;if((i|0)>(2147483647-o|0)){t=Qe(1)|0;ze(t|0,48,0)}r=A[32]|0;t=i+o|0;A[34]=t;t=Yn(r,t<<2)|0;A[32]=t;if((t|0)==0?(A[(Ge()|0)>>2]|0)==12:0){t=Qe(1)|0;ze(t|0,48,0)}o=A[33]|0}A[33]=o+1;o=(A[32]|0)+(o<<2)|0;if(!o){l=s;return}A[o>>2]=e;l=s;return}function It(e){e=e|0;var t=0;t=l;gn(e);l=t;return}function Et(e){e=e|0;var t=0,r=0;t=l;r=A[e>>2]|0;if(!r){l=t;return}A[e+4>>2]=0;On(r);A[e>>2]=0;A[e+8>>2]=0;l=t;return}function mt(e){e=e|0;var t=0;t=l;gn(e);l=t;return}function Bt(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0;r=l;if((n[t>>0]|0)!=45){c=0;l=r;return c|0}i=t+1|0;o=110;a=i;c=0;while(1){s=c+1|0;if((n[a>>0]|0)!=o<<24>>24){o=1;break}a=t+(c+2)|0;if((s|0)==3){o=0;i=a;break}else{o=n[264+s>>0]|0;c=s}}if($n(i,A[e+4>>2]|0)|0){c=0;l=r;return c|0}n[e+20>>0]=o;c=1;l=r;return c|0}function yt(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0;s=l;l=l+16|0;r=s;i=A[I>>2]|0;o=e+4|0;a=A[o>>2]|0;A[r>>2]=a;A[r+4>>2]=a;et(i|0,216,r|0)|0;a=0;while(1){c=a>>>0<(32-((si(A[o>>2]|0)|0)<<1)|0)>>>0;qe(32,i|0)|0;if(c)a=a+1|0;else break}A[r>>2]=(n[e+20>>0]|0)!=0?248:256;et(i|0,232,r|0)|0;if(!t){l=s;return}A[r>>2]=A[e+8>>2];et(i|0,88,r|0)|0;qe(10,i|0)|0;l=s;return}function wt(e){e=e|0;var t=0;t=l;gn(e);l=t;return}function Qt(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0;r=l;l=l+16|0;s=r;o=r+8|0;if((n[t>>0]|0)!=45){h=0;l=r;return h|0}g=t+1|0;i=e+4|0;a=A[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){u=0;while(1){h=u;u=u+1|0;if((n[g>>0]|0)!=c<<24>>24){e=0;break}c=n[a+u>>0]|0;g=t+(h+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[g>>0]|0)!=61){h=0;l=r;return h|0}t=g+1|0;a=Zn(t,o,10)|0;if(!(A[o>>2]|0)){h=0;l=r;return h|0}if((a|0)>(A[e+24>>2]|0)){h=A[I>>2]|0;u=A[i>>2]|0;A[s>>2]=t;A[s+4>>2]=u;et(h|0,416,s|0)|0;nt(1)}if((a|0)<(A[e+20>>2]|0)){h=A[I>>2]|0;u=A[i>>2]|0;A[s>>2]=t;A[s+4>>2]=u;et(h|0,472,s|0)|0;nt(1)}A[e+28>>2]=a;h=1;l=r;return h|0}function vt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0;r=l;l=l+16|0;n=r;i=A[I>>2]|0;o=A[e+16>>2]|0;A[n>>2]=A[e+4>>2];A[n+4>>2]=o;et(i|0,336,n|0)|0;o=A[e+20>>2]|0;if((o|0)==-2147483648)Ze(360,4,1,i|0)|0;else{A[n>>2]=o;et(i|0,368,n|0)|0}Ze(376,4,1,i|0)|0;o=A[e+24>>2]|0;if((o|0)==2147483647)Ze(384,4,1,i|0)|0;else{A[n>>2]=o;et(i|0,368,n|0)|0}A[n>>2]=A[e+28>>2];et(i|0,392,n|0)|0;if(!t){l=r;return}A[n>>2]=A[e+8>>2];et(i|0,88,n|0)|0;qe(10,i|0)|0;l=r;return}function bt(e){e=e|0;var t=0,r=0,i=0,o=0,s=0;o=l;A[e>>2]=1816;i=e+4|0;r=e+32|0;s=e+48|0;A[i+0>>2]=0;A[i+4>>2]=0;A[i+8>>2]=0;A[i+12>>2]=0;A[i+16>>2]=0;A[i+20>>2]=0;A[r+0>>2]=0;A[r+4>>2]=0;A[r+8>>2]=0;A[r+12>>2]=0;g[s>>3]=+g[75];g[e+56>>3]=+g[89];g[e+64>>3]=+g[103];g[e+72>>3]=+g[123];n[e+80>>0]=n[1364]|0;A[e+84>>2]=A[269];A[e+88>>2]=A[297];n[e+92>>0]=0;n[e+93>>0]=n[1292]|0;g[e+96>>3]=+g[204];A[e+104>>2]=A[439];A[e+108>>2]=A[359];g[e+112>>3]=+g[191];g[e+120>>3]=.3333333333333333;g[e+128>>3]=1.1;A[e+136>>2]=100;g[e+144>>3]=1.5;s=e+316|0;A[e+332>>2]=0;A[e+336>>2]=0;A[e+340>>2]=0;A[e+348>>2]=0;A[e+352>>2]=0;A[e+356>>2]=0;A[e+364>>2]=0;A[e+368>>2]=0;A[e+372>>2]=0;A[e+380>>2]=0;A[e+384>>2]=0;A[e+388>>2]=0;A[e+396>>2]=0;A[e+400>>2]=0;A[e+404>>2]=0;r=e+544|0;A[e+412>>2]=0;A[e+416>>2]=0;A[e+420>>2]=0;A[e+428>>2]=0;A[e+432>>2]=0;A[e+436>>2]=0;A[e+444>>2]=0;A[e+448>>2]=0;A[e+452>>2]=0;Ai(e+152|0,0,176)|0;A[e+456>>2]=r;i=e+460|0;A[i+0>>2]=0;A[i+4>>2]=0;A[i+8>>2]=0;A[i+12>>2]=0;A[i+16>>2]=0;A[i+20>>2]=0;A[e+488>>2]=s;n[e+492>>0]=1;g[e+496>>3]=1.0;g[e+504>>3]=1.0;A[e+512>>2]=0;A[e+516>>2]=-1;s=e+520|0;i=e+536|0;A[s+0>>2]=0;A[s+4>>2]=0;A[s+8>>2]=0;A[s+12>>2]=0;n[i>>0]=1;i=e+540|0;A[i+0>>2]=0;A[i+4>>2]=0;A[i+8>>2]=0;A[i+12>>2]=0;A[i+16>>2]=0;er(r,1048576);n[e+560>>0]=0;r=e+604|0;i=e+664|0;s=e+564|0;t=s+36|0;do{A[s>>2]=0;s=s+4|0}while((s|0)<(t|0));s=r+0|0;t=s+36|0;do{A[s>>2]=0;s=s+4|0}while((s|0)<(t|0));s=e+680|0;A[i+0>>2]=-1;A[i+4>>2]=-1;A[i+8>>2]=-1;A[i+12>>2]=-1;n[s>>0]=0;l=o;return}function Dt(e){e=e|0;var t=0;t=l;St(e);gn(e);l=t;return}function St(e){e=e|0;var t=0,r=0,n=0;t=l;A[e>>2]=1816;r=e+628|0;n=A[r>>2]|0;if(n){A[e+632>>2]=0;On(n);A[r>>2]=0;A[e+636>>2]=0}r=e+616|0;n=A[r>>2]|0;if(n){A[e+620>>2]=0;On(n);A[r>>2]=0;A[e+624>>2]=0}r=e+604|0;n=A[r>>2]|0;if(n){A[e+608>>2]=0;On(n);A[r>>2]=0;A[e+612>>2]=0}r=e+588|0;n=A[r>>2]|0;if(n){A[e+592>>2]=0;On(n);A[r>>2]=0;A[e+596>>2]=0}r=e+576|0;n=A[r>>2]|0;if(n){A[e+580>>2]=0;On(n);A[r>>2]=0;A[e+584>>2]=0}r=e+564|0;n=A[r>>2]|0;if(n){A[e+568>>2]=0;On(n);A[r>>2]=0;A[e+572>>2]=0}r=A[e+544>>2]|0;if(r)On(r);r=e+472|0;n=A[r>>2]|0;if(n){A[e+476>>2]=0;On(n);A[r>>2]=0;A[e+480>>2]=0}r=e+460|0;n=A[r>>2]|0;if(n){A[e+464>>2]=0;On(n);A[r>>2]=0;A[e+468>>2]=0}tr(e+412|0);r=e+396|0;n=A[r>>2]|0;if(n){A[e+400>>2]=0;On(n);A[r>>2]=0;A[e+404>>2]=0}r=e+380|0;n=A[r>>2]|0;if(n){A[e+384>>2]=0;On(n);A[r>>2]=0;A[e+388>>2]=0}n=e+364|0;r=A[n>>2]|0;if(r){A[e+368>>2]=0;On(r);A[n>>2]=0;A[e+372>>2]=0}r=e+348|0;n=A[r>>2]|0;if(n){A[e+352>>2]=0;On(n);A[r>>2]=0;A[e+356>>2]=0}r=e+332|0;n=A[r>>2]|0;if(n){A[e+336>>2]=0;On(n);A[r>>2]=0;A[e+340>>2]=0}r=e+316|0;n=A[r>>2]|0;if(n){A[e+320>>2]=0;On(n);A[r>>2]=0;A[e+324>>2]=0}r=e+304|0;n=A[r>>2]|0;if(n){A[e+308>>2]=0;On(n);A[r>>2]=0;A[e+312>>2]=0}r=e+292|0;n=A[r>>2]|0;if(n){A[e+296>>2]=0;On(n);A[r>>2]=0;A[e+300>>2]=0}r=e+280|0;n=A[r>>2]|0;if(n){A[e+284>>2]=0;On(n);A[r>>2]=0;A[e+288>>2]=0}r=e+268|0;n=A[r>>2]|0;if(n){A[e+272>>2]=0;On(n);A[r>>2]=0;A[e+276>>2]=0}r=e+256|0;n=A[r>>2]|0;if(n){A[e+260>>2]=0;On(n);A[r>>2]=0;A[e+264>>2]=0}r=e+32|0;n=A[r>>2]|0;if(n){A[e+36>>2]=0;On(n);A[r>>2]=0;A[e+40>>2]=0}r=e+16|0;n=A[r>>2]|0;if(n){A[e+20>>2]=0;On(n);A[r>>2]=0;A[e+24>>2]=0}n=e+4|0;r=A[n>>2]|0;if(!r){l=t;return}A[e+8>>2]=0;On(r);A[n>>2]=0;A[e+12>>2]=0;l=t;return}function kt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0,c=0.0,u=0,h=0,p=0,f=0,d=0,C=0;i=l;l=l+16|0;a=i+4|0;s=i;o=e+580|0;u=A[o>>2]|0;if((u|0)>0){p=u+-1|0;f=A[(A[e+576>>2]|0)+(p<<2)>>2]|0;A[o>>2]=p;o=f}else{f=e+540|0;o=A[f>>2]|0;A[f>>2]=o+1}u=e+412|0;f=o<<1;A[a>>2]=f;rr(u,a);A[s>>2]=f|1;rr(u,s);a=e+332|0;u=n[544]|0;s=o+1|0;nr(a,s);n[(A[a>>2]|0)+o>>0]=u;a=e+396|0;u=e+400|0;if((A[u>>2]|0)<(s|0)){p=e+404|0;f=A[p>>2]|0;if((f|0)<(s|0)){d=o+2-f&-2;h=(f>>1)+2&-2;h=(d|0)>(h|0)?d:h;if((h|0)>(2147483647-f|0)){d=Qe(1)|0;ze(d|0,48,0)}C=A[a>>2]|0;d=h+f|0;A[p>>2]=d;d=Yn(C,d<<3)|0;A[a>>2]=d;if((d|0)==0?(A[(Ge()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}p=A[u>>2]|0;if((p|0)<(s|0))do{h=(A[a>>2]|0)+(p<<3)|0;if(h){C=h;A[C>>2]=0;A[C+4>>2]=0}p=p+1|0}while((p|0)!=(s|0));A[u>>2]=s}u=(A[a>>2]|0)+(o<<3)|0;A[u>>2]=-1;A[u+4>>2]=0;u=e+316|0;if(!(n[e+93>>0]|0))c=0.0;else{C=e+72|0;c=+g[C>>3]*1389796.0;c=c-+(~~(c/2147483647.0)|0)*2147483647.0;g[C>>3]=c;c=c/2147483647.0*1.0e-5}a=e+320|0;if((A[a>>2]|0)<(s|0)){h=e+324|0;p=A[h>>2]|0;if((p|0)<(s|0)){C=o+2-p&-2;f=(p>>1)+2&-2;f=(C|0)>(f|0)?C:f;if((f|0)>(2147483647-p|0)){C=Qe(1)|0;ze(C|0,48,0)}d=A[u>>2]|0;C=f+p|0;A[h>>2]=C;C=Yn(d,C<<3)|0;A[u>>2]=C;if((C|0)==0?(A[(Ge()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}f=A[a>>2]|0;if((f|0)<(s|0)){h=A[u>>2]|0;do{p=h+(f<<3)|0;if(p)g[p>>3]=0.0;f=f+1|0}while((f|0)!=(s|0))}A[a>>2]=s}g[(A[u>>2]|0)+(o<<3)>>3]=c;ir(e+588|0,o,0);ir(e+348|0,o,1);a=e+364|0;t=n[t>>0]|0;nr(a,s);n[(A[a>>2]|0)+o>>0]=t;a=e+380|0;t=e+384|0;if((A[t>>2]|0)<(s|0)){u=e+388|0;p=A[u>>2]|0;if((p|0)<(s|0)){C=o+2-p&-2;h=(p>>1)+2&-2;h=(C|0)>(h|0)?C:h;if((h|0)>(2147483647-p|0)){C=Qe(1)|0;ze(C|0,48,0)}d=A[a>>2]|0;C=h+p|0;A[u>>2]=C;C=Yn(d,C)|0;A[a>>2]=C;if((C|0)==0?(A[(Ge()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}u=A[t>>2]|0;if((u|0)<(s|0))do{h=(A[a>>2]|0)+u|0;if(h)n[h>>0]=0;u=u+1|0}while((u|0)!=(s|0));A[t>>2]=s}t=e+288|0;a=A[t>>2]|0;if((a|0)<(s|0)){C=o+2-a&-2;s=(a>>1)+2&-2;s=(C|0)>(s|0)?C:s;if((s|0)>(2147483647-a|0)){C=Qe(1)|0;ze(C|0,48,0)}d=e+280|0;f=A[d>>2]|0;C=s+a|0;A[t>>2]=C;C=Yn(f,C<<2)|0;A[d>>2]=C;if((C|0)==0?(A[(Ge()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}s=e+380|0;t=(A[s>>2]|0)+o|0;a=(n[t>>0]|0)==0;if(r){if(a){C=e+200|0;d=C;d=ai(A[d>>2]|0,A[d+4>>2]|0,1,0)|0;A[C>>2]=d;A[C+4>>2]=K}}else if(!a){C=e+200|0;d=C;d=ai(A[d>>2]|0,A[d+4>>2]|0,-1,-1)|0;A[C>>2]=d;A[C+4>>2]=K}n[t>>0]=r&1;r=e+460|0;if((A[e+476>>2]|0)>(o|0)?(A[(A[e+472>>2]|0)+(o<<2)>>2]|0)>-1:0){l=i;return o|0}if(!(n[(A[s>>2]|0)+o>>0]|0)){l=i;return o|0}Ar(r,o);l=i;return o|0}function Mt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0;r=l;l=l+16|0;c=r+1|0;a=r;i=e+492|0;if(!(n[i>>0]|0)){I=0;l=r;return I|0}I=A[t>>2]|0;s=t+4|0;g=A[s>>2]|0;n[c+0>>0]=n[a+0>>0]|0;ar(I,g,c);g=A[s>>2]|0;e:do{if((g|0)>0){c=e+332|0;a=n[528]|0;u=0;h=0;f=-2;while(1){I=A[t>>2]|0;p=A[I+(u<<2)>>2]|0;C=o[(A[c>>2]|0)+(p>>1)>>0]|0;E=C^p&1;d=E&255;m=a&255;if((p|0)==(f^1|0)?1:(d<<24>>24==a<<24>>24&(m>>>1^1)|m&2&E|0)!=0){e=1;break}E=n[536]|0;m=E&255;if((p|0)!=(f|0)?((m>>>1^1)&d<<24>>24==E<<24>>24|C&2&m|0)==0:0){A[I+(h<<2)>>2]=p;g=A[s>>2]|0;h=h+1|0}else p=f;u=u+1|0;if((u|0)<(g|0))f=p;else break e}l=r;return e|0}else{u=0;h=0}}while(0);a=u-h|0;if((a|0)>0){g=g-a|0;A[s>>2]=g}if(!g){n[i>>0]=0;m=0;l=r;return m|0}else if((g|0)==1){E=A[A[t>>2]>>2]|0;I=E>>1;n[(A[e+332>>2]|0)+I>>0]=(E&1^1)&255^1;m=A[e+296>>2]|0;I=(A[e+396>>2]|0)+(I<<3)|0;A[I>>2]=-1;A[I+4>>2]=m;I=e+284|0;m=A[I>>2]|0;A[I>>2]=m+1;A[(A[e+280>>2]|0)+(m<<2)>>2]=E;m=(Ft(e)|0)==-1;n[i>>0]=m&1;l=r;return m|0}else{t=cr(e+544|0,t,0)|0;s=e+256|0;i=e+260|0;c=A[i>>2]|0;a=e+264|0;if((c|0)==(A[a>>2]|0)){g=(c>>1)+2&-2;g=(g|0)<2?2:g;if((g|0)>(2147483647-c|0)){m=Qe(1)|0;ze(m|0,48,0)}E=A[s>>2]|0;m=g+c|0;A[a>>2]=m;m=Yn(E,m<<2)|0;A[s>>2]=m;if((m|0)==0?(A[(Ge()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}c=A[i>>2]|0}A[i>>2]=c+1;i=(A[s>>2]|0)+(c<<2)|0;if(i)A[i>>2]=t;Rt(e,t);m=1;l=r;return m|0}return 0}function Nt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0;i=A[t>>2]|0;t=i>>1;n[(A[e+332>>2]|0)+t>>0]=(i&1^1)&255^1;o=A[e+296>>2]|0;t=(A[e+396>>2]|0)+(t<<3)|0;A[t>>2]=r;A[t+4>>2]=o;r=e+284|0;t=A[r>>2]|0;A[r>>2]=t+1;A[(A[e+280>>2]|0)+(t<<2)>>2]=i;return}function Ft(e){e=e|0;var t=0,r=0,i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0,F=0,R=0,L=0,x=0,P=0,U=0,T=0,O=0,Y=0;c=l;l=l+16|0;C=c;s=e+512|0;E=A[s>>2]|0;d=e+284|0;if((E|0)>=(A[d>>2]|0)){U=0;x=0;O=-1;T=e+184|0;R=T;P=R;P=A[P>>2]|0;R=R+4|0;R=A[R>>2]|0;R=ai(P|0,R|0,U|0,x|0)|0;P=K;L=T;A[L>>2]=R;T=T+4|0;A[T>>2]=P;T=e+520|0;P=T;L=P;L=A[L>>2]|0;P=P+4|0;P=A[P>>2]|0;x=ii(L|0,P|0,U|0,x|0)|0;U=K;P=T;A[P>>2]=x;T=T+4|0;A[T>>2]=U;l=c;return O|0}p=e+280|0;a=e+428|0;i=e+412|0;g=e+332|0;u=e+544|0;h=C+4|0;t=e+396|0;f=e+296|0;r=e+456|0;v=-1;I=0;do{A[s>>2]=E+1;y=A[(A[p>>2]|0)+(E<<2)>>2]|0;if(n[(A[a>>2]|0)+y>>0]|0){m=A[i>>2]|0;E=m+(y*12|0)+4|0;Q=A[E>>2]|0;if((Q|0)>0){m=m+(y*12|0)|0;B=0;w=0;do{D=A[m>>2]|0;b=D+(B<<3)|0;if((A[(A[A[r>>2]>>2]|0)+(A[b>>2]<<2)>>2]&3|0)!=1){T=b;O=A[T+4>>2]|0;Q=D+(w<<3)|0;A[Q>>2]=A[T>>2];A[Q+4>>2]=O;Q=A[E>>2]|0;w=w+1|0}B=B+1|0}while((B|0)<(Q|0))}else{B=0;w=0}m=B-w|0;if((m|0)>0)A[E>>2]=Q-m;n[(A[a>>2]|0)+y>>0]=0}E=A[i>>2]|0;I=I+1|0;m=A[E+(y*12|0)>>2]|0;E=E+(y*12|0)+4|0;w=A[E>>2]|0;B=m+(w<<3)|0;e:do{if(!w){B=m;Q=m}else{y=y^1;w=(w<<3)+-1|0;D=m;Q=m;while(1){while(1){t:while(1){F=A[D+4>>2]|0;O=o[(A[g>>2]|0)+(F>>1)>>0]^F&1;L=n[528]|0;R=L&255;x=R&2;R=R>>>1^1;if((O&255)<<24>>24==L<<24>>24&R|x&O){M=19;break}b=A[D>>2]|0;M=A[u>>2]|0;N=M+(b<<2)|0;S=M+(b+1<<2)|0;k=A[S>>2]|0;if((k|0)==(y|0)){O=M+(b+2<<2)|0;k=A[O>>2]|0;A[S>>2]=k;A[O>>2]=y}S=D+8|0;A[C>>2]=b;A[h>>2]=k;if((k|0)!=(F|0)?(O=o[(A[g>>2]|0)+(k>>1)>>0]^k&1,((O&255)<<24>>24==L<<24>>24&R|x&O|0)!=0):0){M=27;break}x=A[N>>2]|0;if(x>>>0<=95){M=31;break}R=A[g>>2]|0;L=n[536]|0;F=L&255;O=F&2;F=F>>>1^1;T=2;while(1){P=N+(T<<2)+4|0;U=A[P>>2]|0;Y=o[R+(U>>1)>>0]^U&1;T=T+1|0;if(!((Y&255)<<24>>24==L<<24>>24&F|O&Y))break;if((T|0)>=(x>>>5|0)){M=32;break t}}Y=M+(b+2<<2)|0;A[Y>>2]=U;A[P>>2]=y;gr((A[i>>2]|0)+((A[Y>>2]^1)*12|0)|0,C);if((S|0)==(B|0))break e;else D=S}if((M|0)==19){M=0;T=D;O=A[T+4>>2]|0;Y=Q;A[Y>>2]=A[T>>2];A[Y+4>>2]=O;D=D+8|0;Q=Q+8|0}else if((M|0)==27){M=0;O=C;Y=A[O+4>>2]|0;D=Q;A[D>>2]=A[O>>2];A[D+4>>2]=Y;D=S;Q=Q+8|0}else if((M|0)==31){L=n[536]|0;M=32}if((M|0)==32){M=Q+8|0;N=C;R=A[N+4>>2]|0;F=Q;A[F>>2]=A[N>>2];A[F+4>>2]=R;F=k>>1;R=k&1;N=(A[g>>2]|0)+F|0;Y=o[N>>0]^R;O=L&255;if((Y&255)<<24>>24==L<<24>>24&(O>>>1^1)|O&2&Y)break;n[N>>0]=(R^1)&255^1;Q=A[f>>2]|0;D=(A[t>>2]|0)+(F<<3)|0;A[D>>2]=b;A[D+4>>2]=Q;D=A[d>>2]|0;A[d>>2]=D+1;A[(A[p>>2]|0)+(D<<2)>>2]=k;D=S;Q=M}if((D|0)==(B|0))break e}A[s>>2]=A[d>>2];if(S>>>0>>0){v=(m+(w-S)|0)>>>3;while(1){T=S;S=S+8|0;O=A[T+4>>2]|0;Y=M;A[Y>>2]=A[T>>2];A[Y+4>>2]=O;if(S>>>0>=B>>>0)break;else M=M+8|0}D=D+(v+2<<3)|0;Q=Q+(v+2<<3)|0}else{D=S;Q=M}if((D|0)==(B|0)){v=b;break}else v=b}}}while(0);m=B-Q|0;if((m|0)>0)A[E>>2]=(A[E>>2]|0)-(m>>3);E=A[s>>2]|0}while((E|0)<(A[d>>2]|0));T=I;P=((I|0)<0)<<31>>31;Y=v;O=e+184|0;L=O;U=L;U=A[U>>2]|0;L=L+4|0;L=A[L>>2]|0;L=ai(U|0,L|0,T|0,P|0)|0;U=K;x=O;A[x>>2]=L;O=O+4|0;A[O>>2]=U;O=e+520|0;U=O;x=U;x=A[x>>2]|0;U=U+4|0;U=A[U>>2]|0;P=ii(x|0,U|0,T|0,P|0)|0;T=K;U=O;A[U>>2]=P;O=O+4|0;A[O>>2]=T;l=c;return Y|0}function Rt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0;r=l;l=l+16|0;c=r+8|0;i=r;o=A[e+544>>2]|0;n=o+(t<<2)|0;s=o+(t+1<<2)|0;a=e+412|0;g=(A[a>>2]|0)+((A[s>>2]^1)*12|0)|0;o=o+(t+2<<2)|0;u=A[o>>2]|0;A[c>>2]=t;A[c+4>>2]=u;gr(g,c);o=(A[a>>2]|0)+((A[o>>2]^1)*12|0)|0;s=A[s>>2]|0;A[i>>2]=t;A[i+4>>2]=s;gr(o,i);if(!(A[n>>2]&4)){u=e+208|0;g=u;g=ai(A[g>>2]|0,A[g+4>>2]|0,1,0)|0;A[u>>2]=g;A[u+4>>2]=K;u=e+224|0;g=u;g=ai((A[n>>2]|0)>>>5|0,0,A[g>>2]|0,A[g+4>>2]|0)|0;A[u>>2]=g;A[u+4>>2]=K;l=r;return}else{u=e+216|0;g=u;g=ai(A[g>>2]|0,A[g+4>>2]|0,1,0)|0;A[u>>2]=g;A[u+4>>2]=K;u=e+232|0;g=u;g=ai((A[n>>2]|0)>>>5|0,0,A[g>>2]|0,A[g+4>>2]|0)|0;A[u>>2]=g;A[u+4>>2]=K;l=r;return}}function Kt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0;o=l;l=l+16|0;g=o+4|0;a=o;s=A[e+544>>2]|0;i=s+(t<<2)|0;c=A[s+(t+1<<2)>>2]^1;if(!r){A[g>>2]=c;r=e+428|0;u=A[r>>2]|0;c=u+c|0;if(!(n[c>>0]|0)){n[c>>0]=1;or(e+444|0,g);u=A[r>>2]|0}t=A[s+(t+2<<2)>>2]^1;A[a>>2]=t;t=u+t|0;if(!(n[t>>0]|0)){n[t>>0]=1;or(e+444|0,a)}}else{a=e+412|0;r=A[a>>2]|0;g=r+(c*12|0)|0;s=s+(t+2<<2)|0;c=r+(c*12|0)+4|0;u=A[c>>2]|0;e:do{if((u|0)>0){f=A[g>>2]|0;p=0;while(1){h=p+1|0;if((A[f+(p<<3)>>2]|0)==(t|0)){h=p;break e}if((h|0)<(u|0))p=h;else break}}else h=0}while(0);u=u+-1|0;if((h|0)<(u|0)){do{r=A[g>>2]|0;u=h;h=h+1|0;p=r+(h<<3)|0;f=A[p+4>>2]|0;u=r+(u<<3)|0;A[u>>2]=A[p>>2];A[u+4>>2]=f;u=(A[c>>2]|0)+-1|0}while((h|0)<(u|0));r=A[a>>2]|0}A[c>>2]=u;a=A[s>>2]^1;s=r+(a*12|0)|0;a=r+(a*12|0)+4|0;c=A[a>>2]|0;e:do{if((c|0)>0){r=A[s>>2]|0;u=0;while(1){g=u+1|0;if((A[r+(u<<3)>>2]|0)==(t|0)){g=u;break e}if((g|0)<(c|0))u=g;else break}}else g=0}while(0);t=c+-1|0;if((g|0)<(t|0))do{h=A[s>>2]|0;t=g;g=g+1|0;p=h+(g<<3)|0;f=A[p+4>>2]|0;t=h+(t<<3)|0;A[t>>2]=A[p>>2];A[t+4>>2]=f;t=(A[a>>2]|0)+-1|0}while((g|0)<(t|0));A[a>>2]=t}if(!(A[i>>2]&4)){f=e+208|0;p=f;p=ai(A[p>>2]|0,A[p+4>>2]|0,-1,-1)|0;A[f>>2]=p;A[f+4>>2]=K;f=e+224|0;p=f;p=ii(A[p>>2]|0,A[p+4>>2]|0,(A[i>>2]|0)>>>5|0,0)|0;A[f>>2]=p;A[f+4>>2]=K;l=o;return}else{f=e+216|0;p=f;p=ai(A[p>>2]|0,A[p+4>>2]|0,-1,-1)|0;A[f>>2]=p;A[f+4>>2]=K;f=e+232|0;p=f;p=ii(A[p>>2]|0,A[p+4>>2]|0,(A[i>>2]|0)>>>5|0,0)|0;A[f>>2]=p;A[f+4>>2]=K;l=o;return}}function Lt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0;s=l;i=e+544|0;u=A[i>>2]|0;r=u+(t<<2)|0;Kt(e,t,0);u=A[u+(t+1<<2)>>2]|0;a=u>>1;u=(o[(A[e+332>>2]|0)+a>>0]|0)^u&1;p=n[528]|0;h=p&255;if((((u&255)<<24>>24==p<<24>>24&(h>>>1^1)|h&2&u|0)!=0?(c=(A[e+396>>2]|0)+(a<<3)|0,g=A[c>>2]|0,(g|0)!=-1):0)?((A[i>>2]|0)+(g<<2)|0)==(r|0):0)A[c>>2]=-1;A[r>>2]=A[r>>2]&-4|1;h=A[(A[i>>2]|0)+(t<<2)>>2]|0;p=e+556|0;A[p>>2]=((((h>>>3&1)+(h>>>5)<<2)+4|0)>>>2)+(A[p>>2]|0);l=s;return}function xt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,a=0,c=0,g=0,u=0;r=l;i=A[t>>2]|0;if(i>>>0<=31){g=0;l=r;return g|0}s=A[e+332>>2]|0;a=n[528]|0;c=a&255;g=c&2;c=c>>>1^1;e=0;while(1){u=A[t+(e<<2)+4>>2]|0;u=(o[s+(u>>1)>>0]|0)^u&1;e=e+1|0;if((u&255)<<24>>24==a<<24>>24&c|g&u){i=1;t=5;break}if((e|0)>=(i>>>5|0)){i=0;t=5;break}}if((t|0)==5){l=r;return i|0}return 0}function Pt(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0;o=l;r=e+296|0;if((A[r>>2]|0)<=(t|0)){l=o;return}i=e+284|0;I=A[i>>2]|0;a=e+292|0;E=A[a>>2]|0;m=A[E+(t<<2)>>2]|0;if((I|0)>(m|0)){C=e+280|0;u=e+332|0;g=e+88|0;c=e+348|0;h=e+460|0;f=e+476|0;d=e+472|0;p=e+380|0;do{I=I+-1|0;m=A[(A[C>>2]|0)+(I<<2)>>2]>>1;n[(A[u>>2]|0)+m>>0]=n[544]|0;E=A[g>>2]|0;if((E|0)<=1){if((E|0)==1?(I|0)>(A[(A[a>>2]|0)+((A[r>>2]|0)+-1<<2)>>2]|0):0)s=7}else s=7;if((s|0)==7){s=0;n[(A[c>>2]|0)+m>>0]=A[(A[C>>2]|0)+(I<<2)>>2]&1}if(!((A[f>>2]|0)>(m|0)?(A[(A[d>>2]|0)+(m<<2)>>2]|0)>-1:0))s=11;if((s|0)==11?(s=0,(n[(A[p>>2]|0)+m>>0]|0)!=0):0)Ar(h,m);E=A[a>>2]|0;m=A[E+(t<<2)>>2]|0}while((I|0)>(m|0));I=A[i>>2]|0}A[e+512>>2]=m;e=A[E+(t<<2)>>2]|0;if((I-e|0)>0)A[i>>2]=e;if(((A[r>>2]|0)-t|0)<=0){l=o;return}A[r>>2]=t;l=o;return}function Ut(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0,u=0,h=0,p=0,f=0,d=0.0,C=0;t=l;i=e+72|0;d=+g[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;g[i>>3]=d;c=e+464|0;if(d/2147483647.0<+g[e+64>>3]?(u=A[c>>2]|0,(u|0)!=0):0){d=d*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;g[i>>3]=d;u=A[(A[e+460>>2]|0)+(~~(+(u|0)*(d/2147483647.0))<<2)>>2]|0;p=n[(A[e+332>>2]|0)+u>>0]|0;h=n[544]|0;f=h&255;if(((f>>>1^1)&p<<24>>24==h<<24>>24|p&2&f|0)!=0?(n[(A[e+380>>2]|0)+u>>0]|0)!=0:0){f=e+176|0;p=f;p=ai(A[p>>2]|0,A[p+4>>2]|0,1,0)|0;A[f>>2]=p;A[f+4>>2]=K}}else u=-1;h=e+460|0;f=e+332|0;p=e+380|0;while(1){if(((u|0)!=-1?(C=n[(A[f>>2]|0)+u>>0]|0,s=n[544]|0,r=s&255,o=r>>>1^1,(o&C<<24>>24==s<<24>>24|C&2&r|0)!=0):0)?(n[(A[p>>2]|0)+u>>0]|0)!=0:0)break;if(!(A[c>>2]|0)){r=-2;a=17;break}u=lr(h)|0}if((a|0)==17){l=t;return r|0}c=n[(A[e+364>>2]|0)+u>>0]|0;a=c&255;if(!(o&c<<24>>24==s<<24>>24|r&2&a)){f=n[528]|0;C=f&255;C=((C>>>1^1)&c<<24>>24==f<<24>>24|a&2&C|0)!=0|u<<1;l=t;return C|0}if(!(n[e+92>>0]|0)){C=(n[(A[e+348>>2]|0)+u>>0]|0)!=0|u<<1;l=t;return C|0}else{d=+g[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;g[i>>3]=d;C=d/2147483647.0<.5|u<<1;l=t;return C|0}return 0}function Tt(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var o=0,s=0,a=0,u=0,h=0,p=0,f=0,d=0,C=0.0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0,F=0,R=0,L=0,x=0,P=0,U=0,T=0,O=0,Y=0,j=0,G=0,H=0,J=0.0,_=0;o=l;l=l+16|0;f=o+8|0;E=o+4|0;h=o;u=r+4|0;s=A[u>>2]|0;a=r+8|0;if((s|0)==(A[a>>2]|0)){d=(s>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-s|0)){H=Qe(1)|0;ze(H|0,48,0)}G=A[r>>2]|0;H=d+s|0;A[a>>2]=H;H=Yn(G,H<<2)|0;A[r>>2]=H;if((H|0)==0?(A[(Ge()|0)>>2]|0)==12:0){H=Qe(1)|0;ze(H|0,48,0)}s=A[u>>2]|0}a=(A[r>>2]|0)+(s<<2)|0;if(a){A[a>>2]=0;s=A[u>>2]|0}A[u>>2]=s+1;d=e+544|0;F=e+280|0;s=e+588|0;a=e+396|0;S=e+504|0;M=e+316|0;k=e+540|0;D=e+476|0;b=e+472|0;v=e+460|0;Q=e+488|0;w=e+296|0;B=e+496|0;y=e+272|0;N=e+268|0;L=-2;R=(A[e+284>>2]|0)+-1|0;x=0;do{P=A[d>>2]|0;t=P+(t<<2)|0;U=A[t>>2]|0;if((U&4|0)!=0?(C=+g[B>>3],H=t+(U>>>5<<2)+4|0,J=C+ +c[H>>2],c[H>>2]=J,J>1.0e20):0){O=A[y>>2]|0;if((O|0)>0){T=A[N>>2]|0;U=0;do{H=P+(A[T+(U<<2)>>2]<<2)|0;H=H+((A[H>>2]|0)>>>5<<2)+4|0;c[H>>2]=+c[H>>2]*1.0e-20;U=U+1|0}while((U|0)!=(O|0))}g[B>>3]=C*1.0e-20}L=(L|0)!=-2&1;if(L>>>0<(A[t>>2]|0)>>>5>>>0)do{U=A[t+(L<<2)+4>>2]|0;A[E>>2]=U;U=U>>1;P=(A[s>>2]|0)+U|0;do{if((n[P>>0]|0)==0?(A[(A[a>>2]|0)+(U<<3)+4>>2]|0)>0:0){O=A[M>>2]|0;H=O+(U<<3)|0;J=+g[S>>3]+ +g[H>>3];g[H>>3]=J;if(J>1.0e+100){Y=A[k>>2]|0;if((Y|0)>0){T=0;do{H=O+(T<<3)|0;g[H>>3]=+g[H>>3]*1.0e-100;T=T+1|0}while((T|0)!=(Y|0))}g[S>>3]=+g[S>>3]*1.0e-100}if((A[D>>2]|0)>(U|0)?(m=A[b>>2]|0,I=A[m+(U<<2)>>2]|0,(I|0)>-1):0){T=A[v>>2]|0;O=A[T+(I<<2)>>2]|0;e:do{if(!I)G=0;else{H=I;while(1){G=H;H=H+-1>>1;j=T+(H<<2)|0;Y=A[j>>2]|0;_=A[A[Q>>2]>>2]|0;if(!(+g[_+(O<<3)>>3]>+g[_+(Y<<3)>>3]))break e;A[T+(G<<2)>>2]=Y;A[m+(A[j>>2]<<2)>>2]=G;if(!H){G=0;break}}}}while(0);A[T+(G<<2)>>2]=O;A[m+(O<<2)>>2]=G}n[P>>0]=1;if((A[(A[a>>2]|0)+(U<<3)+4>>2]|0)<(A[w>>2]|0)){or(r,E);break}else{x=x+1|0;break}}}while(0);L=L+1|0}while((L|0)<((A[t>>2]|0)>>>5|0));t=A[F>>2]|0;P=A[s>>2]|0;do{L=R;R=R+-1|0;L=A[t+(L<<2)>>2]|0;T=L>>1;U=P+T|0}while((n[U>>0]|0)==0);t=A[(A[a>>2]|0)+(T<<3)>>2]|0;n[U>>0]=0;x=x+-1|0}while((x|0)>0);A[A[r>>2]>>2]=L^1;E=e+616|0;B=A[E>>2]|0;I=e+620|0;if(!B)y=A[I>>2]|0;else{A[I>>2]=0;y=0}m=A[u>>2]|0;if((y|0)<(m|0)){Q=e+624|0;w=A[Q>>2]|0;if((w|0)<(m|0)){_=m+1-w&-2;y=(w>>1)+2&-2;y=(_|0)>(y|0)?_:y;if((y|0)>(2147483647-w|0)){_=Qe(1)|0;ze(_|0,48,0)}_=y+w|0;A[Q>>2]=_;B=Yn(B,_<<2)|0;A[E>>2]=B;if((B|0)==0?(A[(Ge()|0)>>2]|0)==12:0){_=Qe(1)|0;ze(_|0,48,0)}}y=A[I>>2]|0;e:do{if((y|0)<(m|0))while(1){B=B+(y<<2)|0;if(B)A[B>>2]=0;y=y+1|0;if((y|0)==(m|0))break e;B=A[E>>2]|0}}while(0);A[I>>2]=m;m=A[u>>2]|0}if((m|0)>0){y=A[E>>2]|0;B=A[r>>2]|0;w=0;do{A[y+(w<<2)>>2]=A[B+(w<<2)>>2];w=w+1|0;m=A[u>>2]|0}while((w|0)<(m|0))}B=A[e+84>>2]|0;if((B|0)==1)if((m|0)>1){h=A[r>>2]|0;p=1;B=1;while(1){m=A[h+(p<<2)>>2]|0;f=A[a>>2]|0;y=A[f+(m>>1<<3)>>2]|0;e:do{if((y|0)!=-1){w=(A[d>>2]|0)+(y<<2)|0;Q=A[w>>2]|0;if(Q>>>0>63){y=A[s>>2]|0;v=1;while(1){_=A[w+(v<<2)+4>>2]>>1;if((n[y+_>>0]|0)==0?(A[f+(_<<3)+4>>2]|0)>0:0)break;v=v+1|0;if((v|0)>=(Q>>>5|0))break e}A[h+(B<<2)>>2]=m;B=B+1|0}}else{A[h+(B<<2)>>2]=m;B=B+1|0}}while(0);p=p+1|0;f=A[u>>2]|0;if((p|0)>=(f|0)){h=f;break}}}else{h=m;p=1;B=1}else if((B|0)==2)if((m|0)>1){d=1;B=1;do{y=A[r>>2]|0;m=A[y+(d<<2)>>2]|0;if((A[(A[a>>2]|0)+(m>>1<<3)>>2]|0)!=-1){A[h>>2]=m;A[f+0>>2]=A[h+0>>2];if(!(Ot(e,f)|0)){m=A[r>>2]|0;y=m;m=A[m+(d<<2)>>2]|0;p=62}}else p=62;if((p|0)==62){p=0;A[y+(B<<2)>>2]=m;B=B+1|0}d=d+1|0;m=A[u>>2]|0}while((d|0)<(m|0));h=m;p=d}else{h=m;p=1;B=1}else{h=m;p=m;B=m}_=e+240|0;H=_;H=ai(A[H>>2]|0,A[H+4>>2]|0,h|0,((h|0)<0)<<31>>31|0)|0;A[_>>2]=H;A[_+4>>2]=K;p=p-B|0;if((p|0)>0){h=h-p|0;A[u>>2]=h}_=e+248|0;H=_;H=ai(A[H>>2]|0,A[H+4>>2]|0,h|0,((h|0)<0)<<31>>31|0)|0;A[_>>2]=H;A[_+4>>2]=K;if((h|0)==1)r=0;else{r=A[r>>2]|0;if((h|0)>2){e=A[a>>2]|0;u=2;p=1;do{p=(A[e+(A[r+(u<<2)>>2]>>1<<3)+4>>2]|0)>(A[e+(A[r+(p<<2)>>2]>>1<<3)+4>>2]|0)?u:p;u=u+1|0}while((u|0)<(h|0))}else p=1;H=r+(p<<2)|0;_=A[H>>2]|0;r=r+4|0;A[H>>2]=A[r>>2];A[r>>2]=_;r=A[(A[a>>2]|0)+(_>>1<<3)+4>>2]|0}A[i>>2]=r;if((A[I>>2]|0)>0)i=0;else{l=o;return}do{n[(A[s>>2]|0)+(A[(A[E>>2]|0)+(i<<2)>>2]>>1)>>0]=0;i=i+1|0}while((i|0)<(A[I>>2]|0));l=o;return}function Ot(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0;r=l;h=A[t>>2]|0;g=e+396|0;d=A[g>>2]|0;c=e+544|0;I=(A[c>>2]|0)+(A[d+(h>>1<<3)>>2]<<2)|0;s=e+604|0;i=e+608|0;if(A[s>>2]|0)A[i>>2]=0;o=e+588|0;a=e+612|0;e=e+616|0;p=1;while(1){if(p>>>0<(A[I>>2]|0)>>>5>>>0){C=A[I+(p<<2)+4>>2]|0;f=C>>1;if((A[d+(f<<3)+4>>2]|0)!=0?(u=n[(A[o>>2]|0)+f>>0]|0,(u+-1<<24>>24&255)>=2):0){I=A[i>>2]|0;E=(I|0)==(A[a>>2]|0);if(u<<24>>24==3?1:(A[d+(f<<3)>>2]|0)==-1){c=8;break}if(E){d=(I>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-I|0)){c=24;break}m=A[s>>2]|0;E=d+I|0;A[a>>2]=E;E=Yn(m,E<<3)|0;A[s>>2]=E;if((E|0)==0?(A[(Ge()|0)>>2]|0)==12:0){c=24;break}I=A[i>>2]|0}A[i>>2]=I+1;d=(A[s>>2]|0)+(I<<3)|0;if(d){m=d;A[m>>2]=p;A[m+4>>2]=h}A[t>>2]=C;I=A[g>>2]|0;h=C;d=I;I=(A[c>>2]|0)+(A[I+(f<<3)>>2]<<2)|0;p=0}}else{h=(A[o>>2]|0)+(h>>1)|0;if(!(n[h>>0]|0)){n[h>>0]=2;or(e,t)}h=A[i>>2]|0;if(!h){i=1;c=34;break}m=h+-1|0;h=A[s>>2]|0;p=A[h+(m<<3)>>2]|0;h=A[h+(m<<3)+4>>2]|0;A[t>>2]=h;d=A[g>>2]|0;I=(A[c>>2]|0)+(A[d+(h>>1<<3)>>2]<<2)|0;A[i>>2]=m}p=p+1|0}if((c|0)==8){if(E){c=(I>>1)+2&-2;c=(c|0)<2?2:c;if((c|0)>(2147483647-I|0)){m=Qe(1)|0;ze(m|0,48,0)}E=A[s>>2]|0;m=c+I|0;A[a>>2]=m;m=Yn(E,m<<3)|0;A[s>>2]=m;if((m|0)==0?(A[(Ge()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}I=A[i>>2]|0}a=I+1|0;A[i>>2]=a;c=(A[s>>2]|0)+(I<<3)|0;if(c){a=c;A[a>>2]=0;A[a+4>>2]=h;a=A[i>>2]|0}if((a|0)>0)c=0;else{m=0;l=r;return m|0}do{g=(A[o>>2]|0)+(A[(A[s>>2]|0)+(c<<3)+4>>2]>>1)|0;if(!(n[g>>0]|0)){n[g>>0]=3;or(e,(A[s>>2]|0)+(c<<3)+4|0);a=A[i>>2]|0}c=c+1|0}while((c|0)<(a|0));i=0;l=r;return i|0}else if((c|0)==24)ze(Qe(1)|0,48,0);else if((c|0)==34){l=r;return i|0}return 0}function Yt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0;a=l;l=l+32|0;s=a+16|0;o=a+12|0;c=a+8|0;i=a;h=r+20|0;g=r+16|0;if((A[h>>2]|0)>0){u=0;do{n[(A[r>>2]|0)+(A[(A[g>>2]|0)+(u<<2)>>2]|0)>>0]=0;u=u+1|0}while((u|0)<(A[h>>2]|0))}if(A[g>>2]|0)A[h>>2]=0;u=A[t>>2]|0;A[c>>2]=u;A[o>>2]=u;A[s+0>>2]=A[o+0>>2];ur(r,s,0);g=(A[r>>2]|0)+u|0;if(!(n[g>>0]|0)){n[g>>0]=1;or(r+16|0,c)}if(!(A[e+296>>2]|0)){l=a;return}t=u>>1;p=e+588|0;n[(A[p>>2]|0)+t>>0]=1;f=A[e+284>>2]|0;h=e+292|0;I=A[A[h>>2]>>2]|0;if((f|0)>(I|0)){c=e+280|0;g=e+396|0;u=r+16|0;e=e+544|0;do{f=f+-1|0;C=A[(A[c>>2]|0)+(f<<2)>>2]|0;d=C>>1;if(n[(A[p>>2]|0)+d>>0]|0){I=A[g>>2]|0;E=A[I+(d<<3)>>2]|0;e:do{if((E|0)==-1){C=C^1;A[i>>2]=C;A[o>>2]=C;A[s+0>>2]=A[o+0>>2];ur(r,s,0);C=(A[r>>2]|0)+C|0;if(!(n[C>>0]|0)){n[C>>0]=1;or(u,i)}}else{C=(A[e>>2]|0)+(E<<2)|0;E=A[C>>2]|0;if(E>>>0>63){m=1;while(1){B=A[C+(m<<2)+4>>2]>>1;if((A[I+(B<<3)+4>>2]|0)>0){n[(A[p>>2]|0)+B>>0]=1;E=A[C>>2]|0}m=m+1|0;if((m|0)>=(E>>>5|0))break e;I=A[g>>2]|0}}}}while(0);n[(A[p>>2]|0)+d>>0]=0;I=A[A[h>>2]>>2]|0}}while((f|0)>(I|0))}n[(A[p>>2]|0)+t>>0]=0;l=a;return}function jt(e){e=e|0;var t=0,r=0,i=0,s=0,a=0,u=0,h=0.0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0;r=l;l=l+16|0;f=r+4|0;m=r;t=e+272|0;y=A[t>>2]|0;h=+g[e+496>>3]/+(y|0);s=e+544|0;a=e+268|0;B=A[a>>2]|0;A[m>>2]=s;A[f+0>>2]=A[m+0>>2];hr(B,y,f);f=A[t>>2]|0;if((f|0)>0){u=e+332|0;p=e+396|0;d=0;B=0;do{E=A[a>>2]|0;m=A[E+(d<<2)>>2]|0;y=A[s>>2]|0;C=y+(m<<2)|0;I=A[C>>2]|0;do{if(I>>>0>95){w=A[y+(m+1<<2)>>2]|0;y=w>>1;w=(o[(A[u>>2]|0)+y>>0]|0)^w&1;v=n[528]|0;Q=v&255;if(((w&255)<<24>>24==v<<24>>24&(Q>>>1^1)|Q&2&w|0)!=0?(v=A[(A[p>>2]|0)+(y<<3)>>2]|0,(v|0)!=-1&(v|0)==(m|0)):0){i=9;break}if((d|0)>=((f|0)/2|0|0)?!(+c[C+(I>>>5<<2)+4>>2]>2]=m;B=B+1|0}d=d+1|0;f=A[t>>2]|0}while((d|0)<(f|0))}else{d=0;B=0}i=d-B|0;if((i|0)>0)A[t>>2]=f-i;if(!(+((A[e+556>>2]|0)>>>0)>+g[e+96>>3]*+((A[e+548>>2]|0)>>>0))){l=r;return}ji[A[(A[e>>2]|0)+8>>2]&31](e);l=r;return}function Gt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0;r=l;i=t+4|0;u=A[i>>2]|0;if((u|0)>0){a=e+544|0;s=e+332|0;c=0;g=0;do{m=A[t>>2]|0;f=A[m+(c<<2)>>2]|0;u=(A[a>>2]|0)+(f<<2)|0;p=A[u>>2]|0;do{if(p>>>0>31){B=A[s>>2]|0;C=n[528]|0;d=C&255;y=d&2;d=d>>>1^1;I=p>>>5;E=0;do{w=A[u+(E<<2)+4>>2]|0;w=(o[B+(w>>1)>>0]|0)^w&1;E=E+1|0;if((w&255)<<24>>24==C<<24>>24&d|y&w){h=7;break}}while((E|0)<(I|0));if((h|0)==7){h=0;Lt(e,f);break}if(p>>>0>95){h=n[536]|0;d=p>>>5;f=2;do{C=u+(f<<2)+4|0;w=A[C>>2]|0;w=(o[(A[s>>2]|0)+(w>>1)>>0]|0)^w&1;y=h&255;if((w&255)<<24>>24==h<<24>>24&(y>>>1^1)|y&2&w){A[C>>2]=A[u+(d+-1<<2)+4>>2];p=A[u>>2]|0;if(p&8){p=p>>>5;A[u+(p+-1<<2)+4>>2]=A[u+(p<<2)+4>>2];p=A[u>>2]|0}p=p+-32|0;A[u>>2]=p;f=f+-1|0}f=f+1|0;d=p>>>5}while((f|0)<(d|0));f=A[t>>2]|0;m=f;f=A[f+(c<<2)>>2]|0;h=16}else h=16}else h=16}while(0);if((h|0)==16){h=0;A[m+(g<<2)>>2]=f;g=g+1|0}c=c+1|0;u=A[i>>2]|0}while((c|0)<(u|0))}else{c=0;g=0}t=c-g|0;if((t|0)<=0){l=r;return}A[i>>2]=u-t;l=r;return}function Ht(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0;o=l;l=l+16|0;r=o+4|0;s=o;A[r>>2]=0;t=r+4|0;A[t>>2]=0;i=r+8|0;A[i>>2]=0;A[s>>2]=0;a=e+540|0;h=A[a>>2]|0;if((h|0)>0){g=e+380|0;c=e+332|0;u=0;do{if((n[(A[g>>2]|0)+u>>0]|0)!=0?(f=n[(A[c>>2]|0)+u>>0]|0,d=n[544]|0,p=d&255,((p>>>1^1)&f<<24>>24==d<<24>>24|f&2&p|0)!=0):0){sr(r,s);h=A[a>>2]|0}u=u+1|0;A[s>>2]=u}while((u|0)<(h|0))}pr(e+460|0,r);e=A[r>>2]|0;if(!e){l=o;return}A[t>>2]=0;On(e);A[r>>2]=0;A[i>>2]=0;l=o;return}function Jt(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0;t=l;i=e+492|0;if((n[i>>0]|0)!=0?(Ft(e)|0)==-1:0){i=e+284|0;o=e+516|0;if((A[i>>2]|0)==(A[o>>2]|0)){I=1;l=t;return I|0}s=e+520|0;I=s;C=A[I+4>>2]|0;if((C|0)>0|(C|0)==0&(A[I>>2]|0)>>>0>0){I=1;l=t;return I|0}Gt(e,e+268|0);if(n[e+536>>0]|0){Gt(e,e+256|0);c=e+564|0;a=e+568|0;if((A[a>>2]|0)>0){h=e+588|0;u=0;do{n[(A[h>>2]|0)+(A[(A[c>>2]|0)+(u<<2)>>2]|0)>>0]=1;u=u+1|0}while((u|0)<(A[a>>2]|0))}f=A[i>>2]|0;if((f|0)>0){u=A[e+280>>2]|0;h=A[e+588>>2]|0;d=0;p=0;do{C=A[u+(d<<2)>>2]|0;if(!(n[h+(C>>1)>>0]|0)){A[u+(p<<2)>>2]=C;f=A[i>>2]|0;p=p+1|0}d=d+1|0}while((d|0)<(f|0))}else{d=0;p=0}u=d-p|0;if((u|0)>0){f=f-u|0;A[i>>2]=f}A[e+512>>2]=f;e:do{if((A[a>>2]|0)>0){p=e+588|0;u=0;do{n[(A[p>>2]|0)+(A[(A[c>>2]|0)+(u<<2)>>2]|0)>>0]=0;u=u+1|0;h=A[a>>2]|0}while((u|0)<(h|0));if((h|0)>0){h=e+580|0;p=e+584|0;u=e+576|0;f=0;while(1){C=A[h>>2]|0;if((C|0)==(A[p>>2]|0)){d=(C>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-C|0)){r=28;break}I=A[u>>2]|0;d=d+C|0;A[p>>2]=d;d=Yn(I,d<<2)|0;A[u>>2]=d;if((d|0)==0?(A[(Ge()|0)>>2]|0)==12:0){r=28;break}C=A[h>>2]|0}else d=A[u>>2]|0;I=d+(C<<2)|0;if(I){A[I>>2]=0;C=A[h>>2]|0}A[h>>2]=C+1;I=A[c>>2]|0;A[d+(C<<2)>>2]=A[I+(f<<2)>>2];f=f+1|0;if((f|0)>=(A[a>>2]|0))break e}if((r|0)==28)ze(Qe(1)|0,48,0)}else r=21}else r=21}while(0);if((r|0)==21)I=A[c>>2]|0;if(I)A[a>>2]=0}if(+((A[e+556>>2]|0)>>>0)>+g[e+96>>3]*+((A[e+548>>2]|0)>>>0))ji[A[(A[e>>2]|0)+8>>2]&31](e);Ht(e);A[o>>2]=A[i>>2];C=e+224|0;I=e+232|0;C=ai(A[I>>2]|0,A[I+4>>2]|0,A[C>>2]|0,A[C+4>>2]|0)|0;I=s;A[I>>2]=C;A[I+4>>2]=K;I=1;l=t;return I|0}n[i>>0]=0;I=0;l=t;return I|0}function _t(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,a=0,u=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0,F=0,R=0,L=0,x=0,P=0,U=0,T=0,O=0,Y=0,j=0,G=0,H=0,J=0,_=0,z=0,W=0,V=0,X=0,Z=0,$=0,ee=0,te=0,re=0,ne=0,ie=0,Ae=0.0,oe=0,se=0,ae=0,ce=0.0,ge=0,le=0,ue=0,he=0,pe=0,fe=0,de=0.0,Ce=0,Ie=0,Ee=0.0;u=l;l=l+64|0;Z=u;N=u+60|0;D=u+56|0;i=u+44|0;$=u+40|0;A[i>>2]=0;a=i+4|0;A[a>>2]=0;s=i+8|0;A[s>>2]=0;T=t+160|0;U=T;U=ai(A[U>>2]|0,A[U+4>>2]|0,1,0)|0;A[T>>2]=U;A[T+4>>2]=K;T=(r|0)<0;U=t+680|0;P=t+664|0;x=t+672|0;d=t+296|0;y=t+272|0;p=t+284|0;R=t+640|0;M=t+308|0;k=t+304|0;C=t+332|0;F=t+292|0;te=t+168|0;E=t+396|0;B=t+280|0;L=t+184|0;S=t+192|0;m=t+48|0;J=t+504|0;V=t+56|0;ee=t+496|0;re=t+656|0;O=t+144|0;Y=t+648|0;j=t+128|0;G=t+44|0;H=t+200|0;_=t+208|0;z=t+224|0;W=t+216|0;I=t+232|0;X=t+540|0;f=t+292|0;w=t+544|0;v=t+276|0;Q=t+268|0;b=t+268|0;ne=0;e:while(1){ie=T|(ne|0)<(r|0);while(1){oe=Ft(t)|0;if((oe|0)!=-1)break;if(!ie){oe=41;break e}if(n[U>>0]|0){oe=41;break e}oe=P;se=A[oe+4>>2]|0;if((se|0)>=0?(Ie=S,Ce=A[Ie+4>>2]|0,!(Ce>>>0>>0|((Ce|0)==(se|0)?(A[Ie>>2]|0)>>>0<(A[oe>>2]|0)>>>0:0))):0){oe=41;break e}oe=x;se=A[oe+4>>2]|0;if((se|0)>=0?(Ie=L,Ce=A[Ie+4>>2]|0,!(Ce>>>0>>0|((Ce|0)==(se|0)?(A[Ie>>2]|0)>>>0<(A[oe>>2]|0)>>>0:0))):0){oe=41;break e}if((A[d>>2]|0)==0?!(Jt(t)|0):0){oe=50;break e}if(+((A[y>>2]|0)-(A[p>>2]|0)|0)>=+g[R>>3])jt(t);while(1){oe=A[d>>2]|0;if((oe|0)>=(A[M>>2]|0)){oe=59;break}ge=A[(A[k>>2]|0)+(oe<<2)>>2]|0;se=o[(A[C>>2]|0)+(ge>>1)>>0]|0;Ie=se^ge&1;ae=Ie&255;fe=n[528]|0;Ce=fe&255;if(!(ae<<24>>24==fe<<24>>24&(Ce>>>1^1)|Ce&2&Ie)){oe=56;break}A[N>>2]=A[p>>2];sr(F,N)}if((oe|0)==56){oe=0;Ce=n[536]|0;Ie=Ce&255;if((Ie>>>1^1)&ae<<24>>24==Ce<<24>>24|se&2&Ie){oe=57;break e}if((ge|0)==-2)oe=59}if((oe|0)==59){Ie=te;Ie=ai(A[Ie>>2]|0,A[Ie+4>>2]|0,1,0)|0;ge=te;A[ge>>2]=Ie;A[ge+4>>2]=K;ge=Ut(t)|0;if((ge|0)==-2){oe=60;break e}}A[Z>>2]=A[p>>2];sr(F,Z);Ie=ge>>1;n[(A[C>>2]|0)+Ie>>0]=(ge&1^1)&255^1;Ce=A[d>>2]|0;Ie=(A[E>>2]|0)+(Ie<<3)|0;A[Ie>>2]=-1;A[Ie+4>>2]=Ce;Ie=A[p>>2]|0;A[p>>2]=Ie+1;A[(A[B>>2]|0)+(Ie<<2)>>2]=ge}Ce=S;Ce=ai(A[Ce>>2]|0,A[Ce+4>>2]|0,1,0)|0;Ie=S;A[Ie>>2]=Ce;A[Ie+4>>2]=K;ne=ne+1|0;if(!(A[d>>2]|0)){oe=5;break}if(A[i>>2]|0)A[a>>2]=0;Tt(t,oe,i,D);Pt(t,A[D>>2]|0);if((A[a>>2]|0)==1){Ce=A[A[i>>2]>>2]|0;Ie=Ce>>1;n[(A[C>>2]|0)+Ie>>0]=(Ce&1^1)&255^1;fe=A[d>>2]|0;Ie=(A[E>>2]|0)+(Ie<<3)|0;A[Ie>>2]=-1;A[Ie+4>>2]=fe;Ie=A[p>>2]|0;A[p>>2]=Ie+1;A[(A[B>>2]|0)+(Ie<<2)>>2]=Ce}else{ie=cr(w,i,1)|0;oe=A[y>>2]|0;if((oe|0)==(A[v>>2]|0)){se=(oe>>1)+2&-2;se=(se|0)<2?2:se;if((se|0)>(2147483647-oe|0)){oe=14;break}Ce=A[Q>>2]|0;Ie=se+oe|0;A[v>>2]=Ie;Ie=Yn(Ce,Ie<<2)|0;A[Q>>2]=Ie;if((Ie|0)==0?(A[(Ge()|0)>>2]|0)==12:0){oe=14;break}oe=A[y>>2]|0}A[y>>2]=oe+1;oe=(A[Q>>2]|0)+(oe<<2)|0;if(oe)A[oe>>2]=ie;Rt(t,ie);ae=A[w>>2]|0;Ie=ae+(ie<<2)|0;Ae=+g[ee>>3];Ie=Ie+((A[Ie>>2]|0)>>>5<<2)+4|0;Ee=Ae+ +c[Ie>>2];c[Ie>>2]=Ee;if(Ee>1.0e20){se=A[y>>2]|0;if((se|0)>0){oe=A[b>>2]|0;ge=0;do{Ie=ae+(A[oe+(ge<<2)>>2]<<2)|0;Ie=Ie+((A[Ie>>2]|0)>>>5<<2)+4|0;c[Ie>>2]=+c[Ie>>2]*1.0e-20;ge=ge+1|0}while((ge|0)!=(se|0))}g[ee>>3]=Ae*1.0e-20}Ce=A[A[i>>2]>>2]|0;Ie=Ce>>1;n[(A[C>>2]|0)+Ie>>0]=(Ce&1^1)&255^1;fe=A[d>>2]|0;Ie=(A[E>>2]|0)+(Ie<<3)|0;A[Ie>>2]=ie;A[Ie+4>>2]=fe;Ie=A[p>>2]|0;A[p>>2]=Ie+1;A[(A[B>>2]|0)+(Ie<<2)>>2]=Ce}g[J>>3]=1.0/+g[m>>3]*+g[J>>3];g[ee>>3]=1.0/+g[V>>3]*+g[ee>>3];Ie=(A[re>>2]|0)+-1|0;A[re>>2]=Ie;if(Ie)continue;Ae=+g[O>>3]*+g[Y>>3];g[Y>>3]=Ae;A[re>>2]=~~Ae;Ae=+g[j>>3]*+g[R>>3];g[R>>3]=Ae;if((A[G>>2]|0)<=0)continue;oe=A[S>>2]|0;ie=A[H>>2]|0;pe=A[d>>2]|0;if(!pe)se=p;else se=A[f>>2]|0;se=A[se>>2]|0;he=A[_>>2]|0;ue=A[z>>2]|0;le=A[W>>2]|0;ge=I;ae=A[ge>>2]|0;ge=A[ge+4>>2]|0;ce=+(A[X>>2]|0);de=1.0/ce;if((pe|0)<0)Ee=0.0;else{fe=0;Ee=0.0;while(1){if(!fe)Ce=0;else Ce=A[(A[f>>2]|0)+(fe+-1<<2)>>2]|0;if((fe|0)==(pe|0))Ie=p;else Ie=(A[f>>2]|0)+(fe<<2)|0;Ee=Ee+ +q(+de,+ +(fe|0))*+((A[Ie>>2]|0)-Ce|0);if((fe|0)==(pe|0))break;else fe=fe+1|0}}A[Z>>2]=oe;A[Z+4>>2]=ie-se;A[Z+8>>2]=he;A[Z+12>>2]=ue;A[Z+16>>2]=~~Ae;A[Z+20>>2]=le;Ie=Z+24|0;g[h>>3]=(+(ae>>>0)+4294967296.0*+(ge>>>0))/+(le|0);A[Ie>>2]=A[h>>2];A[Ie+4>>2]=A[h+4>>2];Ie=Z+32|0;g[h>>3]=Ee/ce*100.0;A[Ie>>2]=A[h>>2];A[Ie+4>>2]=A[h+4>>2];Oe(1832,Z|0)|0}if((oe|0)==5)n[e>>0]=n[536]|0;else if((oe|0)==14)ze(Qe(1)|0,48,0);else if((oe|0)==41){Ae=+(A[X>>2]|0);ce=1.0/Ae;C=A[d>>2]|0;if((C|0)<0)de=0.0;else{d=0;de=0.0;while(1){if(!d)I=0;else I=A[(A[f>>2]|0)+(d+-1<<2)>>2]|0;if((d|0)==(C|0))E=p;else E=(A[f>>2]|0)+(d<<2)|0;de=de+ +q(+ce,+ +(d|0))*+((A[E>>2]|0)-I|0);if((d|0)==(C|0))break;else d=d+1|0}}g[t+528>>3]=de/Ae;Pt(t,0);n[e>>0]=n[544]|0}else if((oe|0)==50)n[e>>0]=n[536]|0;else if((oe|0)==57){A[$>>2]=ge^1;Ie=t+16|0;A[Z+0>>2]=A[$+0>>2];Yt(t,Z,Ie);n[e>>0]=n[536]|0}else if((oe|0)==60)n[e>>0]=n[528]|0;e=A[i>>2]|0;if(!e){l=u;return}A[a>>2]=0;On(e);A[i>>2]=0;A[s>>2]=0;l=u;return}function qt(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0.0,y=0,w=0,Q=0,v=0.0,b=0,D=0;i=l;l=l+16|0;s=i;r=t+4|0;if(A[r>>2]|0)A[t+8>>2]=0;o=t+36|0;a=t+32|0;if((A[o>>2]|0)>0){c=t+16|0;u=0;do{n[(A[c>>2]|0)+(A[(A[a>>2]|0)+(u<<2)>>2]|0)>>0]=0;u=u+1|0}while((u|0)<(A[o>>2]|0))}if(A[a>>2]|0)A[o>>2]=0;a=t+492|0;if(!(n[a>>0]|0)){n[e>>0]=n[536]|0;l=i;return}c=t+152|0;Q=c;Q=ai(A[Q>>2]|0,A[Q+4>>2]|0,1,0)|0;A[c>>2]=Q;A[c+4>>2]=K;v=+g[t+120>>3]*+(A[t+208>>2]|0);c=t+640|0;g[c>>3]=v;B=+(A[t+104>>2]|0);if(v>3]=B;y=A[t+136>>2]|0;g[t+648>>3]=+(y|0);A[t+656>>2]=y;y=n[544]|0;c=t+44|0;if((A[c>>2]|0)>0){Te(2288)|0;Te(2368)|0;Te(2448)|0;Te(2528)|0;p=n[544]|0}else p=y;h=t+192|0;u=t+184|0;Q=p&255;e:do{if((Q>>>1^1)&y<<24>>24==p<<24>>24|y&2&Q){d=t+80|0;E=t+112|0;f=t+108|0;p=t+680|0;C=t+664|0;I=t+672|0;m=0;while(1){B=+g[E>>3];if(!(n[d>>0]|0))B=+q(+B,+ +(m|0));else{Q=m+1|0;if((m|0)>0){w=0;y=1;do{w=w+1|0;y=y<<1|1}while((y|0)<(Q|0));Q=y+-1|0}else{w=0;Q=0}if((Q|0)!=(m|0)){y=m;do{b=Q>>1;w=w+-1|0;y=(y|0)%(b|0)|0;Q=b+-1|0}while((Q|0)!=(y|0))}B=+q(+B,+ +(w|0))}_t(s,t,~~(B*+(A[f>>2]|0)));y=n[s>>0]|0;if(n[p>>0]|0)break e;Q=C;w=A[Q+4>>2]|0;if((w|0)>=0?(b=h,D=A[b+4>>2]|0,!(D>>>0>>0|((D|0)==(w|0)?(A[b>>2]|0)>>>0<(A[Q>>2]|0)>>>0:0))):0)break e;Q=I;w=A[Q+4>>2]|0;if((w|0)>=0?(D=u,b=A[D+4>>2]|0,!(b>>>0>>0|((b|0)==(w|0)?(A[D>>2]|0)>>>0<(A[Q>>2]|0)>>>0:0))):0)break e;b=n[544]|0;D=b&255;if(!((D>>>1^1)&y<<24>>24==b<<24>>24|y&2&D))break;else m=m+1|0}}}while(0);if((A[c>>2]|0)>0)Te(2528)|0;b=n[528]|0;D=b&255;s=y&2;if(!((D>>>1^1)&y<<24>>24==b<<24>>24|s&D)){b=n[536]|0;D=b&255;if(((D>>>1^1)&y<<24>>24==b<<24>>24|s&D|0)!=0?(A[o>>2]|0)==0:0)n[a>>0]=0}else{o=t+540|0;nr(r,A[o>>2]|0);if((A[o>>2]|0)>0){s=t+332|0;a=0;do{n[(A[r>>2]|0)+a>>0]=n[(A[s>>2]|0)+a>>0]|0;a=a+1|0}while((a|0)<(A[o>>2]|0))}}Pt(t,0);n[e>>0]=y;l=i;return}function zt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0;r=l;s=e+412|0;fr(s);c=e+540|0;if((A[c>>2]|0)>0){a=e+544|0;i=0;do{g=i<<1;h=A[s>>2]|0;u=h+(g*12|0)+4|0;if((A[u>>2]|0)>0){f=h+(g*12|0)|0;p=0;do{I=(A[f>>2]|0)+(p<<3)|0;h=A[I>>2]|0;d=A[a>>2]|0;C=d+(h<<2)|0;if(!(A[C>>2]&16)){E=dr(t,C)|0;A[I>>2]=E;A[C>>2]=A[C>>2]|16;A[d+(h+1<<2)>>2]=E}else A[I>>2]=A[d+(h+1<<2)>>2];p=p+1|0}while((p|0)<(A[u>>2]|0));u=A[s>>2]|0}else u=h;h=g|1;g=u+(h*12|0)+4|0;if((A[g>>2]|0)>0){C=u+(h*12|0)|0;d=0;do{u=(A[C>>2]|0)+(d<<3)|0;f=A[u>>2]|0;p=A[a>>2]|0;h=p+(f<<2)|0;if(!(A[h>>2]&16)){E=dr(t,h)|0;A[u>>2]=E;A[h>>2]=A[h>>2]|16;A[p+(f+1<<2)>>2]=E}else A[u>>2]=A[p+(f+1<<2)>>2];d=d+1|0}while((d|0)<(A[g>>2]|0))}i=i+1|0}while((i|0)<(A[c>>2]|0))}i=e+284|0;if((A[i>>2]|0)>0){g=e+280|0;c=e+396|0;a=e+544|0;s=e+332|0;u=0;do{C=A[c>>2]|0;f=C+(A[(A[g>>2]|0)+(u<<2)>>2]>>1<<3)|0;d=A[f>>2]|0;do{if((d|0)!=-1){E=A[a>>2]|0;I=E+(d<<2)|0;p=(A[I>>2]&16|0)==0;if(p){m=A[E+(d+1<<2)>>2]|0;h=m>>1;m=(o[(A[s>>2]|0)+h>>0]|0)^m&1;y=n[528]|0;B=y&255;if(!((m&255)<<24>>24==y<<24>>24&(B>>>1^1)|B&2&m))break;y=A[C+(h<<3)>>2]|0;if(!((y|0)!=-1&(y|0)==(d|0)))break;if(p){y=dr(t,I)|0;A[f>>2]=y;A[I>>2]=A[I>>2]|16;A[E+(d+1<<2)>>2]=y;break}}A[f>>2]=A[E+(d+1<<2)>>2]}}while(0);u=u+1|0}while((u|0)<(A[i>>2]|0))}i=e+272|0;h=A[i>>2]|0;if((h|0)>0){a=e+268|0;s=e+544|0;u=A[a>>2]|0;c=0;g=0;do{f=u+(c<<2)|0;p=A[f>>2]|0;C=A[s>>2]|0;d=C+(p<<2)|0;I=A[d>>2]|0;if((I&3|0)!=1){if(!(I&16)){h=dr(t,d)|0;A[f>>2]=h;A[d>>2]=A[d>>2]|16;A[C+(p+1<<2)>>2]=h;h=A[a>>2]|0;u=h;h=A[h+(c<<2)>>2]|0}else{h=A[C+(p+1<<2)>>2]|0;A[f>>2]=h}A[u+(g<<2)>>2]=h;h=A[i>>2]|0;g=g+1|0}c=c+1|0}while((c|0)<(h|0))}else{c=0;g=0}s=c-g|0;if((s|0)>0)A[i>>2]=h-s;i=e+260|0;u=A[i>>2]|0;if((u|0)>0){s=e+256|0;e=e+544|0;g=A[s>>2]|0;a=0;c=0;do{h=g+(a<<2)|0;f=A[h>>2]|0;p=A[e>>2]|0;C=p+(f<<2)|0;d=A[C>>2]|0;if((d&3|0)!=1){if(!(d&16)){u=dr(t,C)|0;A[h>>2]=u;A[C>>2]=A[C>>2]|16;A[p+(f+1<<2)>>2]=u;u=A[s>>2]|0;g=u;u=A[u+(a<<2)>>2]|0}else{u=A[p+(f+1<<2)>>2]|0;A[h>>2]=u}A[g+(c<<2)>>2]=u;u=A[i>>2]|0;c=c+1|0}a=a+1|0}while((a|0)<(u|0))}else{a=0;c=0}t=a-c|0;if((t|0)<=0){l=r;return}A[i>>2]=u-t;l=r;return}function Wt(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0;o=l;l=l+32|0;a=o;t=o+8|0;r=e+548|0;i=e+556|0;s=(A[r>>2]|0)-(A[i>>2]|0)|0;A[t+0>>2]=0;A[t+4>>2]=0;A[t+8>>2]=0;A[t+12>>2]=0;er(t,s);s=t+16|0;n[s>>0]=0;zt(e,t);if((A[e+44>>2]|0)>1){c=A[t+4>>2]<<2;A[a>>2]=A[r>>2]<<2;A[a+4>>2]=c;Oe(1888,a|0)|0}n[e+560>>0]=n[s>>0]|0;s=e+544|0;a=A[s>>2]|0;if(a)On(a);A[s>>2]=A[t>>2];A[r>>2]=A[t+4>>2];A[e+552>>2]=A[t+8>>2];A[i>>2]=A[t+12>>2];l=o;return}function Vt(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[528]=0;n[536]=1;n[544]=2;Ct(552,608,624,2136,2144);A[138]=2168;g[72]=0.0;g[73]=1.0;n[592]=0;n[593]=0;i[297]=i[t+0>>1]|0;i[298]=i[t+2>>1]|0;i[299]=i[t+4>>1]|0;g[75]=.95;Ct(664,720,736,2136,2144);A[166]=2168;g[86]=0.0;g[87]=1.0;n[704]=0;n[705]=0;i[353]=i[t+0>>1]|0;i[354]=i[t+2>>1]|0;i[355]=i[t+4>>1]|0;g[89]=.999;Ct(776,832,848,2136,2144);A[194]=2168;g[100]=0.0;g[101]=1.0;n[816]=1;n[817]=1;i[409]=i[t+0>>1]|0;i[410]=i[t+2>>1]|0;i[411]=i[t+4>>1]|0;g[103]=0.0;Ct(936,992,1008,2136,2144);A[234]=2168;g[120]=0.0;g[121]=Q;n[976]=0;n[977]=0;i[489]=i[t+0>>1]|0;i[490]=i[t+2>>1]|0;i[491]=i[t+4>>1]|0;g[123]=91648253.0;Ct(1048,1080,1096,2136,2016);A[262]=280;r=1068|0;A[r>>2]=0;A[r+4>>2]=2;A[269]=2;Ct(1160,1192,1208,2136,2016);A[290]=280;r=1180|0;A[r>>2]=0;A[r+4>>2]=2;A[297]=2;Ct(1272,1296,1312,2136,1992);A[318]=160;n[1292]=0;Ct(1344,1368,1376,2136,1992);A[336]=160;n[1364]=1;Ct(1408,1440,1448,2136,2016);A[352]=280;r=1428|0;A[r>>2]=1;A[r+4>>2]=2147483647;A[359]=100;Ct(1480,1536,1544,2136,2144);A[370]=2168;g[188]=1.0;g[189]=Q;n[1520]=0;n[1521]=0;i[761]=i[t+0>>1]|0;i[762]=i[t+2>>1]|0;i[763]=i[t+4>>1]|0;g[191]=2.0;Ct(1584,1640,1648,2136,2144);A[396]=2168;g[201]=0.0;g[202]=Q;n[1624]=0;n[1625]=0;i[813]=i[t+0>>1]|0;i[814]=i[t+2>>1]|0;i[815]=i[t+4>>1]|0;g[204]=.2;Ct(1728,1760,1776,2136,2016);A[432]=280;t=1748|0;A[t>>2]=0;A[t+4>>2]=2147483647;A[439]=0;l=e;return}function Xt(e){e=e|0;var t=0;t=l;gn(e);l=t;return}function Zt(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,u=0,h=0,p=0,f=0.0,d=0.0;r=l;l=l+16|0;s=r;o=r+8|0;if((n[t>>0]|0)!=45){p=0;l=r;return p|0}u=t+1|0;i=e+4|0;a=A[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){h=0;while(1){p=h;h=h+1|0;if((n[u>>0]|0)!=c<<24>>24){e=0;break}c=n[a+h>>0]|0;u=t+(p+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[u>>0]|0)!=61){p=0;l=r;return p|0}a=u+1|0;f=+Xn(a,o);if(!(A[o>>2]|0)){p=0;l=r;return p|0}d=+g[e+32>>3];if(f>=d?(n[e+41>>0]|0)==0|f!=d:0){p=A[I>>2]|0;h=A[i>>2]|0;A[s>>2]=a;A[s+4>>2]=h;et(p|0,2024,s|0)|0;nt(1)}d=+g[e+24>>3];if(f<=d?(n[e+40>>0]|0)==0|f!=d:0){p=A[I>>2]|0;h=A[i>>2]|0;A[s>>2]=a;A[s+4>>2]=h;et(p|0,2080,s|0)|0;nt(1)}g[e+48>>3]=f;p=1;l=r;return p|0}function $t(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0.0,c=0,u=0.0,p=0.0,f=0;r=l;l=l+48|0;i=r;o=A[I>>2]|0;f=A[e+16>>2]|0;c=(n[e+40>>0]|0)!=0?91:40;p=+g[e+24>>3];u=+g[e+32>>3];s=(n[e+41>>0]|0)!=0?93:41;a=+g[e+48>>3];A[i>>2]=A[e+4>>2];A[i+4>>2]=f;A[i+8>>2]=c;c=i+12|0;g[h>>3]=p;A[c>>2]=A[h>>2];A[c+4>>2]=A[h+4>>2];c=i+20|0;g[h>>3]=u;A[c>>2]=A[h>>2];A[c+4>>2]=A[h+4>>2];A[i+28>>2]=s;s=i+32|0;g[h>>3]=a;A[s>>2]=A[h>>2];A[s+4>>2]=A[h+4>>2];et(o|0,2232,i|0)|0;if(!t){l=r;return}A[i>>2]=A[e+8>>2];et(o|0,2e3,i|0)|0;qe(10,o|0)|0;l=r;return}function er(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0;r=l;n=e+8|0;i=A[n>>2]|0;if(i>>>0>>0)s=i;else{l=r;return}while(1){if(s>>>0>=t>>>0)break;s=((s>>>3)+2+(s>>>1)&-2)+s|0;A[n>>2]=s;if(s>>>0<=i>>>0){o=4;break}}if((o|0)==4)ze(Qe(1)|0,48,0);n=Yn(A[e>>2]|0,s<<2)|0;if((n|0)==0?(A[(Ge()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);A[e>>2]=n;l=r;return}function tr(e){e=e|0;var t=0,r=0,n=0,i=0,o=0,s=0,a=0;t=l;n=e+32|0;r=A[n>>2]|0;if(r){A[e+36>>2]=0;On(r);A[n>>2]=0;A[e+40>>2]=0}n=e+16|0;r=A[n>>2]|0;if(r){A[e+20>>2]=0;On(r);A[n>>2]=0;A[e+24>>2]=0}n=A[e>>2]|0;if(!n){l=t;return}r=e+4|0;o=A[r>>2]|0;if((o|0)>0){i=0;do{a=n+(i*12|0)|0;s=A[a>>2]|0;if(s){A[n+(i*12|0)+4>>2]=0;On(s);A[a>>2]=0;A[n+(i*12|0)+8>>2]=0;n=A[e>>2]|0;o=A[r>>2]|0}i=i+1|0}while((i|0)<(o|0))}A[r>>2]=0;On(n);A[e>>2]=0;A[e+8>>2]=0;l=t;return}function rr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0;i=l;l=l+16|0;n=i+4|0;r=i;g=A[t>>2]|0;s=g+1|0;o=e+4|0;if((A[o>>2]|0)<(s|0)){c=e+8|0;a=A[c>>2]|0;if((a|0)<(s|0)){u=g+2-a&-2;g=(a>>1)+2&-2;g=(u|0)>(g|0)?u:g;if((g|0)>(2147483647-a|0)){u=Qe(1)|0;ze(u|0,48,0)}h=A[e>>2]|0;u=g+a|0;A[c>>2]=u;u=Yn(h,u*12|0)|0;A[e>>2]=u;if((u|0)==0?(A[(Ge()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}c=A[o>>2]|0;if((c|0)<(s|0)){a=A[e>>2]|0;do{g=a+(c*12|0)|0;if(g){A[g>>2]=0;A[a+(c*12|0)+4>>2]=0;A[a+(c*12|0)+8>>2]=0}c=c+1|0}while((c|0)!=(s|0))}A[o>>2]=s;g=A[t>>2]|0}o=A[e>>2]|0;if(!(A[o+(g*12|0)>>2]|0)){u=g;h=e+16|0;A[r>>2]=u;A[n+0>>2]=A[r+0>>2];ur(h,n,0);l=i;return}A[o+(g*12|0)+4>>2]=0;u=A[t>>2]|0;h=e+16|0;A[r>>2]=u;A[n+0>>2]=A[r+0>>2];ur(h,n,0);l=i;return}function nr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0;i=l;r=e+4|0;if((A[r>>2]|0)>=(t|0)){l=i;return}s=e+8|0;o=A[s>>2]|0;if((o|0)<(t|0)){c=t+1-o&-2;a=(o>>1)+2&-2;a=(c|0)>(a|0)?c:a;if((a|0)>(2147483647-o|0)){c=Qe(1)|0;ze(c|0,48,0)}g=A[e>>2]|0;c=a+o|0;A[s>>2]=c;c=Yn(g,c)|0;A[e>>2]=c;if((c|0)==0?(A[(Ge()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}o=A[r>>2]|0;if((o|0)<(t|0)){e=A[e>>2]|0;do{s=e+o|0;if(s)n[s>>0]=0;o=o+1|0}while((o|0)!=(t|0))}A[r>>2]=t;l=i;return}function ir(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0;s=l;o=t+1|0;i=e+4|0;if((A[i>>2]|0)>=(o|0)){g=A[e>>2]|0;g=g+t|0;n[g>>0]=r;l=s;return}c=e+8|0;a=A[c>>2]|0;if((a|0)<(o|0)){u=t+2-a&-2;g=(a>>1)+2&-2;g=(u|0)>(g|0)?u:g;if((g|0)>(2147483647-a|0)){u=Qe(1)|0;ze(u|0,48,0)}h=A[e>>2]|0;u=g+a|0;A[c>>2]=u;u=Yn(h,u)|0;A[e>>2]=u;if((u|0)==0?(A[(Ge()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=A[i>>2]|0;if((a|0)<(o|0))do{c=(A[e>>2]|0)+a|0;if(c)n[c>>0]=0;a=a+1|0}while((a|0)!=(o|0));A[i>>2]=o;h=A[e>>2]|0;h=h+t|0;n[h>>0]=r;l=s;return}function Ar(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,u=0,h=0,p=0;r=l;l=l+16|0;o=r;A[o>>2]=t;s=e+12|0;i=t+1|0;n=e+16|0;if((A[n>>2]|0)<(i|0)){c=e+20|0;a=A[c>>2]|0;if((a|0)<(i|0)){h=t+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}p=A[s>>2]|0;h=u+a|0;A[c>>2]=h;h=Yn(p,h<<2)|0;A[s>>2]=h;if((h|0)==0?(A[(Ge()|0)>>2]|0)==12:0){p=Qe(1)|0;ze(p|0,48,0)}}a=A[n>>2]|0;if((i|0)>(a|0))Ai((A[s>>2]|0)+(a<<2)|0,-1,i-a<<2|0)|0;A[n>>2]=i}A[(A[s>>2]|0)+(t<<2)>>2]=A[e+4>>2];sr(e,o);n=A[s>>2]|0;o=A[n+(t<<2)>>2]|0;t=A[e>>2]|0;i=A[t+(o<<2)>>2]|0;if(!o){h=0;p=t+(h<<2)|0;A[p>>2]=i;p=n+(i<<2)|0;A[p>>2]=h;l=r;return}e=e+28|0;while(1){s=o;o=o+-1>>1;a=t+(o<<2)|0;c=A[a>>2]|0;p=A[A[e>>2]>>2]|0;if(!(+g[p+(i<<3)>>3]>+g[p+(c<<3)>>3])){e=14;break}A[t+(s<<2)>>2]=c;A[n+(A[a>>2]<<2)>>2]=s;if(!o){s=0;e=14;break}}if((e|0)==14){p=t+(s<<2)|0;A[p>>2]=i;p=n+(i<<2)|0;A[p>>2]=s;l=r;return}}function or(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0;r=l;n=e+4|0;i=A[n>>2]|0;o=e+8|0;s=A[o>>2]|0;if((i|0)==(s|0)&(s|0)<(i+1|0)){s=(i>>1)+2&-2;s=(s|0)<2?2:s;if((s|0)>(2147483647-i|0)){s=Qe(1)|0;ze(s|0,48,0)}a=A[e>>2]|0;i=s+i|0;A[o>>2]=i;i=Yn(a,i<<2)|0;A[e>>2]=i;if((i|0)==0?(A[(Ge()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=A[e>>2]|0;a=A[n>>2]|0;A[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}A[n>>2]=A[t>>2];l=r;return}function sr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0;r=l;n=e+4|0;i=A[n>>2]|0;o=e+8|0;s=A[o>>2]|0;if((i|0)==(s|0)&(s|0)<(i+1|0)){s=(i>>1)+2&-2;s=(s|0)<2?2:s;if((s|0)>(2147483647-i|0)){s=Qe(1)|0;ze(s|0,48,0)}a=A[e>>2]|0;i=s+i|0;A[o>>2]=i;i=Yn(a,i<<2)|0;A[e>>2]=i;if((i|0)==0?(A[(Ge()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=A[e>>2]|0;a=A[n>>2]|0;A[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}A[n>>2]=A[t>>2];l=r;return}function ar(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0;r=l;l=l+16|0;i=r+2|0;s=r+1|0;o=r;if((t|0)<16){o=t+-1|0;if((o|0)>0)s=0;else{l=r;return}do{i=s;s=s+1|0;if((s|0)<(t|0)){c=i;a=s;do{c=(A[e+(a<<2)>>2]|0)<(A[e+(c<<2)>>2]|0)?a:c;a=a+1|0}while((a|0)!=(t|0))}else c=i;h=e+(i<<2)|0;p=A[h>>2]|0;f=e+(c<<2)|0;A[h>>2]=A[f>>2];A[f>>2]=p}while((s|0)!=(o|0));l=r;return}a=A[e+(((t|0)/2|0)<<2)>>2]|0;u=-1;h=t;while(1){do{u=u+1|0;g=e+(u<<2)|0;c=A[g>>2]|0}while((c|0)<(a|0));do{h=h+-1|0;p=e+(h<<2)|0;f=A[p>>2]|0}while((a|0)<(f|0));if((u|0)>=(h|0))break;A[g>>2]=f;A[p>>2]=c}n[i+0>>0]=n[s+0>>0]|0;ar(e,u,i);f=t-u|0;n[i+0>>0]=n[o+0>>0]|0;ar(g,f,i);l=r;return}function cr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,a=0,g=0,u=0;n=l;a=r&1;s=o[e+16>>0]|0|a;i=t+4|0;g=((s+(A[i>>2]|0)<<2)+4|0)>>>2;u=e+4|0;er(e,g+(A[u>>2]|0)|0);r=A[u>>2]|0;g=g+r|0;A[u>>2]=g;if(g>>>0>>0)ze(Qe(1)|0,48,0);e=(A[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}s=s<<3|a<<2;A[e>>2]=A[e>>2]&-32|s;s=A[i>>2]<<5|s;A[e>>2]=s;if((A[i>>2]|0)>0){s=A[t>>2]|0;t=0;do{A[e+(t<<2)+4>>2]=A[s+(t<<2)>>2];t=t+1|0}while((t|0)<(A[i>>2]|0));s=A[e>>2]|0}if(!(s&8)){l=n;return r|0}i=s>>>5;if(s&4){c[e+(i<<2)+4>>2]=0.0;l=n;return r|0}if(!i){i=0;s=0}else{s=0;t=0;do{s=1<<((A[e+(t<<2)+4>>2]|0)>>>1&31)|s;t=t+1|0}while((t|0)<(i|0))}A[e+(i<<2)+4>>2]=s;l=n;return r|0}function gr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0;r=l;n=e+4|0;i=A[n>>2]|0;o=e+8|0;s=A[o>>2]|0;if((i|0)==(s|0)&(s|0)<(i+1|0)){s=(i>>1)+2&-2;s=(s|0)<2?2:s;if((s|0)>(2147483647-i|0)){s=Qe(1)|0;ze(s|0,48,0)}a=A[e>>2]|0;i=s+i|0;A[o>>2]=i;i=Yn(a,i<<3)|0;A[e>>2]=i;if((i|0)==0?(A[(Ge()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=A[e>>2]|0;a=A[n>>2]|0;A[n>>2]=a+1;n=i+(a<<3)|0;if(!n){l=r;return}o=t;s=A[o+4>>2]|0;a=n;A[a>>2]=A[o>>2];A[a+4>>2]=s;l=r;return}function lr(e){e=e|0;var t=0,r=0,n=0,i=0,o=0,s=0,a=0,c=0,u=0,h=0,p=0,f=0,d=0.0,C=0.0,I=0;t=l;r=A[e>>2]|0;i=A[r>>2]|0;a=e+4|0;p=A[r+((A[a>>2]|0)+-1<<2)>>2]|0;A[r>>2]=p;n=A[e+12>>2]|0;A[n+(p<<2)>>2]=0;A[n+(i<<2)>>2]=-1;p=(A[a>>2]|0)+-1|0;A[a>>2]=p;if((p|0)<=1){l=t;return i|0}o=A[r>>2]|0;c=e+28|0;e=0;u=1;while(1){h=(e<<1)+2|0;if((h|0)<(p|0)){f=A[r+(h<<2)>>2]|0;I=A[r+(u<<2)>>2]|0;p=A[A[c>>2]>>2]|0;d=+g[p+(f<<3)>>3];C=+g[p+(I<<3)>>3];if(!(d>C)){f=I;d=C;s=6}}else{p=A[A[c>>2]>>2]|0;s=A[r+(u<<2)>>2]|0;f=s;d=+g[p+(s<<3)>>3];s=6}if((s|0)==6){s=0;h=u}if(!(d>+g[p+(o<<3)>>3]))break;A[r+(e<<2)>>2]=f;A[n+(f<<2)>>2]=e;u=h<<1|1;p=A[a>>2]|0;if((u|0)>=(p|0)){e=h;break}else e=h}A[r+(e<<2)>>2]=o;A[n+(o<<2)>>2]=e;l=t;return i|0}function ur(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0,c=0,g=0,u=0;i=l;c=A[t>>2]|0;t=c+1|0;o=e+4|0;if((A[o>>2]|0)>=(t|0)){l=i;return}a=e+8|0;s=A[a>>2]|0;if((s|0)<(t|0)){g=c+2-s&-2;c=(s>>1)+2&-2;c=(g|0)>(c|0)?g:c;if((c|0)>(2147483647-s|0)){g=Qe(1)|0;ze(g|0,48,0)}u=A[e>>2]|0;g=c+s|0;A[a>>2]=g;g=Yn(u,g)|0;A[e>>2]=g;if((g|0)==0?(A[(Ge()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}s=A[o>>2]|0;if((s|0)<(t|0))do{n[(A[e>>2]|0)+s>>0]=r;s=s+1|0}while((s|0)!=(t|0));A[o>>2]=t;l=i;return}function hr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,o=0,s=0,a=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0;n=l;l=l+16|0;o=n+8|0;i=n+4|0;s=n;if((t|0)<16){i=t+-1|0;if((i|0)<=0){l=n;return}o=A[r>>2]|0;r=0;do{s=r;r=r+1|0;if((r|0)<(t|0)){a=A[o>>2]|0;u=s;g=r;do{h=a+(A[e+(g<<2)>>2]<<2)|0;m=A[h>>2]|0;d=m>>>5;if(m>>>0>95){p=a+(A[e+(u<<2)>>2]<<2)|0;f=(A[p>>2]|0)>>>5;if((f|0)==2)u=g;else u=+c[h+(d<<2)+4>>2]<+c[p+(f<<2)+4>>2]?g:u}g=g+1|0}while((g|0)!=(t|0))}else u=s;I=e+(s<<2)|0;E=A[I>>2]|0;m=e+(u<<2)|0;A[I>>2]=A[m>>2];A[m>>2]=E}while((r|0)!=(i|0));l=n;return}a=A[e+(((t|0)/2|0)<<2)>>2]|0;d=-1;p=t;while(1){E=d+1|0;f=e+(E<<2)|0;m=A[f>>2]|0;g=A[r>>2]|0;u=A[g>>2]|0;I=u+(m<<2)|0;C=A[I>>2]|0;d=u+(a<<2)|0;h=A[d>>2]|0;e:do{if(C>>>0>95)while(1){B=h>>>5;if((B|0)!=2?!(+c[I+(C>>>5<<2)+4>>2]<+c[d+(B<<2)+4>>2]):0){d=E;break e}E=E+1|0;f=e+(E<<2)|0;m=A[f>>2]|0;I=u+(m<<2)|0;C=A[I>>2]|0;if(C>>>0<=95){d=E;break}}else d=E}while(0);p=p+-1|0;I=e+(p<<2)|0;C=u+(a<<2)|0;e:do{if(h>>>0>95)while(1){E=u+(A[I>>2]<<2)|0;B=(A[E>>2]|0)>>>5;if((B|0)!=2?!(+c[C+(h>>>5<<2)+4>>2]<+c[E+(B<<2)+4>>2]):0)break e;B=p+-1|0;I=e+(B<<2)|0;p=B}}while(0);if((d|0)>=(p|0))break;A[f>>2]=A[I>>2];A[I>>2]=m}A[i>>2]=g;A[o+0>>2]=A[i+0>>2];hr(e,d,o);B=t-d|0;A[s>>2]=g;A[o+0>>2]=A[s+0>>2];hr(f,B,o);l=n;return}function pr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,u=0,h=0,p=0,f=0,d=0.0,C=0.0,I=0;n=l;i=e+4|0;s=A[i>>2]|0;o=A[e>>2]|0;if((s|0)>0){c=A[e+12>>2]|0;a=0;do{A[c+(A[o+(a<<2)>>2]<<2)>>2]=-1;a=a+1|0;s=A[i>>2]|0}while((a|0)<(s|0))}if(o){A[i>>2]=0;s=0}o=t+4|0;if((A[o>>2]|0)>0){a=e+12|0;s=0;do{I=(A[t>>2]|0)+(s<<2)|0;A[(A[a>>2]|0)+(A[I>>2]<<2)>>2]=s;sr(e,I);s=s+1|0}while((s|0)<(A[o>>2]|0));s=A[i>>2]|0}if((s|0)<=1){l=n;return}o=A[e>>2]|0;t=e+28|0;e=e+12|0;p=s;a=(s|0)/2|0;while(1){a=a+-1|0;s=A[o+(a<<2)>>2]|0;u=a<<1|1;e:do{if((u|0)<(p|0)){c=a;while(1){h=(c<<1)+2|0;if((h|0)<(p|0)){f=A[o+(h<<2)>>2]|0;I=A[o+(u<<2)>>2]|0;p=A[A[t>>2]>>2]|0;d=+g[p+(f<<3)>>3];C=+g[p+(I<<3)>>3];if(!(d>C)){f=I;d=C;r=16}}else{p=A[A[t>>2]>>2]|0;r=A[o+(u<<2)>>2]|0;f=r;d=+g[p+(r<<3)>>3];r=16}if((r|0)==16){r=0;h=u}if(!(d>+g[p+(s<<3)>>3]))break e;A[o+(c<<2)>>2]=f;A[(A[e>>2]|0)+(f<<2)>>2]=c;u=h<<1|1;p=A[i>>2]|0;if((u|0)>=(p|0)){c=h;break}else c=h}}else c=a}while(0);A[o+(c<<2)>>2]=s;A[(A[e>>2]|0)+(s<<2)>>2]=c;if((a|0)<=0)break;p=A[i>>2]|0}l=n;return}function fr(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0;r=l;t=e+36|0;g=A[t>>2]|0;i=e+32|0;h=A[i>>2]|0;if((g|0)>0){s=e+16|0;o=e+44|0;a=0;do{c=h+(a<<2)|0;u=A[c>>2]|0;if(n[(A[s>>2]|0)+u>>0]|0){h=A[e>>2]|0;g=h+(u*12|0)+4|0;f=A[g>>2]|0;if((f|0)>0){u=h+(u*12|0)|0;h=0;p=0;do{d=A[u>>2]|0;C=d+(h<<3)|0;if((A[(A[A[o>>2]>>2]|0)+(A[C>>2]<<2)>>2]&3|0)!=1){I=C;C=A[I+4>>2]|0;f=d+(p<<3)|0;A[f>>2]=A[I>>2];A[f+4>>2]=C;f=A[g>>2]|0;p=p+1|0}h=h+1|0}while((h|0)<(f|0))}else{h=0;p=0}u=h-p|0;if((u|0)>0)A[g>>2]=f-u;n[(A[s>>2]|0)+(A[c>>2]|0)>>0]=0;g=A[t>>2]|0;h=A[i>>2]|0}a=a+1|0}while((a|0)<(g|0))}if(!h){l=r;return}A[t>>2]=0;l=r;return}function dr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,a=0;n=l;s=A[t>>2]|0;i=s>>>2&1|(o[e+16>>0]|0);s=((i+(s>>>5)<<2)+4|0)>>>2;a=e+4|0;er(e,s+(A[a>>2]|0)|0);r=A[a>>2]|0;s=s+r|0;A[a>>2]=s;if(s>>>0>>0)ze(Qe(1)|0,48,0);e=(A[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}i=A[t>>2]&-9|i<<3;A[e>>2]=i;if((A[t>>2]|0)>>>0>31){i=0;do{A[e+(i<<2)+4>>2]=A[t+(i<<2)+4>>2];i=i+1|0}while((i|0)<((A[t>>2]|0)>>>5|0));i=A[e>>2]|0}if(!(i&8)){l=n;return r|0}s=i>>>5;t=t+(s<<2)+4|0;if(!(i&4)){A[e+(s<<2)+4>>2]=A[t>>2];l=n;return r|0}else{c[e+(s<<2)+4>>2]=+c[t>>2];l=n;return r|0}return 0}function Cr(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0;t=l;l=l+16|0;o=t;bt(e);A[e>>2]=3424;A[e+684>>2]=A[719];A[e+688>>2]=A[747];A[e+692>>2]=A[785];g[e+696>>3]=+g[411];n[e+704>>0]=n[2652]|0;n[e+705>>0]=n[2724]|0;n[e+706>>0]=n[2804]|0;n[e+707>>0]=1;A[e+708>>2]=0;A[e+712>>2]=0;A[e+716>>2]=0;A[e+720>>2]=1;n[e+724>>0]=1;r=e+732|0;a=e+544|0;A[e+760>>2]=0;A[e+764>>2]=0;A[e+768>>2]=0;A[e+776>>2]=0;A[e+780>>2]=0;A[e+784>>2]=0;A[e+792>>2]=0;A[e+796>>2]=0;A[e+800>>2]=0;s=e+804|0;A[r+0>>2]=0;A[r+4>>2]=0;A[r+8>>2]=0;A[r+12>>2]=0;A[r+16>>2]=0;A[r+20>>2]=0;A[s>>2]=a;s=e+808|0;A[s>>2]=0;A[e+812>>2]=0;A[e+816>>2]=0;r=e+824|0;A[r+0>>2]=0;A[r+4>>2]=0;A[r+8>>2]=0;A[r+12>>2]=0;A[r+16>>2]=0;A[r+20>>2]=0;A[e+852>>2]=s;xr(e+856|0,1);s=e+868|0;r=e+892|0;A[e+920>>2]=0;A[e+924>>2]=0;A[s+0>>2]=0;A[s+4>>2]=0;A[s+8>>2]=0;A[s+12>>2]=0;A[s+16>>2]=0;A[r+0>>2]=0;A[r+4>>2]=0;A[r+8>>2]=0;A[r+12>>2]=0;A[r+16>>2]=0;A[r+20>>2]=0;r=o+4|0;A[r>>2]=0;s=o+8|0;A[s>>2]=2;i=Yn(0,8)|0;A[o>>2]=i;if((i|0)==0?(A[(Ge()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);A[i>>2]=-2;A[r>>2]=1;n[e+560>>0]=1;A[e+928>>2]=cr(a,o,0)|0;n[e+536>>0]=0;if(!i){l=t;return}A[r>>2]=0;On(i);A[o>>2]=0;A[s>>2]=0;l=t;return}function Ir(e){e=e|0;var t=0;t=l;Er(e);gn(e);l=t;return}function Er(e){e=e|0;var t=0,r=0,n=0;t=l;A[e>>2]=3424;r=e+904|0;n=A[r>>2]|0;if(n){A[e+908>>2]=0;On(n);A[r>>2]=0;A[e+912>>2]=0}r=e+892|0;n=A[r>>2]|0;if(n){A[e+896>>2]=0;On(n);A[r>>2]=0;A[e+900>>2]=0}r=e+876|0;n=A[r>>2]|0;if(n){A[e+880>>2]=0;On(n);A[r>>2]=0;A[e+884>>2]=0}r=e+856|0;n=A[r>>2]|0;if(n){A[e+860>>2]=0;On(n);A[r>>2]=0;A[e+864>>2]=0}n=e+836|0;r=A[n>>2]|0;if(r){A[e+840>>2]=0;On(r);A[n>>2]=0;A[e+844>>2]=0}r=e+824|0;n=A[r>>2]|0;if(n){A[e+828>>2]=0;On(n);A[r>>2]=0;A[e+832>>2]=0}r=e+808|0;n=A[r>>2]|0;if(n){A[e+812>>2]=0;On(n);A[r>>2]=0;A[e+816>>2]=0}Pr(e+760|0);r=e+744|0;n=A[r>>2]|0;if(n){A[e+748>>2]=0;On(n);A[r>>2]=0;A[e+752>>2]=0}r=e+732|0;n=A[r>>2]|0;if(!n){St(e);l=t;return}A[e+736>>2]=0;On(n);A[r>>2]=0;A[e+740>>2]=0;St(e);l=t;return}function mr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0,c=0,g=0;i=l;l=l+32|0;s=i+12|0;c=i+8|0;g=i+16|0;o=i+4|0;a=i;n[g>>0]=n[t>>0]|0;n[s+0>>0]=n[g+0>>0]|0;r=kt(e,s,r)|0;A[c>>2]=r;ir(e+876|0,r,0);ir(e+904|0,r,0);if(!(n[e+724>>0]|0)){l=i;return r|0}g=e+808|0;t=r<<1;A[o>>2]=t;A[s+0>>2]=A[o+0>>2];Ur(g,s,0);A[a>>2]=t|1;A[s+0>>2]=A[a+0>>2];Ur(g,s,0);Tr(e+760|0,c);ir(e+744|0,r,0);Or(e+824|0,r);l=i;return r|0}function Br(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0;c=l;l=l+32|0;s=c+4|0;C=c;f=c+16|0;A[s>>2]=0;a=s+4|0;A[a>>2]=0;g=s+8|0;A[g>>2]=0;I=n[2608]|0;n[e>>0]=I;u=t+724|0;r=(o[u>>0]&(r&1)|0)!=0;if(r){m=t+308|0;w=A[m>>2]|0;if((w|0)>0){E=t+304|0;I=t+876|0;B=0;do{y=A[(A[E>>2]|0)+(B<<2)>>2]>>1;A[C>>2]=y;y=(A[I>>2]|0)+y|0;if(!(n[y>>0]|0)){n[y>>0]=1;sr(s,C);w=A[m>>2]|0}B=B+1|0}while((B|0)<(w|0))}C=(yr(t,i)|0)&1^1;n[e>>0]=C;i=n[2608]|0}else{i=I;C=I}w=i&255;if(!((w>>>1^1)&C<<24>>24==i<<24>>24|w&2&(C&255))){if((A[t+44>>2]|0)>0)Te(3760)|0}else{qt(f,t);C=n[f>>0]|0;n[e>>0]=C}y=n[2608]|0;w=y&255;if((((w>>>1^1)&C<<24>>24==y<<24>>24|w&2&(C&255)|0)!=0?(n[t+707>>0]|0)!=0:0)?(d=(A[t+736>>2]|0)+-1|0,(d|0)>0):0){e=t+732|0;f=t+4|0;do{i=A[e>>2]|0;m=A[i+(d<<2)>>2]|0;B=d+-1|0;y=A[i+(B<<2)>>2]|0;d=A[f>>2]|0;e:do{if((m|0)>1){I=n[2616]|0;C=I&255;E=C&2;C=C>>>1^1;w=B;while(1){y=o[d+(y>>1)>>0]^y&1;B=m+-1|0;if(!((y&255)<<24>>24==I<<24>>24&C|E&y))break e;m=w+-1|0;y=A[i+(m<<2)>>2]|0;if((B|0)>1){w=m;m=B}else{w=m;m=B;p=20;break}}}else{w=B;p=20}}while(0);if((p|0)==20){p=0;n[d+(y>>1)>>0]=(y&1^1)&255^1}d=w-m|0}while((d|0)>0)}if(r?(h=A[a>>2]|0,(h|0)>0):0){p=A[s>>2]|0;r=t+876|0;f=0;do{e=A[p+(f<<2)>>2]|0;n[(A[r>>2]|0)+e>>0]=0;if(n[u>>0]|0)Yr(t,e);f=f+1|0}while((f|0)<(h|0))}t=A[s>>2]|0;if(!t){l=c;return}A[a>>2]=0;On(t);A[s>>2]=0;A[g>>2]=0;l=c;return}function yr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,u=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0,F=0,R=0,K=0,L=0;c=l;l=l+16|0;s=c;if(!(Jt(e)|0)){R=0;l=c;return R|0}a=e+724|0;if(!(n[a>>0]|0)){R=1;l=c;return R|0}w=e+924|0;B=e+872|0;y=e+868|0;m=e+860|0;C=e+680|0;Q=e+824|0;o=e+828|0;p=e+836|0;v=e+904|0;b=e+332|0;r=e+44|0;D=e+704|0;k=e+706|0;M=e+696|0;f=e+556|0;d=e+548|0;S=e+876|0;I=e+920|0;E=e+284|0;e:while(1){if(((A[w>>2]|0)<=0?(A[I>>2]|0)>=(A[E>>2]|0):0)?(A[o>>2]|0)<=0:0)break;Sr(e);F=A[B>>2]|0;R=A[y>>2]|0;N=F-R|0;if((F|0)<(R|0))N=(A[m>>2]|0)+N|0;if(!((N|0)<=0?(A[I>>2]|0)>=(A[E>>2]|0):0))u=11;if((u|0)==11?(u=0,!(kr(e,1)|0)):0){u=12;break}R=A[o>>2]|0;if(n[C>>0]|0){u=15;break}if(!R)continue;else N=0;while(1){L=A[Q>>2]|0;F=A[L>>2]|0;K=A[L+(R+-1<<2)>>2]|0;A[L>>2]=K;R=A[p>>2]|0;A[R+(K<<2)>>2]=0;A[R+(F<<2)>>2]=-1;R=(A[o>>2]|0)+-1|0;A[o>>2]=R;if((R|0)>1)jr(Q,0);if(n[C>>0]|0)continue e;if((n[(A[v>>2]|0)+F>>0]|0)==0?(K=n[(A[b>>2]|0)+F>>0]|0,R=n[2624]|0,L=R&255,((L>>>1^1)&K<<24>>24==R<<24>>24|K&2&L|0)!=0):0){if((A[r>>2]|0)>1&((N|0)%100|0|0)==0){A[s>>2]=A[o>>2];Oe(3504,s|0)|0}if(n[D>>0]|0){L=(A[S>>2]|0)+F|0;R=n[L>>0]|0;n[L>>0]=1;if(!(Nr(e,F)|0)){u=29;break e}n[(A[S>>2]|0)+F>>0]=R<<24>>24!=0&1}if((((n[k>>0]|0)!=0?(K=n[(A[b>>2]|0)+F>>0]|0,R=n[2624]|0,L=R&255,((L>>>1^1)&K<<24>>24==R<<24>>24|K&2&L|0)!=0):0)?(n[(A[S>>2]|0)+F>>0]|0)==0:0)?!(Fr(e,F)|0):0){u=35;break e}if(+((A[f>>2]|0)>>>0)>+g[M>>3]*+((A[d>>2]|0)>>>0))ji[A[(A[e>>2]|0)+8>>2]&31](e)}R=A[o>>2]|0;if(!R)continue e;else N=N+1|0}}do{if((u|0)==12)n[e+492>>0]=0;else if((u|0)==15){C=A[e+824>>2]|0;if((R|0)<=0){if(!C)break}else{E=A[p>>2]|0;I=0;do{A[E+(A[C+(I<<2)>>2]<<2)>>2]=-1;I=I+1|0}while((I|0)<(A[o>>2]|0))}A[o>>2]=0}else if((u|0)==29)n[e+492>>0]=0;else if((u|0)==35)n[e+492>>0]=0}while(0);if(!t){if(+((A[f>>2]|0)>>>0)>+g[e+96>>3]*+((A[d>>2]|0)>>>0))ji[A[(A[e>>2]|0)+8>>2]&31](e)}else{t=e+744|0;f=A[t>>2]|0;if(f){A[e+748>>2]=0;On(f);A[t>>2]=0;A[e+752>>2]=0}Gr(e+760|0,1);t=e+808|0;f=A[t>>2]|0;if(f){A[e+812>>2]=0;On(f);A[t>>2]=0;A[e+816>>2]=0}f=e+824|0;t=A[f>>2]|0;if((A[o>>2]|0)<=0){if(t)u=48}else{u=A[p>>2]|0;p=0;do{A[u+(A[t+(p<<2)>>2]<<2)>>2]=-1;p=p+1|0}while((p|0)<(A[o>>2]|0));u=48}if((u|0)==48){A[o>>2]=0;On(t);A[f>>2]=0;A[e+832>>2]=0}Hr(e+856|0,1);n[a>>0]=0;n[e+536>>0]=1;n[e+560>>0]=0;A[e+728>>2]=A[e+540>>2];Ht(e);ji[A[(A[e>>2]|0)+8>>2]&31](e)}if((A[r>>2]|0)>0?(i=A[e+736>>2]|0,(i|0)>0):0){g[h>>3]=+(i<<2>>>0)*9.5367431640625e-7;A[s>>2]=A[h>>2];A[s+4>>2]=A[h+4>>2];Oe(3528,s|0)|0}L=(n[e+492>>0]|0)!=0;l=c;return L|0}function wr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0;r=l;l=l+16|0;o=r;a=e+256|0;c=e+260|0;s=A[c>>2]|0;if((n[e+705>>0]|0)!=0?Qr(e,t)|0:0){f=1;l=r;return f|0}if(!(Mt(e,t)|0)){f=0;l=r;return f|0}if(!(n[e+724>>0]|0)){f=1;l=r;return f|0}t=A[c>>2]|0;if((t|0)!=(s+1|0)){f=1;l=r;return f|0}f=A[(A[a>>2]|0)+(t+-1<<2)>>2]|0;A[o>>2]=f;u=(A[e+544>>2]|0)+(f<<2)|0;Jr(e+856|0,f);if((A[u>>2]|0)>>>0<=31){f=1;l=r;return f|0}g=e+760|0;c=e+808|0;a=e+744|0;s=e+924|0;t=e+824|0;h=e+840|0;e=e+836|0;p=0;do{f=u+(p<<2)+4|0;_r((A[g>>2]|0)+((A[f>>2]>>1)*12|0)|0,o);d=(A[c>>2]|0)+(A[f>>2]<<2)|0;A[d>>2]=(A[d>>2]|0)+1;n[(A[a>>2]|0)+(A[f>>2]>>1)>>0]=1;A[s>>2]=(A[s>>2]|0)+1;f=A[f>>2]>>1;if((A[h>>2]|0)>(f|0)?(i=A[(A[e>>2]|0)+(f<<2)>>2]|0,(i|0)>-1):0)jr(t,i);p=p+1|0}while((p|0)<((A[u>>2]|0)>>>5|0));i=1;l=r;return i|0}function Qr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0;c=l;l=l+16|0;s=c+8|0;a=c+4|0;i=c;A[a>>2]=A[e+284>>2];sr(e+292|0,a);a=t+4|0;u=A[a>>2]|0;e:do{if((u|0)>0){r=e+332|0;g=0;while(1){h=A[(A[t>>2]|0)+(g<<2)>>2]|0;f=o[(A[r>>2]|0)+(h>>1)>>0]|0;d=f^h&1;p=d&255;I=n[2608]|0;C=I&255;if(p<<24>>24==I<<24>>24&(C>>>1^1)|C&2&d)break;C=n[2616]|0;I=C&255;if(!((I>>>1^1)&p<<24>>24==C<<24>>24|f&2&I)){A[i>>2]=h^1;A[s+0>>2]=A[i+0>>2];Nt(e,s,-1);u=A[a>>2]|0}g=g+1|0;if((g|0)>=(u|0))break e}Pt(e,0);I=1;l=c;return I|0}}while(0);I=(Ft(e)|0)!=-1;Pt(e,0);l=c;return I|0}function vr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0;r=l;l=l+16|0;o=r;i=(A[e+544>>2]|0)+(t<<2)|0;if(!(n[e+724>>0]|0)){Lt(e,t);l=r;return}if((A[i>>2]|0)>>>0<=31){Lt(e,t);l=r;return}a=e+808|0;c=e+776|0;s=e+792|0;g=0;do{u=i+(g<<2)+4|0;h=(A[a>>2]|0)+(A[u>>2]<<2)|0;A[h>>2]=(A[h>>2]|0)+-1;Yr(e,A[u>>2]>>1);u=A[u>>2]>>1;A[o>>2]=u;u=(A[c>>2]|0)+u|0;if(!(n[u>>0]|0)){n[u>>0]=1;sr(s,o)}g=g+1|0}while((g|0)<((A[i>>2]|0)>>>5|0));Lt(e,t);l=r;return}function br(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0;i=l;l=l+16|0;a=i+4|0;s=i;g=A[e+544>>2]|0;c=g+(t<<2)|0;Jr(e+856|0,t);if((A[c>>2]&-32|0)==64){vr(e,t);f=A[r>>2]|0;r=A[c>>2]|0;e:do{if(r>>>0>31){u=r>>>5;h=0;while(1){p=h+1|0;if((A[c+(h<<2)+4>>2]|0)==(f|0)){p=h;break e}if((p|0)<(u|0))h=p;else break}}else{u=0;p=0}}while(0);h=u+-1|0;if((p|0)<(h|0))do{r=p;p=p+1|0;A[c+(r<<2)+4>>2]=A[c+(p<<2)+4>>2];r=A[c>>2]|0;u=r>>>5;h=u+-1|0}while((p|0)<(h|0));if(r&8){A[c+(h<<2)+4>>2]=A[c+(u<<2)+4>>2];r=A[c>>2]|0}u=r+-32|0;A[c>>2]=u;u=u>>>5;if(!u){u=0;r=0}else{r=0;h=0;do{r=1<<((A[c+(h<<2)+4>>2]|0)>>>1&31)|r;h=h+1|0}while((h|0)<(u|0))}A[c+(u<<2)+4>>2]=r}else{Kt(e,t,1);r=A[r>>2]|0;h=A[c>>2]|0;e:do{if(h>>>0>31){u=h>>>5;p=0;while(1){f=p+1|0;if((A[c+(p<<2)+4>>2]|0)==(r|0)){f=p;break e}if((f|0)<(u|0))p=f;else break}}else{u=0;f=0}}while(0);p=u+-1|0;if((f|0)<(p|0))do{h=f;f=f+1|0;A[c+(h<<2)+4>>2]=A[c+(f<<2)+4>>2];h=A[c>>2]|0;u=h>>>5;p=u+-1|0}while((f|0)<(p|0));if(h&8){A[c+(p<<2)+4>>2]=A[c+(u<<2)+4>>2];h=A[c>>2]|0}p=h+-32|0;A[c>>2]=p;p=p>>>5;if(!p){p=0;u=0}else{u=0;h=0;do{u=1<<((A[c+(h<<2)+4>>2]|0)>>>1&31)|u;h=h+1|0}while((h|0)<(p|0))}A[c+(p<<2)+4>>2]=u;Rt(e,t);u=r>>1;h=A[e+760>>2]|0;p=h+(u*12|0)|0;h=h+(u*12|0)+4|0;f=A[h>>2]|0;e:do{if((f|0)>0){I=A[p>>2]|0;d=0;while(1){C=d+1|0;if((A[I+(d<<2)>>2]|0)==(t|0))break e;if((C|0)<(f|0))d=C;else{d=C;break}}}else d=0}while(0);f=f+-1|0;if((d|0)<(f|0)){p=A[p>>2]|0;do{f=d;d=d+1|0;A[p+(f<<2)>>2]=A[p+(d<<2)>>2];f=(A[h>>2]|0)+-1|0}while((d|0)<(f|0))}A[h>>2]=f;I=(A[e+808>>2]|0)+(r<<2)|0;A[I>>2]=(A[I>>2]|0)+-1;Yr(e,u)}if((A[c>>2]&-32|0)!=32){I=1;l=i;return I|0}g=A[g+(t+1<<2)>>2]|0;c=o[(A[e+332>>2]|0)+(g>>1)>>0]|0;I=c^g&1;t=I&255;d=n[2624]|0;C=d&255;if(!(t<<24>>24==d<<24>>24&(C>>>1^1)|C&2&I)){C=n[2616]|0;I=C&255;if((I>>>1^1)&t<<24>>24==C<<24>>24|c&2&I){I=0;l=i;return I|0}}else{A[s>>2]=g;A[a+0>>2]=A[s+0>>2];Nt(e,a,-1)}I=(Ft(e)|0)==-1;l=i;return I|0}function Dr(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0;o=l;l=l+16|0;a=o+4|0;s=o;p=e+708|0;A[p>>2]=(A[p>>2]|0)+1;if(A[i>>2]|0)A[i+4>>2]=0;c=(A[t>>2]|0)>>>5>>>0<(A[r>>2]|0)>>>5>>>0;e=c?r:t;t=c?t:r;c=A[t>>2]|0;e:do{if(c>>>0>31){r=0;t:while(1){g=A[t+(r<<2)+4>>2]|0;r:do{if((g>>1|0)!=(n|0)){u=A[e>>2]|0;n:do{if(u>>>0>31){h=0;while(1){p=A[e+(h<<2)+4>>2]|0;h=h+1|0;if((g^p)>>>0<2)break;if((h|0)>=(u>>>5|0))break n}if((p|0)==(g^1|0)){i=0;break t}else break r}}while(0);A[a>>2]=g;or(i,a);c=A[t>>2]|0}}while(0);r=r+1|0;if((r|0)>=(c>>>5|0))break e}l=o;return i|0}}while(0);r=A[e>>2]|0;if(r>>>0<=31){p=1;l=o;return p|0}a=0;do{t=A[e+(a<<2)+4>>2]|0;if((t>>1|0)!=(n|0)){A[s>>2]=t;or(i,s);r=A[e>>2]|0}a=a+1|0}while((a|0)<(r>>>5|0));i=1;l=o;return i|0}function Sr(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0;t=l;c=e+924|0;if(!(A[c>>2]|0)){l=t;return}s=e+856|0;r=e+872|0;i=e+868|0;a=e+860|0;o=e+544|0;g=0;while(1){y=A[r>>2]|0;u=A[i>>2]|0;h=y-u|0;if((y|0)<(u|0))h=(A[a>>2]|0)+h|0;if((g|0)>=(h|0))break;h=(A[o>>2]|0)+(A[(A[s>>2]|0)+(((u+g|0)%(A[a>>2]|0)|0)<<2)>>2]<<2)|0;u=A[h>>2]|0;if(!(u&3))A[h>>2]=u&-4|2;g=g+1|0}g=e+540|0;d=A[g>>2]|0;if((d|0)>0){h=e+744|0;p=e+776|0;u=e+760|0;e=e+804|0;f=0;do{if(n[(A[h>>2]|0)+f>>0]|0){C=(A[p>>2]|0)+f|0;if(n[C>>0]|0){I=A[u>>2]|0;d=I+(f*12|0)+4|0;m=A[d>>2]|0;if((m|0)>0){I=A[I+(f*12|0)>>2]|0;B=0;E=0;do{y=A[I+(B<<2)>>2]|0;if((A[(A[A[e>>2]>>2]|0)+(y<<2)>>2]&3|0)!=1){A[I+(E<<2)>>2]=y;m=A[d>>2]|0;E=E+1|0}B=B+1|0}while((B|0)<(m|0))}else{B=0;E=0}I=B-E|0;if((I|0)>0)A[d>>2]=m-I;n[C>>0]=0}C=A[u>>2]|0;d=C+(f*12|0)+4|0;E=A[d>>2]|0;if((E|0)>0){C=C+(f*12|0)|0;I=0;do{m=A[(A[C>>2]|0)+(I<<2)>>2]|0;if(!(A[(A[o>>2]|0)+(m<<2)>>2]&3)){Jr(s,m);E=(A[o>>2]|0)+(A[(A[C>>2]|0)+(I<<2)>>2]<<2)|0;A[E>>2]=A[E>>2]&-4|2;E=A[d>>2]|0}I=I+1|0}while((I|0)<(E|0))}n[(A[h>>2]|0)+f>>0]=0;d=A[g>>2]|0}f=f+1|0}while((f|0)<(d|0));g=0}else g=0;while(1){y=A[r>>2]|0;u=A[i>>2]|0;h=y-u|0;if((y|0)<(u|0))h=(A[a>>2]|0)+h|0;if((g|0)>=(h|0))break;u=(A[o>>2]|0)+(A[(A[s>>2]|0)+(((u+g|0)%(A[a>>2]|0)|0)<<2)>>2]<<2)|0;h=A[u>>2]|0;if((h&3|0)==2)A[u>>2]=h&-4;g=g+1|0}A[c>>2]=0;l=t;return}function kr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0,F=0,R=0,K=0,L=0,x=0,P=0,U=0,T=0,O=0,Y=0;r=l;l=l+16|0;u=r;w=r+12|0;o=e+856|0;g=e+872|0;d=e+868|0;a=e+860|0;m=e+680|0;i=e+920|0;s=e+284|0;E=e+280|0;C=e+544|0;I=e+928|0;p=e+44|0;h=e+776|0;B=e+692|0;f=e+804|0;c=e+760|0;S=0;N=0;k=0;e:while(1){M=A[d>>2]|0;do{b=A[g>>2]|0;D=(b|0)<(M|0);b=b-M|0;if(D)F=(A[a>>2]|0)+b|0;else F=b;if((F|0)<=0?(A[i>>2]|0)>=(A[s>>2]|0):0){i=1;a=53;break e}if(n[m>>0]|0){a=8;break e}if(D)b=(A[a>>2]|0)+b|0;if((b|0)==0?(v=A[i>>2]|0,(v|0)<(A[s>>2]|0)):0){A[i>>2]=v+1;A[(A[C>>2]|0)+((A[I>>2]|0)+1<<2)>>2]=A[(A[E>>2]|0)+(v<<2)>>2];b=(A[C>>2]|0)+(A[I>>2]<<2)|0;D=(A[b>>2]|0)>>>5;if(!D){D=0;F=0}else{F=0;M=0;do{F=1<<((A[b+(M<<2)+4>>2]|0)>>>1&31)|F;M=M+1|0}while((M|0)<(D|0))}A[b+(D<<2)+4>>2]=F;Jr(o,A[I>>2]|0);M=A[d>>2]|0}b=A[(A[o>>2]|0)+(M<<2)>>2]|0;M=M+1|0;L=A[a>>2]|0;M=(M|0)==(L|0)?0:M;A[d>>2]=M;F=A[C>>2]|0;D=F+(b<<2)|0;K=A[D>>2]|0}while((K&3|0)!=0);if(t?(A[p>>2]|0)>1:0){R=S+1|0;if(!((S|0)%1e3|0)){K=A[g>>2]|0;A[u>>2]=K-M+((K|0)<(M|0)?L:0);A[u+4>>2]=k;A[u+8>>2]=N;Oe(3440,u|0)|0;K=A[D>>2]|0;S=R}else S=R}M=F+(b+1<<2)|0;F=A[M>>2]>>1;if(K>>>0>63){R=A[c>>2]|0;K=K>>>5;L=1;do{Y=A[D+(L<<2)+4>>2]>>1;F=(A[R+(Y*12|0)+4>>2]|0)<(A[R+(F*12|0)+4>>2]|0)?Y:F;L=L+1|0}while((L|0)<(K|0))}K=(A[h>>2]|0)+F|0;if(n[K>>0]|0){L=A[c>>2]|0;R=L+(F*12|0)+4|0;U=A[R>>2]|0;if((U|0)>0){L=A[L+(F*12|0)>>2]|0;P=0;x=0;do{T=A[L+(P<<2)>>2]|0;if((A[(A[A[f>>2]>>2]|0)+(T<<2)>>2]&3|0)!=1){A[L+(x<<2)>>2]=T;U=A[R>>2]|0;x=x+1|0}P=P+1|0}while((P|0)<(U|0))}else{P=0;x=0}L=P-x|0;if((L|0)>0)A[R>>2]=U-L;n[K>>0]=0}K=A[c>>2]|0;R=A[K+(F*12|0)>>2]|0;K=K+(F*12|0)+4|0;if((A[K>>2]|0)>0)L=0;else continue;while(1){T=A[D>>2]|0;if(T&3)continue e;x=A[R+(L<<2)>>2]|0;P=A[C>>2]|0;O=P+(x<<2)|0;U=A[O>>2]|0;t:do{if(((!((U&3|0)!=0|(x|0)==(b|0))?(Y=A[B>>2]|0,Q=U>>>5,(Y|0)==-1|(Q|0)<(Y|0)):0)?(y=T>>>5,Q>>>0>=y>>>0):0)?(A[D+(y<<2)+4>>2]&~A[O+(Q<<2)+4>>2]|0)==0:0){P=P+(x+1<<2)|0;do{if(T>>>0>31){if(U>>>0>31){O=-2;U=0}else break t;while(1){T=A[M+(U<<2)>>2]|0;r:do{if((O|0)==-2){Y=0;while(1){O=A[P+(Y<<2)>>2]|0;if((T|0)==(O|0)){T=-2;break r}Y=Y+1|0;if((T|0)==(O^1|0))break r;if(Y>>>0>=Q>>>0)break t}}else{Y=0;while(1){if((T|0)==(A[P+(Y<<2)>>2]|0)){T=O;break r}Y=Y+1|0;if(Y>>>0>=Q>>>0)break t}}}while(0);U=U+1|0;if(U>>>0>=y>>>0)break;else O=T}if((T|0)==-2)break;else if((T|0)==-1)break t;A[w>>2]=T^1;A[u+0>>2]=A[w+0>>2];if(!(br(e,x,u)|0)){i=0;a=53;break e}N=N+1|0;L=(((T>>1|0)==(F|0))<<31>>31)+L|0;break t}}while(0);vr(e,x);k=k+1|0}}while(0);L=L+1|0;if((L|0)>=(A[K>>2]|0))continue e}}if((a|0)==8){Hr(o,0);A[i>>2]=A[s>>2];Y=1;l=r;return Y|0}else if((a|0)==53){l=r;return i|0}return 0}function Mr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0;s=l;l=l+16|0;i=s+12|0;u=s+8|0;c=s+4|0;a=s;g=(A[e+544>>2]|0)+(r<<2)|0;if(A[g>>2]&3){C=1;l=s;return C|0}if(xt(e,g)|0){C=1;l=s;return C|0}A[u>>2]=A[e+284>>2];sr(e+292|0,u);f=A[g>>2]|0;if(f>>>0>31){u=e+332|0;h=0;p=-2;do{d=A[g+(h<<2)+4>>2]|0;C=d>>1;if((C|0)!=(t|0)?(C=(o[(A[u>>2]|0)+C>>0]|0)^d&1,E=n[2616]|0,I=E&255,((C&255)<<24>>24==E<<24>>24&(I>>>1^1)|I&2&C|0)==0):0){A[c>>2]=d^1;A[i+0>>2]=A[c+0>>2];Nt(e,i,-1);f=A[g>>2]|0}else p=d;h=h+1|0}while((h|0)<(f>>>5|0))}else p=-2;E=(Ft(e)|0)==-1;Pt(e,0);if(!E){E=e+712|0;A[E>>2]=(A[E>>2]|0)+1;A[a>>2]=p;A[i+0>>2]=A[a+0>>2];if(!(br(e,r,i)|0)){E=0;l=s;return E|0}}E=1;l=s;return E|0}function Nr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0;r=l;s=(A[e+776>>2]|0)+t|0;i=e+760|0;if(n[s>>0]|0){c=A[i>>2]|0;o=c+(t*12|0)+4|0;h=A[o>>2]|0;if((h|0)>0){a=e+804|0;c=A[c+(t*12|0)>>2]|0;u=0;g=0;do{p=A[c+(u<<2)>>2]|0;if((A[(A[A[a>>2]>>2]|0)+(p<<2)>>2]&3|0)!=1){A[c+(g<<2)>>2]=p;h=A[o>>2]|0;g=g+1|0}u=u+1|0}while((u|0)<(h|0))}else{u=0;g=0}a=u-g|0;if((a|0)>0)A[o>>2]=h-a;n[s>>0]=0}o=A[i>>2]|0;h=n[(A[e+332>>2]|0)+t>>0]|0;u=n[2624]|0;p=u&255;if(!((p>>>1^1)&h<<24>>24==u<<24>>24|h&2&p)){p=1;l=r;return p|0}i=o+(t*12|0)+4|0;s=A[i>>2]|0;if(!s){p=1;l=r;return p|0}e:do{if((s|0)>0){o=o+(t*12|0)|0;s=0;while(1){if(!(Mr(e,t,A[(A[o>>2]|0)+(s<<2)>>2]|0)|0)){e=0;break}s=s+1|0;if((s|0)>=(A[i>>2]|0))break e}l=r;return e|0}}while(0);p=kr(e,0)|0;l=r;return p|0}function Fr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0,F=0,R=0,L=0,x=0,P=0,U=0,T=0,O=0,Y=0,j=0,G=0,H=0,J=0,_=0,q=0,z=0,W=0,V=0,X=0;r=l;l=l+48|0;I=r+36|0;C=r+32|0;E=r+28|0;m=r+24|0;i=r+12|0;o=r;h=(A[e+776>>2]|0)+t|0;u=e+760|0;if(n[h>>0]|0){d=A[u>>2]|0;p=d+(t*12|0)+4|0;Q=A[p>>2]|0;if((Q|0)>0){f=e+804|0;d=A[d+(t*12|0)>>2]|0;y=0;B=0;do{v=A[d+(y<<2)>>2]|0;if((A[(A[A[f>>2]>>2]|0)+(v<<2)>>2]&3|0)!=1){A[d+(B<<2)>>2]=v;Q=A[p>>2]|0;B=B+1|0}y=y+1|0}while((y|0)<(Q|0))}else{y=0;B=0}f=y-B|0;if((f|0)>0)A[p>>2]=Q-f;n[h>>0]=0}B=A[u>>2]|0;y=B+(t*12|0)|0;A[i>>2]=0;h=i+4|0;A[h>>2]=0;p=i+8|0;A[p>>2]=0;A[o>>2]=0;d=o+4|0;A[d>>2]=0;f=o+8|0;A[f>>2]=0;B=B+(t*12|0)+4|0;e:do{if((A[B>>2]|0)>0){Q=e+544|0;D=t<<1;b=0;do{S=(A[y>>2]|0)+(b<<2)|0;M=(A[Q>>2]|0)+(A[S>>2]<<2)|0;X=A[M>>2]|0;v=X>>>5;t:do{if(X>>>0>31){N=0;while(1){k=N+1|0;if((A[M+(N<<2)+4>>2]|0)==(D|0)){k=N;break t}if((k|0)<(v|0))N=k;else break}}else k=0}while(0);_r((k|0)<(v|0)?i:o,S);b=b+1|0;v=A[B>>2]|0}while((b|0)<(v|0));Q=A[h>>2]|0;D=(Q|0)>0;if(D){S=A[d>>2]|0;x=(S|0)>0;L=e+544|0;k=A[i>>2]|0;b=A[o>>2]|0;M=e+708|0;R=e+684|0;F=e+688|0;Y=0;N=0;while(1){if(x){U=k+(N<<2)|0;P=A[L>>2]|0;T=A[M>>2]|0;O=0;do{H=P+(A[U>>2]<<2)|0;_=P+(A[b+(O<<2)>>2]<<2)|0;T=T+1|0;A[M>>2]=T;j=(A[H>>2]|0)>>>5>>>0<(A[_>>2]|0)>>>5>>>0;G=j?_:H;_=j?H:_;H=G+4|0;j=_+4|0;G=A[G>>2]|0;J=G>>>5;z=J+-1|0;_=A[_>>2]|0;t:do{if(_>>>0>31){q=0;while(1){X=A[j+(q<<2)>>2]|0;r:do{if((X>>1|0)!=(t|0)){n:do{if(G>>>0>31){V=0;while(1){W=A[H+(V<<2)>>2]|0;V=V+1|0;if((W^X)>>>0<2)break;if((V|0)>=(J|0))break n}if((W|0)==(X^1|0))break t;else break r}}while(0);z=z+1|0}}while(0);q=q+1|0;if((q|0)>=(_>>>5|0)){w=28;break}}}else w=28}while(0);if((w|0)==28){w=0;if((Y|0)>=((A[R>>2]|0)+v|0)){e=1;break e}X=A[F>>2]|0;if((X|0)!=-1&(z|0)>(X|0)){e=1;break e}else Y=Y+1|0}O=O+1|0}while((O|0)<(S|0))}N=N+1|0;if((N|0)>=(Q|0)){w=32;break}}}else{D=0;w=32}}else{Q=0;D=0;w=32}}while(0);e:do{if((w|0)==32){n[(A[e+904>>2]|0)+t>>0]=1;v=e+380|0;b=(A[v>>2]|0)+t|0;if(n[b>>0]|0){X=e+200|0;V=X;V=ai(A[V>>2]|0,A[V+4>>2]|0,-1,-1)|0;A[X>>2]=V;A[X+4>>2]=K}n[b>>0]=0;b=e+460|0;if(!((A[e+476>>2]|0)>(t|0)?(A[(A[e+472>>2]|0)+(t<<2)>>2]|0)>-1:0))w=36;if((w|0)==36?(n[(A[v>>2]|0)+t>>0]|0)!=0:0)Ar(b,t);w=e+716|0;A[w>>2]=(A[w>>2]|0)+1;w=A[d>>2]|0;if((Q|0)>(w|0)){b=e+732|0;if((w|0)>0){m=e+544|0;E=A[o>>2]|0;M=e+736|0;k=0;do{S=(A[m>>2]|0)+(A[E+(k<<2)>>2]<<2)|0;v=A[M>>2]|0;if((A[S>>2]|0)>>>0>31){N=0;F=-1;do{X=S+(N<<2)+4|0;A[I>>2]=A[X>>2];_r(b,I);F=(A[X>>2]>>1|0)==(t|0)?N+v|0:F;N=N+1|0}while((N|0)<((A[S>>2]|0)>>>5|0))}else F=-1;X=A[b>>2]|0;W=X+(F<<2)|0;V=A[W>>2]|0;X=X+(v<<2)|0;A[W>>2]=A[X>>2];A[X>>2]=V;A[C>>2]=(A[S>>2]|0)>>>5;_r(b,C);k=k+1|0}while((k|0)<(w|0))}A[I>>2]=t<<1;_r(b,I);A[C>>2]=1;_r(b,C)}else{k=e+732|0;if(D){N=e+544|0;M=A[i>>2]|0;v=e+736|0;F=0;do{S=(A[N>>2]|0)+(A[M+(F<<2)>>2]<<2)|0;b=A[v>>2]|0;if((A[S>>2]|0)>>>0>31){R=0;L=-1;do{X=S+(R<<2)+4|0;A[I>>2]=A[X>>2];_r(k,I);L=(A[X>>2]>>1|0)==(t|0)?R+b|0:L;R=R+1|0}while((R|0)<((A[S>>2]|0)>>>5|0))}else L=-1;X=A[k>>2]|0;W=X+(L<<2)|0;V=A[W>>2]|0;X=X+(b<<2)|0;A[W>>2]=A[X>>2];A[X>>2]=V;A[C>>2]=(A[S>>2]|0)>>>5;_r(k,C);F=F+1|0}while((F|0)<(Q|0))}A[E>>2]=t<<1|1;_r(k,E);A[m>>2]=1;_r(k,m)}if((A[B>>2]|0)>0){C=0;do{vr(e,A[(A[y>>2]|0)+(C<<2)>>2]|0);C=C+1|0}while((C|0)<(A[B>>2]|0))}C=e+628|0;t:do{if(D){I=e+544|0;y=A[i>>2]|0;b=A[o>>2]|0;if((w|0)>0)B=0;else{C=0;while(1){C=C+1|0;if((C|0)>=(Q|0))break t}}do{m=y+(B<<2)|0;E=0;do{X=A[I>>2]|0;if(Dr(e,X+(A[m>>2]<<2)|0,X+(A[b+(E<<2)>>2]<<2)|0,t,C)|0?!(wr(e,C)|0):0){e=0;break e}E=E+1|0}while((E|0)<(w|0));B=B+1|0}while((B|0)<(Q|0))}}while(0);C=A[u>>2]|0;u=C+(t*12|0)|0;I=A[u>>2]|0;if(I){A[C+(t*12|0)+4>>2]=0;On(I);A[u>>2]=0;A[C+(t*12|0)+8>>2]=0}u=e+412|0;t=t<<1;I=A[u>>2]|0;C=I+(t*12|0)+4|0;if((A[C>>2]|0)==0?(g=I+(t*12|0)|0,c=A[g>>2]|0,(c|0)!=0):0){A[C>>2]=0;On(c);A[g>>2]=0;A[I+(t*12|0)+8>>2]=0;I=A[u>>2]|0}c=t|1;g=I+(c*12|0)+4|0;if((A[g>>2]|0)==0?(a=I+(c*12|0)|0,s=A[a>>2]|0,(s|0)!=0):0){A[g>>2]=0;On(s);A[a>>2]=0;A[I+(c*12|0)+8>>2]=0}e=kr(e,0)|0;b=A[o>>2]|0}}while(0);if(b){A[d>>2]=0;On(b);A[o>>2]=0;A[f>>2]=0}o=A[i>>2]|0;if(!o){l=r;return e|0}A[h>>2]=0;On(o);A[i>>2]=0;A[p>>2]=0;l=r;return e|0}function Rr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0;r=l;if(!(n[e+724>>0]|0)){l=r;return}g=e+540|0;if((A[g>>2]|0)>0){a=e+760|0;i=e+804|0;o=e+776|0;c=e+544|0;s=0;do{h=A[a>>2]|0;u=h+(s*12|0)+4|0;f=A[u>>2]|0;if((f|0)>0){h=A[h+(s*12|0)>>2]|0;d=0;p=0;do{C=A[h+(d<<2)>>2]|0;if((A[(A[A[i>>2]>>2]|0)+(C<<2)>>2]&3|0)!=1){A[h+(p<<2)>>2]=C;f=A[u>>2]|0;p=p+1|0}d=d+1|0}while((d|0)<(f|0))}else{d=0;p=0}h=d-p|0;if((h|0)>0)A[u>>2]=f-h;n[(A[o>>2]|0)+s>>0]=0;h=A[a>>2]|0;u=h+(s*12|0)+4|0;if((A[u>>2]|0)>0){C=h+(s*12|0)|0;f=0;do{h=(A[C>>2]|0)+(f<<2)|0;p=A[h>>2]|0;d=A[c>>2]|0;I=d+(p<<2)|0;if(!(A[I>>2]&16)){E=dr(t,I)|0;A[h>>2]=E;A[I>>2]=A[I>>2]|16;A[d+(p+1<<2)>>2]=E}else A[h>>2]=A[d+(p+1<<2)>>2];f=f+1|0}while((f|0)<(A[u>>2]|0))}s=s+1|0}while((s|0)<(A[g>>2]|0))}i=e+856|0;E=A[e+872>>2]|0;o=e+868|0;u=A[o>>2]|0;c=E-u|0;if((E|0)<(u|0))c=(A[e+860>>2]|0)+c|0;e:do{if((c|0)>0){s=e+860|0;a=e+544|0;while(1){g=A[(A[i>>2]|0)+(u<<2)>>2]|0;h=u+1|0;A[o>>2]=(h|0)==(A[s>>2]|0)?0:h;h=A[a>>2]|0;p=h+(g<<2)|0;u=A[p>>2]|0;if(!(u&3)){if(!(u&16)){E=dr(t,p)|0;A[p>>2]=A[p>>2]|16;A[h+(g+1<<2)>>2]=E;g=E}else g=A[h+(g+1<<2)>>2]|0;Jr(i,g)}c=c+-1|0;if((c|0)<=0)break e;u=A[o>>2]|0}}else a=e+544|0}while(0);e=e+928|0;i=A[e>>2]|0;s=A[a>>2]|0;o=s+(i<<2)|0;if(!(A[o>>2]&16)){E=dr(t,o)|0;A[e>>2]=E;A[o>>2]=A[o>>2]|16;A[s+(i+1<<2)>>2]=E;l=r;return}else{A[e>>2]=A[s+(i+1<<2)>>2];l=r;return}}function Kr(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0;s=l;l=l+32|0;g=s;t=s+8|0;r=e+544|0;i=e+548|0;o=e+556|0;a=(A[i>>2]|0)-(A[o>>2]|0)|0;A[t+0>>2]=0;A[t+4>>2]=0;A[t+8>>2]=0;A[t+12>>2]=0;er(t,a);a=t+16|0;c=e+560|0;n[a>>0]=n[c>>0]|0;Rr(e,t);zt(e,t);if((A[e+44>>2]|0)>1){u=A[t+4>>2]<<2;A[g>>2]=A[i>>2]<<2;A[g+4>>2]=u;Oe(3608,g|0)|0}n[c>>0]=n[a>>0]|0;a=A[r>>2]|0;if(a)On(a);A[r>>2]=A[t>>2];A[i>>2]=A[t+4>>2];A[e+552>>2]=A[t+8>>2];A[o>>2]=A[t+12>>2];l=s;return}function Lr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[2608]=0;n[2616]=1;n[2624]=2;Ct(2632,2656,2664,3744,3752);A[658]=160;n[2652]=0;Ct(2704,2728,2736,3744,3752);A[676]=160;n[2724]=0;Ct(2784,2808,2816,3744,3752);A[696]=160;n[2804]=1;Ct(2848,2880,2888,3744,3736);A[712]=280;r=2868|0;A[r>>2]=-2147483648;A[r+4>>2]=2147483647;A[719]=0;Ct(2960,2992,3e3,3744,3736);A[740]=280;r=2980|0;A[r>>2]=-1;A[r+4>>2]=2147483647;A[747]=20;Ct(3112,3144,3152,3744,3736);A[778]=280;r=3132|0;A[r>>2]=-1;A[r+4>>2]=2147483647;A[785]=1e3;Ct(3240,3296,3312,3744,3720);A[810]=2168;g[408]=0.0;g[409]=Q;n[3280]=0;n[3281]=0;i[1641]=i[t+0>>1]|0;i[1642]=i[t+2>>1]|0;i[1643]=i[t+4>>1]|0;g[411]=.5;l=e;return}function xr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0;r=l;A[e>>2]=0;n=e+4|0;A[n>>2]=0;i=e+8|0;A[i>>2]=0;if((t|0)<=0){l=r;return}o=t+1&-2;o=(o|0)>2?o:2;A[i>>2]=o;i=Yn(0,o<<2)|0;A[e>>2]=i;if((i|0)==0?(A[(Ge()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);e=A[n>>2]|0;if((e|0)<(t|0))do{o=i+(e<<2)|0;if(o)A[o>>2]=0;e=e+1|0}while((e|0)!=(t|0));A[n>>2]=t;l=r;return}function Pr(e){e=e|0;var t=0,r=0,n=0,i=0,o=0,s=0,a=0;t=l;n=e+32|0;r=A[n>>2]|0;if(r){A[e+36>>2]=0;On(r);A[n>>2]=0;A[e+40>>2]=0}n=e+16|0;r=A[n>>2]|0;if(r){A[e+20>>2]=0;On(r);A[n>>2]=0;A[e+24>>2]=0}n=A[e>>2]|0;if(!n){l=t;return}r=e+4|0;o=A[r>>2]|0;if((o|0)>0){i=0;do{a=n+(i*12|0)|0;s=A[a>>2]|0;if(s){A[n+(i*12|0)+4>>2]=0;On(s);A[a>>2]=0;A[n+(i*12|0)+8>>2]=0;n=A[e>>2]|0;o=A[r>>2]|0}i=i+1|0}while((i|0)<(o|0))}A[r>>2]=0;On(n);A[e>>2]=0;A[e+8>>2]=0;l=t;return}function Ur(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0;n=l;t=A[t>>2]|0;o=t+1|0;i=e+4|0;if((A[i>>2]|0)>=(o|0)){c=A[e>>2]|0;c=c+(t<<2)|0;A[c>>2]=r;l=n;return}s=e+8|0;c=A[s>>2]|0;if((c|0)<(o|0)){g=t+2-c&-2;a=(c>>1)+2&-2;a=(g|0)>(a|0)?g:a;if((a|0)>(2147483647-c|0)){g=Qe(1)|0;ze(g|0,48,0)}u=A[e>>2]|0;g=a+c|0;A[s>>2]=g;g=Yn(u,g<<2)|0;A[e>>2]=g;if((g|0)==0?(A[(Ge()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}c=A[i>>2]|0;if((c|0)<(o|0)){s=A[e>>2]|0;do{a=s+(c<<2)|0;if(a)A[a>>2]=0;c=c+1|0}while((c|0)!=(o|0))}A[i>>2]=o;u=A[e>>2]|0;u=u+(t<<2)|0;A[u>>2]=r;l=n;return}function Tr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0;r=l;c=A[t>>2]|0;o=c+1|0;i=e+4|0;if((A[i>>2]|0)<(o|0)){a=e+8|0;s=A[a>>2]|0;if((s|0)<(o|0)){g=c+2-s&-2;c=(s>>1)+2&-2;c=(g|0)>(c|0)?g:c;if((c|0)>(2147483647-s|0)){g=Qe(1)|0;ze(g|0,48,0)}u=A[e>>2]|0;g=c+s|0;A[a>>2]=g;g=Yn(u,g*12|0)|0;A[e>>2]=g;if((g|0)==0?(A[(Ge()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}a=A[i>>2]|0;if((a|0)<(o|0)){s=A[e>>2]|0;do{c=s+(a*12|0)|0;if(c){A[c>>2]=0;A[s+(a*12|0)+4>>2]=0;A[s+(a*12|0)+8>>2]=0}a=a+1|0}while((a|0)!=(o|0))}A[i>>2]=o;s=A[t>>2]|0}else s=c;i=A[e>>2]|0;if(A[i+(s*12|0)>>2]|0){A[i+(s*12|0)+4>>2]=0;s=A[t>>2]|0}t=e+16|0;i=s+1|0;o=e+20|0;if((A[o>>2]|0)>=(i|0)){l=r;return}a=e+24|0;e=A[a>>2]|0;if((e|0)<(i|0)){u=s+2-e&-2;s=(e>>1)+2&-2;s=(u|0)>(s|0)?u:s;if((s|0)>(2147483647-e|0)){u=Qe(1)|0;ze(u|0,48,0)}g=A[t>>2]|0;u=s+e|0;A[a>>2]=u;u=Yn(g,u)|0;A[t>>2]=u;if((u|0)==0?(A[(Ge()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}e=A[o>>2]|0;if((e|0)<(i|0))do{n[(A[t>>2]|0)+e>>0]=0;e=e+1|0}while((e|0)!=(i|0));A[o>>2]=i;l=r;return}function Or(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0;r=l;l=l+16|0;o=r;A[o>>2]=t;i=e+12|0;n=t+1|0;s=e+16|0;if((A[s>>2]|0)<(n|0)){c=e+20|0;a=A[c>>2]|0;if((a|0)<(n|0)){u=t+2-a&-2;g=(a>>1)+2&-2;g=(u|0)>(g|0)?u:g;if((g|0)>(2147483647-a|0)){u=Qe(1)|0;ze(u|0,48,0)}h=A[i>>2]|0;u=g+a|0;A[c>>2]=u;u=Yn(h,u<<2)|0;A[i>>2]=u;if((u|0)==0?(A[(Ge()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=A[s>>2]|0;if((n|0)>(a|0))Ai((A[i>>2]|0)+(a<<2)|0,-1,n-a<<2|0)|0;A[s>>2]=n}A[(A[i>>2]|0)+(t<<2)>>2]=A[e+4>>2];sr(e,o);n=A[i>>2]|0;a=A[n+(t<<2)>>2]|0;t=A[e>>2]|0;i=A[t+(a<<2)>>2]|0;if(!a){u=0;h=t+(u<<2)|0;A[h>>2]=i;h=n+(i<<2)|0;A[h>>2]=u;l=r;return}e=e+28|0;o=i<<1;s=o|1;while(1){u=a;a=a+-1>>1;g=t+(a<<2)|0;c=A[g>>2]|0;C=A[A[e>>2]>>2]|0;p=A[C+(o<<2)>>2]|0;d=A[C+(s<<2)>>2]|0;p=Ci(d|0,((d|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0;d=K;f=c<<1;h=A[C+(f<<2)>>2]|0;f=A[C+((f|1)<<2)>>2]|0;h=Ci(f|0,((f|0)<0)<<31>>31|0,h|0,((h|0)<0)<<31>>31|0)|0;f=K;if(!(d>>>0>>0|(d|0)==(f|0)&p>>>0>>0)){e=14;break}A[t+(u<<2)>>2]=c;A[n+(A[g>>2]<<2)>>2]=u;if(!a){u=0;e=14;break}}if((e|0)==14){C=t+(u<<2)|0;A[C>>2]=i;C=n+(i<<2)|0;A[C>>2]=u;l=r;return}}function Yr(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0;r=l;s=e+824|0;g=(A[e+840>>2]|0)>(t|0);if(g?(A[(A[e+836>>2]|0)+(t<<2)>>2]|0)>-1:0)a=7;else a=3;do{if((a|0)==3){if(n[(A[e+876>>2]|0)+t>>0]|0){l=r;return}if(n[(A[e+904>>2]|0)+t>>0]|0){l=r;return}p=n[(A[e+332>>2]|0)+t>>0]|0;h=n[2624]|0;f=h&255;if((f>>>1^1)&p<<24>>24==h<<24>>24|p&2&f)if(g){a=7;break}else break;else{l=r;return}}}while(0);if((a|0)==7?(i=A[e+836>>2]|0,o=i+(t<<2)|0,c=A[o>>2]|0,(c|0)>-1):0){t=A[s>>2]|0;a=A[t+(c<<2)>>2]|0;e:do{if(!c)p=0;else{g=e+852|0;u=a<<1;e=u|1;while(1){p=c;c=c+-1>>1;f=t+(c<<2)|0;h=A[f>>2]|0;m=A[A[g>>2]>>2]|0;C=A[m+(u<<2)>>2]|0;E=A[m+(e<<2)>>2]|0;C=Ci(E|0,((E|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;E=K;I=h<<1;d=A[m+(I<<2)>>2]|0;I=A[m+((I|1)<<2)>>2]|0;d=Ci(I|0,((I|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;I=K;if(!(E>>>0>>0|(E|0)==(I|0)&C>>>0>>0))break e;A[t+(p<<2)>>2]=h;A[i+(A[f>>2]<<2)>>2]=p;if(!c){p=0;break}}}}while(0);A[t+(p<<2)>>2]=a;A[i+(a<<2)>>2]=p;jr(s,A[o>>2]|0);l=r;return}Or(s,t);l=r;return}function jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0;r=l;n=A[e>>2]|0;i=A[n+(t<<2)>>2]|0;u=t<<1|1;g=e+4|0;p=A[g>>2]|0;if((u|0)>=(p|0)){f=t;d=e+12|0;p=n+(f<<2)|0;A[p>>2]=i;d=A[d>>2]|0;d=d+(i<<2)|0;A[d>>2]=f;l=r;return}s=e+28|0;c=i<<1;a=c|1;e=e+12|0;while(1){h=(t<<1)+2|0;if((h|0)<(p|0)){f=A[n+(h<<2)>>2]|0;d=A[n+(u<<2)>>2]|0;m=f<<1;p=A[A[s>>2]>>2]|0;I=A[p+(m<<2)>>2]|0;m=A[p+((m|1)<<2)>>2]|0;I=Ci(m|0,((m|0)<0)<<31>>31|0,I|0,((I|0)<0)<<31>>31|0)|0;m=K;E=d<<1;C=A[p+(E<<2)>>2]|0;E=A[p+((E|1)<<2)>>2]|0;C=Ci(E|0,((E|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;E=K;if(!(m>>>0>>0|(m|0)==(E|0)&I>>>0>>0)){f=d;o=7}}else{f=A[n+(u<<2)>>2]|0;p=A[A[s>>2]>>2]|0;o=7}if((o|0)==7){o=0;h=u}C=f<<1;E=A[p+(C<<2)>>2]|0;C=A[p+((C|1)<<2)>>2]|0;E=Ci(C|0,((C|0)<0)<<31>>31|0,E|0,((E|0)<0)<<31>>31|0)|0;C=K;m=A[p+(c<<2)>>2]|0;I=A[p+(a<<2)>>2]|0;m=Ci(I|0,((I|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;I=K;if(!(C>>>0>>0|(C|0)==(I|0)&E>>>0>>0)){o=10;break}A[n+(t<<2)>>2]=f;A[(A[e>>2]|0)+(f<<2)>>2]=t;u=h<<1|1;p=A[g>>2]|0;if((u|0)>=(p|0)){t=h;o=10;break}else t=h}if((o|0)==10){m=n+(t<<2)|0;A[m>>2]=i;m=A[e>>2]|0;m=m+(i<<2)|0;A[m>>2]=t;l=r;return}}function Gr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0;r=l;s=A[e>>2]|0;if(s){n=e+4|0;i=A[n>>2]|0;e:do{if((i|0)>0){o=0;while(1){a=s+(o*12|0)|0;c=A[a>>2]|0;if(c){A[s+(o*12|0)+4>>2]=0;On(c);A[a>>2]=0;A[s+(o*12|0)+8>>2]=0;i=A[n>>2]|0}o=o+1|0;if((o|0)>=(i|0))break e;s=A[e>>2]|0}}}while(0);A[n>>2]=0;if(t){On(A[e>>2]|0);A[e>>2]=0;A[e+8>>2]=0}}n=e+16|0;i=A[n>>2]|0;if((i|0)!=0?(A[e+20>>2]=0,t):0){On(i);A[n>>2]=0;A[e+24>>2]=0}i=e+32|0;n=A[i>>2]|0;if(!n){l=r;return}A[e+36>>2]=0;if(!t){l=r;return}On(n);A[i>>2]=0;A[e+40>>2]=0;l=r;return}function Hr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0;n=l;i=A[e>>2]|0;r=e+4|0;if(i){A[r>>2]=0;if(t){On(i);A[e>>2]=0;A[e+8>>2]=0;i=0}}else i=0;if((A[r>>2]|0)>=1){s=e+16|0;A[s>>2]=0;s=e+12|0;A[s>>2]=0;l=n;return}s=e+8|0;o=A[s>>2]|0;if((o|0)<1){a=2-o&-2;t=(o>>1)+2&-2;t=(a|0)>(t|0)?a:t;if((t|0)>(2147483647-o|0)){a=Qe(1)|0;ze(a|0,48,0)}a=t+o|0;A[s>>2]=a;i=Yn(i,a<<2)|0;A[e>>2]=i;if((i|0)==0?(A[(Ge()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}t=A[r>>2]|0;if((t|0)<1)while(1){o=i+(t<<2)|0;if(o)A[o>>2]=0;if(!t)break;else t=t+1|0}A[r>>2]=1;a=e+16|0;A[a>>2]=0;a=e+12|0;A[a>>2]=0;l=n;return}function Jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0;n=l;l=l+16|0;r=n;i=e+16|0;a=A[i>>2]|0;A[i>>2]=a+1;A[(A[e>>2]|0)+(a<<2)>>2]=t;a=A[i>>2]|0;t=e+4|0;s=A[t>>2]|0;if((a|0)==(s|0)){A[i>>2]=0;a=0}o=e+12|0;if((A[o>>2]|0)!=(a|0)){l=n;return}xr(r,(s*3|0)+1>>1);g=A[o>>2]|0;u=A[t>>2]|0;if((g|0)<(u|0)){a=A[e>>2]|0;c=A[r>>2]|0;u=0;while(1){s=u+1|0;A[c+(u<<2)>>2]=A[a+(g<<2)>>2];g=g+1|0;u=A[t>>2]|0;if((g|0)>=(u|0)){c=s;break}else u=s}}else c=0;s=A[e>>2]|0;if((A[i>>2]|0)>0){a=A[r>>2]|0;g=0;while(1){A[a+(c<<2)>>2]=A[s+(g<<2)>>2];g=g+1|0;if((g|0)>=(A[i>>2]|0))break;else c=c+1|0}u=A[t>>2]|0}A[o>>2]=0;A[i>>2]=u;if(!s)i=e+8|0;else{A[t>>2]=0;On(s);A[e>>2]=0;i=e+8|0;A[i>>2]=0}A[e>>2]=A[r>>2];g=r+4|0;A[t>>2]=A[g>>2];u=r+8|0;A[i>>2]=A[u>>2];A[r>>2]=0;A[g>>2]=0;A[u>>2]=0;l=n;return}function _r(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0;r=l;n=e+4|0;i=A[n>>2]|0;o=e+8|0;s=A[o>>2]|0;if((i|0)==(s|0)&(s|0)<(i+1|0)){s=(i>>1)+2&-2;s=(s|0)<2?2:s;if((s|0)>(2147483647-i|0)){s=Qe(1)|0;ze(s|0,48,0)}a=A[e>>2]|0;i=s+i|0;A[o>>2]=i;i=Yn(a,i<<2)|0;A[e>>2]=i;if((i|0)==0?(A[(Ge()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=A[e>>2]|0;a=A[n>>2]|0;A[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}A[n>>2]=A[t>>2];l=r;return}function qr(){var e=0,t=0;t=l;Te(3864)|0;e=cn(936)|0;Cr(e);l=t;return e|0}function zr(e){e=e|0;var t=0;t=l;if(!e){l=t;return}ji[A[(A[e>>2]|0)+4>>2]&31](e);l=t;return}function Wr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;r=cn(936)|0;Cr(r);A[964]=r;yr(r,1)|0;r=A[964]|0;n[t+0>>0]=n[3840]|0;mr(r,t,1)|0;l=e;return}function Vr(e){e=e|0;var t=0,r=0,i=0;t=l;l=l+16|0;r=t;if((A[962]|0)>=(e|0)){l=t;return}do{i=A[964]|0;n[r+0>>0]=n[3840]|0;mr(i,r,1)|0;i=(A[962]|0)+1|0;A[962]=i}while((i|0)<(e|0));l=t;return}function Xr(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0;o=l;l=l+32|0;s=o+16|0;r=o+4|0;a=o;A[r>>2]=0;i=r+4|0;A[i>>2]=0;t=r+8|0;A[t>>2]=0;c=A[e>>2]|0;if(c)do{g=(c|0)<0?0-c|0:c;if((A[962]|0)<(g|0))do{u=A[964]|0;n[s+0>>0]=n[3840]|0;mr(u,s,1)|0;u=(A[962]|0)+1|0;A[962]=u}while((u|0)<(g|0));A[a>>2]=g<<1|c>>>31;or(r,a);e=e+4|0;c=A[e>>2]|0}while((c|0)!=0);a=A[964]|0;s=a+628|0;on(r,s);s=wr(a,s)|0;a=A[r>>2]|0;if(!a){l=o;return s|0}A[i>>2]=0;On(a);A[r>>2]=0;A[t>>2]=0;l=o;return s|0}function Zr(){var e=0,t=0,r=0,i=0;t=l;l=l+16|0;e=t;r=A[964]|0;i=r+664|0;A[i+0>>2]=-1;A[i+4>>2]=-1;A[i+8>>2]=-1;A[i+12>>2]=-1;if(A[r+304>>2]|0)A[r+308>>2]=0;Br(e,r,1,0);l=t;return(n[e>>0]|0)==0|0}function $r(){return(A[(A[964]|0)+4>>2]|0)+1|0}function en(){return A[962]|0}function tn(e){e=e|0;var t=0,r=0,i=0,o=0,s=0,a=0;t=l;l=l+32|0;s=t+16|0;i=t+4|0;a=t;A[i>>2]=0;r=i+4|0;A[r>>2]=0;o=i+8|0;A[o>>2]=0;A[a>>2]=e<<1;or(i,a);e=A[964]|0;a=e+664|0;A[a+0>>2]=-1;A[a+4>>2]=-1;A[a+8>>2]=-1;A[a+12>>2]=-1;on(i,e+304|0);Br(s,e,1,0);e=(n[s>>0]|0)==0;s=A[i>>2]|0;if(!s){l=t;return e|0}A[r>>2]=0;On(s);A[i>>2]=0;A[o>>2]=0;l=t;return e|0}function rn(e){e=e|0;var t=0,r=0,n=0;t=l;l=l+16|0;n=t;r=A[964]|0;A[n>>2]=e<<1|1;e=r+628|0;if(A[e>>2]|0)A[r+632>>2]=0;or(e,n);wr(r,e)|0;l=t;return}function nn(){return A[(A[964]|0)+36>>2]|0}function An(){return A[(A[964]|0)+32>>2]|0}function on(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0;r=l;s=A[t>>2]|0;n=t+4|0;if(!s)a=A[n>>2]|0;else{A[n>>2]=0;a=0}n=e+4|0;i=A[n>>2]|0;o=t+4|0;if((a|0)<(i|0)){c=t+8|0;a=A[c>>2]|0;if((a|0)<(i|0)){u=i+1-a&-2;g=(a>>1)+2&-2;g=(u|0)>(g|0)?u:g;if((g|0)>(2147483647-a|0)){u=Qe(1)|0;ze(u|0,48,0)}u=g+a|0;A[c>>2]=u;s=Yn(s,u<<2)|0;A[t>>2]=s;if((s|0)==0?(A[(Ge()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}a=A[o>>2]|0;e:do{if((a|0)<(i|0))while(1){s=s+(a<<2)|0;if(s)A[s>>2]=0;a=a+1|0;if((a|0)==(i|0))break e;s=A[t>>2]|0}}while(0);A[o>>2]=i;i=A[n>>2]|0}if((i|0)<=0){l=r;return}t=A[t>>2]|0;e=A[e>>2]|0;i=0;do{A[t+(i<<2)>>2]=A[e+(i<<2)>>2];i=i+1|0}while((i|0)<(A[n>>2]|0));l=r;return}function sn(e,t){e=e|0;t=t|0;var r=0;r=l;l=l+16|0;A[r>>2]=t;t=A[I>>2]|0;we(t|0,e|0,r|0)|0;qe(10,t|0)|0;Xe()}function an(){var e=0,t=0;e=l;l=l+16|0;if(!(Ue(4064,3)|0)){t=xe(A[1014]|0)|0;l=e;return t|0}else sn(4072,e);return 0}function cn(e){e=e|0;var t=0,r=0;t=l;e=(e|0)==0?1:e;r=Tn(e)|0;if(r){l=t;return r|0}while(1){r=dn()|0;if(!r){e=4;break}Ji[r&3]();r=Tn(e)|0;if(r){e=5;break}}if((e|0)==4){r=Qe(4)|0;A[r>>2]=4248;ze(r|0,4296,12)}else if((e|0)==5){l=t;return r|0}return 0}function gn(e){e=e|0;var t=0;t=l;On(e);l=t;return}function ln(e){e=e|0;var t=0;t=l;gn(e);l=t;return}function un(e){e=e|0;return}function hn(e){e=e|0;return 4264}function pn(e){e=e|0;var t=0;t=l;l=l+16|0;Ji[e&3]();sn(4312,t)}function fn(){var e=0,t=0;t=an()|0;if(((t|0)!=0?(e=A[t>>2]|0,(e|0)!=0):0)?(t=e+48|0,(A[t>>2]&-256|0)==1126902528?(A[t+4>>2]|0)==1129074247:0):0)pn(A[e+12>>2]|0);t=A[968]|0;A[968]=t+0;pn(t)}function dn(){var e=0;e=A[1102]|0;A[1102]=e+0;return e|0}function Cn(e){e=e|0;return}function In(e){e=e|0;return}function En(e){e=e|0;return}function mn(e){e=e|0;return}function Bn(e){e=e|0;return}function yn(e){e=e|0;var t=0;t=l;gn(e);l=t;return}function wn(e){e=e|0;var t=0;t=l;gn(e);l=t;return}function Qn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,o=0,s=0;n=l;l=l+64|0;i=n;if((e|0)==(t|0)){s=1;l=n;return s|0}if(!t){s=0;l=n;return s|0}t=Sn(t,4504,4560,0)|0;if(!t){s=0;l=n;return s|0}s=i+0|0;o=s+56|0;do{A[s>>2]=0;s=s+4|0}while((s|0)<(o|0));A[i>>2]=t;A[i+8>>2]=e;A[i+12>>2]=-1;A[i+48>>2]=1;zi[A[(A[t>>2]|0)+28>>2]&3](t,i,A[r>>2]|0,1);if((A[i+24>>2]|0)!=1){s=0;l=n;return s|0}A[r>>2]=A[i+16>>2];s=1;l=n;return s|0}function vn(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var o=0,s=0;e=l;o=t+16|0;s=A[o>>2]|0;if(!s){A[o>>2]=r;A[t+24>>2]=i;A[t+36>>2]=1;l=e;return}if((s|0)!=(r|0)){s=t+36|0;A[s>>2]=(A[s>>2]|0)+1;A[t+24>>2]=2;n[t+54>>0]=1;l=e;return}r=t+24|0;if((A[r>>2]|0)!=2){l=e;return}A[r>>2]=i;l=e;return}function bn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((A[t+8>>2]|0)!=(e|0)){l=i;return}vn(0,t,r,n);l=i;return}function Dn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((e|0)==(A[t+8>>2]|0)){vn(0,t,r,n);l=i;return}else{e=A[e+8>>2]|0;zi[A[(A[e>>2]|0)+28>>2]&3](e,t,r,n);l=i;return}}function Sn(e,t,r,o){e=e|0;t=t|0;r=r|0;o=o|0;var s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0;s=l;l=l+64|0;a=s;c=A[e>>2]|0;g=e+(A[c+-8>>2]|0)|0;c=A[c+-4>>2]|0;A[a>>2]=r;A[a+4>>2]=e;A[a+8>>2]=t;A[a+12>>2]=o;h=a+16|0;p=a+20|0;t=a+24|0;u=a+28|0;o=a+32|0;e=a+40|0;f=(c|0)==(r|0);d=h+0|0;r=d+36|0;do{A[d>>2]=0;d=d+4|0}while((d|0)<(r|0));i[h+36>>1]=0;n[h+38>>0]=0;if(f){A[a+48>>2]=1;_i[A[(A[c>>2]|0)+20>>2]&3](c,a,g,g,1,0);d=(A[t>>2]|0)==1?g:0;l=s;return d|0}Yi[A[(A[c>>2]|0)+24>>2]&3](c,a,g,1,0);a=A[a+36>>2]|0;if(!a){d=(A[e>>2]|0)==1&(A[u>>2]|0)==1&(A[o>>2]|0)==1?A[p>>2]|0:0;l=s;return d|0}else if((a|0)==1){if((A[t>>2]|0)!=1?!((A[e>>2]|0)==0&(A[u>>2]|0)==1&(A[o>>2]|0)==1):0){d=0;l=s;return d|0}d=A[h>>2]|0;l=s;return d|0}else{d=0;l=s;return d|0}return 0}function kn(e,t,r,i,o){e=e|0;t=t|0;r=r|0;i=i|0;o=o|0;var s=0;e=l;n[t+53>>0]=1;if((A[t+4>>2]|0)!=(i|0)){l=e;return}n[t+52>>0]=1;i=t+16|0;s=A[i>>2]|0;if(!s){A[i>>2]=r;A[t+24>>2]=o;A[t+36>>2]=1;if(!((o|0)==1?(A[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}if((s|0)!=(r|0)){s=t+36|0;A[s>>2]=(A[s>>2]|0)+1;n[t+54>>0]=1;l=e;return}r=t+24|0;i=A[r>>2]|0;if((i|0)==2)A[r>>2]=o;else o=i;if(!((o|0)==1?(A[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}function Mn(e,t,r,i,o){e=e|0;t=t|0;r=r|0;i=i|0;o=o|0;var s=0,a=0,c=0,g=0,u=0;s=l;if((e|0)==(A[t+8>>2]|0)){if((A[t+4>>2]|0)!=(r|0)){l=s;return}a=t+28|0;if((A[a>>2]|0)==1){l=s;return}A[a>>2]=i;l=s;return}if((e|0)!=(A[t>>2]|0)){g=A[e+8>>2]|0;Yi[A[(A[g>>2]|0)+24>>2]&3](g,t,r,i,o);l=s;return}if((A[t+16>>2]|0)!=(r|0)?(c=t+20|0,(A[c>>2]|0)!=(r|0)):0){A[t+32>>2]=i;i=t+44|0;if((A[i>>2]|0)==4){l=s;return}g=t+52|0;n[g>>0]=0;u=t+53|0;n[u>>0]=0;e=A[e+8>>2]|0;_i[A[(A[e>>2]|0)+20>>2]&3](e,t,r,r,1,o);if(n[u>>0]|0){if(!(n[g>>0]|0)){e=1;a=13}}else{e=0;a=13}do{if((a|0)==13){A[c>>2]=r;u=t+40|0;A[u>>2]=(A[u>>2]|0)+1;if((A[t+36>>2]|0)==1?(A[t+24>>2]|0)==2:0){n[t+54>>0]=1;if(e)break}else a=16;if((a|0)==16?e:0)break;A[i>>2]=4;l=s;return}}while(0);A[i>>2]=3;l=s;return}if((i|0)!=1){l=s;return}A[t+32>>2]=1;l=s;return}function Nn(e,t,r,i,o){e=e|0;t=t|0;r=r|0;i=i|0;o=o|0;var s=0;o=l;if((A[t+8>>2]|0)==(e|0)){if((A[t+4>>2]|0)!=(r|0)){l=o;return}t=t+28|0;if((A[t>>2]|0)==1){l=o;return}A[t>>2]=i;l=o;return}if((A[t>>2]|0)!=(e|0)){l=o;return}if((A[t+16>>2]|0)!=(r|0)?(s=t+20|0,(A[s>>2]|0)!=(r|0)):0){A[t+32>>2]=i;A[s>>2]=r;e=t+40|0;A[e>>2]=(A[e>>2]|0)+1;if((A[t+36>>2]|0)==1?(A[t+24>>2]|0)==2:0)n[t+54>>0]=1;A[t+44>>2]=4;l=o;return}if((i|0)!=1){l=o;return}A[t+32>>2]=1;l=o;return}function Fn(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;var s=0;s=l;if((e|0)==(A[t+8>>2]|0)){kn(0,t,r,n,i);l=s;return}else{e=A[e+8>>2]|0;_i[A[(A[e>>2]|0)+20>>2]&3](e,t,r,n,i,o);l=s;return}}function Rn(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;o=l;if((A[t+8>>2]|0)!=(e|0)){l=o;return}kn(0,t,r,n,i);l=o;return}function Kn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;n=l;l=l+16|0;i=n;A[i>>2]=A[r>>2];e=Oi[A[(A[e>>2]|0)+16>>2]&1](e,t,i)|0;t=e&1;if(!e){l=n;return t|0}A[r>>2]=A[i>>2];l=n;return t|0}function Ln(e){e=e|0;var t=0;t=l;if(!e)e=0;else e=(Sn(e,4504,4672,0)|0)!=0;l=t;return e&1|0}function xn(){var e=0,t=0,r=0,n=0,i=0;e=l;l=l+16|0;t=e;e=e+12|0;r=an()|0;if(!r)sn(4040,t);r=A[r>>2]|0;if(!r)sn(4040,t);i=r+48|0;n=A[i>>2]|0;i=A[i+4>>2]|0;if(!((n&-256|0)==1126902528&(i|0)==1129074247)){A[t>>2]=A[970];sn(4e3,t)}if((n|0)==1126902529&(i|0)==1129074247)n=A[r+44>>2]|0;else n=r+80|0;A[e>>2]=n;i=A[r>>2]|0;r=A[i+4>>2]|0;if(Oi[A[(A[4432>>2]|0)+16>>2]&1](4432,i,e)|0){i=A[e>>2]|0;n=A[970]|0;i=Hi[A[(A[i>>2]|0)+8>>2]&1](i)|0;A[t>>2]=n;A[t+4>>2]=r;A[t+8>>2]=i;sn(3904,t)}else{A[t>>2]=A[970];A[t+4>>2]=r;sn(3952,t)}}function Pn(){var e=0;e=l;l=l+16|0;if(!(Ye(4056,20)|0)){l=e;return}else sn(4128,e)}function Un(e){e=e|0;var t=0;t=l;l=l+16|0;On(e);if(!(He(A[1014]|0,0)|0)){l=t;return}else sn(4184,t)}function Tn(e){e=e|0;var t=0,r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0,w=0,Q=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0,F=0,R=0;t=l;do{if(e>>>0<245){if(e>>>0<11)e=16;else e=e+11&-8;w=e>>>3;f=A[1206]|0;y=f>>>w;if(y&3){o=(y&1^1)+w|0;i=o<<1;r=4864+(i<<2)|0;i=4864+(i+2<<2)|0;s=A[i>>2]|0;a=s+8|0;n=A[a>>2]|0;do{if((r|0)!=(n|0)){if(n>>>0<(A[1210]|0)>>>0)Xe();c=n+12|0;if((A[c>>2]|0)==(s|0)){A[c>>2]=r;A[i>>2]=n;break}else Xe()}else A[1206]=f&~(1<>2]=R|3;R=s+(R|4)|0;A[R>>2]=A[R>>2]|1;R=a;l=t;return R|0}B=A[1208]|0;if(e>>>0>B>>>0){if(y){s=2<>>12&16;s=s>>>r;a=s>>>5&8;s=s>>>a;i=s>>>2&4;s=s>>>i;o=s>>>1&2;s=s>>>o;n=s>>>1&1;n=(a|r|i|o|n)+(s>>>n)|0;s=n<<1;o=4864+(s<<2)|0;s=4864+(s+2<<2)|0;i=A[s>>2]|0;r=i+8|0;a=A[r>>2]|0;do{if((o|0)!=(a|0)){if(a>>>0<(A[1210]|0)>>>0)Xe();c=a+12|0;if((A[c>>2]|0)==(i|0)){A[c>>2]=o;A[s>>2]=a;M=A[1208]|0;break}else Xe()}else{A[1206]=f&~(1<>2]=e|3;o=i+e|0;A[i+(e|4)>>2]=n|1;A[i+R>>2]=n;if(M){i=A[1211]|0;g=M>>>3;a=g<<1;s=4864+(a<<2)|0;c=A[1206]|0;g=1<>2]|0;if(c>>>0<(A[1210]|0)>>>0)Xe();else{k=a;S=c}}else{A[1206]=c|g;k=4864+(a+2<<2)|0;S=s}A[k>>2]=i;A[S+12>>2]=i;A[i+8>>2]=S;A[i+12>>2]=s}A[1208]=n;A[1211]=o;R=r;l=t;return R|0}f=A[1207]|0;if(f){r=(f&0-f)+-1|0;F=r>>>12&16;r=r>>>F;N=r>>>5&8;r=r>>>N;R=r>>>2&4;r=r>>>R;i=r>>>1&2;r=r>>>i;n=r>>>1&1;n=A[5128+((N|F|R|i|n)+(r>>>n)<<2)>>2]|0;r=(A[n+4>>2]&-8)-e|0;i=n;while(1){o=A[i+16>>2]|0;if(!o){o=A[i+20>>2]|0;if(!o)break}i=(A[o+4>>2]&-8)-e|0;R=i>>>0>>0;r=R?i:r;i=o;n=R?o:n}s=A[1210]|0;if(n>>>0>>0)Xe();i=n+e|0;if(n>>>0>=i>>>0)Xe();o=A[n+24>>2]|0;c=A[n+12>>2]|0;do{if((c|0)==(n|0)){c=n+20|0;a=A[c>>2]|0;if(!a){c=n+16|0;a=A[c>>2]|0;if(!a){D=0;break}}while(1){g=a+20|0;u=A[g>>2]|0;if(u){a=u;c=g;continue}g=a+16|0;u=A[g>>2]|0;if(!u)break;else{a=u;c=g}}if(c>>>0>>0)Xe();else{A[c>>2]=0;D=a;break}}else{a=A[n+8>>2]|0;if(a>>>0>>0)Xe();s=a+12|0;if((A[s>>2]|0)!=(n|0))Xe();g=c+8|0;if((A[g>>2]|0)==(n|0)){A[s>>2]=c;A[g>>2]=a;D=c;break}else Xe()}}while(0);do{if(o){a=A[n+28>>2]|0;s=5128+(a<<2)|0;if((n|0)==(A[s>>2]|0)){A[s>>2]=D;if(!D){A[1207]=A[1207]&~(1<>>0<(A[1210]|0)>>>0)Xe();s=o+16|0;if((A[s>>2]|0)==(n|0))A[s>>2]=D;else A[o+20>>2]=D;if(!D)break}s=A[1210]|0;if(D>>>0>>0)Xe();A[D+24>>2]=o;o=A[n+16>>2]|0;do{if(o)if(o>>>0>>0)Xe();else{A[D+16>>2]=o;A[o+24>>2]=D;break}}while(0);o=A[n+20>>2]|0;if(o)if(o>>>0<(A[1210]|0)>>>0)Xe();else{A[D+20>>2]=o;A[o+24>>2]=D;break}}}while(0);if(r>>>0<16){R=r+e|0;A[n+4>>2]=R|3;R=n+(R+4)|0;A[R>>2]=A[R>>2]|1}else{A[n+4>>2]=e|3;A[n+(e|4)>>2]=r|1;A[n+(r+e)>>2]=r;s=A[1208]|0;if(s){o=A[1211]|0;c=s>>>3;g=c<<1;s=4864+(g<<2)|0;a=A[1206]|0;c=1<>2]|0;if(c>>>0<(A[1210]|0)>>>0)Xe();else{b=a;v=c}}else{A[1206]=a|c;b=4864+(g+2<<2)|0;v=s}A[b>>2]=o;A[v+12>>2]=o;A[o+8>>2]=v;A[o+12>>2]=s}A[1208]=r;A[1211]=i}R=n+8|0;l=t;return R|0}}}else if(e>>>0<=4294967231){v=e+11|0;e=v&-8;D=A[1207]|0;if(D){b=0-e|0;v=v>>>8;if(v)if(e>>>0>16777215)S=31;else{F=(v+1048320|0)>>>16&8;R=v<>>16&4;R=R<>>16&2;S=14-(N|F|S)+(R<>>15)|0;S=e>>>(S+7|0)&1|S<<1}else S=0;k=A[5128+(S<<2)>>2]|0;e:do{if(!k){N=0;v=0}else{if((S|0)==31)v=0;else v=25-(S>>>1)|0;N=0;M=e<>2]&-8;R=F-e|0;if(R>>>0>>0)if((F|0)==(e|0)){b=R;N=k;v=k;break e}else{b=R;v=k}R=A[k+20>>2]|0;k=A[k+(M>>>31<<2)+16>>2]|0;N=(R|0)==0|(R|0)==(k|0)?N:R;if(!k)break;else M=M<<1}}}while(0);if((N|0)==0&(v|0)==0){R=2<>>12&16;R=R>>>k;S=R>>>5&8;R=R>>>S;M=R>>>2&4;R=R>>>M;F=R>>>1&2;R=R>>>F;N=R>>>1&1;N=A[5128+((S|k|M|F|N)+(R>>>N)<<2)>>2]|0}if(N)while(1){R=(A[N+4>>2]&-8)-e|0;D=R>>>0>>0;b=D?R:b;v=D?N:v;D=A[N+16>>2]|0;if(D){N=D;continue}N=A[N+20>>2]|0;if(!N)break}if((v|0)!=0?b>>>0<((A[1208]|0)-e|0)>>>0:0){i=A[1210]|0;if(v>>>0>>0)Xe();r=v+e|0;if(v>>>0>=r>>>0)Xe();n=A[v+24>>2]|0;o=A[v+12>>2]|0;do{if((o|0)==(v|0)){s=v+20|0;o=A[s>>2]|0;if(!o){s=v+16|0;o=A[s>>2]|0;if(!o){w=0;break}}while(1){a=o+20|0;c=A[a>>2]|0;if(c){o=c;s=a;continue}a=o+16|0;c=A[a>>2]|0;if(!c)break;else{o=c;s=a}}if(s>>>0>>0)Xe();else{A[s>>2]=0;w=o;break}}else{s=A[v+8>>2]|0;if(s>>>0>>0)Xe();a=s+12|0;if((A[a>>2]|0)!=(v|0))Xe();i=o+8|0;if((A[i>>2]|0)==(v|0)){A[a>>2]=o;A[i>>2]=s;w=o;break}else Xe()}}while(0);do{if(n){i=A[v+28>>2]|0;o=5128+(i<<2)|0;if((v|0)==(A[o>>2]|0)){A[o>>2]=w;if(!w){A[1207]=A[1207]&~(1<>>0<(A[1210]|0)>>>0)Xe();i=n+16|0;if((A[i>>2]|0)==(v|0))A[i>>2]=w;else A[n+20>>2]=w;if(!w)break}i=A[1210]|0;if(w>>>0>>0)Xe();A[w+24>>2]=n;n=A[v+16>>2]|0;do{if(n)if(n>>>0>>0)Xe();else{A[w+16>>2]=n;A[n+24>>2]=w;break}}while(0);n=A[v+20>>2]|0;if(n)if(n>>>0<(A[1210]|0)>>>0)Xe();else{A[w+20>>2]=n;A[n+24>>2]=w;break}}}while(0);e:do{if(b>>>0>=16){A[v+4>>2]=e|3;A[v+(e|4)>>2]=b|1;A[v+(b+e)>>2]=b;i=b>>>3;if(b>>>0<256){s=i<<1;n=4864+(s<<2)|0;o=A[1206]|0;i=1<>2]|0;if(o>>>0>=(A[1210]|0)>>>0){y=i;B=o;break}Xe()}}while(0);A[y>>2]=r;A[B+12>>2]=r;A[v+(e+8)>>2]=B;A[v+(e+12)>>2]=n;break}n=b>>>8;if(n)if(b>>>0>16777215)n=31;else{F=(n+1048320|0)>>>16&8;R=n<>>16&4;R=R<>>16&2;n=14-(N|F|n)+(R<>>15)|0;n=b>>>(n+7|0)&1|n<<1}else n=0;i=5128+(n<<2)|0;A[v+(e+28)>>2]=n;A[v+(e+20)>>2]=0;A[v+(e+16)>>2]=0;o=A[1207]|0;s=1<>2]=r;A[v+(e+24)>>2]=i;A[v+(e+12)>>2]=r;A[v+(e+8)>>2]=r;break}s=A[i>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((A[s+4>>2]&-8|0)!=(b|0)){n=b<>>31<<2)+16|0;i=A[o>>2]|0;if(!i)break;if((A[i+4>>2]&-8|0)==(b|0)){f=i;break t}else{n=n<<1;s=i}}if(o>>>0<(A[1210]|0)>>>0)Xe();else{A[o>>2]=r;A[v+(e+24)>>2]=s;A[v+(e+12)>>2]=r;A[v+(e+8)>>2]=r;break e}}else f=s}while(0);i=f+8|0;n=A[i>>2]|0;R=A[1210]|0;if(f>>>0>=R>>>0&n>>>0>=R>>>0){A[n+12>>2]=r;A[i>>2]=r;A[v+(e+8)>>2]=n;A[v+(e+12)>>2]=f;A[v+(e+24)>>2]=0;break}else Xe()}else{R=b+e|0;A[v+4>>2]=R|3;R=v+(R+4)|0;A[R>>2]=A[R>>2]|1}}while(0);R=v+8|0;l=t;return R|0}}}else e=-1}while(0);f=A[1208]|0;if(f>>>0>=e>>>0){n=f-e|0;r=A[1211]|0;if(n>>>0>15){A[1211]=r+e;A[1208]=n;A[r+(e+4)>>2]=n|1;A[r+f>>2]=n;A[r+4>>2]=e|3}else{A[1208]=0;A[1211]=0;A[r+4>>2]=f|3;R=r+(f+4)|0;A[R>>2]=A[R>>2]|1}R=r+8|0;l=t;return R|0}f=A[1209]|0;if(f>>>0>e>>>0){F=f-e|0;A[1209]=F;R=A[1212]|0;A[1212]=R+e;A[R+(e+4)>>2]=F|1;A[R+4>>2]=e|3;R=R+8|0;l=t;return R|0}do{if(!(A[1324]|0)){f=Le(30)|0;if(!(f+-1&f)){A[1326]=f;A[1325]=f;A[1327]=-1;A[1328]=-1;A[1329]=0;A[1317]=0;A[1324]=($e(0)|0)&-16^1431655768;break}else Xe()}}while(0);w=e+48|0;f=A[1326]|0;y=e+47|0;b=f+y|0;f=0-f|0;B=b&f;if(B>>>0<=e>>>0){R=0;l=t;return R|0}v=A[1316]|0;if((v|0)!=0?(F=A[1314]|0,R=F+B|0,R>>>0<=F>>>0|R>>>0>v>>>0):0){R=0;l=t;return R|0}e:do{if(!(A[1317]&4)){D=A[1212]|0;t:do{if(D){v=5272|0;while(1){S=A[v>>2]|0;if(S>>>0<=D>>>0?(Q=v+4|0,(S+(A[Q>>2]|0)|0)>>>0>D>>>0):0)break;v=A[v+8>>2]|0;if(!v){p=181;break t}}if(v){b=b-(A[1209]|0)&f;if(b>>>0<2147483647){f=ke(b|0)|0;if((f|0)==((A[v>>2]|0)+(A[Q>>2]|0)|0)){v=b;p=190}else{v=b;p=191}}else v=0}else p=181}else p=181}while(0);do{if((p|0)==181){Q=ke(0)|0;if((Q|0)!=(-1|0)){b=Q;v=A[1325]|0;f=v+-1|0;if(!(f&b))v=B;else v=B-b+(f+b&0-v)|0;f=A[1314]|0;b=f+v|0;if(v>>>0>e>>>0&v>>>0<2147483647){R=A[1316]|0;if((R|0)!=0?b>>>0<=f>>>0|b>>>0>R>>>0:0){v=0;break}f=ke(v|0)|0;if((f|0)==(Q|0)){f=Q;p=190}else p=191}else v=0}else v=0}}while(0);t:do{if((p|0)==190){if((f|0)!=(-1|0)){d=v;p=201;break e}}else if((p|0)==191){p=0-v|0;do{if((f|0)!=(-1|0)&v>>>0<2147483647&w>>>0>v>>>0?(m=A[1326]|0,m=y-v+m&0-m,m>>>0<2147483647):0)if((ke(m|0)|0)==(-1|0)){ke(p|0)|0;v=0;break t}else{v=m+v|0;break}}while(0);if((f|0)==(-1|0))v=0;else{d=v;p=201;break e}}}while(0);A[1317]=A[1317]|4;p=198}else{v=0;p=198}}while(0);if((((p|0)==198?B>>>0<2147483647:0)?(E=ke(B|0)|0,I=ke(0)|0,(E|0)!=(-1|0)&(I|0)!=(-1|0)&E>>>0>>0):0)?(C=I-E|0,d=C>>>0>(e+40|0)>>>0,d):0){f=E;d=d?C:v;p=201}if((p|0)==201){C=(A[1314]|0)+d|0;A[1314]=C;if(C>>>0>(A[1315]|0)>>>0)A[1315]=C;C=A[1212]|0;e:do{if(C){E=5272|0;while(1){I=A[E>>2]|0;B=E+4|0;y=A[B>>2]|0;if((f|0)==(I+y|0)){p=213;break}m=A[E+8>>2]|0;if(!m)break;else E=m}if(((p|0)==213?(A[E+12>>2]&8|0)==0:0)?C>>>0>=I>>>0&C>>>0>>0:0){A[B>>2]=y+d;r=(A[1209]|0)+d|0;n=C+8|0;if(!(n&7))n=0;else n=0-n&7;R=r-n|0;A[1212]=C+n;A[1209]=R;A[C+(n+4)>>2]=R|1;A[C+(r+4)>>2]=40;A[1213]=A[1328];break}I=A[1210]|0;if(f>>>0>>0){A[1210]=f;I=f}B=f+d|0;E=5272|0;while(1){if((A[E>>2]|0)==(B|0)){p=223;break}m=A[E+8>>2]|0;if(!m)break;else E=m}if((p|0)==223?(A[E+12>>2]&8|0)==0:0){A[E>>2]=f;s=E+4|0;A[s>>2]=(A[s>>2]|0)+d;s=f+8|0;if(!(s&7))s=0;else s=0-s&7;a=f+(d+8)|0;if(!(a&7))h=0;else h=0-a&7;p=f+(h+d)|0;c=s+e|0;a=f+c|0;u=p-(f+s)-e|0;A[f+(s+4)>>2]=e|3;t:do{if((p|0)!=(C|0)){if((p|0)==(A[1211]|0)){R=(A[1208]|0)+u|0;A[1208]=R;A[1211]=a;A[f+(c+4)>>2]=R|1;A[f+(R+c)>>2]=R;break}C=d+4|0;m=A[f+(C+h)>>2]|0;if((m&3|0)==1){e=m&-8;E=m>>>3;r:do{if(m>>>0>=256){g=A[f+((h|24)+d)>>2]|0;E=A[f+(d+12+h)>>2]|0;do{if((E|0)==(p|0)){B=h|16;m=f+(C+B)|0;E=A[m>>2]|0;if(!E){m=f+(B+d)|0;E=A[m>>2]|0;if(!E){o=0;break}}while(1){y=E+20|0;B=A[y>>2]|0;if(B){E=B;m=y;continue}y=E+16|0;B=A[y>>2]|0;if(!B)break;else{E=B;m=y}}if(m>>>0>>0)Xe();else{A[m>>2]=0;o=E;break}}else{m=A[f+((h|8)+d)>>2]|0;if(m>>>0>>0)Xe();B=m+12|0;if((A[B>>2]|0)!=(p|0))Xe();I=E+8|0;if((A[I>>2]|0)==(p|0)){A[B>>2]=E;A[I>>2]=m;o=E;break}else Xe()}}while(0);if(!g)break;I=A[f+(d+28+h)>>2]|0;E=5128+(I<<2)|0;do{if((p|0)!=(A[E>>2]|0)){if(g>>>0<(A[1210]|0)>>>0)Xe();I=g+16|0;if((A[I>>2]|0)==(p|0))A[I>>2]=o;else A[g+20>>2]=o;if(!o)break r}else{A[E>>2]=o;if(o)break;A[1207]=A[1207]&~(1<>>0

>>0)Xe();A[o+24>>2]=g;I=h|16;g=A[f+(I+d)>>2]|0;do{if(g)if(g>>>0

${readmeMessage}

`); - }); - }; - - test('should fetch server2 over uplink server1', () => { - return matchReadme(server, README_PKG1, README_MESSAGE); - }); - - test('should fetch package on local server1', () => { - return matchReadme(server2, README_PKG1, README_MESSAGE); - }); - - test('should fetch not found readme server2 over uplink server1', () => { - return matchReadme(server, README_PKG2, DEFAULT_NO_README); - }); - - test('should fetch found readme special case for npm6', () => { - return matchReadme(server, README_PKG3, DEFAULT_NO_README); - }); - - test('should fetch not found readme package on local server1', () => { - return matchReadme(server2, README_PKG2, DEFAULT_NO_README); - }); - }); - }); -} diff --git a/test/functional/sanity/incomplete.ts b/test/functional/sanity/incomplete.ts deleted file mode 100644 index d3c890e12..000000000 --- a/test/functional/sanity/incomplete.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { API_ERROR, HEADER_TYPE, HTTP_STATUS } from '../../../src/lib/constants'; -import { DOMAIN_SERVERS, PORT_SERVER_APP } from '../config.functional'; - -const defaultPkg = { - name: 'testexp-incomplete', - versions: { - '0.1.0': { - name: 'testexp_tags', - version: '0.1.0', - dist: { - shasum: 'fake', - tarball: `http://${DOMAIN_SERVERS}:${PORT_SERVER_APP}/testexp-incomplete/-/content-length.tar.gz` - } - }, - '0.1.1': { - name: 'testexp_tags', - version: '0.1.1', - dist: { - shasum: 'fake', - tarball: `http://${DOMAIN_SERVERS}:${PORT_SERVER_APP}/testexp-incomplete/-/chunked.tar.gz` - } - } - } -}; - -export default function (server, express) { - const listofCalls = [HEADER_TYPE.CONTENT_LENGTH, 'chunked']; - - describe('test send incomplete packages', () => { - beforeAll(function () { - express.get('/testexp-incomplete', function (_, res) { - res.send(defaultPkg); - }); - }); - - listofCalls.forEach((type) => { - test(`should not store tarballs / ${type}`, (callback) => { - let called; - express.get(`/testexp-incomplete/-/${type}.tar.gz`, function (_, response) { - if (called) { - return response.socket.destroy(); - } - - called = true; - if (type !== 'chunked') { - response.header(HEADER_TYPE.CONTENT_LENGTH, 1e6); - } - - response.write('test test test\n'); - - setTimeout(function () { - response.socket.write('200\nsss\n'); - response.socket.destroy(); - cb(); - }, 10); - }); - - server - .request({ uri: '/testexp-incomplete/-/' + type + '.tar.gz' }) - .status(HTTP_STATUS.OK) - .response(function (res) { - if (type !== 'chunked') { - expect(parseInt(res.headers[HEADER_TYPE.CONTENT_LENGTH], 10)).toBe(1e6); - } - }) - .then(function (body) { - expect(body).toMatch(/test test test/); - }); - - function cb() { - server - .request({ uri: '/testexp-incomplete/-/' + type + '.tar.gz' }) - .body_error(API_ERROR.INTERNAL_SERVER_ERROR) - .then(function () { - callback(); - }); - } - }); - }); - }); -} diff --git a/test/functional/sanity/mirror.ts b/test/functional/sanity/mirror.ts deleted file mode 100644 index f06d5f318..000000000 --- a/test/functional/sanity/mirror.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { readFile } from '../lib/test.utils'; -import { API_MESSAGE, HTTP_STATUS } from '../../../src/lib/constants'; -import generatePkg from '../fixtures/package'; -import { TARBALL } from '../config.functional'; - -const getBinary = () => readFile('../fixtures/binary'); - -export default function (server, server2) { - describe('anti-loop testing', () => { - test('testing anti-loop', () => { - return server2 - .getPackage('testloop') - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such package/); - }); - }); - - describe('mirror', () => { - const pkgList = ['pkg1', 'pkg2', 'pkg3']; - - pkgList.forEach(function (pkg) { - let prefix = pkg; - pkg = `test-mirror-${pkg}`; - - describe(`testing mirror for ${pkg}`, () => { - beforeAll(function () { - return server2 - .putPackage(pkg, generatePkg(pkg)) - .status(HTTP_STATUS.CREATED) - .body_ok(API_MESSAGE.PKG_CREATED); - }); - - test(prefix + 'creating new package', () => {}); - - describe(`${pkg}`, () => { - beforeAll(function () { - return server2 - .putVersion(pkg, '0.1.1', generatePkg(pkg)) - .status(HTTP_STATUS.CREATED) - .body_ok(/published/); - }); - - test(`should ${prefix} uploading new package version`, () => {}); - - test(`${prefix} uploading incomplete tarball`, () => { - return server2.putTarballIncomplete(pkg, pkg + '.bad', getBinary(), 3000); - }); - - describe('should put a tarball', () => { - beforeAll(function () { - return server2 - .putTarball(pkg, TARBALL, getBinary()) - .status(HTTP_STATUS.CREATED) - .body_ok(/.*/); - }); - - test(`should ${prefix} uploading new tarball`, () => {}); - - test(`should ${prefix} downloading tarball from server2`, () => { - return server2 - .getTarball(pkg, TARBALL) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body).toEqual(getBinary()); - }); - }); - - test('testing mirror server1', () => { - return server.getPackage(pkg).status(HTTP_STATUS.OK); - }); - - test(`should ${prefix} downloading tarball from server1`, () => { - return server - .getTarball(pkg, TARBALL) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body).toEqual(getBinary()); - }); - }); - }); - }); - }); - }); - }); -} diff --git a/test/functional/sanity/nullstorage.ts b/test/functional/sanity/nullstorage.ts deleted file mode 100644 index 8e510279a..000000000 --- a/test/functional/sanity/nullstorage.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { readFile } from '../lib/test.utils'; -import { createTarballHash } from '../../../src/lib/crypto-utils'; -import { API_ERROR, HTTP_STATUS } from '../../../src/lib/constants'; -import { DOMAIN_SERVERS, PORT_SERVER_1, TARBALL } from '../config.functional'; -import generatePkg from '../fixtures/package'; -import { DIST_TAGS } from '../../../src/lib/constants'; - -function getBinary() { - return readFile('../fixtures/binary'); -} - -export default function (server, server2) { - const PKG_NAME = 'test-nullstorage2'; - const PKG_VERSION = '0.0.1'; - // const TARBALL = `${PKG_NAME}-file.name`; - - describe('should test a scenario when tarball is being fetch from uplink', () => { - describe(`should check whether ${PKG_NAME} is on server1`, () => { - test('should fails on fetch non-existent package on server1', () => { - return server - .getPackage('test-nullstorage-nonexist') - .status(HTTP_STATUS.NOT_FOUND) - .body_error(API_ERROR.NO_PACKAGE); - }); - }); - - describe(`should check whether ${PKG_NAME} is on server2`, () => { - beforeAll(function () { - return server2.addPackage(PKG_NAME); - }); - - test('should create a new package on server2', () => { - /* test for before() */ - }); - - test('should fails on download a non existent tarball from server1', () => { - return server - .getTarball(PKG_NAME, TARBALL) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such file/); - }); - - describe(`should succesfully publish ${PKG_NAME} package on server2`, () => { - beforeAll(function () { - return server2 - .putTarball(PKG_NAME, TARBALL, getBinary()) - .status(HTTP_STATUS.CREATED) - .body_ok(/.*/); - }); - - beforeAll(function () { - let pkg = generatePkg(PKG_NAME); - pkg.dist.shasum = createTarballHash().update(getBinary()).digest('hex'); - return server2 - .putVersion(PKG_NAME, PKG_VERSION, pkg) - .status(HTTP_STATUS.CREATED) - .body_ok(/published/); - }); - - test(`should publish a new version for ${PKG_NAME} on server 2`, () => { - /* test for before() */ - }); - - test(`should fetch the newly created published tarball for ${PKG_NAME} from server1 on server2`, () => { - return server - .getTarball(PKG_NAME, TARBALL) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body).toEqual(getBinary()); - }); - }); - - test(`should fetch metadata for ${PKG_NAME} match from server1`, () => { - return server - .getPackage(PKG_NAME) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body.name).toBe(PKG_NAME); - expect(body.versions[PKG_VERSION].name).toBe(PKG_NAME); - expect(body.versions[PKG_VERSION].dist.tarball).toBe( - `http://${DOMAIN_SERVERS}:${PORT_SERVER_1}/${PKG_NAME}/-/${TARBALL}` - ); - expect(body[DIST_TAGS]).toEqual({ latest: PKG_VERSION }); - }); - }); - }); - }); - }); -} diff --git a/test/functional/sanity/racycrash.ts b/test/functional/sanity/racycrash.ts deleted file mode 100644 index 86a303bd3..000000000 --- a/test/functional/sanity/racycrash.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { DOMAIN_SERVERS, PORT_SERVER_APP } from '../config.functional'; -import { API_ERROR, HEADER_TYPE, HTTP_STATUS } from '../../../src/lib/constants'; - -export default function (server, express) { - describe('shoul test for unexpected client hangs', () => { - let handleResponseTarball; - - beforeAll(function () { - express.get('/testexp-racycrash', function (request, response) { - response.send({ - name: 'testexp-racycrash', - versions: { - '0.1.0': { - name: 'testexp_tags', - version: '0.1.0', - dist: { - shasum: 'fake', - tarball: `http://${DOMAIN_SERVERS}:${PORT_SERVER_APP}/testexp-racycrash/-/test.tar.gz` - } - } - } - }); - }); - - express.get('/testexp-racycrash/-/test.tar.gz', function (request, response) { - handleResponseTarball(response); - }); - }); - - test('should not crash on error if client disconnects', (callback) => { - handleResponseTarball = function (res) { - res.header(HEADER_TYPE.CONTENT_LENGTH, 1e6); - res.write('test test test'); - setTimeout(function () { - res.write('-'); - // destroy the connection - res.socket.destroy(); - cb(); - }, HTTP_STATUS.OK); - }; - - server.request({ uri: '/testexp-racycrash/-/test.tar.gz' }).then(function (body) { - expect(body).toEqual('test test test'); - }); - - function cb() { - // test for NOT crashing - server - .request({ uri: '/testexp-racycrash' }) - .status(HTTP_STATUS.OK) - .then(function () { - callback(); - }); - } - }); - - test('should not store tarball', () => { - handleResponseTarball = function (res) { - res.socket.destroy(); - }; - - return server - .request({ uri: '/testexp-racycrash/-/test.tar.gz' }) - .body_error(API_ERROR.INTERNAL_SERVER_ERROR); - }); - }); -} diff --git a/test/functional/sanity/security.ts b/test/functional/sanity/security.ts deleted file mode 100644 index 1caec5b09..000000000 --- a/test/functional/sanity/security.ts +++ /dev/null @@ -1,78 +0,0 @@ -import _ from 'lodash'; -import { HTTP_STATUS } from '../../../src/lib/constants'; - -export default function (server) { - describe('should test security on endpoints', () => { - beforeAll(function () { - return server.addPackage('testpkg-sec'); - }); - - test('should fails on fetch bad pkg #1', () => { - return server - .getPackage('__proto__') - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid package/); - }); - - test('should fails on fetch bad pkg #2', () => { - return server - .getPackage('__proto__') - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid package/); - }); - - test('should do not fails on __proto__, connect stuff', () => { - return server.request({ uri: '/testpkg-sec?__proto__=1' }).then(function (body) { - // test for NOT outputting stack trace - expect(_.isNil(body) || _.isObject(body) || body.indexOf('node_modules')).toBeTruthy(); - - // test for NOT crashing - return server.request({ uri: '/testpkg-sec' }).status(HTTP_STATUS.OK); - }); - }); - - test('should fails and do not return __proto__ as an attachment', () => { - return server - .request({ uri: '/testpkg-sec/-/__proto__' }) - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid filename/); - }); - - test('should fails on fetch silly things - reading #1', () => { - return server - .request({ uri: '/testpkg-sec/-/../../../../../../../../etc/passwd' }) - .status(HTTP_STATUS.NOT_FOUND); - }); - - test('should fails on fetch silly things - reading #2', () => { - return server - .request({ - uri: - '/testpkg-sec/-/%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswd' - }) - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid filename/); - }); - - test('should fails on fetch silly things - writing #1', () => { - return server - .putTarball('testpkg-sec', '__proto__', '{}') - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid filename/); - }); - - test('should fails on fetch silly things - writing #3', () => { - return server - .putTarball('testpkg-sec', 'node_modules', '{}') - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid filename/); - }); - - test('should fails on fetch silly things - writing #4', () => { - return server - .putTarball('testpkg-sec', '../testpkg.tgz', '{}') - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid filename/); - }); - }); -} diff --git a/test/functional/scenarios/gh29.ts b/test/functional/scenarios/gh29.ts deleted file mode 100644 index 49b5135b6..000000000 --- a/test/functional/scenarios/gh29.ts +++ /dev/null @@ -1,77 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { TARBALL } from '../config.functional'; -import { HTTP_STATUS } from '../../../src/lib/constants'; -import { createTarballHash } from '../../../src/lib/crypto-utils'; -import requirePackage from '../fixtures/package'; - -function readfile(filePath) { - const folder = path.join(__dirname, filePath); - - return fs.readFileSync(folder); -} - -const binary = '../fixtures/binary'; -const pkgName = 'testpkg-gh29'; - -export default function (server, server2) { - describe('pkg-gh29 #1', () => { - test('downloading non-existent tarball #1 / srv2', () => { - return server2 - .getTarball(pkgName, TARBALL) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such package/); - }); - }); - - describe('pkg-gh29 #2', () => { - beforeAll(function () { - return server - .putPackage(pkgName, requirePackage(pkgName)) - .status(HTTP_STATUS.CREATED) - .body_ok(/created new package/); - }); - - test('creating new package / srv1', () => {}); - - test('downloading non-existent tarball #2 / srv2', () => { - return server2 - .getTarball(pkgName, TARBALL) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such file available/); - }); - - describe('tarball', () => { - beforeAll(function () { - return server - .putTarball(pkgName, TARBALL, readfile(binary)) - .status(HTTP_STATUS.CREATED) - .body_ok(/.*/); - }); - - test('uploading new tarball / srv1', () => {}); - - describe('pkg version', () => { - beforeAll(function () { - const pkg = requirePackage(pkgName); - pkg.dist.shasum = createTarballHash().update(readfile(binary)).digest('hex'); - return server - .putVersion(pkgName, '0.0.1', pkg) - .status(HTTP_STATUS.CREATED) - .body_ok(/published/); - }); - - test('uploading new package version / srv1', () => {}); - - test('downloading newly created tarball / srv2', () => { - return server2 - .getTarball(pkgName, TARBALL) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body).toEqual(readfile(binary)); - }); - }); - }); - }); - }); -} diff --git a/test/functional/search/search.json b/test/functional/search/search.json deleted file mode 100644 index f121ed6af..000000000 --- a/test/functional/search/search.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "_id": "testpkg-search", - "name": "testpkg-search", - "description": "", - "dist-tags": { - "foo": "0.0.1", - "latest": "0.0.1" - }, - "versions": { - "0.0.1": { - "name": "testpkg-search", - "version": "0.0.1", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "" - }, - "author": "", - "license": "ISC", - "_id": "testpkg-search@0.0.1", - "dist": { - "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", - "tarball": "http:\/\/localhost:1234\/testpkg-search\/-\/testpkg-search-0.0.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.1", - "_npmUser": { - "name": "alex", - "email": "user@domain.com" - }, - "maintainers": [ - { - "name": "alex", - "email": "user@domain.com" - } - ] - } - }, - "readme": "blah blah blah", - "maintainers": [ - { - "name": "alex", - "email": "user@domain.com" - } - ], - "_attachments": { - "testpkg-search-0.0.1.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", - "length": 352 - } - } -} diff --git a/test/functional/search/simple.search.ts b/test/functional/search/simple.search.ts deleted file mode 100644 index 6544859aa..000000000 --- a/test/functional/search/simple.search.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { API_MESSAGE, HTTP_STATUS } from '../../../src/lib/constants'; -import pkgExample from './search.json'; - -export default function (server, server2, express) { - describe('should test search a published package', () => { - const PKG_NAME = 'testpkg-search'; - - beforeAll(function () { - return server - .putPackage(PKG_NAME, pkgExample) - .status(HTTP_STATUS.CREATED) - .body_ok(API_MESSAGE.PKG_CREATED); - }); - - describe('should test simple search', () => { - const check = (medatada) => { - medatada[PKG_NAME].time.modified = '2014-10-02T07:07:51.000Z'; - expect(medatada[PKG_NAME]).toEqual({ - name: PKG_NAME, - description: '', - author: '', - license: 'ISC', - 'dist-tags': { - latest: '0.0.1' - }, - maintainers: [ - { - name: 'alex', - email: 'user@domain.com' - } - ], - readmeFilename: '', - time: { - modified: '2014-10-02T07:07:51.000Z' - }, - versions: { - '0.0.1': 'latest' - }, - repository: { - type: 'git', - url: '' - } - }); - }; - - beforeAll(function () { - express.get('/-/all', (req, res) => { - res.send({}); - }); - }); - - test('server1 - search', () => { - return server.request({ uri: '/-/all' }).status(HTTP_STATUS.OK).then(check); - }); - - test('server2 - search', () => { - return server2.request({ uri: '/-/all' }).status(HTTP_STATUS.OK).then(check); - }); - }); - }); -} diff --git a/test/functional/store/config-1.yaml b/test/functional/store/config-1.yaml deleted file mode 100644 index 59bbe078e..000000000 --- a/test/functional/store/config-1.yaml +++ /dev/null @@ -1,134 +0,0 @@ -storage: ./test-storage - -max_users: 2 - -web: - enable: true - title: verdaccio-server-1 - -middlewares: - ../fixtures/plugins/middlewares.uplink: - message: provides uplink mocking (e.g. simulates socket timeout) - -auth: - auth-memory: - users: - test: - name: test - password: test - -uplinks: - express: - url: http://localhost:55550/ - timeout: 100ms - server2: - url: http://localhost:55552/ - maxage: 0 - server3: - url: http://localhost:55553/ - baduplink: - url: http://localhost:55666/ - -logs: - - { type: stdout, format: pretty, level: trace } - -packages: - '@test/*': - access: $all - publish: $all - proxy: server2 - - ## mirror.js - 'test-mirror-*': - access: $all - publish: $all - proxy: server2 - - ## mirror.js - 'testloop': - access: $all - publish: $all - proxy: server2 - - 'testexp': - access: $anonymous - - # used by tags.spec.js - 'testexp_tag*': - access: $all - publish: $all - proxy: express - - # used by gzip.spec.js - 'testexp_gzip': - access: $all - publish: $all - proxy: express - - # used by gh29.js - 'testpkg-gh29': - access: $all - publish: $all - proxy: express - - # used by preserve_tags_spec.js - 'testpkg-preserve': - access: $all - publish: $all - proxy: express - - # used by racycrash.js - 'testexp-racycrash': - access: $all - publish: $all - proxy: express - - # used by incomplete.js - 'testexp-incomplete': - access: $all - publish: $all - proxy: express - - 'test-nullstorage*': - access: $all - publish: $all - proxy: server2 - storage: sub_storage - - 'baduplink': - access: $all - publish: $all - proxy: baduplink - - 'test-access-only': - access: $all - publish: nobody - storage: sub_storage - - 'test-publish-only': - access: nobody - publish: $all - storage: sub_storage - - 'test-only-test': - access: test - publish: test - storage: sub_storage - - 'test-only-auth': - access: $authenticated - publish: $authenticated - storage: sub_storage - - 'test-uplink-timeout-*': - access: $all - proxy: - - server2 - - server3 - - '*': - access: test $anonymous - publish: test $anonymous - -# expose internal methods -_debug: true diff --git a/test/functional/store/config-2.yaml b/test/functional/store/config-2.yaml deleted file mode 100644 index b3fe57927..000000000 --- a/test/functional/store/config-2.yaml +++ /dev/null @@ -1,97 +0,0 @@ -storage: ./test-storage2 - -uplinks: - server1: - url: http://localhost:55551/ - maxage: 0 - -web: - enable: true - title: verdaccio-server-2 - -middlewares: - ../fixtures/plugins/middlewares: - message: this is a custom route - ../fixtures/plugins/middlewares.es6: - message: this is a custom route es6 - -max_users: 3 - -auth: - auth-memory: - users: - test: - name: test - password: test - authtest2: - name: authtest2 - password: blahblah-password - authtest: - name: authtest - password: blahblah-password - -logs: - - { type: stdout, format: pretty, level: trace } - -packages: - '@test/*': - access: $all - publish: $all - proxy: server1 - - 'test-fwd': - access: $all - publish: $all - - 'test-mirror-fwdw*': - access: $all - publish: $all - - 'testloop': - access: $all - publish: $all - proxy: server1 - - # used by gh29.js - 'testpkg-gh29': - access: test $anonymous - publish: test $anonymous - proxy: server1 - - # used by preserve_tags_spec.js - 'testpkg-preserve': - access: test $anonymous - publish: test $anonymous - proxy: server1 - - 'testpkg': - access: test $anonymous - publish: test $anonymous - proxy: server1 - - 'readme-*': - access: test $anonymous - publish: test $anonymous - proxy: server1 - - 'test-nullstorage*': - access: $all - publish: $all - - ## start test auth.js - 'test-auth-regular': - access: $authenticated - - 'test-auth-*': - access: authtest - - 'test-deny': - access: authtest2 - ## end test auth.js - - '*': - access: test $anonymous - publish: test $anonymous - -# expose internal methods -_debug: true diff --git a/test/functional/store/config-3.yaml b/test/functional/store/config-3.yaml deleted file mode 100644 index 1238933ed..000000000 --- a/test/functional/store/config-3.yaml +++ /dev/null @@ -1,46 +0,0 @@ -storage: ./test-storage3 - -web: - enable: true - title: verdaccio-server-3 - -uplinks: - server1: - url: http://localhost:55551/ - server2: - url: http://localhost:55552/ - cache: false - -auth: - auth-memory: - users: - test: - name: test - password: test - -logs: - - { type: stdout, format: pretty, level: trace } - -packages: - 'pkg-gh131': - access: $all - proxy: server1 - - 'testpkg-preserve': - access: test $anonymous - publish: test $anonymous - proxy: server1 - - 'pkg-gh1312': - access: $all - proxy: server2 - - 'test-uplink-timeout-*': - access: $all - publish: $all - - '*': - access: $all - -# expose internal methods -_debug: true diff --git a/test/functional/tags/addtag.ts b/test/functional/tags/addtag.ts deleted file mode 100644 index 4e7e108af..000000000 --- a/test/functional/tags/addtag.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { readFile } from '../lib/test.utils'; -import { API_ERROR, HTTP_STATUS, CHARACTER_ENCODING } from '../../../src/lib/constants'; - -const readTags = () => readFile('../fixtures/publish.json5'); - -export default function (server) { - describe('should test add tag', () => { - const PKG_NAME = 'testpkg-tag'; - const PKG_VERSION = '0.0.1'; - - test('should fails on add tag to non existing package', () => { - return server - .addTag(PKG_NAME, 'tagtagtag', PKG_VERSION) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(API_ERROR.NO_PACKAGE); - }); - - describe('should test add tag to a package', () => { - beforeAll(function () { - return server - .putPackage( - PKG_NAME, - JSON.parse( - readTags() - .toString(CHARACTER_ENCODING.UTF8) - .replace(/__NAME__/g, PKG_NAME) - .replace(/__VERSION__/g, PKG_VERSION) - ) - ) - .status(HTTP_STATUS.CREATED); - }); - - describe('should test valid formats tags', () => { - test('should fails on add a tag that do not exist', () => { - return server - .addTag(PKG_NAME, 'tagtagtag', '4.0.0-no-exist') - .status(HTTP_STATUS.NOT_FOUND) - .body_error(API_ERROR.VERSION_NOT_EXIST); - }); - - test('should add tag succesfully minor version', () => { - return server - .addTag(PKG_NAME, 'tagtagtag', PKG_VERSION) - .status(HTTP_STATUS.CREATED) - .body_ok(/tagged/); - }); - }); - - describe('should test handle invalid tag and version names', () => { - const INVALID_TAG = 'tag/tag/tag'; - const handleInvalidTag = function (tag, version) { - return server - .addTag(PKG_NAME, tag, version) - .status(HTTP_STATUS.FORBIDDEN) - .body_error(/invalid tag/); - }; - - test('should fails on add tag for bad format', () => { - return handleInvalidTag(INVALID_TAG, '0.0.1-x'); - }); - - test('should fails on add tag for bad format negative version', () => { - return handleInvalidTag(INVALID_TAG, '-0.0.1'); - }); - - test('should fails on add tag for bad format empty version', () => { - return handleInvalidTag(INVALID_TAG, ''); - }); - - test('should fails on add tag for bad format symbols', () => { - return handleInvalidTag(INVALID_TAG, '%^$%&$%^%$$#@'); - }); - }); - }); - }); -} diff --git a/test/functional/tags/dist-tags-merge.json b/test/functional/tags/dist-tags-merge.json deleted file mode 100644 index 88f403f8c..000000000 --- a/test/functional/tags/dist-tags-merge.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "_id": "testpkg-preserve", - "name": "testpkg-preserve", - "description": "", - "dist-tags": { - "foo": "0.0.1", - "latest": "0.0.1" - }, - "versions": { - "0.0.1": { - "name": "testpkg-preserve", - "version": "0.0.1", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "" - }, - "author": "", - "license": "ISC", - "_id": "testpkg-preserve@0.0.1", - "dist": { - "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", - "tarball": "http:\/\/localhost:1234\/testpkg-preserve\/-\/testpkg-preserve-0.0.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.1", - "_npmUser": { - "name": "alex", - "email": "user@domain.com" - }, - "maintainers": [ - { - "name": "alex", - "email": "user@domain.com" - } - ] - } - }, - "readme": "blah blah blah", - "maintainers": [ - { - "name": "alex", - "email": "user@domain.com" - } - ], - "_attachments": { - "testpkg-preserve-0.0.1.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", - "length": 352 - } - } -} diff --git a/test/functional/tags/dist-tags-merge.ts b/test/functional/tags/dist-tags-merge.ts deleted file mode 100644 index 4dacb3d06..000000000 --- a/test/functional/tags/dist-tags-merge.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { generateSha } from '../lib/test.utils'; -import { API_MESSAGE, HTTP_STATUS } from '../../../src/lib/constants'; -import { DOMAIN_SERVERS, PORT_SERVER_1, PORT_SERVER_2, PORT_SERVER_3 } from '../config.functional'; -import { DIST_TAGS } from '../../../src/lib/constants'; -import pkgExample from './dist-tags-merge.json'; - -export default function (server, server2, server3) { - describe('should test preserve tags when publishing something', () => { - const PKG_NAME = 'testpkg-preserve'; - const PKG_VERSION = '0.0.1'; - - beforeAll(function () { - return server - .putPackage(PKG_NAME, pkgExample) - .status(HTTP_STATUS.CREATED) - .body_ok(API_MESSAGE.PKG_CREATED); - }); - - describe('should check sha integrity', () => { - const matchTarBallSha = (server) => { - return server - .getTarball(PKG_NAME, `${PKG_NAME}-${PKG_VERSION}.tgz`) - .status(HTTP_STATUS.OK) - .then(function (body) { - // not real sha due to utf8 conversion - expect(generateSha(body)).toBe(pkgExample.versions[PKG_VERSION].dist.shasum); - }); - }; - - test('server1 should match with sha key from published package', () => - matchTarBallSha(server)); - test('server2 should match with sha key from published package', () => - matchTarBallSha(server2)); - }); - - describe('should match dist-tags', () => { - const matchDisTags = (verdaccioServer, port) => { - return verdaccioServer - .getPackage(PKG_NAME) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body.name).toBe(PKG_NAME); - expect(body.time).toBeDefined(); - expect(body.time[PKG_VERSION]).toBeDefined(); - expect(body.time).toBeDefined(); - expect(body.versions[PKG_VERSION].name).toBe(PKG_NAME); - expect(body.versions[PKG_VERSION].dist.tarball).toBe( - `http://${DOMAIN_SERVERS}:${port}/${PKG_NAME}/-/${PKG_NAME}-${PKG_VERSION}.tgz` - ); - expect(body[DIST_TAGS]).toEqual({ foo: PKG_VERSION, latest: PKG_VERSION }); - }); - }; - - test('server1 should be able to match latest dist-tags correctly', () => { - return matchDisTags(server, PORT_SERVER_1); - }); - - test('server2 should be able to match latest dist-tags correctly', () => { - return matchDisTags(server2, PORT_SERVER_2); - }); - - test('server3 should be able to match latest dist-tags correctly', () => { - return matchDisTags(server3, PORT_SERVER_3); - }); - }); - }); -} diff --git a/test/functional/tags/tags.ts b/test/functional/tags/tags.ts deleted file mode 100644 index 01c17c2ba..000000000 --- a/test/functional/tags/tags.ts +++ /dev/null @@ -1,197 +0,0 @@ -import _ from 'lodash'; -import { readFile } from '../lib/test.utils'; -import { HTTP_STATUS } from '../../../src/lib/constants'; - -const readTags = () => readFile('../fixtures/tags.json'); - -export default function (server, express) { - test('tags - testing for 404', () => { - return ( - server - .getPackage('testexp_tags') - // shouldn't exist yet - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such package/) - ); - }); - - describe('tags', () => { - beforeAll(function () { - express.get('/testexp_tags', function (req, res) { - let f = readTags() - .toString() - .replace(/__NAME__/g, 'testexp_tags'); - res.send(JSON.parse(f)); - }); - }); - - test('fetching package again', () => { - return server - .getPackage('testexp_tags') - .status(200) - .then(function (body) { - expect(_.isObject(body.versions['1.1.0'])).toBe(true); - // note: 5.4.3 is invalid tag, 0.1.3alpha is highest semver - expect(body['dist-tags'].latest).toEqual('1.1.0'); - expect(body['dist-tags'].bad).toEqual(undefined); - }); - }); - - const versions = ['0.1.1alpha', '0.1.1-alpha', '0000.00001.001-alpha']; - - versions.forEach(function (ver) { - test('fetching ' + ver, () => { - return server - .request({ uri: '/testexp_tags/' + ver }) - .status(200) - .then(function (body) { - expect(body.version).toEqual('0.1.1alpha'); - }); - }); - }); - }); - - describe('dist-tags methods', () => { - beforeAll(function () { - express.get('/testexp_tags2', function (req, res) { - let f = readTags() - .toString() - .replace(/__NAME__/g, 'testexp_tags2'); - res.send(JSON.parse(f)); - }); - }); - - // populate cache - beforeAll(function () { - return server.getPackage('testexp_tags2').status(200); - }); - - test('fetching tags', () => { - return server - .request({ - method: 'GET', - uri: '/-/package/testexp_tags2/dist-tags' - }) - .status(200) - .then(function (body) { - const expected = { - latest: '1.1.0' - }; - - expect(body).toEqual(expected); - }); - }); - - test('merging tags', () => { - return server - .request({ - method: 'POST', - uri: '/-/package/testexp_tags2/dist-tags', - json: { - foo: '0.1.2', - quux: '0.1.0' - } - }) - .status(201) - .body_ok(/updated/) - .then(function () { - return server - .request({ - method: 'GET', - uri: '/-/package/testexp_tags2/dist-tags' - }) - .status(200) - .then(function (body) { - const expected = { - latest: '1.1.0', - foo: '0.1.2', - quux: '0.1.0' - }; - - expect(body).toEqual(expected); - }); - }); - }); - - test('should add a dist-tag called foo', () => { - return server - .request({ - method: 'PUT', - uri: '/-/package/testexp_tags2/dist-tags/foo', - json: '0.1.3alpha' - }) - .status(201) - .body_ok(/tagged/) - .then(function () { - return server - .request({ - method: 'GET', - uri: '/-/package/testexp_tags2/dist-tags' - }) - .status(200) - .then(function (body) { - const expected = { - foo: '0.1.3alpha', - quux: '0.1.0', - latest: '1.1.0' - }; - - expect(body).toEqual(expected); - }); - }); - }); - - test('should remove a dis-tag called quux', () => { - return server - .request({ - method: 'DELETE', - uri: '/-/package/testexp_tags2/dist-tags/latest' - }) - .status(201) - .body_ok(/removed/) - .then(function () { - return server - .request({ - method: 'GET', - uri: '/-/package/testexp_tags2/dist-tags' - }) - .status(200) - .then(function (body) { - const expected = { - latest: '1.1.0', - quux: '0.1.0', - foo: '0.1.3alpha' - }; - - expect(body).toEqual(expected); - }); - }); - }); - - test('should remove a dis-tag called foo', () => { - return server - .request({ - method: 'DELETE', - uri: '/-/package/testexp_tags2/dist-tags/foo' - }) - .status(201) - .body_ok(/removed/) - .then(function () { - return server - .request({ - method: 'GET', - uri: '/-/package/testexp_tags2/dist-tags' - }) - .status(200) - .then(function (body) { - const expected = { - latest: '1.1.0', - quux: '0.1.0' - }; - - expect(body).toEqual(expected); - }); - }); - }); - }); -} diff --git a/test/functional/teardown.js b/test/functional/teardown.js deleted file mode 100644 index e5392aeea..000000000 --- a/test/functional/teardown.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = async function() { - // console.log(green('Teardown Verdaccio Functional')); - // console.log(blue('Teardown:: all server were closed')); -}; diff --git a/test/functional/test-environment.js b/test/functional/test-environment.js deleted file mode 100644 index 4f37edfd8..000000000 --- a/test/functional/test-environment.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ - -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -module.exports = require('./lib/environment'); diff --git a/test/functional/uplinks/cache.ts b/test/functional/uplinks/cache.ts deleted file mode 100644 index f65d373db..000000000 --- a/test/functional/uplinks/cache.ts +++ /dev/null @@ -1,94 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import crypto from 'crypto'; -import { readFile } from '../lib/test.utils'; -import { HTTP_STATUS } from '../../../src/lib/constants'; -import { TARBALL } from '../config.functional'; -import { createTarballHash } from '../../../src/lib/crypto-utils'; -import requirePackage from '../fixtures/package'; - -function getBinary() { - return readFile('../fixtures/binary'); -} - -const STORAGE = '../store/test-storage3'; -const PKG_GH131 = 'pkg-gh131'; -const PKG_GH1312 = 'pkg-gh1312'; - -function isCached(pkgName, tarballName) { - const pathCached = path.join(__dirname, STORAGE, pkgName, tarballName); - console.log('isCached =>', pathCached); - - return fs.existsSync(pathCached); -} - -export default function (server, server2, server3) { - describe('storage tarball cache test', () => { - // more info #131 - beforeAll(function () { - return server.addPackage(PKG_GH131); - }); - - beforeAll(function () { - return server - .putTarball(PKG_GH131, TARBALL, getBinary()) - .status(HTTP_STATUS.CREATED) - .body_ok(/.*/); - }); - - beforeAll(function () { - const pkg = requirePackage(PKG_GH131); - pkg.dist.shasum = crypto.createHash('sha1').update(getBinary()).digest('hex'); - - return server - .putVersion(PKG_GH131, '0.0.1', pkg) - .status(HTTP_STATUS.CREATED) - .body_ok(/published/); - }); - - beforeAll(function () { - return server3.getPackage(PKG_GH131).status(HTTP_STATUS.OK); - }); - - beforeAll(function () { - return server3.getTarball(PKG_GH131, TARBALL).status(HTTP_STATUS.OK); - }); - - test('should be caching packages from uplink server1', () => { - expect(isCached(PKG_GH131, TARBALL)).toEqual(true); - }); - - beforeAll(function () { - return server2.addPackage(PKG_GH1312); - }); - - beforeAll(function () { - return server2 - .putTarball(PKG_GH1312, TARBALL, getBinary()) - .status(HTTP_STATUS.CREATED) - .body_ok(/.*/); - }); - - beforeAll(function () { - const pkg = requirePackage(PKG_GH1312); - pkg.dist.shasum = createTarballHash().update(getBinary()).digest('hex'); - - return server2 - .putVersion(PKG_GH1312, '0.0.1', pkg) - .status(HTTP_STATUS.CREATED) - .body_ok(/published/); - }); - - beforeAll(function () { - return server3.getPackage(PKG_GH1312).status(HTTP_STATUS.OK); - }); - - beforeAll(function () { - return server3.getTarball(PKG_GH1312, TARBALL).status(HTTP_STATUS.OK); - }); - - test('must not be caching packages from uplink server2', () => { - expect(isCached(PKG_GH1312, TARBALL)).toEqual(false); - }); - }); -} diff --git a/test/functional/uplinks/timeout.ts b/test/functional/uplinks/timeout.ts deleted file mode 100644 index c894d9f80..000000000 --- a/test/functional/uplinks/timeout.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { HTTP_STATUS } from '../../../src/lib/constants'; - -const PKG_SINGLE_UPLINK = 'test-uplink-timeout-single'; -const PKG_MULTIPLE_UPLINKS = 'test-uplink-timeout-multiple'; - -export default function (server, server2, server3) { - describe('uplink connection timeouts', () => { - // more info: https://github.com/verdaccio/verdaccio/pull/1331 - - jest.setTimeout(20000); - beforeAll(async () => { - await server2.addPackage(PKG_SINGLE_UPLINK).status(HTTP_STATUS.CREATED); - await server2.addPackage(PKG_MULTIPLE_UPLINKS).status(HTTP_STATUS.CREATED); - await server3.addPackage(PKG_MULTIPLE_UPLINKS).status(HTTP_STATUS.CREATED); - }); - - describe('get package', () => { - test('503 response when uplink connection ESOCKETTIMEDOUT', () => { - return server.getPackage(PKG_SINGLE_UPLINK).status(HTTP_STATUS.SERVICE_UNAVAILABLE); - }); - - test('200 response even though one uplink timeout', () => { - return server.getPackage(PKG_MULTIPLE_UPLINKS).status(HTTP_STATUS.OK); - }); - }); - }); -} diff --git a/test/jest.config.e2e.js b/test/jest.config.e2e.js deleted file mode 100644 index c64b29ebe..000000000 --- a/test/jest.config.e2e.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint comma-dangle: 0 */ - -module.exports = { - name: 'verdaccio-e2e-jest', - verbose: true, - collectCoverage: false, - globalSetup: './e2e/pre-setup.js', - globalTeardown: './e2e/teardown.js', - testEnvironment: './e2e/puppeteer_environment.js', - testRegex: '(/e2e.*\\.spec)\\.js', - modulePathIgnorePatterns: [ - '/unit/partials/mock-store/.*/package.json', - '/functional/store/.*/package.json', - '/unit/partials/store/.*/package.json', - '/../coverage', - '/../docs', - '/../debug', - '/../scripts', - '/../.circleci', - '/../tools', - '/../wiki', - '/../systemd', - '/../flow-typed', - 'unit/partials/mock-store/.*/package.json', - 'functional/store/.*/package.json', - '/../build', - '/../.vscode/', - ] -}; diff --git a/test/jest.config.functional.js b/test/jest.config.functional.js deleted file mode 100644 index cf896b04a..000000000 --- a/test/jest.config.functional.js +++ /dev/null @@ -1,31 +0,0 @@ -/* eslint comma-dangle: 0 */ - -module.exports = { - name: 'verdaccio-functional-jest', - verbose: true, - moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], - globalSetup: './functional/pre-setup.js', - globalTeardown: './functional/teardown.js', - testEnvironment: './functional/test-environment.js', - // Some unit tests rely on data folders that look like packages. This confuses jest-hast-map - // when it tries to scan for package.json files. - modulePathIgnorePatterns: [ - '/unit/partials/mock-store/.*/package.json', - '/functional/store/.*/package.json', - '/unit/partials/store/.*/package.json', - '/../coverage', - '/../docs', - '/../debug', - '/../scripts', - '/../.circleci', - '/../tools', - '/../wiki', - '/../systemd', - '/../flow-typed', - 'unit/partials/mock-store/.*/package.json', - 'functional/store/.*/package.json', - '/../build', - '/../.vscode/', - ], - collectCoverage: false -}; diff --git a/test/lib/helper/register.js b/test/lib/helper/register.js deleted file mode 100644 index 0c0f6e597..000000000 --- a/test/lib/helper/register.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ - -require('@babel/register')({ - sourceMap: 'inline', -}); -require('../../../src/lib/cli'); diff --git a/test/lib/helper/verdaccio-test b/test/lib/helper/verdaccio-test deleted file mode 100755 index 93f7060a7..000000000 --- a/test/lib/helper/verdaccio-test +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -require('../../../src/lib/cli'); diff --git a/test/lib/request.ts b/test/lib/request.ts deleted file mode 100644 index 6340f68d4..000000000 --- a/test/lib/request.ts +++ /dev/null @@ -1,128 +0,0 @@ -import _ from 'lodash'; -import assert from 'assert'; -import request from 'request'; -import { IRequestPromise } from '../types'; - -const requestData = Symbol('smart_request_data'); - -export class PromiseAssert extends Promise implements IRequestPromise { - public constructor(options: any) { - super(options); - } - - public status(expected: number) { - const selfData = this[requestData]; - - return injectResponse( - this, - this.then(function (body) { - try { - assert.equal(selfData.response.statusCode, expected); - } catch (err) { - selfData.error.message = err.message; - throw selfData.error; - } - return body; - }) - ); - } - - public body_ok(expected: any) { - const selfData = this[requestData]; - - return injectResponse( - this, - this.then(function (body) { - try { - if (_.isRegExp(expected)) { - assert(body.ok.match(expected), "'" + body.ok + "' doesn't match " + expected); - } else { - assert.equal(body.ok, expected); - } - assert.equal(body.error, null); - } catch (err) { - selfData.error.message = err.message; - throw selfData.error; - } - - return body; - }) - ); - } - - public body_error(expected: any) { - // $FlowFixMe - const selfData = this[requestData]; - - return injectResponse( - this, - this.then(function (body) { - try { - if (_.isRegExp(expected)) { - assert(body.error.match(expected), body.error + " doesn't match " + expected); - } else { - assert.equal(body.error, expected); - } - assert.equal(body.ok, null); - } catch (err) { - selfData.error.message = err.message; - throw selfData.error; - } - return body; - }) - ); - } - - public request(callback: any) { - callback(this[requestData].request); - return this; - } - - public response(cb: any) { - const selfData = this[requestData]; - - return injectResponse( - this, - this.then(function (body) { - cb(selfData.response); - return body; - }) - ); - } - - public send(data: any) { - this[requestData].request.end(data); - return this; - } -} - -function injectResponse(smartObject: any, promise: Promise): Promise { - // $FlowFixMe - promise[requestData] = smartObject[requestData]; - return promise; -} - -function smartRequest(options: any): Promise { - const smartObject: any = {}; - - smartObject[requestData] = {}; - smartObject[requestData].error = Error(); - Error.captureStackTrace(smartObject[requestData].error, smartRequest); - - const promiseResult: Promise = new PromiseAssert(function (resolve, reject) { - // store request reference on symbol - smartObject[requestData].request = request(options, function (err, res, body) { - if (err) { - return reject(err); - } - - // store the response on symbol - smartObject[requestData].response = res; - resolve(body); - }); - }); - - return injectResponse(smartObject, promiseResult); -} - -export default smartRequest; diff --git a/test/lib/server.ts b/test/lib/server.ts deleted file mode 100644 index 233810820..000000000 --- a/test/lib/server.ts +++ /dev/null @@ -1,223 +0,0 @@ -import _ from 'lodash'; -import assert from 'assert'; -import smartRequest from './request'; -import { IServerBridge } from '../types'; -import { API_MESSAGE, HEADERS, HTTP_STATUS, TOKEN_BASIC } from '../../src/lib/constants'; -import { buildToken } from '../../src/lib/utils'; -import { CREDENTIALS } from '../functional/config.functional'; -import getPackage from '../functional/fixtures/package'; - -const buildAuthHeader = (user, pass): string => { - return buildToken(TOKEN_BASIC, Buffer.from(`${user}:${pass}`).toString('base64')); -}; - -export default class Server implements IServerBridge { - public url: string; - public userAgent: string; - public authstr: string; - - public constructor(url: string) { - this.url = url.replace(/\/$/, ''); - this.userAgent = 'node/v8.1.2 linux x64'; - this.authstr = buildAuthHeader(CREDENTIALS.user, CREDENTIALS.password); - } - - public request(options: any): any { - assert(options.uri); - const headers = options.headers || {}; - - headers.accept = headers.accept || HEADERS.JSON; - headers['user-agent'] = headers['user-agent'] || this.userAgent; - headers.authorization = headers.authorization || this.authstr; - - return smartRequest({ - url: this.url + options.uri, - method: options.method || 'GET', - headers: headers, - encoding: options.encoding, - json: _.isNil(options.json) === false ? options.json : true - }); - } - - public auth(name: string, password: string) { - this.authstr = buildAuthHeader(name, password); - return this.request({ - uri: `/-/user/org.couchdb.user:${encodeURIComponent(name)}/-rev/undefined`, - method: 'PUT', - json: { - name, - password, - email: `${CREDENTIALS.user}@example.com`, - _id: `org.couchdb.user:${name}`, - type: 'user', - roles: [], - date: new Date() - } - }); - } - - public logout(token: string) { - return this.request({ - uri: `/-/user/token/${encodeURIComponent(token)}`, - method: 'DELETE' - }); - } - - public getPackage(name: string) { - return this.request({ - uri: `/${encodeURIComponent(name)}`, - method: 'GET' - }); - } - - public putPackage(name: string, data) { - if (_.isObject(data) && !Buffer.isBuffer(data)) { - data = JSON.stringify(data); - } - - return this.request({ - uri: `/${encodeURIComponent(name)}`, - method: 'PUT', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.JSON - } - }).send(data); - } - - public putVersion(name: string, version: string, data: any) { - if (_.isObject(data) && !Buffer.isBuffer(data)) { - data = JSON.stringify(data); - } - - return this.request({ - uri: `/${encodeURIComponent(name)}/${encodeURIComponent(version)}/-tag/latest`, - method: 'PUT', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.JSON - } - }).send(data); - } - - public getTarball(name: string, filename: string) { - return this.request({ - uri: `/${encodeURIComponent(name)}/-/${encodeURIComponent(filename)}`, - method: 'GET', - encoding: null - }); - } - - public putTarball(name: string, filename: string, data: any) { - return this.request({ - uri: `/${encodeURIComponent(name)}/-/${encodeURIComponent(filename)}/whatever`, - method: 'PUT', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.OCTET_STREAM - } - }).send(data); - } - - public removeTarball(name: string) { - return this.request({ - uri: `/${encodeURIComponent(name)}/-rev/whatever`, - method: 'DELETE', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.JSON_CHARSET - } - }); - } - - public removeSingleTarball(name: string, filename: string) { - return this.request({ - uri: `/${encodeURIComponent(name)}/-/${filename}/-rev/whatever`, - method: 'DELETE', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.JSON_CHARSET - } - }); - } - - public addTag(name: string, tag: string, version: string) { - return this.request({ - uri: `/${encodeURIComponent(name)}/${encodeURIComponent(tag)}`, - method: 'PUT', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.JSON - } - }).send(JSON.stringify(version)); - } - - public putTarballIncomplete( - pkgName: string, - filename: string, - data: any, - headerContentSize: number - ): Promise { - let promise = this.request({ - uri: `/${encodeURIComponent(pkgName)}/-/${encodeURIComponent(filename)}/whatever`, - method: 'PUT', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.OCTET_STREAM, - [HEADERS.CONTENT_LENGTH]: headerContentSize - }, - timeout: 1000 - }); - - promise.request(function (req) { - req.write(data); - // it auto abort the request - setTimeout(function () { - req.req.abort(); - }, 20); - }); - - return new Promise(function (resolve, reject) { - promise - .then(function () { - reject(Error('no error')); - }) - .catch(function (err) { - if (err.code === 'ECONNRESET') { - resolve(); - } else { - reject(err); - } - }); - }); - } - - public addPackage(name: string) { - return this.putPackage(name, getPackage(name)) - .status(HTTP_STATUS.CREATED) - .body_ok(API_MESSAGE.PKG_CREATED); - } - - public whoami() { - return this.request({ - uri: '/-/whoami' - }) - .status(HTTP_STATUS.OK) - .then(function (body) { - return body.username; - }); - } - - public ping() { - return this.request({ - uri: '/-/ping' - }) - .status(HTTP_STATUS.OK) - .then(function (body) { - return body; - }); - } - - public debug() { - return this.request({ - uri: '/-/_debug', - method: 'GET', - headers: { - [HEADERS.CONTENT_TYPE]: HEADERS.JSON - } - }); - } -} diff --git a/test/lib/server_process.ts b/test/lib/server_process.ts deleted file mode 100644 index c064085b7..000000000 --- a/test/lib/server_process.ts +++ /dev/null @@ -1,93 +0,0 @@ -import _ from 'lodash'; -import rimRaf from 'rimraf'; -import path from 'path'; -import { fork } from 'child_process'; -import { CREDENTIALS } from '../functional/config.functional'; -import { HTTP_STATUS } from '../../src/lib/constants'; -import { IVerdaccioConfig, IServerBridge, IServerProcess } from '../types'; - -export default class VerdaccioProcess implements IServerProcess { - private bridge: IServerBridge; - private config: IVerdaccioConfig; - private childFork: any; - private isDebug: boolean; - private silence: boolean; - private cleanStore: boolean; - - public constructor( - config: IVerdaccioConfig, - bridge: IServerBridge, - silence = true, - isDebug = false, - cleanStore = true - ) { - this.config = config; - this.bridge = bridge; - this.silence = silence; - this.isDebug = isDebug; - this.cleanStore = cleanStore; - } - - public init(verdaccioPath = '../../bin/verdaccio'): Promise { - return new Promise((resolve, reject) => { - if (this.cleanStore) { - rimRaf(this.config.storagePath, (err) => { - if (_.isNil(err) === false) { - reject(err); - } - - this._start(verdaccioPath, resolve, reject); - }); - } else { - this._start(verdaccioPath, resolve, reject); - } - }); - } - - private _start(verdaccioPath: string, resolve: Function, reject: Function) { - const verdaccioRegisterWrap: string = path.join(__dirname, verdaccioPath); - let childOptions = { - silent: true - }; - - if (this.isDebug) { - // @ts-ignore - const debugPort = parseInt(this.config.port, 10) + 5; - - childOptions = Object.assign({}, childOptions, { - execArgv: [`--inspect=${debugPort}`] - }); - } - - const { configPath, port } = this.config; - this.childFork = fork( - verdaccioRegisterWrap, - ['-c', configPath, '-l', port as string], - childOptions - ); - - this.childFork.on('message', (msg) => { - // verdaccio_started is a message that comes from verdaccio in debug mode that notify has been started - if ('verdaccio_started' in msg) { - this.bridge - .debug() - .status(HTTP_STATUS.OK) - .then((body) => { - this.bridge - .auth(CREDENTIALS.user, CREDENTIALS.password) - .status(HTTP_STATUS.CREATED) - .body_ok(new RegExp(CREDENTIALS.user)) - .then(() => resolve([this, body.pid]), reject); - }, reject); - } - }); - - this.childFork.on('error', (err) => reject([err, this])); - this.childFork.on('disconnect', (err) => reject([err, this])); - this.childFork.on('exit', (err) => reject([err, this])); - } - - public stop(): void { - return this.childFork.kill('SIGINT'); - } -} diff --git a/test/lib/utils-test.ts b/test/lib/utils-test.ts deleted file mode 100644 index 831da540d..000000000 --- a/test/lib/utils-test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Version } from '@verdaccio/types'; - -export function generateNewVersion( - pkgName: string, - version: string, - shashum = '238e7641e59508dc9c20eb4ad37a8aa57ab777b4' -): Version { - // $FlowFixMe - return { - name: pkgName, - version: version, - description: '', - main: 'index.js', - dependencies: { - test: '^1.4.1' - }, - author: '', - license: 'ISC', - readme: 'ERROR: No README data found!', - _id: `${pkgName}@${version}`, - _npmVersion: '5.5.1', - _npmUser: { - name: 'Foo' - }, - dist: { - integrity: - 'sha512-zVEqt1JUCOPsash9q4wMkJEDPD+QCx95TRhQII+JnoS31uBUKoZxhzvvUJCcLVy2CQG4QdwXARU7dYWPnrwhGg==', - shasum: shashum, - tarball: `http:\/\/localhost:4873\/${pkgName}\/-\/${pkgName}-${version}.tgz` - } - }; -} diff --git a/test/lib/verdaccio-server.ts b/test/lib/verdaccio-server.ts deleted file mode 100644 index adad98fd8..000000000 --- a/test/lib/verdaccio-server.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { IVerdaccioConfig } from '../types'; - -export class VerdaccioConfig implements IVerdaccioConfig { - public storagePath: string; - public configPath: string; - public domainPath: string; - public port: number; - - public constructor(storagePath: string, configPath: string, domainPath: string, port: number) { - this.storagePath = storagePath; - this.configPath = configPath; - this.domainPath = domainPath; - this.port = port; - } -} diff --git a/test/test.conf.js b/test/test.conf.js deleted file mode 100644 index 6504e06e8..000000000 --- a/test/test.conf.js +++ /dev/null @@ -1 +0,0 @@ -export const DOMAIN_SERVERS = '0.0.0.0'; diff --git a/test/types-test/.eslintrc b/test/types-test/.eslintrc deleted file mode 100644 index 6f5f938c4..000000000 --- a/test/types-test/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "@typescript-eslint/explicit-member-accessibility": 0 - } -} diff --git a/test/types-test/README.md b/test/types-test/README.md deleted file mode 100644 index e131b4a15..000000000 --- a/test/types-test/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Types smoke test - -This folder is intended to check whether any type update might break plugin implementations - -## Contribute - -- Add more scenarios, middleware, plugins, filters etc. \ No newline at end of file diff --git a/test/types-test/plugins/auth/example.auth.plugin.ts b/test/types-test/plugins/auth/example.auth.plugin.ts deleted file mode 100644 index 3a62d0272..000000000 --- a/test/types-test/plugins/auth/example.auth.plugin.ts +++ /dev/null @@ -1,103 +0,0 @@ -// this file is not aim to be tested, just to check flow definitions - -import Config from '../../../../src/lib/config'; -import { logger } from '../../../../src/lib/logger'; -import { Callback } from '@verdaccio/types'; - -import { - Config as AppConfig, - PackageAccess, - IPluginAuth, - RemoteUser, - Logger, - PluginOptions -} from '@verdaccio/types'; - -class ExampleAuthPlugin implements IPluginAuth<{}> { - config: AppConfig; - logger: Logger; - - constructor(config: AppConfig, options: PluginOptions<{}>) { - this.config = config; - this.logger = options.logger; - } - - adduser(user: string, password: string, cb: Callback): void { - cb(); - } - - changePassword(username, password, newPassword, cb: Callback): void { - cb(); - } - - authenticate(user: string, password: string, cb: Callback): void { - cb(); - } - - allow_access(user: RemoteUser, pkg: PackageAccess, cb: Callback): void { - cb(); - } - - allow_publish(user: RemoteUser, pkg: PackageAccess, cb: Callback): void { - cb(); - } -} - -type SubTypePackageAccess = PackageAccess & { - sub?: boolean; -}; - -class ExampleAuthCustomPlugin implements IPluginAuth<{}> { - config: AppConfig; - logger: Logger; - - constructor(config: AppConfig, options: PluginOptions<{}>) { - this.config = config; - this.logger = options.logger; - } - - adduser(user: string, password: string, cb: Callback): void { - cb(); - } - - changePassword(username, password, newPassword, cb: Callback): void { - cb(); - } - - authenticate(user: string, password: string, cb: Callback): void { - cb(); - } - - allow_access(user: RemoteUser, pkg: SubTypePackageAccess, cb: Callback): void { - cb(); - } - - allow_publish(user: RemoteUser, pkg: SubTypePackageAccess, cb: Callback): void { - cb(); - } -} - -const config1: AppConfig = new Config({ - storage: './storage', - self_path: '/home/sotrage' -}); - -const options: PluginOptions<{}> = { - config: config1, - logger: logger.child() -}; - -const auth = new ExampleAuthPlugin(config1, options); -const authSub = new ExampleAuthCustomPlugin(config1, options); -const remoteUser: RemoteUser = { - groups: [], - real_groups: [], - name: 'test' -}; - -auth.authenticate('user', 'pass', () => {}); -auth.allow_access(remoteUser, { access: [], publish: [], proxy: [] }, () => {}); -auth.allow_publish(remoteUser, { access: [], publish: [], proxy: [] }, () => {}); -authSub.authenticate('user', 'pass', () => {}); -authSub.allow_access(remoteUser, { access: [], publish: [], proxy: [], sub: true }, () => {}); -authSub.allow_publish(remoteUser, { access: [], publish: [], proxy: [], sub: true }, () => {}); diff --git a/test/types-test/plugins/middleware/example.middleware.plugin.ts b/test/types-test/plugins/middleware/example.middleware.plugin.ts deleted file mode 100644 index 5f1312c3c..000000000 --- a/test/types-test/plugins/middleware/example.middleware.plugin.ts +++ /dev/null @@ -1,51 +0,0 @@ -// this file is not aim to be tested, just to check typescript definitions -/* eslint-disable @typescript-eslint/no-unused-vars */ -/* eslint-disable no-unused-vars */ - -import Config from '../../../../src/lib/config'; -import { generatePackageTemplate } from '../../../../src/lib/storage-utils'; -import { readFile } from '../../../functional/lib/test.utils'; -import { Package } from '@verdaccio/types'; - -const readMetadata = (fileName: string): Package => - JSON.parse(readFile(`../../unit/partials/${fileName}`).toString()) as Package; - -import { - Config as AppConfig, - IPluginMiddleware, - IStorageManager, - RemoteUser, - IBasicAuth -} from '@verdaccio/types'; -import { IUploadTarball, IReadTarball } from '@verdaccio/streams'; -import { generateVersion } from '../../../unit/__helper/utils'; - -export default class ExampleMiddlewarePlugin implements IPluginMiddleware<{}> { - register_middlewares(app: any, auth: IBasicAuth<{}>, storage: IStorageManager<{}>): void { - const remoteUser: RemoteUser = { - groups: [], - real_groups: [], - name: 'test' - }; - auth.authenticate('user', 'password', () => {}); - auth.allow_access({ packageName: 'packageName' }, remoteUser, () => {}); - auth.add_user('user', 'password', () => {}); - auth.aesEncrypt(Buffer.from('pass')); - // storage - storage.addPackage('name', generatePackageTemplate('test'), () => {}); - storage.addVersion('name', 'version', generateVersion('name', '1.0.0'), 'tag', () => {}); - storage.mergeTags('name', { latest: '1.0.0' }, () => {}); - storage.changePackage('name', readMetadata('metadata'), 'revision', () => {}); - storage.removePackage('name', () => {}); - storage.mergeTags('name', { latest: '1.0.0' }, () => {}); - storage.removeTarball('name', 'filename', 'revision', () => {}); - const config1: AppConfig = new Config({ - storage: './storage', - self_path: '/home/sotrage' - }); - const add: IUploadTarball = storage.addTarball('name', 'filename'); - storage.getTarball('name', 'filename'); - const read: IReadTarball = storage.getTarball('name', 'filename'); - const search: IReadTarball = storage.search('test', {}); - } -} diff --git a/test/types-test/plugins/partials/config.example.js b/test/types-test/plugins/partials/config.example.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/types-test/plugins/storage/example.storage.plugin.ts b/test/types-test/plugins/storage/example.storage.plugin.ts deleted file mode 100644 index 165035e31..000000000 --- a/test/types-test/plugins/storage/example.storage.plugin.ts +++ /dev/null @@ -1,183 +0,0 @@ -// this file is not aim to be tested, just to check typescript definitions - -import { - Callback, - Config as AppConfig, - Logger, - Package, - Token, - TokenFilter, - IUploadTarball, - IReadTarball -} from '@verdaccio/types'; - -import { IPluginStorage, IPackageStorageManager, IPackageStorage } from '@verdaccio/types'; -import { UploadTarball, ReadTarball } from '@verdaccio/streams'; - -import Config from '../../../../src/lib/config'; -import { logger } from '../../../../src/lib/logger'; -import { generatePackageTemplate } from '../../../../src/lib/storage-utils'; - -class PackageStorage implements IPackageStorageManager { - path: string; - logger: Logger; - - constructor(path: string, logger: Logger) { - this.path = path; - this.logger = logger; - } - - updatePackage( - name: string, - updateHandler: Callback, - onWrite: Callback, - transformPackage: Function, - onEnd: Callback - ) { - onEnd(); - } - - deletePackage(fileName: string, callback: Callback) { - callback(); - } - - removePackage(callback: Callback): void { - callback(); - } - - createPackage(name: string, value: Package, cb: Callback) { - cb(); - } - - savePackage(name: string, value: Package, cb: Callback) { - cb(); - } - - readPackage(name: string, cb: Callback) { - cb(); - } - - writeTarball(name): IUploadTarball { - this.logger.debug({ name }, 'some name @name'); - const uploadStream = new UploadTarball({}); - uploadStream.on('close', () => {}); - if (uploadStream.abort) { - uploadStream.abort(); - } - - if (uploadStream.done) { - uploadStream.done(); - } - - return uploadStream; - } - - readTarball(name): IReadTarball { - this.logger.debug({ name }, 'some name @name'); - const readTarballStream: IReadTarball = new ReadTarball({}); - - if (readTarballStream.abort) { - readTarballStream.abort(); - } - - return readTarballStream; - } -} - -class ExampleStoragePlugin implements IPluginStorage<{}> { - logger: Logger; - config: AppConfig; - - constructor(config: AppConfig, logger: Logger) { - this.config = config; - this.logger = logger; - } - - saveToken(token: Token): Promise { - return Promise.resolve(token); - } - deleteToken(user: string, tokenKey: string): Promise { - return Promise.resolve([user, tokenKey]); - } - - readTokens(filter: TokenFilter): Promise { - const token: Token = { - user: filter.user, - key: '12312', - token: '12321', // pragma: allowlist secret - readonly: false, - created: '123232' - }; - - return Promise.resolve([token, token]); - } - - getSecret(): Promise { - return Promise.resolve(); - } - - setSecret(secret: string): Promise { - // pragma: allowlist secret - return Promise.resolve(secret); // pragma: allowlist secret - } - - add(name: string, cb: Callback) { - cb(); - } - - remove(name: string, cb: Callback) { - cb(); - } - - get(cb: Callback) { - cb(); - } - - getPackageStorage(packageInfo: string): IPackageStorage { - return new PackageStorage(packageInfo, this.logger); - } - - search(onPackage: Callback, onEnd: Callback, validateName: any): void { - onPackage(onEnd(validateName())); - } -} - -export default ExampleStoragePlugin; - -const config1: AppConfig = new Config({ - storage: './storage', - self_path: '/home/sotrage' -}); - -const storage = new ExampleStoragePlugin(config1, logger.child()); - -storage.add('test', () => {}); -storage.remove('test', () => {}); -storage.getSecret().then(() => {}); -storage.setSecret('newSecret').then(() => {}); -storage.search( - () => {}, - () => {}, - 'validateName' -); -storage.get(() => {}); - -const storageManager: IPackageStorage = storage.getPackageStorage('test'); - -if (storageManager) { - storageManager.createPackage('test', generatePackageTemplate('test'), () => {}); - storageManager.savePackage('fileName', generatePackageTemplate('test'), () => {}); - // @ts-ignore - storageManager.updatePackage( - 'pkgFileName', - () => {}, - () => {}, - // @ts-ignore - () => {}, - () => {} - ); - storageManager.deletePackage('test', () => {}); - storageManager.removePackage(() => {}); - storageManager.readPackage('test', () => {}); - storageManager.writeTarball('test'); -} diff --git a/test/types/index.ts b/test/types/index.ts deleted file mode 100644 index 9985e2726..000000000 --- a/test/types/index.ts +++ /dev/null @@ -1,54 +0,0 @@ -export interface IVerdaccioConfig { - storagePath: string; - configPath: string; - domainPath: string; - port: number | string; -} - -export interface IRequestPromise { - status(reason: any): any; - body_ok(reason: any): any; - body_error(reason: any): any; - request(reason: any): any; - response(reason: any): any; - send(reason: any): any; -} - -export interface IServerProcess { - init(): Promise; - stop(): void; -} - -// eslint-disable-next-line no-unused-vars -declare class PromiseAssert extends Promise { - public constructor(options: any); -} - -export interface IServerBridge { - url: string; - userAgent: string; - authstr: string; - request(options: any): typeof PromiseAssert; - auth(name: string, password: string): IRequestPromise; - auth(name: string, password: string): IRequestPromise; - logout(token: string): Promise; - getPackage(name: string): Promise; - putPackage(name: string, data: any): Promise; - putVersion(name: string, version: string, data: any): Promise; - getTarball(name: string, filename: string): Promise; - putTarball(name: string, filename: string, data: any): Promise; - removeTarball(name: string): Promise; - removeSingleTarball(name: string, filename: string): Promise; - addTag(name: string, tag: string, version: string): Promise; - putTarballIncomplete( - name: string, - filename: string, - data: any, - size: number, - cb: Function - ): Promise; - addPackage(name: string): Promise; - whoami(): Promise; - ping(): Promise; - debug(): IRequestPromise; -} diff --git a/test/unit/__helper/.eslintrc b/test/unit/__helper/.eslintrc deleted file mode 100644 index 8ec0114bb..000000000 --- a/test/unit/__helper/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "max-len": "off" - } -} diff --git a/test/unit/__helper/api.ts b/test/unit/__helper/api.ts deleted file mode 100644 index 31774151d..000000000 --- a/test/unit/__helper/api.ts +++ /dev/null @@ -1,216 +0,0 @@ -import _ from 'lodash'; -import request from 'supertest'; - -import { HEADER_TYPE, HEADERS, HTTP_STATUS, TOKEN_BEARER } from '../../../src/lib/constants'; -import { buildToken, encodeScopedUri } from '../../../src/lib/utils'; -import { Package } from '@verdaccio/types'; -import { getTaggedVersionFromPackage } from './expects'; -import { generateRandomHexString } from '../../../src/lib/crypto-utils'; - -// API Helpers - -// This file should contain utilities to avoid repeated task over API unit testing, -// Please, comply with the following: -// - Promisify everything -// - Encourage using constants or create new ones if it's needed -// - // @ts-ignore or any is fine if there is no other way - -export function putPackage( - request: any, - pkgName: string, - publishMetadata: Package, - token?: string -): Promise { - return new Promise((resolve) => { - let put = request - .put(pkgName) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send(JSON.stringify(publishMetadata)); - - if (_.isEmpty(token) === false) { - expect(token).toBeDefined(); - put.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token as string)); - } - - put - .set('accept', 'gzip') - .set('accept-encoding', HEADERS.JSON) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - resolve([err, res]); - }); - }); -} - -export function deletePackage(request: any, pkgName: string, token?: string): Promise { - return new Promise((resolve) => { - let del = request - .put(`/${encodeScopedUri(pkgName)}/-rev/${generateRandomHexString(8)}`) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON); - - if (_.isNil(token) === false) { - del.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token as string)); - } - - del - .set('accept-encoding', HEADERS.JSON) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - resolve([err, res]); - }); - }); -} - -export function getPackage( - request: any, - token: string, - pkgName: string, - statusCode: number = HTTP_STATUS.OK -): Promise { - return new Promise((resolve) => { - let getRequest = request.get(`/${pkgName}`); - - // token is a string - if (token !== '') { - getRequest.set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)); - } - - getRequest - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(statusCode) - .end(function (err, res) { - resolve([err, res]); - }); - }); -} - -export function loginUserToken( - request: any, - user: string, - credentials: any, - token: string, - statusCode: number = HTTP_STATUS.CREATED -): Promise { - // $FlowFixMe - return new Promise((resolve) => { - request - .put(`/-/user/org.couchdb.user:${user}`) - .send(credentials) - .set('authorization', buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(statusCode) - .end(function (err, res) { - return resolve([err, res]); - }); - }); -} - -export function addUser( - request: any, - user: string, - credentials: any, - statusCode: number = HTTP_STATUS.CREATED -): Promise { - // $FlowFixMe - return new Promise((resolve) => { - request - .put(`/-/user/org.couchdb.user:${user}`) - .send(credentials) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(statusCode) - .end(function (err, res) { - return resolve([err, res]); - }); - }); -} - -export async function getNewToken(request: any, credentials: any): Promise { - /* eslint no-async-promise-executor: 0 */ - return new Promise(async (resolve) => { - const [err, res] = await addUser(request, credentials.name, credentials); - expect(err).toBeNull(); - const { token, ok } = res.body; - expect(ok).toBeDefined(); - expect(token).toBeDefined(); - expect(typeof token).toBe('string'); - resolve(token); - }); -} - -export function getProfile( - request: any, - token: string, - statusCode: number = HTTP_STATUS.OK -): Promise { - // $FlowFixMe - return new Promise((resolve) => { - request - .get(`/-/npm/v1/user`) - .set('authorization', buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(statusCode) - .end(function (err, res) { - return resolve([err, res]); - }); - }); -} - -export function postProfile( - request: any, - body: any, - token: string, - statusCode: number = HTTP_STATUS.OK -): Promise { - // $FlowFixMe - return new Promise((resolve) => { - request - .post(`/-/npm/v1/user`) - .send(body) - .set(HEADERS.AUTHORIZATION, `Bearer ${token}`) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(statusCode) - .end(function (err, res) { - return resolve([err, res]); - }); - }); -} - -export async function fetchPackageByVersionAndTag( - app, - encodedPkgName, - pkgName, - version, - tag = 'latest' -) { - // we retrieve the package to verify - const [err, resp] = await getPackage(request(app), '', encodedPkgName); - - expect(err).toBeNull(); - - // we check whether the latest version match with the previous published one - return getTaggedVersionFromPackage(resp.body, pkgName, tag, version); -} - -export async function isExistPackage(app, packageName) { - const [err] = await getPackage(request(app), '', encodeScopedUri(packageName), HTTP_STATUS.OK); - - return _.isNull(err); -} - -export async function verifyPackageVersionDoesExist(app, packageName, version, token?: string) { - const [, res] = await getPackage( - request(app), - token as string, - encodeScopedUri(packageName), - HTTP_STATUS.OK - ); - - const { versions } = res.body; - const versionsKeys = Object.keys(versions); - - return versionsKeys.includes(version) === false; -} - -export function generateUnPublishURI(pkgName) { - return `/${encodeScopedUri(pkgName)}/-rev/${generateRandomHexString(8)}`; -} diff --git a/test/unit/__helper/expects.ts b/test/unit/__helper/expects.ts deleted file mode 100644 index 350ea02d6..000000000 --- a/test/unit/__helper/expects.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { DIST_TAGS, LATEST } from '../../../src/lib/constants'; - -/** - * Verify whether the package tag match with the desired version. - */ -export function getTaggedVersionFromPackage(pkg, pkgName, tag: string = LATEST, version: string) { - // extract the tagged version - const taggedVersion = pkg[DIST_TAGS][tag]; - expect(taggedVersion).toBeDefined(); - expect(taggedVersion).toEqual(version); - - // the version must exist - const latestPkg = pkg.versions[taggedVersion]; - expect(latestPkg).toBeDefined(); - // the name must match - expect(latestPkg.name).toEqual(pkgName); - - return latestPkg; -} diff --git a/test/unit/__helper/index.ts b/test/unit/__helper/index.ts deleted file mode 100644 index 94426ab36..000000000 --- a/test/unit/__helper/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import path from 'path'; - -export const parseConfigurationFile = (name) => { - return path.join(__dirname, `../partials/config/yaml/${name}.yaml`); -}; diff --git a/test/unit/__helper/mock.ts b/test/unit/__helper/mock.ts deleted file mode 100644 index 705c72e90..000000000 --- a/test/unit/__helper/mock.ts +++ /dev/null @@ -1,66 +0,0 @@ -import path from 'path'; -import { DOMAIN_SERVERS } from '../../functional/config.functional'; -import VerdaccioProcess from '../../lib/server_process'; -import { VerdaccioConfig } from '../../lib/verdaccio-server'; -import Server from '../../lib/server'; -import { IServerBridge } from '../../types'; - -/** - * Fork a Verdaccio process with a custom configuration. - * - * Usage: - * - * - Fork the process within the beforeAll body. - * - Define a storage (use a specific name) - * - Define a unique port (be careful with conflicts) - * - Set a configuration - * - await / mockServer - * - call done(); - * - * beforeAll(function(done) { - const store = path.join(__dirname, '../partials/store/test-profile-storage'); - const mockServerPort = 55544; - rimraf(store, async () => { - const parsedConfig = parseConfigFile(parseConfigurationProfile()); - const configForTest = _.assign({}, _.cloneDeep(parsedConfig), { - storage: store, - auth: { - htpasswd: { - file: './test-profile-storage/.htpasswd' - } - }, - self_path: store - }); - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - - On finish the test we must close the server - - afterAll(function(done) { - mockRegistry[0].stop(); - done(); - }); - - * - * - * @param port - * @returns {VerdaccioProcess} - */ -export function mockServer(port: number) { - const pathStore = path.join(__dirname, '../partials'); - const storePath = path.join(pathStore, '/mock-store'); - const configPath = path.join(pathStore, '/config-unit-mock-server-test.yaml'); - - const verdaccioConfig = new VerdaccioConfig( - storePath, - configPath, - `http://${DOMAIN_SERVERS}:${port}/`, - port - ); - - const server: IServerBridge = new Server(verdaccioConfig.domainPath); - - return new VerdaccioProcess(verdaccioConfig, server, false, false, false); -} diff --git a/test/unit/__helper/utils.ts b/test/unit/__helper/utils.ts deleted file mode 100644 index 8504800dc..000000000 --- a/test/unit/__helper/utils.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { Package } from '@verdaccio/types'; - -export function generateAttachment() { - return { - content_type: 'application/octet-stream', - data: - 'H4sIAAAAAAAAE+2W32vbMBDH85y/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo//79KPeQsnIw5KUDX/9IOvurLuz/DHSjK/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS/pLQe+D+FIv/agIWI6GX66kFuIhT+1gDjrp/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi/IHpU9fz3/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6/f88f/Pu47zomiPk2Lv/dOv8h+P/34/D/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=', - length: 512 - }; -} - -export function generateVersion(pkgName, version) { - return { - name: pkgName, - version: version, - description: 'some foo dependency', - main: 'index.js', - scripts: { - test: 'echo "Error: no test specified" && exit 1' - }, - keywords: [], - author: { - name: 'User NPM', - email: 'user@domain.com' - }, - license: 'ISC', - dependencies: { - verdaccio: '^4.0.0' - }, - readme: '# test', - readmeFilename: 'README.md', - _id: `${pkgName}@${version}`, - _npmVersion: '5.5.1', - _npmUser: { - name: 'foo' - }, - dist: { - integrity: - 'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==', - shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret - tarball: `http:\/\/localhost:5555\/${pkgName}\/-\/${pkgName}-${version}.tgz` - } - }; -} - -/** - * Generates a metadata body including attachments. - * If you intent to build a body for npm publish, please include only one version. - * if you intent to to generate a complete metadata include multiple versions. - */ -export function generatePackageBody(pkgName: string, _versions: string[] = ['1.0.0']): Package { - const latest: string = _versions[_versions.length - 1]; - const versions = _versions.reduce((cat, version) => { - cat[version] = generateVersion(pkgName, version); - return cat; - }, {}); - - const attachtment = _versions.reduce((cat, version) => { - cat[`${pkgName}-${version}.tgz`] = generateAttachment(); - return cat; - }, {}); - - // @ts-ignore - return { - _id: pkgName, - name: pkgName, - readme: '# test', - 'dist-tags': { - latest: latest - }, - versions: versions, - _attachments: attachtment - }; -} - -/** - * The metadata that comes from npm unpublish only contains the versions won't be removed and - * also does not includes any _attachment. - * @param pkgName - * @param _versions - */ -export function generatePackageUnpublish( - pkgName: string, - _versions: string[] = ['1.0.0'] -): Package { - const latest: string = _versions[_versions.length - 1]; - const versions = _versions.reduce((cat, version) => { - cat[version] = generateVersion(pkgName, version); - return cat; - }, {}); - - // @ts-ignore - return { - _id: pkgName, - name: pkgName, - readme: '# test', - // users usually is present when run npm star [pkg] - users: {}, - 'dist-tags': { - latest: latest - }, - versions: versions - }; -} - -export function generateStarMedatada(pkgName: string, users): any { - return { - _id: pkgName, - _rev: '3-b0cdaefc9bdb77c8', - users: users - }; -} - -export function generatePackageMetadata(pkgName: string, version = '1.0.0'): Package { - // @ts-ignore - return { - _id: pkgName, - name: pkgName, - 'dist-tags': { - latest: version - }, - versions: { - [version]: { - name: pkgName, - version: version, - description: '', - main: 'index.js', - scripts: { - test: 'echo "Error: no test specified" && exit 1' - }, - keywords: [], - author: { - name: 'User NPM', - email: 'user@domain.com' - }, - license: 'ISC', - dependencies: { - verdaccio: '^2.7.2' - }, - readme: '# test', - readmeFilename: 'README.md', - _id: `${pkgName}@${version}`, - _npmVersion: '5.5.1', - _npmUser: { - name: 'foo' - }, - dist: { - integrity: - 'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==', - shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret - tarball: `http:\/\/localhost:5555\/${pkgName}\/-\/${pkgName}-${version}.tgz` - } - } - }, - readme: '# test', - _attachments: { - [`${pkgName}-${version}.tgz`]: { - content_type: 'application/octet-stream', - data: - 'H4sIAAAAAAAAE+2W32vbMBDH85y/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo//79KPeQsnIw5KUDX/9IOvurLuz/DHSjK/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS/pLQe+D+FIv/agIWI6GX66kFuIhT+1gDjrp/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi/IHpU9fz3/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6/f88f/Pu47zomiPk2Lv/dOv8h+P/34/D/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=', - length: 512 - } - } - }; -} - -export function generateDeprecateMetadata( - pkgName: string, - version = '1.0.0', - deprecated: string = '' -): Package { - const res = { - ...generatePackageMetadata(pkgName, version), - _attachments: {} - }; - res.versions[version].deprecated = deprecated; - return res; -} diff --git a/test/unit/functionalLibs/request.spec.ts b/test/unit/functionalLibs/request.spec.ts deleted file mode 100644 index f05878a6f..000000000 --- a/test/unit/functionalLibs/request.spec.ts +++ /dev/null @@ -1,89 +0,0 @@ -import _ from 'lodash'; -import smartRequest, { PromiseAssert } from '../../lib/request'; -import { mockServer } from '../__helper/mock'; -import { HTTP_STATUS } from '../../../src/lib/constants'; -import { IRequestPromise } from '../../types'; -import { VerdaccioError } from '@verdaccio/commons-api'; - -describe('Request Functional', () => { - jest.setTimeout(20000); - const mockServerPort = 55547; - const restTest = `http://localhost:${55547}/jquery`; - let mockRegistry; - - describe('Request Functional', () => { - test('PromiseAssert', () => { - expect(_.isFunction(smartRequest)).toBeTruthy(); - }); - - test('basic resolve', (done) => { - const requestPromise: IRequestPromise = new PromiseAssert((resolve) => { - resolve(1); - }); - // @ts-ignore - requestPromise.then((result) => { - expect(result).toBe(1); - done(); - }); - }); - }); - describe('smartRequest Rest', () => { - beforeAll(async () => { - mockRegistry = await mockServer(mockServerPort).init(); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - test('basic rest', (done) => { - const options: any = { - url: restTest, - method: 'GET' - }; - - smartRequest(options).then((result) => { - expect(_.isString(result)).toBeTruthy(); - done(); - }); - }); - - describe('smartRequest Status', () => { - test('basic check status 200', (done) => { - const options: any = { - url: restTest, - method: 'GET' - }; - // @ts-ignore - smartRequest(options) - // @ts-ignore - .status(HTTP_STATUS.OK) - .then((result) => { - expect(JSON.parse(result).name).toBe('jquery'); - done(); - }); - }); - - test('basic check status 404', (done) => { - const options: any = { - url: 'http://www.google.fake', - method: 'GET' - }; - // @ts-ignore - smartRequest(options) - // @ts-ignore - .status(HTTP_STATUS.NOT_FOUND) - .then( - () => { - // we do not intent to resolve this - }, - (error: VerdaccioError) => { - expect(error.code).toBe('ENOTFOUND'); - done(); - } - ); - }); - }); - }); -}); diff --git a/test/unit/modules/access/pkg.access.spec.ts b/test/unit/modules/access/pkg.access.spec.ts deleted file mode 100644 index 126f5d76f..000000000 --- a/test/unit/modules/access/pkg.access.spec.ts +++ /dev/null @@ -1,112 +0,0 @@ -import request from 'supertest'; -import path from 'path'; -import rimraf from 'rimraf'; - -import { setup } from '../../../../src/lib/logger'; - -setup([]); - -import { HEADERS, HTTP_STATUS } from '../../../../src/lib/constants'; -import configDefault from '../../partials/config'; -import endPointAPI from '../../../../src/api'; -import { mockServer } from '../../__helper/mock'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; - -require('../../../../src/lib/logger').setup([]); - -describe('api with no limited access configuration', () => { - let app; - let mockRegistry; - const store = path.join(__dirname, '../../partials/store/access-storage'); - jest.setTimeout(10000); - - beforeAll(function (done) { - const mockServerPort = 55530; - - rimraf(store, async () => { - const configForTest = configDefault( - { - auth: { - htpasswd: { - file: './access-storage/htpasswd-pkg-access' - } - }, - self_path: store, - uplinks: { - remote: { - url: `http://${DOMAIN_SERVERS}:${mockServerPort}` - } - }, - logs: [{ type: 'stdout', format: 'pretty', level: 'warn' }] - }, - 'pkg.access.spec.yaml' - ); - - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - }); - - afterAll(function (done) { - rimraf(store, (err) => { - if (err) { - mockRegistry[0].stop(); - return done(err); - } - - mockRegistry[0].stop(); - return done(); - }); - }); - - describe('test proxy packages partially restricted', () => { - test('should test fails on fetch endpoint /-/not-found', (done) => { - request(app) - // @ts-ignore - .get('/not-found-for-sure') - .set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADERS.CONTENT_TYPE, /json/) - .expect(HTTP_STATUS.NOT_FOUND) - .end(function (err) { - if (err) { - return done(err); - } - - done(); - }); - }); - - test('should test fetch endpoint /-/jquery', (done) => { - request(app) - // @ts-ignore - .get('/jquery') - .set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADERS.CONTENT_TYPE, /json/) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - return done(err); - } - - done(); - }); - }); - - test('should success on fetch endpoint /-/vue', (done) => { - request(app) - // @ts-ignore - .get('/vue') - .set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADERS.CONTENT_TYPE, /json/) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - return done(err); - } - - done(); - }); - }); - }); -}); diff --git a/test/unit/modules/api/__snapshots__/publish.spec.ts.snap b/test/unit/modules/api/__snapshots__/publish.spec.ts.snap deleted file mode 100644 index e7a752a69..000000000 --- a/test/unit/modules/api/__snapshots__/publish.spec.ts.snap +++ /dev/null @@ -1,49 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Publish endpoints - publish package should change the existing package 1`] = `[MockFunction]`; - -exports[`Publish endpoints - publish package should publish a new a new package 1`] = ` -[MockFunction] { - "calls": Array [ - Array [ - "verdaccio", - Object { - "dist-tags": Object {}, - "name": "verdaccio", - "time": Object {}, - "versions": Object {}, - }, - [Function], - ], - ], - "results": Array [ - Object { - "type": "return", - "value": undefined, - }, - ], -} -`; - -exports[`Publish endpoints - publish package test start should star a package 1`] = ` -[MockFunction] { - "calls": Array [ - Array [ - "verdaccio", - Object { - "users": Object { - "verdaccio": true, - }, - }, - "15-e53a77096b0ee33e", - [Function], - ], - ], - "results": Array [ - Object { - "type": "return", - "value": undefined, - }, - ], -} -`; diff --git a/test/unit/modules/api/api.spec.ts b/test/unit/modules/api/api.spec.ts deleted file mode 100644 index 3d5a21e7d..000000000 --- a/test/unit/modules/api/api.spec.ts +++ /dev/null @@ -1,1073 +0,0 @@ -import request from 'supertest'; -import _ from 'lodash'; -import path from 'path'; -import rimraf from 'rimraf'; -import nock from 'nock'; -import { Readable } from 'stream'; - -import configDefault from '../../partials/config'; -import publishMetadata from '../../partials/publish-api'; -import endPointAPI from '../../../../src/api'; - -import { - HEADERS, - API_ERROR, - HTTP_STATUS, - HEADER_TYPE, - API_MESSAGE, - TOKEN_BEARER -} from '../../../../src/lib/constants'; -import { mockServer } from '../../__helper/mock'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; -import { buildToken, encodeScopedUri } from '../../../../src/lib/utils'; -import { - getNewToken, - getPackage, - putPackage, - verifyPackageVersionDoesExist, - generateUnPublishURI -} from '../../__helper/api'; -import { - generatePackageMetadata, - generatePackageUnpublish, - generateStarMedatada, - generateDeprecateMetadata, - generateVersion -} from '../../__helper/utils'; - -const sleep = (delay) => { - return new Promise((resolve) => { - setTimeout(resolve, delay); - }); -}; - -require('../../../../src/lib/logger').setup([{ type: 'stdout', format: 'pretty', level: 'warn' }]); - -const credentials = { name: 'jota', password: 'secretPass' }; - -const putVersion = (app, name, publishMetadata) => { - return request(app) - .put(name) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send(JSON.stringify(publishMetadata)) - .expect(HTTP_STATUS.CREATED) - .set('accept', 'gzip') - .set('accept-encoding', HEADERS.JSON) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON); -}; - -describe('endpoint unit test', () => { - let app; - const mockServerPort = 55549; - let mockRegistry; - - beforeAll(function (done) { - const store = path.join(__dirname, '../../partials/store/test-storage-api-spec'); - rimraf(store, async () => { - const configForTest = configDefault( - { - auth: { - htpasswd: { - file: './test-storage-api-spec/.htpasswd' - } - }, - filters: { - '../../modules/api/partials/plugin/filter': { - pkg: 'npm_test', - version: '2.0.0' - } - }, - storage: store, - self_path: store, - uplinks: { - npmjs: { - url: `http://${DOMAIN_SERVERS}:${mockServerPort}` - }, - socketTimeout: { - url: `http://some.registry.timeout.com`, - max_fails: 2, - timeout: '1s', - fail_timeout: '1s' - } - }, - logs: [{ type: 'stdout', format: 'pretty', level: 'warn' }] - }, - 'api.spec.yaml' - ); - - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - afterEach(() => { - nock.cleanAll(); - }); - - describe('Registry API Endpoints', () => { - describe('should test ping api', () => { - test('should test endpoint /-/ping', (done) => { - request(app) - .get('/-/ping') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - return done(err); - } - done(); - }); - }); - }); - - describe('should test whoami api', () => { - test('should test referer /whoami endpoint', (done) => { - request(app).get('/whoami').set('referer', 'whoami').expect(HTTP_STATUS.OK).end(done); - }); - - test('should test no referer /whoami endpoint', (done) => { - request(app).get('/whoami').expect(HTTP_STATUS.NOT_FOUND).end(done); - }); - - test('should test /-/whoami endpoint', (done) => { - request(app) - .get('/-/whoami') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - return done(err); - } - done(); - }); - }); - - test('should test /whoami endpoint', (done) => { - request(app) - .get('/-/whoami') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - return done(err); - } - done(); - }); - }); - }); - - describe('should test user api', () => { - describe('should test authorization headers with tokens only errors', () => { - test('should fails on protected endpoint /-/auth-package bad format', (done) => { - request(app) - .get('/auth-package') - .set(HEADERS.AUTHORIZATION, 'FakeHader') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .expect(HTTP_STATUS.FORBIDDEN) - .end(function (err, res) { - expect(res.body.error).toBeDefined(); - expect(res.body.error).toMatch( - /authorization required to access package auth-package/ - ); - done(); - }); - }); - - test('should fails on protected endpoint /-/auth-package bad JWT Bearer format', (done) => { - request(app) - .get('/auth-package') - .set(HEADERS.AUTHORIZATION, TOKEN_BEARER) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .expect(HTTP_STATUS.FORBIDDEN) - .end(function (err, res) { - expect(res.body.error).toBeDefined(); - expect(res.body.error).toMatch( - /authorization required to access package auth-package/ - ); - done(); - }); - }); - - test('should fails on protected endpoint /-/auth-package well JWT Bearer', (done) => { - request(app) - .get('/auth-package') - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, '12345')) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .expect(HTTP_STATUS.FORBIDDEN) - .end(function (err, res) { - expect(res.body.error).toBeDefined(); - expect(res.body.error).toMatch( - /authorization required to access package auth-package/ - ); - done(); - }); - }); - }); - - test('should test add a new user', (done) => { - request(app) - .put(`/-/user/org.couchdb.user:${credentials.name}`) - .send(credentials) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - if (err) { - return done(err); - } - expect(res.body.ok).toBeDefined(); - expect(res.body.token).toBeDefined(); - const token = res.body.token; - expect(typeof token).toBe('string'); - expect(res.body.ok).toMatch(`user '${credentials.name}' created`); - - // testing JWT auth headers with token - // we need it here, because token is required - request(app) - .get('/vue') - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - expect(err).toBeNull(); - expect(res.body).toBeDefined(); - expect(res.body.name).toMatch(/vue/); - done(); - }); - }); - }); - - test('should test fails add a new user with missing name', (done) => { - const credentialsShort = _.cloneDeep(credentials); - delete credentialsShort.name; - - request(app) - .put(`/-/user/org.couchdb.user:${credentials.name}`) - .send(credentialsShort) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.BAD_REQUEST) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body.error).toBeDefined(); - expect(res.body.error).toMatch(API_ERROR.USERNAME_PASSWORD_REQUIRED); - done(); - }); - }); - - test('should test fails add a new user with missing password', (done) => { - const credentialsShort = _.cloneDeep(credentials); - delete credentialsShort.password; - - request(app) - .put(`/-/user/org.couchdb.user:${credentials.name}`) - .send(credentialsShort) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.BAD_REQUEST) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body.error).toBeDefined(); - // FIXME: message is not 100% accurate - /* eslint new-cap: 0 */ - expect(res.body.error).toMatch(API_ERROR.PASSWORD_SHORT()); - done(); - }); - }); - - test('should test add a new user with login', (done) => { - const newCredentials = _.cloneDeep(credentials); - newCredentials.name = 'jotaNew'; - - request(app) - .put('/-/user/org.couchdb.user:jotaNew') - .send(newCredentials) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - if (err) { - return done(err); - } - expect(res.body).toBeTruthy(); - done(); - }); - }); - - test('should test fails on add a existing user with login', (done) => { - request(app) - .put('/-/user/org.couchdb.user:jotaNew') - .send(credentials) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.CONFLICT) - .end(function (err, res) { - if (err) { - return done(err); - } - expect(res.body.error).toBeDefined(); - expect(res.body.error).toMatch(API_ERROR.USERNAME_ALREADY_REGISTERED); - done(); - }); - }); - - test('should test fails add a new user with wrong password', (done) => { - const credentialsShort = _.cloneDeep(credentials); - credentialsShort.password = 'failPassword'; - - request(app) - .put('/-/user/org.couchdb.user:jota') - .send(credentialsShort) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.UNAUTHORIZED) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body.error).toBeDefined(); - expect(res.body.error).toMatch(/unauthorized/); - done(); - }); - }); - }); - - describe('should test package api', () => { - // The current behaviour depends of what's defined in the following configuration file. - // test/unit/partials/config/yaml/api.spec.yaml - // 'jquery': - // access: $all - // publish: $all - // proxy: npmjs - - test('should fetch jquery package from remote uplink', (done) => { - request(app) - .get('/jquery') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body).toBeDefined(); - expect(res.body.name).toMatch(/jquery/); - done(); - }); - }); - - test('should fails with socket time out fetch tarball timeout package from remote uplink', async () => { - const timeOutPkg = generatePackageMetadata('timeout', '1.5.1'); - const responseText = 'fooooooooooooooooo'; - const readable = Readable.from([responseText]); - timeOutPkg.versions['1.5.1'].dist.tarball = - 'http://some.registry.timeout.com/timeout/-/timeout-1.5.1.tgz'; - nock('http://some.registry.timeout.com').get('/timeout').reply(200, timeOutPkg); - nock('http://some.registry.timeout.com') - .get('/timeout/-/timeout-1.5.1.tgz') - .twice() - .socketDelay(50000) - .reply(200); - nock('http://some.registry.timeout.com') - .get('/timeout/-/timeout-1.5.1.tgz') - .reply(200, () => readable); - const agent = request.agent(app); - await agent - .get('/timeout/-/timeout-1.5.1.tgz') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.OCTET_STREAM) - .expect(HTTP_STATUS.INTERNAL_ERROR); - await agent - .get('/timeout/-/timeout-1.5.1.tgz') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.OCTET_STREAM) - .expect(HTTP_STATUS.INTERNAL_ERROR); - await sleep(2000); - // await agent - await agent - .get('/timeout/-/timeout-1.5.1.tgz') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.OCTET_STREAM) - .expect(HTTP_STATUS.OK); - }, 10000); - - test('should fetch jquery specific version package from remote uplink', (done) => { - request(app) - .get('/jquery/1.5.1') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body).toBeDefined(); - expect(res.body.name).toMatch(/jquery/); - done(); - }); - }); - - test('should fetch jquery specific tag package from remote uplink', (done) => { - request(app) - .get('/jquery/latest') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body).toBeDefined(); - expect(res.body.name).toMatch(/jquery/); - done(); - }); - }); - - test('should fails on fetch jquery specific tag package from remote uplink', (done) => { - request(app) - .get('/jquery/never-will-exist-this-tag') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.NOT_FOUND) - .end(function (err) { - if (err) { - return done(err); - } - done(); - }); - }); - - test('should not found a unexisting remote package under scope', (done) => { - request(app) - .get('/@verdaccio/not-found') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.NOT_FOUND) - .end(function (err) { - if (err) { - return done(err); - } - done(); - }); - }); - - describe('testing filters', () => { - test('be able to filter packages', (done) => { - request(app) - .get('/npm_test') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - return done(err); - } - // Filter out 2.0.0 - expect(Object.keys(res.body.versions)).toEqual(['1.0.0']); - done(); - }); - }); - - test('should not found when a filter fails', (done) => { - request(app) - // Filter errors look like other uplink errors - .get('/trigger-filter-failure') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.NOT_FOUND) - .end(function (err) { - if (err) { - return done(err); - } - done(); - }); - }); - }); - - test('should forbid access to remote package', (done) => { - request(app) - .get('/forbidden-place') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.UNAUTHORIZED) - .end(function (err) { - if (err) { - return done(err); - } - done(); - }); - }); - - test('should fetch a tarball from remote uplink', (done) => { - request(app) - .get('/jquery/-/jquery-1.5.1.tgz') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.OCTET_STREAM) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body).toBeDefined(); - done(); - }); - }); - - test('should fetch a scoped tarball from remote uplink', (done) => { - request(app) - .get('/@jquery/jquery/-/@jquery/jquery-1.5.1.tgz') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.OCTET_STREAM) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - return done(err); - } - - expect(res.body).toBeDefined(); - done(); - }); - }); - - test('should fails fetch a tarball from remote uplink', (done) => { - request(app) - .get('/jquery/-/jquery-not-found-tarball-0.0.1.tgz') - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.OCTET_STREAM) - .expect(HTTP_STATUS.NOT_FOUND) - .end(function (err) { - if (err) { - expect(err).not.toBeNull(); - return done(err); - } - - done(); - }); - }); - }); - - describe('should test dist-tag api', () => { - const jqueryVersion = '2.1.2'; - const jqueryUpdatedVersion = { - beta: '3.0.0', - jota: '1.6.3' - }; - - test('should set a new tag on jquery', (done) => { - putVersion(app, '/jquery/verdaccio-tag', jqueryVersion) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - - expect(res.body.ok).toBeDefined(); - expect(res.body.ok).toMatch(/package tagged/); - done(); - }); - }); - - test('should fetch all tag for jquery', (done) => { - request(app) - .get('/-/package/jquery/dist-tags') - .set('accept-encoding', HEADERS.JSON) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - - expect(res.body).toBeDefined(); - expect(res.body['verdaccio-tag']).toMatch(jqueryVersion); - done(); - }); - }); - - test('should update a new tag on jquery', (done) => { - request(app) - .post('/-/package/jquery/dist-tags') - .send(JSON.stringify(jqueryUpdatedVersion)) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - - expect(res.body.ok).toBeDefined(); - expect(res.body.ok).toMatch(API_MESSAGE.TAG_UPDATED); - done(); - }); - }); - - test('should fetch all tags for jquery and ccheck previous update', (done) => { - request(app) - .get('/-/package/jquery/dist-tags') - .set('accept-encoding', HEADERS.JSON) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - - expect(res.body).toBeDefined(); - expect(res.body['beta']).toMatch(jqueryUpdatedVersion['beta']); - done(); - }); - }); - - test('should set a remove a tag on jquery', (done) => { - request(app) - .del('/-/package/jquery/dist-tags/verdaccio-tag') - .set('accept-encoding', HEADERS.JSON) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - // .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - - expect(res.body.ok).toBeDefined(); - expect(res.body.ok).toMatch(API_MESSAGE.TAG_REMOVED); - done(); - }); - }); - }); - - describe('should test search api', () => { - test('should perform a search', (done) => { - const now = Date.now(); - const cacheTime = now - 6000000; - request(app) - .get('/-/all/since?stale=update_after&startkey=' + cacheTime) - // .set('accept-encoding', HEADERS.JSON) - // .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .expect(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - // TODO: we have to catch the stream check whether it returns something - // we should not spend much time on this api since is deprecated somehow. - done(); - }); - }); - }); - - describe('should test publish/unpublish api', () => { - /** - * It publish 2 versions and unpublish the latest one, then verifies - * the version do not exist anymore in the body of the metadata. - */ - const runPublishUnPublishFlow = async (pkgName: string, done, token?: string) => { - const version = '2.0.0'; - const pkg = generatePackageMetadata(pkgName, version); - - const [err] = await putPackage(request(app), `/${encodeScopedUri(pkgName)}`, pkg, token); - if (err) { - expect(err).toBeNull(); - return done(err); - } - - const newVersion = '2.0.1'; - const [newErr] = await putPackage( - request(app), - `/${encodeScopedUri(pkgName)}`, - generatePackageMetadata(pkgName, newVersion), - token - ); - if (newErr) { - expect(newErr).toBeNull(); - return done(newErr); - } - - const deletePayload = generatePackageUnpublish(pkgName, ['2.0.0']); - const [err2, res2] = await putPackage( - request(app), - generateUnPublishURI(pkgName), - deletePayload, - token - ); - - expect(err2).toBeNull(); - expect(res2.body.ok).toMatch(API_MESSAGE.PKG_CHANGED); - - const existVersion = await verifyPackageVersionDoesExist(app, pkgName, newVersion, token); - expect(existVersion).toBeTruthy(); - - return done(); - }; - - describe('un/publish scenarios with credentials', () => { - test('should flow with no credentials', async (done) => { - const pkgName = '@public-anyone-can-publish/pk1-test'; - runPublishUnPublishFlow(pkgName, done, undefined); - }); - - test('should flow with credentials', async (done) => { - const credentials = { name: 'jota_unpublish', password: 'secretPass' }; - const token = await getNewToken(request(app), credentials); - const pkgName = '@only-one-can-publish/pk1-test'; - - runPublishUnPublishFlow(pkgName, done, token); - }); - }); - - describe('test error handling', () => { - test('should fail if user is not allowed to unpublish', async (done) => { - /** - * Context: - * - * 'non-unpublish': - access: $authenticated - publish: jota_unpublish_fail - # There is some conditions to keep on mind here - # - If unpublish is empty, fallback with the publish value - # - If the user has permissions to publish and this empty it will be allowed to unpublish - # - If we want to forbid anyone to unpublish, just write here any unexisting user - unpublish: none - - The result of this test should fail and even if jota_unpublish_fail is allowed to publish. - - * - */ - const credentials = { name: 'jota_unpublish_fail', password: 'secretPass' }; - const pkgName = 'non-unpublish'; - const newVersion = '1.0.0'; - const token = await getNewToken(request(app), credentials); - - const [newErr] = await putPackage( - request(app), - `/${encodeScopedUri(pkgName)}`, - generatePackageMetadata(pkgName, newVersion), - token - ); - if (newErr) { - expect(newErr).toBeNull(); - return done(newErr); - } - - const deletePayload = generatePackageUnpublish(pkgName, ['2.0.0']); - const [err2, res2] = await putPackage( - request(app), - generateUnPublishURI(pkgName), - deletePayload, - token - ); - - expect(err2).not.toBeNull(); - expect(res2.body.error).toMatch( - /user jota_unpublish_fail is not allowed to unpublish package non-unpublish/ - ); - done(); - }); - - test('should fail if publish prop is not defined', async (done) => { - /** - * Context: - * - * 'non-unpublish': - access: $authenticated - publish: jota_unpublish_fail - # There is some conditions to keep on mind here - # - If unpublish is empty, fallback with the publish value - # - If the user has permissions to publish and this empty it will be allowed to unpublish - # - If we want to forbid anyone to unpublish, just write here any unexisting user - unpublish: none - - The result of this test should fail and even if jota_unpublish_fail is allowed to publish. - - * - */ - const credentials = { name: 'jota_only_unpublish_fail', password: 'secretPass' }; - const pkgName = 'only-unpublish'; - const newVersion = '1.0.0'; - const token = await getNewToken(request(app), credentials); - - const [newErr, resp] = await putPackage( - request(app), - `/${encodeScopedUri(pkgName)}`, - generatePackageMetadata(pkgName, newVersion), - token - ); - - expect(newErr).not.toBeNull(); - expect(resp.body.error).toMatch( - /user jota_only_unpublish_fail is not allowed to publish package only-unpublish/ - ); - done(); - }); - }); - - test('should be able to publish/unpublish by only super_admin user', async (done) => { - const credentials = { name: 'super_admin', password: 'secretPass' }; - const token = await getNewToken(request(app), credentials); - request(app) - .put('/super-admin-can-unpublish') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .send( - JSON.stringify( - _.assign({}, publishMetadata, { - name: 'super-admin-can-unpublish' - }) - ) - ) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - expect(res.body.ok).toBeDefined(); - expect(res.body.success).toBeDefined(); - expect(res.body.success).toBeTruthy(); - expect(res.body.ok).toMatch(API_MESSAGE.PKG_CREATED); - request(app) - .del('/super-admin-can-unpublish/-rev/4-6abcdb4efd41a576') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - expect(err).toBeNull(); - expect(res.body.ok).toBeDefined(); - expect(res.body.ok).toMatch(API_MESSAGE.PKG_REMOVED); - done(); - }); - }); - }); - - test('should be able to publish/unpublish by any user', async (done) => { - const credentials = { name: 'any_user', password: 'secretPass' }; - const token = await getNewToken(request(app), credentials); - request(app) - .put('/all-can-unpublish') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .send( - JSON.stringify( - _.assign({}, publishMetadata, { - name: 'all-can-unpublish' - }) - ) - ) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - expect(res.body.ok).toBeDefined(); - expect(res.body.success).toBeDefined(); - expect(res.body.success).toBeTruthy(); - expect(res.body.ok).toMatch(API_MESSAGE.PKG_CREATED); - request(app) - .del('/all-can-unpublish/-rev/4-6abcdb4efd41a576') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - expect(err).toBeNull(); - expect(res.body.ok).toBeDefined(); - expect(res.body.ok).toMatch(API_MESSAGE.PKG_REMOVED); - done(); - }); - }); - }); - }); - - describe('should test star and stars api', () => { - const pkgName = '@scope/starPackage'; - const credentials = { name: 'jota_star', password: 'secretPass' }; - let token = ''; - beforeAll(async (done) => { - token = await getNewToken(request(app), credentials); - await putPackage(request(app), `/${pkgName}`, generatePackageMetadata(pkgName), token); - done(); - }); - - test('should star a package', (done) => { - request(app) - .put(`/${pkgName}`) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send( - JSON.stringify( - generateStarMedatada(pkgName, { - [credentials.name]: true - }) - ) - ) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - expect(res.body.success).toBeDefined(); - expect(res.body.success).toBeTruthy(); - done(); - }); - }); - - test('should unstar a package', (done) => { - request(app) - .put(`/${pkgName}`) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .send(JSON.stringify(generateStarMedatada(pkgName, {}))) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - expect(res.body.success).toBeDefined(); - expect(res.body.success).toBeTruthy(); - done(); - }); - }); - - test('should retrieve stars list with credentials', async (done) => { - request(app) - .put(`/${pkgName}`) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send(generateStarMedatada(pkgName, { [credentials.name]: true })) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - request(app) - .get('/-/_view/starredByUser') - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send( - JSON.stringify({ - key: [credentials.name] - }) - ) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - if (err) { - expect(err).toBeNull(); - return done(err); - } - expect(res.body.rows).toBeDefined(); - expect(res.body.rows).toHaveLength(1); - done(); - }); - }); - }); - }); - - describe('should test (un)deprecate api', () => { - const pkgName = '@scope/deprecate'; - const credentials = { name: 'jota_deprecate', password: 'secretPass' }; - const version = '1.0.0'; - let token = ''; - beforeAll(async (done) => { - token = await getNewToken(request(app), credentials); - await putPackage( - request(app), - `/${pkgName}`, - generatePackageMetadata(pkgName, version), - token - ); - done(); - }); - - test('should deprecate a package', async (done) => { - const pkg = generateDeprecateMetadata(pkgName, version, 'get deprecated'); - const [err] = await putPackage(request(app), `/${encodeScopedUri(pkgName)}`, pkg, token); - if (err) { - expect(err).toBeNull(); - return done(err); - } - const [, res] = await getPackage(request(app), '', pkgName); - expect(res.body.versions[version].deprecated).toEqual('get deprecated'); - done(); - }); - - test('should undeprecate a package', async (done) => { - let pkg = generateDeprecateMetadata(pkgName, version, 'get deprecated'); - await putPackage(request(app), `/${encodeScopedUri(pkgName)}`, pkg, token); - pkg = generateDeprecateMetadata(pkgName, version, ''); - const [err] = await putPackage(request(app), `/${encodeScopedUri(pkgName)}`, pkg, token); - if (err) { - expect(err).toBeNull(); - return done(err); - } - const [, res] = await getPackage(request(app), '', pkgName); - expect(res.body.versions[version].deprecated).not.toBeDefined(); - done(); - }); - - test('should require both publish and unpublish access to (un)deprecate a package', async () => { - let credentials = { name: 'only_publish', password: 'secretPass' }; - let token = await getNewToken(request(app), credentials); - const pkg = generateDeprecateMetadata(pkgName, version, 'get deprecated'); - const [err, res] = await putPackage( - request(app), - `/${encodeScopedUri(pkgName)}`, - pkg, - token - ); - expect(err).not.toBeNull(); - expect(res.body.error).toBeDefined(); - expect(res.body.error).toMatch( - /user only_publish is not allowed to unpublish package @scope\/deprecate/ - ); - credentials = { name: 'only_unpublish', password: 'secretPass' }; - token = await getNewToken(request(app), credentials); - const [err2, res2] = await putPackage( - request(app), - `/${encodeScopedUri(pkgName)}`, - pkg, - token - ); - expect(err2).not.toBeNull(); - expect(res2.body.error).toBeDefined(); - expect(res2.body.error).toMatch( - /user only_unpublish is not allowed to publish package @scope\/deprecate/ - ); - }); - - test('should deprecate multiple packages', async (done) => { - await putPackage( - request(app), - `/${pkgName}`, - generatePackageMetadata(pkgName, '1.0.1'), - token - ); - const pkg = generateDeprecateMetadata(pkgName, version, 'get deprecated'); - pkg.versions['1.0.1'] = { - ...generateVersion(pkgName, '1.0.1'), - deprecated: 'get deprecated' - }; - await putPackage(request(app), `/${encodeScopedUri(pkgName)}`, pkg, token); - const [, res] = await getPackage(request(app), '', pkgName); - expect(res.body.versions[version].deprecated).toEqual('get deprecated'); - expect(res.body.versions['1.0.1'].deprecated).toEqual('get deprecated'); - done(); - }); - }); - }); -}); diff --git a/test/unit/modules/api/partials/plugin/filter.ts b/test/unit/modules/api/partials/plugin/filter.ts deleted file mode 100644 index b542d411c..000000000 --- a/test/unit/modules/api/partials/plugin/filter.ts +++ /dev/null @@ -1,24 +0,0 @@ -class FilterPlugin { - private _config; - public constructor(config) { - this._config = config; - } - - public filter_metadata(pkg) { - return new Promise((resolve, reject) => { - // We use this to test what happens when a filter rejects - if (pkg.name === 'trigger-filter-failure') { - reject(new Error('Example filter failure')); - return; - } - // Example filter that removes a single blocked package - if (this._config.pkg === pkg.name) { - // In reality, we also want to remove references in attachments and dist-tags, etc. This is just a POC - delete pkg.versions[this._config.version]; - } - resolve(pkg); - }); - } -} - -exports.default = FilterPlugin; diff --git a/test/unit/modules/api/publish.spec.ts b/test/unit/modules/api/publish.spec.ts deleted file mode 100644 index 58c1e6236..000000000 --- a/test/unit/modules/api/publish.spec.ts +++ /dev/null @@ -1,303 +0,0 @@ -import { - addVersion, - uploadPackageTarball, - removeTarball, - unPublishPackage, - publishPackage -} from '../../../../src/api/endpoint/api/publish'; -import { HTTP_STATUS, API_ERROR } from '../../../../src/lib/constants'; - -const REVISION_MOCK = '15-e53a77096b0ee33e'; - -require('../../../../src/lib/logger').setup([{ type: 'stdout', format: 'pretty', level: 'info' }]); - -describe('Publish endpoints - add a tag', () => { - let req; - let res; - let next; - - beforeEach(() => { - req = { - params: { - version: '1.0.0', - tag: 'tag', - package: 'verdaccio' - }, - body: '' - }; - res = { - status: jest.fn() - }; - - next = jest.fn(); - }); - - test('should add a version', (done) => { - const storage = { - addVersion: (packageName, version, body, tag, cb) => { - expect(packageName).toEqual(req.params.package); - expect(version).toEqual(req.params.version); - expect(body).toEqual(req.body); - expect(tag).toEqual(req.params.tag); - cb(); - done(); - } - }; - - // @ts-ignore - addVersion(storage)(req, res, next); - - expect(res.status).toHaveBeenLastCalledWith(HTTP_STATUS.CREATED); - expect(next).toHaveBeenLastCalledWith({ ok: 'package published' }); - }); - - test('when failed to add a version', (done) => { - const storage = { - addVersion: (packageName, version, body, tag, cb) => { - const error = { - message: 'failure' - }; - cb(error); - done(); - } - }; - - // @ts-ignore - addVersion(storage)(req, res, next); - - expect(next).toHaveBeenLastCalledWith({ message: 'failure' }); - }); -}); - -/** - * upload package: '/:package/-/:filename/*' - */ -describe('Publish endpoints - upload package tarball', () => { - let req; - let res; - let next; - - beforeEach(() => { - req = { - params: { - filename: 'verdaccio.gzip', - package: 'verdaccio' - }, - pipe: jest.fn(), - on: jest.fn() - }; - res = { status: jest.fn(), report_error: jest.fn() }; - next = jest.fn(); - }); - - test('should upload package tarball successfully', () => { - const stream = { - done: jest.fn(), - abort: jest.fn(), - on: jest.fn(() => (status, cb) => cb()) - }; - const storage = { - addTarball(packageName, filename) { - expect(packageName).toEqual(req.params.package); - expect(filename).toEqual(req.params.filename); - return stream; - } - }; - - // @ts-ignore - uploadPackageTarball(storage)(req, res, next); - expect(req.pipe).toHaveBeenCalled(); - expect(req.on).toHaveBeenCalled(); - }); -}); - -/** - * Delete tarball: '/:package/-/:filename/-rev/:revision' - */ -describe('Publish endpoints - delete tarball', () => { - let req; - let res; - let next; - - beforeEach(() => { - req = { - params: { - filename: 'verdaccio.gzip', - package: 'verdaccio', - revision: REVISION_MOCK - } - }; - res = { status: jest.fn() }; - next = jest.fn(); - }); - - test('should delete tarball successfully', (done) => { - const storage = { - removeTarball(packageName, filename, revision, cb) { - expect(packageName).toEqual(req.params.package); - expect(filename).toEqual(req.params.filename); - expect(revision).toEqual(req.params.revision); - cb(); - done(); - } - }; - - // @ts-ignore - removeTarball(storage)(req, res, next); - expect(res.status).toHaveBeenCalledWith(HTTP_STATUS.CREATED); - expect(next).toHaveBeenCalledWith({ ok: 'tarball removed' }); - }); - - test('failed while deleting the tarball', (done) => { - const error = { - message: 'deletion failed' - }; - const storage = { - removeTarball(packageName, filename, revision, cb) { - cb(error); - done(); - } - }; - - // @ts-ignore - removeTarball(storage)(req, res, next); - expect(next).toHaveBeenCalledWith(error); - }); -}); - -/** - * Un-publish package: '/:package/-rev/*' - */ -describe('Publish endpoints - un-publish package', () => { - let req; - let res; - let next; - - beforeEach(() => { - req = { - params: { - package: 'verdaccio' - } - }; - res = { status: jest.fn() }; - next = jest.fn(); - }); - - test('should un-publish package successfully', (done) => { - const storage = { - removePackage(packageName, cb) { - expect(packageName).toEqual(req.params.package); - cb(); - done(); - } - }; - - // @ts-ignore - unPublishPackage(storage)(req, res, next); - expect(res.status).toHaveBeenCalledWith(HTTP_STATUS.CREATED); - expect(next).toHaveBeenCalledWith({ ok: 'package removed' }); - }); - - test('un-publish failed', (done) => { - const error = { - message: 'un-publish failed' - }; - const storage = { - removePackage(packageName, cb) { - cb(error); - done(); - } - }; - - // @ts-ignore - unPublishPackage(storage)(req, res, next); - expect(next).toHaveBeenCalledWith(error); - }); -}); - -/** - * Publish package: '/:package/:_rev?/:revision?' - */ -describe('Publish endpoints - publish package', () => { - let req; - let res; - let next; - - beforeEach(() => { - req = { - body: { - name: 'verdaccio' - }, - params: { - package: 'verdaccio' - } - }; - res = { status: jest.fn() }; - next = jest.fn(); - }); - - test('should change the existing package', () => { - const storage = { - changePackage: jest.fn() - }; - - req.params._rev = REVISION_MOCK; - - // @ts-ignore - publishPackage(storage)(req, res, next); - expect(storage.changePackage).toMatchSnapshot(); - }); - - test('should publish a new a new package', () => { - const storage = { - addPackage: jest.fn() - }; - - // @ts-ignore - publishPackage(storage)(req, res, next); - expect(storage.addPackage).toMatchSnapshot(); - }); - - test('should throw an error while publishing package', () => { - const storage = { - addPackage() { - throw new Error(); - } - }; - - // @ts-ignore - publishPackage(storage)(req, res, next); - expect(next).toHaveBeenCalledWith(new Error(API_ERROR.BAD_PACKAGE_DATA)); - }); - - describe('test start', () => { - test('should star a package', () => { - const storage = { - changePackage: jest.fn(), - getPackage({ callback }) { - callback(null, { - users: {} - }); - } - }; - req = { - params: { - package: 'verdaccio' - }, - body: { - _rev: REVISION_MOCK, - users: { - verdaccio: true - } - }, - remote_user: { - name: 'verdaccio' - } - }; - - // @ts-ignore - publishPackage(storage)(req, res, next); - expect(storage.changePackage).toMatchSnapshot(); - }); - }); -}); diff --git a/test/unit/modules/api/token.spec.ts b/test/unit/modules/api/token.spec.ts deleted file mode 100644 index d2b28e9a9..000000000 --- a/test/unit/modules/api/token.spec.ts +++ /dev/null @@ -1,228 +0,0 @@ -import request from 'supertest'; -import path from 'path'; -import rimraf from 'rimraf'; -import _ from 'lodash'; - -import configDefault from '../../partials/config'; -import endPointAPI from '../../../../src/api'; - -import { - HEADERS, - HTTP_STATUS, - HEADER_TYPE, - TOKEN_BEARER, - API_ERROR, - SUPPORT_ERRORS -} from '../../../../src/lib/constants'; -import { mockServer } from '../../__helper/mock'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; -import { getNewToken } from '../../__helper/api'; -import { buildToken } from '../../../../src/lib/utils'; - -require('../../../../src/lib/logger').setup([{ type: 'stdout', format: 'pretty', level: 'trace' }]); - -const credentials = { name: 'jota_token', password: 'secretPass' }; - -const generateTokenCLI = async (app, token, payload): Promise => { - return new Promise((resolve, reject) => { - request(app) - .post('/-/npm/v1/tokens') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send(JSON.stringify(payload)) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .end(function (err, resp) { - if (err) { - return reject([err, resp]); - } - resolve([err, resp]); - }); - }); -}; - -const deleteTokenCLI = async (app, token, tokenToDelete): Promise => { - return new Promise((resolve, reject) => { - request(app) - .delete(`/-/npm/v1/tokens/token/${tokenToDelete}`) - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .end(function (err, resp) { - if (err) { - return reject([err, resp]); - } - resolve([err, resp]); - }); - }); -}; - -describe('endpoint unit test', () => { - let app; - let mockRegistry; - let token; - - beforeAll(function (done) { - const store = path.join(__dirname, '../../partials/store/test-storage-token-spec'); - const mockServerPort = 55543; - rimraf(store, async () => { - const configForTest = configDefault( - { - auth: { - htpasswd: { - file: './test-storage-token-spec/.htpasswd-token' - } - }, - storage: store, - self_path: store, - uplinks: { - npmjs: { - url: `http://${DOMAIN_SERVERS}:${mockServerPort}` - } - }, - logs: [{ type: 'stdout', format: 'pretty', level: 'trace' }] - }, - 'token.spec.yaml' - ); - - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); - token = await getNewToken(request(app), credentials); - - done(); - }); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - describe('Registry Token Endpoints', () => { - test('should list empty tokens', async (done) => { - request(app) - .get('/-/npm/v1/tokens') - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err, resp) { - if (err) { - return done(err); - } - - const { objects, urls } = resp.body; - expect(objects).toHaveLength(0); - expect(urls.next).toEqual(''); - done(); - }); - }); - - test('should generate one token', async (done) => { - await generateTokenCLI(app, token, { - password: credentials.password, - readonly: false, - cidr_whitelist: [] - }); - - request(app) - .get('/-/npm/v1/tokens') - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err, resp) { - if (err) { - return done(err); - } - - const { objects, urls } = resp.body; - - expect(objects).toHaveLength(1); - const [tokenGenerated] = objects; - expect(tokenGenerated.user).toEqual(credentials.name); - expect(tokenGenerated.readonly).toBeFalsy(); - expect(tokenGenerated.token).toMatch(/.../); - expect(_.isString(tokenGenerated.created)).toBeTruthy(); - - // we don't support pagination yet - expect(urls.next).toEqual(''); - done(); - }); - }); - - test('should delete a token', async (done) => { - const res = await generateTokenCLI(app, token, { - password: credentials.password, - readonly: false, - cidr_whitelist: [] - }); - - const t = res[1].body.token; - - await deleteTokenCLI(app, token, t); - - request(app) - .get('/-/npm/v1/tokens') - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BEARER, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function (err) { - if (err) { - return done(err); - } - - // FIXME: enable these checks - // const { objects } = resp.body; - // expect(objects).toHaveLength(0); - done(); - }); - }); - - describe('handle errors', () => { - test('should fail with wrong credentials', async (done) => { - try { - await generateTokenCLI(app, token, { - password: 'wrongPassword', - readonly: false, - cidr_whitelist: [] - }); - done(); - } catch (e) { - const [err, body] = e; - expect(err).not.toBeNull(); - expect(body.error).toEqual(API_ERROR.BAD_USERNAME_PASSWORD); - expect(body.status).toEqual(HTTP_STATUS.UNAUTHORIZED); - done(); - } - }); - - test('should fail if readonly is missing', async (done) => { - try { - const res = await generateTokenCLI(app, token, { - password: credentials.password, - cidr_whitelist: [] - }); - - expect(res[0]).toBeNull(); - expect(res[1].body.error).toEqual(SUPPORT_ERRORS.PARAMETERS_NOT_VALID); - done(); - } catch (e) { - done(e); - } - }); - - test('should fail if cidr_whitelist is missing', async (done) => { - try { - const res = await generateTokenCLI(app, token, { - password: credentials.password, - readonly: false - }); - - expect(res[0]).toBeNull(); - expect(res[1].body.error).toEqual(SUPPORT_ERRORS.PARAMETERS_NOT_VALID); - done(); - } catch (e) { - done(e); - } - }); - }); - }); -}); diff --git a/test/unit/modules/api/validate.api.params.middleware.spec.ts b/test/unit/modules/api/validate.api.params.middleware.spec.ts deleted file mode 100644 index e99dbd037..000000000 --- a/test/unit/modules/api/validate.api.params.middleware.spec.ts +++ /dev/null @@ -1,43 +0,0 @@ -// ensure that all arguments are validated -import path from 'path'; -import fs from 'fs'; - -/** - * Validate. - app.param('package', validate_pkg); - app.param('filename', validate_name); - app.param('tag', validate_name); - app.param('version', validate_name); - app.param('revision', validate_name); - app.param('token', validate_name); - */ -describe('api endpoint app.param()', () => { - const file = '../endpoint/index.ts'; - let m; - const requirePath = path.normalize(path.join(__dirname + '/../../../../src/api/web/', file)); - const source = fs.readFileSync(requirePath, 'utf8'); - const very_scary_regexp = /\n\s*app\.(\w+)\s*\(\s*(("[^"]*")|('[^']*'))\s*,/g; - const appParams = {}; - - while ((m = very_scary_regexp.exec(source)) != null) { - if (m[1] === 'set') { - continue; - } - - let inner = m[2].slice(1, m[2].length - 1); - let t; - - inner.split('/').forEach(function (x) { - t = x.match(/^:([^?:]*)\??$/); - if (m[1] === 'param') { - appParams[x] = 'ok'; - } else if (t) { - appParams[t[1]] = appParams[t[1]] || m[0].trim(); - } - }); - } - - test.each(Object.keys(appParams))('should validate ":%s"', (param) => { - expect(appParams[param]).toEqual('ok'); - }); -}); diff --git a/test/unit/modules/auth/auth-utils.spec.ts b/test/unit/modules/auth/auth-utils.spec.ts deleted file mode 100644 index 97e532101..000000000 --- a/test/unit/modules/auth/auth-utils.spec.ts +++ /dev/null @@ -1,345 +0,0 @@ -import _ from 'lodash'; -import Auth from '../../../../src/lib/auth'; -import { CHARACTER_ENCODING, TOKEN_BEARER } from '../../../../src/lib/constants'; -// $FlowFixMe -import configExample from '../../partials/config'; -import AppConfig from '../../../../src/lib/config'; -import { setup } from '../../../../src/lib/logger'; - -import { buildToken, convertPayloadToBase64, parseConfigFile } from '../../../../src/lib/utils'; -import { - buildUserBuffer, - getApiToken, - getAuthenticatedMessage, - getMiddlewareCredentials, - getSecurity -} from '../../../../src/lib/auth-utils'; -import { aesDecrypt, verifyPayload } from '../../../../src/lib/crypto-utils'; -import { parseConfigurationFile } from '../../__helper'; - -import { IAuth } from '../../../../types'; -import { Config, Security, RemoteUser } from '@verdaccio/types'; - -setup([]); - -describe('Auth utilities', () => { - jest.setTimeout(20000); - - const parseConfigurationSecurityFile = (name) => { - return parseConfigurationFile(`security/${name}`); - }; - - function getConfig(configFileName: string, secret: string) { - const conf = parseConfigFile(parseConfigurationSecurityFile(configFileName)); - const secConf = _.merge(configExample(), conf); - secConf.secret = secret; - const config: Config = new AppConfig(secConf); - - return config; - } - - async function signCredentials( - configFileName: string, - username: string, - password: string, - secret = '12345', - methodToSpy: string, - methodNotBeenCalled: string - ): Promise { - const config: Config = getConfig(configFileName, secret); - const auth: IAuth = new Auth(config); - // @ts-ignore - const spy = jest.spyOn(auth, methodToSpy); - // @ts-ignore - const spyNotCalled = jest.spyOn(auth, methodNotBeenCalled); - const user: RemoteUser = { - name: username, - real_groups: [], - groups: [] - }; - const token = await getApiToken(auth, config, user, password); - expect(spy).toHaveBeenCalled(); - expect(spy).toHaveBeenCalledTimes(1); - expect(spyNotCalled).not.toHaveBeenCalled(); - expect(token).toBeDefined(); - - return token; - } - - const verifyJWT = (token: string, user: string, password: string, secret: string) => { - const payload = verifyPayload(token, secret); - expect(payload.name).toBe(user); - expect(payload.groups).toBeDefined(); - expect(payload.real_groups).toBeDefined(); - }; - - const verifyAES = (token: string, user: string, password: string, secret: string) => { - const payload = aesDecrypt(convertPayloadToBase64(token), secret).toString( - CHARACTER_ENCODING.UTF8 - ); - const content = payload.split(':'); - - expect(content[0]).toBe(user); - expect(content[0]).toBe(password); - }; - - describe('getApiToken test', () => { - test('should sign token with aes and security missing', async () => { - const token = await signCredentials( - 'security-missing', - 'test', - 'test', - '1234567', - 'aesEncrypt', - 'jwtEncrypt' - ); - - verifyAES(token, 'test', 'test', '1234567'); - expect(_.isString(token)).toBeTruthy(); - }); - - test('should sign token with aes and security empty', async () => { - const token = await signCredentials( - 'security-empty', - 'test', - 'test', - '123456', - 'aesEncrypt', - 'jwtEncrypt' - ); - - verifyAES(token, 'test', 'test', '123456'); - expect(_.isString(token)).toBeTruthy(); - }); - - test('should sign token with aes', async () => { - const token = await signCredentials( - 'security-basic', - 'test', - 'test', - '123456', - 'aesEncrypt', - 'jwtEncrypt' - ); - - verifyAES(token, 'test', 'test', '123456'); - expect(_.isString(token)).toBeTruthy(); - }); - - test('should sign token with legacy and jwt disabled', async () => { - const token = await signCredentials( - 'security-no-legacy', - 'test', - 'test', - 'x8T#ZCx=2t', - 'aesEncrypt', - 'jwtEncrypt' - ); - - expect(_.isString(token)).toBeTruthy(); - verifyAES(token, 'test', 'test', 'x8T#ZCx=2t'); - }); - - test('should sign token with legacy enabled and jwt enabled', async () => { - const token = await signCredentials( - 'security-jwt-legacy-enabled', - 'test', - 'test', - 'secret', - 'jwtEncrypt', - 'aesEncrypt' - ); - - verifyJWT(token, 'test', 'test', 'secret'); - expect(_.isString(token)).toBeTruthy(); - }); - - test('should sign token with jwt enabled', async () => { - const token = await signCredentials( - 'security-jwt', - 'test', - 'test', - 'secret', - 'jwtEncrypt', - 'aesEncrypt' - ); - - expect(_.isString(token)).toBeTruthy(); - verifyJWT(token, 'test', 'test', 'secret'); - }); - - test('should sign with jwt whether legacy is disabled', async () => { - const token = await signCredentials( - 'security-legacy-disabled', - 'test', - 'test', - 'secret', - 'jwtEncrypt', - 'aesEncrypt' - ); - - expect(_.isString(token)).toBeTruthy(); - verifyJWT(token, 'test', 'test', 'secret'); - }); - }); - - describe('getAuthenticatedMessage test', () => { - test('should sign token with jwt enabled', () => { - expect(getAuthenticatedMessage('test')).toBe("you are authenticated as 'test'"); - }); - }); - - describe('getMiddlewareCredentials test', () => { - describe('should get AES credentials', () => { - test.concurrent('should unpack aes token and credentials', async () => { - const secret = 'secret'; - const user = 'test'; - const pass = 'test'; - const token = await signCredentials( - 'security-legacy', - user, - pass, - secret, - 'aesEncrypt', - 'jwtEncrypt' - ); - const config: Config = getConfig('security-legacy', secret); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials(security, secret, `Bearer ${token}`); - expect(credentials).toBeDefined(); - // @ts-ignore - expect(credentials.user).toEqual(user); - // @ts-ignore - expect(credentials.password).toEqual(pass); - }); - - test.concurrent('should unpack aes token and credentials', async () => { - const secret = 'secret'; - const user = 'test'; - const pass = 'test'; - const token = buildUserBuffer(user, pass).toString('base64'); - const config: Config = getConfig('security-legacy', secret); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials(security, secret, `Basic ${token}`); - expect(credentials).toBeDefined(); - // @ts-ignore - expect(credentials.user).toEqual(user); - // @ts-ignore - expect(credentials.password).toEqual(pass); - }); - - test.concurrent('should return empty credential wrong secret key', async () => { - const secret = 'secret'; - const token = await signCredentials( - 'security-legacy', - 'test', - 'test', - secret, - 'aesEncrypt', - 'jwtEncrypt' - ); - const config: Config = getConfig('security-legacy', secret); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials( - security, - 'BAD_SECRET', - buildToken(TOKEN_BEARER, token) - ); - expect(credentials).not.toBeDefined(); - }); - - test.concurrent('should return empty credential wrong scheme', async () => { - const secret = 'secret'; - const token = await signCredentials( - 'security-legacy', - 'test', - 'test', - secret, - 'aesEncrypt', - 'jwtEncrypt' - ); - const config: Config = getConfig('security-legacy', secret); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials( - security, - secret, - buildToken('BAD_SCHEME', token) - ); - expect(credentials).not.toBeDefined(); - }); - - test.concurrent('should return empty credential corrupted payload', async () => { - const secret = 'secret'; - const config: Config = getConfig('security-legacy', secret); - const auth: IAuth = new Auth(config); - const token = auth.aesEncrypt(Buffer.from(`corruptedBuffer`)).toString('base64'); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials( - security, - secret, - buildToken(TOKEN_BEARER, token) - ); - expect(credentials).not.toBeDefined(); - }); - }); - - describe('should get JWT credentials', () => { - test('should return anonymous whether token is corrupted', () => { - const config: Config = getConfig('security-jwt', '12345'); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials( - security, - '12345', - buildToken(TOKEN_BEARER, 'fakeToken') - ); - - expect(credentials).toBeDefined(); - // @ts-ignore - expect(credentials.name).not.toBeDefined(); - // @ts-ignore - expect(credentials.real_groups).toBeDefined(); - // @ts-ignore - expect(credentials.real_groups).toEqual([]); - }); - - test('should return anonymous whether token and scheme are corrupted', () => { - const config: Config = getConfig('security-jwt', '12345'); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials( - security, - '12345', - buildToken('FakeScheme', 'fakeToken') - ); - - expect(credentials).not.toBeDefined(); - }); - - test('should verify succesfully a JWT token', async () => { - const secret = 'secret'; - const user = 'test'; - const config: Config = getConfig('security-jwt', secret); - const token = await signCredentials( - 'security-jwt', - user, - 'secretTest', - secret, - 'jwtEncrypt', - 'aesEncrypt' - ); - const security: Security = getSecurity(config); - const credentials = getMiddlewareCredentials( - security, - secret, - buildToken(TOKEN_BEARER, token) - ); - expect(credentials).toBeDefined(); - // @ts-ignore - expect(credentials.name).toEqual(user); - // @ts-ignore - expect(credentials.real_groups).toBeDefined(); - // @ts-ignore - expect(credentials.real_groups).toEqual([]); - }); - }); - }); -}); diff --git a/test/unit/modules/auth/crypto-utils.spec.ts b/test/unit/modules/auth/crypto-utils.spec.ts deleted file mode 100644 index d94288768..000000000 --- a/test/unit/modules/auth/crypto-utils.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { aesDecrypt, aesEncrypt } from '../../../../src/lib/crypto-utils'; -import { convertPayloadToBase64 } from '../../../../src/lib/utils'; - -describe('test crypto utils', () => { - describe('default encryption', () => { - test('decrypt payload flow', () => { - const payload = 'juan'; - const token = aesEncrypt(Buffer.from(payload), '12345').toString('base64'); - - const data = aesDecrypt(convertPayloadToBase64(token), '12345').toString('utf8'); - - expect(payload).toEqual(data); - }); - }); -}); diff --git a/test/unit/modules/auth/jwt.spec.ts b/test/unit/modules/auth/jwt.spec.ts deleted file mode 100644 index fdb810bfe..000000000 --- a/test/unit/modules/auth/jwt.spec.ts +++ /dev/null @@ -1,162 +0,0 @@ -import request from 'supertest'; -import path from 'path'; -import rimraf from 'rimraf'; - -import endPointAPI from '../../../../src/api'; - -import { - HEADERS, - HTTP_STATUS, - HEADER_TYPE, - TOKEN_BEARER, - TOKEN_BASIC, - API_ERROR -} from '../../../../src/lib/constants'; -import { mockServer } from '../../__helper/mock'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; -import { buildToken } from '../../../../src/lib/utils'; -import { addUser, getPackage, loginUserToken } from '../../__helper/api'; -import { setup } from '../../../../src/lib/logger'; -import configDefault from '../../partials/config'; -import { buildUserBuffer } from '../../../../src/lib/auth-utils'; - -setup([]); -const credentials = { name: 'JotaJWT', password: 'secretPass' }; - -const FORBIDDEN_VUE = 'authorization required to access package vue'; - -describe('endpoint user auth JWT unit test', () => { - jest.setTimeout(20000); - let app; - let mockRegistry; - const FAKE_TOKEN: string = buildToken(TOKEN_BEARER, 'fake'); - - beforeAll(function (done) { - const store = path.join(__dirname, '../../partials/store/test-jwt-storage'); - const mockServerPort = 55546; - rimraf(store, async () => { - const configForTest = configDefault( - { - storage: store, - uplinks: { - npmjs: { - url: `http://${DOMAIN_SERVERS}:${mockServerPort}` - } - }, - self_path: store, - auth: { - htpasswd: { - file: './test-jwt-storage/.htpasswd_jwt_auth' - } - }, - logs: [{ type: 'stdout', format: 'pretty', level: 'warn' }] - }, - 'api-jwt/jwt.yaml' - ); - - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - test('should test add a new user with JWT enabled', async (done) => { - const [err, res] = await addUser(request(app), credentials.name, credentials); - expect(err).toBeNull(); - expect(res.body.ok).toBeDefined(); - expect(res.body.token).toBeDefined(); - - const { token } = res.body; - expect(typeof token).toBe('string'); - expect(res.body.ok).toMatch(`user '${credentials.name}' created`); - - // testing JWT auth headers with token - // we need it here, because token is required - const [err1, resp1] = await getPackage(request(app), token, 'vue'); - expect(err1).toBeNull(); - expect(resp1.body).toBeDefined(); - expect(resp1.body.name).toMatch('vue'); - - const [err2, resp2] = await getPackage( - request(app), - FAKE_TOKEN, - 'vue', - HTTP_STATUS.UNAUTHORIZED - ); - expect(err2).toBeNull(); - expect(resp2.statusCode).toBe(HTTP_STATUS.UNAUTHORIZED); - expect(resp2.body.error).toMatch(FORBIDDEN_VUE); - done(); - }); - - test('should emulate npm login when user already exist', async (done) => { - const credentials = { name: 'jwtUser2', password: 'secretPass' }; - // creates an user - await addUser(request(app), credentials.name, credentials); - // it should fails conflict 409 - await addUser(request(app), credentials.name, credentials, HTTP_STATUS.CONFLICT); - - // npm will try to sign in sending credentials via basic auth header - const token = buildUserBuffer(credentials.name, credentials.password).toString('base64'); - // put should exist in request - // @ts-ignore - request(app) - .put(`/-/user/org.couchdb.user:${credentials.name}/-rev/undefined`) - .send(credentials) - .set(HEADERS.AUTHORIZATION, buildToken(TOKEN_BASIC, token)) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.CREATED) - .end(function (err, res) { - expect(err).toBeNull(); - expect(res.body.ok).toBeDefined(); - expect(res.body.token).toBeDefined(); - - done(); - }); - }); - - test('should fails on try to access with corrupted token', async (done) => { - const [err2, resp2] = await getPackage( - request(app), - FAKE_TOKEN, - 'vue', - HTTP_STATUS.UNAUTHORIZED - ); - expect(err2).toBeNull(); - expect(resp2.statusCode).toBe(HTTP_STATUS.UNAUTHORIZED); - expect(resp2.body.error).toMatch(FORBIDDEN_VUE); - done(); - }); - - test('should fails on login if user credentials are invalid even if jwt valid token is provided', async (done) => { - const credentials = { name: 'newFailsUser', password: 'secretPass' }; - const [err, res] = await addUser(request(app), credentials.name, credentials); - expect(err).toBeNull(); - expect(res.body.ok).toBeDefined(); - expect(res.body.token).toBeDefined(); - - const { token } = res.body; - expect(typeof token).toBe('string'); - expect(res.body.ok).toMatch(`user '${credentials.name}' created`); - - // we login when token is valid - const newCredentials = { name: 'newFailsUser', password: 'BAD_PASSWORD' }; - const [err2, resp2] = await loginUserToken( - request(app), - newCredentials.name, - newCredentials, - token, - HTTP_STATUS.UNAUTHORIZED - ); - expect(err2).toBeNull(); - expect(resp2.statusCode).toBe(HTTP_STATUS.UNAUTHORIZED); - expect(resp2.body.error).toMatch(API_ERROR.BAD_USERNAME_PASSWORD); - - done(); - }); -}); diff --git a/test/unit/modules/auth/profile.spec.ts b/test/unit/modules/auth/profile.spec.ts deleted file mode 100644 index 1c2d6abe5..000000000 --- a/test/unit/modules/auth/profile.spec.ts +++ /dev/null @@ -1,132 +0,0 @@ -import request from 'supertest'; -import _ from 'lodash'; -import path from 'path'; -import rimraf from 'rimraf'; - -import endPointAPI from '../../../../src/api'; -import { mockServer } from '../../__helper/mock'; -import { parseConfigFile } from '../../../../src/lib/utils'; -import { parseConfigurationFile } from '../../__helper'; -import { getNewToken, getProfile, postProfile } from '../../__helper/api'; -import { setup } from '../../../../src/lib/logger'; -import { API_ERROR, HTTP_STATUS, SUPPORT_ERRORS } from '../../../../src/lib/constants'; - -setup([]); - -const parseConfigurationProfile = () => { - return parseConfigurationFile(`profile/profile`); -}; - -describe('endpoint user profile', () => { - let app; - let mockRegistry; - jest.setTimeout(20000); - - beforeAll(function (done) { - const store = path.join(__dirname, '../../partials/store/test-profile-storage'); - const mockServerPort = 55544; - rimraf(store, async () => { - const parsedConfig = parseConfigFile(parseConfigurationProfile()); - const configForTest = _.assign({}, _.cloneDeep(parsedConfig), { - storage: store, - auth: { - htpasswd: { - file: './test-profile-storage/.htpasswd-auth-profile' - } - }, - self_path: store - }); - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - test('should fetch a profile of logged user', async (done) => { - const credentials = { name: 'JotaJWT', password: 'secretPass' }; - const token = await getNewToken(request(app), credentials); - const [err1, res1] = await getProfile(request(app), token); - - expect(err1).toBeNull(); - expect(res1.body.name).toBe(credentials.name); - done(); - }); - - describe('change password', () => { - test('should change password successfully', async (done) => { - const credentials = { name: 'userTest2000', password: 'secretPass000' }; - const body = { - password: { - new: '12345678', - old: credentials.password - } - }; - const token = await getNewToken(request(app), credentials); - const [err1, res1] = await postProfile(request(app), body, token); - - expect(err1).toBeNull(); - expect(res1.body.name).toBe(credentials.name); - done(); - }); - - test('should change password is too short', async (done) => { - const credentials = { name: 'userTest2001', password: 'secretPass001' }; - const body = { - password: { - new: 'p1', - old: credentials.password - } - }; - const token = await getNewToken(request(app), credentials); - const [, resp] = await postProfile(request(app), body, token, HTTP_STATUS.UNAUTHORIZED); - - expect(resp.error).not.toBeNull(); - /* eslint new-cap: 0 */ - expect(resp.error.text).toMatch(API_ERROR.PASSWORD_SHORT()); - done(); - }); - }); - - describe('change tfa', () => { - test('should report TFA is disabled', async (done) => { - const credentials = { name: 'userTest2002', password: 'secretPass002' }; - const body = { - tfa: {} - }; - const token = await getNewToken(request(app), credentials); - const [, resp] = await postProfile( - request(app), - body, - token, - HTTP_STATUS.SERVICE_UNAVAILABLE - ); - - expect(resp.error).not.toBeNull(); - expect(resp.error.text).toMatch(SUPPORT_ERRORS.TFA_DISABLED); - done(); - }); - }); - - describe('error handling', () => { - test('should forbid to fetch a profile with invalid token', async (done) => { - const [, resp] = await getProfile(request(app), `fakeToken`, HTTP_STATUS.UNAUTHORIZED); - - expect(resp.error).not.toBeNull(); - expect(resp.error.text).toMatch(API_ERROR.MUST_BE_LOGGED); - done(); - }); - - test('should forbid to update a profile with invalid token', async (done) => { - const [, resp] = await postProfile(request(app), {}, `fakeToken`, HTTP_STATUS.UNAUTHORIZED); - - expect(resp.error).not.toBeNull(); - expect(resp.error.text).toMatch(API_ERROR.MUST_BE_LOGGED); - done(); - }); - }); -}); diff --git a/test/unit/modules/basic_system.spec.ts b/test/unit/modules/basic_system.spec.ts deleted file mode 100644 index 2c1ea5e24..000000000 --- a/test/unit/modules/basic_system.spec.ts +++ /dev/null @@ -1,62 +0,0 @@ -import endPointAPI from '../../../src/api/index'; -import { API_ERROR } from '../../../src/lib/constants'; - -import express from 'express'; -import request from 'request'; -import rimraf from 'rimraf'; -import config from '../partials/config/index'; - -import { setup } from '../../../src/lib/logger'; - -setup([{ type: 'stdout', format: 'pretty', level: 'trace' }]); - -const app = express(); -const server = require('http').createServer(app); - -describe('basic system test', () => { - let port; - jest.setTimeout(20000); - - beforeAll(function (done) { - rimraf(__dirname + '/store/test-storage', done); - }); - - beforeAll(async function (done) { - app.use(await endPointAPI(config())); - - server.listen(0, function () { - port = server.address().port; - done(); - }); - }); - - afterAll((done) => { - server.close(done); - }); - - test('server should respond on /', (done) => { - request( - { - url: 'http://localhost:' + port + '/' - }, - function (err, res, body) { - expect(err).toBeNull(); - expect(body).toMatch(/Verdaccio/); - done(); - } - ); - }); - - test('server should respond on /___not_found_package', (done) => { - request( - { - url: `http://localhost:${port}/___not_found_package` - }, - function (err, res, body) { - expect(err).toBeNull(); - expect(body).toMatch(API_ERROR.NO_PACKAGE); - done(); - } - ); - }); -}); diff --git a/test/unit/modules/cli/cli.spec.ts b/test/unit/modules/cli/cli.spec.ts deleted file mode 100644 index eaadc5986..000000000 --- a/test/unit/modules/cli/cli.spec.ts +++ /dev/null @@ -1,229 +0,0 @@ -import path from 'path'; -import _ from 'lodash'; -import selfsigned from 'selfsigned'; -import os from 'os'; -import fs from 'fs'; - -import startServer from '../../../../src'; -import config from '../../partials/config'; -import { DEFAULT_DOMAIN, DEFAULT_PORT, DEFAULT_PROTOCOL } from '../../../../src/lib/constants'; -import { getListListenAddresses } from '../../../../src/lib/cli/utils'; -import { parseConfigFile } from '../../../../src/lib/utils'; -import { logger } from '../../../../src/lib/logger'; - -jest.mock('../../../../src/lib/logger', () => ({ - setup: jest.fn(), - logger: { - child: jest.fn(), - debug: jest.fn(), - trace: jest.fn(), - warn: jest.fn(), - error: jest.fn(), - fatal: jest.fn(), - }, -})); - -describe('startServer via API', () => { - const parseConfigurationFile = (name) => { - return parseConfigFile(path.join(__dirname, `../../partials/config/yaml/${name}.yaml`)); - }; - - describe('startServer launcher', () => { - test('should provide all HTTP server data', async (done) => { - const store = path.join(__dirname, 'partials/store'); - const serverName = 'verdaccio-test'; - const version = '1.0.0'; - const port = '6000'; - - await startServer(config(), port, store, version, serverName, (webServer, addrs, pkgName, pkgVersion) => { - expect(webServer).toBeDefined(); - expect(addrs).toBeDefined(); - expect(addrs.proto).toBe(DEFAULT_PROTOCOL); - expect(addrs.host).toBe(DEFAULT_DOMAIN); - expect(addrs.port).toBe(port); - expect(pkgName).toBeDefined(); - expect(pkgVersion).toBeDefined(); - expect(pkgVersion).toBe(version); - expect(pkgName).toBe(serverName); - done(); - }); - }); - - test('should set keepAliveTimeout to 0 seconds', async (done) => { - const store = path.join(__dirname, 'partials/store'); - const serverName = 'verdaccio-test'; - const version = '1.0.0'; - const port = '6100'; - - await startServer(config(parseConfigurationFile('server/keepalivetimeout-0')), port, store, version, serverName, (webServer, addrs, pkgName, pkgVersion) => { - expect(webServer).toBeDefined(); - expect(webServer.keepAliveTimeout).toBeDefined(); - expect(webServer.keepAliveTimeout).toBe(0); - expect(addrs).toBeDefined(); - expect(addrs.proto).toBe(DEFAULT_PROTOCOL); - expect(addrs.host).toBe(DEFAULT_DOMAIN); - expect(addrs.port).toBe(port); - expect(pkgName).toBeDefined(); - expect(pkgVersion).toBeDefined(); - expect(pkgVersion).toBe(version); - expect(pkgName).toBe(serverName); - done(); - }); - }); - - test('should set keepAliveTimeout to 60 seconds', async (done) => { - const store = path.join(__dirname, 'partials/store'); - const serverName = 'verdaccio-test'; - const version = '1.0.0'; - const port = '6200'; - - await startServer(config(parseConfigurationFile('server/keepalivetimeout-60')), port, store, version, serverName, (webServer, addrs, pkgName, pkgVersion) => { - expect(webServer).toBeDefined(); - expect(webServer.keepAliveTimeout).toBeDefined(); - expect(webServer.keepAliveTimeout).toBe(60000); - expect(addrs).toBeDefined(); - expect(addrs.proto).toBe(DEFAULT_PROTOCOL); - expect(addrs.host).toBe(DEFAULT_DOMAIN); - expect(addrs.port).toBe(port); - expect(pkgName).toBeDefined(); - expect(pkgVersion).toBeDefined(); - expect(pkgVersion).toBe(version); - expect(pkgName).toBe(serverName); - done(); - }); - }); - - test('should set keepAliveTimeout to 5 seconds per default', async (done) => { - const store = path.join(__dirname, 'partials/store'); - const serverName = 'verdaccio-test'; - const version = '1.0.0'; - const port = '6300'; - - await startServer(config(parseConfigurationFile('server/keepalivetimeout-undefined')), port, store, version, serverName, (webServer, addrs, pkgName, pkgVersion) => { - expect(webServer).toBeDefined(); - expect(webServer.keepAliveTimeout).toBeDefined(); - expect(webServer.keepAliveTimeout).toBe(5000); - expect(addrs).toBeDefined(); - expect(addrs.proto).toBe(DEFAULT_PROTOCOL); - expect(addrs.host).toBe(DEFAULT_DOMAIN); - expect(addrs.port).toBe(port); - expect(pkgName).toBeDefined(); - expect(pkgVersion).toBeDefined(); - expect(pkgVersion).toBe(version); - expect(pkgName).toBe(serverName); - done(); - }); - }); - - test('should provide all HTTPS server fails', async () => { - const store = path.join(__dirname, 'partials/store'); - const serverName = 'verdaccio-test'; - const version = '1.0.0'; - const address = 'https://www.domain.com:443'; - // @ts-ignore - jest.spyOn(process, 'exit').mockImplementation(() => {}); - - const conf = config(); - conf.https = {}; - // save process to catch exist - - startServer(conf, address, store, version, serverName, () => { - expect(logger.fatal).toHaveBeenCalled(); - expect(logger.fatal).toHaveBeenCalledTimes(2); - }); - }); - - test('should start a https server with key and cert', async (done) => { - const store = path.join(__dirname, 'partials/store'); - const serverName = 'verdaccio-test'; - const version = '1.0.0'; - const address = 'https://www.domain.com:443'; - const { private: key, cert } = selfsigned.generate(); - const keyPath = path.join(os.tmpdir(), 'key.pem'); - const certPath = path.join(os.tmpdir(), 'crt.pem'); - fs.writeFileSync(keyPath, key); - fs.writeFileSync(certPath, cert); - - const conf = config(); - conf.https = { - key: keyPath, - cert: certPath, - }; - - await startServer(conf, address, store, version, serverName, (webServer, addrs) => { - expect(webServer).toBeDefined(); - expect(addrs).toBeDefined(); - expect(addrs.proto).toBe('https'); - done(); - }); - }); - - test('should fails if config is missing', async () => { - try { - // @ts-ignore - await startServer(); - } catch (e) { - expect(e.message).toEqual('config file must be an object'); - } - }); - }); - - describe('getListListenAddresses test', () => { - test('should return no address if a single address is wrong', () => { - // @ts-ignore - const addrs = getListListenAddresses('wrong'); - - expect(_.isArray(addrs)).toBeTruthy(); - expect(addrs).toHaveLength(0); - }); - - test('should return no address if a two address are wrong', () => { - // @ts-ignore - const addrs = getListListenAddresses(['wrong', 'same-wrong']); - - expect(_.isArray(addrs)).toBeTruthy(); - expect(addrs).toHaveLength(0); - }); - - test('should return a list of 1 address provided', () => { - // @ts-ignore - const addrs = getListListenAddresses(null, '1000'); - - expect(_.isArray(addrs)).toBeTruthy(); - expect(addrs).toHaveLength(1); - }); - - test('should return a list of 2 address provided', () => { - // @ts-ignore - const addrs = getListListenAddresses(null, ['1000', '2000']); - - expect(_.isArray(addrs)).toBeTruthy(); - expect(addrs).toHaveLength(2); - }); - - test(`should return by default ${DEFAULT_PORT}`, () => { - // @ts-ignore - const [addrs] = getListListenAddresses(); - - // @ts-ignore - expect(addrs.proto).toBe(DEFAULT_PROTOCOL); - // @ts-ignore - expect(addrs.host).toBe(DEFAULT_DOMAIN); - // @ts-ignore - expect(addrs.port).toBe(DEFAULT_PORT); - }); - - test('should return default proto, host and custom port', () => { - const initPort = '1000'; - // @ts-ignore - const [addrs] = getListListenAddresses(null, initPort); - - // @ts-ignore - expect(addrs.proto).toEqual(DEFAULT_PROTOCOL); - // @ts-ignore - expect(addrs.host).toEqual(DEFAULT_DOMAIN); - // @ts-ignore - expect(addrs.port).toEqual(initPort); - }); - }); -}); diff --git a/test/unit/modules/cli/parseAddress.spec.ts b/test/unit/modules/cli/parseAddress.spec.ts deleted file mode 100644 index d2d897322..000000000 --- a/test/unit/modules/cli/parseAddress.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import _ from 'lodash'; -import { parseAddress as parse } from '../../../../src/lib/utils'; -import { DEFAULT_DOMAIN, DEFAULT_PORT } from '../../../../src/lib/constants'; - -describe('Parse listen address', () => { - const useCases: any[] = []; - - function addTest(uri: string, proto: string | null, host?: string, port?: string) { - useCases.push([uri, proto, host, port]); - } - - addTest(DEFAULT_PORT, 'http', DEFAULT_DOMAIN, DEFAULT_PORT); - addTest(':4873', 'http', DEFAULT_DOMAIN, DEFAULT_PORT); - addTest('blah:4873', 'http', 'blah', DEFAULT_PORT); - addTest('http://:4873', 'http', DEFAULT_DOMAIN, DEFAULT_PORT); - addTest('https::4873', 'https', DEFAULT_DOMAIN, DEFAULT_PORT); - addTest('https:blah:4873', 'https', 'blah', DEFAULT_PORT); - addTest('https://blah:4873/', 'https', 'blah', DEFAULT_PORT); - addTest('[::1]:4873', 'http', '::1', DEFAULT_PORT); - addTest('https:[::1]:4873', 'https', '::1', DEFAULT_PORT); - - addTest('unix:/tmp/foo.sock', 'http', '/tmp/foo.sock'); - addTest('http:unix:foo.sock', 'http', 'foo.sock'); - addTest('https://unix:foo.sock', 'https', 'foo.sock'); - addTest('https://unix:foo.sock:34', 'https', 'foo.sock:34'); - addTest('http://foo.sock:34', 'http', 'foo.sock', '34'); - - addTest('blah', null); - addTest('blah://4873', null); - addTest('https://blah:4873///', null); - addTest('unix:1234', 'http', 'unix', '1234'); // not unix socket - - test.each(useCases)(`should parse (%s - %s - %s - %s)`, (uri, proto, host, port) => { - const parsed = parse(uri); - - if (_.isNull(proto)) { - expect(parsed).toBeNull(); - } else if (port) { - expect(parsed).toEqual({ - proto, - host, - port - }); - } else { - expect(parsed).toEqual({ - proto, - path: host - }); - } - }); -}); diff --git a/test/unit/modules/config/config.spec.ts b/test/unit/modules/config/config.spec.ts deleted file mode 100644 index 3ec62859b..000000000 --- a/test/unit/modules/config/config.spec.ts +++ /dev/null @@ -1,98 +0,0 @@ -import path from 'path'; -import _ from 'lodash'; - -import Config from '../../../../src/lib/config'; -import { parseConfigFile } from '../../../../src/lib/utils'; -import { DEFAULT_REGISTRY, DEFAULT_UPLINK, ROLES, WEB_TITLE } from '../../../../src/lib/constants'; -import { setup } from '../../../../src/lib/logger'; - -setup([]); - -const resolveConf = (conf) => { - const { name, ext } = path.parse(conf); - - return path.join(__dirname, `../../../../conf/${name}${ext.startsWith('.') ? ext : '.yaml'}`); -}; -const checkDefaultUplink = (config) => { - expect(_.isObject(config.uplinks[DEFAULT_UPLINK])).toBeTruthy(); - expect(config.uplinks[DEFAULT_UPLINK].url).toMatch(DEFAULT_REGISTRY); -}; - -const checkDefaultConfPackages = (config) => { - // auth - expect(_.isObject(config.auth)).toBeTruthy(); - expect(_.isObject(config.auth.htpasswd)).toBeTruthy(); - expect(config.auth.htpasswd.file).toMatch(/htpasswd/); - - // web - expect(_.isObject(config.web)).toBeTruthy(); - expect(config.web.title).toBe(WEB_TITLE); - expect(config.web.enable).toBeUndefined(); - - // packages - expect(_.isObject(config.packages)).toBeTruthy(); - expect(Object.keys(config.packages).join('|')).toBe('@*/*|**'); - expect(config.packages['@*/*'].access).toBeDefined(); - expect(config.packages['@*/*'].access).toContainEqual(ROLES.$ALL); - expect(config.packages['@*/*'].publish).toBeDefined(); - expect(config.packages['@*/*'].publish).toContainEqual(ROLES.$AUTH); - expect(config.packages['@*/*'].proxy).toBeDefined(); - expect(config.packages['@*/*'].proxy).toContainEqual(DEFAULT_UPLINK); - expect(config.packages['**'].access).toBeDefined(); - expect(config.packages['**'].access).toContainEqual(ROLES.$ALL); - expect(config.packages['**'].publish).toBeDefined(); - expect(config.packages['**'].publish).toContainEqual(ROLES.$AUTH); - expect(config.packages['**'].proxy).toBeDefined(); - expect(config.packages['**'].proxy).toContainEqual(DEFAULT_UPLINK); - // uplinks - expect(config.uplinks[DEFAULT_UPLINK]).toBeDefined(); - expect(config.uplinks[DEFAULT_UPLINK].url).toEqual(DEFAULT_REGISTRY); - // audit - expect(config.middlewares).toBeDefined(); - expect(config.middlewares.audit).toBeDefined(); - expect(config.middlewares.audit.enabled).toBeTruthy(); - // logs - expect(config.logs).toBeDefined(); - expect(config.logs[0].type).toEqual('stdout'); - expect(config.logs[0].format).toEqual('pretty'); - expect(config.logs[0].level).toEqual('http'); - // must not be enabled by default - expect(config.notify).toBeUndefined(); - expect(config.store).toBeUndefined(); - expect(config.publish).toBeUndefined(); - expect(config.url_prefix).toBeUndefined(); - expect(config.url_prefix).toBeUndefined(); - - expect(config.experiments).toBeUndefined(); - expect(config.security).toBeUndefined(); -}; - -describe('Config file', () => { - beforeAll(function () { - /* eslint no-invalid-this: 0 */ - // @ts-ignore - this.config = new Config(parseConfigFile(resolveConf('default'))); - }); - - describe('Config file', () => { - test('parse docker.yaml', () => { - const config = new Config(parseConfigFile(resolveConf('docker'))); - checkDefaultUplink(config); - expect(config.storage).toBe('/verdaccio/storage/data'); - // @ts-ignore - expect(config.auth.htpasswd.file).toBe('/verdaccio/storage/htpasswd'); - checkDefaultConfPackages(config); - }); - - test('parse default.yaml', () => { - const config = new Config(parseConfigFile(resolveConf('default'))); - checkDefaultUplink(config); - expect(config.storage).toBe('./storage'); - // @ts-ignore - expect(config.auth.htpasswd.file).toBe('./htpasswd'); - checkDefaultConfPackages(config); - }); - }); - - describe('Config file', () => {}); -}); diff --git a/test/unit/modules/logger/parser.spec.ts b/test/unit/modules/logger/parser.spec.ts deleted file mode 100644 index 1863c8a06..000000000 --- a/test/unit/modules/logger/parser.spec.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { fillInMsgTemplate } from '../../../../src/lib/logger/formatter'; -import { LOG_VERDACCIO_ERROR, LOG_VERDACCIO_BYTES } from '../../../../src/api/middleware'; -import { HTTP_STATUS } from '@verdaccio/commons-api'; - -// the following mocks avoid use colors, thus the strings can be matched - -jest.mock('kleur', () => { - // we emulate colors with this pattern color[msg] - return { - green: (r) => `g[${r}]`, - yellow: (r) => `y[${r}]`, - black: (r) => `b[${r}]`, - blue: (r) => `bu[${r}]`, - red: (r) => `r[${r}]`, - cyan: (r) => `c[${r}]`, - magenta: (r) => `m[${r}]`, - white: (r) => `w[${r}]` - }; -}); - -jest.mock('util', () => { - // we need to override only one method, but still we need others - const originalModule = jest.requireActual('util'); - return { - ...originalModule, - inspect: (r) => r - }; -}); - -describe('Logger Parser', () => { - describe('basic messages', () => { - test('number object property', () => { - expect(fillInMsgTemplate('foo:@{foo}', { foo: 1 }, false)).toEqual('foo:1'); - }); - - test('string object property', () => { - expect(fillInMsgTemplate('foo:@{foo}', { foo: 'bar' }, false)).toEqual('foo:bar'); - }); - - test('empty message no object property', () => { - expect(fillInMsgTemplate('foo', undefined, false)).toEqual('foo'); - }); - - test('string no object property', () => { - expect(fillInMsgTemplate('foo', null, false)).toEqual('foo'); - }); - - test('string no object property with break line', () => { - expect(fillInMsgTemplate('foo \n bar', null, false)).toEqual('foo \n bar'); - }); - - test('string no object property with colors', () => { - expect(fillInMsgTemplate('foo', null, true)).toEqual('foo'); - }); - - test('string object property with colors', () => { - expect(fillInMsgTemplate('foo:@{foo}', { foo: 'bar' }, true)).toEqual(`foo:${'g[bar]'}`); - }); - }); - - describe('middleware log messages', () => { - describe('test errors log', () => { - const middlewareObject = { - name: 'verdaccio', - request: { - method: 'POST', - url: '/-/npm/v1/user' - }, - user: 'userTest2001', - remoteIP: '::ffff:127.0.0.1', - status: HTTP_STATUS.UNAUTHORIZED, - error: 'some error', - msg: - "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}', error: @{!error}" - }; - - test('should display error log', () => { - const expectedErrorMessage = `401, user: userTest2001(::ffff:127.0.0.1), req: 'POST /-/npm/v1/user', error: some error`; - expect(fillInMsgTemplate(LOG_VERDACCIO_ERROR, middlewareObject, false)).toEqual( - expectedErrorMessage - ); - }); - - test('should display error log with colors', () => { - const expectedErrorMessage = `401, user: g[userTest2001](g[::ffff:127.0.0.1]), req: 'g[POST] g[/-/npm/v1/user]', error: r[some error]`; - expect(fillInMsgTemplate(LOG_VERDACCIO_ERROR, middlewareObject, true)).toEqual( - expectedErrorMessage - ); - }); - }); - - describe('test bytes log', () => { - const middlewareObject = { - name: 'verdaccio', - hostname: 'macbook-touch', - pid: 85621, - sub: 'in', - level: 35, - request: { - method: 'PUT', - url: '/-/user/org.couchdb.user:userTest2002' - }, - user: 'userTest2002', - remoteIP: '::ffff:127.0.0.1', - status: 201, - error: undefined, - bytes: { in: 50, out: 405 }, - msg: - "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}', bytes: @{bytes.in}/@{bytes.out}", - time: '2019-07-20T11:31:49.939Z', - v: 0 - }; - - test('should display log with bytes', () => { - expect(fillInMsgTemplate(LOG_VERDACCIO_BYTES, middlewareObject, false)).toEqual( - `201, user: userTest2002(::ffff:127.0.0.1), req: 'PUT /-/user/org.couchdb.user:userTest2002', bytes: 50/405` - ); - }); - - test('should display log with bytes with colors', () => { - expect(fillInMsgTemplate(LOG_VERDACCIO_BYTES, middlewareObject, true)).toEqual( - `201, user: g[userTest2002](g[::ffff:127.0.0.1]), req: 'g[PUT] g[/-/user/org.couchdb.user:userTest2002]', bytes: 50/405` - ); - }); - }); - }); -}); diff --git a/test/unit/modules/notifications/notify.spec.ts b/test/unit/modules/notifications/notify.spec.ts deleted file mode 100644 index f1df3066e..000000000 --- a/test/unit/modules/notifications/notify.spec.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { parseConfigurationFile } from '../../__helper'; -import { parseConfigFile } from '../../../../src/lib/utils'; -import { notify } from '../../../../src/lib/notify'; - -import { notifyRequest } from '../../../../src/lib/notify/notify-request'; - -import { setup } from '../../../../src/lib/logger'; - -setup([]); - -jest.mock('./../../../../src/lib/notify/notify-request', () => ({ - notifyRequest: jest.fn((options, content) => Promise.resolve([options, content])) -})); - -const parseConfigurationNotifyFile = (name) => { - return parseConfigurationFile(`notify/${name}`); -}; -const singleNotificationConfig = parseConfigFile(parseConfigurationNotifyFile('single.notify')); -const singleHeaderNotificationConfig = parseConfigFile( - parseConfigurationNotifyFile('single.header.notify') -); -const packagePatternNotificationConfig = parseConfigFile( - parseConfigurationNotifyFile('single.packagePattern.notify') -); -const multiNotificationConfig = parseConfigFile(parseConfigurationNotifyFile('multiple.notify')); - -describe('Notifications:: Notify', () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - // FUTURE: we should add some sort of health check of all props, (not implemented yet) - - test('should not fails if config is not provided', async () => { - // @ts-ignore - await notify({}, {}); - - expect(notifyRequest).toHaveBeenCalledTimes(0); - }); - - test('should send notification', async () => { - const name = 'package'; - // @ts-ignore - const response = await notify({ name }, singleNotificationConfig, { name: 'foo' }, 'bar'); - const [options, content] = response; - - expect(options.headers).toBeDefined(); - expect(options.url).toBeDefined(); - expect(options.body).toBeDefined(); - expect(content).toMatch(name); - expect(response).toBeTruthy(); - expect(notifyRequest).toHaveBeenCalledTimes(1); - }); - - test('should send single header notification', async () => { - // @ts-ignore - await notify({}, singleHeaderNotificationConfig, { name: 'foo' }, 'bar'); - - expect(notifyRequest).toHaveBeenCalledTimes(1); - }); - - test('should send multiple notification', async () => { - // @ts-ignore - await notify({ name }, multiNotificationConfig, { name: 'foo' }, 'bar'); - - expect(notifyRequest).toHaveBeenCalled(); - expect(notifyRequest).toHaveBeenCalledTimes(3); - }); - - describe('packagePatternFlags', () => { - test('should send single notification with packagePatternFlags', async () => { - const name = 'package'; - // @ts-ignore - await notify({ name }, packagePatternNotificationConfig, { name: 'foo' }, 'bar'); - - expect(notifyRequest).toHaveBeenCalledTimes(1); - }); - - test('should not match on send single notification with packagePatternFlags', async () => { - const name = 'no-mach-name'; - // @ts-ignore - await notify({ name }, packagePatternNotificationConfig, { name: 'foo' }, 'bar'); - - expect(notifyRequest).toHaveBeenCalledTimes(0); - }); - }); -}); diff --git a/test/unit/modules/notifications/request.spec.ts b/test/unit/modules/notifications/request.spec.ts deleted file mode 100644 index d7f0ff752..000000000 --- a/test/unit/modules/notifications/request.spec.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { HTTP_STATUS, API_ERROR } from '../../../../src/lib/constants'; -/* eslint-disable @typescript-eslint/no-var-requires */ - -/** - * Mocks Logger Service - */ -const logger = { - logger: { - error: jest.fn(), - debug: jest.fn(), - info: jest.fn() - } -}; -jest.doMock('../../../../src/lib/logger', () => logger); - -/** - * Test Data - */ -const options = { - url: 'http://slack-service' -}; -const content = 'Verdaccio@x.x.x successfully published'; - -describe('Notifications:: notifyRequest', () => { - beforeEach(() => { - jest.resetModules(); - }); - - test('when notification service throws error', async () => { - jest.doMock('request', () => (options, resolver) => { - const response = { - statusCode: HTTP_STATUS.BAD_REQUEST - }; - const error = { - message: API_ERROR.BAD_DATA - }; - resolver(error, response); - }); - - const notification = require('../../../../src/lib/notify/notify-request'); - const args = [ - { errorMessage: 'bad data' }, - 'notify service has thrown an error: @{errorMessage}' - ]; - - await expect(notification.notifyRequest(options, content)).rejects.toEqual(API_ERROR.BAD_DATA); - expect(logger.logger.error).toHaveBeenCalledWith(...args); - }); - - test('when notification service throws error with null error value', async () => { - jest.doMock('request', () => (options, resolver) => { - const response = { - statusCode: HTTP_STATUS.BAD_REQUEST, - body: API_ERROR.BAD_DATA - }; - - resolver(null, response); - }); - - const notification = require('../../../../src/lib/notify/notify-request'); - const args = [ - { errorMessage: 'bad data' }, - 'notify service has thrown an error: @{errorMessage}' - ]; - - await expect(notification.notifyRequest(options, content)).rejects.toEqual(API_ERROR.BAD_DATA); - expect(logger.logger.error).toHaveBeenCalledWith(...args); - }); - - test('when notification is successfully delivered', async () => { - jest.doMock('request', () => (options, resolver) => { - const response = { - statusCode: HTTP_STATUS.OK, - body: 'Successfully delivered' - }; - - resolver(null, response, response.body); - }); - - const notification = require('../../../../src/lib/notify/notify-request'); - const infoArgs = [{ content }, 'A notification has been shipped: @{content}']; - const debugArgs = [{ body: 'Successfully delivered' }, ' body: @{body}']; - - await expect(notification.notifyRequest(options, content)).resolves.toEqual( - 'Successfully delivered' - ); - expect(logger.logger.info).toHaveBeenCalledWith(...infoArgs); - expect(logger.logger.debug).toHaveBeenCalledWith(...debugArgs); - }); - - test('when notification is successfully delivered but body is undefined/null', async () => { - jest.doMock('request', () => (options, resolver) => { - const response = { - statusCode: HTTP_STATUS.OK - }; - - resolver(null, response); - }); - - const notification = require('../../../../src/lib/notify/notify-request'); - const infoArgs = [{ content }, 'A notification has been shipped: @{content}']; - - await expect(notification.notifyRequest(options, content)).rejects.toThrow('body is missing'); - expect(logger.logger.info).toHaveBeenCalledWith(...infoArgs); - }); -}); diff --git a/test/unit/modules/plugin/auth.spec.ts b/test/unit/modules/plugin/auth.spec.ts deleted file mode 100644 index 26fb474b5..000000000 --- a/test/unit/modules/plugin/auth.spec.ts +++ /dev/null @@ -1,139 +0,0 @@ -import _ from 'lodash'; -import Auth from '../../../../src/lib/auth'; -import { authProfileConf, authPluginFailureConf, authPluginPassThrougConf } from './helper/plugin'; -import AppConfig from '../../../../src/lib/config'; -import { setup } from '../../../../src/lib/logger'; - -import { IAuth } from '../../../../types'; -import { Config } from '@verdaccio/types'; -import { ROLES } from '../../../../src/lib/constants'; -import { getInternalError } from '@verdaccio/commons-api'; - -setup([]); - -describe('AuthTest', () => { - test('should be defined', () => { - const config: Config = new AppConfig(_.cloneDeep(authProfileConf)); - const auth: IAuth = new Auth(config); - - expect(auth).toBeDefined(); - }); - - describe('test authenticate method', () => { - describe('test authenticate states', () => { - test('should be a success login', () => { - const config: Config = new AppConfig(_.cloneDeep(authProfileConf)); - const auth: IAuth = new Auth(config); - - expect(auth).toBeDefined(); - - const callback = jest.fn(); - const groups = ['test']; - - auth.authenticate('foo', 'bar', callback); - - expect(callback).toHaveBeenCalledTimes(1); - expect(callback).toHaveBeenCalledWith(null, { - groups: [ - 'test', - ROLES.$ALL, - ROLES.$AUTH, - ROLES.DEPRECATED_ALL, - ROLES.DEPRECATED_AUTH, - ROLES.ALL - ], - name: 'foo', - real_groups: groups - }); - }); - - test('should be a fail on login', () => { - const config: Config = new AppConfig(_.cloneDeep(authPluginFailureConf)); - const auth: IAuth = new Auth(config); - - expect(auth).toBeDefined(); - - const callback = jest.fn(); - - auth.authenticate('foo', 'bar', callback); - expect(callback).toHaveBeenCalledTimes(1); - expect(callback).toHaveBeenCalledWith(getInternalError()); - }); - }); - - // plugins are free to send whatever they want, so, we need to test some scenarios - // that might make break the request - // the @ts-ignore below are intended - describe('test authenticate out of control inputs from plugins', () => { - test('should skip falsy values', () => { - const config: Config = new AppConfig(_.cloneDeep(authPluginPassThrougConf)); - const auth: IAuth = new Auth(config); - - expect(auth).toBeDefined(); - - const callback = jest.fn(); - let index = 0; - - // as defined by https://developer.mozilla.org/en-US/docs/Glossary/Falsy - for (const value of [false, 0, '', null, undefined, NaN]) { - // @ts-ignore - auth.authenticate(null, value, callback); - const call = callback.mock.calls[index++]; - expect(call[0]).toBeDefined(); - expect(call[1]).toBeUndefined(); - } - }); - - test('should error truthy non-array', () => { - const config: Config = new AppConfig(_.cloneDeep(authPluginPassThrougConf)); - const auth: IAuth = new Auth(config); - - expect(auth).toBeDefined(); - - const callback = jest.fn(); - - for (const value of [true, 1, 'test', {}]) { - expect(function () { - // @ts-ignore - auth.authenticate(null, value, callback); - }).toThrow(TypeError); - expect(callback).not.toHaveBeenCalled(); - } - }); - - test('should skip empty array', () => { - const config: Config = new AppConfig(_.cloneDeep(authPluginPassThrougConf)); - const auth: IAuth = new Auth(config); - - expect(auth).toBeDefined(); - - const callback = jest.fn(); - const value = []; - - // @ts-ignore - auth.authenticate(null, value, callback); - expect(callback.mock.calls).toHaveLength(1); - expect(callback.mock.calls[0][0]).toBeDefined(); - expect(callback.mock.calls[0][1]).toBeUndefined(); - }); - - test('should accept valid array', () => { - const config: Config = new AppConfig(_.cloneDeep(authPluginPassThrougConf)); - const auth: IAuth = new Auth(config); - - expect(auth).toBeDefined(); - - const callback = jest.fn(); - let index = 0; - - for (const value of [[''], ['1'], ['0'], ['000']]) { - // @ts-ignore - auth.authenticate(null, value, callback); - const call = callback.mock.calls[index++]; - expect(call[0]).toBeNull(); - expect(call[1].real_groups).toBe(value); - } - }); - }); - }); -}); diff --git a/test/unit/modules/plugin/helper/plugin.ts b/test/unit/modules/plugin/helper/plugin.ts deleted file mode 100644 index d16fb9e06..000000000 --- a/test/unit/modules/plugin/helper/plugin.ts +++ /dev/null @@ -1,20 +0,0 @@ -import path from 'path'; -import config from '../../../partials/config'; - -export const authProfileConf = config({ - auth: { - [`${path.join(__dirname, '../../../partials/plugin/authenticate.success')}`]: {} - } -}); - -export const authPluginFailureConf = config({ - auth: { - [`${path.join(__dirname, '../../../partials/plugin/authenticate.fail')}`]: {} - } -}); - -export const authPluginPassThrougConf = config({ - auth: { - [`${path.join(__dirname, '../../../partials/plugin/authenticate.passthroug')}`]: {} - } -}); diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/.eslintrc b/test/unit/modules/plugin/partials/test-plugin-storage/.eslintrc deleted file mode 100644 index 3d8ee3681..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "rules": { - "@typescript-eslint/no-empty-function": 0, - "no-var": 0 - } -} diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-package/package.json b/test/unit/modules/plugin/partials/test-plugin-storage/invalid-package/package.json deleted file mode 100644 index 0233c3de0..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-package/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "invalid-package", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin-sanity/index.js b/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin-sanity/index.js deleted file mode 100644 index bf345d0f2..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin-sanity/index.js +++ /dev/null @@ -1,9 +0,0 @@ -function ValidVerdaccioPlugin() { - return { - // not valid method - // eslint-disable-next-line @typescript-eslint/no-empty-function - authenticate__: function(){} - } -} - -module.exports = ValidVerdaccioPlugin; diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin-sanity/package.json b/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin-sanity/package.json deleted file mode 100644 index d3d2e6d53..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin-sanity/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "invalid-plugin-sanity", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin/index.js b/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin/index.js deleted file mode 100644 index f053ebf79..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin/package.json b/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin/package.json deleted file mode 100644 index 45b96c189..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/invalid-plugin/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "invalid-plugin", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/.eslintrc b/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/.eslintrc deleted file mode 100644 index 8ec0114bb..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "max-len": "off" - } -} diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/dummy.js b/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/dummy.js deleted file mode 100644 index 5346f1fe6..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/dummy.js +++ /dev/null @@ -1,30 +0,0 @@ -// this is how a Babel.js transpiled plugin looks like - -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) {descriptor.writable = true;} Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) {defineProperties(Constructor.prototype, protoProps);} if (staticProps) {defineProperties(Constructor, staticProps);} return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Dummy = function () { - function Dummy(config, logger) { - _classCallCheck(this, Dummy); - - this.config = config; - this.logger = logger; - this.data = []; - } - - _createClass(Dummy, [{ - key: "getPackageStorage", - value: function getPackageStorage() {} - }]); - - return Dummy; -}(); - -exports.default = Dummy; diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/index.js b/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/index.js deleted file mode 100644 index 3630aabb2..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-es6-plugin/index.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; -/* eslint-disable @typescript-eslint/no-var-requires */ - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Dummy = undefined; - -var _dummy = require('./dummy'); - -var _dummy2 = _interopRequireDefault(_dummy); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.Dummy = _dummy2.default; -exports.default = _dummy2.default; diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-plugin/index.js b/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-plugin/index.js deleted file mode 100644 index 7fcfbb17d..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-plugin/index.js +++ /dev/null @@ -1,7 +0,0 @@ -function ValidVerdaccioPlugin() { - return { - authenticate: function(){} - } -} - -module.exports = ValidVerdaccioPlugin; diff --git a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-plugin/package.json b/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-plugin/package.json deleted file mode 100644 index 56dc78d45..000000000 --- a/test/unit/modules/plugin/partials/test-plugin-storage/verdaccio-plugin/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "verdaccio-plugin", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git a/test/unit/modules/plugin/plugin_loader.spec.ts b/test/unit/modules/plugin/plugin_loader.spec.ts deleted file mode 100644 index 8a1ec6026..000000000 --- a/test/unit/modules/plugin/plugin_loader.spec.ts +++ /dev/null @@ -1,84 +0,0 @@ -import path from 'path'; -import loadPlugin from '../../../../src/lib/plugin-loader'; -import { setup } from '../../../../src/lib/logger'; - -setup([]); - -describe('plugin loader', () => { - const relativePath = path.join(__dirname, './partials/test-plugin-storage'); - const buildConf = (name) => { - return { - self_path: path.join(__dirname, './'), - max_users: 0, - auth: { - [`${relativePath}/${name}`]: {} - } - }; - }; - - describe('auth plugins', () => { - test('testing auth valid plugin loader', () => { - const _config = buildConf('verdaccio-plugin'); - // @ts-ignore - const plugins = loadPlugin(_config, _config.auth, {}, function (plugin) { - return plugin.authenticate || plugin.allow_access || plugin.allow_publish; - }); - - expect(plugins).toHaveLength(1); - }); - - test('testing storage valid plugin loader', () => { - const _config = buildConf('verdaccio-es6-plugin'); - // @ts-ignore - const plugins = loadPlugin(_config, _config.auth, {}, function (p) { - return p.getPackageStorage; - }); - - expect(plugins).toHaveLength(1); - }); - - test('testing auth plugin invalid plugin', () => { - const _config = buildConf('invalid-plugin'); - try { - // @ts-ignore - loadPlugin(_config, _config.auth, {}, function (p) { - return p.authenticate || p.allow_access || p.allow_publish; - }); - } catch (e) { - expect(e.message).toEqual( - `"${relativePath}/invalid-plugin" plugin does not have the right code structure` - ); - } - }); - - test('testing auth plugin invalid plugin sanityCheck', () => { - const _config = buildConf('invalid-plugin-sanity'); - try { - // @ts-ignore - loadPlugin(_config, _config.auth, {}, function (plugin) { - return plugin.authenticate || plugin.allow_access || plugin.allow_publish; - }); - } catch (err) { - expect(err.message).toEqual( - `sanity check has failed, "${relativePath}/invalid-plugin-sanity" is not a valid plugin` - ); - } - }); - - test('testing auth plugin no plugins', () => { - const _config = buildConf('invalid-package'); - try { - // @ts-ignore - loadPlugin(_config, _config.auth, {}, function (plugin) { - return plugin.authenticate || plugin.allow_access || plugin.allow_publish; - }); - } catch (e) { - expect(e.message).toMatch('plugin not found'); - expect(e.message).toMatch('/partials/test-plugin-storage/invalid-package'); - } - }); - - test.todo('test middleware plugins'); - test.todo('test storage plugins'); - }); -}); diff --git a/test/unit/modules/search/search.spec.ts b/test/unit/modules/search/search.spec.ts deleted file mode 100644 index 81a454dd8..000000000 --- a/test/unit/modules/search/search.spec.ts +++ /dev/null @@ -1,66 +0,0 @@ -import Search from '../../../../src/lib/search'; -import Config from '../../../../src/lib/config'; -import Storage from '../../../../src/lib/storage'; -import buildConfig from '../../partials/config'; -import { setup } from '../../../../src/lib/logger'; - -setup([]); - -let packages = [ - { - name: 'test1', - description: 'description', - _npmUser: { - name: 'test_user' - } - }, - { - name: 'test2', - description: 'description', - _npmUser: { - name: 'test_user' - } - }, - { - name: 'test3', - description: 'description', - _npmUser: { - name: 'test_user' - } - } -]; - -describe('search', () => { - beforeAll(async function () { - let config = new Config(buildConfig()); - const storage = new Storage(config); - await storage.init(config); - Search.configureStorage(storage); - packages.map(function (item) { - // @ts-ignore - Search.add(item); - }); - }); - - test('search query item', () => { - let result = Search.query('t'); - expect(result).toHaveLength(3); - }); - - test('search remove item', () => { - let item = { - name: 'test6', - description: 'description', - _npmUser: { - name: 'test_user' - } - }; - // @ts-ignore - Search.add(item); - let result = Search.query('test6'); - expect(result).toHaveLength(1); - Search.remove(item.name); - result = Search.query('test6'); - expect(result).toHaveLength(0); - }); -}); diff --git a/test/unit/modules/storage/local-storage.spec.ts b/test/unit/modules/storage/local-storage.spec.ts deleted file mode 100644 index b11a362d5..000000000 --- a/test/unit/modules/storage/local-storage.spec.ts +++ /dev/null @@ -1,544 +0,0 @@ -import rimRaf from 'rimraf'; -import path from 'path'; - -import LocalStorage from '../../../../src/lib/local-storage'; -import AppConfig from '../../../../src/lib/config'; -// @ts-ignore -import configExample from '../../partials/config'; -import { logger, setup } from '../../../../src/lib/logger'; -import { readFile } from '../../../functional/lib/test.utils'; -import { generatePackageTemplate } from '../../../../src/lib/storage-utils'; -import { generateNewVersion } from '../../../lib/utils-test'; - -const readMetadata = (fileName = 'metadata') => - readFile(`../../unit/partials/${fileName}`).toString(); - -import { Config, MergeTags, Package } from '@verdaccio/types'; -import { IStorage } from '../../../../types'; -import { API_ERROR, HTTP_STATUS, DIST_TAGS } from '../../../../src/lib/constants'; -import { VerdaccioError } from '@verdaccio/commons-api'; - -setup([]); - -describe('LocalStorage', () => { - let storage: IStorage; - const pkgName = 'npm_test'; - const pkgNameScoped = `@scope/${pkgName}-scope`; - const tarballName = `${pkgName}-add-tarball-1.0.4.tgz`; - const tarballName2 = `${pkgName}-add-tarball-1.0.5.tgz`; - - const getStorage = (LocalStorageClass = LocalStorage) => { - const config: Config = new AppConfig( - configExample({ - self_path: path.join('../partials/store') - }) - ); - - return new LocalStorageClass(config, logger); - }; - - const getPackageMetadataFromStore = (pkgName: string): Promise => { - return new Promise((resolve) => { - storage.getPackageMetadata(pkgName, (err, data) => { - resolve(data); - }); - }); - }; - - const addNewVersion = (pkgName: string, version: string) => { - return new Promise((resolve) => { - storage.addVersion( - pkgName, - version, - generateNewVersion(pkgName, version), - '', - (err, data) => { - resolve(data); - } - ); - }); - }; - const addTarballToStore = (pkgName: string, tarballName) => { - return new Promise((resolve, reject) => { - const tarballData = JSON.parse(readMetadata('addTarball').toString()); - const stream = storage.addTarball(pkgName, tarballName); - - stream.on('error', (err) => { - expect(err).toBeNull(); - reject(); - }); - stream.on('success', () => { - resolve(); - }); - - stream.end(Buffer.from(tarballData.data, 'base64')); - stream.done(); - }); - }; - - const addPackageToStore = (pkgName, metadata) => { - return new Promise((resolve, reject) => { - // @ts-ignore - const pkgStoragePath = storage._getLocalStorage(pkgName); - rimRaf(pkgStoragePath.path, (err) => { - expect(err).toBeNull(); - storage.addPackage(pkgName, metadata, async (err, data) => { - if (err) { - reject(err); - } - - resolve(data); - }); - }); - }); - }; - - beforeAll(() => { - storage = getStorage(); - }); - - test('should be defined', () => { - expect(storage).toBeDefined(); - }); - - describe('LocalStorage::preparePackage', () => { - test('should add a package', (done) => { - const metadata = JSON.parse(readMetadata().toString()); - // @ts-ignore - const pkgStoragePath = storage._getLocalStorage(pkgName); - rimRaf(pkgStoragePath.path, (err) => { - expect(err).toBeNull(); - storage.addPackage(pkgName, metadata, (err, data) => { - expect(data.version).toMatch(/1.0.0/); - expect(data.dist.tarball).toMatch(/npm_test-1.0.0.tgz/); - expect(data.name).toEqual(pkgName); - done(); - }); - }); - }); - - test('should add a @scope package', (done) => { - const metadata = JSON.parse(readMetadata()); - // @ts-ignore - const pkgStoragePath = storage._getLocalStorage(pkgNameScoped); - - rimRaf(pkgStoragePath.path, (err) => { - expect(err).toBeNull(); - storage.addPackage(pkgNameScoped, metadata, (err, data) => { - expect(data.version).toMatch(/1.0.0/); - expect(data.dist.tarball).toMatch(/npm_test-1.0.0.tgz/); - expect(data.name).toEqual(pkgName); - done(); - }); - }); - }); - - test('should fails on add a package', (done) => { - const metadata = JSON.parse(readMetadata()); - - storage.addPackage(pkgName, metadata, (err) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.CONFLICT); - expect(err.message).toMatch(API_ERROR.PACKAGE_EXIST); - done(); - }); - }); - - describe('LocalStorage::mergeTags', () => { - test('should mergeTags', async (done) => { - const pkgName = 'merge-tags-test-1'; - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - await addNewVersion(pkgName, '1.0.0'); - await addNewVersion(pkgName, '2.0.0'); - await addNewVersion(pkgName, '3.0.0'); - const tags: MergeTags = { - beta: '3.0.0', - latest: '2.0.0' - }; - - storage.mergeTags(pkgName, tags, async (err, data) => { - expect(err).toBeNull(); - expect(data).toBeUndefined(); - const metadata: Package = await getPackageMetadataFromStore(pkgName); - expect(metadata[DIST_TAGS]).toBeDefined(); - expect(metadata[DIST_TAGS]['beta']).toBeDefined(); - expect(metadata[DIST_TAGS]['beta']).toBe('3.0.0'); - expect(metadata[DIST_TAGS]['latest']).toBe('2.0.0'); - done(); - }); - }); - - test('should fails mergeTags version not found', async (done) => { - const pkgName = 'merge-tags-test-1'; - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - // const tarballName: string = `${pkgName}-${version}.tgz`; - await addNewVersion(pkgName, '1.0.0'); - await addNewVersion(pkgName, '2.0.0'); - await addNewVersion(pkgName, '3.0.0'); - const tags: MergeTags = { - beta: '9999.0.0' - }; - - storage.mergeTags(pkgName, tags, async (err) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.NOT_FOUND); - expect(err.message).toMatch(API_ERROR.VERSION_NOT_EXIST); - done(); - }); - }); - - test('should fails on mergeTags', async (done) => { - const tags: MergeTags = { - beta: '3.0.0', - latest: '2.0.0' - }; - - storage.mergeTags('not-found', tags, async (err) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.NOT_FOUND); - expect(err.message).toMatch(API_ERROR.NO_PACKAGE); - done(); - }); - }); - }); - - describe('LocalStorage::addVersion', () => { - test('should add new version without tag', async (done) => { - const pkgName = 'add-version-test-1'; - const version = '1.0.1'; - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - const tarballName = `${pkgName}-${version}.tgz`; - await addNewVersion(pkgName, '9.0.0'); - await addTarballToStore(pkgName, `${pkgName}-9.0.0.tgz`); - await addTarballToStore(pkgName, tarballName); - - storage.addVersion( - pkgName, - version, - generateNewVersion(pkgName, version), - '', - (err, data) => { - expect(err).toBeNull(); - expect(data).toBeUndefined(); - done(); - } - ); - }); - - test('should fails on add a duplicated version without tag', async (done) => { - const pkgName = 'add-version-test-2'; - const version = '1.0.1'; - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - await addNewVersion(pkgName, version); - - storage.addVersion(pkgName, version, generateNewVersion(pkgName, version), '', (err) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.CONFLICT); - expect(err.message).toMatch(API_ERROR.PACKAGE_EXIST); - done(); - }); - }); - - test('should fails add new version wrong shasum', async (done) => { - const pkgName = 'add-version-test-4'; - const version = '4.0.0'; - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - const tarballName = `${pkgName}-${version}.tgz`; - await addTarballToStore(pkgName, tarballName); - - storage.addVersion( - pkgName, - version, - generateNewVersion(pkgName, version, 'fake'), - '', - (err) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.BAD_REQUEST); - expect(err.message).toMatch(/shasum error/); - done(); - } - ); - }); - - test('should add new second version without tag', async (done) => { - const pkgName = 'add-version-test-3'; - const version = '1.0.2'; - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - await addNewVersion(pkgName, '1.0.1'); - await addNewVersion(pkgName, '1.0.3'); - - storage.addVersion( - pkgName, - version, - generateNewVersion(pkgName, version), - 'beta', - (err, data) => { - expect(err).toBeNull(); - expect(data).toBeUndefined(); - done(); - } - ); - }); - }); - - describe('LocalStorage::updateVersions', () => { - const metadata = JSON.parse(readMetadata('metadata-update-versions-tags')); - const pkgName = 'add-update-versions-test-1'; - const version = '1.0.2'; - let _storage; - beforeEach((done) => { - class MockLocalStorage extends LocalStorage {} - // @ts-ignore - MockLocalStorage.prototype._writePackage = jest.fn(LocalStorage.prototype._writePackage); - _storage = getStorage(MockLocalStorage); - rimRaf(path.join(configExample().storage, pkgName), async () => { - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - await addNewVersion(pkgName, '1.0.1'); - await addNewVersion(pkgName, version); - done(); - }); - }); - - test('should update versions from external source', async (done) => { - _storage.updateVersions(pkgName, metadata, (err, data) => { - expect(err).toBeNull(); - expect(_storage._writePackage).toHaveBeenCalledTimes(1); - expect(data.versions['1.0.1']).toBeDefined(); - expect(data.versions[version]).toBeDefined(); - expect(data.versions['1.0.4']).toBeDefined(); - expect(data[DIST_TAGS]['latest']).toBeDefined(); - expect(data[DIST_TAGS]['latest']).toBe('1.0.1'); - expect(data[DIST_TAGS]['beta']).toBeDefined(); - expect(data[DIST_TAGS]['beta']).toBe('1.0.2'); - expect(data[DIST_TAGS]['next']).toBeDefined(); - expect(data[DIST_TAGS]['next']).toBe('1.0.4'); - expect(data['_rev'] === metadata['_rev']).toBeFalsy(); - expect(data.readme).toBe('readme 1.0.4'); - done(); - }); - }); - - test('should not update if the metadata match', (done) => { - _storage.updateVersions(pkgName, metadata, (e) => { - expect(e).toBeNull(); - _storage.updateVersions(pkgName, metadata, (err) => { - expect(err).toBeNull(); - expect(_storage._writePackage).toHaveBeenCalledTimes(1); - done(); - }); - }); - }); - }); - - describe('LocalStorage::changePackage', () => { - const pkgName = 'change-package'; - - test('should unpublish a version', async (done) => { - await addPackageToStore(pkgName, generatePackageTemplate(pkgName)); - await addNewVersion(pkgName, '1.0.1'); - await addNewVersion(pkgName, '1.0.2'); - await addNewVersion(pkgName, '1.0.3'); - const metadata = JSON.parse(readMetadata('changePackage/metadata-change')); - const rev: string = metadata['_rev']; - - storage.changePackage(pkgName, metadata, rev, (err) => { - expect(err).toBeUndefined(); - storage.getPackageMetadata(pkgName, (err, data) => { - expect(err).toBeNull(); - expect(data.versions['1.0.1']).toBeDefined(); - expect(data.versions['1.0.2']).toBeUndefined(); - expect(data.versions['1.0.3']).toBeUndefined(); - done(); - }); - }); - }); - }); - - describe('LocalStorage::tarball operations', () => { - describe('LocalStorage::addTarball', () => { - test('should add a new tarball', (done) => { - const tarballData = JSON.parse(readMetadata('addTarball')); - const stream = storage.addTarball(pkgName, tarballName); - - stream.on('error', (err) => { - expect(err).toBeNull(); - done(); - }); - stream.on('success', function () { - done(); - }); - - stream.end(Buffer.from(tarballData.data, 'base64')); - stream.done(); - }); - - test('should add a new second tarball', (done) => { - const tarballData = JSON.parse(readMetadata('addTarball')); - const stream = storage.addTarball(pkgName, tarballName2); - stream.on('error', (err) => { - expect(err).toBeNull(); - done(); - }); - stream.on('success', function () { - done(); - }); - - stream.end(Buffer.from(tarballData.data, 'base64')); - stream.done(); - }); - - test('should fails on add a duplicated new tarball', (done) => { - const tarballData = JSON.parse(readMetadata('addTarball')); - const stream = storage.addTarball(pkgName, tarballName); - stream.on('error', (err: VerdaccioError) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.CONFLICT); - expect(err.message).toMatch(/this package is already present/); - done(); - }); - stream.end(Buffer.from(tarballData.data, 'base64')); - stream.done(); - }); - - test('should fails on add a new tarball on missing package', (done) => { - const tarballData = JSON.parse(readMetadata('addTarball')); - const stream = storage.addTarball('unexsiting-package', tarballName); - stream.on('error', (err: VerdaccioError) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.NOT_FOUND); - expect(err.message).toMatch(/no such package available/); - done(); - }); - - stream.on('success', () => { - done(); - }); - - stream.end(Buffer.from(tarballData.data, 'base64')); - stream.done(); - }); - - test('should fails on use invalid package name on add a new tarball', (done) => { - const stream = storage.addTarball(pkgName, `${pkgName}-fails-add-tarball-1.0.4.tgz`); - stream.on('error', function (err: VerdaccioError) { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.BAD_DATA); - expect(err.message).toMatch(/refusing to accept zero-length file/); - done(); - }); - - stream.done(); - }); - - test('should fails on abort on add a new tarball', (done) => { - const stream = storage.addTarball('__proto__', `${pkgName}-fails-add-tarball-1.0.4.tgz`); - stream.abort(); - stream.on('error', function (err: VerdaccioError) { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.FORBIDDEN); - expect(err.message).toMatch(/can't use this filename/); - done(); - }); - - stream.done(); - }); - }); - describe('LocalStorage::removeTarball', () => { - test('should remove a tarball', (done) => { - storage.removeTarball(pkgName, tarballName2, 'rev', (err, pkg) => { - expect(err).toBeNull(); - expect(pkg).toBeUndefined(); - done(); - }); - }); - - test('should remove a tarball that does not exist', (done) => { - storage.removeTarball(pkgName, tarballName2, 'rev', (err) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.NOT_FOUND); - expect(err.message).toMatch(/no such file available/); - done(); - }); - }); - }); - - describe('LocalStorage::getTarball', () => { - test('should get a existing tarball', (done) => { - const stream = storage.getTarball(pkgName, tarballName); - stream.on('content-length', function (contentLength) { - expect(contentLength).toBe(279); - done(); - }); - stream.on('open', function () { - done(); - }); - }); - - test('should fails on get a tarball that does not exist', (done) => { - const stream = storage.getTarball('fake', tarballName); - stream.on('error', function (err: VerdaccioError) { - expect(err).not.toBeNull(); - expect(err.statusCode).toEqual(HTTP_STATUS.NOT_FOUND); - expect(err.message).toMatch(/no such file available/); - done(); - }); - }); - }); - - describe('LocalStorage::search', () => { - test('should find a tarball', (done) => { - // @ts-ignore - const stream = storage.search('99999'); - - stream.on('data', function each(pkg) { - expect(pkg.name).toEqual(pkgName); - }); - - stream.on('error', function (err) { - expect(err).not.toBeNull(); - done(); - }); - - stream.on('end', function () { - done(); - }); - }); - }); - }); - - describe('LocalStorage::removePackage', () => { - test.skip('should remove completely package', (done) => { - storage.removePackage(pkgName, (err, data) => { - expect(err).toBeNull(); - expect(data).toBeUndefined(); - done(); - }); - }); - - test('should remove completely @scoped package', (done) => { - storage.removePackage(pkgNameScoped, (err, data) => { - expect(err).toBeNull(); - expect(data).toBeUndefined(); - done(); - }); - }); - - test('should fails with package not found', (done) => { - const pkgName = 'npm_test_fake'; - storage.removePackage(pkgName, (err) => { - expect(err).not.toBeNull(); - expect(err.message).toMatch(/no such package available/); - done(); - }); - }); - - test('should fails with @scoped package not found', (done) => { - storage.removePackage(pkgNameScoped, (err) => { - expect(err).not.toBeNull(); - expect(err.message).toMatch(API_ERROR.NO_PACKAGE); - done(); - }); - }); - }); - }); -}); diff --git a/test/unit/modules/storage/merge.dist.tags.spec.ts b/test/unit/modules/storage/merge.dist.tags.spec.ts deleted file mode 100644 index 3ef5ff711..000000000 --- a/test/unit/modules/storage/merge.dist.tags.spec.ts +++ /dev/null @@ -1,66 +0,0 @@ -import assert from 'assert'; -let semverSort = require('../../../../src/lib/utils').semverSort; -import { mergeVersions } from '../../../../src/lib/metadata-utils'; - -require('../../../../src/lib/logger').setup([]); - -describe('Storage._merge_versions versions', () => { - test('simple', () => { - let pkg = { - versions: { a: 1, b: 1, c: 1 }, - 'dist-tags': {} - }; - - // @ts-ignore - mergeVersions(pkg, { versions: { a: 2, q: 2 } }); - - assert.deepEqual(pkg, { - versions: { a: 1, b: 1, c: 1, q: 2 }, - 'dist-tags': {} - }); - }); - - test('dist-tags - compat', () => { - let pkg = { - versions: {}, - 'dist-tags': { q: '1.1.1', w: '2.2.2' } - }; - - // @ts-ignore - mergeVersions(pkg, { 'dist-tags': { q: '2.2.2', w: '3.3.3', t: '4.4.4' } }); - - assert.deepEqual(pkg, { - versions: {}, - 'dist-tags': { q: '2.2.2', w: '3.3.3', t: '4.4.4' } - }); - }); - - test('dist-tags - staging', () => { - let pkg = { - versions: {}, - // we've been locally publishing 1.1.x in preparation for the next - // public release - 'dist-tags': { q: '1.1.10', w: '2.2.2' } - }; - // 1.1.2 is the latest public release, but we want to continue testing - // against our local 1.1.10, which may end up published as 1.1.3 in the - // future - - // @ts-ignore - mergeVersions(pkg, { 'dist-tags': { q: '1.1.2', w: '3.3.3', t: '4.4.4' } }); - - assert.deepEqual(pkg, { - versions: {}, - 'dist-tags': { q: '1.1.10', w: '3.3.3', t: '4.4.4' } - }); - }); - - test('semverSort', () => { - assert.deepEqual(semverSort(['1.2.3', '1.2', '1.2.3a', '1.2.3c', '1.2.3-b']), [ - '1.2.3a', - '1.2.3-b', - '1.2.3c', - '1.2.3' - ]); - }); -}); diff --git a/test/unit/modules/storage/storage-utils.spec.ts b/test/unit/modules/storage/storage-utils.spec.ts deleted file mode 100644 index 27e4534f7..000000000 --- a/test/unit/modules/storage/storage-utils.spec.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { normalizePackage, mergeUplinkTimeIntoLocal } from '../../../../src/lib/storage-utils'; -import { STORAGE, DIST_TAGS } from '../../../../src/lib/constants'; -import { readFile } from '../../../functional/lib/test.utils'; - -import { Package } from '@verdaccio/types'; - -const readMetadata = (fileName = 'metadata') => readFile(`../../unit/partials/${fileName}`); - -describe('Storage Utils', () => { - describe('normalizePackage', () => { - test('normalizePackage clean', () => { - const pkg = normalizePackage({ - _attachments: {}, - _distfiles: {}, - _rev: '', - _uplinks: {}, - name: '', - versions: {}, - [DIST_TAGS]: {} - }); - expect(pkg).toBeDefined(); - expect(pkg.time).toBeInstanceOf(Object); - expect(pkg.versions).toBeInstanceOf(Object); - expect(pkg[DIST_TAGS]).toBeInstanceOf(Object); - expect(pkg._distfiles).toBeInstanceOf(Object); - expect(pkg._attachments).toBeInstanceOf(Object); - expect(pkg._uplinks).toBeInstanceOf(Object); - }); - - test('normalizePackage partial metadata', () => { - // @ts-ignore - const pkg = normalizePackage(readMetadata('metadata')); - expect(pkg).toBeDefined(); - expect(pkg.time).toBeInstanceOf(Object); - expect(pkg.versions).toBeInstanceOf(Object); - expect(pkg[DIST_TAGS]).toBeInstanceOf(Object); - expect(pkg._distfiles).toBeInstanceOf(Object); - expect(pkg._attachments).toBeInstanceOf(Object); - expect(pkg._uplinks).toBeInstanceOf(Object); - }); - - test('normalizePackage partial default revision', () => { - // @ts-ignore - const pkg = normalizePackage(readMetadata('metadata')); - expect(pkg).toBeDefined(); - expect(pkg._rev).toBeDefined(); - expect(pkg._rev).toBe(STORAGE.DEFAULT_REVISION); - }); - }); - - describe('mergeTime', () => { - const vGroup1 = { - '1.0.15': '2018-06-12T23:15:05.864Z', - '1.0.16': '2018-06-12T23:17:46.578Z', - '1.0.17': '2018-06-12T23:20:59.106Z' - }; - const vGroup2 = { - '1.0.6': '2018-06-07T05:50:21.505Z', - '1.0.7': '2018-06-12T20:35:07.621Z' - }; - test('mergeTime basic', () => { - const pkg1: Package = { - _attachments: {}, - _distfiles: {}, - _rev: '', - _uplinks: {}, - time: { - modified: '2018-06-13T06:44:45.747Z', - created: '2018-06-07T05:50:21.505Z', - ...vGroup1 - }, - name: '', - versions: {}, - [DIST_TAGS]: {} - }; - - const pkg2: Package = { - _attachments: {}, - _distfiles: {}, - _rev: '', - _uplinks: {}, - name: '', - time: { - modified: '2019-06-13T06:44:45.747Z', - created: '2019-06-07T05:50:21.505Z', - ...vGroup2 - }, - versions: {}, - [DIST_TAGS]: {} - }; - - const mergedPkg = mergeUplinkTimeIntoLocal(pkg1, pkg2); - expect(Object.keys(mergedPkg)).toEqual([ - 'modified', - 'created', - ...Object.keys(vGroup1), - ...Object.keys(vGroup2) - ]); - }); - - test('mergeTime remote empty', () => { - const pkg1: Package = { - _attachments: {}, - _distfiles: {}, - _rev: '', - _uplinks: {}, - name: '', - time: { - modified: '2018-06-13T06:44:45.747Z', - created: '2018-06-07T05:50:21.505Z', - ...vGroup1 - }, - versions: {}, - [DIST_TAGS]: {} - }; - - const pkg2: Package = { - _attachments: {}, - _distfiles: {}, - _rev: '', - _uplinks: {}, - name: '', - versions: {}, - [DIST_TAGS]: {} - }; - const mergedPkg = mergeUplinkTimeIntoLocal(pkg1, pkg2); - expect(Object.keys(mergedPkg)).toEqual(['modified', 'created', ...Object.keys(vGroup1)]); - }); - }); -}); diff --git a/test/unit/modules/storage/store.spec.ts b/test/unit/modules/storage/store.spec.ts deleted file mode 100644 index 20ab3a762..000000000 --- a/test/unit/modules/storage/store.spec.ts +++ /dev/null @@ -1,209 +0,0 @@ -import path from 'path'; -import fs from 'fs'; -import rimraf from 'rimraf'; -import { Writable } from 'stream'; -import configExample from '../../partials/config'; -import AppConfig from '../../../../src/lib/config'; -import Storage from '../../../../src/lib/storage'; -import { setup } from '../../../../src/lib/logger'; - -import { Config } from '@verdaccio/types'; -import { IStorageHandler } from '../../../../types'; -import { API_ERROR, HTTP_STATUS } from '../../../../src/lib/constants'; -import { mockServer } from '../../__helper/mock'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; - -setup([]); - -const storagePath = path.join(__dirname, '../../partials/store/test-storage-store.spec'); -const mockServerPort = 55548; -const generateStorage = async function (port = mockServerPort) { - const storageConfig = configExample( - { - self_path: __dirname, - storage: storagePath, - uplinks: { - npmjs: { - url: `http://${DOMAIN_SERVERS}:${port}` - } - } - }, - 'store.spec.yaml' - ); - - const config: Config = new AppConfig(storageConfig); - const store: IStorageHandler = new Storage(config); - await store.init(config, []); - - return store; -}; - -const generateSameUplinkStorage = async function (port = mockServerPort) { - const storageConfig = configExample( - { - self_path: __dirname, - storage: storagePath, - packages: { - jquery: { - access: ['$all'], - publish: ['$all'], - proxy: ['cached'] - }, - '@jquery/*': { - access: ['$all'], - publish: ['$all'], - proxy: ['notcached'] - } - }, - uplinks: { - cached: { - url: `http://${DOMAIN_SERVERS}:${port}`, - cache: true - }, - notcached: { - url: `http://${DOMAIN_SERVERS}:${port}`, - cache: false - } - } - }, - 'store.spec.yaml' - ); - - const config: Config = new AppConfig(storageConfig); - const store: IStorageHandler = new Storage(config); - await store.init(config, []); - - return store; -}; - -const createNullStream = () => - new Writable({ - write: function (chunk, encoding, next) { - next(); - } - }); - -describe('StorageTest', () => { - let mockRegistry; - - beforeAll((done) => { - rimraf(storagePath, async () => { - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - test('should be defined', async () => { - const storage: IStorageHandler = await generateStorage(); - - expect(storage).toBeDefined(); - }); - - describe('test getTarball', () => { - test('should select right uplink given package.proxy for upstream tarballs', async (done) => { - const storage: IStorageHandler = await generateSameUplinkStorage(); - const notcachedSpy = jest.spyOn(storage.uplinks.notcached, 'fetchTarball'); - const cachedSpy = jest.spyOn(storage.uplinks.cached, 'fetchTarball'); - - await new Promise((res, rej) => { - const reader = storage.getTarball('jquery', 'jquery-1.5.1.tgz'); - reader.on('end', () => { - expect(notcachedSpy).toHaveBeenCalledTimes(0); - expect(cachedSpy).toHaveBeenCalledTimes(1); - expect(cachedSpy).toHaveBeenCalledWith('http://0.0.0.0:55548/jquery/-/jquery-1.5.1.tgz'); - res(); - }); - reader.on('error', (err) => { - rej(err); - }); - reader.pipe(createNullStream()); - }); - - // Reset counters. - cachedSpy.mockClear(); - notcachedSpy.mockClear(); - - await new Promise((res, rej) => { - const reader = storage.getTarball('@jquery/jquery', 'jquery-1.5.1.tgz'); - reader.on('end', () => { - expect(cachedSpy).toHaveBeenCalledTimes(0); - expect(notcachedSpy).toHaveBeenCalledTimes(1); - expect(notcachedSpy).toHaveBeenCalledWith( - 'http://0.0.0.0:55548/@jquery%2fjquery/-/jquery-1.5.1.tgz' - ); - res(); - }); - reader.on('error', (err) => { - rej(err); - }); - reader.pipe(createNullStream()); - }); - - done(); - }); - }); - - describe('test _syncUplinksMetadata', () => { - test('should fetch from uplink jquery metadata from registry', async (done) => { - const storage: IStorageHandler = await generateStorage(); - - // @ts-ignore - storage._syncUplinksMetadata('jquery', null, {}, (err, metadata) => { - expect(err).toBeNull(); - expect(metadata).toBeDefined(); - expect(metadata).toBeInstanceOf(Object); - done(); - }); - }); - - test('should fails on fetch from uplink non existing from registry', async (done) => { - const storage: IStorageHandler = await generateStorage(); - - // @ts-ignore - storage._syncUplinksMetadata('@verdaccio/404', null, {}, (err, metadata, errors) => { - expect(err).not.toBeNull(); - expect(errors).toBeInstanceOf(Array); - expect(errors[0][0].statusCode).toBe(HTTP_STATUS.NOT_FOUND); - expect(errors[0][0].message).toMatch(API_ERROR.NOT_PACKAGE_UPLINK); - done(); - }); - }); - - test('should fails on fetch from uplink corrupted pkg from registry', async (done) => { - const storage: IStorageHandler = await generateStorage(); - - // @ts-ignore - storage._syncUplinksMetadata('corrupted-package', null, {}, (err, metadata, errors) => { - expect(err).not.toBeNull(); - expect(errors).toBeInstanceOf(Array); - expect(errors[0][0].statusCode).toBe(HTTP_STATUS.INTERNAL_ERROR); - expect(errors[0][0].message).toMatch(API_ERROR.BAD_STATUS_CODE); - done(); - }); - }); - - test('should not touch if the package exists and has no uplinks', async (done) => { - const storage: IStorageHandler = (await generateStorage()) as IStorageHandler; - const metadataSource = path.join(__dirname, '../../partials/metadata'); - const metadataPath = path.join(storagePath, 'npm_test/package.json'); - - fs.mkdirSync(path.join(storagePath, 'npm_test')); - fs.writeFileSync(metadataPath, fs.readFileSync(metadataSource)); - const metadata = JSON.parse(fs.readFileSync(metadataPath).toString()); - // @ts-ignore - storage.localStorage.updateVersions = jest.fn(storage.localStorage.updateVersions); - expect(metadata).toBeDefined(); - storage._syncUplinksMetadata('npm_test', metadata, {}, (err) => { - expect(err).toBeNull(); - // @ts-ignore - expect(storage.localStorage.updateVersions).not.toHaveBeenCalled(); - done(); - }); - }); - }); -}); diff --git a/test/unit/modules/uplinks/headers.auth.spec.ts b/test/unit/modules/uplinks/headers.auth.spec.ts deleted file mode 100644 index 7efd6feaa..000000000 --- a/test/unit/modules/uplinks/headers.auth.spec.ts +++ /dev/null @@ -1,158 +0,0 @@ -import ProxyStorage from '../../../../src/lib/up-storage'; -import { - ERROR_CODE, - TOKEN_BASIC, - TOKEN_BEARER, - DEFAULT_REGISTRY, - HEADERS -} from '../../../../src/lib/constants'; -import { buildToken } from '../../../../src/lib/utils'; -import { setup } from '../../../../src/lib/logger'; - -setup([]); - -function createUplink(config) { - const defaultConfig = { - url: DEFAULT_REGISTRY - }; - let mergeConfig = Object.assign({}, defaultConfig, config); - // @ts-ignore - return new ProxyStorage(mergeConfig, {}); -} - -function setHeaders(config: unknown = {}, headers: unknown = {}) { - const uplink = createUplink(config); - // @ts-ignore - return uplink._setHeaders({ - headers - }); -} - -describe('uplink headers auth test', () => { - test('if set headers empty should return default headers', () => { - const headers = setHeaders(); - const keys = Object.keys(headers); - const keysExpected = [HEADERS.ACCEPT, HEADERS.ACCEPT_ENCODING, HEADERS.USER_AGENT]; - - expect(keys).toEqual(keysExpected); - expect(keys).toHaveLength(3); - }); - - test('if assigns value invalid to attribute auth', () => { - const fnError = function () { - setHeaders({ - auth: '' - }); - }; - - expect(function () { - fnError(); - }).toThrow(Error('Auth invalid')); - }); - - test('if assigns the header authorization', () => { - const headers = setHeaders( - {}, - { - [HEADERS.AUTHORIZATION]: buildToken(TOKEN_BASIC, 'Zm9vX2Jhcg==') - } - ); - - expect(Object.keys(headers)).toHaveLength(4); - expect(headers[HEADERS.AUTHORIZATION]).toEqual(buildToken(TOKEN_BASIC, 'Zm9vX2Jhcg==')); - }); - - test('if assigns headers authorization and token the header precedes', () => { - const headers = setHeaders( - { - auth: { - type: TOKEN_BEARER, - token: 'tokenBearer' - } - }, - { - [HEADERS.AUTHORIZATION]: buildToken(TOKEN_BASIC, 'tokenBasic') - } - ); - - expect(headers[HEADERS.AUTHORIZATION]).toEqual(buildToken(TOKEN_BASIC, 'tokenBasic')); - }); - - test('set type auth basic', () => { - const headers = setHeaders({ - auth: { - type: TOKEN_BASIC, - token: 'Zm9vX2Jhcg==' - } - }); - - expect(Object.keys(headers)).toHaveLength(4); - expect(headers[HEADERS.AUTHORIZATION]).toEqual(buildToken(TOKEN_BASIC, 'Zm9vX2Jhcg==')); - }); - - test('set type auth bearer', () => { - const headers = setHeaders({ - auth: { - type: TOKEN_BEARER, - token: 'Zm9vX2Jhcf===' - } - }); - - expect(Object.keys(headers)).toHaveLength(4); - expect(headers[HEADERS.AUTHORIZATION]).toEqual(buildToken(TOKEN_BEARER, 'Zm9vX2Jhcf===')); - }); - - test('set auth type invalid', () => { - const fnError = function () { - setHeaders({ - auth: { - type: 'null', - token: 'Zm9vX2Jhcf===' - } - }); - }; - - expect(function () { - fnError(); - }).toThrow(Error(`Auth type 'null' not allowed`)); - }); - - test('set auth with NPM_TOKEN', () => { - process.env.NPM_TOKEN = 'myToken'; - const headers = setHeaders({ - auth: { - type: TOKEN_BEARER - } - }); - - expect(headers[HEADERS.AUTHORIZATION]).toBe(buildToken(TOKEN_BEARER, 'myToken')); - delete process.env.NPM_TOKEN; - }); - - test('set auth with token name and assigns in env', () => { - process.env.NPM_TOKEN_TEST = 'myTokenTest'; - const headers = setHeaders({ - auth: { - type: TOKEN_BASIC, - token_env: 'NPM_TOKEN_TEST' - } - }); - - expect(headers[HEADERS.AUTHORIZATION]).toBe(buildToken(TOKEN_BASIC, 'myTokenTest')); - delete process.env.NPM_TOKEN_TEST; - }); - - test('if token not set', () => { - const fnError = function () { - setHeaders({ - auth: { - type: TOKEN_BASIC - } - }); - }; - - expect(function () { - fnError(); - }).toThrow(ERROR_CODE.token_required); - }); -}); diff --git a/test/unit/modules/uplinks/noProxy.spec.ts b/test/unit/modules/uplinks/noProxy.spec.ts deleted file mode 100644 index 8f5a38d04..000000000 --- a/test/unit/modules/uplinks/noProxy.spec.ts +++ /dev/null @@ -1,96 +0,0 @@ -import ProxyStorage from '../../../../src/lib/up-storage'; - -require('../../../../src/lib/logger').setup([]); - -function setupProxy(host, uplinkConf, appConfig) { - uplinkConf.url = host; - - return new ProxyStorage(uplinkConf, appConfig); -} - -describe('Use proxy', () => { - test('should work fine without proxy', () => { - let x = setupProxy('http://x/x', {}, {}); - - expect(x.proxy).toEqual(undefined); - }); - - test('local config should take priority', () => { - let x = setupProxy('http://x/x', { http_proxy: '123' }, { http_proxy: '456' }); - expect(x.proxy).toEqual('123'); - }); - - test('no_proxy is invalid', () => { - let x = setupProxy('http://x/x', { http_proxy: '123', no_proxy: false }, {}); - - expect(x.proxy).toEqual('123'); - x = setupProxy('http://x/x', { http_proxy: '123', no_proxy: null }, {}); - expect(x.proxy).toEqual('123'); - x = setupProxy('http://x/x', { http_proxy: '123', no_proxy: [] }, {}); - expect(x.proxy).toEqual('123'); - x = setupProxy('http://x/x', { http_proxy: '123', no_proxy: '' }, {}); - expect(x.proxy).toEqual('123'); - }); - - test('no_proxy - simple/include', () => { - let x = setupProxy('http://localhost', { http_proxy: '123' }, { no_proxy: 'localhost' }); - - expect(x.proxy).toEqual(undefined); - }); - - test('no_proxy - simple/not', () => { - let x = setupProxy('http://localhost', { http_proxy: '123' }, { no_proxy: 'blah' }); - - expect(x.proxy).toEqual('123'); - }); - - test('no_proxy - various, single string', () => { - let x = setupProxy('http://blahblah', { http_proxy: '123' }, { no_proxy: 'blah' }); - - expect(x.proxy).toEqual('123'); - x = setupProxy('http://blah.blah', {}, { http_proxy: '123', no_proxy: 'blah' }); - expect(x.proxy).toEqual(undefined); - x = setupProxy('http://blahblah', {}, { http_proxy: '123', no_proxy: '.blah' }); - expect(x.proxy).toEqual('123'); - x = setupProxy('http://blah.blah', { http_proxy: '123', no_proxy: '.blah' }, {}); - expect(x.proxy).toEqual(undefined); - x = setupProxy('http://blah', { http_proxy: '123', no_proxy: '.blah' }, {}); - expect(x.proxy).toEqual(undefined); - x = setupProxy('http://blahh', { http_proxy: '123', no_proxy: 'blah' }, {}); - expect(x.proxy).toEqual('123'); - }); - - test('no_proxy - various, array', () => { - let x = setupProxy('http://blahblah', { http_proxy: '123' }, { no_proxy: 'foo,bar,blah' }); - - expect(x.proxy).toEqual('123'); - x = setupProxy('http://blah.blah', { http_proxy: '123' }, { no_proxy: 'foo,bar,blah' }); - expect(x.proxy).toEqual(undefined); - x = setupProxy('http://blah.foo', { http_proxy: '123' }, { no_proxy: 'foo,bar,blah' }); - expect(x.proxy).toEqual(undefined); - x = setupProxy('http://foo.baz', { http_proxy: '123' }, { no_proxy: 'foo,bar,blah' }); - expect(x.proxy).toEqual('123'); - x = setupProxy('http://blahblah', { http_proxy: '123' }, { no_proxy: ['foo', 'bar', 'blah'] }); - expect(x.proxy).toEqual('123'); - x = setupProxy('http://blah.blah', { http_proxy: '123' }, { no_proxy: ['foo', 'bar', 'blah'] }); - expect(x.proxy).toEqual(undefined); - }); - - test('no_proxy - hostport', () => { - let x = setupProxy('http://localhost:80', { http_proxy: '123' }, { no_proxy: 'localhost' }); - - expect(x.proxy).toEqual(undefined); - x = setupProxy('http://localhost:8080', { http_proxy: '123' }, { no_proxy: 'localhost' }); - expect(x.proxy).toEqual(undefined); - }); - - test('no_proxy - secure', () => { - let x = setupProxy('https://something', { http_proxy: '123' }, {}); - - expect(x.proxy).toEqual(undefined); - x = setupProxy('https://something', { https_proxy: '123' }, {}); - expect(x.proxy).toEqual('123'); - x = setupProxy('https://something', { http_proxy: '456', https_proxy: '123' }, {}); - expect(x.proxy).toEqual('123'); - }); -}); diff --git a/test/unit/modules/uplinks/up-storage.spec.ts b/test/unit/modules/uplinks/up-storage.spec.ts deleted file mode 100644 index f13f00616..000000000 --- a/test/unit/modules/uplinks/up-storage.spec.ts +++ /dev/null @@ -1,255 +0,0 @@ -import _ from 'lodash'; -import ProxyStorage from '../../../../src/lib/up-storage'; -import AppConfig from '../../../../src/lib/config'; -import configExample from '../../partials/config'; -import { setup } from '../../../../src/lib/logger'; - -import { Config, UpLinkConf } from '@verdaccio/types'; -import { IProxy } from '../../../../types'; -import { API_ERROR, HTTP_STATUS } from '../../../../src/lib/constants'; -import { mockServer } from '../../__helper/mock'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; -import { VerdaccioError } from '@verdaccio/commons-api'; - -setup([]); - -describe('UpStorge', () => { - const mockServerPort = 55547; - let mockRegistry; - const uplinkDefault = { - url: `http://0.0.0.0:${mockServerPort}` - }; - const generateProxy = (config: UpLinkConf = uplinkDefault) => { - const appConfig: Config = new AppConfig(configExample()); - - return new ProxyStorage(config, appConfig); - }; - - beforeAll(async () => { - mockRegistry = await mockServer(mockServerPort).init(); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - test('should be defined', () => { - const proxy = generateProxy(); - - expect(proxy).toBeDefined(); - }); - - describe('UpStorge::getRemoteMetadata', () => { - test('should be get remote metadata', (done) => { - const proxy = generateProxy(); - - proxy.getRemoteMetadata('jquery', {}, (err, data, etag) => { - expect(err).toBeNull(); - expect(_.isString(etag)).toBeTruthy(); - expect(data.name).toBe('jquery'); - done(); - }); - }); - - test('should be get remote metadata with etag', (done) => { - const proxy = generateProxy(); - - proxy.getRemoteMetadata('jquery', { etag: '123456' }, (err, data, etag) => { - expect(err).toBeNull(); - expect(_.isString(etag)).toBeTruthy(); - expect(data.name).toBe('jquery'); - done(); - }); - }); - - test('should be get remote metadata package does not exist', (done) => { - const proxy = generateProxy(); - - proxy.getRemoteMetadata('@verdaccio/fake-package', { etag: '123456' }, (err) => { - expect(err).not.toBeNull(); - expect(err.statusCode).toBe(HTTP_STATUS.NOT_FOUND); - expect(err.message).toMatch(API_ERROR.NOT_PACKAGE_UPLINK); - done(); - }); - }); - }); - - describe('UpStorge::fetchTarball', () => { - test('should fetch a tarball from uplink', (done) => { - const proxy = generateProxy(); - const tarball = `http://${DOMAIN_SERVERS}:${mockServerPort}/jquery/-/jquery-1.5.1.tgz`; - const stream = proxy.fetchTarball(tarball); - - stream.on('error', function (err) { - expect(err).toBeNull(); - done(); - }); - - stream.on('content-length', function (contentLength) { - expect(contentLength).toBeDefined(); - done(); - }); - }); - - test('should throw a 404 on fetch a tarball from uplink', (done) => { - const proxy = generateProxy(); - const tarball = `http://${DOMAIN_SERVERS}:${mockServerPort}/jquery/-/no-exist-1.5.1.tgz`; - const stream = proxy.fetchTarball(tarball); - - stream.on('error', function (err: VerdaccioError) { - expect(err).not.toBeNull(); - expect(err.statusCode).toBe(HTTP_STATUS.NOT_FOUND); - expect(err.message).toMatch(API_ERROR.NOT_FILE_UPLINK); - - done(); - }); - - stream.on('content-length', function (contentLength) { - expect(contentLength).toBeDefined(); - done(); - }); - }); - - test('should be offline uplink', (done) => { - const proxy = generateProxy(); - const tarball = 'http://404.verdaccioo.com'; - const stream = proxy.fetchTarball(tarball); - expect(proxy.failed_requests).toBe(0); - - // to test a uplink is offline we have to be try 3 times - // the default failed request are set to 2 - process.nextTick(function () { - stream.on('error', function (err) { - expect(err).not.toBeNull(); - // expect(err.statusCode).toBe(404); - expect(proxy.failed_requests).toBe(1); - - const streamSecondTry = proxy.fetchTarball(tarball); - streamSecondTry.on('error', function (err) { - expect(err).not.toBeNull(); - /* - code: 'ENOTFOUND', - errno: 'ENOTFOUND', - */ - // expect(err.statusCode).toBe(404); - expect(proxy.failed_requests).toBe(2); - const streamThirdTry = proxy.fetchTarball(tarball); - streamThirdTry.on('error', function (err: VerdaccioError) { - expect(err).not.toBeNull(); - expect(err.statusCode).toBe(HTTP_STATUS.INTERNAL_ERROR); - expect(proxy.failed_requests).toBe(2); - expect(err.message).toMatch(API_ERROR.UPLINK_OFFLINE); - done(); - }); - }); - }); - }); - }); - }); - - describe('UpStorge::isUplinkValid', () => { - describe('valid use cases', () => { - const validateUpLink = ( - url: string, - tarBallUrl = `${url}/artifactory/api/npm/npm/pk1-juan/-/pk1-juan-1.0.7.tgz` - ) => { - const uplinkConf = { url }; - const proxy: IProxy = generateProxy(uplinkConf); - - return proxy.isUplinkValid(tarBallUrl); - }; - - test('should validate tarball path against uplink', () => { - expect(validateUpLink('https://artifactory.mydomain.com')).toBe(true); - }); - - test('should validate tarball path against uplink case#2', () => { - expect(validateUpLink('https://artifactory.mydomain.com:443')).toBe(true); - }); - - test('should validate tarball path against uplink case#3', () => { - expect(validateUpLink('http://localhost')).toBe(true); - }); - - test('should validate tarball path against uplink case#4', () => { - expect(validateUpLink('http://my.domain.test')).toBe(true); - }); - - test('should validate tarball path against uplink case#5', () => { - expect(validateUpLink('http://my.domain.test:3000')).toBe(true); - }); - - // corner case https://github.com/verdaccio/verdaccio/issues/571 - test('should validate tarball path against uplink case#6', () => { - // same protocol, same domain, port === 443 which is also the standard for https - expect( - validateUpLink( - 'https://my.domain.test', - `https://my.domain.test:443/artifactory/api/npm/npm/pk1-juan/-/pk1-juan-1.0.7.tgz` - ) - ).toBe(true); - }); - - test('should validate tarball path against uplink case#7', () => { - expect(validateUpLink('https://artifactory.mydomain.com:5569')).toBe(true); - }); - - test('should validate tarball path against uplink case#8', () => { - expect(validateUpLink('https://localhost:5539')).toBe(true); - }); - }); - - describe('invalid use cases', () => { - test('should fails on validate tarball path against uplink', () => { - const url = 'https://artifactory.mydomain.com'; - const tarBallUrl = 'https://localhost/api/npm/npm/pk1-juan/-/pk1-juan-1.0.7.tgz'; - const uplinkConf = { url }; - const proxy: IProxy = generateProxy(uplinkConf); - - expect(proxy.isUplinkValid(tarBallUrl)).toBe(false); - }); - - test('should fails on validate tarball path against uplink case#2', () => { - // different domain same, same port, same protocol - const url = 'https://domain'; - const tarBallUrl = 'https://localhost/api/npm/npm/pk1-juan/-/pk1-juan-1.0.7.tgz'; - const uplinkConf = { url }; - const proxy: IProxy = generateProxy(uplinkConf); - - expect(proxy.isUplinkValid(tarBallUrl)).toBe(false); - }); - - test('should fails on validate tarball path against uplink case#3', () => { - // same domain, different protocol, different port - const url = 'http://localhost:5001'; - const tarBallUrl = 'https://localhost:4000/api/npm/npm/pk1-juan/-/pk1-juan-1.0.7.tgz'; - const uplinkConf = { url }; - const proxy: IProxy = generateProxy(uplinkConf); - - expect(proxy.isUplinkValid(tarBallUrl)).toBe(false); - }); - - test('should fails on validate tarball path against uplink case#4', () => { - // same domain, same protocol, different port - const url = 'https://subdomain.domain:5001'; - const tarBallUrl = - 'https://subdomain.domain:4000/api/npm/npm/pk1-juan/-/pk1-juan-1.0.7.tgz'; - const uplinkConf = { url }; - const proxy: IProxy = generateProxy(uplinkConf); - - expect(proxy.isUplinkValid(tarBallUrl)).toBe(false); - }); - - test('should fails on validate tarball path against uplink case#5', () => { - // different protocol, different domain, different port - const url = 'https://subdomain.my:5001'; - const tarBallUrl = 'http://subdomain.domain:4000/api/npm/npm/pk1-juan/-/pk1-juan-1.0.7.tgz'; - const uplinkConf = { url }; - const proxy: IProxy = generateProxy(uplinkConf); - - expect(proxy.isUplinkValid(tarBallUrl)).toBe(false); - }); - }); - }); -}); diff --git a/test/unit/modules/utils/__snapshots__/utils.spec.ts.snap b/test/unit/modules/utils/__snapshots__/utils.spec.ts.snap deleted file mode 100644 index 8491895fe..000000000 --- a/test/unit/modules/utils/__snapshots__/utils.spec.ts.snap +++ /dev/null @@ -1,51 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Utilities parseReadme should parse makrdown text to html template 1`] = ` -"

Project Title

-

One Paragraph of project description goes here

-

Getting Started

-

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

-

Prerequisites

-

What things you need to install the software and how to install them

-
Give examples
-
-

Installing

-

A step by step series of examples that tell you how to get a development env running

-

Say what the step will be

-
Give the example
-
-

And repeat

-
until finished
-
-

End with an example of getting some data out of the system or using it for a little demo

-

Running the tests

-

Explain how to run the automated tests for this system

-

Break down into end to end tests

-

Explain what these tests test and why

-
Give an example
-
-

And coding style tests

-

Explain what these tests test and why

-
Give an example
-
-

Deployment

-

Add additional notes about how to deploy this on a live system

-

Built With

-
    -
  • The web framework used
  • -
  • Dependency Management
  • -
  • Used to generate RSS Feeds
  • -
-

Contributing

-

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

-

Versioning

-

We use SemVer for versioning. For the versions available, see the tags on this repository.

-

License

-

This project is licensed under the MIT License - see the LICENSE.md file for details

-

Acknowledgments

-
    -
  • Hat tip to anyone whose code was used
  • -
  • Inspiration
  • -
  • etc
  • -
" -`; diff --git a/test/unit/modules/utils/api.__test.template.ts b/test/unit/modules/utils/api.__test.template.ts deleted file mode 100644 index c83ac63fc..000000000 --- a/test/unit/modules/utils/api.__test.template.ts +++ /dev/null @@ -1,93 +0,0 @@ -/** - * PLEASE DO NOT MODIFY THIS FILE - * - * This test is just for teaching purpose, use this example as template for your new endpoint API unit test - * - * If you have any questions, ask at the http://chat.verdaccio.org #questions channel. - * - */ -import request from 'supertest'; -import _ from 'lodash'; -import path from 'path'; -import rimraf from 'rimraf'; - -import endPointAPI from '../../../../src/api/index'; -import { mockServer } from '../../__helper/mock'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; -import { parseConfigFile } from '../../../../src/lib/utils'; -import { parseConfigurationFile } from '../../__helper'; -import { addUser } from '../../__helper/api'; -import { setup } from '../../../../src/lib/logger'; - -// we must start logging without output -setup([]); - -const parseConfigurationJWTFile = () => { - // Any new test must have a custom yaml file, try to name it based on the feature, the config - // file does not need to include all configuration, just the part is needs - // eg: test/unit/partials/config/yaml/api-jwt/jwt.yaml - return parseConfigurationFile(`api-jwt/jwt`); -}; - -describe('endpoint example unit test', () => { - let app; - let mockRegistry; - - beforeAll(function (done) { - // 1. We create a route for a custom storage folder for this test - const store = path.join(__dirname, '../../partials/store/test-template-storage'); - // 2. The port must be unique (at this point this is not automated, need to be checked manually) - const mockServerPort = 55546; - // 3. Use rimraf to clean the state each time you run the test - rimraf(store, async () => { - // 4. Use a custom configuration file - const confS = parseConfigFile(parseConfigurationJWTFile()); - // 5. Customise specific properties - const configForTest = _.assign({}, _.cloneDeep(confS), { - storage: store, - uplinks: { - npmjs: { - url: `http://${DOMAIN_SERVERS}:${mockServerPort}` - } - }, - // 6. The self_path is important be the same as the store - self_path: store, - // 7. Define the location of the .htpasswd file, this is relative to self_path. - auth: { - htpasswd: { - file: './test-jwt-storage/.htpasswd' - } - } - }); - - // 8. Use the helper `endPointAPI` to mock the API - app = await endPointAPI(configForTest); - // 9 . Use `mockServer` to mock launch the server. - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - }); - - afterAll(function (done) { - // 10. Do not forget to stop the API, or it will run forever. - mockRegistry[0].stop(); - done(); - }); - - test('should test add a new user with JWT enabled', async (done) => { - // At this point the server is running and you can run the test - - const credentials = { name: 'JotaJWT', password: 'secretPass' }; - // 11. Use helpers for repetitive tasks - // @ts-ignore - const [err, res] = await addUser(request(app), credentials.name, credentials); - - // 12. test your output - expect(err).toBeNull(); - expect(res.body.ok).toBeDefined(); - expect(res.body.token).toBeDefined(); - - // 13. end the async test - done(); - }); -}); diff --git a/test/unit/modules/utils/config-utils.spec.ts b/test/unit/modules/utils/config-utils.spec.ts deleted file mode 100644 index 245952f64..000000000 --- a/test/unit/modules/utils/config-utils.spec.ts +++ /dev/null @@ -1,317 +0,0 @@ -import path from 'path'; -import _ from 'lodash'; -import { spliceURL } from '../../../../src/utils/string'; -import { parseConfigFile } from '../../../../src/lib/utils'; -import { - getMatchedPackagesSpec, - hasProxyTo, - normalisePackageAccess, - sanityCheckUplinksProps, - uplinkSanityCheck -} from '../../../../src/lib/config-utils'; -import { PACKAGE_ACCESS, ROLES } from '../../../../src/lib/constants'; - -describe('Config Utilities', () => { - const parseConfigurationFile = (conf) => { - const { name, ext } = path.parse(conf); - const format = ext.startsWith('.') ? ext.substring(1) : 'yaml'; - - return path.join(__dirname, `../../partials/config/${format}/${name}.${format}`); - }; - - describe('uplinkSanityCheck', () => { - test('should test basic conversion', () => { - const uplinks = uplinkSanityCheck( - parseConfigFile(parseConfigurationFile('uplink-basic')).uplinks - ); - expect(Object.keys(uplinks)).toContain('server1'); - expect(Object.keys(uplinks)).toContain('server2'); - }); - - test('should throw error on blacklisted uplink name', () => { - const { uplinks } = parseConfigFile(parseConfigurationFile('uplink-wrong')); - - expect(() => { - uplinkSanityCheck(uplinks); - }).toThrow('CONFIG: reserved uplink name: anonymous'); - }); - }); - - describe('sanityCheckUplinksProps', () => { - test('should fails if url prop is missing', () => { - const { uplinks } = parseConfigFile(parseConfigurationFile('uplink-wrong')); - expect(() => { - sanityCheckUplinksProps(uplinks); - }).toThrow('CONFIG: no url for uplink: none-url'); - }); - - test('should bypass an empty uplink list', () => { - // @ts-ignore - expect(sanityCheckUplinksProps([])).toHaveLength(0); - }); - }); - - describe('normalisePackageAccess', () => { - test('should test basic conversion', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-basic')); - const access = normalisePackageAccess(packages); - - expect(access).toBeDefined(); - const scoped = access[`${PACKAGE_ACCESS.SCOPE}`]; - const all = access[`${PACKAGE_ACCESS.ALL}`]; - - expect(scoped).toBeDefined(); - expect(all).toBeDefined(); - }); - - test('should define an empty publish array even if is not defined in packages', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-basic-no-publish')); - const access = normalisePackageAccess(packages); - - const scoped = access[`${PACKAGE_ACCESS.SCOPE}`]; - const all = access[`${PACKAGE_ACCESS.ALL}`]; - // publish must defined - expect(scoped.publish).toBeDefined(); - expect(scoped.publish).toHaveLength(0); - expect(all.publish).toBeDefined(); - expect(all.publish).toHaveLength(0); - }); - - test('should define an empty access array even if is not defined in packages', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-basic-no-access')); - const access = normalisePackageAccess(packages); - - const scoped = access[`${PACKAGE_ACCESS.SCOPE}`]; - const all = access[`${PACKAGE_ACCESS.ALL}`]; - // publish must defined - expect(scoped.access).toBeDefined(); - expect(scoped.access).toHaveLength(0); - expect(all.access).toBeDefined(); - expect(all.access).toHaveLength(0); - }); - - test('should define an empty proxy array even if is not defined in package', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-basic-no-proxy')); - const access = normalisePackageAccess(packages); - - const scoped = access[`${PACKAGE_ACCESS.SCOPE}`]; - const all = access[`${PACKAGE_ACCESS.ALL}`]; - // publish must defined - expect(scoped.proxy).toBeDefined(); - expect(scoped.proxy).toHaveLength(0); - expect(all.proxy).toBeDefined(); - expect(all.proxy).toHaveLength(0); - }); - - test('should test multi user group definition', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-multi-group')); - const access = normalisePackageAccess(packages); - - expect(access).toBeDefined(); - const scoped = access[`${PACKAGE_ACCESS.SCOPE}`]; - - const all = access[`${PACKAGE_ACCESS.ALL}`]; - - expect(scoped).toBeDefined(); - expect(scoped.access).toContain('$all'); - expect(scoped.publish).toHaveLength(2); - expect(scoped.publish).toContain('admin'); - expect(scoped.publish).toContain('superadmin'); - - expect(all).toBeDefined(); - expect(all.access).toHaveLength(3); - expect(all.access).toContain('$all'); - expect(all.publish).toHaveLength(1); - expect(all.publish).toContain('admin'); - }); - - test('should normalize deprecated packages into the new ones (backward props compatible)', () => { - const { packages } = parseConfigFile(parseConfigurationFile('deprecated-pkgs-basic')); - const access = normalisePackageAccess(packages); - - expect(access).toBeDefined(); - const scoped = access[`${PACKAGE_ACCESS.SCOPE}`]; - const all = access[`${PACKAGE_ACCESS.ALL}`]; - const react = access['react-*']; - - expect(react).toBeDefined(); - expect(react.access).toBeDefined(); - - // Intended checks, Typescript should catch this, we test the runtime part - // @ts-ignore - expect(react.access[0]).toBe(ROLES.$ALL); - expect(react.publish).toBeDefined(); - // @ts-ignore - expect(react.publish[0]).toBe('admin'); - expect(react.proxy).toBeDefined(); - // @ts-ignore - expect(react.proxy[0]).toBe('uplink2'); - expect(react.storage).toBeDefined(); - - expect(react.storage).toBe('react-storage'); - expect(scoped).toBeDefined(); - expect(scoped.storage).not.toBeDefined(); - expect(all).toBeDefined(); - expect(all.access).toBeDefined(); - expect(all.storage).not.toBeDefined(); - expect(all.publish).toBeDefined(); - expect(all.proxy).toBeDefined(); - expect(all.allow_access).toBeUndefined(); - expect(all.allow_publish).toBeUndefined(); - expect(all.proxy_access).toBeUndefined(); - }); - - test('should check not default packages access', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-empty')); - const access = normalisePackageAccess(packages); - expect(access).toBeDefined(); - - const scoped = access[`${PACKAGE_ACCESS.SCOPE}`]; - expect(scoped).toBeUndefined(); - - // ** should be added by default ** - const all = access[`${PACKAGE_ACCESS.ALL}`]; - expect(all).toBeDefined(); - - expect(all.access).toBeDefined(); - expect(_.isArray(all.access)).toBeTruthy(); - expect(all.publish).toBeDefined(); - expect(_.isArray(all.publish)).toBeTruthy(); - }); - }); - - describe('getMatchedPackagesSpec', () => { - test('should test basic config', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-custom')); - // @ts-ignore - expect(getMatchedPackagesSpec('react', packages).proxy).toMatch('facebook'); - // @ts-ignore - expect(getMatchedPackagesSpec('angular', packages).proxy).toMatch('google'); - // @ts-ignore - expect(getMatchedPackagesSpec('vue', packages).proxy).toMatch('npmjs'); - // @ts-ignore - expect(getMatchedPackagesSpec('@scope/vue', packages).proxy).toMatch('npmjs'); - }); - - test('should test no ** wildcard on config', () => { - const { packages } = parseConfigFile(parseConfigurationFile('pkgs-nosuper-wildcard-custom')); - // @ts-ignore - expect(getMatchedPackagesSpec('react', packages).proxy).toMatch('facebook'); - // @ts-ignore - expect(getMatchedPackagesSpec('angular', packages).proxy).toMatch('google'); - // @ts-ignore - expect(getMatchedPackagesSpec('@fake/angular', packages).proxy).toMatch('npmjs'); - expect(getMatchedPackagesSpec('vue', packages)).toBeUndefined(); - expect(getMatchedPackagesSpec('@scope/vue', packages)).toBeUndefined(); - }); - }); - - describe('hasProxyTo', () => { - test('should test basic config', () => { - const packages = normalisePackageAccess( - parseConfigFile(parseConfigurationFile('pkgs-basic')).packages - ); - // react - expect(hasProxyTo('react', 'facebook', packages)).toBeFalsy(); - expect(hasProxyTo('react', 'google', packages)).toBeFalsy(); - // vue - expect(hasProxyTo('vue', 'google', packages)).toBeFalsy(); - expect(hasProxyTo('vue', 'fake', packages)).toBeFalsy(); - expect(hasProxyTo('vue', 'npmjs', packages)).toBeTruthy(); - // angular - expect(hasProxyTo('angular', 'google', packages)).toBeFalsy(); - expect(hasProxyTo('angular', 'facebook', packages)).toBeFalsy(); - expect(hasProxyTo('angular', 'npmjs', packages)).toBeTruthy(); - }); - - test('should test resolve based on custom package access', () => { - const packages = normalisePackageAccess( - parseConfigFile(parseConfigurationFile('pkgs-custom')).packages - ); - // react - expect(hasProxyTo('react', 'facebook', packages)).toBeTruthy(); - expect(hasProxyTo('react', 'google', packages)).toBeFalsy(); - // vue - expect(hasProxyTo('vue', 'google', packages)).toBeFalsy(); - expect(hasProxyTo('vue', 'fake', packages)).toBeFalsy(); - expect(hasProxyTo('vue', 'npmjs', packages)).toBeTruthy(); - // angular - expect(hasProxyTo('angular', 'google', packages)).toBeTruthy(); - expect(hasProxyTo('angular', 'facebook', packages)).toBeFalsy(); - expect(hasProxyTo('angular', 'npmjs', packages)).toBeFalsy(); - }); - - test('should not resolve any proxy', () => { - const packages = normalisePackageAccess( - parseConfigFile(parseConfigurationFile('pkgs-empty')).packages - ); - // react - expect(hasProxyTo('react', 'npmjs', packages)).toBeFalsy(); - expect(hasProxyTo('react', 'npmjs', packages)).toBeFalsy(); - // vue - expect(hasProxyTo('vue', 'npmjs', packages)).toBeFalsy(); - expect(hasProxyTo('vue', 'npmjs', packages)).toBeFalsy(); - expect(hasProxyTo('vue', 'npmjs', packages)).toBeFalsy(); - // angular - expect(hasProxyTo('angular', 'npmjs', packages)).toBeFalsy(); - expect(hasProxyTo('angular', 'npmjs', packages)).toBeFalsy(); - expect(hasProxyTo('angular', 'npmjs', packages)).toBeFalsy(); - // private - expect(hasProxyTo('private', 'fake', packages)).toBeFalsy(); - }); - }); - - describe('spliceURL', () => { - test('should splice two strings and generate a url', () => { - const url: string = spliceURL('http://domain.com', '/-/static/logo.png'); - - expect(url).toMatch('http://domain.com/-/static/logo.png'); - }); - - test('should splice a empty strings and generate a url', () => { - const url: string = spliceURL('', '/-/static/logo.png'); - - expect(url).toMatch('/-/static/logo.png'); - }); - }); - - describe('JSON', () => { - test('parse default.json', () => { - const config = parseConfigFile(parseConfigurationFile('default.json')); - - expect(config.storage).toBeDefined(); - }); - - test('parse invalid.json', () => { - expect(function () { - parseConfigFile(parseConfigurationFile('invalid.json')); - }).toThrow(/Error/); - }); - - test('parse not-exists.json', () => { - expect(function () { - parseConfigFile(parseConfigurationFile('not-exists.json')); - }).toThrow(/Error/); - }); - }); - - describe('JavaScript', () => { - test('parse default.js', () => { - const config = parseConfigFile(parseConfigurationFile('default.js')); - - expect(config.storage).toBeDefined(); - }); - - test('parse invalid.js', () => { - expect(function () { - parseConfigFile(parseConfigurationFile('invalid.js')); - }).toThrow(/Error/); - }); - - test('parse not-exists.js', () => { - expect(function () { - parseConfigFile(parseConfigurationFile('not-exists.js')); - }).toThrow(/Error/); - }); - }); -}); diff --git a/test/unit/modules/utils/parseInterval.spec.ts b/test/unit/modules/utils/parseInterval.spec.ts deleted file mode 100644 index 5ea96380f..000000000 --- a/test/unit/modules/utils/parseInterval.spec.ts +++ /dev/null @@ -1,33 +0,0 @@ -import assert from 'assert'; -import { parseInterval } from '../../../../src/lib/utils'; - -describe('Parse interval', () => { - function addTest(str, res) { - test('parse ' + str, () => { - if (res === null) { - assert.throws(function () { - console.log(parseInterval(str)); - }); - } else { - assert.strictEqual(parseInterval(str), res); - } - }); - } - - addTest(12345, 12345000); - addTest('1000', 1000000); - addTest('1.5s', 1500); - addTest('25ms', 25); - addTest('2m', 2 * 1000 * 60); - addTest('3h', 3 * 1000 * 60 * 60); - addTest('0.5d', 0.5 * 1000 * 60 * 60 * 24); - addTest('0.5w', 0.5 * 1000 * 60 * 60 * 24 * 7); - addTest('1M', 1000 * 60 * 60 * 24 * 30); - addTest('5s 20ms', 5020); - addTest('1y', 1000 * 60 * 60 * 24 * 365); - addTest('1y 5', null); - addTest('1m 1m', null); - addTest('1m 1y', null); - addTest('1y 1M 1w 1d 1h 1m 1s 1ms', 34822861001); - addTest(' 5s 25ms ', 5025); -}); diff --git a/test/unit/modules/utils/tag.version.spec.ts b/test/unit/modules/utils/tag.version.spec.ts deleted file mode 100644 index bc29647c3..000000000 --- a/test/unit/modules/utils/tag.version.spec.ts +++ /dev/null @@ -1,50 +0,0 @@ -import assert from 'assert'; -import { tagVersion } from '../../../../src/lib/utils'; - -import { setup } from '../../../../src/lib/logger'; - -setup([]); - -describe('tagVersion', () => { - test('add new one', () => { - let pkg = { - versions: {}, - 'dist-tags': {} - }; - - // @ts-ignore - assert(tagVersion(pkg, '1.1.1', 'foo', {})); - assert.deepEqual(pkg, { - versions: {}, - 'dist-tags': { foo: '1.1.1' } - }); - }); - - test('add (compat)', () => { - const x = { - versions: {}, - 'dist-tags': { foo: '1.1.0' } - }; - - // @ts-ignore - assert(tagVersion(x, '1.1.1', 'foo')); - assert.deepEqual(x, { - versions: {}, - 'dist-tags': { foo: '1.1.1' } - }); - }); - - test('add fresh tag', () => { - let x = { - versions: {}, - 'dist-tags': { foo: '1.1.0' } - }; - - // @ts-ignore - assert(tagVersion(x, '1.1.1', 'foo')); - assert.deepEqual(x, { - versions: {}, - 'dist-tags': { foo: '1.1.1' } - }); - }); -}); diff --git a/test/unit/modules/utils/utils.spec.ts b/test/unit/modules/utils/utils.spec.ts deleted file mode 100644 index b4360c654..000000000 --- a/test/unit/modules/utils/utils.spec.ts +++ /dev/null @@ -1,621 +0,0 @@ -import { generateGravatarUrl, GENERIC_AVATAR } from '../../../../src/utils/user'; -import { spliceURL } from '../../../../src/utils/string'; -import { - validateName, - convertDistRemoteToLocalTarballUrls, - parseReadme, - addGravatarSupport, - validatePackage, - validateMetadata, - combineBaseUrl, - getVersion, - normalizeDistTags, - getWebProtocol, - getVersionFromTarball, - sortByName, - formatAuthor, - isHTTPProtocol -} from '../../../../src/lib/utils'; -import { DIST_TAGS, DEFAULT_USER } from '../../../../src/lib/constants'; -import { logger, setup } from '../../../../src/lib/logger'; -import { readFile } from '../../../functional/lib/test.utils'; - -const readmeFile = (fileName = 'markdown.md') => readFile(`../../unit/partials/readme/${fileName}`); - -setup([]); - -describe('Utilities', () => { - const buildURI = (host, version) => `http://${host}/npm_test/-/npm_test-${version}.tgz`; - const fakeHost = 'fake.com'; - const metadata: any = { - name: 'npm_test', - versions: { - '1.0.0': { - dist: { - tarball: 'http://registry.org/npm_test/-/npm_test-1.0.0.tgz' - } - }, - '1.0.1': { - dist: { - tarball: 'http://registry.org/npm_test/-/npm_test-1.0.1.tgz' - } - } - } - }; - - const cloneMetadata = (pkg = metadata) => Object.assign({}, pkg); - - describe('API utilities', () => { - describe('Sort packages', () => { - const packages = [ - { - name: 'ghc' - }, - { - name: 'abc' - }, - { - name: 'zxy' - } - ]; - test('should order ascending', () => { - expect(sortByName(packages)).toEqual([ - { - name: 'abc' - }, - { - name: 'ghc' - }, - { - name: 'zxy' - } - ]); - }); - - test('should order descending', () => { - expect(sortByName(packages, false)).toEqual([ - { - name: 'zxy' - }, - { - name: 'ghc' - }, - { - name: 'abc' - } - ]); - }); - }); - - describe('getWebProtocol', () => { - test('should handle undefined header', () => { - expect(getWebProtocol(undefined, 'http')).toBe('http'); - }); - - test('should handle emtpy string', () => { - expect(getWebProtocol('', 'http')).toBe('http'); - }); - - test('should have header priority over request protocol', () => { - expect(getWebProtocol('https', 'http')).toBe('https'); - }); - - test('should have handle empty protocol', () => { - expect(getWebProtocol('https', '')).toBe('https'); - }); - - describe('getWebProtocol and HAProxy variant', () => { - // https://github.com/verdaccio/verdaccio/issues/695 - - test('should handle http', () => { - expect(getWebProtocol('http,http', 'https')).toBe('http'); - }); - - test('should handle https', () => { - expect(getWebProtocol('https,https', 'http')).toBe('https'); - }); - }); - }); - - describe('convertDistRemoteToLocalTarballUrls', () => { - test('should build a URI for dist tarball based on new domain', () => { - const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), { - headers: { - host: fakeHost - }, - // @ts-ignore - get: () => 'http', - protocol: 'http' - }); - expect(convertDist.versions['1.0.0'].dist.tarball).toEqual(buildURI(fakeHost, '1.0.0')); - expect(convertDist.versions['1.0.1'].dist.tarball).toEqual(buildURI(fakeHost, '1.0.1')); - }); - - test('should return same URI whether host is missing', () => { - const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), { - headers: {}, - // @ts-ignore - get: () => 'http', - protocol: 'http' - }); - expect(convertDist.versions['1.0.0'].dist.tarball).toEqual( - convertDist.versions['1.0.0'].dist.tarball - ); - }); - }); - - describe('normalizeDistTags', () => { - test('should delete a invalid latest version', () => { - const pkg = cloneMetadata(); - pkg[DIST_TAGS] = { - latest: '20000' - }; - - normalizeDistTags(pkg); - - expect(Object.keys(pkg[DIST_TAGS])).toHaveLength(0); - }); - - test('should define last published version as latest', () => { - const pkg = cloneMetadata(); - pkg[DIST_TAGS] = {}; - - normalizeDistTags(pkg); - - expect(pkg[DIST_TAGS]).toEqual({ latest: '1.0.1' }); - }); - - test('should define last published version as latest with a custom dist-tag', () => { - const pkg = cloneMetadata(); - pkg[DIST_TAGS] = { - beta: '1.0.1' - }; - - normalizeDistTags(pkg); - - expect(pkg[DIST_TAGS]).toEqual({ beta: '1.0.1', latest: '1.0.1' }); - }); - - test('should convert any array of dist-tags to a plain string', () => { - const pkg = cloneMetadata(); - pkg[DIST_TAGS] = { - latest: ['1.0.1'] - }; - - normalizeDistTags(pkg); - - expect(pkg[DIST_TAGS]).toEqual({ latest: '1.0.1' }); - }); - }); - - describe('getVersion', () => { - test('should get the right version', () => { - expect(getVersion(cloneMetadata(), '1.0.0')).toEqual(metadata.versions['1.0.0']); - expect(getVersion(cloneMetadata(), 'v1.0.0')).toEqual(metadata.versions['1.0.0']); - }); - - test('should return nothing on get non existing version', () => { - expect(getVersion(cloneMetadata(), '0')).toBeUndefined(); - expect(getVersion(cloneMetadata(), '2.0.0')).toBeUndefined(); - expect(getVersion(cloneMetadata(), 'v2.0.0')).toBeUndefined(); - expect(getVersion(cloneMetadata(), undefined)).toBeUndefined(); - expect(getVersion(cloneMetadata(), null)).toBeUndefined(); - expect(getVersion(cloneMetadata(), 2)).toBeUndefined(); - }); - }); - - describe('combineBaseUrl', () => { - test('should create a URI', () => { - expect(combineBaseUrl('http', 'domain')).toEqual('http://domain'); - }); - - test('should create a base url for registry', () => { - expect(combineBaseUrl('http', 'domain', '')).toEqual('http://domain'); - expect(combineBaseUrl('http', 'domain', '/')).toEqual('http://domain'); - expect(combineBaseUrl('http', 'domain', '/prefix/')).toEqual('http://domain/prefix'); - expect(combineBaseUrl('http', 'domain', '/prefix/deep')).toEqual( - 'http://domain/prefix/deep' - ); - expect(combineBaseUrl('http', 'domain', 'only-prefix')).toEqual('only-prefix'); - }); - }); - - describe('validatePackage', () => { - test('should validate package names', () => { - expect(validatePackage('package-name')).toBeTruthy(); - expect(validatePackage('@scope/package-name')).toBeTruthy(); - }); - - test('should fails on validate package names', () => { - expect(validatePackage('package-name/test/fake')).toBeFalsy(); - expect(validatePackage('@/package-name')).toBeFalsy(); - expect(validatePackage('$%$%#$%$#%#$%$#')).toBeFalsy(); - expect(validatePackage('node_modules')).toBeFalsy(); - expect(validatePackage('__proto__')).toBeFalsy(); - expect(validatePackage('favicon.ico')).toBeFalsy(); - }); - - describe('validateName', () => { - test('should fails with no string', () => { - // intended to fail with Typescript, do not remove - // @ts-ignore - expect(validateName(null)).toBeFalsy(); - // @ts-ignore - expect(validateName(undefined)).toBeFalsy(); - }); - - test('good ones', () => { - expect(validateName('verdaccio')).toBeTruthy(); - expect(validateName('some.weird.package-zzz')).toBeTruthy(); - expect(validateName('old-package@0.1.2.tgz')).toBeTruthy(); - // fix https://github.com/verdaccio/verdaccio/issues/1400 - expect(validateName('-build-infra')).toBeTruthy(); - }); - - test('should be valid using uppercase', () => { - expect(validateName('ETE')).toBeTruthy(); - expect(validateName('JSONStream')).toBeTruthy(); - }); - - test('should fails with path seps', () => { - expect(validateName('some/thing')).toBeFalsy(); - expect(validateName('some\\thing')).toBeFalsy(); - }); - - test('should fail with no hidden files', () => { - expect(validateName('.bin')).toBeFalsy(); - }); - - test('should fails with reserved words', () => { - expect(validateName('favicon.ico')).toBeFalsy(); - expect(validateName('node_modules')).toBeFalsy(); - expect(validateName('__proto__')).toBeFalsy(); - }); - - test('should fails with other options', () => { - expect(validateName('pk g')).toBeFalsy(); - expect(validateName('pk\tg')).toBeFalsy(); - expect(validateName('pk%20g')).toBeFalsy(); - expect(validateName('pk+g')).toBeFalsy(); - expect(validateName('pk:g')).toBeFalsy(); - }); - }); - }); - - describe('validateMetadata', () => { - test('should fills an empty metadata object', () => { - // intended to fail with flow, do not remove - // @ts-ignore - expect(Object.keys(validateMetadata({}))).toContain(DIST_TAGS); - // @ts-ignore - expect(Object.keys(validateMetadata({}))).toContain('versions'); - // @ts-ignore - expect(Object.keys(validateMetadata({}))).toContain('time'); - }); - - test('should fails the assertions is not an object', () => { - expect(function () { - // @ts-ignore - validateMetadata(''); - // @ts-ignore - }).toThrow(expect.hasAssertions()); - }); - - test('should fails the assertions is name does not match', () => { - expect(function () { - // @ts-ignore - validateMetadata({}, 'no-name'); - // @ts-ignore - }).toThrow(expect.hasAssertions()); - }); - }); - - describe('getVersionFromTarball', () => { - test('should get the right version', () => { - const simpleName = 'test-name-4.2.12.tgz'; - const complexName = 'test-5.6.4-beta.2.tgz'; - const otherComplexName = 'test-3.5.0-6.tgz'; - expect(getVersionFromTarball(simpleName)).toEqual('4.2.12'); - expect(getVersionFromTarball(complexName)).toEqual('5.6.4-beta.2'); - expect(getVersionFromTarball(otherComplexName)).toEqual('3.5.0-6'); - }); - - test("should don'n fall at incorrect tarball name", () => { - expect(getVersionFromTarball('incorrectName')).toBeUndefined(); - }); - }); - }); - - describe('String utilities', () => { - test('should splice two strings and generate a url', () => { - const url: string = spliceURL('http://domain.com', '/-/static/logo.png'); - - expect(url).toMatch('http://domain.com/-/static/logo.png'); - }); - - test('should splice a empty strings and generate a url', () => { - const url: string = spliceURL('', '/-/static/logo.png'); - - expect(url).toMatch('/-/static/logo.png'); - }); - - test('should check HTTP protocol correctly', () => { - expect(isHTTPProtocol('http://domain.com/-/static/logo.png')).toBeTruthy(); - expect(isHTTPProtocol('https://www.domain.com/-/static/logo.png')).toBeTruthy(); - expect(isHTTPProtocol('//domain.com/-/static/logo.png')).toBeTruthy(); - expect(isHTTPProtocol('file:///home/user/logo.png')).toBeFalsy(); - expect(isHTTPProtocol('file:///F:/home/user/logo.png')).toBeFalsy(); - // Note that uses ftp protocol in src was deprecated in modern browsers - expect(isHTTPProtocol('ftp://1.2.3.4/home/user/logo.png')).toBeFalsy(); - expect(isHTTPProtocol('./logo.png')).toBeFalsy(); - expect(isHTTPProtocol('.\\logo.png')).toBeFalsy(); - expect(isHTTPProtocol('../logo.png')).toBeFalsy(); - expect(isHTTPProtocol('..\\logo.png')).toBeFalsy(); - expect(isHTTPProtocol('../../static/logo.png')).toBeFalsy(); - expect(isHTTPProtocol('..\\..\\static\\logo.png')).toBeFalsy(); - expect(isHTTPProtocol('logo.png')).toBeFalsy(); - expect(isHTTPProtocol('.logo.png')).toBeFalsy(); - expect(isHTTPProtocol('/static/logo.png')).toBeFalsy(); - expect(isHTTPProtocol('F:\\static\\logo.png')).toBeFalsy(); - }); - }); - - describe('User utilities', () => { - test('should generate gravatar url with email', () => { - const gravatarUrl: string = generateGravatarUrl('user@verdaccio.org'); - - expect(gravatarUrl).toMatch('https://www.gravatar.com/avatar/'); - expect(gravatarUrl).not.toMatch('000000000'); - }); - - test('should generate generic gravatar url', () => { - const gravatarUrl: string = generateGravatarUrl(); - - expect(gravatarUrl).toMatch(GENERIC_AVATAR); - }); - }); - - describe('parseReadme', () => { - test('should parse makrdown text to html template', () => { - const markdown = '# markdown'; - expect(parseReadme('testPackage', markdown)).toEqual('

markdown

'); - expect(parseReadme('testPackage', String(readmeFile('markdown.md')))).toMatchSnapshot(); - }); - - test('should pass for conversion of non-ascii to markdown text', () => { - const simpleText = 'simple text'; - const randomText = '%%%%%**##=='; - const randomTextMarkdown = 'simple text \n # markdown'; - - expect(parseReadme('testPackage', randomText)).toEqual('

%%%%%**##==

'); - expect(parseReadme('testPackage', simpleText)).toEqual('

simple text

'); - expect(parseReadme('testPackage', randomTextMarkdown)).toEqual( - '

simple text

\n

markdown

' - ); - }); - - test('should show error for no readme data', () => { - const noData = ''; - const spy = jest.spyOn(logger, 'error'); - expect(parseReadme('testPackage', noData)).toEqual('

ERROR: No README data found!

'); - expect(spy).toHaveBeenCalledWith( - { packageName: 'testPackage' }, - '@{packageName}: No readme found' - ); - }); - }); - - describe('addGravatarSupport', () => { - test('check for blank object', () => { - // @ts-ignore - expect(addGravatarSupport({})).toEqual({}); - }); - - test('author, contributors and maintainers fields are not present', () => { - const packageInfo = { - latest: {} - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(packageInfo); - }); - - test('author field is a blank object', () => { - const packageInfo = { latest: { author: {} } }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(packageInfo); - }); - - test('author field is a string type', () => { - const packageInfo = { - latest: { author: 'user@verdccio.org' } - }; - const result = { - latest: { - author: { - author: 'user@verdccio.org', - avatar: GENERIC_AVATAR, - email: '' - } - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(result); - }); - - test('author field is an object type with author information', () => { - const packageInfo = { - latest: { author: { name: 'verdaccio', email: 'user@verdccio.org' } } - }; - const result = { - latest: { - author: { - avatar: 'https://www.gravatar.com/avatar/794d7f6ef93d0689437de3c3e48fadc7', - email: 'user@verdccio.org', - name: 'verdaccio' - } - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(result); - }); - - test('contributor field is a blank array', () => { - const packageInfo = { - latest: { - contributors: [] - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(packageInfo); - }); - - describe('contributors', () => { - test('contributors field has contributors', () => { - const packageInfo = { - latest: { - contributors: [ - { name: 'user', email: 'user@verdccio.org' }, - { name: 'user1', email: 'user1@verdccio.org' } - ] - } - }; - - const result = { - latest: { - contributors: [ - { - avatar: 'https://www.gravatar.com/avatar/794d7f6ef93d0689437de3c3e48fadc7', - email: 'user@verdccio.org', - name: 'user' - }, - { - avatar: 'https://www.gravatar.com/avatar/51105a49ce4a9c2bfabf0f6a2cba3762', - email: 'user1@verdccio.org', - name: 'user1' - } - ] - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(result); - }); - - test('contributors field is an object', () => { - const packageInfo = { - latest: { - contributors: { name: 'user', email: 'user@verdccio.org' } - } - }; - - const result = { - latest: { - contributors: [ - { - avatar: 'https://www.gravatar.com/avatar/794d7f6ef93d0689437de3c3e48fadc7', - email: 'user@verdccio.org', - name: 'user' - } - ] - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(result); - }); - - test('contributors field is a string', () => { - const contributor = 'Barney Rubble (http://barnyrubble.tumblr.com/)'; - const packageInfo = { - latest: { - contributors: contributor - } - }; - - const result = { - latest: { - contributors: [ - { - avatar: GENERIC_AVATAR, - email: contributor, - name: contributor - } - ] - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(result); - }); - }); - - test('maintainers field is a blank array', () => { - const packageInfo = { - latest: { - maintainers: [] - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(packageInfo); - }); - - test('maintainers field has maintainers', () => { - const packageInfo = { - latest: { - maintainers: [ - { name: 'user', email: 'user@verdccio.org' }, - { name: 'user1', email: 'user1@verdccio.org' } - ] - } - }; - - const result = { - latest: { - maintainers: [ - { - avatar: 'https://www.gravatar.com/avatar/794d7f6ef93d0689437de3c3e48fadc7', - email: 'user@verdccio.org', - name: 'user' - }, - { - avatar: 'https://www.gravatar.com/avatar/51105a49ce4a9c2bfabf0f6a2cba3762', - email: 'user1@verdccio.org', - name: 'user1' - } - ] - } - }; - - // @ts-ignore - expect(addGravatarSupport(packageInfo)).toEqual(result); - }); - }); - - describe('formatAuthor', () => { - test('should check author field different values', () => { - const author = 'verdaccioNpm'; - expect(formatAuthor(author).name).toEqual(author); - }); - test('should check author field for object value', () => { - const user = { - name: 'Verdaccion NPM', - email: 'verdaccio@verdaccio.org', - url: 'https://verdaccio.org' - }; - expect(formatAuthor(user).url).toEqual(user.url); - expect(formatAuthor(user).email).toEqual(user.email); - expect(formatAuthor(user).name).toEqual(user.name); - }); - test('should check author field for other value', () => { - expect(formatAuthor(null).name).toEqual(DEFAULT_USER); - expect(formatAuthor({}).name).toEqual(DEFAULT_USER); - expect(formatAuthor([]).name).toEqual(DEFAULT_USER); - }); - }); -}); diff --git a/test/unit/modules/web/api.web.spec.ts b/test/unit/modules/web/api.web.spec.ts deleted file mode 100644 index 9aae329e2..000000000 --- a/test/unit/modules/web/api.web.spec.ts +++ /dev/null @@ -1,244 +0,0 @@ -import request from 'supertest'; -import path from 'path'; -import rimraf from 'rimraf'; - -import configDefault from '../../partials/config'; -import publishMetadata from '../../partials/publish-api'; -import forbiddenPlace from '../../partials/forbidden-place'; -import endPointAPI from '../../../../src/api'; - -import { - HEADERS, - API_ERROR, - HTTP_STATUS, - HEADER_TYPE, - DIST_TAGS -} from '../../../../src/lib/constants'; -import { DOMAIN_SERVERS } from '../../../functional/config.functional'; -import { mockServer } from '../../__helper/mock'; -import { addUser } from '../../__helper/api'; - -require('../../../../src/lib/logger').setup([]); - -const credentials = { name: 'user-web', password: 'secretPass' }; -describe('endpoint web unit test', () => { - jest.setTimeout(20000); - let app; - let mockRegistry; - - beforeAll(function (done) { - const store = path.join(__dirname, '../../partials/store/web-api-storage'); - const mockServerPort = 55544; - rimraf(store, async () => { - const configForTest = configDefault( - { - auth: { - htpasswd: { - file: './web-api-storage/.htpasswd-web-api' - } - }, - storage: store, - uplinks: { - npmjs: { - url: `http://${DOMAIN_SERVERS}:${mockServerPort}` - } - }, - self_path: store - }, - 'api.web.spec.yaml' - ); - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); - done(); - }); - }); - - afterAll(function (done) { - mockRegistry[0].stop(); - done(); - }); - - describe('Registry WebUI endpoints', () => { - beforeAll(async () => { - await request(app) - .put('/@scope%2fpk1-test') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send(JSON.stringify(publishMetadata)) - .expect(HTTP_STATUS.CREATED); - - await request(app) - .put('/forbidden-place') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON) - .send(JSON.stringify(forbiddenPlace)) - .expect(HTTP_STATUS.CREATED); - }); - - describe('Packages', () => { - test('should display all packages', (done) => { - request(app) - .get('/-/verdaccio/packages') - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - expect(res.body).toHaveLength(1); - done(); - }); - }); - - test.skip('should display scoped readme', (done) => { - request(app) - .get('/-/verdaccio/package/readme/@scope/pk1-test') - .expect(HTTP_STATUS.OK) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_CHARSET) - .end(function (err, res) { - expect(res.text).toMatch('

test

\n'); - done(); - }); - }); - - // FIXME: disabled, we need to inspect why fails randomly - test.skip('should display scoped readme 404', (done) => { - request(app) - .get('/-/verdaccio/package/readme/@scope/404') - .expect(HTTP_STATUS.OK) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_CHARSET) - .end(function (err, res) { - expect(res.body.error).toMatch(API_ERROR.NO_PACKAGE); - done(); - }); - }); - - test('should display sidebar info', (done) => { - request(app) - .get('/-/verdaccio/sidebar/@scope/pk1-test') - .expect(HTTP_STATUS.OK) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .end(function (err, res) { - const sideBarInfo = res.body; - const latestVersion = publishMetadata.versions[publishMetadata[DIST_TAGS].latest]; - - expect(sideBarInfo.latest.author).toBeDefined(); - expect(sideBarInfo.latest.author.avatar).toMatch(/www.gravatar.com/); - expect(sideBarInfo.latest.author.name).toBe(latestVersion.author.name); - expect(sideBarInfo.latest.author.email).toBe(latestVersion.author.email); - done(); - }); - }); - - test('should display sidebar info by version', (done) => { - request(app) - .get('/-/verdaccio/sidebar/@scope/pk1-test?v=1.0.6') - .expect(HTTP_STATUS.OK) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .end(function (err, res) { - const sideBarInfo = res.body; - const latestVersion = publishMetadata.versions[publishMetadata[DIST_TAGS].latest]; - - expect(sideBarInfo.latest.author).toBeDefined(); - expect(sideBarInfo.latest.author.avatar).toMatch(/www.gravatar.com/); - expect(sideBarInfo.latest.author.name).toBe(latestVersion.author.name); - expect(sideBarInfo.latest.author.email).toBe(latestVersion.author.email); - done(); - }); - }); - - test('should display sidebar info 404', (done) => { - request(app) - .get('/-/verdaccio/sidebar/@scope/404') - .expect(HTTP_STATUS.NOT_FOUND) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .end(function () { - done(); - }); - }); - - test('should display sidebar info 404 with version', (done) => { - request(app) - .get('/-/verdaccio/sidebar/@scope/pk1-test?v=0.0.0-not-found') - .expect(HTTP_STATUS.NOT_FOUND) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .end(function () { - done(); - }); - }); - }); - - describe('Search', () => { - test('should search pk1-test', (done) => { - request(app) - .get('/-/verdaccio/search/scope') - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - expect(res.body).toHaveLength(1); - done(); - }); - }); - - test('should search with 404', (done) => { - request(app) - .get('/-/verdaccio/search/@') - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - // in a normal world, the output would be 1 - // https://github.com/verdaccio/verdaccio/issues/345 - // should fix this - expect(res.body).toHaveLength(0); - done(); - }); - }); - - test('should not find forbidden-place', (done) => { - request(app) - .get('/-/verdaccio/search/forbidden-place') - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - // this is expected since we are not logged - // and forbidden-place is allow_access: 'nobody' - expect(res.body).toHaveLength(0); - done(); - }); - }); - }); - - describe('User', () => { - beforeAll(async () => { - await addUser(request(app), credentials.name, credentials); - }); - - describe('login webui', () => { - test('should log successfully', (done) => { - request(app) - .post('/-/verdaccio/login') - .send({ - username: credentials.name, - password: credentials.password - }) - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - expect(res.body.error).toBeUndefined(); - expect(res.body.token).toBeDefined(); - expect(res.body.token).toBeTruthy(); - expect(res.body.username).toMatch(credentials.name); - done(); - }); - }); - - test('should fails on log unvalid user', (done) => { - request(app) - .post('/-/verdaccio/login') - .send( - JSON.stringify({ - username: 'fake', - password: 'fake' - }) - ) - // FIXME: there should be 401 - .expect(HTTP_STATUS.OK) - .end(function (err, res) { - expect(res.body.error).toMatch(/bad username\/password, access denied/); - done(); - }); - }); - }); - }); - }); -}); diff --git a/test/unit/partials/addTarball b/test/unit/partials/addTarball deleted file mode 100644 index 6f8685c1d..000000000 --- a/test/unit/partials/addTarball +++ /dev/null @@ -1,5 +0,0 @@ -{ - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAE+2SPU\/DMBCGM+dXnDx0QsHOR5G6AgMzI4XKcg7qltiW7ZYi1P+OHRcqoWxEQkh5lpPf93x3\/jBcbPkLXpoUi43TKhsZSum8rmFIj9RNCRmrStY0ZVXNq4wy1lwxyOjYgwyxc57bMMpv66SzwHf8J3zkAETxDskiRNOtPDq\/2mjPyUW09mid1Cq6rKBFndQWnbDS+JOTxI7LfiVVi4fwkb5SDQZBCYkuuLFfUGOXmPvEirqgJIjHU\/b+5seGZKR+AxVQrDUsya212i5AaYgGOINCPktslwRmM8CD9MDObbb4\/qZtG8s9PPYK3\/m1tufDvEqByvW3cnd\/TfJj\/tcvNTExMTEun6rWVXoACAAA", - "length": 279 -} diff --git a/test/unit/partials/changePackage/metadata-change b/test/unit/partials/changePackage/metadata-change deleted file mode 100644 index e932f9142..000000000 --- a/test/unit/partials/changePackage/metadata-change +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "change-package", - "versions": { - "1.0.1": { - "name": "change-package", - "version": "1.0.1", - "description": "", - "main": "index.js", - "dependencies": { - "test": "^1.4.0" - }, - "devDependencies": { - - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": "", - "license": "ISC", - "_id": "change-package@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-tfzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", - "shasum": "3e4e6bd5097b295e520b947c9be3259a9509a673", - "tarball": "http:\/\/localhost:4873\/change-package\/-\/change-package-1.0.1.tgz" - } - } - }, - "dist-tags": { - "latest": "1.0.1" - }, - "time": { - "modified": "2017-12-17T14:15:10.760Z", - "created": "2017-12-17T11:39:33.140Z", - "1.0.1": "2017-12-17T11:39:33.140Z" - }, - "_rev": "9-1c8dae9336a8dc70", - "readme": "ERROR: No README data found!" -} diff --git a/test/unit/partials/config-unit-mock-server-test.yaml b/test/unit/partials/config-unit-mock-server-test.yaml deleted file mode 100644 index 8e54b1fe8..000000000 --- a/test/unit/partials/config-unit-mock-server-test.yaml +++ /dev/null @@ -1,25 +0,0 @@ -storage: ./mock-store - -web: - enable: false - title: verdaccio-server-unit-test - -auth: - auth-memory: - users: - test: - name: test - password: test - -logs: - - { type: stdout, format: pretty, level: trace } - -packages: - '@*/*': - access: $all - publish: none - '**': - access: $all - publish: none - -_debug: true diff --git a/test/unit/partials/config/config_access.ts b/test/unit/partials/config/config_access.ts deleted file mode 100644 index 0874c8e98..000000000 --- a/test/unit/partials/config/config_access.ts +++ /dev/null @@ -1,26 +0,0 @@ -import path from 'path'; - -const config = { - storage: path.join(__dirname, '../store/access-storage'), - uplinks: { - 'npmjs': { - 'url': 'http://never_use:0000/' - } - }, - packages: { - 'jquery': { - allow_access: '$all', - allow_publish: '$all' - }, - '**': { - allow_access: '$all', - allow_publish: '$all', - proxy: 'npmjs' - } - }, - logs: [ - {type: 'stdout', format: 'pretty', level: 'fatal'}, - ], -}; - -export default config; diff --git a/test/unit/partials/config/index.js b/test/unit/partials/config/index.js deleted file mode 100644 index 5edf37675..000000000 --- a/test/unit/partials/config/index.js +++ /dev/null @@ -1,15 +0,0 @@ - -import _ from 'lodash'; -import path from 'path'; - -import {parseConfigFile} from '../../../../src/lib/utils'; - -/** - * Override the default.yaml configuration file with any new config provided. - */ -export default (options, url = 'default.yaml') => { - const locationFile = path.join(__dirname, `../config/yaml/${url}`); - const config = parseConfigFile(locationFile); - - return _.assign({}, _.cloneDeep(config), options); -} diff --git a/test/unit/partials/config/js/default.js b/test/unit/partials/config/js/default.js deleted file mode 100644 index 599754cf3..000000000 --- a/test/unit/partials/config/js/default.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { storage: './storage_default_storage', - uplinks: { npmjs: { url: 'http://localhost:4873/' } }, - packages: - { '@*/*': { access: '$all', publish: '$all', proxy: 'npmjs' }, - 'forbidden-place': { access: 'nobody', publish: '$all' }, - react: { access: '$all', publish: '$all', proxy: 'npmjs' }, - 'corrupted-package': { access: '$all', publish: '$all', proxy: 'npmjs' }, - jquery: { access: '$all', publish: '$all', proxy: 'npmjs' }, - 'auth-package': { access: '$authenticated', publish: '$authenticated' }, - vue: - { access: '$authenticated', - publish: '$authenticated', - proxy: 'npmjs' }, - '*': { access: '$all', publish: '$all', proxy: 'npmjs' } }, - logs: [ { type: 'stdout', format: 'pretty', level: 'warn' } ] }; diff --git a/test/unit/partials/config/js/invalid.js b/test/unit/partials/config/js/invalid.js deleted file mode 100644 index 3407ebe0d..000000000 --- a/test/unit/partials/config/js/invalid.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {; diff --git a/test/unit/partials/config/json/README.md b/test/unit/partials/config/json/README.md deleted file mode 100644 index a8e393aa1..000000000 --- a/test/unit/partials/config/json/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# JSON Configurations - -This folder host all sort of JSON configurations for testing. **It should not include many scenarios, since we use `yaml` for testing. JSON files on this folder aims to verify a verdaccio JSON config file works properly. - -## Contribute - -- Don't add new scenarios unless is discussed with the core team. diff --git a/test/unit/partials/config/json/default.json b/test/unit/partials/config/json/default.json deleted file mode 100644 index 843920610..000000000 --- a/test/unit/partials/config/json/default.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "storage": "./storage_default_storage", - "uplinks": { - "npmjs": { - "url": "http://localhost:4873/" - } - }, - "packages": { - "@*/*": { - "access": "$all", - "publish": "$all", - "proxy": "npmjs" - }, - "forbidden-place": { - "access": "nobody", - "publish": "$all" - }, - "react": { - "access": "$all", - "publish": "$all", - "proxy": "npmjs" - }, - "corrupted-package": { - "access": "$all", - "publish": "$all", - "proxy": "npmjs" - }, - "jquery": { - "access": "$all", - "publish": "$all", - "proxy": "npmjs" - }, - "auth-package": { - "access": "$authenticated", - "publish": "$authenticated" - }, - "vue": { - "access": "$authenticated", - "publish": "$authenticated", - "proxy": "npmjs" - }, - "*": { - "access": "$all", - "publish": "$all", - "proxy": "npmjs" - } - }, - "logs": [ - { - "type": "stdout", - "format": "pretty", - "level": "warn" - } - ] -} diff --git a/test/unit/partials/config/json/invalid.json b/test/unit/partials/config/json/invalid.json deleted file mode 100644 index 98232c64f..000000000 --- a/test/unit/partials/config/json/invalid.json +++ /dev/null @@ -1 +0,0 @@ -{ diff --git a/test/unit/partials/config/yaml/README.md b/test/unit/partials/config/yaml/README.md deleted file mode 100644 index d643e410e..000000000 --- a/test/unit/partials/config/yaml/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Yaml Configurations - -This folder host all sort of configurations for testing. We use `yaml` instead json configuration files for different reasons, maintenability, avoid polute with non use data and contributors can easily understand them. - -The files on this folder should be small as possible, **there is a custom config file for all tests (`default.yaml`)** and the following configuration aims to override those part are need it for the test. - -## Contribute - -- Each topic ideally should have his **own folder** if many scenarios might be part of the test. **eg: profile, security** - - Include different scenarios inside of the folder with enough context to indenty the use case. -- Foder or file, should be **named** as the test that used them. *eg: `api.spec.yaml` -> `api.spec.ts`* -- **Don't use the same config file in multiple test**, it increase maintenance complexity. -- Try to **include only the props are require for the test**: -- Comment the config files, don't be shy, add as much context you think is need it for future contributors. - -> Note: Some configurations might be not aligned with this rules, but in the future all files should be follow them for consistency. diff --git a/test/unit/partials/config/yaml/api-jwt/jwt.yaml b/test/unit/partials/config/yaml/api-jwt/jwt.yaml deleted file mode 100644 index 94d292a10..000000000 --- a/test/unit/partials/config/yaml/api-jwt/jwt.yaml +++ /dev/null @@ -1,36 +0,0 @@ -storage: ./storage -plugins: ./plugins - -web: - title: Verdaccio - -auth: - htpasswd: - file: ./htpasswd -uplinks: - npmjs: - url: https://registry.npmjs.org/ -security: - api: - jwt: - sign: - expiresIn: 10m - notBefore: 0 -packages: - '@*/*': - access: $all - publish: $authenticated - proxy: npmjs - 'vue': - access: $authenticated - publish: $authenticated - proxy: npmjs - '**': - access: $all - publish: $authenticated - proxy: npmjs -middlewares: - audit: - enabled: true -logs: - - { type: stdout, format: pretty, level: http } diff --git a/test/unit/partials/config/yaml/api.spec.yaml b/test/unit/partials/config/yaml/api.spec.yaml deleted file mode 100644 index 1a3d48a5e..000000000 --- a/test/unit/partials/config/yaml/api.spec.yaml +++ /dev/null @@ -1,89 +0,0 @@ -storage: ./storage_default_storage -uplinks: - npmjs: - url: http://localhost:4873/ -packages: - '@public-anyone-can-publish/*': - access: $anonymous jota_unpublish - publish: $anonymous jota_unpublish - unpublish: $anonymous jota_unpublish - '@scope/deprecate': - access: $all - publish: - - jota_deprecate - - only_publish - unpublish: - - jota_deprecate - - only_unpublish - '@scope/starPackage': - access: $all - publish: jota_star - unpublish: jota_star - '@only-one-can-publish/*': - access: jota_unpublish - publish: jota_unpublish - unpublish: jota_unpublish - '@jquery/*': - access: $all - publish: $all - proxy: npmjs - 'timeout': - access: $all - publish: $all - proxy: socketTimeout - '@scope/*': - access: test - publish: dsadsa - proxy: npmjs - '@*/*': - access: $all - publish: $all - unpublish: $authenticated - proxy: npmjs - 'auth-package': - access: $authenticated - publish: $authenticated - 'only-you-can-publish': - access: $authenticated - publish: you - unpublish: you - 'non-unpublish': - access: $authenticated - publish: jota_unpublish_fail - # There is some conditions to keep on mind here - # - If unpublish is empty, fallback with the publish value - # - If the user has permissions to publish and this empty it will be allowed to unpublish - # - If we want to forbid anyone to unpublish, just write here any unexisting user - unpublish: some_unexisting_user_defined_here_might_be_a_hash - 'only-unpublish': - access: $authenticated - # comment out is intended, we want to test if publish prop is not defined - # publish: jota_unpublish_fail - # - unpublish: - 'super-admin-can-unpublish': - access: $authenticated - publish: super_admin - unpublish: super_admin - 'all-can-unpublish': - access: $authenticated - publish: $all - unpublish: $all - 'forbidden-place': - access: nobody - publish: $all - 'vue': - access: $authenticated - publish: $authenticated - proxy: npmjs - 'jquery': - access: $all - publish: $all - proxy: npmjs - '*': - access: $all - publish: $all - unpublish: xxx - proxy: npmjs -logs: - - { type: stdout, format: pretty, level: warn } diff --git a/test/unit/partials/config/yaml/api.spec/web-config.yaml b/test/unit/partials/config/yaml/api.spec/web-config.yaml deleted file mode 100644 index fa63f82d5..000000000 --- a/test/unit/partials/config/yaml/api.spec/web-config.yaml +++ /dev/null @@ -1,52 +0,0 @@ -web: - enable: true - title: verdaccio-api-spec -1 - -auth: - auth-memory: - users: - test: - name: test - password: test - -store: - memory: - limit: 10 - -uplinks: - npmjs: - url: http://localhost:4873/ - -packages: - '@*/*': - access: $all - publish: $all - proxy: npmjs - 'forbidden-place': - access: nobody - publish: $all - 'react': - access: $all - publish: $all - proxy: npmjs - 'corrupted-package': - access: $all - publish: $all - proxy: npmjs - 'jquery': - access: $all - publish: $all - proxy: npmjs - 'auth-package': - access: $authenticated - publish: $authenticated - 'vue': - access: $authenticated - publish: $authenticated - proxy: npmjs - '*': - access: $all - publish: $all - -logs: - - { type: stdout, format: pretty, level: warns } diff --git a/test/unit/partials/config/yaml/api.web.spec.yaml b/test/unit/partials/config/yaml/api.web.spec.yaml deleted file mode 100644 index 8ee87bde1..000000000 --- a/test/unit/partials/config/yaml/api.web.spec.yaml +++ /dev/null @@ -1,20 +0,0 @@ -storage: ./storage_default_storage -uplinks: - npmjs: - url: http://localhost:4873/ -packages: - '@*/*': - access: $all - publish: $all - proxy: npmjs - unpublish: npmjs - 'forbidden-place': - access: nobody - publish: $all - '*': - access: $all - publish: $all - unpublish: xxx - proxy: npmjs -logs: - - { type: stdout, format: pretty, level: warn } diff --git a/test/unit/partials/config/yaml/default.yaml b/test/unit/partials/config/yaml/default.yaml deleted file mode 100644 index e5b81f678..000000000 --- a/test/unit/partials/config/yaml/default.yaml +++ /dev/null @@ -1,38 +0,0 @@ -storage: ./storage_default_storage - -uplinks: - npmjs: - url: http://localhost:4873/ -packages: - '@*/*': - access: $all - publish: $all - proxy: npmjs - 'forbidden-place': - access: nobody - publish: $all - 'react': - access: $all - publish: $all - proxy: npmjs - 'corrupted-package': - access: $all - publish: $all - proxy: npmjs - 'jquery': - access: $all - publish: $all - proxy: npmjs - 'auth-package': - access: $authenticated - publish: $authenticated - 'vue': - access: $authenticated - publish: $authenticated - proxy: npmjs - '*': - access: $all - publish: $all - proxy: npmjs -logs: - - { type: stdout, format: pretty, level: warn } diff --git a/test/unit/partials/config/yaml/deprecated-pkgs-basic.yaml b/test/unit/partials/config/yaml/deprecated-pkgs-basic.yaml deleted file mode 100644 index 9faed10e5..000000000 --- a/test/unit/partials/config/yaml/deprecated-pkgs-basic.yaml +++ /dev/null @@ -1,14 +0,0 @@ -packages: - '@*/*': - access: $all - publish: $authenticated - proxy: npmjs - 'react-*': - allow_access: $all - publish: admin - proxy_access: uplink2 - storage: 'react-storage' - '**': - allow_access: $all - allow_publish: $authenticated - proxy_access: npmjs diff --git a/test/unit/partials/config/yaml/notify/multiple.notify.yaml b/test/unit/partials/config/yaml/notify/multiple.notify.yaml deleted file mode 100644 index 35ae213a3..000000000 --- a/test/unit/partials/config/yaml/notify/multiple.notify.yaml +++ /dev/null @@ -1,20 +0,0 @@ -notify: - 'example-google-chat': - method: POST - headers: [{ 'Content-Type': 'application/json' }] - endpoint: https://chat.googleapis.com/v1/spaces/AAAAB_TcJYs/messages?key=myKey&token=myToken - content: '{"text":"New package published: `{{ name }}{{#each versions}} v{{version}}{{/each}}`"}' - 'example-hipchat': - method: POST - headers: [{ 'Content-Type': 'application/json' }] - endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken - content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}' - 'example-stride': - method: POST - headers: - [ - { 'Content-Type': 'application/json' }, - { 'authorization': 'Bearer secretToken' }, - ] - endpoint: https://api.atlassian.com/site/{cloudId}/conversation/{conversationId}/message - content: '{"body": {"version": 1,"type": "doc","content": [{"type": "paragraph","content": [{"type": "text","text": "New package published: * {{ name }}* Publisher name: * {{ publisher.name }}"}]}]}}' diff --git a/test/unit/partials/config/yaml/notify/single.header.notify.yaml b/test/unit/partials/config/yaml/notify/single.header.notify.yaml deleted file mode 100644 index bbb42046b..000000000 --- a/test/unit/partials/config/yaml/notify/single.header.notify.yaml +++ /dev/null @@ -1,5 +0,0 @@ -notify: - method: POST - headers: { 'Content-Type': 'application/json' } - endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken - content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}' diff --git a/test/unit/partials/config/yaml/notify/single.notify.yaml b/test/unit/partials/config/yaml/notify/single.notify.yaml deleted file mode 100644 index ecbabe511..000000000 --- a/test/unit/partials/config/yaml/notify/single.notify.yaml +++ /dev/null @@ -1,5 +0,0 @@ -notify: - method: POST - headers: [{ 'Content-Type': 'application/json' }] - endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken - content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}' diff --git a/test/unit/partials/config/yaml/notify/single.packagePattern.notify.yaml b/test/unit/partials/config/yaml/notify/single.packagePattern.notify.yaml deleted file mode 100644 index cc8f94bd4..000000000 --- a/test/unit/partials/config/yaml/notify/single.packagePattern.notify.yaml +++ /dev/null @@ -1,7 +0,0 @@ -notify: - method: POST - headers: { 'Content-Type': 'application/json' } - packagePattern: package - packagePatternFlags: g - endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken - content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}' diff --git a/test/unit/partials/config/yaml/pkg.access.spec.yaml b/test/unit/partials/config/yaml/pkg.access.spec.yaml deleted file mode 100644 index aacf91126..000000000 --- a/test/unit/partials/config/yaml/pkg.access.spec.yaml +++ /dev/null @@ -1,13 +0,0 @@ -storage: ./storage_default_storage -uplinks: - remote: - url: http://localhost:4873/ -packages: - '@*/*': - access: $all - proxy: remote - '**': - access: $all - proxy: remote -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/test/unit/partials/config/yaml/pkgs-basic-no-access.yaml b/test/unit/partials/config/yaml/pkgs-basic-no-access.yaml deleted file mode 100644 index 9ba1d7233..000000000 --- a/test/unit/partials/config/yaml/pkgs-basic-no-access.yaml +++ /dev/null @@ -1,7 +0,0 @@ -packages: - '@*/*': - publish: $all - proxy: npmjs - '**': - publish: $all - proxy: npmjs diff --git a/test/unit/partials/config/yaml/pkgs-basic-no-proxy.yaml b/test/unit/partials/config/yaml/pkgs-basic-no-proxy.yaml deleted file mode 100644 index 213bc9813..000000000 --- a/test/unit/partials/config/yaml/pkgs-basic-no-proxy.yaml +++ /dev/null @@ -1,7 +0,0 @@ -packages: - '@*/*': - access: $all - publish: $all - '**': - access: $all - publish: $all diff --git a/test/unit/partials/config/yaml/pkgs-basic-no-publish.yaml b/test/unit/partials/config/yaml/pkgs-basic-no-publish.yaml deleted file mode 100644 index 204f26d05..000000000 --- a/test/unit/partials/config/yaml/pkgs-basic-no-publish.yaml +++ /dev/null @@ -1,7 +0,0 @@ -packages: - '@*/*': - access: $all - proxy: npmjs - '**': - access: $all - proxy: npmjs diff --git a/test/unit/partials/config/yaml/pkgs-basic.yaml b/test/unit/partials/config/yaml/pkgs-basic.yaml deleted file mode 100644 index b16483bd7..000000000 --- a/test/unit/partials/config/yaml/pkgs-basic.yaml +++ /dev/null @@ -1,9 +0,0 @@ -packages: - '@*/*': - access: $all - publish: $authenticated - proxy: npmjs - '**': - access: $all - publish: $authenticated - proxy: npmjs diff --git a/test/unit/partials/config/yaml/pkgs-custom.yaml b/test/unit/partials/config/yaml/pkgs-custom.yaml deleted file mode 100644 index 4ee938acf..000000000 --- a/test/unit/partials/config/yaml/pkgs-custom.yaml +++ /dev/null @@ -1,17 +0,0 @@ -packages: - 'react': - access: admin - publish: admin - proxy: facebook - 'angular': - access: admin - publish: admin - proxy: google - '@*/*': - access: $all - publish: $authenticated - proxy: npmjs - '**': - access: $all - publish: $authenticated - proxy: npmjs diff --git a/test/unit/partials/config/yaml/pkgs-empty.yaml b/test/unit/partials/config/yaml/pkgs-empty.yaml deleted file mode 100644 index 43b16d090..000000000 --- a/test/unit/partials/config/yaml/pkgs-empty.yaml +++ /dev/null @@ -1,4 +0,0 @@ -packages: - 'private': - access: admin - publish: admin diff --git a/test/unit/partials/config/yaml/pkgs-multi-group.yaml b/test/unit/partials/config/yaml/pkgs-multi-group.yaml deleted file mode 100644 index 499bf954d..000000000 --- a/test/unit/partials/config/yaml/pkgs-multi-group.yaml +++ /dev/null @@ -1,9 +0,0 @@ -packages: - '@*/*': - access: $all - publish: admin superadmin - proxy: npmjs - '**': - access: $all user1 user2 - publish: admin - proxy: npmjs diff --git a/test/unit/partials/config/yaml/pkgs-nosuper-wildcard-custom.yaml b/test/unit/partials/config/yaml/pkgs-nosuper-wildcard-custom.yaml deleted file mode 100644 index d86a53f56..000000000 --- a/test/unit/partials/config/yaml/pkgs-nosuper-wildcard-custom.yaml +++ /dev/null @@ -1,13 +0,0 @@ -packages: - 'react': - access: admin - publish: admin - proxy: facebook - 'angular': - access: admin - publish: admin - proxy: google - '@fake/*': - access: $all - publish: $authenticated - proxy: npmjs diff --git a/test/unit/partials/config/yaml/profile/profile.yaml b/test/unit/partials/config/yaml/profile/profile.yaml deleted file mode 100644 index 93ab64359..000000000 --- a/test/unit/partials/config/yaml/profile/profile.yaml +++ /dev/null @@ -1,27 +0,0 @@ -storage: ./storage -plugins: ./plugins - -web: - title: Verdaccio - -auth: - htpasswd: - file: ./htpasswd -uplinks: - npmjs: - url: https://registry.npmjs.org/ -security: - api: - jwt: - sign: - expiresIn: 10m - notBefore: 0 -packages: - '@*/*': - access: $authenticated - publish: $authenticated - '**': - access: $authenticated - publish: $authenticated -logs: - - { type: stdout, format: pretty, level: http } diff --git a/test/unit/partials/config/yaml/security/security-basic.yaml b/test/unit/partials/config/yaml/security/security-basic.yaml deleted file mode 100644 index 11679dbc1..000000000 --- a/test/unit/partials/config/yaml/security/security-basic.yaml +++ /dev/null @@ -1,12 +0,0 @@ -security: - api: - legacy: true # use AES algorithm - # jwt enables json web token and disable legacy - # jwt: https://github.com/auth0/node-jsonwebtoken#jwtsignpayload-secretorprivatekey-options-callback - sign: - expiresIn: 7d # 7 days by default - # verify: - web: - sign: - expiresIn: 7d # 7 days by default - # verify: https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback diff --git a/test/unit/partials/config/yaml/security/security-empty.yaml b/test/unit/partials/config/yaml/security/security-empty.yaml deleted file mode 100644 index 8db35a2d1..000000000 --- a/test/unit/partials/config/yaml/security/security-empty.yaml +++ /dev/null @@ -1 +0,0 @@ -? security diff --git a/test/unit/partials/config/yaml/security/security-jwt-legacy-enabled.yaml b/test/unit/partials/config/yaml/security/security-jwt-legacy-enabled.yaml deleted file mode 100644 index a6d13bb79..000000000 --- a/test/unit/partials/config/yaml/security/security-jwt-legacy-enabled.yaml +++ /dev/null @@ -1,10 +0,0 @@ -security: - api: - legacy: true - jwt: - sign: - expiresIn: 7d - notBefore: 0 - web: - sign: - expiresIn: 7d diff --git a/test/unit/partials/config/yaml/security/security-jwt.yaml b/test/unit/partials/config/yaml/security/security-jwt.yaml deleted file mode 100644 index 075a85201..000000000 --- a/test/unit/partials/config/yaml/security/security-jwt.yaml +++ /dev/null @@ -1,6 +0,0 @@ -security: - api: - jwt: - sign: - expiresIn: 7d - notBefore: 0 diff --git a/test/unit/partials/config/yaml/security/security-legacy-disabled.yaml b/test/unit/partials/config/yaml/security/security-legacy-disabled.yaml deleted file mode 100644 index 3ed6e7792..000000000 --- a/test/unit/partials/config/yaml/security/security-legacy-disabled.yaml +++ /dev/null @@ -1,3 +0,0 @@ -security: - api: - legacy: false diff --git a/test/unit/partials/config/yaml/security/security-legacy.yaml b/test/unit/partials/config/yaml/security/security-legacy.yaml deleted file mode 100644 index 6602c9daf..000000000 --- a/test/unit/partials/config/yaml/security/security-legacy.yaml +++ /dev/null @@ -1,3 +0,0 @@ -security: - api: - legacy: true diff --git a/test/unit/partials/config/yaml/security/security-missing.yaml b/test/unit/partials/config/yaml/security/security-missing.yaml deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/unit/partials/config/yaml/security/security-no-legacy.yaml b/test/unit/partials/config/yaml/security/security-no-legacy.yaml deleted file mode 100644 index dba590e79..000000000 --- a/test/unit/partials/config/yaml/security/security-no-legacy.yaml +++ /dev/null @@ -1,9 +0,0 @@ -security: - api: - legacy: false - sign: - expiresIn: 7d - notBefore: 0 - web: - sign: - expiresIn: 7d diff --git a/test/unit/partials/config/yaml/server/keepalivetimeout-0.yaml b/test/unit/partials/config/yaml/server/keepalivetimeout-0.yaml deleted file mode 100644 index 0b4a85047..000000000 --- a/test/unit/partials/config/yaml/server/keepalivetimeout-0.yaml +++ /dev/null @@ -1,2 +0,0 @@ -server: - keepAliveTimeout: 0 diff --git a/test/unit/partials/config/yaml/server/keepalivetimeout-60.yaml b/test/unit/partials/config/yaml/server/keepalivetimeout-60.yaml deleted file mode 100644 index 3c1ea7391..000000000 --- a/test/unit/partials/config/yaml/server/keepalivetimeout-60.yaml +++ /dev/null @@ -1,2 +0,0 @@ -server: - keepAliveTimeout: 60 diff --git a/test/unit/partials/config/yaml/server/keepalivetimeout-undefined.yaml b/test/unit/partials/config/yaml/server/keepalivetimeout-undefined.yaml deleted file mode 100644 index 146dd4aab..000000000 --- a/test/unit/partials/config/yaml/server/keepalivetimeout-undefined.yaml +++ /dev/null @@ -1,2 +0,0 @@ -server: - foo: 'bar' diff --git a/test/unit/partials/config/yaml/store.spec.yaml b/test/unit/partials/config/yaml/store.spec.yaml deleted file mode 100644 index 14e344562..000000000 --- a/test/unit/partials/config/yaml/store.spec.yaml +++ /dev/null @@ -1,21 +0,0 @@ -uplinks: - npmjs: - url: http://localhost:4873/ -packages: - '@*/*': - access: $all - publish: $all - proxy: npmjs - 'corrupted-package': - access: $all - publish: $all - proxy: npmjs - 'jquery': - access: $all - publish: $all - proxy: npmjs - 'npm_test': - access: $all - publish: $all -logs: - - { type: stdout, format: pretty, level: warn } diff --git a/test/unit/partials/config/yaml/token.spec.yaml b/test/unit/partials/config/yaml/token.spec.yaml deleted file mode 100644 index 87ddb880a..000000000 --- a/test/unit/partials/config/yaml/token.spec.yaml +++ /dev/null @@ -1,23 +0,0 @@ -storage: ./storage_default_storage -uplinks: - npmjs: - url: http://localhost:4873/ -security: - api: - jwt: - sign: - expiresIn: 5m - # to avoid invalid verification token, more info on JWT page - notBefore: 0 -packages: - '@token/*': - access: $authenticated - publish: $authenticated - 'only-you-can-publish': - access: $authenticated - publish: $authenticated -logs: - - { type: stdout, format: pretty, level: trace } -experiments: - ## enable token for testing - token: true diff --git a/test/unit/partials/config/yaml/uplink-basic.yaml b/test/unit/partials/config/yaml/uplink-basic.yaml deleted file mode 100644 index 934eca3ef..000000000 --- a/test/unit/partials/config/yaml/uplink-basic.yaml +++ /dev/null @@ -1,7 +0,0 @@ -uplinks: - server1: - url: http://localhost:55551/ - maxage: 0 - server2: - url: http://localhost:55551/ - maxage: 0 diff --git a/test/unit/partials/config/yaml/uplink-wrong.yaml b/test/unit/partials/config/yaml/uplink-wrong.yaml deleted file mode 100644 index ac5435aed..000000000 --- a/test/unit/partials/config/yaml/uplink-wrong.yaml +++ /dev/null @@ -1,9 +0,0 @@ -uplinks: - facebook: - url: http://localhost:55551/ - maxage: 0 - anonymous: - url: http://localhost:55551/ - maxage: 0 - none-url: - maxage: 0 diff --git a/test/unit/partials/forbidden-place.js b/test/unit/partials/forbidden-place.js deleted file mode 100644 index a26014136..000000000 --- a/test/unit/partials/forbidden-place.js +++ /dev/null @@ -1,53 +0,0 @@ -const json = { - "_id": "forbidden-place", - "name": "forbidden-place", - "description": "", - "dist-tags": { - "latest": "1.0.6" - }, - "versions": { - "1.0.6": { - "name": "forbidden-place", - "version": "1.0.6", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": { - "name": "User NPM", - "email": "user@domain.com" - }, - "license": "ISC", - "dependencies": { - "verdaccio": "^2.7.2" - }, - "readme": "# test", - "readmeFilename": "README.md", - "_id": "forbidden-place@1.0.6", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-6gHiERpiDgtb3hjqpQH5\/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==", - "shasum": "2c03764f651a9f016ca0b7620421457b619151b9", - "tarball": "http:\/\/localhost:5555\/forbidden-place\/-\/forbidden-place-1.0.6.tgz" - } - } - }, - "readme": "# test", - "_attachments": { - "forbidden-place-1.0.6.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAE+2W32vbMBDH85y\/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo\/\/79KPeQsnIw5KUDX\/9IOvurLuz\/DHSjK\/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF\/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI\/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS\/pLQe+D+FIv\/agIWI6GX66kFuIhT+1gDjrp\/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0\/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi\/IHpU9fz3\/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6\/f88f\/Pu47zomiPk2Lv\/dOv8h+P\/34\/D\/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=", - "length": 512 - } - } -} - -module.exports = json; diff --git a/test/unit/partials/metadata b/test/unit/partials/metadata deleted file mode 100644 index c3d91b3bf..000000000 --- a/test/unit/partials/metadata +++ /dev/null @@ -1,50 +0,0 @@ -{ - "_id": "npm_test", - "name": "npm_test", - "description": "", - "dist-tags": { - "latest": "1.0.0" - }, - "versions": { - "1.0.0": { - "name": "npm_test", - "version": "1.0.0", - "description": "", - "main": "index.js", - "dependencies": { - "test": "^1.4.0" - }, - "devDependencies": { - - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": "", - "license": "ISC", - "readme": "ERROR: No README data found!", - "_id": "npm_test@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-tfzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", - "shasum": "3e4e6bd5097b295e520b947c9be3259a9509a673", - "tarball": "http:\/\/localhost:4873\/npm_test\/-\/npm_test-1.0.0.tgz" - } - } - }, - "readme": "ERROR: No README data found!", - "_attachments": { - "npm_test-1.0.0.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR\/l6bvtW+mf6xUK\/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ\/SxVZ+m5PPAsfxn\/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu\/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd\/\/QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=", - "length": 281 - } - } -} diff --git a/test/unit/partials/metadata-update-versions-tags b/test/unit/partials/metadata-update-versions-tags deleted file mode 100644 index 9a10d432b..000000000 --- a/test/unit/partials/metadata-update-versions-tags +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "add-update-versions-test-1", - "versions": { - "1.0.1": { - "name": "add-update-versions-test-1", - "version": "1.0.1", - "description": "", - "main": "index.js", - "dependencies": { - "test": "^1.4.1" - }, - "devDependencies": {}, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "_id": "add-update-versions-test-1@1.0.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-zVEqt1JUCOPsash9q4wMkJEDPD+QCx95TRhQII+JnoS31uBUKoZxhzvvUJCcLVy2CQG4QdwXARU7dYWPnrwhGg==", - "shasum": "238e7641e59508dc9c20eb4ad37a8aa57ab777b4", - "tarball": "http://localhost:4873/add-update-versions-test-1/-/add-update-versions-test-1-1.0.1.tgz" - } - }, - "1.0.2": { - "name": "add-update-versions-test-1", - "version": "1.0.1", - "description": "", - "main": "index.js", - "dependencies": { - "test": "^1.4.1" - }, - "devDependencies": {}, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "_id": "add-update-versions-test-1@1.0.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-zVEqt1JUCOPsash9q4wMkJEDPD+QCx95TRhQII+JnoS31uBUKoZxhzvvUJCcLVy2CQG4QdwXARU7dYWPnrwhGg==", - "shasum": "238e7641e59508dc9c20eb4ad37a8aa57ab777b4", - "tarball": "http://localhost:4873/add-update-versions-test-1/-/add-update-versions-test-1-1.0.1.tgz" - } - }, - "1.0.4": { - "name": "add-update-versions-test-1", - "version": "1.0.4", - "description": "", - "main": "index.js", - "dependencies": { - "test": "^1.4.1" - }, - "devDependencies": {}, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "_id": "add-update-versions-test-1@1.0.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-zVEqt1JUCOPsash9q4wMkJEDPD+QCx95TRhQII+JnoS31uBUKoZxhzvvUJCcLVy2CQG4QdwXARU7dYWPnrwhGg==", - "shasum": "238e7641e59508dc9c20eb4ad37a8aa57ab777b4", - "tarball": "http://localhost:4873/add-update-versions-test-1/-/add-update-versions-test-1-1.0.1.tgz" - } - } - }, - "dist-tags": { - "latest": "1.0.1", - "beta": "1.0.2", - "next": "1.0.4" - }, - "time": { - "modified": "2019-01-29T03:20:04.000Z", - "created": "2019-01-29T03:20:00.000Z", - "1.0.1": "2019-01-29T03:20:01.000Z", - "1.0.2": "2019-01-29T03:20:02.000Z", - "1.0.4": "2019-01-29T03:20:04.000Z" - }, - "_distfiles": {}, - "_attachments": {}, - "_uplinks": {}, - "_rev": "2-b8a00ec71cdc7323", - "readme": "readme 1.0.4" -} diff --git a/test/unit/partials/mock-store/.sinopia-db.json b/test/unit/partials/mock-store/.sinopia-db.json deleted file mode 100644 index 6ad4f3455..000000000 --- a/test/unit/partials/mock-store/.sinopia-db.json +++ /dev/null @@ -1 +0,0 @@ -{"list":[],"secret":"12c39716d7c75d50b9988255fff332e1b066bad04e10fff9cba42434bc5fe19e"} \ No newline at end of file diff --git a/test/unit/partials/mock-store/@jquery/jquery/jquery-1.5.1.tgz b/test/unit/partials/mock-store/@jquery/jquery/jquery-1.5.1.tgz deleted file mode 100644 index aca55f3db..000000000 Binary files a/test/unit/partials/mock-store/@jquery/jquery/jquery-1.5.1.tgz and /dev/null differ diff --git a/test/unit/partials/mock-store/@jquery/jquery/package.json b/test/unit/partials/mock-store/@jquery/jquery/package.json deleted file mode 100644 index dec2d5571..000000000 --- a/test/unit/partials/mock-store/@jquery/jquery/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "@jquery/jquery", - "versions": { - "1.5.1": { - "name": "@jquery/jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": "=0.1.20", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.5.1", - "_id": "@jquery/jquery@1.5.1", - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "0.3.15", - "_nodeVersion": "v0.4.2", - "directories": { - "lib": "./lib" - }, - "files": [ - "" - ], - "_defaultsLoaded": true, - "dist": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "tarball": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz" - }, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - } - }, - "time": { - "modified": "2018-05-21T21:39:54.702Z", - "created": "2011-03-19T07:19:56.392Z", - "1.5.1": "2011-03-19T07:19:56.956Z" - }, - "dist-tags": { - "beta": "3.0.0", - "latest": "3.3.1", - "jota": "1.6.3" - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"252f0a131cedd3ea82dfefd6fa049558\"", - "fetched": 1529779934081 - } - }, - "_distfiles": { - "jquery-1.5.1.tgz": { - "url": "https://registry.npmjs.org/@jquery%2jquery/-/jquery-1.5.1.tgz", - "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "registry": "npmjs" - } - }, - "_attachments": { - "jquery-1.5.1.tgz": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5" - } - }, - "_rev": "60-fed4915c27b9c1e6", - "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" -} diff --git a/test/unit/partials/mock-store/corrupted-package/package.json b/test/unit/partials/mock-store/corrupted-package/package.json deleted file mode 100644 index 8fb792e7d..000000000 --- a/test/unit/partials/mock-store/corrupted-package/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "corrupted-package" - "version": {}, - "dist-tags": {}, - "_distfiles": {}, - "_attachments": {}, - "_uplinks": {}, - "time": {}, - "_rev": "0-0000000000000000", - "readme": "", - "versions": {} -} \ No newline at end of file diff --git a/test/unit/partials/mock-store/jquery/jquery-1.5.1.tgz b/test/unit/partials/mock-store/jquery/jquery-1.5.1.tgz deleted file mode 100644 index aca55f3db..000000000 Binary files a/test/unit/partials/mock-store/jquery/jquery-1.5.1.tgz and /dev/null differ diff --git a/test/unit/partials/mock-store/jquery/package.json b/test/unit/partials/mock-store/jquery/package.json deleted file mode 100644 index 1f76451fb..000000000 --- a/test/unit/partials/mock-store/jquery/package.json +++ /dev/null @@ -1,4919 +0,0 @@ -{ - "name": "jquery", - "versions": { - "1.5.1": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": "=0.1.20", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.5.1", - "_id": "jquery@1.5.1", - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "0.3.15", - "_nodeVersion": "v0.4.2", - "directories": { - "lib": "./lib" - }, - "files": [ - "" - ], - "_defaultsLoaded": true, - "dist": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz" - }, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.6.2", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.2/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.2", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.15", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "01757a4c5beea29e8ae697527c3131abbe997a28", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz" - }, - "scripts": {}, - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "url": "http://jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": ".", - "main": "./node-jquery.js", - "version": "1.6.3", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.3/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.3", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.22", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz" - }, - "scripts": {}, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": "0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.3.0" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "_id": "jquery@1.7.2", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.12", - "_nodeVersion": "v0.6.14", - "_defaultsLoaded": true, - "dist": { - "shasum": "a93746763aca75a34df4c16395b0826310d0eaf2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.7.3", - "dist": { - "shasum": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.2", - "dist": { - "shasum": "46790ae07c6de38124eda90bbf7336b43df93305", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1", - "contextify": "~0.1.3" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.3", - "dist": { - "shasum": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "2.1.0-beta2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta2", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "~0.4.10", - "grunt": "~0.4.1", - "grunt-bower-task": "~0.3.2", - "grunt-cli": "~0.1.11", - "grunt-compare-size": "~0.4.0", - "grunt-contrib-jshint": "~0.7.0", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-watch": "~0.5.3", - "grunt-git-authors": "~1.2.0", - "grunt-jscs-checker": "~0.2.3", - "grunt-jsonlint": "~1.0.1", - "gzip-js": "0.3.2", - "load-grunt-tasks": "~0.2.0", - "testswarm": "~1.1.0", - "requirejs": "~2.1.9", - "which": "~1.0.5" - }, - "_id": "jquery@2.1.0-beta2", - "dist": { - "shasum": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "rwaldron", - "email": "waldron.rick@gmail.com" - }, - { - "name": "jquery", - "email": "npm@jquery.com" - } - ], - "directories": {} - }, - "2.1.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-beta3", - "dist": { - "shasum": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-beta3", - "dist": { - "shasum": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-rc1", - "dist": { - "shasum": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "dave.methvin@gmail.com" - } - ], - "directories": {} - }, - "2.1.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-rc1", - "dist": { - "shasum": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - } - ], - "directories": {} - }, - "1.11.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0", - "dist": { - "shasum": "c67ceee19b403650d682adcf39d5c9009814d949", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0", - "dist": { - "shasum": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-beta1", - "dist": { - "shasum": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-beta1", - "dist": { - "shasum": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc1", - "_shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz" - }, - "directories": {} - }, - "1.11.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc1", - "_shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz" - }, - "directories": {} - }, - "2.1.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc2", - "dist": { - "shasum": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc2", - "dist": { - "shasum": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1", - "dist": { - "shasum": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1", - "dist": { - "shasum": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.9.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.9.1", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "scripts": { - "test": "grunt" - }, - "dependencies": {}, - "devDependencies": { - "grunt-compare-size": "~0.3.0", - "grunt-git-authors": "~1.1.0", - "grunt-update-submodules": "~0.2.0", - "grunt-contrib-watch": "~0.1.1", - "grunt-contrib-jshint": "~0.1.1", - "grunt-contrib-uglify": "~0.1.1", - "grunt": "~0.4.0", - "testswarm": "0.2.2" - }, - "keywords": [], - "gitHead": "d71f6a53927ad02d728503385d15539b73d21ac8", - "_id": "jquery@1.9.1", - "_shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "_from": ".", - "_npmVersion": "1.5.0-alpha-1", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz" - }, - "directories": {} - }, - "2.1.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "a04f5ff9795fd6292117563623db44cf3f875868", - "_id": "jquery@2.1.2", - "_shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz" - }, - "directories": {} - }, - "1.11.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "9690801db01709bfbff5f977d07fb7cc14472908", - "_id": "jquery@1.11.2", - "_shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz" - }, - "directories": {} - }, - "2.1.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0", - "_id": "jquery@2.1.3", - "_shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "_from": ".", - "_npmVersion": "2.1.14", - "_nodeVersion": "0.11.14", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz" - }, - "directories": {} - }, - "2.1.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "7751e69b615c6eca6f783a81e292a55725af6b85", - "_id": "jquery@2.1.4", - "_shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" - }, - "directories": {} - }, - "1.11.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "1472290917f17af05e98007136096784f9051fab", - "_id": "jquery@1.11.3", - "_shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz" - }, - "directories": {} - }, - "3.0.0-alpha1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-alpha1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-alpha1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.7.0", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs-checker": "0.8.1", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.0", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "jsdomVersions": { - "node": "3.1.2", - "iojs": "5.3.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2c92869b752bb8e0fe74c3183f40f3f58b7b906d", - "_id": "jquery@3.0.0-alpha1", - "_shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz" - }, - "directories": {} - }, - "1.12.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "efbdc6e3f0fa3d3cd4d3d8bfa37990b707f7c2e1", - "_id": "jquery@1.12.0", - "_shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz" - }, - "directories": {} - }, - "2.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6fc01e29bdad0964f62ef56d01297039cdcadbe5", - "_id": "jquery@2.2.0", - "_shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz" - }, - "directories": {} - }, - "3.0.0-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-beta1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.3.0", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2ef761afd9addf78193f5191ece03bb20c9182c2", - "_id": "jquery@3.0.0-beta1", - "_shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz" - }, - "directories": {} - }, - "1.12.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "56ead6ffbf8560c521e7e94518d35db42b19f5f3", - "_id": "jquery@1.12.1", - "_shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.1.tgz_1456168080336_0.4474994211923331" - }, - "directories": {} - }, - "2.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "788eaba2f83e7b7445c7a83a50c81c0704423874", - "_id": "jquery@2.2.1", - "_shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.1.tgz_1456168325917_0.42471840139478445" - }, - "directories": {} - }, - "1.12.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "a9b5f8ac96f6aa7bfc7b0795cb16d65c4f15b64e", - "_id": "jquery@1.12.2", - "_shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.2.tgz_1458236759160_0.3557943068444729" - }, - "directories": {} - }, - "2.2.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "086d381cd2f3b4b8b0af85ecb2c9593a61e5b4bd", - "_id": "jquery@2.2.2", - "_shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.2.tgz_1458237146417_0.4190880397800356" - }, - "directories": {} - }, - "1.12.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "3a43d7e563314bf32970b773dd31ecf2b90813dd", - "_id": "jquery@1.12.3", - "_shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.3.tgz_1459884094815_0.5328964435029775" - }, - "directories": {} - }, - "2.2.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "af22a351b2ea5801ffb1695abb3bb34d5bed9198", - "_id": "jquery@2.2.3", - "_shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.3.tgz_1459884434885_0.992488760035485" - }, - "directories": {} - }, - "1.12.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "5e89585e0121e72ff47de177c5ef604f3089a53d", - "_id": "jquery@1.12.4", - "_shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.4.tgz_1463764744844_0.4810373710934073" - }, - "directories": {} - }, - "2.2.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "c0185ab7c75aab88762c5aae780b9d83b80eda72", - "_id": "jquery@2.2.4", - "_shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.4.tgz_1463765166836_0.5834389675874263" - }, - "directories": {} - }, - "3.0.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-rc1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "e503a93188dc4b5b42e2340f805f2d90b404bc50", - "_id": "jquery@3.0.0-rc1", - "_shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0-rc1.tgz_1463771627380_0.12211154378019273" - }, - "directories": {} - }, - "3.0.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "0078f86be166a8747819d5d1516776a662cb69df", - "_id": "jquery@3.0.0", - "_shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0.tgz_1465497191024_0.9057256667874753" - }, - "directories": {} - }, - "3.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "0.1.6", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "18.1.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6f02bc382c0529d3b4f68f6b2ad21876642dbbfe", - "_id": "jquery@3.1.0", - "_shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "_from": ".", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.0.tgz_1467927964329_0.882518710102886" - }, - "directories": {} - }, - "3.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|(Refs? [^#])" - }, - "gitHead": "1b30f3ad466ebf2714d47eda34dbd7fdf6849fe3", - "_id": "jquery@3.1.1", - "_shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.1.tgz_1474583566957_0.15473420196212828" - }, - "directories": {} - }, - "3.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "a81259fff4ea0c7b4cd98f04050c829640395a31", - "_id": "jquery@3.2.0", - "_shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "_from": ".", - "_npmVersion": "4.1.2", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.0.tgz_1489699855733_0.5328386940527707" - }, - "directories": {} - }, - "3.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", - "_id": "jquery@3.2.1", - "_shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "_from": ".", - "_npmVersion": "4.4.4", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.1.tgz_1490036530067_0.19497186387889087" - }, - "directories": {} - }, - "3.3.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": { - "archiver": "1.3.0", - "chalk": "1.1.3", - "npm": "4.4.1", - "shelljs": "0.7.7" - }, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9a8a1c63930edc9fb6fab9e75b3eee578762b8a5", - "_id": "jquery@3.3.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-1SmQFTqu24RtvnvLN/D1RFIsOBGqLQYsGJgZxejd69Rw9ACBJvSgppA+A+wBcXgASwRSoX1aDN1I5ZNIrFC6Xw==", - "shasum": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.0.tgz_1516388631205_0.827812286792323" - }, - "directories": {} - }, - "3.3.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9e8ec3d10fad04748176144f108d7355662ae75e", - "_id": "jquery@3.3.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.1.tgz_1516469230473_0.5458589680492878" - }, - "directories": {} - } - }, - "time": { - "modified": "2018-05-21T21:39:54.702Z", - "created": "2011-03-19T07:19:56.392Z", - "1.5.1": "2011-03-19T07:19:56.956Z", - "1.6.2": "2011-07-06T16:13:21.519Z", - "1.6.3": "2011-09-12T19:05:34.373Z", - "1.7.2": "2012-05-01T11:14:09.090Z", - "1.7.3": "2012-07-01T16:11:53.194Z", - "1.8.2": "2012-11-11T22:43:58.910Z", - "1.8.3": "2012-12-01T00:03:02.297Z", - "2.1.0-beta2": "2013-11-15T16:34:48.859Z", - "2.1.0-beta3": "2013-12-20T22:53:28.426Z", - "1.11.0-beta3": "2014-01-06T19:57:22.387Z", - "2.1.0-rc1": "2014-01-17T22:47:16.391Z", - "1.11.0-pre": "2014-01-16T20:38:42.912Z", - "1.11.0-rc1": "2014-01-16T21:08:36.924Z", - "1.11.0": "2014-01-23T21:07:07.184Z", - "2.1.0": "2014-01-23T21:12:47.772Z", - "2.1.1-beta1": "2014-03-24T17:05:07.581Z", - "1.11.1-beta1": "2014-03-24T17:25:14.236Z", - "2.1.1-rc1": "2014-04-18T15:29:41.423Z", - "1.11.1-rc1": "2014-04-18T15:40:23.931Z", - "2.1.1-rc2": "2014-04-21T20:52:06.866Z", - "1.11.1-rc2": "2014-04-21T21:12:52.817Z", - "2.1.1": "2014-05-01T17:15:20.164Z", - "1.11.1": "2014-05-01T18:05:32.863Z", - "1.9.1": "2014-07-17T22:01:17.886Z", - "2.1.2": "2014-12-17T14:14:28.184Z", - "1.11.2": "2014-12-17T16:07:07.647Z", - "2.1.3": "2014-12-18T15:18:38.205Z", - "2.1.4": "2015-04-28T16:17:13.648Z", - "1.11.3": "2015-04-28T16:22:06.378Z", - "3.0.0-alpha1": "2015-07-13T19:26:37.913Z", - "1.12.0": "2016-01-08T19:58:05.265Z", - "2.2.0": "2016-01-08T20:03:43.280Z", - "3.0.0-beta1": "2016-01-14T23:09:43.368Z", - "1.12.1": "2016-02-22T19:08:05.212Z", - "2.2.1": "2016-02-22T19:12:09.116Z", - "1.12.2": "2016-03-17T17:45:59.810Z", - "2.2.2": "2016-03-17T17:52:26.967Z", - "1.12.3": "2016-04-05T19:21:37.716Z", - "2.2.3": "2016-04-05T19:27:17.929Z", - "1.12.4": "2016-05-20T17:19:07.375Z", - "2.2.4": "2016-05-20T17:26:07.921Z", - "3.0.0-rc1": "2016-05-20T19:13:48.387Z", - "3.0.0": "2016-06-09T18:33:13.420Z", - "3.1.0": "2016-07-07T21:46:05.554Z", - "3.1.1": "2016-09-22T22:32:49.360Z", - "3.2.0": "2017-03-16T21:30:56.342Z", - "3.2.1": "2017-03-20T19:02:13.508Z", - "3.3.0": "2018-01-19T19:03:52.616Z", - "3.3.1": "2018-01-20T17:27:11.928Z" - }, - "dist-tags": { - "beta": "3.0.0", - "latest": "3.3.1", - "jota": "1.6.3" - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"252f0a131cedd3ea82dfefd6fa049558\"", - "fetched": 1529779934081 - } - }, - "_distfiles": { - "jquery-1.5.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz", - "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "registry": "npmjs" - }, - "jquery-1.6.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz", - "sha": "01757a4c5beea29e8ae697527c3131abbe997a28", - "registry": "npmjs" - }, - "jquery-1.6.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz", - "sha": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "registry": "npmjs" - }, - "jquery-1.7.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz", - "sha": "a93746763aca75a34df4c16395b0826310d0eaf2", - "registry": "npmjs" - }, - "jquery-1.7.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz", - "sha": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "registry": "npmjs" - }, - "jquery-1.8.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz", - "sha": "46790ae07c6de38124eda90bbf7336b43df93305", - "registry": "npmjs" - }, - "jquery-1.8.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz", - "sha": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "registry": "npmjs" - }, - "jquery-2.1.0-beta2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz", - "sha": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "registry": "npmjs" - }, - "jquery-2.1.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz", - "sha": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "registry": "npmjs" - }, - "jquery-1.11.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz", - "sha": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "registry": "npmjs" - }, - "jquery-1.11.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz", - "sha": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "registry": "npmjs" - }, - "jquery-2.1.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz", - "sha": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "registry": "npmjs" - }, - "jquery-1.11.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz", - "sha": "c67ceee19b403650d682adcf39d5c9009814d949", - "registry": "npmjs" - }, - "jquery-2.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz", - "sha": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "registry": "npmjs" - }, - "jquery-2.1.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz", - "sha": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "registry": "npmjs" - }, - "jquery-1.11.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz", - "sha": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "registry": "npmjs" - }, - "jquery-2.1.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz", - "sha": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "registry": "npmjs" - }, - "jquery-1.11.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz", - "sha": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "registry": "npmjs" - }, - "jquery-2.1.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz", - "sha": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "registry": "npmjs" - }, - "jquery-1.11.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz", - "sha": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "registry": "npmjs" - }, - "jquery-2.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz", - "sha": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "registry": "npmjs" - }, - "jquery-1.11.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz", - "sha": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "registry": "npmjs" - }, - "jquery-1.9.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz", - "sha": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "registry": "npmjs" - }, - "jquery-2.1.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz", - "sha": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "registry": "npmjs" - }, - "jquery-1.11.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz", - "sha": "30ab26857211c37caa83da0f6903155fe49bb72d", - "registry": "npmjs" - }, - "jquery-2.1.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz", - "sha": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "registry": "npmjs" - }, - "jquery-2.1.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", - "sha": "228bde698a0c61431dc2630a6a154f15890d2317", - "registry": "npmjs" - }, - "jquery-1.11.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz", - "sha": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "registry": "npmjs" - }, - "jquery-3.0.0-alpha1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz", - "sha": "3493d672266e21c2dffb2714f935448edebe3c62", - "registry": "npmjs" - }, - "jquery-1.12.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz", - "sha": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "registry": "npmjs" - }, - "jquery-2.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz", - "sha": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "registry": "npmjs" - }, - "jquery-3.0.0-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz", - "sha": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "registry": "npmjs" - }, - "jquery-1.12.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz", - "sha": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "registry": "npmjs" - }, - "jquery-2.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz", - "sha": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "registry": "npmjs" - }, - "jquery-1.12.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz", - "sha": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "registry": "npmjs" - }, - "jquery-2.2.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz", - "sha": "3e302dc61eb329a21e9efac937d731f061134c59", - "registry": "npmjs" - }, - "jquery-1.12.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz", - "sha": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "registry": "npmjs" - }, - "jquery-2.2.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz", - "sha": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "registry": "npmjs" - }, - "jquery-1.12.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz", - "sha": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "registry": "npmjs" - }, - "jquery-2.2.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", - "sha": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "registry": "npmjs" - }, - "jquery-3.0.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz", - "sha": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "registry": "npmjs" - }, - "jquery-3.0.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz", - "sha": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "registry": "npmjs" - }, - "jquery-3.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz", - "sha": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "registry": "npmjs" - }, - "jquery-3.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz", - "sha": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "registry": "npmjs" - }, - "jquery-3.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz", - "sha": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "registry": "npmjs" - }, - "jquery-3.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "sha": "5c4d9de652af6cd0a770154a631bba12b015c787", - "registry": "npmjs" - }, - "jquery-3.3.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz", - "sha": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "registry": "npmjs" - }, - "jquery-3.3.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "sha": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "registry": "npmjs" - } - }, - "_attachments": { - "jquery-1.5.1.tgz": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5" - } - }, - "_rev": "60-fed4915c27b9c1e6", - "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" -} \ No newline at end of file diff --git a/test/unit/partials/mock-store/npm_test/package.json b/test/unit/partials/mock-store/npm_test/package.json deleted file mode 100644 index 037dba1e7..000000000 --- a/test/unit/partials/mock-store/npm_test/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_id": "npm_test", - "name": "npm_test", - "description": "", - "dist-tags": { - "latest": "1.0.0" - }, - "versions": { - "1.0.0": { - "name": "npm_test", - "version": "1.0.0", - "description": "", - "main": "index.js", - "dependencies": { - "test": "^1.4.0" - }, - "devDependencies": { - - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": "", - "license": "ISC", - "readme": "ERROR: No README data found!", - "_id": "npm_test@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-tfzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", - "shasum": "3e4e6bd5097b295e520b947c9be3259a9509a673", - "tarball": "http:\/\/localhost:4873\/npm_test\/-\/npm_test-1.0.0.tgz" - } - }, - "2.0.0": { - "name": "npm_test", - "version": "2.0.0", - "description": "", - "main": "index.js", - "dependencies": { - "test": "^2.4.0" - }, - "devDependencies": { - - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": "", - "license": "ISC", - "readme": "ERROR: No README data found!", - "_id": "npm_test@2.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-tzzM1OFjWwg2d2Wke\/DV6icjeTZUVOZYLkbf8wmONRSAgMovL\/F+zyI24OhTtWyOXd1Kbj2YUMBvLpmpAjv8zg==", - "shasum": "3a4e6bd5097b295e520b947c9be3259a9509a673", - "tarball": "http:\/\/localhost:4873\/npm_test\/-\/npm_test-2.0.0.tgz" - } - } - }, - "readme": "ERROR: No README data found!", - "_attachments": { - "npm_test-1.0.0.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR\/l6bvtW+mf6xUK\/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ\/SxVZ+m5PPAsfxn\/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu\/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd\/\/QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=", - "length": 281 - }, - "npm_test-2.0.0.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAE+2ST08CMRDFOe+nmPTAyawt7ELCVT149ihqmu4gI9I2bUGM4bvbbhGM4eYmxmR\/l6bvtW+mf6xUK\/mMlzaP5Ys3etAxnPNJVcE5PVHV0RPjkairsZiK0YALUU+mMOBdN3KOjQ\/SxVZ+m5PPAsfxn\/BRADAt18hmwDxpY0k+BfSBXSRni86T0ckUJS95Vhv0ypENByeLa0ntjHSDu\/iPvpZajIJWhD66qRwcC6Xlj6KsYm7U94cN2+sfe7KRS34LabuMCaiWBubsxjnjZqANJAO8RUULwmbOYDgE3FEAcSqzwvc345oUd\/\/QKnITlsadzvNKCrVv7+X27ooV++Kv36qnp6enSz4B8bhKUwAIAAA=", - "length": 281 - } - } -} diff --git a/test/unit/partials/mock-store/vue/package.json b/test/unit/partials/mock-store/vue/package.json deleted file mode 100644 index 2a15b3b17..000000000 --- a/test/unit/partials/mock-store/vue/package.json +++ /dev/null @@ -1,25169 +0,0 @@ -{ - "name": "vue", - "versions": { - "0.0.0": { - "name": "vue", - "version": "0.0.0", - "description": "viewmodel", - "main": "index.js", - "author": { - "name": "Evan You" - }, - "license": "MIT", - "_id": "vue@0.0.0", - "dist": { - "shasum": "02a9248eb4a26ebc2bbf834f6db630af725ff258", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.0.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.15", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.6.0": { - "name": "vue", - "version": "0.6.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "A mini front-end MVVM framework", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt test" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-component-build": "~0.4.1", - "grunt-contrib-jshint": "~0.7.1", - "grunt-contrib-uglify": "~0.2.7", - "grunt-mocha": "~0.4.6", - "jscoverage": "~0.3.8", - "jshint-stylish": "0.1.3", - "semver": "~2.2.1" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.6.0", - "dist": { - "shasum": "123c1a24ce6fe13c4530c03d780cb1ef966f9cde", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.6.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.15", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.7.0": { - "name": "vue", - "version": "0.7.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "A mini front-end MVVM framework", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt test" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-component-build": "~0.4.1", - "grunt-contrib-jshint": "~0.7.1", - "grunt-contrib-uglify": "~0.2.7", - "grunt-mocha": "~0.4.6", - "jscoverage": "~0.3.8", - "jshint-stylish": "0.1.3", - "semver": "~2.2.1", - "shell-task": "~0.1.1" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.7.0", - "dist": { - "shasum": "146d0ed809587f569b7fce39f6bac77b68ff3d47", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.7.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.7.1": { - "name": "vue", - "version": "0.7.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "A mini front-end MVVM framework", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt test" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-component-build": "~0.4.1", - "grunt-contrib-jshint": "~0.7.1", - "grunt-contrib-uglify": "~0.2.7", - "grunt-mocha": "~0.4.6", - "jscoverage": "~0.3.8", - "jshint-stylish": "0.1.3", - "semver": "~2.2.1", - "shell-task": "~0.1.1" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.7.1", - "dist": { - "shasum": "17a6ea20a5660c8614636387e15521530ff48c50", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.7.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.7.3": { - "name": "vue", - "version": "0.7.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-mocha": "~0.4.6", - "jscoverage": "~0.3.8", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "vinyl-fs": "git://github.com/yyx990803/vinyl-fs", - "gulp-component": "~0.1.3" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.7.3", - "dist": { - "shasum": "61acb2ae6afb1116466bf1512c3835e0b47ac0a8", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.7.3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.17", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.7.4": { - "name": "vue", - "version": "0.7.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-mocha": "~0.4.6", - "jscoverage": "~0.3.8", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "vinyl-fs": "git://github.com/yyx990803/vinyl-fs", - "gulp-component": "~0.1.3" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.7.4", - "dist": { - "shasum": "e0df485af8f62a503664c35c07ea9315dc1a5759", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.7.4.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.17", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.7.5": { - "name": "vue", - "version": "0.7.5", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "vinyl-fs": "git://github.com/wearefractal/vinyl-fs", - "gulp-component": "~0.1.4", - "grunt-karma": "~0.6.2", - "karma-script-launcher": "~0.1.0", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2", - "karma-phantomjs-launcher": "~0.1.1", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-safari-launcher": "~0.1.1", - "grunt-karma-coveralls": "~2.3.0" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.7.5", - "dist": { - "shasum": "2b845e2defe5d30437b8915822b2461f9ce8a9d6", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.7.5.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.17", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.7.6": { - "name": "vue", - "version": "0.7.6", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "git://github.com/wearefractal/vinyl-fs", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.7.6", - "dist": { - "shasum": "ab486851e45887879832268370fcb372c1dc87a9", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.7.6.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.0": { - "name": "vue", - "version": "0.8.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "git://github.com/wearefractal/vinyl-fs", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.8.0", - "dist": { - "shasum": "0e0ea13ca7d9672cd900d8f10c59506814db934d", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.1": { - "name": "vue", - "version": "0.8.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "https://github.com/yyx990803/vue", - "_id": "vue@0.8.1", - "dist": { - "shasum": "26bfea6b31dd8e0d5b9f3e2eda349624f8011a67", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.2": { - "name": "vue", - "version": "0.8.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.8.2", - "dist": { - "shasum": "c1d30517b5160982a48ea22022b6974bd1bbde6a", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.3": { - "name": "vue", - "version": "0.8.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.8.3", - "dist": { - "shasum": "d50bea6e4ea1a78f9252a7c84a0346ce5eb46326", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.25", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.4": { - "name": "vue", - "version": "0.8.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.8.4", - "dist": { - "shasum": "88e9fa4190a56326635ec6962f3bf5469f83ee62", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.4.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.25", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.6": { - "name": "vue", - "version": "0.8.6", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.8.6", - "dist": { - "shasum": "a8d10dc5550a89db4f054da991a8f2ab7c196f55", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.6.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.25", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.7": { - "name": "vue", - "version": "0.8.7", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.8.7", - "dist": { - "shasum": "5497afc8f73b75123f40ea5dd6ceae044d6a2f26", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.7.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.8.8": { - "name": "vue", - "version": "0.8.8", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.8.8", - "dist": { - "shasum": "63fa3d8c1566f2983ddd9816a1b98b8d0612a2d0", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.8.8.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.9.0": { - "name": "vue", - "version": "0.9.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.9.0", - "dist": { - "shasum": "fdddbcf080a8121c9de827f5aba0894a97efb77d", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.9.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.25", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.9.1": { - "name": "vue", - "version": "0.9.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.9.1", - "dist": { - "shasum": "11fb26ef6fd03697b4c174440cb92bcea3a6ba4d", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.9.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.9.2": { - "name": "vue", - "version": "0.9.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.9.2", - "dist": { - "shasum": "c53dff86edcf12b941b45ca6f3b4e7d0f39fcc4e", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.9.2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.9.3": { - "name": "vue", - "version": "0.9.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.4", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.9.3", - "dist": { - "shasum": "bd982661b5cec65cb8d09e33856e142315716064", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.9.3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.25", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.10.0": { - "name": "vue", - "version": "0.10.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.6", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.10.0", - "dist": { - "shasum": "54f1eb929b53c00afe74ef8f6a44642ab50e64c9", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.10.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.10.1": { - "name": "vue", - "version": "0.10.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.6", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.10.1", - "dist": { - "shasum": "72d7a4d542e3d3d759b2ab60fc7a7cc768327278", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.10.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.10.2": { - "name": "vue", - "version": "0.10.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.6", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.10.2", - "dist": { - "shasum": "7fe8f74b103246d266137b1647fa918c4941ba87", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.10.2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.10.3": { - "name": "vue", - "version": "0.10.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.6", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.10.3", - "dist": { - "shasum": "beb96bf62286b34a1db3fe0b016adce8a0b4d41a", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.10.3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.24", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.10.4": { - "name": "vue", - "version": "0.10.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-karma": "~0.6.2", - "grunt-karma-coveralls": "~2.3.0", - "grunt-saucelabs": "~4.1.2", - "gulp-component": "~0.1.6", - "vinyl-fs": "~0.0.2", - "jshint-stylish": "~0.1.4", - "semver": "~2.2.1", - "shell-task": "~0.1.1", - "map-stream": "0.0.4", - "uglify-js": "~2.4.8", - "karma": "~0.10.9", - "karma-mocha": "~0.1.1", - "karma-coverage": "~0.1.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.1", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1", - "karma-requirejs": "~0.2.1", - "karma-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.1.5", - "karma-coffee-preprocessor": "~0.1.2" - }, - "_id": "vue@0.10.4", - "dist": { - "shasum": "8513bcaecb6cff65d51b91c115dffb95d1b79304", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.10.4.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.3", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {} - }, - "0.10.5": { - "name": "vue", - "version": "0.10.5", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.5", - "grunt-contrib-watch": "~0.6.1", - "grunt-contrib-jshint": "~0.10.0", - "grunt-contrib-connect": "~0.7.1", - "grunt-karma": "~0.8.3", - "grunt-karma-coveralls": "~2.5.1", - "grunt-saucelabs": "~7.0.0", - "gulp-component": "~0.1.8", - "vinyl-fs": "~0.1.4", - "jshint-stylish": "~0.2.0", - "semver": "~2.3.0", - "shell-task": "~0.1.2", - "map-stream": "0.1.0", - "uglify-js": "~2.4.13", - "karma": "~0.12.6", - "karma-mocha": "~0.1.3", - "karma-coverage": "~0.2.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.4", - "karma-chrome-launcher": "~0.1.4", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1" - }, - "_id": "vue@0.10.5", - "_shasum": "b026812db8c853776656e662c407f13fec0936e3", - "_from": ".", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "b026812db8c853776656e662c407f13fec0936e3", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.10.5.tgz" - }, - "directories": {} - }, - "0.10.6": { - "name": "vue", - "version": "0.10.6", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": "http://evanyou.me" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/main.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt travis" - }, - "devDependencies": { - "grunt": "~0.4.5", - "grunt-contrib-watch": "~0.6.1", - "grunt-contrib-jshint": "~0.10.0", - "grunt-contrib-connect": "~0.7.1", - "grunt-karma": "~0.8.3", - "grunt-karma-coveralls": "~2.5.1", - "grunt-saucelabs": "~7.0.0", - "gulp-component": "~0.1.8", - "vinyl-fs": "~0.1.4", - "jshint-stylish": "~0.2.0", - "semver": "~2.3.0", - "shell-task": "~0.1.2", - "map-stream": "0.1.0", - "uglify-js": "~2.4.13", - "karma": "~0.12.6", - "karma-mocha": "~0.1.3", - "karma-coverage": "~0.2.4", - "karma-script-launcher": "~0.1.0", - "karma-phantomjs-launcher": "~0.1.4", - "karma-chrome-launcher": "~0.1.4", - "karma-firefox-launcher": "~0.1.3", - "karma-safari-launcher": "~0.1.1" - }, - "spm": { - "main": "src/main.js", - "ignore": [ - ".*", - "examples", - "test", - "tasks", - "dist", - "Gruntfile.js", - "bower.json", - "component.json", - "*.md" - ] - }, - "_id": "vue@0.10.6", - "_shasum": "47f4e8096afd099a1885a46576b8a9eb63aee2b9", - "_from": ".", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "47f4e8096afd099a1885a46576b8a9eb63aee2b9", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.10.6.tgz" - }, - "directories": {} - }, - "0.11.0-rc": { - "name": "vue", - "version": "0.11.0-rc", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "browserify": "^5.11.0", - "component-builder": "^1.1.10", - "component-resolver": "^1.1.8", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-sauce-launcher": "^0.2.10", - "uglify-js": "^2.4.15" - }, - "_id": "vue@0.11.0-rc", - "_shasum": "ff6791fa0fb0a46d8a1facb69a0ab518fea21893", - "_from": ".", - "_npmVersion": "1.4.9", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ff6791fa0fb0a46d8a1facb69a0ab518fea21893", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.0-rc.tgz" - }, - "directories": {} - }, - "0.11.0-rc2": { - "name": "vue", - "version": "0.11.0-rc2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-sauce-launcher": "^0.2.10", - "uglify-js": "^2.4.15", - "webpack": "^1.4.4" - }, - "gitHead": "7e767f953cd542e64b67e0aa25af8c96770d7eb7", - "_id": "vue@0.11.0-rc2", - "_shasum": "84302800170010722beeb1f6c0169fb07f2ba5ad", - "_from": ".", - "_npmVersion": "1.4.23", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "84302800170010722beeb1f6c0169fb07f2ba5ad", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.0-rc2.tgz" - }, - "directories": {} - }, - "0.11.0-rc3": { - "name": "vue", - "version": "0.11.0-rc3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.0.3", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.15", - "webpack": "^1.4.4" - }, - "gitHead": "7163a9b63df5ffe898f395fb8bb31f2851d472f6", - "_id": "vue@0.11.0-rc3", - "_shasum": "a7329c5f19ebcc3eb4e951edb4cfc56c8b113e7a", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "a7329c5f19ebcc3eb4e951edb4cfc56c8b113e7a", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.0-rc3.tgz" - }, - "directories": {} - }, - "0.11.0": { - "name": "vue", - "version": "0.11.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.0.3", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.15", - "webpack": "^1.4.4" - }, - "gitHead": "5bc3e30b694dc3b6aeeb87c24f88b9cd7a7259d6", - "_id": "vue@0.11.0", - "_shasum": "81718e27f60702f6bdaddaee91b7b29c64ca5547", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "81718e27f60702f6bdaddaee91b7b29c64ca5547", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.0.tgz" - }, - "directories": {} - }, - "0.11.1": { - "name": "vue", - "version": "0.11.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.0.3", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.15", - "webpack": "^1.4.4" - }, - "gitHead": "0df318c29d7e10bfa8e5c7ca31837af91ff3174c", - "_id": "vue@0.11.1", - "_shasum": "f0a9868c2db8124277ee43a75910a3c72121df7e", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "f0a9868c2db8124277ee43a75910a3c72121df7e", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.1.tgz" - }, - "directories": {} - }, - "0.11.2": { - "name": "vue", - "version": "0.11.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.0.3", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.15", - "webpack": "^1.4.4" - }, - "gitHead": "51cfffbdba03b937f0ef8efe40a87521852d601e", - "_id": "vue@0.11.2", - "_shasum": "b079cabcd972683f4885560bacd6b16a5c4656b5", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "b079cabcd972683f4885560bacd6b16a5c4656b5", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.2.tgz" - }, - "directories": {} - }, - "0.11.3": { - "name": "vue", - "version": "0.11.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.0.3", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.15", - "webpack": "^1.4.4" - }, - "gitHead": "fe35b5101fb0bb7fc94025f62b857a1404bffb7d", - "_id": "vue@0.11.3", - "_shasum": "e77d7dd2ab12f6729d1b78c54575b3514e72d6fe", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "e77d7dd2ab12f6729d1b78c54575b3514e72d6fe", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.3.tgz" - }, - "directories": {} - }, - "0.11.4": { - "name": "vue", - "version": "0.11.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.2", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.16", - "karma-chrome-launcher": "^0.1.4", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.5", - "karma-firefox-launcher": "^0.1.3", - "karma-jasmine": "^0.2.2", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.0.3", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.15", - "webpack": "^1.4.4" - }, - "gitHead": "19e0223f5faa2592b37434e9936f2885a5d9cb2f", - "_id": "vue@0.11.4", - "_shasum": "f81897efd0ffa5de319b781e37082b50b200e59f", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "f81897efd0ffa5de319b781e37082b50b200e59f", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.4.tgz" - }, - "directories": {} - }, - "0.11.5": { - "name": "vue", - "version": "0.11.5", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.16", - "webpack": "^1.5.3" - }, - "gitHead": "a06cd65e1c72beea48485a2a5a91c579c0752fa7", - "_id": "vue@0.11.5", - "_shasum": "aecca4cecca01662135af962935c5ae9cdd893b2", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "aecca4cecca01662135af962935c5ae9cdd893b2", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.5.tgz" - }, - "directories": {} - }, - "0.11.6": { - "name": "vue", - "version": "0.11.6", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "6c3b290bb051e16ce5fc0897638b2eb4abae0214", - "_id": "vue@0.11.6", - "_shasum": "504f0cc54a5af48e9bb3236e70825c75af71d79b", - "_from": ".", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.6.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "504f0cc54a5af48e9bb3236e70825c75af71d79b", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.6.tgz" - }, - "directories": {} - }, - "0.11.7": { - "name": "vue", - "version": "0.11.7", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "563b0b965c4c6724729ddfd42598184f13c8b4f7", - "_id": "vue@0.11.7", - "_shasum": "576991d1cb376e8115d9c036690f91c44ab1bf3f", - "_from": ".", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.6.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "576991d1cb376e8115d9c036690f91c44ab1bf3f", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.7.tgz" - }, - "directories": {} - }, - "0.11.8": { - "name": "vue", - "version": "0.11.8", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "6c841059d2893d383befeed0caf8090d5f0e8b88", - "_id": "vue@0.11.8", - "_shasum": "bfe141d02920b6be16ffbe774c925dbb5a6781d8", - "_from": ".", - "_npmVersion": "2.7.1", - "_nodeVersion": "1.6.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "bfe141d02920b6be16ffbe774c925dbb5a6781d8", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.8.tgz" - }, - "directories": {} - }, - "0.11.9": { - "name": "vue", - "version": "0.11.9", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "7f7e36bd4a298623d656ca7cab5f23976756de15", - "_id": "vue@0.11.9", - "_shasum": "140cafdaa3771c3a2fe19de1ccbef636af272e25", - "_from": ".", - "_npmVersion": "2.8.3", - "_nodeVersion": "1.8.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "140cafdaa3771c3a2fe19de1ccbef636af272e25", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.9.tgz" - }, - "directories": {} - }, - "0.11.10": { - "name": "vue", - "version": "0.11.10", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "d257c81a5889d45012f6df39873fba3f8697f0cc", - "_id": "vue@0.11.10", - "_shasum": "2395fb2735e49ab676a832f0db9950b10660b578", - "_from": ".", - "_npmVersion": "2.8.3", - "_nodeVersion": "1.8.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "2395fb2735e49ab676a832f0db9950b10660b578", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.11.10.tgz" - }, - "directories": {} - }, - "0.12.0-beta1": { - "name": "vue", - "version": "0.12.0-beta1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "77f79d39992175f84f50e77439915a6865b84da5", - "_id": "vue@0.12.0-beta1", - "_shasum": "b9c8e72a552c240eec1a263be7c5612ddd90b022", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "b9c8e72a552c240eec1a263be7c5612ddd90b022", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta1.tgz" - }, - "directories": {} - }, - "0.12.0-beta2": { - "name": "vue", - "version": "0.12.0-beta2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "0a69a55eee9b3c705dfc8953876d1c6190c2194c", - "_id": "vue@0.12.0-beta2", - "_shasum": "e642d58e7d5e696890ee40c49f1378c4414f1720", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "e642d58e7d5e696890ee40c49f1378c4414f1720", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta2.tgz" - }, - "directories": {} - }, - "0.12.0-beta3": { - "name": "vue", - "version": "0.12.0-beta3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "8f742d5fe3b4e9f1477fadd0f1e1ed86eca0b548", - "_id": "vue@0.12.0-beta3", - "_shasum": "5c3fffa8871492a4d87b17e4cfbd404684cb08b2", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "5c3fffa8871492a4d87b17e4cfbd404684cb08b2", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta3.tgz" - }, - "directories": {} - }, - "0.12.0-beta4": { - "name": "vue", - "version": "0.12.0-beta4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "f3552df2b0bc9777e9bb5c866ffda7e70e6b2fa3", - "_id": "vue@0.12.0-beta4", - "_shasum": "41053e39fbc4bdf20b0cc42a8006cf5807a532d6", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "41053e39fbc4bdf20b0cc42a8006cf5807a532d6", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta4.tgz" - }, - "directories": {} - }, - "0.12.0-beta5": { - "name": "vue", - "version": "0.12.0-beta5", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "a39476d72981c014a3cf030fa38ea2fddfbfb23f", - "_id": "vue@0.12.0-beta5", - "_shasum": "492184a5d51d4c79e88799c94fce03966ab0ddf1", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "492184a5d51d4c79e88799c94fce03966ab0ddf1", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta5.tgz" - }, - "directories": {} - }, - "0.12.0-rc": { - "name": "vue", - "version": "0.12.0-rc", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "61eaa271c0694cc4cf7296637b55b5481dbd3f98", - "_id": "vue@0.12.0-rc", - "_shasum": "4818f0ab510fe999dbf8b676a597444083632523", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "4818f0ab510fe999dbf8b676a597444083632523", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-rc.tgz" - }, - "directories": {} - }, - "0.12.0-rc2": { - "name": "vue", - "version": "0.12.0-rc2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "597fa8be89af8ce4d1939b19a9c47a44daeb506b", - "_id": "vue@0.12.0-rc2", - "_shasum": "01a9ebaa56959d00e827f0ba5313110eb3a88742", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "01a9ebaa56959d00e827f0ba5313110eb3a88742", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-rc2.tgz" - }, - "directories": {} - }, - "0.12.0": { - "name": "vue", - "version": "0.12.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "gitHead": "66b124b7ecf7916ac2506fb5bd8006858006fb35", - "_id": "vue@0.12.0", - "_shasum": "ca036019f3b5cd47048ff0b57e73afbd311165f4", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ca036019f3b5cd47048ff0b57e73afbd311165f4", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0.tgz" - }, - "directories": {} - }, - "0.12.0-csp": { - "name": "vue", - "version": "0.12.0-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.8.4" - }, - "dependencies": { - "notevil": "^1.0.0" - }, - "gitHead": "2ed38c9f75a20464e6949f39af079c8643ac8d14", - "_id": "vue@0.12.0-csp", - "_shasum": "02ef952489a70697376caae57511652a9b1331de", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "02ef952489a70697376caae57511652a9b1331de", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.0-csp.tgz" - }, - "directories": {} - }, - "0.12.1": { - "name": "vue", - "version": "0.12.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "2eedc8d76a6015def406c062221bafe2d74e2508", - "_id": "vue@0.12.1", - "_shasum": "7b94224debeba2968aed5b4dd4b1435d668187c5", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "7b94224debeba2968aed5b4dd4b1435d668187c5", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.1.tgz" - }, - "directories": {} - }, - "0.12.1-csp": { - "name": "vue", - "version": "0.12.1-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "dependencies": { - "notevil": "^1.0.0" - }, - "gitHead": "9aecbfbb9938fd317cfdeab28eb397c0b43fdbc0", - "_id": "vue@0.12.1-csp", - "_shasum": "63629cbd69043753405d5e1f8820d1dd2b780ee8", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "63629cbd69043753405d5e1f8820d1dd2b780ee8", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.1-csp.tgz" - }, - "directories": {} - }, - "0.12.1-csp.1": { - "name": "vue", - "version": "0.12.1-csp.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "grunt-karma-coveralls": "^2.5.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "dependencies": { - "notevil": "^1.0.0" - }, - "gitHead": "e8d82d2840d314970568e7c576b100aed7d0cd07", - "_id": "vue@0.12.1-csp.1", - "_shasum": "5f5aabf3b547c1e820c0ac8a19de2d8ea9fc2bf6", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "5f5aabf3b547c1e820c0ac8a19de2d8ea9fc2bf6", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.1-csp.1.tgz" - }, - "directories": {} - }, - "0.12.1-csp.2": { - "name": "vue", - "version": "0.12.1-csp.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.2.3", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "dependencies": { - "notevil": "^1.0.0" - }, - "gitHead": "b3c529992e322daa4c3a486137730078edd22ffd", - "_id": "vue@0.12.1-csp.2", - "_shasum": "4d30f07f9aa5696cc6ac00c3983188ca3ecaa2a5", - "_from": ".", - "_npmVersion": "2.9.0", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "4d30f07f9aa5696cc6ac00c3983188ca3ecaa2a5", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.1-csp.2.tgz" - }, - "directories": {} - }, - "0.12.2": { - "name": "vue", - "version": "0.12.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "54f860d63fb4bf7d664fdaae74c5678262c715a7", - "_id": "vue@0.12.2", - "_shasum": "bcc2527e6d908bc5d843afb62a64e473c3d9af15", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "bcc2527e6d908bc5d843afb62a64e473c3d9af15", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.2.tgz" - }, - "directories": {} - }, - "0.12.3": { - "name": "vue", - "version": "0.12.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "ecc883131c5838562c7f8a853ed945dd431e5e7b", - "_id": "vue@0.12.3", - "_shasum": "a705fee53bc56dcb4f0f16f2f05d3d90b48363cd", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "a705fee53bc56dcb4f0f16f2f05d3d90b48363cd", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.3.tgz" - }, - "directories": {} - }, - "0.12.4": { - "name": "vue", - "version": "0.12.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.10.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "jshint-stylish": "^0.3.0", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "e614d9c3bbc0d81018fccd266f64195711b72910", - "_id": "vue@0.12.4", - "_shasum": "fd450f9407f0fb38ea8302de91f4e5911508e21f", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "fd450f9407f0fb38ea8302de91f4e5911508e21f", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.4.tgz" - }, - "directories": {} - }, - "0.12.5": { - "name": "vue", - "version": "0.12.5", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "eb646ecdbffd88e03d70a33f121ad3ff732ccce8", - "_id": "vue@0.12.5", - "_shasum": "658b8e064400cf7c28cff5089d701b554f421071", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "658b8e064400cf7c28cff5089d701b554f421071", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.5.tgz" - }, - "directories": {} - }, - "0.12.5-csp": { - "name": "vue", - "version": "0.12.5-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "dependencies": { - "notevil": "^1.0.0" - }, - "gitHead": "fff52e17ce167d1848099b176a67bf31140e352d", - "_id": "vue@0.12.5-csp", - "_shasum": "b786db73c42308c11c4bf42b96bcead1ef1186b3", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "b786db73c42308c11c4bf42b96bcead1ef1186b3", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.5-csp.tgz" - }, - "directories": {} - }, - "0.12.6": { - "name": "vue", - "version": "0.12.6", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "8bade9382a95a8d59764bb701d50e34253a09365", - "_id": "vue@0.12.6", - "_shasum": "eed5cd3833df7decc86a55184aa15c5434c2453f", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "eed5cd3833df7decc86a55184aa15c5434c2453f", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.6.tgz" - }, - "directories": {} - }, - "0.12.6-csp": { - "name": "vue", - "version": "0.12.6-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "dependencies": { - "notevil": "^1.0.0" - }, - "gitHead": "5eb9a5923a30f84ba07a1290761b78b707726c3f", - "_id": "vue@0.12.6-csp", - "_shasum": "1aa08e128510b8a939435dd033ec5bdfd0c1a199", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "1aa08e128510b8a939435dd033ec5bdfd0c1a199", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.6-csp.tgz" - }, - "directories": {} - }, - "0.12.7": { - "name": "vue", - "version": "0.12.7", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "69edc1ae02b230dbda22eeae53a4899fc06dff40", - "_id": "vue@0.12.7", - "_shasum": "8c44077e6732e784921c1d72f74c2d1426779f9f", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "8c44077e6732e784921c1d72f74c2d1426779f9f", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.7.tgz" - }, - "directories": {} - }, - "0.12.7-csp": { - "name": "vue", - "version": "0.12.7-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack-dev-config.js & webpack --watch --config build/webpack-test-config.js" - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "fb8ee54e9d8f730bc1b0161010d88379ad6c85ac", - "_id": "vue@0.12.7-csp", - "_shasum": "93c85aefe83ec82804f9e1382a30736855833c34", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "93c85aefe83ec82804f9e1382a30736855833c34", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.7-csp.tgz" - }, - "directories": {} - }, - "0.12.8": { - "name": "vue", - "version": "0.12.8", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "79b6eac029493b78d257031bcfb5153979d05f15", - "_id": "vue@0.12.8", - "_shasum": "ae47b98ef110577ae7fd13dbfcc0ad8149bfb422", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ae47b98ef110577ae7fd13dbfcc0ad8149bfb422", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.8.tgz" - }, - "directories": {} - }, - "0.12.8-csp": { - "name": "vue", - "version": "0.12.8-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "1c2aef1341f02f9c19c59e3979b817d2a7acb955", - "_id": "vue@0.12.8-csp", - "_shasum": "427682d45efd3e3103d93978b785c8b4b5be71d7", - "_from": ".", - "_npmVersion": "2.11.1", - "_nodeVersion": "2.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "427682d45efd3e3103d93978b785c8b4b5be71d7", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.8-csp.tgz" - }, - "directories": {} - }, - "0.12.9": { - "name": "vue", - "version": "0.12.9", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "aca258e57602ff3466b9d3513c5bb7bf8fb08479", - "_id": "vue@0.12.9", - "_shasum": "1dec37396694a1b2e128ce075b857e30642ede58", - "_from": ".", - "_npmVersion": "2.13.0", - "_nodeVersion": "2.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "1dec37396694a1b2e128ce075b857e30642ede58", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.9.tgz" - }, - "directories": {} - }, - "0.12.9-csp": { - "name": "vue", - "version": "0.12.9-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^16.0.0", - "grunt-karma": "^0.8.3", - "jasmine-core": "^2.3.4", - "karma": "^0.12.31", - "karma-chrome-launcher": "^0.1.7", - "karma-commonjs": "^0.0.10", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "^0.1.4", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.10", - "semver": "^4.2.0", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.20", - "webpack": "^1.9.10" - }, - "gitHead": "d3375c28d67cb865c7974d045b8e10d5580ebf3c", - "_id": "vue@0.12.9-csp", - "_shasum": "b44f5660859ac5df457fe2c5c9fdc9658c3948f4", - "_from": ".", - "_npmVersion": "2.13.0", - "_nodeVersion": "2.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "b44f5660859ac5df457fe2c5c9fdc9658c3948f4", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.9-csp.tgz" - }, - "directories": {} - }, - "0.12.10": { - "name": "vue", - "version": "0.12.10", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "923be291dfcc65f8fd90f1832b17fd5d0fdea488", - "_id": "vue@0.12.10", - "_shasum": "e6a0e2131568622338da3535ed5b7b93632be3ab", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "e6a0e2131568622338da3535ed5b7b93632be3ab", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.10.tgz" - }, - "directories": {} - }, - "0.12.10-csp": { - "name": "vue", - "version": "0.12.10-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "44f1029b598d8af59081d9fe39516c97c7066266", - "_id": "vue@0.12.10-csp", - "_shasum": "80e48b59945b9f8094fde3553bc9a6258a347bc5", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "80e48b59945b9f8094fde3553bc9a6258a347bc5", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.10-csp.tgz" - }, - "directories": {} - }, - "0.12.11": { - "name": "vue", - "version": "0.12.11", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.1.0", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "04f3a4da16654604a50a8fa2f61f07985cb4fccc", - "_id": "vue@0.12.11", - "_shasum": "e7f84e3997b4456d5706106436903dd81070c1db", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "e7f84e3997b4456d5706106436903dd81070c1db", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.11.tgz" - }, - "directories": {} - }, - "0.12.11-csp": { - "name": "vue", - "version": "0.12.11-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.1.0", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "notevil": "^1.0.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "732840226fdcf4e087f21ac47b5a3d671090eed8", - "_id": "vue@0.12.11-csp", - "_shasum": "acad59aa013bc7a8fd5a291dfdccefe6f4e65ce0", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "acad59aa013bc7a8fd5a291dfdccefe6f4e65ce0", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.11-csp.tgz" - }, - "directories": {} - }, - "0.12.12": { - "name": "vue", - "version": "0.12.12", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.1.0", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "bf8e37188fc622d976ce5f2a48cdfc2c1c4e07d7", - "_id": "vue@0.12.12", - "_shasum": "2964c17154dd72de58d0f2c9962759ef7135a56f", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "2964c17154dd72de58d0f2c9962759ef7135a56f", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.12.tgz" - }, - "directories": {} - }, - "0.12.12-csp": { - "name": "vue", - "version": "0.12.12-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.1.0", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "notevil": "^1.0.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "e1d877fe4f31d5559716369940742bb9dcae2f45", - "_id": "vue@0.12.12-csp", - "_shasum": "6d5c02160ea23fd597d7e08598330c36a732b29d", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "6d5c02160ea23fd597d7e08598330c36a732b29d", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.12-csp.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.1": { - "name": "vue", - "version": "1.0.0-alpha.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.1.0", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "1fabb471a44c9da9cdf9d12ff3e0540948878b5d", - "_id": "vue@1.0.0-alpha.1", - "_shasum": "3fa7172b997b76821a84c610cc3c11e2f411fb94", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "3fa7172b997b76821a84c610cc3c11e2f411fb94", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.1.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.2": { - "name": "vue", - "version": "1.0.0-alpha.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.1.0", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "a635000a9883b2554b587e470e8152d09f8e789e", - "_id": "vue@1.0.0-alpha.2", - "_shasum": "1e87c501343f3ead57da4dc5157212f83d397fb4", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "1e87c501343f3ead57da4dc5157212f83d397fb4", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.2.tgz" - }, - "directories": {} - }, - "0.12.13": { - "name": "vue", - "version": "0.12.13", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "40e5bae10b3f0301c899a94d92bf78821948aa5e", - "_id": "vue@0.12.13", - "_shasum": "ac6b8047adb53454fa0c21335865b7949ff63477", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ac6b8047adb53454fa0c21335865b7949ff63477", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.13.tgz" - }, - "directories": {} - }, - "0.12.13-csp": { - "name": "vue", - "version": "0.12.13-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "notevil": "^1.0.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "14027a432209f2febc76e5f007711357c9601e49", - "_id": "vue@0.12.13-csp", - "_shasum": "479f6c581df57b1bfb8da07ca1ba92035ffaf89a", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "479f6c581df57b1bfb8da07ca1ba92035ffaf89a", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.13-csp.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.3": { - "name": "vue", - "version": "1.0.0-alpha.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "852a66acb10c4b98433b17c487cf6ea4eacc9922", - "_id": "vue@1.0.0-alpha.3", - "_shasum": "31081bd4587079fd134085a16489f3d27672c821", - "_from": ".", - "_npmVersion": "2.13.3", - "_nodeVersion": "3.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "31081bd4587079fd134085a16489f3d27672c821", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.3.tgz" - }, - "directories": {} - }, - "0.12.14": { - "name": "vue", - "version": "0.12.14", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "600580761c84ee0ada01a0fadbde894a436e9155", - "_id": "vue@0.12.14", - "_shasum": "fdebb07621b722c346a74b5249714f5712c3ee75", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "fdebb07621b722c346a74b5249714f5712c3ee75", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.14.tgz" - }, - "directories": {} - }, - "0.12.14-csp": { - "name": "vue", - "version": "0.12.14-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "notevil": "^1.0.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "9df76d841589708bb524f781f943db9ba1f55ec8", - "_id": "vue@0.12.14-csp", - "_shasum": "4c3c31ab5c3b9b916bd16a628f3cd53bcf3955d7", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "4c3c31ab5c3b9b916bd16a628f3cd53bcf3955d7", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.14-csp.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.4": { - "name": "vue", - "version": "1.0.0-alpha.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "a24079e2c098ddd4d2dc92db48e9017c5a000ecb", - "_id": "vue@1.0.0-alpha.4", - "_shasum": "6111d4d57f7934d785326e5c8fe8fe46e675203b", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "6111d4d57f7934d785326e5c8fe8fe46e675203b", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.4.tgz" - }, - "directories": {} - }, - "0.12.15": { - "name": "vue", - "version": "0.12.15", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "431563fe9204c9c95d206499faa97c8b2ad3a3bb", - "_id": "vue@0.12.15", - "_shasum": "271bc83a4563ac44e78239288600a3eed4b558a2", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "271bc83a4563ac44e78239288600a3eed4b558a2", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.15.tgz" - }, - "directories": {} - }, - "0.12.15-csp": { - "name": "vue", - "version": "0.12.15-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "notevil": "^1.0.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "27632265d38f06a875930a82cb7e525d887682de", - "_id": "vue@0.12.15-csp", - "_shasum": "0273cc2dd1c6458ebbcb16cec3664ab7e215d2a2", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "0273cc2dd1c6458ebbcb16cec3664ab7e215d2a2", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.15-csp.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.5": { - "name": "vue", - "version": "1.0.0-alpha.5", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "9648f018549b1f073ce6d1834ee6fbcb0b81815b", - "_id": "vue@1.0.0-alpha.5", - "_shasum": "bd237c3e7933e5fed81fa566f560df0ffca88701", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "bd237c3e7933e5fed81fa566f560df0ffca88701", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.5.tgz" - }, - "directories": {} - }, - "1.0.0-beta.1": { - "name": "vue", - "version": "1.0.0-beta.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "2e904113d9e62e9cbff096bc6639e3b9c75c2fb4", - "_id": "vue@1.0.0-beta.1", - "_shasum": "7c0da3586cca7716ae421a4cc84ba0f1c5f4bd76", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "7c0da3586cca7716ae421a4cc84ba0f1c5f4bd76", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.1.tgz" - }, - "directories": {} - }, - "0.12.16": { - "name": "vue", - "version": "0.12.16", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "d53c40ab698942c891441d16bce1374982842d60", - "_id": "vue@0.12.16", - "_shasum": "cf8e48237d7547f1bc1a1ff0070980a377478989", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "cf8e48237d7547f1bc1a1ff0070980a377478989", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.16.tgz" - }, - "directories": {} - }, - "0.12.16-csp": { - "name": "vue", - "version": "0.12.16-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "notevil": "^1.0.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "b43cf1f257fa8c5cfa8d8e7528cb34c9969749de", - "_id": "vue@0.12.16-csp", - "_shasum": "5461cb34120cab7ecaad989f5b8b8d15e3685f4e", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "5461cb34120cab7ecaad989f5b8b8d15e3685f4e", - "tarball": "https://registry.npmjs.org/vue/-/vue-0.12.16-csp.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.6": { - "name": "vue", - "version": "1.0.0-alpha.6", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "2da36175ef24b0e5904c5e78c93ac2ed3b3ca08c", - "_id": "vue@1.0.0-alpha.6", - "_shasum": "74fb5345a965237d6ec8409ccb1eeeb4449e481b", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "74fb5345a965237d6ec8409ccb1eeeb4449e481b", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.6.tgz" - }, - "directories": {} - }, - "1.0.0-beta.2": { - "name": "vue", - "version": "1.0.0-beta.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "b7bc6e663abf4a7061061887c60670e51d44cd5a", - "_id": "vue@1.0.0-beta.2", - "_shasum": "d7f5a1c9473f6a0b6e0a477bda2c01b7428a3e42", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "d7f5a1c9473f6a0b6e0a477bda2c01b7428a3e42", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.2.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.7": { - "name": "vue", - "version": "1.0.0-alpha.7", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "6d64b363dae7ad76a480f0ad9b7109ebaea6b7cf", - "_id": "vue@1.0.0-alpha.7", - "_shasum": "8876b3feaece05e0579cfa571e2b37bffcbab9fb", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "8876b3feaece05e0579cfa571e2b37bffcbab9fb", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.7.tgz" - }, - "directories": {} - }, - "1.0.0-beta.3": { - "name": "vue", - "version": "1.0.0-beta.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "3d8c1023536fb3b828af233f9bcb9064758f4451", - "_id": "vue@1.0.0-beta.3", - "_shasum": "314d96c528b8cf4ce67851503b0071bee61369a7", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "314d96c528b8cf4ce67851503b0071bee61369a7", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.3.tgz" - }, - "directories": {} - }, - "1.0.0-alpha.8": { - "name": "vue", - "version": "1.0.0-alpha.8", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "30196eee162ebc8887e891e876b2fe2f2801f01f", - "_id": "vue@1.0.0-alpha.8", - "_shasum": "293521d44a7265fac0843eaf209d2b43a821e41f", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "293521d44a7265fac0843eaf209d2b43a821e41f", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.8.tgz" - }, - "directories": {} - }, - "1.0.0-beta.4": { - "name": "vue", - "version": "1.0.0-beta.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "c776ad48afdac56af335223553b92687ed2a1e0c", - "_id": "vue@1.0.0-beta.4", - "_shasum": "5c492c1877d13ad96450f978906aa87c34a2509b", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "5c492c1877d13ad96450f978906aa87c34a2509b", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.4.tgz" - }, - "directories": {} - }, - "1.0.0-rc.1": { - "name": "vue", - "version": "1.0.0-rc.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/vue.git" - }, - "bugs": { - "url": "https://github.com/yyx990803/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "58d022899a4dc4598bd4b58b56c6d22d4564144e", - "_id": "vue@1.0.0-rc.1", - "_shasum": "bd5ab314dfe3a42ae3d102c2a439ff40a4ee84c5", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "bd5ab314dfe3a42ae3d102c2a439ff40a4ee84c5", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-rc.1.tgz" - }, - "directories": {} - }, - "1.0.0-rc.2-migration": { - "name": "vue", - "version": "1.0.0-rc.2-migration", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "b1b70fa909c5db06bf625e3d69ccbd193654b36d", - "_id": "vue@1.0.0-rc.2-migration", - "_shasum": "4afcad21145df9d6786fdf5189bb817fbc7f5a95", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "4afcad21145df9d6786fdf5189bb817fbc7f5a95", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-rc.2-migration.tgz" - }, - "directories": {} - }, - "1.0.0-rc.2": { - "name": "vue", - "version": "1.0.0-rc.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "50cf2ab528e2c272eb852f96ebb00f220a6371ba", - "_id": "vue@1.0.0-rc.2", - "_shasum": "85fa26706cb92cef3b85163b5f79d8b6b9a53d15", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "85fa26706cb92cef3b85163b5f79d8b6b9a53d15", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-rc.2.tgz" - }, - "directories": {} - }, - "1.0.0-csp": { - "name": "vue", - "version": "1.0.0-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "notevil": "^1.0.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "e6b2a4a9128c56d328ffc2555157df9648d74f7d", - "_id": "vue@1.0.0-csp", - "_shasum": "fbb448a1a9e51a2f6844cdb59eb30cbbe2ca78c9", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "fbb448a1a9e51a2f6844cdb59eb30cbbe2ca78c9", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-csp.tgz" - }, - "directories": {} - }, - "1.0.0-migration": { - "name": "vue", - "version": "1.0.0-migration", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.2.14", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "783a619f0c12862aa3022fd7d9b509c235dba34c", - "_id": "vue@1.0.0-migration", - "_shasum": "1042d3004f6721e561f3e4adbcf2dfe4cde23cd4", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "1042d3004f6721e561f3e4adbcf2dfe4cde23cd4", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0-migration.tgz" - }, - "directories": {} - }, - "1.0.0": { - "name": "vue", - "version": "1.0.0", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "d8e9e2ea16153aacdc99a6cc36f7d121a5ab484c", - "_id": "vue@1.0.0", - "_shasum": "9672e208dd776a3eaf8f4164c6c0c2d496c442f1", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "9672e208dd776a3eaf8f4164c6c0c2d496c442f1", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.0.tgz" - }, - "directories": {} - }, - "1.0.1": { - "name": "vue", - "version": "1.0.1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "b07cbb99e3af6dbe7149b5aa3d28ce467b5b8c23", - "_id": "vue@1.0.1", - "_shasum": "ef198f2d9055cac28bedf7ad6b81452492daee70", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ef198f2d9055cac28bedf7ad6b81452492daee70", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.1.tgz" - }, - "directories": {} - }, - "1.0.2": { - "name": "vue", - "version": "1.0.2", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "d8605f92833dafc1195f68b20755a376a8291630", - "_id": "vue@1.0.2", - "_shasum": "577f2b55001dd0d8f99de867cbabb4ab579a226f", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "577f2b55001dd0d8f99de867cbabb4ab579a226f", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.2.tgz" - }, - "directories": {} - }, - "1.0.3": { - "name": "vue", - "version": "1.0.3", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interative interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "450424bd086342f9da87a2878857e9c9daa554b7", - "_id": "vue@1.0.3", - "_shasum": "72554202d6aedb302d0a3bcf66a2d477ff521574", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "72554202d6aedb302d0a3bcf66a2d477ff521574", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.3.tgz" - }, - "directories": {} - }, - "1.0.4": { - "name": "vue", - "version": "1.0.4", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "79f289a2f22871a667b695687e35e22ef0fe2002", - "_id": "vue@1.0.4", - "_shasum": "63edbea66334a19dcee96289e1193d36bfe84a2a", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "63edbea66334a19dcee96289e1193d36bfe84a2a", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.4.tgz" - }, - "directories": {} - }, - "1.0.5": { - "name": "vue", - "version": "1.0.5", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "d8c325d587284e6225933a16ba4cd44e6dcf2bc1", - "_id": "vue@1.0.5", - "_shasum": "77d097c430232844fe7b3971455bf48512724d27", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "77d097c430232844fe7b3971455bf48512724d27", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.5.tgz" - }, - "deprecated": "the dist file was built incorrectly.", - "directories": {} - }, - "1.0.6": { - "name": "vue", - "version": "1.0.6", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "d88acc1710f5a94b472b40fa173b5fb0582f3f10", - "_id": "vue@1.0.6", - "_shasum": "33d97020b756eb3d2bf164f7533b5e308d7213ec", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "33d97020b756eb3d2bf164f7533b5e308d7213ec", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.6.tgz" - }, - "directories": {} - }, - "1.0.7": { - "name": "vue", - "version": "1.0.7", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "6ce6e0c9955667fb5f150823d0c97f3ffbb9d484", - "_id": "vue@1.0.7", - "_shasum": "414aeef2428e8602cdc7492e391550c33374cf30", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "414aeef2428e8602cdc7492e391550c33374cf30", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.7.tgz" - }, - "directories": {} - }, - "1.0.8": { - "name": "vue", - "version": "1.0.8", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "src/vue.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "grunt ci", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & webpack --watch --config build/webpack.test.config.js" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "grunt": "^0.4.5", - "grunt-eslint": "^17.1.0", - "grunt-karma": "^0.12.0", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-commonjs": "^0.0.13", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "phantomjs": "^1.9.17", - "semver": "^5.0.1", - "shell-task": "^1.0.0", - "uglify-js": "^2.4.24", - "webpack": "^1.11.0" - }, - "gitHead": "add8cc58a360e0e545db31048ad06e0e943b284b", - "_id": "vue@1.0.8", - "_shasum": "f00bddff3f08edd193c98d19166eaaece6b38bc4", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "f00bddff3f08edd193c98d19166eaaece6b38bc4", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.8.tgz" - }, - "directories": {} - }, - "1.0.9": { - "name": "vue", - "version": "1.0.9", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.0.0", - "babel-loader": "^5.0.0", - "babel-runtime": "^6.1.18", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "689def5858719b6ac77cbbc7d386ed1fdfa75df4", - "_id": "vue@1.0.9", - "_shasum": "a2a977d0e014bca89007e324d16c696839213955", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "a2a977d0e014bca89007e324d16c696839213955", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.9.tgz" - }, - "directories": {} - }, - "1.0.10": { - "name": "vue", - "version": "1.0.10", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.0.0", - "babel-loader": "^5.0.0", - "babel-runtime": "^6.1.18", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "b7e83e618aace57726c1053b20bb8e6ae3a2ad52", - "_id": "vue@1.0.10", - "_shasum": "4a82dbe25ec1db12b1efc207869ece7b15bb85e0", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "4a82dbe25ec1db12b1efc207869ece7b15bb85e0", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.10.tgz" - }, - "directories": {} - }, - "1.0.10-csp": { - "name": "vue", - "version": "1.0.10-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.0.0", - "babel-loader": "^5.0.0", - "babel-runtime": "^6.1.18", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-commonjs": "^1.4.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "ca0d8217f1f9550ce2746a96e8995ab0f3dc0b7a", - "_id": "vue@1.0.10-csp", - "_shasum": "2f3291fef280e2763601d29f59b5d7d240fba84c", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "2f3291fef280e2763601d29f59b5d7d240fba84c", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.10-csp.tgz" - }, - "directories": {} - }, - "1.0.11": { - "name": "vue", - "version": "1.0.11", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "9f514b6a1edbf2741b308c59c407f25c978076af", - "_id": "vue@1.0.11", - "_shasum": "60c873d8869dc2c952506870848b86043588a00b", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "60c873d8869dc2c952506870848b86043588a00b", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.11.tgz" - }, - "directories": {} - }, - "1.0.11-csp": { - "name": "vue", - "version": "1.0.11-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-commonjs": "^1.4.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "4b41eb2d0ed7dc1c38a83faad203f03c6454c205", - "_id": "vue@1.0.11-csp", - "_shasum": "714edc5b9f73bc1a4dfe759ddae8209c85916227", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "714edc5b9f73bc1a4dfe759ddae8209c85916227", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.11-csp.tgz" - }, - "directories": {} - }, - "1.0.12": { - "name": "vue", - "version": "1.0.12", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "c312c886fdca573b3f34db447f09c8a50c581a98", - "_id": "vue@1.0.12", - "_shasum": "e5e55e97620ece6c3cef7b99459a2118a221fc8c", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "e5e55e97620ece6c3cef7b99459a2118a221fc8c", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.12.tgz" - }, - "directories": {} - }, - "1.0.12-csp": { - "name": "vue", - "version": "1.0.12-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-commonjs": "^1.4.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "91218a16cd096fe4c7d9962ea4121011bde1a7b2", - "_id": "vue@1.0.12-csp", - "_shasum": "a034740df8d58689f80d0f2033b34243a886b58a", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "a034740df8d58689f80d0f2033b34243a886b58a", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.12-csp.tgz" - }, - "deprecated": "incorrect build, please use 1.0.12-csp-1 instead", - "directories": {} - }, - "1.0.12-csp-1": { - "name": "vue", - "version": "1.0.12-csp-1", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-commonjs": "^1.4.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "91218a16cd096fe4c7d9962ea4121011bde1a7b2", - "_id": "vue@1.0.12-csp-1", - "_shasum": "2eda388ca56e6d55a2f6f27875195c3d0306a927", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "2eda388ca56e6d55a2f6f27875195c3d0306a927", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.12-csp-1.tgz" - }, - "directories": {} - }, - "1.0.13": { - "name": "vue", - "version": "1.0.13", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "da9e036b07620c2b45493cd709b30aa8065b2de4", - "_id": "vue@1.0.13", - "_shasum": "1fb4cc7d910b557226b74eefc8a42b705e922dbe", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "1fb4cc7d910b557226b74eefc8a42b705e922dbe", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.13.tgz" - }, - "directories": {} - }, - "1.0.13-csp": { - "name": "vue", - "version": "1.0.13-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-commonjs": "^1.4.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "00c964c5ecf2754bf586cb0ba5bec8011acfc3bf", - "_id": "vue@1.0.13-csp", - "_shasum": "3af3b12b33448f4bcc025cdc38cae043c780e712", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "3af3b12b33448f4bcc025cdc38cae043c780e712", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.13-csp.tgz" - }, - "directories": {} - }, - "1.0.14": { - "name": "vue", - "version": "1.0.14", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "18eab68a690342744f5ddd2b72b22d9b19b15209", - "_id": "vue@1.0.14", - "_shasum": "ba182760325881e6e16a1f1a3a0dd07fa2e6d3d7", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ba182760325881e6e16a1f1a3a0dd07fa2e6d3d7", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.14.tgz" - }, - "directories": {} - }, - "1.0.14-csp": { - "name": "vue", - "version": "1.0.14-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-commonjs": "^1.4.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "eae7270384c4a6f61ba60edd32617ad684fcad73", - "_id": "vue@1.0.14-csp", - "_shasum": "e67245e1bca561d7ee3e3e29b20694894c3b210e", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "e67245e1bca561d7ee3e3e29b20694894c3b210e", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.14-csp.tgz" - }, - "directories": {} - }, - "1.0.15": { - "name": "vue", - "version": "1.0.15", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "e9fcaa9dc9ac31bf665cdaa2b7af3c73777ade34", - "_id": "vue@1.0.15", - "_shasum": "e532b837c100d911170001bf0bcb2490e33bae82", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "e532b837c100d911170001bf0bcb2490e33bae82", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.15.tgz" - }, - "directories": {} - }, - "1.0.15-csp": { - "name": "vue", - "version": "1.0.15-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-commonjs": "^1.4.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "aa0315655eef42f1a7f18c4e057962febfa50fd9", - "_id": "vue@1.0.15-csp", - "_shasum": "7d51d4a95d2895e43ddcda79030fc9296ceb4100", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.1.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "7d51d4a95d2895e43ddcda79030fc9296ceb4100", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.15-csp.tgz" - }, - "directories": {} - }, - "1.0.16": { - "name": "vue", - "version": "1.0.16", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.21.0", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "5f897f0f962aadca29baf99098c632f2fe8ea186", - "_id": "vue@1.0.16", - "_shasum": "fdda77e7214b3c69e0d5b1666512e5cf42da5e4f", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "fdda77e7214b3c69e0d5b1666512e5cf42da5e4f", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.16.tgz" - }, - "directories": {} - }, - "1.0.16-csp": { - "name": "vue", - "version": "1.0.16-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^1.3.1", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "d660fd8de105fbbfbfb594bdb11ee4ca44ddbdd8", - "_id": "vue@1.0.16-csp", - "_shasum": "d0737fa3e67356260278c8331b7f1318c339af81", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "d0737fa3e67356260278c8331b7f1318c339af81", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.16-csp.tgz" - }, - "directories": {} - }, - "1.0.17": { - "name": "vue", - "version": "1.0.17", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "9e64586fda793e1197edf7450eeb3f9b28f67461", - "_id": "vue@1.0.17", - "_shasum": "d205a56230eb677b7950f668b05341d6c9ab236a", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "d205a56230eb677b7950f668b05341d6c9ab236a", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.17.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.17.tgz_1456708644250_0.9540390649344772" - }, - "directories": {} - }, - "1.0.17-csp": { - "name": "vue", - "version": "1.0.17-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta3", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.3.4", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "7b54a7f761d30a8199f6526a0b7abebf146115ee", - "_id": "vue@1.0.17-csp", - "_shasum": "805530361dba186a485926933547f7e9a07449e3", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "805530361dba186a485926933547f7e9a07449e3", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.17-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.17-csp.tgz_1456712671644_0.032794815488159657" - }, - "directories": {} - }, - "1.0.18": { - "name": "vue", - "version": "1.0.18", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "86253b0e56a63376cd0470f6d7a8ab1c8e60f75a", - "_id": "vue@1.0.18", - "_shasum": "b4a41729ccedb077de80a34dffcfc8879b16efa4", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "b4a41729ccedb077de80a34dffcfc8879b16efa4", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.18.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.18.tgz_1458261467526_0.2369015347212553" - }, - "directories": {} - }, - "1.0.18-csp": { - "name": "vue", - "version": "1.0.18-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "b9601a08a767542024418f92caf5a4f9d0af4387", - "_id": "vue@1.0.18-csp", - "_shasum": "ec1f9781d2d63cd3fa8a037d3c7113e6933c4f4a", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ec1f9781d2d63cd3fa8a037d3c7113e6933c4f4a", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.18-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.18-csp.tgz_1458262453954_0.978116855956614" - }, - "directories": {} - }, - "1.0.19": { - "name": "vue", - "version": "1.0.19", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "355fbe14dcf539d99c6ce9fc07b1b2999f7dcee3", - "_id": "vue@1.0.19", - "_shasum": "ba4a7f7cbf959d10e91bd4cc771f0ad3e7d05fa6", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ba4a7f7cbf959d10e91bd4cc771f0ad3e7d05fa6", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.19.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.19.tgz_1458890363030_0.8627496787812561" - }, - "directories": {} - }, - "1.0.19-csp": { - "name": "vue", - "version": "1.0.19-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "d76e29999b983b137472743661528d7a800c6ff6", - "_id": "vue@1.0.19-csp", - "_shasum": "c779efaf8d7104436c7dcd6c0ddec659147721b2", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "c779efaf8d7104436c7dcd6c0ddec659147721b2", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.19-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.19-csp.tgz_1458890648998_0.373419905314222" - }, - "directories": {} - }, - "1.0.20": { - "name": "vue", - "version": "1.0.20", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "b12e21cb36522f8defab82de3111502a8b97083f", - "_id": "vue@1.0.20", - "_shasum": "8426deb6a6ba8aed998b816701e45ac4751b8e4d", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "8426deb6a6ba8aed998b816701e45ac4751b8e4d", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.20.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.20.tgz_1459027211830_0.0051624104380607605" - }, - "directories": {} - }, - "1.0.20-csp": { - "name": "vue", - "version": "1.0.20-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "c4194caefa86a2df2abb8ccc8915308fee99d96b", - "_id": "vue@1.0.20-csp", - "_shasum": "bcc7b1bf675f60229df78be0b60db71ae90ce731", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "bcc7b1bf675f60229df78be0b60db71ae90ce731", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.20-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.20-csp.tgz_1459027491780_0.8101142421364784" - }, - "directories": {} - }, - "1.0.21": { - "name": "vue", - "version": "1.0.21", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "9fa430324325c2b5910c8c5c01abfdc116a41b56", - "_id": "vue@1.0.21", - "_shasum": "81657707db75e7ce744f1e5d9b1c579a93c759cd", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "81657707db75e7ce744f1e5d9b1c579a93c759cd", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.21.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.21.tgz_1460066889574_0.2730389488860965" - }, - "directories": {} - }, - "1.0.21-csp": { - "name": "vue", - "version": "1.0.21-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-standard": "^5.1.0", - "eslint-plugin-promise": "^1.0.8", - "eslint-plugin-standard": "^1.3.2", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "58674341524134c03ef9e451612e9b8007ff7d96", - "_id": "vue@1.0.21-csp", - "_shasum": "66d75d6a865731bb781ce6f8cbd7e9a7e0411fe2", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.5.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "66d75d6a865731bb781ce6f8cbd7e9a7e0411fe2", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.21-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.21-csp.tgz_1460067072063_0.4909919537603855" - }, - "directories": {} - }, - "1.0.22": { - "name": "vue", - "version": "1.0.22", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "9a0a539fb4c034b2d51414875ecc92b8d3e89a4b", - "_id": "vue@1.0.22", - "_shasum": "826c2e224b8902bbaf1dc04d68bbc5001a74ca68", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "826c2e224b8902bbaf1dc04d68bbc5001a74ca68", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.22.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.22.tgz_1462658361341_0.13756674039177597" - }, - "directories": {} - }, - "1.0.22-csp": { - "name": "vue", - "version": "1.0.22-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.1.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "f2bac60c1de7b252152971c2c6c81e80c8a4de78", - "_id": "vue@1.0.22-csp", - "_shasum": "bb1e0d541d5aaa7d5d63a1c10b30c05f4bb1ce9a", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "bb1e0d541d5aaa7d5d63a1c10b30c05f4bb1ce9a", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.22-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.22-csp.tgz_1462658452773_0.5138986194506288" - }, - "directories": {} - }, - "1.0.23": { - "name": "vue", - "version": "1.0.23", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "cbcf8eb9e90c4f636ac288e82930bffbcdc69553", - "_id": "vue@1.0.23", - "_shasum": "70bffb41d6740828062ba2144f8e46d20348e127", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "70bffb41d6740828062ba2144f8e46d20348e127", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.23.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.23.tgz_1462983655509_0.054572020657360554" - }, - "directories": {} - }, - "1.0.23-csp": { - "name": "vue", - "version": "1.0.23-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "e61005f44e09199bc51c3df3eac7bd7a064d1ede", - "_id": "vue@1.0.23-csp", - "_shasum": "74b566e28f4ba54dc097b8a8dc014ccf04d5b86f", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "74b566e28f4ba54dc097b8a8dc014ccf04d5b86f", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.23-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.23-csp.tgz_1462983747828_0.3989598988555372" - }, - "directories": {} - }, - "1.0.24": { - "name": "vue", - "version": "1.0.24", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "ea0de41dafed75a7c1d124d281daddc800b61e59", - "_id": "vue@1.0.24", - "_shasum": "c8eecb25542f3bc6f0ae113288a4eef924de6b14", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "c8eecb25542f3bc6f0ae113288a4eef924de6b14", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.24.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.24.tgz_1463003854279_0.24861793918535113" - }, - "directories": {} - }, - "1.0.24-csp": { - "name": "vue", - "version": "1.0.24-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src/** test/e2e/** test/unit/specs/** build/**.js", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "ccfb341ffda1279a41239be0b6c54813555cb089", - "_id": "vue@1.0.24-csp", - "_shasum": "2b60f6b63b2849e68951c4266e8e2bd920dfd602", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "2b60f6b63b2849e68951c4266e8e2bd920dfd602", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.24-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.24-csp.tgz_1463003993293_0.585835512727499" - }, - "directories": {} - }, - "2.0.0-alpha.1": { - "name": "vue", - "version": "2.0.0-alpha.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "test": "npm run lint && flow check && npm run test:cover && npm run test:unit && npm run test:e2e && npm run test:ssr", - "ci": "npm run lint && flow check && npm run test:cover && npm run test:ssr", - "build": "NODE_ENV=production node build/build.js", - "lint": "eslint src build test", - "flow": "flow check", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.26.x", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^0.13.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-spec-reporter": "^0.0.26", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.26.3", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "source-map": "^0.5.6", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "32ba31cee3757d2251b7d252585fffe563524a21", - "_id": "vue@2.0.0-alpha.1", - "_shasum": "12effd01451e3ac316931023316c53788c0d76f0", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "12effd01451e3ac316931023316c53788c0d76f0", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.1.tgz_1465601667826_0.6901542220730335" - }, - "directories": {} - }, - "2.0.0-alpha.2": { - "name": "vue", - "version": "2.0.0-alpha.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.26.x", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^0.13.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.26.3", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "source-map": "^0.5.6", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "efa3fc746aa01e5cafc4164dbc005eb476369399", - "_id": "vue@2.0.0-alpha.2", - "_shasum": "26537043b44512e3a11497503be6845bb2c0da0c", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "26537043b44512e3a11497503be6845bb2c0da0c", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.2.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.2.tgz_1465861012005_0.09093371103517711" - }, - "directories": {} - }, - "2.0.0-alpha.3": { - "name": "vue", - "version": "2.0.0-alpha.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.26.x", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^0.13.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.26.3", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "source-map": "^0.5.6", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "5c3e208cf8a94a9c7e04e3d33b7ad7db6e7377e5", - "_id": "vue@2.0.0-alpha.3", - "_shasum": "0c2aaf1bf7ed52ab28ab1e0aea4c255eb75acea5", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "0c2aaf1bf7ed52ab28ab1e0aea4c255eb75acea5", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.3.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.3.tgz_1466014962348_0.5024105680640787" - }, - "directories": {} - }, - "2.0.0-alpha.4": { - "name": "vue", - "version": "2.0.0-alpha.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.26.x", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^0.13.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.26.3", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "source-map": "^0.5.6", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "7c90dc9be32a81b7ec5b6728007a8b8f3f101a76", - "_id": "vue@2.0.0-alpha.4", - "_shasum": "de4a5c15fb86bf907e9837b4dc7c053ef87487b0", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "de4a5c15fb86bf907e9837b4dc7c053ef87487b0", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.4.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.4.tgz_1466096453127_0.4196715080179274" - }, - "directories": {} - }, - "1.0.25": { - "name": "vue", - "version": "1.0.25", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "e9872271fa9b2a8bec1c42e65a2bb5c4df808eb2", - "_id": "vue@1.0.25", - "_shasum": "a0214b916424c1dbe0e3e46b4f9df9824c9e816a", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "a0214b916424c1dbe0e3e46b4f9df9824c9e816a", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.25.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.25.tgz_1466116167824_0.4927524533122778" - }, - "directories": {} - }, - "1.0.25-csp": { - "name": "vue", - "version": "1.0.25-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "18062272932752ee325a8f09409a4d6187e710db", - "_id": "vue@1.0.25-csp", - "_shasum": "a77fcd9e87aaa0f507a0c63b928f9fa96d35250c", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "a77fcd9e87aaa0f507a0c63b928f9fa96d35250c", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.25-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.25-csp.tgz_1466116657623_0.751262983540073" - }, - "directories": {} - }, - "2.0.0-alpha.5": { - "name": "vue", - "version": "2.0.0-alpha.5", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.26.x", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^0.13.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.26.3", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "source-map": "^0.5.6", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "59230fee0edf3b755ea6989e255c248bda2be75d", - "_id": "vue@2.0.0-alpha.5", - "_shasum": "a773285d166b87501838193c56e0b3b581f5c887", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "a773285d166b87501838193c56e0b3b581f5c887", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.5.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.5.tgz_1466187763942_0.5654465507250279" - }, - "directories": {} - }, - "2.0.0-alpha.6": { - "name": "vue", - "version": "2.0.0-alpha.6", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^0.13.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.26.3", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "dcd82c2429ad5bceddd2e8a8e692a56ff3f12619", - "_id": "vue@2.0.0-alpha.6", - "_shasum": "9b36b80e08e080545121f109f3f744743df08206", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "6.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "9b36b80e08e080545121f109f3f744743df08206", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.6.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.6.tgz_1466624005207_0.6892203430179507" - }, - "directories": {} - }, - "2.0.0-alpha.7": { - "name": "vue", - "version": "2.0.0-alpha.7", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "lru-cache": "^4.0.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "a3e26ac9417d38a43171e9fe905d3d065664b1fb", - "_id": "vue@2.0.0-alpha.7", - "_shasum": "3a1dc8a126e9b473181d46ffce9f067de5a6ac8c", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "3a1dc8a126e9b473181d46ffce9f067de5a6ac8c", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.7.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.7.tgz_1467080658127_0.4492913503199816" - }, - "directories": {} - }, - "2.0.0-alpha.8": { - "name": "vue", - "version": "2.0.0-alpha.8", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-template-compiler,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "lru-cache": "^4.0.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "8592151110f3031df7a06c37281ce4216963b9c8", - "_id": "vue@2.0.0-alpha.8", - "_shasum": "6ad65a2caa8475fe983869ea066b06f17b04bc63", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "6ad65a2caa8475fe983869ea066b06f17b04bc63", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.8.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-alpha.8.tgz_1467104537096_0.30240438994951546" - }, - "directories": {} - }, - "1.0.26": { - "name": "vue", - "version": "1.0.26", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "e7932f80eeacf6f7d392bf520e98c4790db9d5c1", - "_id": "vue@1.0.26", - "_shasum": "89a3a81a15be8b364820dd601600744db6b1aafc", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "89a3a81a15be8b364820dd601600744db6b1aafc", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.26.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.26.tgz_1467147451300_0.9240092227701098" - }, - "directories": {} - }, - "1.0.26-csp": { - "name": "vue", - "version": "1.0.26-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.0-beta5", - "codecov.io": "^0.1.2", - "eslint": "^2.9.0", - "eslint-config-vue": "^1.0.0", - "istanbul-instrumenter-loader": "^0.1.3", - "jasmine-core": "^2.4.1", - "karma": "^0.13.8", - "karma-chrome-launcher": "^0.2.0", - "karma-coverage": "^0.5.0", - "karma-firefox-launcher": "^0.1.6", - "karma-ie-launcher": "^0.2.0", - "karma-jasmine": "^0.3.6", - "karma-phantomjs-launcher": "^0.2.1", - "karma-safari-launcher": "^0.1.1", - "karma-sauce-launcher": "^0.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.25.1", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "fda77a54ece7dcf14633d4e349c975396f37af32", - "_id": "vue@1.0.26-csp", - "_shasum": "98e20abf3becab9793b6c3593edde3b8d694f0ee", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "98e20abf3becab9793b6c3593edde3b8d694f0ee", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.26-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.26-csp.tgz_1467150172558_0.31587393674999475" - }, - "directories": {} - }, - "2.0.0-beta.1": { - "name": "vue", - "version": "2.0.0-beta.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "ed3f3958b135ed7a9882042a653419cc14213630", - "_id": "vue@2.0.0-beta.1", - "_shasum": "fae80ffa23945cd311e5b292941280d390f31f9b", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "fae80ffa23945cd311e5b292941280d390f31f9b", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.1.tgz_1467928305336_0.3286005707923323" - }, - "directories": {} - }, - "2.0.0-beta.2": { - "name": "vue", - "version": "2.0.0-beta.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "bd583371ecb753bbf986f450f6a4f3d0f65a3f32", - "_id": "vue@2.0.0-beta.2", - "_shasum": "8d54bd51b0a6acd1d009e79815bf7bde144e3c70", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "8d54bd51b0a6acd1d009e79815bf7bde144e3c70", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.2.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.2.tgz_1468734686340_0.9078352218493819" - }, - "directories": {} - }, - "2.0.0-beta.3": { - "name": "vue", - "version": "2.0.0-beta.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "2288f3eab7af38f8832455c060d99f44f66aab06", - "_id": "vue@2.0.0-beta.3", - "_shasum": "9ea79c05a76120931c628f7a75edf2a5b7e24982", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "9ea79c05a76120931c628f7a75edf2a5b7e24982", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.3.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.3.tgz_1469328319979_0.5627379040233791" - }, - "directories": {} - }, - "2.0.0-beta.4": { - "name": "vue", - "version": "2.0.0-beta.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.0.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "88c3f4b937c0151cbde19cb4187b0834faf4d266", - "_id": "vue@2.0.0-beta.4", - "_shasum": "fda7a3f301bf1f4f6fc665c5457642a8ea419918", - "_from": ".", - "_npmVersion": "3.9.5", - "_nodeVersion": "6.2.2", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "fda7a3f301bf1f4f6fc665c5457642a8ea419918", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.4.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.4.tgz_1469498669294_0.19265102222561836" - }, - "directories": {} - }, - "2.0.0-beta.5": { - "name": "vue", - "version": "2.0.0-beta.5", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.0.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "9cbe4a31665c6ef47baad2aed62b0da89e0cc72b", - "_id": "vue@2.0.0-beta.5", - "_shasum": "90d881a7bf5cec208b1ed9d08413107f2c126215", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "90d881a7bf5cec208b1ed9d08413107f2c126215", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.5.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.5.tgz_1469593549153_0.2599202685523778" - }, - "directories": {} - }, - "2.0.0-beta.6": { - "name": "vue", - "version": "2.0.0-beta.6", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "fd3377d1a9b962c558bdac2125664888c93aa143", - "_id": "vue@2.0.0-beta.6", - "_shasum": "7d2e6cbded8c0a44e8957a0c6fc65522ab8b558b", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "7d2e6cbded8c0a44e8957a0c6fc65522ab8b558b", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.6.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.6.tgz_1470079661237_0.6658249413594604" - }, - "directories": {} - }, - "2.0.0-beta.7": { - "name": "vue", - "version": "2.0.0-beta.7", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "c2c68d6a22de1f633a18c62eab46938eed917f2f", - "_id": "vue@2.0.0-beta.7", - "_shasum": "fef963533c43374ebaf93451a8af1df29e19c3b1", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "fef963533c43374ebaf93451a8af1df29e19c3b1", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.7.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.7.tgz_1470435033174_0.4668272112030536" - }, - "directories": {} - }, - "2.0.0-beta.8": { - "name": "vue", - "version": "2.0.0-beta.8", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "1cde06b7723a1c5870ae5d2fca536e515e647487", - "_id": "vue@2.0.0-beta.8", - "_shasum": "45f926ada556eb4fc500796c81e86f07e07f9c4a", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "45f926ada556eb4fc500796c81e86f07e07f9c4a", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.8.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-beta.8.tgz_1470804938808_0.9325078530237079" - }, - "directories": {} - }, - "2.0.0-rc.1": { - "name": "vue", - "version": "2.0.0-rc.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "7b42671f04aa1de342d85178419fac8fa5eb6eaf", - "_id": "vue@2.0.0-rc.1", - "_shasum": "959c855df95323bf29cc3d66ae01dcfe24c88c23", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "959c855df95323bf29cc3d66ae01dcfe24c88c23", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.1.tgz_1470894200563_0.5398926513735205" - }, - "directories": {} - }, - "2.0.0-rc.2": { - "name": "vue", - "version": "2.0.0-rc.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "e422a98150806d9dde395b3398be42ae3d3bb85e", - "_id": "vue@2.0.0-rc.2", - "_shasum": "92f935c13127687a38207bb69e2dbb02e7c8141e", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "92f935c13127687a38207bb69e2dbb02e7c8141e", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.2.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.2.tgz_1471318752677_0.23703231965191662" - }, - "directories": {} - }, - "2.0.0-rc.3": { - "name": "vue", - "version": "2.0.0-rc.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "webpack --watch --config build/webpack.dist.dev.config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "webpack --watch --config build/webpack.ssr.dev.config.js", - "dev:compiler": "webpack --watch --config build/webpack.compiler.dev.config.js", - "build": "NODE_ENV=production node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "NODE_ENV=development karma start build/karma.unit.config.js", - "test:cover": "NODE_ENV=development karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && NODE_ENV=development VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "NODE_ENV=development SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-rollup-vue": "^1.1.0", - "babel-preset-flow-vue": "^1.0.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "eslint": "^2.11.0", - "eslint-config-vue": "^1.0.3", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.4.0", - "flow-bin": "^0.27.0", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^1.0.1", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.33.0", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-replace": "^1.1.0", - "selenium-server": "2.53.0", - "uglify-js": "^2.6.2", - "webpack": "^1.13.1" - }, - "gitHead": "8d03a452de61634428923a4dabbd22c24b91f3b3", - "_id": "vue@2.0.0-rc.3", - "_shasum": "3aa583897ecada9b823923a67d0b03bac9d14671", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "3aa583897ecada9b823923a67d0b03bac9d14671", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.3.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.3.tgz_1471716301183_0.7859994771424681" - }, - "directories": {} - }, - "2.0.0-rc.4": { - "name": "vue", - "version": "2.0.0-rc.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.13.1", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-plugin-html": "^1.5.2", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.5.0", - "flow-bin": "^0.31.1", - "flow-remove-types": "github:yyx990803/flow-remove-types", - "http-server": "^0.9.0", - "jasmine": "^2.4.1", - "jasmine-core": "^2.4.1", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.34.10", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.13.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "8c427f7f18d34bca8e2860788d0849bee26d4bb9", - "_id": "vue@2.0.0-rc.4", - "_shasum": "324ab6afbdcf20b5b606d2950ca91040d152e89b", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "324ab6afbdcf20b5b606d2950ca91040d152e89b", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.4.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.4.tgz_1472500149870_0.7657984518446028" - }, - "directories": {} - }, - "2.0.0-rc.5": { - "name": "vue", - "version": "2.0.0-rc.5", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.13.1", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flow-vars": "^0.5.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.31.1", - "flow-remove-types": "github:yyx990803/flow-remove-types", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.34.10", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.13.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "84dfc1d99c2b42f28d238bed8a46d02c47c8aa10", - "_id": "vue@2.0.0-rc.5", - "_shasum": "d743850882326c3203a9612f4e1bff4f045cc0ff", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "d743850882326c3203a9612f4e1bff4f045cc0ff", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.5.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.5.tgz_1473334198315_0.16794415842741728" - }, - "directories": {} - }, - "2.0.0-rc.6": { - "name": "vue", - "version": "2.0.0-rc.6", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.13.1", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.31.1", - "flow-remove-types": "github:yyx990803/flow-remove-types", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.34.10", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.13.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "43211fd519f462af2530556d905b38d942f61294", - "_id": "vue@2.0.0-rc.6", - "_shasum": "4572daa8aac8ef1eb48559f8ac4ab8e408e2869f", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "4572daa8aac8ef1eb48559f8ac4ab8e408e2869f", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.6.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.6.tgz_1473772872082_0.040285271126776934" - }, - "directories": {} - }, - "1.0.27": { - "name": "vue", - "version": "1.0.27", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.3", - "codecov.io": "^0.1.2", - "eslint": "^3.5.0", - "eslint-config-vue": "^1.0.0", - "eslint-plugin-html": "^1.5.2", - "istanbul-instrumenter-loader": "^0.2.0", - "jasmine-core": "^2.4.1", - "karma": "^1.3.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.0", - "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-phantomjs-launcher": "^1.0.2", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.34.13", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "baa92ca1b5dd59d5950fc44ed5476c15f01a843e", - "_id": "vue@1.0.27", - "_shasum": "f56229c87d436a661bd3bb63cc7eeb264233116e", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "f56229c87d436a661bd3bb63cc7eeb264233116e", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.27.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.27.tgz_1474660297977_0.7622160818427801" - }, - "directories": {} - }, - "1.0.27-csp": { - "name": "vue", - "version": "1.0.27-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.3", - "codecov.io": "^0.1.2", - "eslint": "^3.5.0", - "eslint-config-vue": "^1.0.0", - "eslint-plugin-html": "^1.5.2", - "istanbul-instrumenter-loader": "^0.2.0", - "jasmine-core": "^2.4.1", - "karma": "^1.3.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.0", - "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-phantomjs-launcher": "^1.0.2", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.34.13", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "ba7dd90bc5fc84f41a30d774e2b7f58e2a058222", - "_id": "vue@1.0.27-csp", - "_shasum": "7c8058e5644ea4d8702c24576a1edbf03d4823e0", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "7c8058e5644ea4d8702c24576a1edbf03d4823e0", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.27-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.27-csp.tgz_1474660425377_0.06182463048025966" - }, - "directories": {} - }, - "2.0.0-rc.7": { - "name": "vue", - "version": "2.0.0-rc.7", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.32.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.34.13", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "08f2b97083d32b8c3fe035d770dddfc19de49a7e", - "_id": "vue@2.0.0-rc.7", - "_shasum": "d1549bef91986e06e50bf630ea1d3963f7ecd059", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "d1549bef91986e06e50bf630ea1d3963f7ecd059", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.7.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.7.tgz_1474669496160_0.6856245503295213" - }, - "directories": {} - }, - "1.0.28": { - "name": "vue", - "version": "1.0.28", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce && npm run sauce -- 1 && npm run sauce -- 2", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.3", - "codecov.io": "^0.1.2", - "eslint": "^3.5.0", - "eslint-config-vue": "^1.0.0", - "eslint-plugin-html": "^1.5.2", - "istanbul-instrumenter-loader": "^0.2.0", - "jasmine-core": "^2.4.1", - "karma": "^1.3.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.0", - "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-phantomjs-launcher": "^1.0.2", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.34.13", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "a8d6330d7e6b30c252aa753f99c7cb73bfc67a70", - "_id": "vue@1.0.28", - "_shasum": "ed2ff07b200bde15c87a90ef8727ceea7d38567d", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ed2ff07b200bde15c87a90ef8727ceea7d38567d", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.28.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-1.0.28.tgz_1475009141605_0.8371744034811854" - }, - "directories": {} - }, - "1.0.28-csp": { - "name": "vue", - "version": "1.0.28-csp", - "author": { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - "license": "MIT", - "description": "Simple, Fast & Composable MVVM for building interactive interfaces", - "keywords": [ - "mvvm", - "browser", - "framework" - ], - "main": "dist/vue.common.js", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.min.js.map", - "dist/vue.common.js", - "src" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "http://vuejs.org", - "scripts": { - "test": "npm run lint && npm run cover && npm run build && npm run e2e", - "build": "node build/build.js", - "install-hook": "ln -s ../../build/git-hooks/pre-commit .git/hooks/pre-commit", - "dev": "webpack --watch --config build/webpack.dev.config.js & npm run serve-test", - "serve-test": "webpack-dev-server --config build/webpack.test.config.js --host 0.0.0.0", - "build-test": "webpack --config build/webpack.test.config.js", - "lint": "eslint src test/e2e test/unit/specs build", - "e2e": "casperjs test --concise ./test/e2e", - "unit": "karma start build/karma.unit.config.js", - "cover": "karma start build/karma.cover.config.js", - "sauce": "karma start build/karma.sauce.config.js", - "sauce-all": "npm run sauce", - "release": "bash build/release.sh", - "release-csp": "bash build/release-csp.sh" - }, - "dependencies": { - "envify": "^3.4.0" - }, - "browserify": { - "transform": [ - "envify" - ] - }, - "devDependencies": { - "babel-core": "^5.8.0", - "babel-loader": "^5.4.0", - "babel-runtime": "^5.8.0", - "casperjs": "^1.1.3", - "codecov.io": "^0.1.2", - "eslint": "^3.5.0", - "eslint-config-vue": "^1.0.0", - "eslint-plugin-html": "^1.5.2", - "istanbul-instrumenter-loader": "^0.2.0", - "jasmine-core": "^2.4.1", - "karma": "^1.3.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.0", - "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-phantomjs-launcher": "^1.0.2", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.7.0", - "notevil": "^1.0.0", - "object-assign": "^4.0.1", - "phantomjs": "^1.9.17", - "rollup": "^0.34.13", - "rollup-plugin-babel": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "uglify-js": "^2.4.24", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" - }, - "gitHead": "c45cfee24d222b68b8e6a320863cb7e13c15f2bc", - "_id": "vue@1.0.28-csp", - "_shasum": "02814d502eff3e4efb6a12b882fbf3b55f1e2f1e", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "02814d502eff3e4efb6a12b882fbf3b55f1e2f1e", - "tarball": "https://registry.npmjs.org/vue/-/vue-1.0.28-csp.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-1.0.28-csp.tgz_1475009243806_0.7087466502562165" - }, - "directories": {} - }, - "2.0.0-rc.8": { - "name": "vue", - "version": "2.0.0-rc.8", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.32.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.34.13", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "e6154316daf62c43c997e4334be7a52b57881709", - "_id": "vue@2.0.0-rc.8", - "_shasum": "6436fe5bb75002ffa57230b413b695d29f7abcba", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "6436fe5bb75002ffa57230b413b695d29f7abcba", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.8.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0-rc.8.tgz_1475010513582_0.2802108924370259" - }, - "directories": {} - }, - "2.0.0": { - "name": "vue", - "version": "2.0.0", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.32.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "156cfb9892d3359d548e27abf5d8b78b421a5a92", - "_id": "vue@2.0.0", - "_shasum": "2717556195650845a0141d8117ba8024ccedb2ba", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "2717556195650845a0141d8117ba8024ccedb2ba", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.0.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.0.tgz_1475260331734_0.9920612326823175" - }, - "directories": {} - }, - "2.0.1": { - "name": "vue", - "version": "2.0.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.32.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "e6d224c3c5ca3ff6a365326ba615d116764b68f2", - "_id": "vue@2.0.1", - "_shasum": "ea20979eb5440ea7da086097befd598fb548dbc1", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ea20979eb5440ea7da086097befd598fb548dbc1", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.1.tgz_1475269930880_0.6575976791791618" - }, - "directories": {} - }, - "2.0.2": { - "name": "vue", - "version": "2.0.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "entities": "^1.1.1", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.32.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "70aee1c7f8f6aab359492909d41f1e0449771506", - "_id": "vue@2.0.2", - "_shasum": "ae1c01ce74a5d44d41ece96b82849c11e1d45e6d", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "ae1c01ce74a5d44d41ece96b82849c11e1d45e6d", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.2.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.2.tgz_1476248052543_0.10046554286964238" - }, - "directories": {} - }, - "2.0.3": { - "name": "vue", - "version": "2.0.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^1.1.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-html": "^1.5.2", - "flow-bin": "^0.32.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "3bbac7e9f5beb86dbb023edbb043bdea501c98d3", - "_id": "vue@2.0.3", - "_shasum": "3f7698f83d6ad1f0e35955447901672876c63fde", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "dist": { - "shasum": "3f7698f83d6ad1f0e35955447901672876c63fde", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.3.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.3.tgz_1476350853659_0.9587009425740689" - }, - "directories": {} - }, - "2.0.4": { - "name": "vue", - "version": "2.0.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^2.0.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "0973342e5cadaa68c21535cb9e62f27fd5493e2c", - "_id": "vue@2.0.4", - "_shasum": "26f1e3c52c74012de6a6aa58595c6706395f1fb2", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "26f1e3c52c74012de6a6aa58595c6706395f1fb2", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.4.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.4.tgz_1478292430438_0.9752126208040863" - }, - "directories": {} - }, - "2.0.5": { - "name": "vue", - "version": "2.0.5", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^6.0.4", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^4.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^3.2.1", - "eslint": "^3.4.0", - "eslint-config-vue": "^2.0.0", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "2.4.x", - "jasmine-core": "2.4.x", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.13.1", - "nightwatch": "^0.9.0", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.2", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2" - }, - "gitHead": "a2cc6e2b68239460d1c27f9af8b2165594f8ab00", - "_id": "vue@2.0.5", - "_shasum": "b99dc7180a802d1148a508db3d84b52c09b5ca8e", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "b99dc7180a802d1148a508db3d84b52c09b5ca8e", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.5.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.5.tgz_1478317652628_0.46653968561440706" - }, - "directories": {} - }, - "2.0.6": { - "name": "vue", - "version": "2.0.6", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "fd83358c97d16eba6d53ceb2a8528bbc3376afd0", - "_id": "vue@2.0.6", - "_shasum": "a867c0cc2a8292d0de7dfd42e90e7627cf762ceb", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "a867c0cc2a8292d0de7dfd42e90e7627cf762ceb", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.6.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.6.tgz_1479251111982_0.6678760126233101" - }, - "directories": {} - }, - "2.0.7": { - "name": "vue", - "version": "2.0.7", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "cd0e37361227b9b6f34e88dda3f4934c3932014d", - "_id": "vue@2.0.7", - "_shasum": "83698ef4f76ce702f425b5576b06ff28e12db143", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "83698ef4f76ce702f425b5576b06ff28e12db143", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.7.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.0.7.tgz_1479333271954_0.264754707692191" - }, - "directories": {} - }, - "2.0.8": { - "name": "vue", - "version": "2.0.8", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.common.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.js", - "dist/vue.min.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-standalone-dev rollup -w -c build/config.js", - "dev:runtime": "TARGET=web-runtime-dev rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "9fa4bbbc04f17fe278b280a99225077836d692ec", - "_id": "vue@2.0.8", - "_shasum": "bbc191db5e1442f208604f994f03e49ac09e69d2", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "bbc191db5e1442f208604f994f03e49ac09e69d2", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.0.8.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.0.8.tgz_1479611705947_0.1140876084100455" - }, - "directories": {} - }, - "2.1.0": { - "name": "vue", - "version": "2.1.0", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "f4647b01f8340eb0d21d14f4fc1a720855fee3d5", - "_id": "vue@2.1.0", - "_shasum": "293ba3efaaca846aa6bcbfac45cf8524cc597e3d", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "293ba3efaaca846aa6bcbfac45cf8524cc597e3d", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.0.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.1.0.tgz_1479831313483_0.42749749566428363" - }, - "directories": {} - }, - "2.1.1": { - "name": "vue", - "version": "2.1.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "adf33c18eb1e24676af22d85d072fe6bfa83c99c", - "_id": "vue@2.1.1", - "_shasum": "8a1653e19a3ea4d44778893261a9f3c5a70c083b", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "8a1653e19a3ea4d44778893261a9f3c5a70c083b", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.1.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.1.1.tgz_1479934847963_0.6884484167676419" - }, - "directories": {} - }, - "2.1.2": { - "name": "vue", - "version": "2.1.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "9e5d882bd2e40e9593f76ae557e6060e0319fd40", - "_id": "vue@2.1.2", - "_shasum": "0f94cf1779a405a460bf945e5bc27cfc3cf64d60", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "0f94cf1779a405a460bf945e5bc27cfc3cf64d60", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.2.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.1.2.tgz_1479944543760_0.3896191492676735" - }, - "directories": {} - }, - "2.1.3": { - "name": "vue", - "version": "2.1.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "c32ea056a552ac792dcb52bd22cb19dba761c229", - "_id": "vue@2.1.3", - "_shasum": "20161b8684777754fd9823134b38f13c1e197882", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "20161b8684777754fd9823134b38f13c1e197882", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.3.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.1.3.tgz_1479946938686_0.762635137885809" - }, - "directories": {} - }, - "2.1.4": { - "name": "vue", - "version": "2.1.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-coverage": "^1.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "a8f41399ef7538176f8207af7b6a1180f3a13505", - "_id": "vue@2.1.4", - "_shasum": "d490f8fcf696847d8cf7f8eb9168e9a5dd806bfc", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "d490f8fcf696847d8cf7f8eb9168e9a5dd806bfc", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.4.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.1.4.tgz_1480647688112_0.3128880592994392" - }, - "directories": {} - }, - "2.1.5": { - "name": "vue", - "version": "2.1.5", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^3.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "68abdc3c3c86e01089c32b434e662dc15a3a9eda", - "_id": "vue@2.1.5", - "_shasum": "d2568d3e5093cf1486eef44cf37177e3f51d568d", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "d2568d3e5093cf1486eef44cf37177e3f51d568d", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.5.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.1.5.tgz_1481598577169_0.39072798006236553" - }, - "directories": {} - }, - "2.1.6": { - "name": "vue", - "version": "2.1.6", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^3.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "gitHead": "57f425ef1d1d5ddc89e2a9d2bbe4cfd9554fddbc", - "_id": "vue@2.1.6", - "_shasum": "2fc0024c07479ac6bc7d34a2cd5ef9ca5e90b143", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "2fc0024c07479ac6bc7d34a2cd5ef9ca5e90b143", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.6.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.1.6.tgz_1481649755145_0.9005280786659569" - }, - "directories": {} - }, - "2.1.7": { - "name": "vue", - "version": "2.1.7", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^3.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "unpkg": "dist/vue.js", - "gitHead": "c803fbbca02d9437ab5dc04316ab6f290a6bd16d", - "_id": "vue@2.1.7", - "_shasum": "747880cb70a50c66cb8791aacfee7a6dab7fc842", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "747880cb70a50c66cb8791aacfee7a6dab7fc842", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.7.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.1.7.tgz_1482597383867_0.028434713603928685" - }, - "directories": {} - }, - "2.1.8": { - "name": "vue", - "version": "2.1.8", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^3.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "unpkg": "dist/vue.js", - "gitHead": "17be581cf033273f3e57cf2b899cf055fcb36ba3", - "_id": "vue@2.1.8", - "_shasum": "ae30aa86024fccf5535292ce414e7b4c221a1756", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "ae30aa86024fccf5535292ce414e7b4c221a1756", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.8.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.1.8.tgz_1482904483951_0.5947873364202678" - }, - "directories": {} - }, - "2.1.9": { - "name": "vue", - "version": "2.1.9", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^3.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "unpkg": "dist/vue.js", - "gitHead": "80a7ceace62f1d9c5a9b93182aacc0b35cef1115", - "_id": "vue@2.1.9", - "_shasum": "19ad2eae01f7c9eb911e089f65ed579bbf5ab9dd", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "19ad2eae01f7c9eb911e089f65ed579bbf5ab9dd", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.9.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.1.9.tgz_1484610495742_0.46512899617664516" - }, - "directories": {} - }, - "2.1.10": { - "name": "vue", - "version": "2.1.10", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^3.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.14.0", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^1.0.0", - "flow-bin": "^0.33.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^1.7.0", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "rollup": "^0.36.1", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.14.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^2.5.0", - "selenium-server": "2.53.1", - "typescript": "^2.0.9", - "uglify-js": "^2.6.2", - "webpack": "^1.13.2", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.3" - }, - "dependencies": {}, - "unpkg": "dist/vue.js", - "gitHead": "994aee4f869d68a00c3b9d87daa9c8d84623ac42", - "_id": "vue@2.1.10", - "_shasum": "c9235ca48c7925137be5807832ac4e3ac180427b", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "6.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "c9235ca48c7925137be5807832ac4e3ac180427b", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.1.10.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.1.10.tgz_1484673441093_0.458372725173831" - }, - "directories": {} - }, - "2.2.0-beta.1": { - "name": "vue", - "version": "2.2.0-beta.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "unpkg": "dist/vue.js", - "gitHead": "7775da259dbf594a18c1e3a38383bac3caf1e47b", - "_id": "vue@2.2.0-beta.1", - "_shasum": "e481b0c0af9aed0c1884c16f7cb843e57a3e4d1c", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "e481b0c0af9aed0c1884c16f7cb843e57a3e4d1c", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.0-beta.1.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.2.0-beta.1.tgz_1487910148538_0.9716962235979736" - }, - "directories": {} - }, - "2.2.0-beta.2": { - "name": "vue", - "version": "2.2.0-beta.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "unpkg": "dist/vue.js", - "gitHead": "36810163386dd4f2690d8d1c4b1016f17e467e2d", - "_id": "vue@2.2.0-beta.2", - "_shasum": "4a03a307e377c58ee4f440d8100ac8b23a0e478f", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "4a03a307e377c58ee4f440d8100ac8b23a0e478f", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.0-beta.2.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.2.0-beta.2.tgz_1487980879749_0.9535783343017101" - }, - "directories": {} - }, - "2.2.0": { - "name": "vue", - "version": "2.2.0", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "2a19f911dc8631d44b7c7e63c4db57ef28ac5e69", - "_id": "vue@2.2.0", - "_shasum": "f4586920ce36d53944ab27ac5236ed9303a46b47", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "f4586920ce36d53944ab27ac5236ed9303a46b47", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.0.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.2.0.tgz_1488083531694_0.24482185952365398" - }, - "directories": {} - }, - "2.2.1": { - "name": "vue", - "version": "2.2.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "dist/vue.js", - "dist/vue.min.js", - "dist/vue.runtime.js", - "dist/vue.runtime.min.js", - "dist/vue.common.js", - "dist/vue.runtime.common.js", - "dist/vue.esm.js", - "dist/vue.runtime.esm.js", - "src", - "types/index.d.ts", - "types/options.d.ts", - "types/plugin.d.ts", - "types/vnode.d.ts", - "types/vue.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "3b241b0088d8b40b3e551f76fa031910dcbd42a7", - "_id": "vue@2.2.1", - "_shasum": "ddbfd2f0caf38f374f5a36eea2e1edf25225b68e", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "ddbfd2f0caf38f374f5a36eea2e1edf25225b68e", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.1.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.2.1.tgz_1488114657958_0.2117187965195626" - }, - "directories": {} - }, - "2.2.2": { - "name": "vue", - "version": "2.2.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "d0b8dce4a6cbcce1aed1912ab12b20c858edd729", - "_id": "vue@2.2.2", - "_shasum": "17ed34028a6ab4de855738a1d7beabdf409ee23f", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "17ed34028a6ab4de855738a1d7beabdf409ee23f", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.2.2.tgz_1489033433326_0.6694855242967606" - }, - "directories": {} - }, - "2.2.3": { - "name": "vue", - "version": "2.2.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "d185dd294c99fc01fd6521201f3362ba41e75060", - "_id": "vue@2.2.3", - "_shasum": "62174ade45f262efa4dba6f49ec613c6d2fc279c", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "62174ade45f262efa4dba6f49ec613c6d2fc279c", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.2.3.tgz_1489392491918_0.5810584076680243" - }, - "directories": {} - }, - "2.2.4": { - "name": "vue", - "version": "2.2.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "TARGET=web-full-dev rollup -w -c build/config.js", - "dev:cjs": "TARGET=web-runtime-cjs rollup -w -c build/config.js", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "TARGET=web-server-renderer rollup -w -c build/config.js", - "dev:compiler": "TARGET=web-compiler rollup -w -c build/config.js", - "dev:weex": "TARGET=weex-framework rollup -w -c build/config.js", - "dev:weex:compiler": "TARGET=weex-compiler rollup -w -c build/config.js", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "SAUCE=true karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && NODE_ENV=production node benchmarks/ssr/renderToString.js && NODE_ENV=production VUE_ENV=server node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "2343b908c2f8d0b3d9ea762af6f5b85a540eddd7", - "_id": "vue@2.2.4", - "_shasum": "d0a3a050a80a12356d7950ae5a7b3131048209cc", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "d0a3a050a80a12356d7950ae5a7b3131048209cc", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.4.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.2.4.tgz_1489417703415_0.14407102018594742" - }, - "directories": {} - }, - "2.2.5": { - "name": "vue", - "version": "2.2.5", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "c0ad75beeb5bf5e7679221b679fbdd13e0d945bb", - "_id": "vue@2.2.5", - "_shasum": "528eba68447d7eff99f86767b31176aa656c6963", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "528eba68447d7eff99f86767b31176aa656c6963", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.5.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.2.5.tgz_1490331224066_0.039384644478559494" - }, - "directories": {} - }, - "2.2.6": { - "name": "vue", - "version": "2.2.6", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "flow-bin": "^0.39.0", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "vue-ssr-html-stream": "^2.1.0", - "vue-ssr-webpack-plugin": "^1.0.0", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "0cebdf55ab645001a7c8c80381ab27e03ced5c7c", - "_id": "vue@2.2.6", - "_shasum": "451714b394dd6d4eae7b773c40c2034a59621aed", - "_from": ".", - "_npmVersion": "4.0.5", - "_nodeVersion": "7.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "451714b394dd6d4eae7b773c40c2034a59621aed", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.2.6.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.2.6.tgz_1490582786729_0.13118436955846846" - }, - "directories": {} - }, - "2.3.0-beta.1": { - "name": "vue", - "version": "2.3.0-beta.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "file-loader": "^0.10.1", - "flow-bin": "^0.39.0", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "lodash.template": "^4.4.0", - "lru-cache": "^4.0.2", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "3a6fd13bc5c1c900774f759f200e064d60861b96", - "_id": "vue@2.3.0-beta.1", - "_shasum": "cea07a499c561f535ee320d623fd17a775c1591b", - "_from": ".", - "_npmVersion": "4.2.0", - "_nodeVersion": "7.8.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "cea07a499c561f535ee320d623fd17a775c1591b", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.3.0-beta.1.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.3.0-beta.1.tgz_1493202765108_0.0036185618955641985" - }, - "directories": {} - }, - "2.3.0": { - "name": "vue", - "version": "2.3.0", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "file-loader": "^0.10.1", - "flow-bin": "^0.39.0", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "lodash.template": "^4.4.0", - "lru-cache": "^4.0.2", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "a27c464692c83c3c953e76baaa0e51dc88e4a14a", - "_id": "vue@2.3.0", - "_shasum": "bc44db0488c5245c788304c7683efe7b4c862d82", - "_from": ".", - "_npmVersion": "4.2.0", - "_nodeVersion": "7.8.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "bc44db0488c5245c788304c7683efe7b4c862d82", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.3.0.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.3.0.tgz_1493274146495_0.15474186395294964" - }, - "directories": {} - }, - "2.3.1": { - "name": "vue", - "version": "2.3.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "file-loader": "^0.10.1", - "flow-bin": "^0.45.0", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.0.2", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "6b4f3da51dbac0c7f06411907c8d8435b630d5b2", - "_id": "vue@2.3.1", - "_shasum": "cecc3a229160747f3fb01eb2f03dd04e82420462", - "_from": ".", - "_npmVersion": "4.2.0", - "_nodeVersion": "7.8.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "cecc3a229160747f3fb01eb2f03dd04e82420462", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.3.1.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.3.1.tgz_1493711973474_0.7331771603785455" - }, - "directories": {} - }, - "2.3.2": { - "name": "vue", - "version": "2.3.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "file-loader": "^0.10.1", - "flow-bin": "^0.45.0", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.0.2", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "b977c77d344cb1fc63a3daa50a4b96ef70e77ec5", - "_id": "vue@2.3.2", - "_shasum": "9e52aae3593480be235ff227557837e69f98203a", - "_from": ".", - "_npmVersion": "4.2.0", - "_nodeVersion": "7.8.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "9e52aae3593480be235ff227557837e69f98203a", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.3.2.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/vue-2.3.2.tgz_1493721022817_0.636890372261405" - }, - "directories": {} - }, - "2.3.3": { - "name": "vue", - "version": "2.3.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "file-loader": "^0.10.1", - "flow-bin": "^0.45.0", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.0.2", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "8d56a498f3d95660e2cafff4ed3c1e1da23494d1", - "_id": "vue@2.3.3", - "_shasum": "d1eaa8fde5240735a4563e74f2c7fead9cbb064c", - "_from": ".", - "_npmVersion": "4.2.0", - "_nodeVersion": "7.8.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "shasum": "d1eaa8fde5240735a4563e74f2c7fead9cbb064c", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.3.3.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/vue-2.3.3.tgz_1494349078810_0.31803403492085636" - }, - "directories": {} - }, - "2.3.4": { - "name": "vue", - "version": "2.3.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start build/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start build/karma.unit.config.js", - "test:cover": "karma start build/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start build/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "install:hooks": "ln -fs ../../build/git-hooks/pre-commit .git/hooks/pre-commit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.9.0", - "babel-eslint": "^7.1.0", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^6.2.4", - "babel-plugin-istanbul": "^4.0.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.2.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.21.2", - "codecov.io": "^0.1.6", - "cross-spawn": "^5.0.1", - "de-indent": "^1.0.2", - "es6-promise": "^4.0.5", - "eslint": "^3.10.1", - "eslint-config-vue": "^2.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-flowtype": "^2.16.0", - "eslint-plugin-jasmine": "^2.1.0", - "eslint-plugin-vue": "^2.0.0", - "file-loader": "^0.10.1", - "flow-bin": "^0.45.0", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "http-server": "^0.9.0", - "jasmine": "^2.5.2", - "jasmine-core": "^2.5.2", - "karma": "^1.1.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.0.0", - "karma-firefox-launcher": "^1.0.0", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.0.4", - "karma-phantomjs-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "karma-sourcemap-loader": "^0.3.0", - "karma-webpack": "^2.0.1", - "lodash": "^4.17.1", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.0.2", - "nightwatch": "^0.9.9", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.1", - "resolve": "^1.2.0", - "rollup": "^0.41.4", - "rollup-plugin-alias": "^1.2.0", - "rollup-plugin-babel": "^2.4.0", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-replace": "^1.1.0", - "rollup-watch": "^3.2.2", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "typescript": "^2.1.6", - "uglify-js": "^2.6.2", - "webpack": "^2.2.0", - "weex-js-runtime": "^0.17.0-alpha4", - "weex-vdom-tester": "^0.1.4" - }, - "gitHead": "1f9416d514d80a99eb45184459fdf390405967ec", - "_id": "vue@2.3.4", - "_npmVersion": "5.0.0", - "_nodeVersion": "8.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-oLCxuVcVQ2inwSbS7B+zfjB6CSjgQ0yyCOzPcg7S5CXeOCbtkaiN5frR6MtwvrveqbG86OsGd9jWf6JsGyQkLw==", - "shasum": "5ec3b87a191da8090bbef56b7cfabd4158038171", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.3.4.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.3.4.tgz_1496897690369_0.5197095186449587" - }, - "directories": {} - }, - "2.4.0": { - "name": "vue", - "version": "2.4.0", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "postinstall": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.2.0", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.48.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.45.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^1.1.1", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.3.4", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.20.5", - "weex-vdom-tester": "^0.2.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "ac3d1eaea34ee23978d395a84f68154e7e86caa1", - "_id": "vue@2.4.0", - "_npmVersion": "5.0.0", - "_nodeVersion": "8.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-BFqCvQQJ3LA2fANeqY/aLnkMBzZo1ef6ymjRweYYnUkAjoid7MyD/J2Nhkp7YminXVZBQv7M+P7Wli7rZRNafQ==", - "shasum": "f462d15f12f73bb40d795365cf3c45431296d6f7", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.4.0.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.4.0.tgz_1499925597967_0.5970287129748613" - }, - "directories": {} - }, - "2.4.1": { - "name": "vue", - "version": "2.4.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.2.0", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.48.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.45.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^1.1.1", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.3.4", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.20.5", - "weex-vdom-tester": "^0.2.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "381b48503aae796c5c21c318cae8b0a8322dde35", - "_id": "vue@2.4.1", - "_npmVersion": "5.0.0", - "_nodeVersion": "8.0.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-V/3mbqPeXJf+AEdm2Qdrho8ADjN2/Th+q7abrDqQrGaERgtlGPLe8SRLDzJ2eNEV4Gh+L8T/vfbxb2sLUfwYbA==", - "shasum": "76e0b8eee614613532216b7bfe784e0b5695b160", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.4.1.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.4.1.tgz_1499928052215_0.3017186624929309" - }, - "directories": {} - }, - "2.4.2": { - "name": "vue", - "version": "2.4.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.2.0", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.48.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.45.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^1.1.1", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.3.4", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.20.5", - "weex-vdom-tester": "^0.2.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "b8f1bcd96c73251f46726cfc5393bb9999ae259d", - "_id": "vue@2.4.2", - "_npmVersion": "5.0.3", - "_nodeVersion": "8.1.4", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-GB5r+CsrCHIB1PoXt4wgBienjF3WGYOIaTK27tDk96sZxpL5RwRrsi9I3ECwFt8x8qAmxT2xk1vsY2Vpcn9nIw==", - "shasum": "a9855261f191c978cc0dc1150531b8d08149b58c", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.4.2.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.4.2.tgz_1500611321854_0.16039316589012742" - }, - "directories": {} - }, - "2.4.3": { - "name": "vue", - "version": "2.4.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.2.0", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.48.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.45.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^1.1.1", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.3.4", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.20.5", - "weex-vdom-tester": "^0.2.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "0a7ffb148c38848cb9f59a38b101abdec863f490", - "_id": "vue@2.4.3", - "_npmVersion": "5.4.1", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-k6zkIBR0KsE0DLUDGdRLooX/4iRUbc3T2FyrJs4YhVySbjGwS3k5c2HRCHyXo6lg1aeAF9rg3uiJDRz0J7nbDA==", - "shasum": "55fee0ec509cf2e10aa73b34b15219e92a9ab9ea", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.4.3.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.4.3.tgz_1505289458451_0.009235817706212401" - }, - "directories": {} - }, - "2.4.4": { - "name": "vue", - "version": "2.4.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework ", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- vue.runtime.common.js,vue-server-renderer", - "build:weex": "npm run build -- weex-vue-framework,weex-template-compiler", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- vue.min.js && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.15.2", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.2.0", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.48.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.45.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^1.1.1", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.3.4", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.20.5", - "weex-vdom-tester": "^0.2.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "94512f3e8cee4030a1096121700ed49afab48073", - "_id": "vue@2.4.4", - "_npmVersion": "5.4.1", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-PCiRmc8ZT1DD5+BN8QUAmnkBefcCLfZVSuhc1u7iu5JoPrSHyyk/+4nehm7k2xVMi8+RFLk5WIHAN14UKF0txw==", - "shasum": "ea9550b96a71465fd2b8b17b61673b3561861789", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.4.4.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.4.4.tgz_1505403170766_0.00395546481013298" - }, - "directories": {} - }, - "2.5.0": { - "name": "vue", - "version": "2.5.0", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.22.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "0948d999f2fddf9f90991956493f976273c5da1f", - "_id": "vue@2.5.0", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-KngZQLLe/N2Bvl3qu0xgqQHemm9MNz9y73D7yJ5tVavOKyhSgCLARYzrXJzYtoeadUSrItzV36VrHywLGVUx7w==", - "shasum": "7f0706c0804257e8d42e5970e1a36e648483988d", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.0.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.0.tgz_1507864062173_0.6368219419382513" - }, - "directories": {} - }, - "2.5.1": { - "name": "vue", - "version": "2.5.1", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "f865b0d7678beb70765ec8fd560008bebb51b923", - "_id": "vue@2.5.1", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-gOTOjZZWXxXmYkchkdJ3mKi9AbkwWIc0O9yOQYbEdgigy8YI7eh7h2YS3qnDr4UIjvnrbNPbbS+OjO3Qipl4EQ==", - "shasum": "1d904b18a2bcbbfc68879f105e29d9a4dd715ff8", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.1.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.1.tgz_1507904083226_0.8859054057393223" - }, - "directories": {} - }, - "2.5.2": { - "name": "vue", - "version": "2.5.2", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/install-hooks.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "471de4a31d229e681cc9dce18632b5bcab944c77", - "_id": "vue@2.5.2", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-Au9rf8fPkBulFHfZ406UaQDd1jH9fqGRIM+0IHilrXnJ/0TeeMH4SBkNxWf2dGevl2S3aVeu0E/WklEv0/msag==", - "shasum": "fd367a87bae7535e47f9dc5c9ec3b496e5feb5a4", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.2.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.2.tgz_1507926072940_0.44964701822027564" - }, - "directories": {} - }, - "2.5.3": { - "name": "vue", - "version": "2.5.3", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "2acc12c9edb03329c4d9cddcca26e46c672a77bc", - "_id": "vue@2.5.3", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-C8O5ZtR9jpwm6sCre3k42/WvuAcil5hH1+c3mJks8kNCYKh57sQh6I5U7m9L0fD89OKkIofmebUORngZkLedNA==", - "shasum": "e1a3b1f49b6e93e574ce040b95cbc873912fecc1", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.3.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.3.tgz_1509743497178_0.5528412547428161" - }, - "directories": {} - }, - "2.5.4": { - "name": "vue", - "version": "2.5.4", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "a2cd14c765cfb1f881f34911d4fd0540feb09cce", - "_id": "vue@2.5.4", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-AHCPCJdPe/hP0lEd1j4KKyM5J5Qmihr5eL94AJMbfgSofxXF8izd3dcvLLBSRm1EhCqYf1RhUAKua0uOsp6xGA==", - "shasum": "4405e30b856875553e8fadb0ebf50f51ffc443f5", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.4.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.4.tgz_1510862118158_0.23470679740421474" - }, - "directories": {} - }, - "2.5.5": { - "name": "vue", - "version": "2.5.5", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "06f121b4735e8c70306c744419287592af295eac", - "_id": "vue@2.5.5", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-GmuENNfh+QxILBWJbBuclYIIDPoCBbYpspndkBZjyhzc6Pol6I+arHiwqXBD6ml5Kwo7uEIUdDnOcuhdLlAMrw==", - "shasum": "cc3cd9b2a4f1d7356861ae0f71da0e6beb091910", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.5.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.5.tgz_1510936623854_0.6424111265223473" - }, - "directories": {} - }, - "2.5.6": { - "name": "vue", - "version": "2.5.6", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "b2781205b0271a9b59afe0c816b41c6dbe85f0a3", - "_id": "vue@2.5.6", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-EnTiSZKkaQmsbpgsWN01VrGYisBXvjU1iqoK2xpUOLdri8vxQyYi5CjRtT33K3JI49WaiG8XnsIGEhNnROj2fQ==", - "shasum": "73654fefa4b37f25dfc657b8b834b44c90822cd7", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.6.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.6.tgz_1511034258455_0.17820211220532656" - }, - "directories": {} - }, - "2.5.7": { - "name": "vue", - "version": "2.5.7", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "f9f74231a2e064861856396f57dc980a6de376e9", - "_id": "vue@2.5.7", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-eMsl1hMSw+/1o5+W9LnNKwQqOAhqAW8KfaQcPg0EjczMqU9o53VkLAQ5jk84aSYnOqeBCaLYHs0BB5iqNOuotA==", - "shasum": "313ab26025915d9fdbc39db756548cb4bb50eb44", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.7.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.7.tgz_1511207374375_0.18834878643974662" - }, - "directories": {} - }, - "2.5.8": { - "name": "vue", - "version": "2.5.8", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.5.2", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "b0bbcbd152782bcc8d5ad5e9c9e5842e1daf1afb", - "_id": "vue@2.5.8", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.4.0", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-aY26SGDHJTCKM+mndzuiQ0dozPpNeWO5Mtq760OrHO0AOiqVHMhzvU5h0LdCkVF9A+vE+DMTm74xSi+sxnMEDg==", - "shasum": "f855c1c27255184a82225f4bef225473e8faf15b", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.8.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.8.tgz_1511275347590_0.6677671177312732" - }, - "directories": {} - }, - "2.5.9": { - "name": "vue", - "version": "2.5.9", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.6.1", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "d4e0c3ef2444384719638a89f2a25af042b95795", - "_id": "vue@2.5.9", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-9B9XBpCtj8y5eJFrspIcKxIWt+lG9FMdF8qgyOlUeOIvcS4xSAvcARygbzHA6Pi0KWFj4BvxjtWbuPVWRx/wuA==", - "shasum": "b2380cd040915dca69881dafd121d760952e65f7", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.9.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.9.tgz_1511804621853_0.23726037540473044" - }, - "directories": {} - }, - "2.5.10": { - "name": "vue", - "version": "2.5.10", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^7.2.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.16.0", - "chalk": "^1.1.3", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^3.0.0", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^1.2.0", - "file-loader": "^0.11.2", - "flow-bin": "^0.54.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.50.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.6.1", - "uglify-js": "^3.0.15", - "webpack": "^2.6.1", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "a5924a53369ec7c04f0638148f60324652c126eb", - "_id": "vue@2.5.10", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-svnce7F8Oe0cWscno2ABnq5ir3tQoQYXe2CkR7SiNGKmNyBDXhJj9Y7mXUodZytsssIvbooEH9DRrp58cOuWNA==", - "shasum": "dcd772e2594ba994145f2f09522149d9a1e7841a", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.10.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.10.tgz_1513120608829_0.06511193164624274" - }, - "directories": {} - }, - "2.5.11": { - "name": "vue", - "version": "2.5.11", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^8.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.18.0", - "chalk": "^2.3.0", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^4.13.1", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^2.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.61.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.52.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.18.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.6.1", - "uglify-js": "^3.0.15", - "webpack": "^3.10.0", - "weex-js-runtime": "^0.23.0", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "9c01684762445c822956f5764400d14384804db6", - "_id": "vue@2.5.11", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-FZzUIvJa1jsFSfy6OITgjzoCtnxI8uHkewa2QCCCIgRj7ObsalXKLTf3S5sBP+kyusTctl3fKej+NHoBUCVPlA==", - "shasum": "80ca2657aa81f03545cd8dd5a2f55454641e6405", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.11.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.11.tgz_1513270573239_0.7456502984277904" - }, - "directories": {} - }, - "2.5.12": { - "name": "vue", - "version": "2.5.12", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^8.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.18.0", - "chalk": "^2.3.0", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^4.13.1", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^2.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.61.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.52.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.18.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.6.1", - "uglify-js": "^3.0.15", - "webpack": "^3.10.0", - "weex-js-runtime": "^0.23.5", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "ec2c48cfd58d2e82d37928af533d5d5bfa30b5c4", - "_id": "vue@2.5.12", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-ouxtzKv/Y1GlUJlWf3jwvEi6jUs5lJQnDjaNzrHtNET9dpLENmF+cFUmfbO3avWQSzvjMpy6EqNAgLMDvZdyGA==", - "shasum": "88bb58307b51d9dd9f772019765c0d110da816e7", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.12.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.12.tgz_1513695265097_0.30003517493605614" - }, - "directories": {} - }, - "2.5.13": { - "name": "vue", - "version": "2.5.13", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c build/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c build/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c build/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c build/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c build/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c build/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c build/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c build/config.js --environment TARGET:weex-compiler ", - "build": "node build/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src build test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash build/release.sh", - "release:weex": "bash build/release-weex.sh", - "release:note": "node build/gen-release-note.js", - "setup": "node build/setup.js", - "commit": "git-cz" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "babel-core": "^6.25.0", - "babel-eslint": "^8.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.18.0", - "chalk": "^2.3.0", - "chromedriver": "^2.30.1", - "codecov.io": "^0.1.6", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "eslint": "^4.13.1", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^2.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.61.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.10.0", - "jasmine": "^2.6.0", - "jasmine-core": "^2.6.3", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.52.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.18.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.7.8", - "typescript": "^2.6.1", - "uglify-js": "^3.0.15", - "webpack": "^3.10.0", - "weex-js-runtime": "^0.23.5", - "weex-styler": "^0.3.0" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "d982e344b39391fe91b6dd91d51b2f0310a45e77", - "_id": "vue@2.5.13", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-3D+lY7HTkKbtswDM4BBHgqyq+qo8IAEE8lz8va1dz3LLmttjgo0FxairO4r1iN2OBqk8o1FyL4hvzzTFEdQSEw==", - "shasum": "95bd31e20efcf7a7f39239c9aa6787ce8cf578e1", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.13.tgz" - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue-2.5.13.tgz_1513710421411_0.02470116876065731" - }, - "directories": {} - }, - "2.5.14": { - "name": "vue", - "version": "2.5.14", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", - "build": "node scripts/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint --fix src scripts test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash scripts/release.sh", - "release:weex": "bash scripts/release-weex.sh", - "release:note": "node scripts/gen-release-note.js", - "commit": "git-cz" - }, - "gitHooks": { - "pre-commit": "lint-staged", - "commit-msg": "node scripts/verify-commit-msg.js" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "acorn": "^5.2.1", - "babel-core": "^6.25.0", - "babel-eslint": "^8.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.19.3", - "chalk": "^2.3.0", - "chromedriver": "^2.30.1", - "codecov": "^3.0.0", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "escodegen": "^1.8.1", - "eslint": "^4.13.1", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^2.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.61.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.11.1", - "jasmine": "^2.99.0", - "jasmine-core": "^2.99.0", - "karma": "^2.0.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lint-staged": "^7.0.0", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.54.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.19.2", - "rollup-plugin-commonjs": "^8.0.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.8.1", - "typescript": "^2.7.1", - "uglify-js": "^3.0.15", - "webpack": "^3.11.0", - "weex-js-runtime": "^0.23.6", - "weex-styler": "^0.3.0", - "yorkie": "^1.0.1" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "387d2567ebec83db47d2049eec006a1ffc83451a", - "_id": "vue@2.5.14", - "_npmVersion": "5.6.0", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-mVgzSfYvL6WXJhBkZNbJ/hZCJae6gjnnooa7K/HXfBPWKtqpBWHKfZVWV66a7x4JtE5vnQ4P1RW+OeqbWq2pOQ==", - "shasum": "74cb248a471053939abf6cdf2c406d4c311ab5a7", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.14.tgz", - "fileCount": 213, - "unpackedSize": 2455707 - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue_2.5.14_1520631733384_0.5622873738246064" - } - }, - "2.5.15": { - "name": "vue", - "version": "2.5.15", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", - "build": "node scripts/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint --fix src scripts test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash scripts/release.sh", - "release:weex": "bash scripts/release-weex.sh", - "release:note": "node scripts/gen-release-note.js", - "commit": "git-cz" - }, - "gitHooks": { - "pre-commit": "lint-staged", - "commit-msg": "node scripts/verify-commit-msg.js" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "acorn": "^5.2.1", - "babel-core": "^6.25.0", - "babel-eslint": "^8.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.19.3", - "chalk": "^2.3.0", - "chromedriver": "^2.30.1", - "codecov": "^3.0.0", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "escodegen": "^1.8.1", - "eslint": "^4.13.1", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^2.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.61.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.11.1", - "jasmine": "^2.99.0", - "jasmine-core": "^2.99.0", - "karma": "^2.0.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lint-staged": "^7.0.0", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.54.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.19.2", - "rollup-plugin-commonjs": "^8.0.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.8.1", - "typescript": "^2.7.1", - "uglify-js": "^3.0.15", - "webpack": "^3.11.0", - "weex-js-runtime": "^0.23.6", - "weex-styler": "^0.3.0", - "yorkie": "^1.0.1" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "af5453cd5e90461531f1711b5ecb6bd47136e7b0", - "_id": "vue@2.5.15", - "_npmVersion": "5.6.0", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-uUcDI147VCQYA/9AqoEECddWdTQgrhnwAd6KDsl0pF1hiLpxqaYqIgArhnegU+QZ18DQrKvZNcR3x2QM1iaroQ==", - "shasum": "fdb67861dde967cd8d1b53116380f2f269b45202", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.15.tgz", - "fileCount": 213, - "unpackedSize": 2455943 - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue_2.5.15_1520725015621_0.7037534833744525" - } - }, - "2.5.16": { - "name": "vue", - "version": "2.5.16", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", - "build": "node scripts/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint --fix src scripts test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash scripts/release.sh", - "release:weex": "bash scripts/release-weex.sh", - "release:note": "node scripts/gen-release-note.js", - "commit": "git-cz" - }, - "gitHooks": { - "pre-commit": "lint-staged", - "commit-msg": "node scripts/verify-commit-msg.js" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "acorn": "^5.2.1", - "babel-core": "^6.25.0", - "babel-eslint": "^8.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.19.3", - "chalk": "^2.3.0", - "chromedriver": "^2.30.1", - "codecov": "^3.0.0", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "escodegen": "^1.8.1", - "eslint": "^4.13.1", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^2.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.61.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.11.1", - "jasmine": "^2.99.0", - "jasmine-core": "^2.99.0", - "karma": "^2.0.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lint-staged": "^7.0.0", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.54.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.19.2", - "rollup-plugin-commonjs": "^8.0.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.8.1", - "typescript": "^2.7.1", - "uglify-js": "^3.0.15", - "webpack": "^3.11.0", - "weex-js-runtime": "^0.23.6", - "weex-styler": "^0.3.0", - "yorkie": "^1.0.1" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "gitHead": "25342194016dc3bcc81cb3e8e229b0fb7ba1d1d6", - "_id": "vue@2.5.16", - "_npmVersion": "5.6.0", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ==", - "shasum": "07edb75e8412aaeed871ebafa99f4672584a0085", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz", - "fileCount": 213, - "unpackedSize": 2461504 - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue_2.5.16_1520979268732_0.2632649953358386" - } - }, - "2.5.17-beta.0": { - "name": "vue", - "version": "2.5.17-beta.0", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", - "build": "node scripts/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint --fix src scripts test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash scripts/release.sh", - "release:weex": "bash scripts/release-weex.sh", - "release:note": "node scripts/gen-release-note.js", - "commit": "git-cz" - }, - "gitHooks": { - "pre-commit": "lint-staged", - "commit-msg": "node scripts/verify-commit-msg.js" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" - ], - "author": { - "name": "Evan You" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" - }, - "homepage": "https://github.com/vuejs/vue#readme", - "devDependencies": { - "@types/node": "^8.0.33", - "@types/webpack": "^3.0.13", - "acorn": "^5.2.1", - "babel-core": "^6.25.0", - "babel-eslint": "^8.0.3", - "babel-helper-vue-jsx-merge-props": "^2.0.2", - "babel-loader": "^7.0.0", - "babel-plugin-istanbul": "^4.1.4", - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "babel-plugin-transform-vue-jsx": "^3.4.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-flow-vue": "^1.0.0", - "buble": "^0.19.3", - "chalk": "^2.3.0", - "chromedriver": "^2.30.1", - "codecov": "^3.0.0", - "commitizen": "^2.9.6", - "conventional-changelog": "^1.1.3", - "cross-spawn": "^5.1.0", - "cz-conventional-changelog": "^2.0.0", - "de-indent": "^1.0.2", - "es6-promise": "^4.1.0", - "escodegen": "^1.8.1", - "eslint": "^4.13.1", - "eslint-loader": "^1.7.1", - "eslint-plugin-flowtype": "^2.34.0", - "eslint-plugin-jasmine": "^2.8.4", - "eslint-plugin-vue-libs": "^2.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.61.0", - "hash-sum": "^1.0.2", - "he": "^1.1.1", - "http-server": "^0.11.1", - "jasmine": "^2.99.0", - "jasmine-core": "^2.99.0", - "karma": "^2.0.0", - "karma-chrome-launcher": "^2.1.1", - "karma-coverage": "^1.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-mocha-reporter": "^2.2.3", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.1.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.3", - "lint-staged": "^7.0.0", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "lodash.uniq": "^4.5.0", - "lru-cache": "^4.1.1", - "nightwatch": "^0.9.16", - "nightwatch-helpers": "^1.2.0", - "phantomjs-prebuilt": "^2.1.14", - "resolve": "^1.3.3", - "rollup": "^0.54.1", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-buble": "^0.19.2", - "rollup-plugin-commonjs": "^8.0.0", - "rollup-plugin-flow-no-whitespace": "^1.0.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^2.0.0", - "rollup-watch": "^4.0.0", - "selenium-server": "^2.53.1", - "serialize-javascript": "^1.3.0", - "shelljs": "^0.8.1", - "typescript": "^2.7.1", - "uglify-js": "^3.0.15", - "webpack": "^3.11.0", - "weex-js-runtime": "^0.23.6", - "weex-styler": "^0.3.0", - "yorkie": "^1.0.1" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "readmeFilename": "README.md", - "gitHead": "19552a82a636910f4595937141557305ab5d434e", - "_id": "vue@2.5.17-beta.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - }, - "dist": { - "integrity": "sha512-9BZOxpRe1TaGLS4oXyrUp3BC1dlc93js/yvnHtOovWzrkrjFMm58X+BCHrA/xgMXSM1iyRTEGoxAURyOUaK1dA==", - "shasum": "b9985447818827306beee146923a1bd64f1bb834", - "tarball": "https://registry.npmjs.org/vue/-/vue-2.5.17-beta.0.tgz", - "fileCount": 213, - "unpackedSize": 2470946 - }, - "maintainers": [ - { - "name": "yyx990803", - "email": "yyx990803@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/vue_2.5.17-beta.0_1521847753644_0.05241349247412952" - } - } - }, - "time": { - "modified": "2018-05-11T12:10:20.922Z", - "created": "2013-12-07T06:09:46.299Z", - "0.0.0": "2013-12-07T06:09:48.297Z", - "0.6.0": "2013-12-08T00:36:06.595Z", - "0.7.0": "2013-12-24T02:10:40.441Z", - "0.7.1": "2013-12-24T21:58:45.125Z", - "0.7.3": "2014-01-06T19:13:46.961Z", - "0.7.4": "2014-01-10T21:57:04.827Z", - "0.7.5": "2014-01-13T21:04:55.424Z", - "0.7.6": "2014-01-19T03:43:46.191Z", - "0.8.0": "2014-01-27T05:15:59.620Z", - "0.8.1": "2014-02-02T05:49:12.091Z", - "0.8.2": "2014-02-03T22:18:34.108Z", - "0.8.3": "2014-02-06T02:21:37.894Z", - "0.8.4": "2014-02-09T02:39:35.620Z", - "0.8.5": "2014-02-10T22:05:57.196Z", - "0.8.6": "2014-02-14T07:04:48.933Z", - "0.8.7": "2014-02-20T19:02:49.368Z", - "0.8.8": "2014-02-20T22:56:32.861Z", - "0.9.0": "2014-02-25T06:16:32.434Z", - "0.9.1": "2014-02-25T15:34:00.231Z", - "0.9.2": "2014-02-25T22:29:51.748Z", - "0.9.3": "2014-03-02T23:22:22.113Z", - "0.10.0": "2014-03-23T18:53:07.403Z", - "0.10.1": "2014-03-24T08:11:43.379Z", - "0.10.2": "2014-03-25T04:20:04.786Z", - "0.10.3": "2014-03-26T23:13:06.427Z", - "0.10.4": "2014-04-25T19:48:04.430Z", - "0.10.5": "2014-06-06T19:09:26.096Z", - "0.10.6": "2014-07-29T02:42:46.414Z", - "0.11.0-rc": "2014-09-27T01:26:13.384Z", - "0.11.0-rc2": "2014-10-07T17:08:40.846Z", - "0.11.0-rc3": "2014-10-24T16:54:11.017Z", - "0.11.0": "2014-11-07T01:52:49.130Z", - "0.11.1": "2014-12-01T00:25:20.710Z", - "0.11.2": "2014-12-02T02:38:46.620Z", - "0.11.3": "2014-12-02T17:23:08.144Z", - "0.11.4": "2014-12-07T20:44:16.730Z", - "0.11.5": "2015-02-05T21:29:54.653Z", - "0.11.6": "2015-04-18T07:11:26.742Z", - "0.11.7": "2015-04-21T03:19:52.363Z", - "0.11.8": "2015-04-21T20:10:47.755Z", - "0.11.9": "2015-05-06T20:40:14.353Z", - "0.11.10": "2015-05-07T19:00:43.870Z", - "0.12.0-beta1": "2015-05-16T17:25:13.491Z", - "0.12.0-beta2": "2015-05-16T18:22:58.104Z", - "0.12.0-beta3": "2015-05-22T20:08:57.836Z", - "0.12.0-beta4": "2015-05-26T16:51:10.607Z", - "0.12.0-beta5": "2015-05-30T02:27:57.264Z", - "0.12.0-rc": "2015-06-01T20:56:52.316Z", - "0.12.0-rc2": "2015-06-04T19:00:26.474Z", - "0.12.0": "2015-06-12T17:34:35.326Z", - "0.12.0-csp": "2015-06-12T20:50:01.816Z", - "0.12.1": "2015-06-14T05:28:12.433Z", - "0.12.1-csp": "2015-06-14T05:56:45.870Z", - "0.12.1-csp.1": "2015-06-16T17:02:39.526Z", - "0.12.1-csp.2": "2015-06-16T17:14:26.645Z", - "0.12.2": "2015-06-25T14:51:59.565Z", - "0.12.3": "2015-06-25T17:38:09.802Z", - "0.12.4": "2015-06-25T22:26:20.944Z", - "0.12.5": "2015-07-02T15:04:50.935Z", - "0.12.5-csp": "2015-07-03T01:11:03.345Z", - "0.12.6": "2015-07-05T07:48:30.721Z", - "0.12.6-csp": "2015-07-05T08:24:29.694Z", - "0.12.7": "2015-07-07T18:51:27.275Z", - "0.12.7-csp": "2015-07-07T18:54:26.904Z", - "0.12.8": "2015-07-23T15:23:32.611Z", - "0.12.8-csp": "2015-07-23T18:48:02.193Z", - "0.12.9": "2015-07-31T20:31:03.040Z", - "0.12.9-csp": "2015-07-31T21:10:16.053Z", - "0.12.10": "2015-08-10T03:39:18.266Z", - "0.12.10-csp": "2015-08-10T03:58:22.274Z", - "0.12.11": "2015-08-25T16:58:07.841Z", - "0.12.11-csp": "2015-08-25T17:10:02.340Z", - "0.12.12": "2015-08-26T08:48:27.269Z", - "0.12.12-csp": "2015-08-26T09:01:23.742Z", - "1.0.0-alpha.1": "2015-08-31T20:59:27.696Z", - "1.0.0-alpha.2": "2015-09-01T20:24:39.769Z", - "0.12.13": "2015-09-07T20:10:20.284Z", - "0.12.13-csp": "2015-09-07T20:15:03.743Z", - "1.0.0-alpha.3": "2015-09-07T20:21:11.010Z", - "0.12.14": "2015-09-11T18:16:41.183Z", - "0.12.14-csp": "2015-09-11T18:19:13.220Z", - "1.0.0-alpha.4": "2015-09-11T18:27:50.726Z", - "0.12.15": "2015-09-19T21:33:22.503Z", - "0.12.15-csp": "2015-09-19T21:39:37.485Z", - "1.0.0-alpha.5": "2015-09-19T22:14:44.591Z", - "1.0.0-beta.1": "2015-09-21T19:12:57.424Z", - "0.12.16": "2015-09-25T20:20:05.130Z", - "0.12.16-csp": "2015-09-25T20:29:32.399Z", - "1.0.0-alpha.6": "2015-09-25T20:34:58.129Z", - "1.0.0-beta.2": "2015-09-25T20:53:16.825Z", - "1.0.0-alpha.7": "2015-10-02T20:13:10.203Z", - "1.0.0-beta.3": "2015-10-02T20:17:44.825Z", - "1.0.0-alpha.8": "2015-10-11T00:38:39.712Z", - "1.0.0-beta.4": "2015-10-11T00:47:41.951Z", - "1.0.0-rc.1": "2015-10-15T21:14:16.364Z", - "1.0.0-rc.2-migration": "2015-10-23T00:38:54.546Z", - "1.0.0-rc.2": "2015-10-23T00:43:40.605Z", - "1.0.0-csp": "2015-10-27T01:22:14.988Z", - "1.0.0-migration": "2015-10-27T01:31:29.819Z", - "1.0.0": "2015-10-27T01:40:01.625Z", - "1.0.1": "2015-10-27T17:58:37.258Z", - "1.0.2": "2015-10-29T01:46:40.533Z", - "1.0.3": "2015-10-29T02:13:54.069Z", - "1.0.4": "2015-10-31T20:39:46.788Z", - "1.0.5": "2015-11-05T19:36:29.856Z", - "1.0.6": "2015-11-05T19:52:41.356Z", - "1.0.7": "2015-11-06T16:38:13.280Z", - "1.0.8": "2015-11-12T21:58:57.930Z", - "1.0.9": "2015-11-23T19:32:33.193Z", - "1.0.10": "2015-11-23T19:59:21.772Z", - "1.0.10-csp": "2015-11-23T21:59:26.254Z", - "1.0.11": "2015-12-10T05:00:17.976Z", - "1.0.11-csp": "2015-12-11T13:20:49.744Z", - "1.0.12": "2015-12-17T23:12:18.653Z", - "1.0.12-csp": "2015-12-17T23:23:50.790Z", - "1.0.12-csp-1": "2015-12-18T21:35:01.682Z", - "1.0.13": "2015-12-24T22:39:46.324Z", - "1.0.13-csp": "2015-12-25T03:54:53.045Z", - "1.0.14": "2016-01-11T20:12:35.173Z", - "1.0.14-csp": "2016-01-11T20:39:19.998Z", - "1.0.15": "2016-01-18T19:43:57.031Z", - "1.0.15-csp": "2016-01-18T19:52:06.412Z", - "1.0.16": "2016-01-30T09:41:50.987Z", - "1.0.16-csp": "2016-01-30T10:38:42.919Z", - "1.0.17": "2016-02-29T01:17:27.612Z", - "1.0.17-csp": "2016-02-29T02:24:33.094Z", - "1.0.18": "2016-03-18T00:37:50.511Z", - "1.0.18-csp": "2016-03-18T00:54:16.541Z", - "1.0.19": "2016-03-25T07:19:25.592Z", - "1.0.19-csp": "2016-03-25T07:24:11.639Z", - "1.0.20": "2016-03-26T21:20:12.830Z", - "1.0.20-csp": "2016-03-26T21:24:54.499Z", - "1.0.21": "2016-04-07T22:08:12.136Z", - "1.0.21-csp": "2016-04-07T22:11:14.714Z", - "1.0.22": "2016-05-07T21:59:24.459Z", - "1.0.22-csp": "2016-05-07T22:00:53.845Z", - "1.0.23": "2016-05-11T16:20:56.995Z", - "1.0.23-csp": "2016-05-11T16:22:30.910Z", - "1.0.24": "2016-05-11T21:57:37.358Z", - "1.0.24-csp": "2016-05-11T21:59:55.010Z", - "2.0.0-alpha.1": "2016-06-10T23:34:30.472Z", - "2.0.0-alpha.2": "2016-06-13T23:36:54.955Z", - "2.0.0-alpha.3": "2016-06-15T18:22:44.981Z", - "2.0.0-alpha.4": "2016-06-16T17:00:54.200Z", - "1.0.25": "2016-06-16T22:29:30.877Z", - "1.0.25-csp": "2016-06-16T22:37:40.390Z", - "2.0.0-alpha.5": "2016-06-17T18:22:45.156Z", - "2.0.0-alpha.6": "2016-06-22T19:33:28.089Z", - "2.0.0-alpha.7": "2016-06-28T02:24:20.794Z", - "2.0.0-alpha.8": "2016-06-28T09:02:18.167Z", - "1.0.26": "2016-06-28T20:57:34.028Z", - "1.0.26-csp": "2016-06-28T21:42:53.706Z", - "2.0.0-beta.1": "2016-07-07T21:51:47.724Z", - "2.0.0-beta.2": "2016-07-17T05:51:27.401Z", - "2.0.0-beta.3": "2016-07-24T02:45:22.313Z", - "2.0.0-beta.4": "2016-07-26T02:04:31.349Z", - "2.0.0-beta.5": "2016-07-27T04:25:51.572Z", - "2.0.0-beta.6": "2016-08-01T19:27:42.081Z", - "2.0.0-beta.7": "2016-08-05T22:10:35.353Z", - "2.0.0-beta.8": "2016-08-10T04:55:41.561Z", - "2.0.0-rc.1": "2016-08-11T05:43:21.414Z", - "2.0.0-rc.2": "2016-08-16T03:39:15.211Z", - "2.0.0-rc.3": "2016-08-20T18:05:02.596Z", - "2.0.0-rc.4": "2016-08-29T19:49:11.992Z", - "2.0.0-rc.5": "2016-09-08T11:30:00.014Z", - "2.0.0-rc.6": "2016-09-13T13:21:14.193Z", - "1.0.27": "2016-09-23T19:51:40.267Z", - "1.0.27-csp": "2016-09-23T19:53:46.613Z", - "2.0.0-rc.7": "2016-09-23T22:24:58.125Z", - "1.0.28": "2016-09-27T20:45:42.280Z", - "1.0.28-csp": "2016-09-27T20:47:26.372Z", - "2.0.0-rc.8": "2016-09-27T21:08:34.332Z", - "2.0.0": "2016-09-30T18:32:13.071Z", - "2.0.1": "2016-09-30T21:12:13.389Z", - "2.0.2": "2016-10-12T04:54:13.325Z", - "2.0.3": "2016-10-13T09:27:34.643Z", - "2.0.4": "2016-11-04T20:47:12.563Z", - "2.0.5": "2016-11-05T03:47:33.287Z", - "2.0.6": "2016-11-15T23:05:12.674Z", - "2.0.7": "2016-11-16T21:54:34.348Z", - "2.0.8": "2016-11-20T03:15:06.652Z", - "2.1.0": "2016-11-22T16:15:14.206Z", - "2.1.1": "2016-11-23T21:00:48.669Z", - "2.1.2": "2016-11-23T23:42:24.420Z", - "2.1.3": "2016-11-24T00:22:21.218Z", - "2.1.4": "2016-12-02T03:01:28.900Z", - "2.1.5": "2016-12-13T03:09:37.917Z", - "2.1.6": "2016-12-13T17:22:37.865Z", - "2.1.7": "2016-12-24T16:36:26.289Z", - "2.1.8": "2016-12-28T05:54:46.485Z", - "2.1.9": "2017-01-16T23:48:18.241Z", - "2.1.10": "2017-01-17T17:17:23.075Z", - "2.2.0-beta.1": "2017-02-24T04:22:29.318Z", - "2.2.0-beta.2": "2017-02-25T00:01:22.141Z", - "2.2.0": "2017-02-26T04:32:12.374Z", - "2.2.1": "2017-02-26T13:10:58.636Z", - "2.2.2": "2017-03-09T04:23:54.613Z", - "2.2.3": "2017-03-13T08:08:12.196Z", - "2.2.4": "2017-03-13T15:08:23.692Z", - "2.2.5": "2017-03-24T04:53:46.566Z", - "2.2.6": "2017-03-27T02:46:27.224Z", - "2.3.0-beta.1": "2017-04-26T10:32:45.472Z", - "2.3.0": "2017-04-27T06:22:30.251Z", - "2.3.1": "2017-05-02T07:59:33.809Z", - "2.3.2": "2017-05-02T10:30:25.167Z", - "2.3.3": "2017-05-09T16:57:59.102Z", - "2.3.4": "2017-06-08T04:54:50.550Z", - "2.4.0": "2017-07-13T05:59:58.195Z", - "2.4.1": "2017-07-13T06:40:52.424Z", - "2.4.2": "2017-07-21T04:28:43.739Z", - "2.4.3": "2017-09-13T07:57:40.361Z", - "2.4.4": "2017-09-14T15:32:52.487Z", - "2.5.0": "2017-10-13T03:07:43.841Z", - "2.5.1": "2017-10-13T14:14:44.817Z", - "2.5.2": "2017-10-13T20:21:14.556Z", - "2.5.3": "2017-11-03T21:11:37.399Z", - "2.5.4": "2017-11-16T19:55:19.757Z", - "2.5.5": "2017-11-17T16:37:05.558Z", - "2.5.6": "2017-11-18T19:44:18.720Z", - "2.5.7": "2017-11-20T19:49:36.077Z", - "2.5.8": "2017-11-21T14:42:29.228Z", - "2.5.9": "2017-11-27T17:43:43.727Z", - "2.5.10": "2017-12-12T23:16:50.457Z", - "2.5.11": "2017-12-14T16:56:14.790Z", - "2.5.12": "2017-12-19T14:54:26.793Z", - "2.5.13": "2017-12-19T19:07:03.185Z", - "2.5.14": "2018-03-09T21:42:13.463Z", - "2.5.15": "2018-03-10T23:36:55.780Z", - "2.5.16": "2018-03-13T22:14:28.959Z", - "2.5.17-beta.0": "2018-03-23T23:29:13.819Z" - }, - "dist-tags": { - "latest": "2.5.16", - "csp": "1.0.28-csp", - "beta": "2.5.17-beta.0" - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"7adcccc860251cd1e57b408f03a4a1d6\"", - "fetched": 1529779933724 - } - }, - "_distfiles": { - "vue-0.0.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.0.0.tgz", - "sha": "02a9248eb4a26ebc2bbf834f6db630af725ff258", - "registry": "npmjs" - }, - "vue-0.6.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.6.0.tgz", - "sha": "123c1a24ce6fe13c4530c03d780cb1ef966f9cde", - "registry": "npmjs" - }, - "vue-0.7.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.7.0.tgz", - "sha": "146d0ed809587f569b7fce39f6bac77b68ff3d47", - "registry": "npmjs" - }, - "vue-0.7.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.7.1.tgz", - "sha": "17a6ea20a5660c8614636387e15521530ff48c50", - "registry": "npmjs" - }, - "vue-0.7.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.7.3.tgz", - "sha": "61acb2ae6afb1116466bf1512c3835e0b47ac0a8", - "registry": "npmjs" - }, - "vue-0.7.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.7.4.tgz", - "sha": "e0df485af8f62a503664c35c07ea9315dc1a5759", - "registry": "npmjs" - }, - "vue-0.7.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.7.5.tgz", - "sha": "2b845e2defe5d30437b8915822b2461f9ce8a9d6", - "registry": "npmjs" - }, - "vue-0.7.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.7.6.tgz", - "sha": "ab486851e45887879832268370fcb372c1dc87a9", - "registry": "npmjs" - }, - "vue-0.8.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.0.tgz", - "sha": "0e0ea13ca7d9672cd900d8f10c59506814db934d", - "registry": "npmjs" - }, - "vue-0.8.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.1.tgz", - "sha": "26bfea6b31dd8e0d5b9f3e2eda349624f8011a67", - "registry": "npmjs" - }, - "vue-0.8.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.2.tgz", - "sha": "c1d30517b5160982a48ea22022b6974bd1bbde6a", - "registry": "npmjs" - }, - "vue-0.8.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.3.tgz", - "sha": "d50bea6e4ea1a78f9252a7c84a0346ce5eb46326", - "registry": "npmjs" - }, - "vue-0.8.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.4.tgz", - "sha": "88e9fa4190a56326635ec6962f3bf5469f83ee62", - "registry": "npmjs" - }, - "vue-0.8.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.6.tgz", - "sha": "a8d10dc5550a89db4f054da991a8f2ab7c196f55", - "registry": "npmjs" - }, - "vue-0.8.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.7.tgz", - "sha": "5497afc8f73b75123f40ea5dd6ceae044d6a2f26", - "registry": "npmjs" - }, - "vue-0.8.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.8.8.tgz", - "sha": "63fa3d8c1566f2983ddd9816a1b98b8d0612a2d0", - "registry": "npmjs" - }, - "vue-0.9.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.9.0.tgz", - "sha": "fdddbcf080a8121c9de827f5aba0894a97efb77d", - "registry": "npmjs" - }, - "vue-0.9.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.9.1.tgz", - "sha": "11fb26ef6fd03697b4c174440cb92bcea3a6ba4d", - "registry": "npmjs" - }, - "vue-0.9.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.9.2.tgz", - "sha": "c53dff86edcf12b941b45ca6f3b4e7d0f39fcc4e", - "registry": "npmjs" - }, - "vue-0.9.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.9.3.tgz", - "sha": "bd982661b5cec65cb8d09e33856e142315716064", - "registry": "npmjs" - }, - "vue-0.10.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.10.0.tgz", - "sha": "54f1eb929b53c00afe74ef8f6a44642ab50e64c9", - "registry": "npmjs" - }, - "vue-0.10.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.10.1.tgz", - "sha": "72d7a4d542e3d3d759b2ab60fc7a7cc768327278", - "registry": "npmjs" - }, - "vue-0.10.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.10.2.tgz", - "sha": "7fe8f74b103246d266137b1647fa918c4941ba87", - "registry": "npmjs" - }, - "vue-0.10.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.10.3.tgz", - "sha": "beb96bf62286b34a1db3fe0b016adce8a0b4d41a", - "registry": "npmjs" - }, - "vue-0.10.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.10.4.tgz", - "sha": "8513bcaecb6cff65d51b91c115dffb95d1b79304", - "registry": "npmjs" - }, - "vue-0.10.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.10.5.tgz", - "sha": "b026812db8c853776656e662c407f13fec0936e3", - "registry": "npmjs" - }, - "vue-0.10.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.10.6.tgz", - "sha": "47f4e8096afd099a1885a46576b8a9eb63aee2b9", - "registry": "npmjs" - }, - "vue-0.11.0-rc.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.0-rc.tgz", - "sha": "ff6791fa0fb0a46d8a1facb69a0ab518fea21893", - "registry": "npmjs" - }, - "vue-0.11.0-rc2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.0-rc2.tgz", - "sha": "84302800170010722beeb1f6c0169fb07f2ba5ad", - "registry": "npmjs" - }, - "vue-0.11.0-rc3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.0-rc3.tgz", - "sha": "a7329c5f19ebcc3eb4e951edb4cfc56c8b113e7a", - "registry": "npmjs" - }, - "vue-0.11.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.0.tgz", - "sha": "81718e27f60702f6bdaddaee91b7b29c64ca5547", - "registry": "npmjs" - }, - "vue-0.11.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.1.tgz", - "sha": "f0a9868c2db8124277ee43a75910a3c72121df7e", - "registry": "npmjs" - }, - "vue-0.11.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.2.tgz", - "sha": "b079cabcd972683f4885560bacd6b16a5c4656b5", - "registry": "npmjs" - }, - "vue-0.11.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.3.tgz", - "sha": "e77d7dd2ab12f6729d1b78c54575b3514e72d6fe", - "registry": "npmjs" - }, - "vue-0.11.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.4.tgz", - "sha": "f81897efd0ffa5de319b781e37082b50b200e59f", - "registry": "npmjs" - }, - "vue-0.11.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.5.tgz", - "sha": "aecca4cecca01662135af962935c5ae9cdd893b2", - "registry": "npmjs" - }, - "vue-0.11.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.6.tgz", - "sha": "504f0cc54a5af48e9bb3236e70825c75af71d79b", - "registry": "npmjs" - }, - "vue-0.11.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.7.tgz", - "sha": "576991d1cb376e8115d9c036690f91c44ab1bf3f", - "registry": "npmjs" - }, - "vue-0.11.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.8.tgz", - "sha": "bfe141d02920b6be16ffbe774c925dbb5a6781d8", - "registry": "npmjs" - }, - "vue-0.11.9.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.9.tgz", - "sha": "140cafdaa3771c3a2fe19de1ccbef636af272e25", - "registry": "npmjs" - }, - "vue-0.11.10.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.11.10.tgz", - "sha": "2395fb2735e49ab676a832f0db9950b10660b578", - "registry": "npmjs" - }, - "vue-0.12.0-beta1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta1.tgz", - "sha": "b9c8e72a552c240eec1a263be7c5612ddd90b022", - "registry": "npmjs" - }, - "vue-0.12.0-beta2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta2.tgz", - "sha": "e642d58e7d5e696890ee40c49f1378c4414f1720", - "registry": "npmjs" - }, - "vue-0.12.0-beta3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta3.tgz", - "sha": "5c3fffa8871492a4d87b17e4cfbd404684cb08b2", - "registry": "npmjs" - }, - "vue-0.12.0-beta4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta4.tgz", - "sha": "41053e39fbc4bdf20b0cc42a8006cf5807a532d6", - "registry": "npmjs" - }, - "vue-0.12.0-beta5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-beta5.tgz", - "sha": "492184a5d51d4c79e88799c94fce03966ab0ddf1", - "registry": "npmjs" - }, - "vue-0.12.0-rc.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-rc.tgz", - "sha": "4818f0ab510fe999dbf8b676a597444083632523", - "registry": "npmjs" - }, - "vue-0.12.0-rc2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-rc2.tgz", - "sha": "01a9ebaa56959d00e827f0ba5313110eb3a88742", - "registry": "npmjs" - }, - "vue-0.12.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0.tgz", - "sha": "ca036019f3b5cd47048ff0b57e73afbd311165f4", - "registry": "npmjs" - }, - "vue-0.12.0-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.0-csp.tgz", - "sha": "02ef952489a70697376caae57511652a9b1331de", - "registry": "npmjs" - }, - "vue-0.12.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.1.tgz", - "sha": "7b94224debeba2968aed5b4dd4b1435d668187c5", - "registry": "npmjs" - }, - "vue-0.12.1-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.1-csp.tgz", - "sha": "63629cbd69043753405d5e1f8820d1dd2b780ee8", - "registry": "npmjs" - }, - "vue-0.12.1-csp.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.1-csp.1.tgz", - "sha": "5f5aabf3b547c1e820c0ac8a19de2d8ea9fc2bf6", - "registry": "npmjs" - }, - "vue-0.12.1-csp.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.1-csp.2.tgz", - "sha": "4d30f07f9aa5696cc6ac00c3983188ca3ecaa2a5", - "registry": "npmjs" - }, - "vue-0.12.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.2.tgz", - "sha": "bcc2527e6d908bc5d843afb62a64e473c3d9af15", - "registry": "npmjs" - }, - "vue-0.12.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.3.tgz", - "sha": "a705fee53bc56dcb4f0f16f2f05d3d90b48363cd", - "registry": "npmjs" - }, - "vue-0.12.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.4.tgz", - "sha": "fd450f9407f0fb38ea8302de91f4e5911508e21f", - "registry": "npmjs" - }, - "vue-0.12.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.5.tgz", - "sha": "658b8e064400cf7c28cff5089d701b554f421071", - "registry": "npmjs" - }, - "vue-0.12.5-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.5-csp.tgz", - "sha": "b786db73c42308c11c4bf42b96bcead1ef1186b3", - "registry": "npmjs" - }, - "vue-0.12.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.6.tgz", - "sha": "eed5cd3833df7decc86a55184aa15c5434c2453f", - "registry": "npmjs" - }, - "vue-0.12.6-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.6-csp.tgz", - "sha": "1aa08e128510b8a939435dd033ec5bdfd0c1a199", - "registry": "npmjs" - }, - "vue-0.12.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.7.tgz", - "sha": "8c44077e6732e784921c1d72f74c2d1426779f9f", - "registry": "npmjs" - }, - "vue-0.12.7-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.7-csp.tgz", - "sha": "93c85aefe83ec82804f9e1382a30736855833c34", - "registry": "npmjs" - }, - "vue-0.12.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.8.tgz", - "sha": "ae47b98ef110577ae7fd13dbfcc0ad8149bfb422", - "registry": "npmjs" - }, - "vue-0.12.8-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.8-csp.tgz", - "sha": "427682d45efd3e3103d93978b785c8b4b5be71d7", - "registry": "npmjs" - }, - "vue-0.12.9.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.9.tgz", - "sha": "1dec37396694a1b2e128ce075b857e30642ede58", - "registry": "npmjs" - }, - "vue-0.12.9-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.9-csp.tgz", - "sha": "b44f5660859ac5df457fe2c5c9fdc9658c3948f4", - "registry": "npmjs" - }, - "vue-0.12.10.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.10.tgz", - "sha": "e6a0e2131568622338da3535ed5b7b93632be3ab", - "registry": "npmjs" - }, - "vue-0.12.10-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.10-csp.tgz", - "sha": "80e48b59945b9f8094fde3553bc9a6258a347bc5", - "registry": "npmjs" - }, - "vue-0.12.11.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.11.tgz", - "sha": "e7f84e3997b4456d5706106436903dd81070c1db", - "registry": "npmjs" - }, - "vue-0.12.11-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.11-csp.tgz", - "sha": "acad59aa013bc7a8fd5a291dfdccefe6f4e65ce0", - "registry": "npmjs" - }, - "vue-0.12.12.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.12.tgz", - "sha": "2964c17154dd72de58d0f2c9962759ef7135a56f", - "registry": "npmjs" - }, - "vue-0.12.12-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.12-csp.tgz", - "sha": "6d5c02160ea23fd597d7e08598330c36a732b29d", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.1.tgz", - "sha": "3fa7172b997b76821a84c610cc3c11e2f411fb94", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.2.tgz", - "sha": "1e87c501343f3ead57da4dc5157212f83d397fb4", - "registry": "npmjs" - }, - "vue-0.12.13.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.13.tgz", - "sha": "ac6b8047adb53454fa0c21335865b7949ff63477", - "registry": "npmjs" - }, - "vue-0.12.13-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.13-csp.tgz", - "sha": "479f6c581df57b1bfb8da07ca1ba92035ffaf89a", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.3.tgz", - "sha": "31081bd4587079fd134085a16489f3d27672c821", - "registry": "npmjs" - }, - "vue-0.12.14.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.14.tgz", - "sha": "fdebb07621b722c346a74b5249714f5712c3ee75", - "registry": "npmjs" - }, - "vue-0.12.14-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.14-csp.tgz", - "sha": "4c3c31ab5c3b9b916bd16a628f3cd53bcf3955d7", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.4.tgz", - "sha": "6111d4d57f7934d785326e5c8fe8fe46e675203b", - "registry": "npmjs" - }, - "vue-0.12.15.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.15.tgz", - "sha": "271bc83a4563ac44e78239288600a3eed4b558a2", - "registry": "npmjs" - }, - "vue-0.12.15-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.15-csp.tgz", - "sha": "0273cc2dd1c6458ebbcb16cec3664ab7e215d2a2", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.5.tgz", - "sha": "bd237c3e7933e5fed81fa566f560df0ffca88701", - "registry": "npmjs" - }, - "vue-1.0.0-beta.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.1.tgz", - "sha": "7c0da3586cca7716ae421a4cc84ba0f1c5f4bd76", - "registry": "npmjs" - }, - "vue-0.12.16.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.16.tgz", - "sha": "cf8e48237d7547f1bc1a1ff0070980a377478989", - "registry": "npmjs" - }, - "vue-0.12.16-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-0.12.16-csp.tgz", - "sha": "5461cb34120cab7ecaad989f5b8b8d15e3685f4e", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.6.tgz", - "sha": "74fb5345a965237d6ec8409ccb1eeeb4449e481b", - "registry": "npmjs" - }, - "vue-1.0.0-beta.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.2.tgz", - "sha": "d7f5a1c9473f6a0b6e0a477bda2c01b7428a3e42", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.7.tgz", - "sha": "8876b3feaece05e0579cfa571e2b37bffcbab9fb", - "registry": "npmjs" - }, - "vue-1.0.0-beta.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.3.tgz", - "sha": "314d96c528b8cf4ce67851503b0071bee61369a7", - "registry": "npmjs" - }, - "vue-1.0.0-alpha.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-alpha.8.tgz", - "sha": "293521d44a7265fac0843eaf209d2b43a821e41f", - "registry": "npmjs" - }, - "vue-1.0.0-beta.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-beta.4.tgz", - "sha": "5c492c1877d13ad96450f978906aa87c34a2509b", - "registry": "npmjs" - }, - "vue-1.0.0-rc.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-rc.1.tgz", - "sha": "bd5ab314dfe3a42ae3d102c2a439ff40a4ee84c5", - "registry": "npmjs" - }, - "vue-1.0.0-rc.2-migration.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-rc.2-migration.tgz", - "sha": "4afcad21145df9d6786fdf5189bb817fbc7f5a95", - "registry": "npmjs" - }, - "vue-1.0.0-rc.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-rc.2.tgz", - "sha": "85fa26706cb92cef3b85163b5f79d8b6b9a53d15", - "registry": "npmjs" - }, - "vue-1.0.0-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-csp.tgz", - "sha": "fbb448a1a9e51a2f6844cdb59eb30cbbe2ca78c9", - "registry": "npmjs" - }, - "vue-1.0.0-migration.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0-migration.tgz", - "sha": "1042d3004f6721e561f3e4adbcf2dfe4cde23cd4", - "registry": "npmjs" - }, - "vue-1.0.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.0.tgz", - "sha": "9672e208dd776a3eaf8f4164c6c0c2d496c442f1", - "registry": "npmjs" - }, - "vue-1.0.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.1.tgz", - "sha": "ef198f2d9055cac28bedf7ad6b81452492daee70", - "registry": "npmjs" - }, - "vue-1.0.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.2.tgz", - "sha": "577f2b55001dd0d8f99de867cbabb4ab579a226f", - "registry": "npmjs" - }, - "vue-1.0.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.3.tgz", - "sha": "72554202d6aedb302d0a3bcf66a2d477ff521574", - "registry": "npmjs" - }, - "vue-1.0.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.4.tgz", - "sha": "63edbea66334a19dcee96289e1193d36bfe84a2a", - "registry": "npmjs" - }, - "vue-1.0.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.5.tgz", - "sha": "77d097c430232844fe7b3971455bf48512724d27", - "registry": "npmjs" - }, - "vue-1.0.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.6.tgz", - "sha": "33d97020b756eb3d2bf164f7533b5e308d7213ec", - "registry": "npmjs" - }, - "vue-1.0.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.7.tgz", - "sha": "414aeef2428e8602cdc7492e391550c33374cf30", - "registry": "npmjs" - }, - "vue-1.0.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.8.tgz", - "sha": "f00bddff3f08edd193c98d19166eaaece6b38bc4", - "registry": "npmjs" - }, - "vue-1.0.9.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.9.tgz", - "sha": "a2a977d0e014bca89007e324d16c696839213955", - "registry": "npmjs" - }, - "vue-1.0.10.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.10.tgz", - "sha": "4a82dbe25ec1db12b1efc207869ece7b15bb85e0", - "registry": "npmjs" - }, - "vue-1.0.10-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.10-csp.tgz", - "sha": "2f3291fef280e2763601d29f59b5d7d240fba84c", - "registry": "npmjs" - }, - "vue-1.0.11.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.11.tgz", - "sha": "60c873d8869dc2c952506870848b86043588a00b", - "registry": "npmjs" - }, - "vue-1.0.11-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.11-csp.tgz", - "sha": "714edc5b9f73bc1a4dfe759ddae8209c85916227", - "registry": "npmjs" - }, - "vue-1.0.12.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.12.tgz", - "sha": "e5e55e97620ece6c3cef7b99459a2118a221fc8c", - "registry": "npmjs" - }, - "vue-1.0.12-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.12-csp.tgz", - "sha": "a034740df8d58689f80d0f2033b34243a886b58a", - "registry": "npmjs" - }, - "vue-1.0.12-csp-1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.12-csp-1.tgz", - "sha": "2eda388ca56e6d55a2f6f27875195c3d0306a927", - "registry": "npmjs" - }, - "vue-1.0.13.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.13.tgz", - "sha": "1fb4cc7d910b557226b74eefc8a42b705e922dbe", - "registry": "npmjs" - }, - "vue-1.0.13-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.13-csp.tgz", - "sha": "3af3b12b33448f4bcc025cdc38cae043c780e712", - "registry": "npmjs" - }, - "vue-1.0.14.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.14.tgz", - "sha": "ba182760325881e6e16a1f1a3a0dd07fa2e6d3d7", - "registry": "npmjs" - }, - "vue-1.0.14-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.14-csp.tgz", - "sha": "e67245e1bca561d7ee3e3e29b20694894c3b210e", - "registry": "npmjs" - }, - "vue-1.0.15.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.15.tgz", - "sha": "e532b837c100d911170001bf0bcb2490e33bae82", - "registry": "npmjs" - }, - "vue-1.0.15-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.15-csp.tgz", - "sha": "7d51d4a95d2895e43ddcda79030fc9296ceb4100", - "registry": "npmjs" - }, - "vue-1.0.16.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.16.tgz", - "sha": "fdda77e7214b3c69e0d5b1666512e5cf42da5e4f", - "registry": "npmjs" - }, - "vue-1.0.16-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.16-csp.tgz", - "sha": "d0737fa3e67356260278c8331b7f1318c339af81", - "registry": "npmjs" - }, - "vue-1.0.17.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.17.tgz", - "sha": "d205a56230eb677b7950f668b05341d6c9ab236a", - "registry": "npmjs" - }, - "vue-1.0.17-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.17-csp.tgz", - "sha": "805530361dba186a485926933547f7e9a07449e3", - "registry": "npmjs" - }, - "vue-1.0.18.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.18.tgz", - "sha": "b4a41729ccedb077de80a34dffcfc8879b16efa4", - "registry": "npmjs" - }, - "vue-1.0.18-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.18-csp.tgz", - "sha": "ec1f9781d2d63cd3fa8a037d3c7113e6933c4f4a", - "registry": "npmjs" - }, - "vue-1.0.19.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.19.tgz", - "sha": "ba4a7f7cbf959d10e91bd4cc771f0ad3e7d05fa6", - "registry": "npmjs" - }, - "vue-1.0.19-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.19-csp.tgz", - "sha": "c779efaf8d7104436c7dcd6c0ddec659147721b2", - "registry": "npmjs" - }, - "vue-1.0.20.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.20.tgz", - "sha": "8426deb6a6ba8aed998b816701e45ac4751b8e4d", - "registry": "npmjs" - }, - "vue-1.0.20-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.20-csp.tgz", - "sha": "bcc7b1bf675f60229df78be0b60db71ae90ce731", - "registry": "npmjs" - }, - "vue-1.0.21.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.21.tgz", - "sha": "81657707db75e7ce744f1e5d9b1c579a93c759cd", - "registry": "npmjs" - }, - "vue-1.0.21-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.21-csp.tgz", - "sha": "66d75d6a865731bb781ce6f8cbd7e9a7e0411fe2", - "registry": "npmjs" - }, - "vue-1.0.22.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.22.tgz", - "sha": "826c2e224b8902bbaf1dc04d68bbc5001a74ca68", - "registry": "npmjs" - }, - "vue-1.0.22-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.22-csp.tgz", - "sha": "bb1e0d541d5aaa7d5d63a1c10b30c05f4bb1ce9a", - "registry": "npmjs" - }, - "vue-1.0.23.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.23.tgz", - "sha": "70bffb41d6740828062ba2144f8e46d20348e127", - "registry": "npmjs" - }, - "vue-1.0.23-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.23-csp.tgz", - "sha": "74b566e28f4ba54dc097b8a8dc014ccf04d5b86f", - "registry": "npmjs" - }, - "vue-1.0.24.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.24.tgz", - "sha": "c8eecb25542f3bc6f0ae113288a4eef924de6b14", - "registry": "npmjs" - }, - "vue-1.0.24-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.24-csp.tgz", - "sha": "2b60f6b63b2849e68951c4266e8e2bd920dfd602", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.1.tgz", - "sha": "12effd01451e3ac316931023316c53788c0d76f0", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.2.tgz", - "sha": "26537043b44512e3a11497503be6845bb2c0da0c", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.3.tgz", - "sha": "0c2aaf1bf7ed52ab28ab1e0aea4c255eb75acea5", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.4.tgz", - "sha": "de4a5c15fb86bf907e9837b4dc7c053ef87487b0", - "registry": "npmjs" - }, - "vue-1.0.25.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.25.tgz", - "sha": "a0214b916424c1dbe0e3e46b4f9df9824c9e816a", - "registry": "npmjs" - }, - "vue-1.0.25-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.25-csp.tgz", - "sha": "a77fcd9e87aaa0f507a0c63b928f9fa96d35250c", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.5.tgz", - "sha": "a773285d166b87501838193c56e0b3b581f5c887", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.6.tgz", - "sha": "9b36b80e08e080545121f109f3f744743df08206", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.7.tgz", - "sha": "3a1dc8a126e9b473181d46ffce9f067de5a6ac8c", - "registry": "npmjs" - }, - "vue-2.0.0-alpha.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-alpha.8.tgz", - "sha": "6ad65a2caa8475fe983869ea066b06f17b04bc63", - "registry": "npmjs" - }, - "vue-1.0.26.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.26.tgz", - "sha": "89a3a81a15be8b364820dd601600744db6b1aafc", - "registry": "npmjs" - }, - "vue-1.0.26-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.26-csp.tgz", - "sha": "98e20abf3becab9793b6c3593edde3b8d694f0ee", - "registry": "npmjs" - }, - "vue-2.0.0-beta.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.1.tgz", - "sha": "fae80ffa23945cd311e5b292941280d390f31f9b", - "registry": "npmjs" - }, - "vue-2.0.0-beta.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.2.tgz", - "sha": "8d54bd51b0a6acd1d009e79815bf7bde144e3c70", - "registry": "npmjs" - }, - "vue-2.0.0-beta.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.3.tgz", - "sha": "9ea79c05a76120931c628f7a75edf2a5b7e24982", - "registry": "npmjs" - }, - "vue-2.0.0-beta.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.4.tgz", - "sha": "fda7a3f301bf1f4f6fc665c5457642a8ea419918", - "registry": "npmjs" - }, - "vue-2.0.0-beta.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.5.tgz", - "sha": "90d881a7bf5cec208b1ed9d08413107f2c126215", - "registry": "npmjs" - }, - "vue-2.0.0-beta.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.6.tgz", - "sha": "7d2e6cbded8c0a44e8957a0c6fc65522ab8b558b", - "registry": "npmjs" - }, - "vue-2.0.0-beta.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.7.tgz", - "sha": "fef963533c43374ebaf93451a8af1df29e19c3b1", - "registry": "npmjs" - }, - "vue-2.0.0-beta.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-beta.8.tgz", - "sha": "45f926ada556eb4fc500796c81e86f07e07f9c4a", - "registry": "npmjs" - }, - "vue-2.0.0-rc.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.1.tgz", - "sha": "959c855df95323bf29cc3d66ae01dcfe24c88c23", - "registry": "npmjs" - }, - "vue-2.0.0-rc.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.2.tgz", - "sha": "92f935c13127687a38207bb69e2dbb02e7c8141e", - "registry": "npmjs" - }, - "vue-2.0.0-rc.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.3.tgz", - "sha": "3aa583897ecada9b823923a67d0b03bac9d14671", - "registry": "npmjs" - }, - "vue-2.0.0-rc.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.4.tgz", - "sha": "324ab6afbdcf20b5b606d2950ca91040d152e89b", - "registry": "npmjs" - }, - "vue-2.0.0-rc.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.5.tgz", - "sha": "d743850882326c3203a9612f4e1bff4f045cc0ff", - "registry": "npmjs" - }, - "vue-2.0.0-rc.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.6.tgz", - "sha": "4572daa8aac8ef1eb48559f8ac4ab8e408e2869f", - "registry": "npmjs" - }, - "vue-1.0.27.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.27.tgz", - "sha": "f56229c87d436a661bd3bb63cc7eeb264233116e", - "registry": "npmjs" - }, - "vue-1.0.27-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.27-csp.tgz", - "sha": "7c8058e5644ea4d8702c24576a1edbf03d4823e0", - "registry": "npmjs" - }, - "vue-2.0.0-rc.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.7.tgz", - "sha": "d1549bef91986e06e50bf630ea1d3963f7ecd059", - "registry": "npmjs" - }, - "vue-1.0.28.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.28.tgz", - "sha": "ed2ff07b200bde15c87a90ef8727ceea7d38567d", - "registry": "npmjs" - }, - "vue-1.0.28-csp.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-1.0.28-csp.tgz", - "sha": "02814d502eff3e4efb6a12b882fbf3b55f1e2f1e", - "registry": "npmjs" - }, - "vue-2.0.0-rc.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0-rc.8.tgz", - "sha": "6436fe5bb75002ffa57230b413b695d29f7abcba", - "registry": "npmjs" - }, - "vue-2.0.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.0.tgz", - "sha": "2717556195650845a0141d8117ba8024ccedb2ba", - "registry": "npmjs" - }, - "vue-2.0.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.1.tgz", - "sha": "ea20979eb5440ea7da086097befd598fb548dbc1", - "registry": "npmjs" - }, - "vue-2.0.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.2.tgz", - "sha": "ae1c01ce74a5d44d41ece96b82849c11e1d45e6d", - "registry": "npmjs" - }, - "vue-2.0.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.3.tgz", - "sha": "3f7698f83d6ad1f0e35955447901672876c63fde", - "registry": "npmjs" - }, - "vue-2.0.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.4.tgz", - "sha": "26f1e3c52c74012de6a6aa58595c6706395f1fb2", - "registry": "npmjs" - }, - "vue-2.0.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.5.tgz", - "sha": "b99dc7180a802d1148a508db3d84b52c09b5ca8e", - "registry": "npmjs" - }, - "vue-2.0.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.6.tgz", - "sha": "a867c0cc2a8292d0de7dfd42e90e7627cf762ceb", - "registry": "npmjs" - }, - "vue-2.0.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.7.tgz", - "sha": "83698ef4f76ce702f425b5576b06ff28e12db143", - "registry": "npmjs" - }, - "vue-2.0.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.0.8.tgz", - "sha": "bbc191db5e1442f208604f994f03e49ac09e69d2", - "registry": "npmjs" - }, - "vue-2.1.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.0.tgz", - "sha": "293ba3efaaca846aa6bcbfac45cf8524cc597e3d", - "registry": "npmjs" - }, - "vue-2.1.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.1.tgz", - "sha": "8a1653e19a3ea4d44778893261a9f3c5a70c083b", - "registry": "npmjs" - }, - "vue-2.1.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.2.tgz", - "sha": "0f94cf1779a405a460bf945e5bc27cfc3cf64d60", - "registry": "npmjs" - }, - "vue-2.1.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.3.tgz", - "sha": "20161b8684777754fd9823134b38f13c1e197882", - "registry": "npmjs" - }, - "vue-2.1.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.4.tgz", - "sha": "d490f8fcf696847d8cf7f8eb9168e9a5dd806bfc", - "registry": "npmjs" - }, - "vue-2.1.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.5.tgz", - "sha": "d2568d3e5093cf1486eef44cf37177e3f51d568d", - "registry": "npmjs" - }, - "vue-2.1.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.6.tgz", - "sha": "2fc0024c07479ac6bc7d34a2cd5ef9ca5e90b143", - "registry": "npmjs" - }, - "vue-2.1.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.7.tgz", - "sha": "747880cb70a50c66cb8791aacfee7a6dab7fc842", - "registry": "npmjs" - }, - "vue-2.1.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.8.tgz", - "sha": "ae30aa86024fccf5535292ce414e7b4c221a1756", - "registry": "npmjs" - }, - "vue-2.1.9.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.9.tgz", - "sha": "19ad2eae01f7c9eb911e089f65ed579bbf5ab9dd", - "registry": "npmjs" - }, - "vue-2.1.10.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.1.10.tgz", - "sha": "c9235ca48c7925137be5807832ac4e3ac180427b", - "registry": "npmjs" - }, - "vue-2.2.0-beta.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.0-beta.1.tgz", - "sha": "e481b0c0af9aed0c1884c16f7cb843e57a3e4d1c", - "registry": "npmjs" - }, - "vue-2.2.0-beta.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.0-beta.2.tgz", - "sha": "4a03a307e377c58ee4f440d8100ac8b23a0e478f", - "registry": "npmjs" - }, - "vue-2.2.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.0.tgz", - "sha": "f4586920ce36d53944ab27ac5236ed9303a46b47", - "registry": "npmjs" - }, - "vue-2.2.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.1.tgz", - "sha": "ddbfd2f0caf38f374f5a36eea2e1edf25225b68e", - "registry": "npmjs" - }, - "vue-2.2.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.2.tgz", - "sha": "17ed34028a6ab4de855738a1d7beabdf409ee23f", - "registry": "npmjs" - }, - "vue-2.2.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.3.tgz", - "sha": "62174ade45f262efa4dba6f49ec613c6d2fc279c", - "registry": "npmjs" - }, - "vue-2.2.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.4.tgz", - "sha": "d0a3a050a80a12356d7950ae5a7b3131048209cc", - "registry": "npmjs" - }, - "vue-2.2.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.5.tgz", - "sha": "528eba68447d7eff99f86767b31176aa656c6963", - "registry": "npmjs" - }, - "vue-2.2.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.2.6.tgz", - "sha": "451714b394dd6d4eae7b773c40c2034a59621aed", - "registry": "npmjs" - }, - "vue-2.3.0-beta.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.3.0-beta.1.tgz", - "sha": "cea07a499c561f535ee320d623fd17a775c1591b", - "registry": "npmjs" - }, - "vue-2.3.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.3.0.tgz", - "sha": "bc44db0488c5245c788304c7683efe7b4c862d82", - "registry": "npmjs" - }, - "vue-2.3.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.3.1.tgz", - "sha": "cecc3a229160747f3fb01eb2f03dd04e82420462", - "registry": "npmjs" - }, - "vue-2.3.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.3.2.tgz", - "sha": "9e52aae3593480be235ff227557837e69f98203a", - "registry": "npmjs" - }, - "vue-2.3.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.3.3.tgz", - "sha": "d1eaa8fde5240735a4563e74f2c7fead9cbb064c", - "registry": "npmjs" - }, - "vue-2.3.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.3.4.tgz", - "sha": "5ec3b87a191da8090bbef56b7cfabd4158038171", - "registry": "npmjs" - }, - "vue-2.4.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.4.0.tgz", - "sha": "f462d15f12f73bb40d795365cf3c45431296d6f7", - "registry": "npmjs" - }, - "vue-2.4.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.4.1.tgz", - "sha": "76e0b8eee614613532216b7bfe784e0b5695b160", - "registry": "npmjs" - }, - "vue-2.4.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.4.2.tgz", - "sha": "a9855261f191c978cc0dc1150531b8d08149b58c", - "registry": "npmjs" - }, - "vue-2.4.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.4.3.tgz", - "sha": "55fee0ec509cf2e10aa73b34b15219e92a9ab9ea", - "registry": "npmjs" - }, - "vue-2.4.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.4.4.tgz", - "sha": "ea9550b96a71465fd2b8b17b61673b3561861789", - "registry": "npmjs" - }, - "vue-2.5.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.0.tgz", - "sha": "7f0706c0804257e8d42e5970e1a36e648483988d", - "registry": "npmjs" - }, - "vue-2.5.1.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.1.tgz", - "sha": "1d904b18a2bcbbfc68879f105e29d9a4dd715ff8", - "registry": "npmjs" - }, - "vue-2.5.2.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.2.tgz", - "sha": "fd367a87bae7535e47f9dc5c9ec3b496e5feb5a4", - "registry": "npmjs" - }, - "vue-2.5.3.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.3.tgz", - "sha": "e1a3b1f49b6e93e574ce040b95cbc873912fecc1", - "registry": "npmjs" - }, - "vue-2.5.4.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.4.tgz", - "sha": "4405e30b856875553e8fadb0ebf50f51ffc443f5", - "registry": "npmjs" - }, - "vue-2.5.5.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.5.tgz", - "sha": "cc3cd9b2a4f1d7356861ae0f71da0e6beb091910", - "registry": "npmjs" - }, - "vue-2.5.6.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.6.tgz", - "sha": "73654fefa4b37f25dfc657b8b834b44c90822cd7", - "registry": "npmjs" - }, - "vue-2.5.7.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.7.tgz", - "sha": "313ab26025915d9fdbc39db756548cb4bb50eb44", - "registry": "npmjs" - }, - "vue-2.5.8.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.8.tgz", - "sha": "f855c1c27255184a82225f4bef225473e8faf15b", - "registry": "npmjs" - }, - "vue-2.5.9.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.9.tgz", - "sha": "b2380cd040915dca69881dafd121d760952e65f7", - "registry": "npmjs" - }, - "vue-2.5.10.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.10.tgz", - "sha": "dcd772e2594ba994145f2f09522149d9a1e7841a", - "registry": "npmjs" - }, - "vue-2.5.11.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.11.tgz", - "sha": "80ca2657aa81f03545cd8dd5a2f55454641e6405", - "registry": "npmjs" - }, - "vue-2.5.12.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.12.tgz", - "sha": "88bb58307b51d9dd9f772019765c0d110da816e7", - "registry": "npmjs" - }, - "vue-2.5.13.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.13.tgz", - "sha": "95bd31e20efcf7a7f39239c9aa6787ce8cf578e1", - "registry": "npmjs" - }, - "vue-2.5.14.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.14.tgz", - "sha": "74cb248a471053939abf6cdf2c406d4c311ab5a7", - "registry": "npmjs" - }, - "vue-2.5.15.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.15.tgz", - "sha": "fdb67861dde967cd8d1b53116380f2f269b45202", - "registry": "npmjs" - }, - "vue-2.5.16.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz", - "sha": "07edb75e8412aaeed871ebafa99f4672584a0085", - "registry": "npmjs" - }, - "vue-2.5.17-beta.0.tgz": { - "url": "https://registry.npmjs.org/vue/-/vue-2.5.17-beta.0.tgz", - "sha": "b9985447818827306beee146923a1bd64f1bb834", - "registry": "npmjs" - } - }, - "_attachments": {}, - "_rev": "17-ad64c6287118d7af", - "readme": "

\"Vue

\n\n

\n \"Build\n \"Coverage\n \"Downloads\"\n \"Version\"\n \"License\"\n \"Chat\"\n
\n \"Sauce\n

\n\n

Supporting Vue.js

\n\nVue.js is an MIT-licensed open source project. It's an independent project with its ongoing development made possible entirely thanks to the support by these awesome [backers](https://github.com/vuejs/vue/blob/dev/BACKERS.md). If you'd like to join them, please consider:\n\n- [Become a backer or sponsor on Patreon](https://www.patreon.com/evanyou).\n- [Become a backer or sponsor on Open Collective](https://opencollective.com/vuejs).\n- [One-time donation via PayPal or crypto-currencies.](https://vuejs.org/support-vuejs/#One-time-Donations)\n\n#### What's the difference between Patreon and OpenCollective?\n\nFunds donated via Patreon go directly to support Evan You's full-time work on Vue.js. Funds donated via OpenCollective are managed with transparent expenses and will be used for compensating work and expenses for core team members or sponsoring community events. Your name/logo will receive proper recognition and exposure by donating on either platform.\n\n

Special Sponsors

\n\n\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n

Sponsors via Patreon

\n\n

Platinum

\n\n\n\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n

Gold

\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n\n

Sponsors via Open Collective

\n\n

Platinum

\n\n\n\n\n

Gold

\n\n\n\n\n\n\n\n---\n\n## Introduction\n\nVue (pronounced `/vjuː/`, like view) is a **progressive framework** for building user interfaces. It is designed from the ground up to be incrementally adoptable, and can easily scale between a library and a framework depending on different use cases. It consists of an approachable core library that focuses on the view layer only, and an ecosystem of supporting libraries that helps you tackle complexity in large Single-Page Applications.\n\n#### Browser Compatibility\n\nVue.js supports all browsers that are [ES5-compliant](http://kangax.github.io/compat-table/es5/) (IE8 and below are not supported).\n\n## Ecosystem\n\n| Project | Status | Description |\n|---------|--------|-------------|\n| [vue-router] | [![vue-router-status]][vue-router-package] | Single-page application routing |\n| [vuex] | [![vuex-status]][vuex-package] | Large-scale state management |\n| [vue-cli] | [![vue-cli-status]][vue-cli-package] | Project scaffolding |\n| [vue-loader] | [![vue-loader-status]][vue-loader-package] | Single File Component (`*.vue` file) loader for webpack |\n| [vue-server-renderer] | [![vue-server-renderer-status]][vue-server-renderer-package] | Server-side rendering support |\n| [vue-class-component] | [![vue-class-component-status]][vue-class-component-package] | TypeScript decorator for a class-based API |\n| [vue-rx] | [![vue-rx-status]][vue-rx-package] | RxJS integration |\n| [vue-devtools] | [![vue-devtools-status]][vue-devtools-package] | Browser DevTools extension |\n\n[vue-router]: https://github.com/vuejs/vue-router\n[vuex]: https://github.com/vuejs/vuex\n[vue-cli]: https://github.com/vuejs/vue-cli\n[vue-loader]: https://github.com/vuejs/vue-loader\n[vue-server-renderer]: https://github.com/vuejs/vue/tree/dev/packages/vue-server-renderer\n[vue-class-component]: https://github.com/vuejs/vue-class-component\n[vue-rx]: https://github.com/vuejs/vue-rx\n[vue-devtools]: https://github.com/vuejs/vue-devtools\n\n[vue-router-status]: https://img.shields.io/npm/v/vue-router.svg\n[vuex-status]: https://img.shields.io/npm/v/vuex.svg\n[vue-cli-status]: https://img.shields.io/npm/v/vue-cli.svg\n[vue-loader-status]: https://img.shields.io/npm/v/vue-loader.svg\n[vue-server-renderer-status]: https://img.shields.io/npm/v/vue-server-renderer.svg\n[vue-class-component-status]: https://img.shields.io/npm/v/vue-class-component.svg\n[vue-rx-status]: https://img.shields.io/npm/v/vue-rx.svg\n[vue-devtools-status]: https://img.shields.io/chrome-web-store/v/nhdogjmejiglipccpnnnanhbledajbpd.svg\n\n[vue-router-package]: https://npmjs.com/package/vue-router\n[vuex-package]: https://npmjs.com/package/vuex\n[vue-cli-package]: https://npmjs.com/package/vue-cli\n[vue-loader-package]: https://npmjs.com/package/vue-loader\n[vue-server-renderer-package]: https://npmjs.com/package/vue-server-renderer\n[vue-class-component-package]: https://npmjs.com/package/vue-class-component\n[vue-rx-package]: https://npmjs.com/package/vue-rx\n[vue-devtools-package]: https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd\n\n## Documentation\n\nTo check out [live examples](https://vuejs.org/v2/examples/) and docs, visit [vuejs.org](https://vuejs.org).\n\n## Questions\n\nFor questions and support please use the [the official forum](http://forum.vuejs.org) or [community chat](https://chat.vuejs.org/). The issue list of this repo is **exclusively** for bug reports and feature requests.\n\n## Issues\n\nPlease make sure to read the [Issue Reporting Checklist](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#issue-reporting-guidelines) before opening an issue. Issues not conforming to the guidelines may be closed immediately.\n\n## Changelog\n\nDetailed changes for each release are documented in the [release notes](https://github.com/vuejs/vue/releases).\n\n## Stay In Touch\n\n- [Twitter](https://twitter.com/vuejs)\n- [Blog](https://medium.com/the-vue-point)\n- [Job Board](https://vuejobs.com/?ref=vuejs)\n\n## Contribution\n\nPlease make sure to read the [Contributing Guide](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md) before making a pull request. If you have a Vue-related project/component/tool, add it with a pull request to [this curated list](https://github.com/vuejs/awesome-vue)!\n\nThank you to all the people who already contributed to Vue!\n\n\n\n\n## License\n\n[MIT](http://opensource.org/licenses/MIT)\n\nCopyright (c) 2013-present, Yuxi (Evan) You" -} \ No newline at end of file diff --git a/test/unit/partials/plugin/authenticate.fail.js b/test/unit/partials/plugin/authenticate.fail.js deleted file mode 100644 index db36a0f02..000000000 --- a/test/unit/partials/plugin/authenticate.fail.js +++ /dev/null @@ -1,11 +0,0 @@ -import { getInternalError } from '@verdaccio/commons-api'; - -module.exports = function ( ) { - return { - authenticate( user, pass, callback ) { - // we return an 500 error, the second argument must be false. - // https://verdaccio.org/docs/en/dev-plugins#onerror - callback(getInternalError(), false); - } - }; -}; diff --git a/test/unit/partials/plugin/authenticate.passthroug.js b/test/unit/partials/plugin/authenticate.passthroug.js deleted file mode 100644 index 24fa44b99..000000000 --- a/test/unit/partials/plugin/authenticate.passthroug.js +++ /dev/null @@ -1,10 +0,0 @@ - -module.exports = function ( ) { - return { - authenticate( user, pass, callback ) { - /* user and pass are used here to forward errors - and success types respectively for testing purposes */ - callback(user, pass); - } - }; -}; diff --git a/test/unit/partials/plugin/authenticate.success.js b/test/unit/partials/plugin/authenticate.success.js deleted file mode 100644 index e58235651..000000000 --- a/test/unit/partials/plugin/authenticate.success.js +++ /dev/null @@ -1,10 +0,0 @@ - -module.exports = function ( ) { - return { - authenticate( user, pass, callback ) { - // https://verdaccio.org/docs/en/dev-plugins#onsuccess - // this is a successful login and return a simple group - callback(null, ['test']); - } - }; -}; diff --git a/test/unit/partials/publish-api.js b/test/unit/partials/publish-api.js deleted file mode 100644 index 13da4e7bf..000000000 --- a/test/unit/partials/publish-api.js +++ /dev/null @@ -1,53 +0,0 @@ -const json = { - "_id": "@scope\/pk1-test", - "name": "@scope\/pk1-test", - "description": "", - "dist-tags": { - "latest": "1.0.6" - }, - "versions": { - "1.0.6": { - "name": "@scope\/pk1-test", - "version": "1.0.6", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": { - "name": "User NPM", - "email": "user@domain.com" - }, - "license": "ISC", - "dependencies": { - "verdaccio": "^2.7.2" - }, - "readme": "# test", - "readmeFilename": "README.md", - "_id": "@scope\/pk1-test@1.0.6", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-6gHiERpiDgtb3hjqpQH5\/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==", - "shasum": "2c03764f651a9f016ca0b7620421457b619151b9", - "tarball": "http:\/\/localhost:5555\/@scope\/pk1-test\/-\/@scope\/pk1-test-1.0.6.tgz" - } - } - }, - "readme": "# test", - "_attachments": { - "@scope\/pk1-test-1.0.6.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAE+2W32vbMBDH85y\/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo\/\/79KPeQsnIw5KUDX\/9IOvurLuz\/DHSjK\/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF\/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI\/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS\/pLQe+D+FIv\/agIWI6GX66kFuIhT+1gDjrp\/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0\/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi\/IHpU9fz3\/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6\/f88f\/Pu47zomiPk2Lv\/dOv8h+P\/34\/D\/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=", - "length": 512 - } - } -} - -module.exports = json; diff --git a/test/unit/partials/readme/ascii.adoc b/test/unit/partials/readme/ascii.adoc deleted file mode 100644 index 835fdf026..000000000 --- a/test/unit/partials/readme/ascii.adoc +++ /dev/null @@ -1,12 +0,0 @@ -= Hello, AsciiDoc! -Doc Writer - -An introduction to http://asciidoc.org[AsciiDoc]. - -== First Section - -* item 1 -* item 2 - -[source,ruby] -puts "Hello, World!" \ No newline at end of file diff --git a/test/unit/partials/readme/markdown.md b/test/unit/partials/readme/markdown.md deleted file mode 100644 index f7e806392..000000000 --- a/test/unit/partials/readme/markdown.md +++ /dev/null @@ -1,81 +0,0 @@ -# Project Title - -One Paragraph of project description goes here - -## Getting Started - -These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system. - -### Prerequisites - -What things you need to install the software and how to install them - -``` -Give examples -``` - -### Installing - -A step by step series of examples that tell you how to get a development env running - -Say what the step will be - -``` -Give the example -``` - -And repeat - -``` -until finished -``` - -End with an example of getting some data out of the system or using it for a little demo - -## Running the tests - -Explain how to run the automated tests for this system - -### Break down into end to end tests - -Explain what these tests test and why - -``` -Give an example -``` - -### And coding style tests - -Explain what these tests test and why - -``` -Give an example -``` - -## Deployment - -Add additional notes about how to deploy this on a live system - -## Built With - -* The web framework used -* Dependency Management -* Used to generate RSS Feeds - -## Contributing - -Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. - -## Versioning - -We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags). - -## License - -This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details - -## Acknowledgments - -* Hat tip to anyone whose code was used -* Inspiration -* etc diff --git a/test/unit/partials/storage/verdaccio-corrupted.db.json b/test/unit/partials/storage/verdaccio-corrupted.db.json deleted file mode 100644 index 9950bb074..000000000 --- a/test/unit/partials/storage/verdaccio-corrupted.db.json +++ /dev/null @@ -1 +0,0 @@ -{"list"[],"secret":"14705eeaed167749990dafa07f908d2a9504bfdb0f6ca4102eed5acba0bc9076"} diff --git a/test/unit/partials/storage/verdaccio.db.json b/test/unit/partials/storage/verdaccio.db.json deleted file mode 100644 index 3759b48f0..000000000 --- a/test/unit/partials/storage/verdaccio.db.json +++ /dev/null @@ -1 +0,0 @@ -{"list":["@verdaccio/test"],"secret":"48cd053de97d4ef34aea4f1efb902334442bea1e735df5fdc9424c986a281b3d"} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 2a10c0a5b..000000000 --- a/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "commonjs", - "declaration": true, - "noImplicitAny": false, - "strict": true, - "strictNullChecks": true, - "resolveJsonModule": true, - "outDir": "lib", - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "typeRoots": [ - "./node_modules/@verdaccio/types/lib/verdaccio", - "./node_modules/@types", - "./types/custom.d.ts" - ] - }, - "exclude": [ - "node_modules" - ], - "include": [ - "src/**/*.ts", - "test/**/*.ts", - "types/*.d.ts" - ] -} diff --git a/types/custom.d.ts b/types/custom.d.ts deleted file mode 100644 index 733e88c70..000000000 --- a/types/custom.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Logger, RemoteUser } from "@verdaccio/types"; - -declare global { - namespace Express { - export interface Request { - remote_user: RemoteUser; - log: Logger; - } - - export interface Response { - report_error: any; - _verdaccio_error: any; - socket?: any; - } - } -} diff --git a/types/index.ts b/types/index.ts deleted file mode 100644 index 5b9742305..000000000 --- a/types/index.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { - IBasicAuth, - IBasicStorage, - IStorageManager, - UpLinkConf, - Callback, - Versions, - Version, - RemoteUser, - Config, - Logger, - JWTSignOptions, - PackageAccess, - IPluginStorage, - StringValue as verdaccio$StringValue, - IReadTarball, - Package, - IPluginStorageFilter, - Author, - AuthPluginPackage, - Token, - ITokenActions, - TokenFilter -} from '@verdaccio/types'; -import lunrMutable from 'lunr-mutable-indexes'; -import {NextFunction, Request, Response} from 'express'; - -export type StringValue = verdaccio$StringValue; - -export interface StartUpConfig { - storage: string; - plugins?: string; - self_path: string; -} - -// legacy should be removed in long term - -export interface LegacyPackageList { - [key: string]: LegacyPackageAccess; -} - -export type LegacyPackageAccess = PackageAccess & { - allow_publish?: string[]; - allow_proxy?: string[]; - allow_access?: string[]; - proxy_access?: string[]; - // FIXME: should be published on @verdaccio/types - unpublish?: string[]; -} - -export type MatchedPackage = PackageAccess | void; - -export type JWTPayload = RemoteUser & { - password?: string; -} - -export interface AESPayload { - user: string; - password: string; -} - -export interface AuthTokenHeader { - scheme: string; - token: string; -} - -export type BasicPayload = AESPayload | void; -export type AuthMiddlewarePayload = RemoteUser | BasicPayload; - -export interface ProxyList { - [key: string]: IProxy; -} - -export interface CookieSessionToken { - expires: Date; -} - -export interface Utils { - ErrorCode: any; - getLatestVersion: Callback; - isObject: (value: any) => boolean; - validate_name: (value: any) => boolean; - tag_version: (value: any, version: string, tag: string) => void; - normalizeDistTags: (pkg: Package) => void; - semverSort: (keys: string[]) => string[]; -} - -export interface Profile { - tfa: boolean; - name: string; - email: string; - email_verified: string; - created: string; - updated: string; - cidr_whitelist: any; - fullname: string; -} - -export type $RequestExtend = Request & {remote_user?: any; log: Logger} -export type $ResponseExtend = Response & {cookies?: any} -export type $NextFunctionVer = NextFunction & any; -export type $SidebarPackage = Package & {latest: any} - -export interface IAuthWebUI { - jwtEncrypt(user: RemoteUser, signOptions: JWTSignOptions): Promise; - aesEncrypt(buf: Buffer): Buffer; -} - -interface IAuthMiddleware { - apiJWTmiddleware(): $NextFunctionVer; - webUIJWTmiddleware(): $NextFunctionVer; -} - -export interface IAuth extends IBasicAuth, IAuthMiddleware, IAuthWebUI { - config: Config; - logger: Logger; - secret: string; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - plugins: any[]; - allow_unpublish(pkg: AuthPluginPackage, user: RemoteUser, callback: Callback): void; -} - -export interface IWebSearch { - index: lunrMutable.index; - storage: IStorageHandler; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - query(query: string): any; - add(pkg: Version): void; - remove(name: string): void; - reindex(): void; - configureStorage(storage: IStorageHandler): void; -} - -// FIXME: This prop should be on @verdaccio/types -export type UpLinkConfLocal = UpLinkConf & { - no_proxy?: string; -}; - -export interface IProxy { - config: UpLinkConfLocal; - failed_requests: number; - userAgent: string; - ca?: string | void; - logger: Logger; - server_id: string; - url: any; - maxage: number; - timeout: number; - max_fails: number; - fail_timeout: number; - upname: string; - fetchTarball(url: string): IReadTarball; - isUplinkValid(url: string): boolean; - search(options: any); - getRemoteMetadata(name: string, options: any, callback: Callback): void; -} - -export interface IStorage extends IBasicStorage, ITokenActions { - config: Config; - storagePlugin: IPluginStorage; - logger: Logger; -} - -export interface IGetPackageOptions { - callback: Callback; - name: string; - keepUpLinkData: boolean; - uplinksLook: boolean; - req: any; -} - -export interface ISyncUplinks { - uplinksLook?: boolean; - etag?: string; - req?: Request; -} - -export type IPluginFilters = IPluginStorageFilter[]; - -export interface IStorageHandler extends IStorageManager, ITokenActions { - config: Config; - localStorage: IStorage | null; - filters: IPluginFilters; - uplinks: ProxyList; - init(config: Config, filters: IPluginFilters): Promise; - saveToken(token: Token): Promise; - deleteToken(user: string, tokenKey: string): Promise; - readTokens(filter: TokenFilter): Promise; - _syncUplinksMetadata(name: string, packageInfo: Package, options: any, callback: Callback): void; - _updateVersionsHiddenUpLink(versions: Versions, upLink: IProxy): void; -} - -/** - * @property { string | number | Styles } [ruleOrSelector] - */ -export interface Styles { - [ruleOrSelector: string]: string | number | Styles; -} - -export type AuthorAvatar = Author & { avatar?: string }; - diff --git a/wiki/README.md b/wiki/README.md deleted file mode 100644 index 14ac21c6a..000000000 --- a/wiki/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Docs - -Documentation was moved to [https://www.verdaccio.org](https://www.verdaccio.org/docs/en/installation.html) diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 54d37a043..000000000 Binary files a/yarn.lock and /dev/null differ

>>0)Xe();else{A[o+16>>2]=g;A[g+24>>2]=o;break}}while(0);g=A[f+(C+I)>>2]|0;if(!g)break;if(g>>>0<(A[1210]|0)>>>0)Xe();else{A[o+20>>2]=g;A[g+24>>2]=o;break}}else{o=A[f+((h|8)+d)>>2]|0;C=A[f+(d+12+h)>>2]|0;m=4864+(E<<1<<2)|0;do{if((o|0)!=(m|0)){if(o>>>0>>0)Xe();if((A[o+12>>2]|0)==(p|0))break;Xe()}}while(0);if((C|0)==(o|0)){A[1206]=A[1206]&~(1<>>0>>0)Xe();I=C+8|0;if((A[I>>2]|0)==(p|0)){g=I;break}Xe()}}while(0);A[o+12>>2]=C;A[g>>2]=o}}while(0);p=f+((e|h)+d)|0;u=e+u|0}o=p+4|0;A[o>>2]=A[o>>2]&-2;A[f+(c+4)>>2]=u|1;A[f+(u+c)>>2]=u;o=u>>>3;if(u>>>0<256){g=o<<1;r=4864+(g<<2)|0;u=A[1206]|0;o=1<>2]|0;if(o>>>0>=(A[1210]|0)>>>0){i=g;n=o;break}Xe()}}while(0);A[i>>2]=a;A[n+12>>2]=a;A[f+(c+8)>>2]=n;A[f+(c+12)>>2]=r;break}n=u>>>8;do{if(!n)n=0;else{if(u>>>0>16777215){n=31;break}F=(n+1048320|0)>>>16&8;R=n<>>16&4;R=R<>>16&2;n=14-(N|F|n)+(R<>>15)|0;n=u>>>(n+7|0)&1|n<<1}}while(0);g=5128+(n<<2)|0;A[f+(c+28)>>2]=n;A[f+(c+20)>>2]=0;A[f+(c+16)>>2]=0;o=A[1207]|0;i=1<>2]=a;A[f+(c+24)>>2]=g;A[f+(c+12)>>2]=a;A[f+(c+8)>>2]=a;break}i=A[g>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;r:do{if((A[i+4>>2]&-8|0)!=(u|0)){n=u<>>31<<2)+16|0;g=A[o>>2]|0;if(!g)break;if((A[g+4>>2]&-8|0)==(u|0)){r=g;break r}else{n=n<<1;i=g}}if(o>>>0<(A[1210]|0)>>>0)Xe();else{A[o>>2]=a;A[f+(c+24)>>2]=i;A[f+(c+12)>>2]=a;A[f+(c+8)>>2]=a;break t}}else r=i}while(0);n=r+8|0;i=A[n>>2]|0;R=A[1210]|0;if(r>>>0>=R>>>0&i>>>0>=R>>>0){A[i+12>>2]=a;A[n>>2]=a;A[f+(c+8)>>2]=i;A[f+(c+12)>>2]=r;A[f+(c+24)>>2]=0;break}else Xe()}else{R=(A[1209]|0)+u|0;A[1209]=R;A[1212]=a;A[f+(c+4)>>2]=R|1}}while(0);R=f+(s|8)|0;l=t;return R|0}n=5272|0;while(1){r=A[n>>2]|0;if(r>>>0<=C>>>0?(h=A[n+4>>2]|0,u=r+h|0,u>>>0>C>>>0):0)break;n=A[n+8>>2]|0}n=r+(h+-39)|0;if(!(n&7))n=0;else n=0-n&7;r=r+(h+-47+n)|0;r=r>>>0<(C+16|0)>>>0?C:r;n=r+8|0;i=f+8|0;if(!(i&7))i=0;else i=0-i&7;R=d+-40-i|0;A[1212]=f+i;A[1209]=R;A[f+(i+4)>>2]=R|1;A[f+(d+-36)>>2]=40;A[1213]=A[1328];A[r+4>>2]=27;A[n+0>>2]=A[1318];A[n+4>>2]=A[1319];A[n+8>>2]=A[1320];A[n+12>>2]=A[1321];A[1318]=f;A[1319]=d;A[1321]=0;A[1320]=n;n=r+28|0;A[n>>2]=7;if((r+32|0)>>>0>>0)do{R=n;n=n+4|0;A[n>>2]=7}while((R+8|0)>>>0>>0);if((r|0)!=(C|0)){r=r-C|0;n=C+(r+4)|0;A[n>>2]=A[n>>2]&-2;A[C+4>>2]=r|1;A[C+r>>2]=r;n=r>>>3;if(r>>>0<256){i=n<<1;r=4864+(i<<2)|0;o=A[1206]|0;n=1<>2]|0;if(n>>>0>=(A[1210]|0)>>>0){c=i;a=n;break}Xe()}}while(0);A[c>>2]=C;A[a+12>>2]=C;A[C+8>>2]=a;A[C+12>>2]=r;break}n=r>>>8;if(n)if(r>>>0>16777215)n=31;else{F=(n+1048320|0)>>>16&8;R=n<>>16&4;R=R<>>16&2;n=14-(N|F|n)+(R<>>15)|0;n=r>>>(n+7|0)&1|n<<1}else n=0;a=5128+(n<<2)|0;A[C+28>>2]=n;A[C+20>>2]=0;A[C+16>>2]=0;i=A[1207]|0;o=1<>2]=C;A[C+24>>2]=a;A[C+12>>2]=C;A[C+8>>2]=C;break}i=A[a>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((A[i+4>>2]&-8|0)!=(r|0)){n=r<>>31<<2)+16|0;o=A[i>>2]|0;if(!o)break;if((A[o+4>>2]&-8|0)==(r|0)){s=o;break t}else{n=n<<1;a=o}}if(i>>>0<(A[1210]|0)>>>0)Xe();else{A[i>>2]=C;A[C+24>>2]=a;A[C+12>>2]=C;A[C+8>>2]=C;break e}}else s=i}while(0);n=s+8|0;r=A[n>>2]|0;R=A[1210]|0;if(s>>>0>=R>>>0&r>>>0>=R>>>0){A[r+12>>2]=C;A[n>>2]=C;A[C+8>>2]=r;A[C+12>>2]=s;A[C+24>>2]=0;break}else Xe()}}else{R=A[1210]|0;if((R|0)==0|f>>>0>>0)A[1210]=f;A[1318]=f;A[1319]=d;A[1321]=0;A[1215]=A[1324];A[1214]=-1;r=0;do{R=r<<1;F=4864+(R<<2)|0;A[4864+(R+3<<2)>>2]=F;A[4864+(R+2<<2)>>2]=F;r=r+1|0}while((r|0)!=32);r=f+8|0;if(!(r&7))r=0;else r=0-r&7;R=d+-40-r|0;A[1212]=f+r;A[1209]=R;A[f+(r+4)>>2]=R|1;A[f+(d+-36)>>2]=40;A[1213]=A[1328]}}while(0);r=A[1209]|0;if(r>>>0>e>>>0){F=r-e|0;A[1209]=F;R=A[1212]|0;A[1212]=R+e;A[R+(e+4)>>2]=F|1;A[R+4>>2]=e|3;R=R+8|0;l=t;return R|0}}A[(Ge()|0)>>2]=12;R=0;l=t;return R|0}function On(e){e=e|0;var t=0,r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0,y=0;t=l;if(!e){l=t;return}d=e+-8|0;C=A[1210]|0;if(d>>>0>>0)Xe();h=A[e+-4>>2]|0;u=h&3;if((u|0)==1)Xe();a=h&-8;s=e+(a+-8)|0;do{if(!(h&1)){m=A[d>>2]|0;if(!u){l=t;return}d=-8-m|0;h=e+d|0;u=m+a|0;if(h>>>0>>0)Xe();if((h|0)==(A[1211]|0)){n=e+(a+-4)|0;p=A[n>>2]|0;if((p&3|0)!=3){n=h;p=u;break}A[1208]=u;A[n>>2]=p&-2;A[e+(d+4)>>2]=u|1;A[s>>2]=u;l=t;return}E=m>>>3;if(m>>>0<256){n=A[e+(d+8)>>2]|0;p=A[e+(d+12)>>2]|0;f=4864+(E<<1<<2)|0;if((n|0)!=(f|0)){if(n>>>0>>0)Xe();if((A[n+12>>2]|0)!=(h|0))Xe()}if((p|0)==(n|0)){A[1206]=A[1206]&~(1<>>0>>0)Xe();f=p+8|0;if((A[f>>2]|0)==(h|0))I=f;else Xe()}else I=p+8|0;A[n+12>>2]=p;A[I>>2]=n;n=h;p=u;break}I=A[e+(d+24)>>2]|0;E=A[e+(d+12)>>2]|0;do{if((E|0)==(h|0)){m=e+(d+20)|0;E=A[m>>2]|0;if(!E){m=e+(d+16)|0;E=A[m>>2]|0;if(!E){f=0;break}}while(1){B=E+20|0;y=A[B>>2]|0;if(y){E=y;m=B;continue}B=E+16|0;y=A[B>>2]|0;if(!y)break;else{E=y;m=B}}if(m>>>0>>0)Xe();else{A[m>>2]=0;f=E;break}}else{m=A[e+(d+8)>>2]|0;if(m>>>0>>0)Xe();C=m+12|0;if((A[C>>2]|0)!=(h|0))Xe();B=E+8|0;if((A[B>>2]|0)==(h|0)){A[C>>2]=E;A[B>>2]=m;f=E;break}else Xe()}}while(0);if(I){C=A[e+(d+28)>>2]|0;E=5128+(C<<2)|0;if((h|0)==(A[E>>2]|0)){A[E>>2]=f;if(!f){A[1207]=A[1207]&~(1<>>0<(A[1210]|0)>>>0)Xe();C=I+16|0;if((A[C>>2]|0)==(h|0))A[C>>2]=f;else A[I+20>>2]=f;if(!f){n=h;p=u;break}}C=A[1210]|0;if(f>>>0>>0)Xe();A[f+24>>2]=I;I=A[e+(d+16)>>2]|0;do{if(I)if(I>>>0>>0)Xe();else{A[f+16>>2]=I;A[I+24>>2]=f;break}}while(0);d=A[e+(d+20)>>2]|0;if(d)if(d>>>0<(A[1210]|0)>>>0)Xe();else{A[f+20>>2]=d;A[d+24>>2]=f;n=h;p=u;break}else{n=h;p=u}}else{n=h;p=u}}else{n=d;p=a}}while(0);if(n>>>0>=s>>>0)Xe();u=e+(a+-4)|0;h=A[u>>2]|0;if(!(h&1))Xe();if(!(h&2)){if((s|0)==(A[1212]|0)){y=(A[1209]|0)+p|0;A[1209]=y;A[1212]=n;A[n+4>>2]=y|1;if((n|0)!=(A[1211]|0)){l=t;return}A[1211]=0;A[1208]=0;l=t;return}if((s|0)==(A[1211]|0)){y=(A[1208]|0)+p|0;A[1208]=y;A[1211]=n;A[n+4>>2]=y|1;A[n+y>>2]=y;l=t;return}p=(h&-8)+p|0;u=h>>>3;do{if(h>>>0>=256){g=A[e+(a+16)>>2]|0;u=A[e+(a|4)>>2]|0;do{if((u|0)==(s|0)){h=e+(a+12)|0;u=A[h>>2]|0;if(!u){h=e+(a+8)|0;u=A[h>>2]|0;if(!u){c=0;break}}while(1){d=u+20|0;f=A[d>>2]|0;if(f){u=f;h=d;continue}f=u+16|0;d=A[f>>2]|0;if(!d)break;else{u=d;h=f}}if(h>>>0<(A[1210]|0)>>>0)Xe();else{A[h>>2]=0;c=u;break}}else{h=A[e+a>>2]|0;if(h>>>0<(A[1210]|0)>>>0)Xe();f=h+12|0;if((A[f>>2]|0)!=(s|0))Xe();d=u+8|0;if((A[d>>2]|0)==(s|0)){A[f>>2]=u;A[d>>2]=h;c=u;break}else Xe()}}while(0);if(g){u=A[e+(a+20)>>2]|0;h=5128+(u<<2)|0;if((s|0)==(A[h>>2]|0)){A[h>>2]=c;if(!c){A[1207]=A[1207]&~(1<>>0<(A[1210]|0)>>>0)Xe();u=g+16|0;if((A[u>>2]|0)==(s|0))A[u>>2]=c;else A[g+20>>2]=c;if(!c)break}s=A[1210]|0;if(c>>>0>>0)Xe();A[c+24>>2]=g;g=A[e+(a+8)>>2]|0;do{if(g)if(g>>>0>>0)Xe();else{A[c+16>>2]=g;A[g+24>>2]=c;break}}while(0);s=A[e+(a+12)>>2]|0;if(s)if(s>>>0<(A[1210]|0)>>>0)Xe();else{A[c+20>>2]=s;A[s+24>>2]=c;break}}}else{c=A[e+a>>2]|0;a=A[e+(a|4)>>2]|0;e=4864+(u<<1<<2)|0;if((c|0)!=(e|0)){if(c>>>0<(A[1210]|0)>>>0)Xe();if((A[c+12>>2]|0)!=(s|0))Xe()}if((a|0)==(c|0)){A[1206]=A[1206]&~(1<>>0<(A[1210]|0)>>>0)Xe();e=a+8|0;if((A[e>>2]|0)==(s|0))g=e;else Xe()}else g=a+8|0;A[c+12>>2]=a;A[g>>2]=c}}while(0);A[n+4>>2]=p|1;A[n+p>>2]=p;if((n|0)==(A[1211]|0)){A[1208]=p;l=t;return}}else{A[u>>2]=h&-2;A[n+4>>2]=p|1;A[n+p>>2]=p}s=p>>>3;if(p>>>0<256){a=s<<1;r=4864+(a<<2)|0;c=A[1206]|0;s=1<>2]|0;if(s>>>0<(A[1210]|0)>>>0)Xe();else{i=a;o=s}}else{A[1206]=c|s;i=4864+(a+2<<2)|0;o=r}A[i>>2]=n;A[o+12>>2]=n;A[n+8>>2]=o;A[n+12>>2]=r;l=t;return}i=p>>>8;if(i)if(p>>>0>16777215)i=31;else{B=(i+1048320|0)>>>16&8;y=i<>>16&4;y=y<>>16&2;i=14-(m|B|i)+(y<>>15)|0;i=p>>>(i+7|0)&1|i<<1}else i=0;o=5128+(i<<2)|0;A[n+28>>2]=i;A[n+20>>2]=0;A[n+16>>2]=0;a=A[1207]|0;s=1<>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;t:do{if((A[o+4>>2]&-8|0)!=(p|0)){i=p<>>31<<2)+16|0;s=A[a>>2]|0;if(!s)break;if((A[s+4>>2]&-8|0)==(p|0)){r=s;break t}else{i=i<<1;o=s}}if(a>>>0<(A[1210]|0)>>>0)Xe();else{A[a>>2]=n;A[n+24>>2]=o;A[n+12>>2]=n;A[n+8>>2]=n;break e}}else r=o}while(0);o=r+8|0;i=A[o>>2]|0;y=A[1210]|0;if(r>>>0>=y>>>0&i>>>0>=y>>>0){A[i+12>>2]=n;A[o>>2]=n;A[n+8>>2]=i;A[n+12>>2]=r;A[n+24>>2]=0;break}else Xe()}else{A[1207]=a|s;A[o>>2]=n;A[n+24>>2]=o;A[n+12>>2]=n;A[n+8>>2]=n}}while(0);y=(A[1214]|0)+-1|0;A[1214]=y;if(!y)r=5280|0;else{l=t;return}while(1){r=A[r>>2]|0;if(!r)break;else r=r+8|0}A[1214]=-1;l=t;return}function Yn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0;r=l;do{if(e){if(t>>>0>4294967231){A[(Ge()|0)>>2]=12;n=0;break}if(t>>>0<11)n=16;else n=t+11&-8;n=ei(e+-8|0,n)|0;if(n){n=n+8|0;break}n=Tn(t)|0;if(!n)n=0;else{i=A[e+-4>>2]|0;i=(i&-8)-((i&3|0)==0?8:4)|0;gi(n|0,e|0,(i>>>0>>0?i:t)|0)|0;On(e)}}else n=Tn(t)|0}while(0);l=r;return n|0}function jn(e){e=e|0;if((e|0)==32)e=1;else e=(e+-9|0)>>>0<5;return e&1|0}function Gn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0;a=l;if(t>>>0>36){A[(Ge()|0)>>2]=22;I=0;E=0;K=I;l=a;return E|0}c=e+4|0;g=e+100|0;do{u=A[c>>2]|0;if(u>>>0<(A[g>>2]|0)>>>0){A[c>>2]=u+1;p=o[u>>0]|0}else p=_n(e)|0}while((jn(p)|0)!=0);do{if((p|0)==43|(p|0)==45){u=((p|0)==45)<<31>>31;h=A[c>>2]|0;if(h>>>0<(A[g>>2]|0)>>>0){A[c>>2]=h+1;p=o[h>>0]|0;break}else{p=_n(e)|0;break}}else u=0}while(0);h=(t|0)==0;do{if((t&-17|0)==0&(p|0)==48){p=A[c>>2]|0;if(p>>>0<(A[g>>2]|0)>>>0){A[c>>2]=p+1;p=o[p>>0]|0}else p=_n(e)|0;if((p|32|0)!=120)if(h){t=8;r=46;break}else{r=32;break}t=A[c>>2]|0;if(t>>>0<(A[g>>2]|0)>>>0){A[c>>2]=t+1;p=o[t>>0]|0}else p=_n(e)|0;if((o[p+5321>>0]|0)>15){i=(A[g>>2]|0)==0;if(!i)A[c>>2]=(A[c>>2]|0)+-1;if(!r){Jn(e,0);I=0;E=0;K=I;l=a;return E|0}if(i){I=0;E=0;K=I;l=a;return E|0}A[c>>2]=(A[c>>2]|0)+-1;I=0;E=0;K=I;l=a;return E|0}else{t=16;r=46}}else{t=h?10:t;if((o[p+5321>>0]|0)>>>0>>0)r=32;else{if(A[g>>2]|0)A[c>>2]=(A[c>>2]|0)+-1;Jn(e,0);A[(Ge()|0)>>2]=22;I=0;E=0;K=I;l=a;return E|0}}}while(0);if((r|0)==32)if((t|0)==10){t=p+-48|0;if(t>>>0<10){h=0;do{h=(h*10|0)+t|0;t=A[c>>2]|0;if(t>>>0<(A[g>>2]|0)>>>0){A[c>>2]=t+1;p=o[t>>0]|0}else p=_n(e)|0;t=p+-48|0}while(t>>>0<10&h>>>0<429496729);f=0}else{h=0;f=0}t=p+-48|0;if(t>>>0<10){do{d=Ci(h|0,f|0,10,0)|0;C=K;I=((t|0)<0)<<31>>31;E=~I;if(C>>>0>E>>>0|(C|0)==(E|0)&d>>>0>~t>>>0)break;h=ai(d|0,C|0,t|0,I|0)|0;f=K;t=A[c>>2]|0;if(t>>>0<(A[g>>2]|0)>>>0){A[c>>2]=t+1;p=o[t>>0]|0}else p=_n(e)|0;t=p+-48|0}while(t>>>0<10&(f>>>0<429496729|(f|0)==429496729&h>>>0<2576980378));if(t>>>0<=9){t=10;r=72}}}else r=46;e:do{if((r|0)==46){if(!(t+-1&t)){r=n[5584+((t*23|0)>>>5&7)>>0]|0;C=n[p+5321>>0]|0;h=C&255;if(h>>>0>>0){p=h;h=0;do{h=p|h<>2]|0;if(p>>>0<(A[g>>2]|0)>>>0){A[c>>2]=p+1;I=o[p>>0]|0}else I=_n(e)|0;C=n[I+5321>>0]|0;p=C&255}while(p>>>0>>0&h>>>0<134217728);f=0}else{f=0;h=0;I=p}p=ci(-1,-1,r|0)|0;d=K;if((C&255)>>>0>=t>>>0|(f>>>0>d>>>0|(f|0)==(d|0)&h>>>0>p>>>0)){p=I;r=72;break}while(1){h=oi(h|0,f|0,r|0)|0;f=K;h=C&255|h;C=A[c>>2]|0;if(C>>>0<(A[g>>2]|0)>>>0){A[c>>2]=C+1;I=o[C>>0]|0}else I=_n(e)|0;C=n[I+5321>>0]|0;if((C&255)>>>0>=t>>>0|(f>>>0>d>>>0|(f|0)==(d|0)&h>>>0>p>>>0)){p=I;r=72;break e}}}C=n[p+5321>>0]|0;r=C&255;if(r>>>0>>0){h=0;do{h=r+(ie(h,t)|0)|0;r=A[c>>2]|0;if(r>>>0<(A[g>>2]|0)>>>0){A[c>>2]=r+1;d=o[r>>0]|0}else d=_n(e)|0;C=n[d+5321>>0]|0;r=C&255}while(r>>>0>>0&h>>>0<119304647);f=0}else{h=0;f=0;d=p}if((C&255)>>>0>>0){r=Ii(-1,-1,t|0,0)|0;p=K;while(1){if(f>>>0>p>>>0|(f|0)==(p|0)&h>>>0>r>>>0){p=d;r=72;break e}I=Ci(h|0,f|0,t|0,0)|0;E=K;C=C&255;if(E>>>0>4294967295|(E|0)==-1&I>>>0>~C>>>0){p=d;r=72;break e}h=ai(C|0,0,I|0,E|0)|0;f=K;d=A[c>>2]|0;if(d>>>0<(A[g>>2]|0)>>>0){A[c>>2]=d+1;d=o[d>>0]|0}else d=_n(e)|0;C=n[d+5321>>0]|0;if((C&255)>>>0>=t>>>0){p=d;r=72;break}}}else{p=d;r=72}}}while(0);if((r|0)==72)if((o[p+5321>>0]|0)>>>0>>0){do{r=A[c>>2]|0;if(r>>>0<(A[g>>2]|0)>>>0){A[c>>2]=r+1;r=o[r>>0]|0}else r=_n(e)|0}while((o[r+5321>>0]|0)>>>0>>0);A[(Ge()|0)>>2]=34;f=s;h=i}if(A[g>>2]|0)A[c>>2]=(A[c>>2]|0)+-1;if(!(f>>>0>>0|(f|0)==(s|0)&h>>>0>>0)){if(!((i&1|0)!=0|0!=0|(u|0)!=0)){A[(Ge()|0)>>2]=34;E=ai(i|0,s|0,-1,-1)|0;I=K;K=I;l=a;return E|0}if(f>>>0>s>>>0|(f|0)==(s|0)&h>>>0>i>>>0){A[(Ge()|0)>>2]=34;I=s;E=i;K=I;l=a;return E|0}}E=((u|0)<0)<<31>>31;E=ii(h^u|0,f^E|0,u|0,E|0)|0;I=K;K=I;l=a;return E|0}function Hn(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0.0,C=0,I=0,E=0,m=0,B=0,y=0,v=0,b=0,D=0,S=0,k=0,M=0,N=0.0,F=0,R=0.0,L=0.0,x=0.0,P=0.0;i=l;l=l+512|0;c=i;if(!t){t=24;a=-149}else if((t|0)==2){t=53;a=-1074}else if((t|0)==1){t=53;a=-1074}else{L=0.0;l=i;return+L}h=e+4|0;p=e+100|0;do{s=A[h>>2]|0;if(s>>>0<(A[p>>2]|0)>>>0){A[h>>2]=s+1;m=o[s>>0]|0}else m=_n(e)|0}while((jn(m)|0)!=0);do{if((m|0)==43|(m|0)==45){s=1-(((m|0)==45&1)<<1)|0;u=A[h>>2]|0;if(u>>>0<(A[p>>2]|0)>>>0){A[h>>2]=u+1;m=o[u>>0]|0;break}else{m=_n(e)|0;break}}else s=1}while(0);C=0;do{if((m|32|0)!=(n[5600+C>>0]|0))break;do{if(C>>>0<7){u=A[h>>2]|0;if(u>>>0<(A[p>>2]|0)>>>0){A[h>>2]=u+1;m=o[u>>0]|0;break}else{m=_n(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<8);do{if((C|0)==3)f=23;else if((C|0)!=8){u=(r|0)!=0;if(C>>>0>3&u)if((C|0)==8)break;else{f=23;break}e:do{if(!C){C=0;do{if((m|32|0)!=(n[5616+C>>0]|0))break e;do{if(C>>>0<2){I=A[h>>2]|0;if(I>>>0<(A[p>>2]|0)>>>0){A[h>>2]=I+1;m=o[I>>0]|0;break}else{m=_n(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<3)}}while(0);if(!C){do{if((m|0)==48){u=A[h>>2]|0;if(u>>>0<(A[p>>2]|0)>>>0){A[h>>2]=u+1;u=o[u>>0]|0}else u=_n(e)|0;if((u|32|0)!=120){if(!(A[p>>2]|0)){m=48;break}A[h>>2]=(A[h>>2]|0)+-1;m=48;break}c=A[h>>2]|0;if(c>>>0<(A[p>>2]|0)>>>0){A[h>>2]=c+1;v=o[c>>0]|0;B=0}else{v=_n(e)|0;B=0}while(1){if((v|0)==46){f=70;break}else if((v|0)!=48){c=0;u=0;I=0;C=0;m=0;y=0;N=1.0;E=0;d=0.0;break}c=A[h>>2]|0;if(c>>>0<(A[p>>2]|0)>>>0){A[h>>2]=c+1;v=o[c>>0]|0;B=1;continue}else{v=_n(e)|0;B=1;continue}}if((f|0)==70){c=A[h>>2]|0;if(c>>>0<(A[p>>2]|0)>>>0){A[h>>2]=c+1;v=o[c>>0]|0}else v=_n(e)|0;if((v|0)==48){I=0;C=0;do{c=A[h>>2]|0;if(c>>>0<(A[p>>2]|0)>>>0){A[h>>2]=c+1;v=o[c>>0]|0}else v=_n(e)|0;I=ai(I|0,C|0,-1,-1)|0;C=K}while((v|0)==48);c=0;u=0;B=1;m=1;y=0;N=1.0;E=0;d=0.0}else{c=0;u=0;I=0;C=0;m=1;y=0;N=1.0;E=0;d=0.0}}e:while(1){D=v+-48|0;do{if(D>>>0>=10){b=v|32;S=(v|0)==46;if(!((b+-97|0)>>>0<6|S))break e;if(S)if(!m){I=u;C=c;m=1;break}else{v=46;break e}else{D=(v|0)>57?b+-87|0:D;f=83;break}}else f=83}while(0);if((f|0)==83){f=0;do{if(!((c|0)<0|(c|0)==0&u>>>0<8)){if((c|0)<0|(c|0)==0&u>>>0<14){L=N*.0625;R=L;d=d+L*+(D|0);break}if((D|0)==0|(y|0)!=0)R=N;else{y=1;R=N;d=d+N*.5}}else{R=N;E=D+(E<<4)|0}}while(0);u=ai(u|0,c|0,1,0)|0;c=K;B=1;N=R}v=A[h>>2]|0;if(v>>>0<(A[p>>2]|0)>>>0){A[h>>2]=v+1;v=o[v>>0]|0;continue}else{v=_n(e)|0;continue}}if(!B){t=(A[p>>2]|0)==0;if(!t)A[h>>2]=(A[h>>2]|0)+-1;if(r){if(!t?(g=A[h>>2]|0,A[h>>2]=g+-1,(m|0)!=0):0)A[h>>2]=g+-2}else Jn(e,0);L=+(s|0)*0.0;l=i;return+L}f=(m|0)==0;g=f?u:I;f=f?c:C;if((c|0)<0|(c|0)==0&u>>>0<8)do{E=E<<4;u=ai(u|0,c|0,1,0)|0;c=K}while((c|0)<0|(c|0)==0&u>>>0<8);do{if((v|32|0)==112){u=ri(e,r)|0;c=K;if((u|0)==0&(c|0)==-2147483648)if(!r){Jn(e,0);L=0.0;l=i;return+L}else{if(!(A[p>>2]|0)){u=0;c=0;break}A[h>>2]=(A[h>>2]|0)+-1;u=0;c=0;break}}else if(!(A[p>>2]|0)){u=0;c=0}else{A[h>>2]=(A[h>>2]|0)+-1;u=0;c=0}}while(0);g=oi(g|0,f|0,2)|0;g=ai(g|0,K|0,-32,-1)|0;c=ai(g|0,K|0,u|0,c|0)|0;g=K;if(!E){L=+(s|0)*0.0;l=i;return+L}if((g|0)>0|(g|0)==0&c>>>0>(0-a|0)>>>0){A[(Ge()|0)>>2]=34;L=+(s|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+L}F=a+-106|0;M=((F|0)<0)<<31>>31;if((g|0)<(M|0)|(g|0)==(M|0)&c>>>0>>0){A[(Ge()|0)>>2]=34;L=+(s|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+L}if((E|0)>-1)do{E=E<<1;if(!(d>=.5))N=d;else{N=d+-1.0;E=E|1}d=d+N;c=ai(c|0,g|0,-1,-1)|0;g=K}while((E|0)>-1);a=ii(32,0,a|0,((a|0)<0)<<31>>31|0)|0;a=ai(c|0,g|0,a|0,K|0)|0;F=K;if(0>(F|0)|0==(F|0)&t>>>0>a>>>0)if((a|0)<0){t=0;f=126}else{t=a;f=124}else f=124;if((f|0)==124)if((t|0)<53)f=126;else{a=t;N=+(s|0);R=0.0}if((f|0)==126){R=+(s|0);a=t;N=R;R=+Ve(+ +qn(1.0,84-t|0),+R)}F=(a|0)<32&d!=0.0&(E&1|0)==0;d=N*(F?0.0:d)+(R+N*+(((F&1)+E|0)>>>0))-R;if(!(d!=0.0))A[(Ge()|0)>>2]=34;L=+zn(d,c);l=i;return+L}}while(0);u=a+t|0;g=0-u|0;D=0;while(1){if((m|0)==46){f=137;break}else if((m|0)!=48){k=0;S=0;b=0;break}C=A[h>>2]|0;if(C>>>0<(A[p>>2]|0)>>>0){A[h>>2]=C+1;m=o[C>>0]|0;D=1;continue}else{m=_n(e)|0;D=1;continue}}if((f|0)==137){f=A[h>>2]|0;if(f>>>0<(A[p>>2]|0)>>>0){A[h>>2]=f+1;m=o[f>>0]|0}else m=_n(e)|0;if((m|0)==48){k=0;S=0;do{k=ai(k|0,S|0,-1,-1)|0;S=K;f=A[h>>2]|0;if(f>>>0<(A[p>>2]|0)>>>0){A[h>>2]=f+1;m=o[f>>0]|0}else m=_n(e)|0}while((m|0)==48);D=1;b=1}else{k=0;S=0;b=1}}A[c>>2]=0;v=m+-48|0;M=(m|0)==46;e:do{if(v>>>0<10|M){f=c+496|0;y=0;B=0;E=0;I=0;C=0;t:while(1){do{if(M)if(!b){k=y;S=B;b=1}else break t;else{M=ai(y|0,B|0,1,0)|0;B=K;F=(m|0)!=48;if((I|0)>=125){if(!F){y=M;break}A[f>>2]=A[f>>2]|1;y=M;break}y=c+(I<<2)|0;if(E)v=m+-48+((A[y>>2]|0)*10|0)|0;A[y>>2]=v;E=E+1|0;v=(E|0)==9;y=M;D=1;E=v?0:E;I=(v&1)+I|0;C=F?M:C}}while(0);m=A[h>>2]|0;if(m>>>0<(A[p>>2]|0)>>>0){A[h>>2]=m+1;m=o[m>>0]|0}else m=_n(e)|0;v=m+-48|0;M=(m|0)==46;if(!(v>>>0<10|M)){f=160;break e}}v=(D|0)!=0;f=168}else{y=0;B=0;E=0;I=0;C=0;f=160}}while(0);do{if((f|0)==160){v=(b|0)==0;k=v?y:k;S=v?B:S;v=(D|0)!=0;if(!(v&(m|32|0)==101))if((m|0)>-1){f=168;break}else{f=170;break}v=ri(e,r)|0;m=K;do{if((v|0)==0&(m|0)==-2147483648)if(!r){Jn(e,0);L=0.0;l=i;return+L}else{if(!(A[p>>2]|0)){v=0;m=0;break}A[h>>2]=(A[h>>2]|0)+-1;v=0;m=0;break}}while(0);e=ai(v|0,m|0,k|0,S|0)|0;S=K}}while(0);if((f|0)==168)if(A[p>>2]|0){A[h>>2]=(A[h>>2]|0)+-1;if(v)e=k;else f=171}else f=170;if((f|0)==170)if(v)e=k;else f=171;if((f|0)==171){A[(Ge()|0)>>2]=22;Jn(e,0);L=0.0;l=i;return+L}h=A[c>>2]|0;if(!h){L=+(s|0)*0.0;l=i;return+L}if((e|0)==(y|0)&(S|0)==(B|0)&((B|0)<0|(B|0)==0&y>>>0<10)?t>>>0>30|(h>>>t|0)==0:0){L=+(s|0)*+(h>>>0);l=i;return+L}F=(a|0)/-2|0;M=((F|0)<0)<<31>>31;if((S|0)>(M|0)|(S|0)==(M|0)&e>>>0>F>>>0){A[(Ge()|0)>>2]=34;L=+(s|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+L}F=a+-106|0;M=((F|0)<0)<<31>>31;if((S|0)<(M|0)|(S|0)==(M|0)&e>>>0>>0){A[(Ge()|0)>>2]=34;L=+(s|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+L}if(E){if((E|0)<9){h=c+(I<<2)|0;p=A[h>>2]|0;do{p=p*10|0;E=E+1|0}while((E|0)!=9);A[h>>2]=p}I=I+1|0}if((C|0)<9?(C|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){L=+(s|0)*+((A[c>>2]|0)>>>0);l=i;return+L}if((e|0)<9){L=+(s|0)*+((A[c>>2]|0)>>>0)/+(A[5632+(8-e<<2)>>2]|0);l=i;return+L}F=t+27+(ie(e,-3)|0)|0;h=A[c>>2]|0;if((F|0)>30|(h>>>F|0)==0){L=+(s|0)*+(h>>>0)*+(A[5632+(e+-10<<2)>>2]|0);l=i;return+L}}h=(e|0)%9|0;if(!h){h=0;p=0}else{r=(e|0)>-1?h:h+9|0;f=A[5632+(8-r<<2)>>2]|0;if(I){C=1e9/(f|0)|0;h=0;p=0;E=0;do{k=c+(E<<2)|0;M=A[k>>2]|0;F=((M>>>0)/(f>>>0)|0)+p|0;A[k>>2]=F;p=ie((M>>>0)%(f>>>0)|0,C)|0;M=E;E=E+1|0;if((M|0)==(h|0)&(F|0)==0){h=E&127;e=e+-9|0}}while((E|0)!=(I|0));if(p){A[c+(I<<2)>>2]=p;I=I+1|0}}else{h=0;I=0}p=0;e=9-r+e|0}e:while(1){r=c+(h<<2)|0;if((e|0)<18){do{C=0;r=I+127|0;while(1){r=r&127;f=c+(r<<2)|0;E=oi(A[f>>2]|0,0,29)|0;E=ai(E|0,K|0,C|0,0)|0;C=K;if(C>>>0>0|(C|0)==0&E>>>0>1e9){F=Ii(E|0,C|0,1e9,0)|0;E=Ei(E|0,C|0,1e9,0)|0;C=F}else C=0;A[f>>2]=E;f=(r|0)==(h|0);if(!((r|0)!=(I+127&127|0)|f))I=(E|0)==0?r:I;if(f)break;else r=r+-1|0}p=p+-29|0}while((C|0)==0)}else{if((e|0)!=18)break;do{if((A[r>>2]|0)>>>0>=9007199){e=18;break e}C=0;f=I+127|0;while(1){f=f&127;E=c+(f<<2)|0;m=oi(A[E>>2]|0,0,29)|0;m=ai(m|0,K|0,C|0,0)|0;C=K;if(C>>>0>0|(C|0)==0&m>>>0>1e9){F=Ii(m|0,C|0,1e9,0)|0;m=Ei(m|0,C|0,1e9,0)|0;C=F}else C=0;A[E>>2]=m;E=(f|0)==(h|0);if(!((f|0)!=(I+127&127|0)|E))I=(m|0)==0?f:I;if(E)break;else f=f+-1|0}p=p+-29|0}while((C|0)==0)}h=h+127&127;if((h|0)==(I|0)){F=I+127&127;I=c+((I+126&127)<<2)|0;A[I>>2]=A[I>>2]|A[c+(F<<2)>>2];I=F}A[c+(h<<2)>>2]=C;e=e+9|0}e:while(1){r=I+1&127;f=c+((I+127&127)<<2)|0;while(1){E=(e|0)==18;C=(e|0)>27?9:1;while(1){m=0;while(1){B=m+h&127;if((B|0)==(I|0)){m=2;break}y=A[c+(B<<2)>>2]|0;v=A[5624+(m<<2)>>2]|0;if(y>>>0>>0){m=2;break}B=m+1|0;if(y>>>0>v>>>0)break;if((B|0)<2)m=B;else{m=B;break}}if((m|0)==2&E)break e;p=C+p|0;if((h|0)==(I|0))h=I;else break}E=(1<>>C;B=h;y=0;do{k=c+(h<<2)|0;M=A[k>>2]|0;F=(M>>>C)+y|0;A[k>>2]=F;y=ie(M&E,m)|0;F=(h|0)==(B|0)&(F|0)==0;h=h+1&127;e=F?e+-9|0:e;B=F?h:B}while((h|0)!=(I|0));if(!y){h=B;continue}if((r|0)!=(B|0))break;A[f>>2]=A[f>>2]|1;h=B}A[c+(I<<2)>>2]=y;h=B;I=r}e=h&127;if((e|0)==(I|0)){A[c+(r+-1<<2)>>2]=0;I=r}N=+((A[c+(e<<2)>>2]|0)>>>0);e=h+1&127;if((e|0)==(I|0)){I=I+1&127;A[c+(I+-1<<2)>>2]=0}d=+(s|0);R=d*(N*1.0e9+ +((A[c+(e<<2)>>2]|0)>>>0));s=p+53|0;a=s-a|0;if((a|0)<(t|0))if((a|0)<0){t=0;e=1;f=244}else{t=a;e=1;f=243}else{e=0;f=243}if((f|0)==243)if((t|0)<53)f=244;else{N=0.0;L=0.0}if((f|0)==244){P=+Ve(+ +qn(1.0,105-t|0),+R);x=+At(+R,+ +qn(1.0,53-t|0));N=P;L=x;R=P+(R-x)}r=h+2&127;do{if((r|0)!=(I|0)){c=A[c+(r<<2)>>2]|0;do{if(c>>>0>=5e8){if(c>>>0>5e8){L=d*.75+L;break}if((h+3&127|0)==(I|0)){L=d*.5+L;break}else{L=d*.75+L;break}}else{if((c|0)==0?(h+3&127|0)==(I|0):0)break;L=d*.25+L}}while(0);if((53-t|0)<=1)break;if(+At(+L,1.0)!=0.0)break;L=L+1.0}}while(0);d=R+L-N;do{if((s&2147483647|0)>(-2-u|0)){if(+J(+d)>=9007199254740992.0){e=(e|0)!=0&(t|0)==(a|0)?0:e;p=p+1|0;d=d*.5}if((p+50|0)<=(g|0)?!((e|0)!=0&L!=0.0):0)break;A[(Ge()|0)>>2]=34}}while(0);P=+zn(d,p);l=i;return+P}else if((C|0)==3){t=A[h>>2]|0;if(t>>>0<(A[p>>2]|0)>>>0){A[h>>2]=t+1;t=o[t>>0]|0}else t=_n(e)|0;if((t|0)==40)t=1;else{if(!(A[p>>2]|0)){P=w;l=i;return+P}A[h>>2]=(A[h>>2]|0)+-1;P=w;l=i;return+P}while(1){s=A[h>>2]|0;if(s>>>0<(A[p>>2]|0)>>>0){A[h>>2]=s+1;s=o[s>>0]|0}else s=_n(e)|0;if(!((s+-48|0)>>>0<10|(s+-65|0)>>>0<26)?!((s+-97|0)>>>0<26|(s|0)==95):0)break;t=t+1|0}if((s|0)==41){P=w;l=i;return+P}s=(A[p>>2]|0)==0;if(!s)A[h>>2]=(A[h>>2]|0)+-1;if(!u){A[(Ge()|0)>>2]=22;Jn(e,0);P=0.0;l=i;return+P}if((t|0)==0|s){P=w;l=i;return+P}do{t=t+-1|0;A[h>>2]=(A[h>>2]|0)+-1}while((t|0)!=0);d=w;l=i;return+d}else{if(A[p>>2]|0)A[h>>2]=(A[h>>2]|0)+-1;A[(Ge()|0)>>2]=22;Jn(e,0);P=0.0;l=i;return+P}}}while(0);if((f|0)==23){t=(A[p>>2]|0)==0;if(!t)A[h>>2]=(A[h>>2]|0)+-1;if(!(C>>>0<4|(r|0)==0|t))do{A[h>>2]=(A[h>>2]|0)+-1;C=C+-1|0}while(C>>>0>3)}P=+(s|0)*Q;l=i;return+P}function Jn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0;r=l;A[e+104>>2]=t;i=A[e+8>>2]|0;n=A[e+4>>2]|0;o=i-n|0;A[e+108>>2]=o;if((t|0)!=0&(o|0)>(t|0)){A[e+100>>2]=n+t;l=r;return}else{A[e+100>>2]=i;l=r;return}}function _n(e){e=e|0;var t=0,r=0,i=0,s=0,a=0,c=0,g=0;r=l;a=e+104|0;g=A[a>>2]|0;if(!((g|0)!=0?(A[e+108>>2]|0)>=(g|0):0))c=3;if((c|0)==3?(t=Vn(e)|0,(t|0)>=0):0){c=A[a>>2]|0;a=A[e+8>>2]|0;if((c|0)!=0?(i=A[e+4>>2]|0,s=c-(A[e+108>>2]|0)+-1|0,(a-i|0)>(s|0)):0)A[e+100>>2]=i+s;else A[e+100>>2]=a;i=A[e+4>>2]|0;if(a){g=e+108|0;A[g>>2]=a+1-i+(A[g>>2]|0)}e=i+-1|0;if((o[e>>0]|0|0)==(t|0)){g=t;l=r;return g|0}n[e>>0]=t;g=t;l=r;return g|0}A[e+100>>2]=0;g=-1;l=r;return g|0}function qn(e,t){e=+e;t=t|0;var r=0,n=0;r=l;if((t|0)>1023){e=e*8.98846567431158e+307;n=t+-1023|0;if((n|0)>1023){t=t+-2046|0;t=(t|0)>1023?1023:t;e=e*8.98846567431158e+307}else t=n}else if((t|0)<-1022){e=e*2.2250738585072014e-308;n=t+1022|0;if((n|0)<-1022){t=t+2044|0;t=(t|0)<-1022?-1022:t;e=e*2.2250738585072014e-308}else t=n}t=oi(t+1023|0,0,52)|0;n=K;A[h>>2]=t;A[h+4>>2]=n;e=e*+g[h>>3];l=r;return+e}function zn(e,t){e=+e;t=t|0;var r=0;r=l;e=+qn(e,t);l=r;return+e}function Wn(e){e=e|0;var t=0,r=0,i=0;r=l;i=e+74|0;t=n[i>>0]|0;n[i>>0]=t+255|t;i=e+20|0;t=e+44|0;if((A[i>>2]|0)>>>0>(A[t>>2]|0)>>>0)Oi[A[e+36>>2]&1](e,0,0)|0;A[e+16>>2]=0;A[e+28>>2]=0;A[i>>2]=0;i=A[e>>2]|0;if(!(i&20)){i=A[t>>2]|0;A[e+8>>2]=i;A[e+4>>2]=i;i=0;l=r;return i|0}if(!(i&4)){i=-1;l=r;return i|0}A[e>>2]=i|32;i=-1;l=r;return i|0}function Vn(e){e=e|0;var t=0,r=0;t=l;l=l+16|0;r=t;if((A[e+8>>2]|0)==0?(Wn(e)|0)!=0:0)e=-1;else if((Oi[A[e+32>>2]&1](e,r,1)|0)==1)e=o[r>>0]|0;else e=-1;l=t;return e|0}function Xn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0.0,o=0,s=0;r=l;l=l+112|0;n=r;s=n+0|0;o=s+112|0;do{A[s>>2]=0;s=s+4|0}while((s|0)<(o|0));o=n+4|0;A[o>>2]=e;s=n+8|0;A[s>>2]=-1;A[n+44>>2]=e;A[n+76>>2]=-1;Jn(n,0);i=+Hn(n,1,1);n=(A[o>>2]|0)-(A[s>>2]|0)+(A[n+108>>2]|0)|0;if(!t){l=r;return+i}if(n)e=e+n|0;A[t>>2]=e;l=r;return+i}function Zn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,o=0;n=l;l=l+112|0;o=n;A[o>>2]=0;i=o+4|0;A[i>>2]=e;A[o+44>>2]=e;if((e|0)<0)A[o+8>>2]=-1;else A[o+8>>2]=e+2147483647;A[o+76>>2]=-1;Jn(o,0);r=Gn(o,r,1,-2147483648,0)|0;if(!t){l=n;return r|0}A[t>>2]=e+((A[i>>2]|0)+(A[o+108>>2]|0)-(A[o+8>>2]|0));l=n;return r|0}function $n(e,t){e=e|0;t=t|0;var r=0,i=0,A=0;r=l;A=n[e>>0]|0;i=n[t>>0]|0;if(A<<24>>24==0?1:A<<24>>24!=i<<24>>24)t=A;else{do{e=e+1|0;t=t+1|0;A=n[e>>0]|0;i=n[t>>0]|0}while(!(A<<24>>24==0?1:A<<24>>24!=i<<24>>24));t=A}l=r;return(t&255)-(i&255)|0}function ei(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0;r=l;i=e+4|0;n=A[i>>2]|0;g=n&-8;a=e+g|0;u=A[1210]|0;s=n&3;if(!((s|0)!=1&e>>>0>=u>>>0&e>>>0>>0))Xe();o=e+(g|4)|0;f=A[o>>2]|0;if(!(f&1))Xe();if(!s){if(t>>>0<256){C=0;l=r;return C|0}if(g>>>0>=(t+4|0)>>>0?(g-t|0)>>>0<=A[1326]<<1>>>0:0){C=e;l=r;return C|0}C=0;l=r;return C|0}if(g>>>0>=t>>>0){s=g-t|0;if(s>>>0<=15){C=e;l=r;return C|0}A[i>>2]=n&1|t|2;A[e+(t+4)>>2]=s|3;A[o>>2]=A[o>>2]|1;ti(e+t|0,s);C=e;l=r;return C|0}if((a|0)==(A[1212]|0)){o=(A[1209]|0)+g|0;if(o>>>0<=t>>>0){C=0;l=r;return C|0}C=o-t|0;A[i>>2]=n&1|t|2;A[e+(t+4)>>2]=C|1;A[1212]=e+t;A[1209]=C;C=e;l=r;return C|0}if((a|0)==(A[1211]|0)){s=(A[1208]|0)+g|0;if(s>>>0>>0){C=0;l=r;return C|0}o=s-t|0;if(o>>>0>15){A[i>>2]=n&1|t|2;A[e+(t+4)>>2]=o|1;A[e+s>>2]=o;n=e+(s+4)|0;A[n>>2]=A[n>>2]&-2;n=e+t|0}else{A[i>>2]=n&1|s|2;n=e+(s+4)|0;A[n>>2]=A[n>>2]|1;n=0;o=0}A[1208]=o;A[1211]=n;C=e;l=r;return C|0}if(f&2){C=0;l=r;return C|0}o=(f&-8)+g|0;if(o>>>0>>0){C=0;l=r;return C|0}s=o-t|0;p=f>>>3;do{if(f>>>0>=256){h=A[e+(g+24)>>2]|0;p=A[e+(g+12)>>2]|0;do{if((p|0)==(a|0)){f=e+(g+20)|0;p=A[f>>2]|0;if(!p){f=e+(g+16)|0;p=A[f>>2]|0;if(!p){c=0;break}}while(1){C=p+20|0;d=A[C>>2]|0;if(d){p=d;f=C;continue}d=p+16|0;C=A[d>>2]|0;if(!C)break;else{p=C;f=d}}if(f>>>0>>0)Xe();else{A[f>>2]=0;c=p;break}}else{f=A[e+(g+8)>>2]|0;if(f>>>0>>0)Xe();u=f+12|0;if((A[u>>2]|0)!=(a|0))Xe();d=p+8|0;if((A[d>>2]|0)==(a|0)){A[u>>2]=p;A[d>>2]=f;c=p;break}else Xe()}}while(0);if(h){u=A[e+(g+28)>>2]|0;p=5128+(u<<2)|0;if((a|0)==(A[p>>2]|0)){A[p>>2]=c;if(!c){A[1207]=A[1207]&~(1<>>0<(A[1210]|0)>>>0)Xe();u=h+16|0;if((A[u>>2]|0)==(a|0))A[u>>2]=c;else A[h+20>>2]=c;if(!c)break}a=A[1210]|0;if(c>>>0>>0)Xe();A[c+24>>2]=h;u=A[e+(g+16)>>2]|0;do{if(u)if(u>>>0>>0)Xe();else{A[c+16>>2]=u;A[u+24>>2]=c;break}}while(0);a=A[e+(g+20)>>2]|0;if(a)if(a>>>0<(A[1210]|0)>>>0)Xe();else{A[c+20>>2]=a;A[a+24>>2]=c;break}}}else{c=A[e+(g+8)>>2]|0;g=A[e+(g+12)>>2]|0;f=4864+(p<<1<<2)|0;if((c|0)!=(f|0)){if(c>>>0>>0)Xe();if((A[c+12>>2]|0)!=(a|0))Xe()}if((g|0)==(c|0)){A[1206]=A[1206]&~(1<>>0>>0)Xe();u=g+8|0;if((A[u>>2]|0)==(a|0))h=u;else Xe()}else h=g+8|0;A[c+12>>2]=g;A[h>>2]=c}}while(0);if(s>>>0<16){A[i>>2]=o|n&1|2;C=e+(o|4)|0;A[C>>2]=A[C>>2]|1;C=e;l=r;return C|0}else{A[i>>2]=n&1|t|2;A[e+(t+4)>>2]=s|3;C=e+(o|4)|0;A[C>>2]=A[C>>2]|1;ti(e+t|0,s);C=e;l=r;return C|0}return 0}function ti(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0,s=0,a=0,c=0,g=0,u=0,h=0,p=0,f=0,d=0,C=0,I=0,E=0,m=0,B=0;r=l;s=e+t|0;g=A[e+4>>2]|0;do{if(!(g&1)){f=A[e>>2]|0;if(!(g&3)){l=r;return}g=e+(0-f)|0;u=f+t|0;C=A[1210]|0;if(g>>>0>>0)Xe();if((g|0)==(A[1211]|0)){n=e+(t+4)|0;h=A[n>>2]|0;if((h&3|0)!=3){n=g;h=u;break}A[1208]=u;A[n>>2]=h&-2;A[e+(4-f)>>2]=u|1;A[s>>2]=u;l=r;return}I=f>>>3;if(f>>>0<256){n=A[e+(8-f)>>2]|0;h=A[e+(12-f)>>2]|0;p=4864+(I<<1<<2)|0;if((n|0)!=(p|0)){if(n>>>0>>0)Xe();if((A[n+12>>2]|0)!=(g|0))Xe()}if((h|0)==(n|0)){A[1206]=A[1206]&~(1<>>0>>0)Xe();p=h+8|0;if((A[p>>2]|0)==(g|0))d=p;else Xe()}else d=h+8|0;A[n+12>>2]=h;A[d>>2]=n;n=g;h=u;break}d=A[e+(24-f)>>2]|0;I=A[e+(12-f)>>2]|0;do{if((I|0)==(g|0)){m=16-f|0;E=e+(m+4)|0;I=A[E>>2]|0;if(!I){E=e+m|0;I=A[E>>2]|0;if(!I){p=0;break}}while(1){B=I+20|0;m=A[B>>2]|0;if(m){I=m;E=B;continue}m=I+16|0;B=A[m>>2]|0;if(!B)break;else{I=B;E=m}}if(E>>>0>>0)Xe();else{A[E>>2]=0;p=I;break}}else{E=A[e+(8-f)>>2]|0;if(E>>>0>>0)Xe();C=E+12|0;if((A[C>>2]|0)!=(g|0))Xe();m=I+8|0;if((A[m>>2]|0)==(g|0)){A[C>>2]=I;A[m>>2]=E;p=I;break}else Xe()}}while(0);if(d){I=A[e+(28-f)>>2]|0;C=5128+(I<<2)|0;if((g|0)==(A[C>>2]|0)){A[C>>2]=p;if(!p){A[1207]=A[1207]&~(1<>>0<(A[1210]|0)>>>0)Xe();C=d+16|0;if((A[C>>2]|0)==(g|0))A[C>>2]=p;else A[d+20>>2]=p;if(!p){n=g;h=u;break}}C=A[1210]|0;if(p>>>0>>0)Xe();A[p+24>>2]=d;f=16-f|0;d=A[e+f>>2]|0;do{if(d)if(d>>>0>>0)Xe();else{A[p+16>>2]=d;A[d+24>>2]=p;break}}while(0);f=A[e+(f+4)>>2]|0;if(f)if(f>>>0<(A[1210]|0)>>>0)Xe();else{A[p+20>>2]=f;A[f+24>>2]=p;n=g;h=u;break}else{n=g;h=u}}else{n=g;h=u}}else{n=e;h=t}}while(0);g=A[1210]|0;if(s>>>0>>0)Xe();u=e+(t+4)|0;p=A[u>>2]|0;if(!(p&2)){if((s|0)==(A[1212]|0)){B=(A[1209]|0)+h|0;A[1209]=B;A[1212]=n;A[n+4>>2]=B|1;if((n|0)!=(A[1211]|0)){l=r;return}A[1211]=0;A[1208]=0;l=r;return}if((s|0)==(A[1211]|0)){B=(A[1208]|0)+h|0;A[1208]=B;A[1211]=n;A[n+4>>2]=B|1;A[n+B>>2]=B;l=r;return}h=(p&-8)+h|0;u=p>>>3;do{if(p>>>0>=256){c=A[e+(t+24)>>2]|0;p=A[e+(t+12)>>2]|0;do{if((p|0)==(s|0)){p=e+(t+20)|0;u=A[p>>2]|0;if(!u){p=e+(t+16)|0;u=A[p>>2]|0;if(!u){a=0;break}}while(1){f=u+20|0;d=A[f>>2]|0;if(d){u=d;p=f;continue}d=u+16|0;f=A[d>>2]|0;if(!f)break;else{u=f;p=d}}if(p>>>0>>0)Xe();else{A[p>>2]=0;a=u;break}}else{u=A[e+(t+8)>>2]|0;if(u>>>0>>0)Xe();f=u+12|0;if((A[f>>2]|0)!=(s|0))Xe();g=p+8|0;if((A[g>>2]|0)==(s|0)){A[f>>2]=p;A[g>>2]=u;a=p;break}else Xe()}}while(0);if(c){u=A[e+(t+28)>>2]|0;g=5128+(u<<2)|0;if((s|0)==(A[g>>2]|0)){A[g>>2]=a;if(!a){A[1207]=A[1207]&~(1<>>0<(A[1210]|0)>>>0)Xe();g=c+16|0;if((A[g>>2]|0)==(s|0))A[g>>2]=a;else A[c+20>>2]=a;if(!a)break}s=A[1210]|0;if(a>>>0>>0)Xe();A[a+24>>2]=c;c=A[e+(t+16)>>2]|0;do{if(c)if(c>>>0>>0)Xe();else{A[a+16>>2]=c;A[c+24>>2]=a;break}}while(0);s=A[e+(t+20)>>2]|0;if(s)if(s>>>0<(A[1210]|0)>>>0)Xe();else{A[a+20>>2]=s;A[s+24>>2]=a;break}}}else{a=A[e+(t+8)>>2]|0;e=A[e+(t+12)>>2]|0;t=4864+(u<<1<<2)|0;if((a|0)!=(t|0)){if(a>>>0>>0)Xe();if((A[a+12>>2]|0)!=(s|0))Xe()}if((e|0)==(a|0)){A[1206]=A[1206]&~(1<>>0>>0)Xe();t=e+8|0;if((A[t>>2]|0)==(s|0))c=t;else Xe()}else c=e+8|0;A[a+12>>2]=e;A[c>>2]=a}}while(0);A[n+4>>2]=h|1;A[n+h>>2]=h;if((n|0)==(A[1211]|0)){A[1208]=h;l=r;return}}else{A[u>>2]=p&-2;A[n+4>>2]=h|1;A[n+h>>2]=h}t=h>>>3;if(h>>>0<256){e=t<<1;s=4864+(e<<2)|0;a=A[1206]|0;t=1<>2]|0;if(a>>>0<(A[1210]|0)>>>0)Xe();else{o=e;i=a}}else{A[1206]=a|t;o=4864+(e+2<<2)|0;i=s}A[o>>2]=n;A[i+12>>2]=n;A[n+8>>2]=i;A[n+12>>2]=s;l=r;return}i=h>>>8;if(i)if(h>>>0>16777215)i=31;else{m=(i+1048320|0)>>>16&8;B=i<>>16&4;B=B<>>16&2;i=14-(E|m|i)+(B<>>15)|0;i=h>>>(i+7|0)&1|i<<1}else i=0;o=5128+(i<<2)|0;A[n+28>>2]=i;A[n+20>>2]=0;A[n+16>>2]=0;e=A[1207]|0;s=1<>2]=n;A[n+24>>2]=o;A[n+12>>2]=n;A[n+8>>2]=n;l=r;return}o=A[o>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;e:do{if((A[o+4>>2]&-8|0)!=(h|0)){i=h<>>31<<2)+16|0;o=A[s>>2]|0;if(!o)break;if((A[o+4>>2]&-8|0)==(h|0))break e;else{i=i<<1;e=o}}if(s>>>0<(A[1210]|0)>>>0)Xe();A[s>>2]=n;A[n+24>>2]=e;A[n+12>>2]=n;A[n+8>>2]=n;l=r;return}}while(0);i=o+8|0;s=A[i>>2]|0;B=A[1210]|0;if(!(o>>>0>=B>>>0&s>>>0>=B>>>0))Xe();A[s+12>>2]=n;A[i>>2]=n;A[n+8>>2]=s;A[n+12>>2]=o;A[n+24>>2]=0;l=r;return}function ri(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,a=0,c=0;r=l;i=e+4|0;s=A[i>>2]|0;n=e+100|0;if(s>>>0<(A[n>>2]|0)>>>0){A[i>>2]=s+1;a=o[s>>0]|0}else a=_n(e)|0;if((a|0)==43|(a|0)==45){c=A[i>>2]|0;s=(a|0)==45&1;if(c>>>0<(A[n>>2]|0)>>>0){A[i>>2]=c+1;a=o[c>>0]|0}else a=_n(e)|0;if((a+-48|0)>>>0>9&(t|0)!=0?(A[n>>2]|0)!=0:0)A[i>>2]=(A[i>>2]|0)+-1}else s=0;if((a+-48|0)>>>0>9){if(!(A[n>>2]|0)){a=-2147483648;c=0;K=a;l=r;return c|0}A[i>>2]=(A[i>>2]|0)+-1;a=-2147483648;c=0;K=a;l=r;return c|0}else t=0;do{t=a+-48+(t*10|0)|0;a=A[i>>2]|0;if(a>>>0<(A[n>>2]|0)>>>0){A[i>>2]=a+1;a=o[a>>0]|0}else a=_n(e)|0}while((a+-48|0)>>>0<10&(t|0)<214748364);c=((t|0)<0)<<31>>31;if((a+-48|0)>>>0<10)do{c=Ci(t|0,c|0,10,0)|0;t=K;a=ai(a|0,((a|0)<0)<<31>>31|0,-48,-1)|0;t=ai(a|0,K|0,c|0,t|0)|0;c=K;a=A[i>>2]|0;if(a>>>0<(A[n>>2]|0)>>>0){A[i>>2]=a+1;a=o[a>>0]|0}else a=_n(e)|0}while((a+-48|0)>>>0<10&((c|0)<21474836|(c|0)==21474836&t>>>0<2061584302));if((a+-48|0)>>>0<10)do{a=A[i>>2]|0;if(a>>>0<(A[n>>2]|0)>>>0){A[i>>2]=a+1;a=o[a>>0]|0}else a=_n(e)|0}while((a+-48|0)>>>0<10);if(A[n>>2]|0)A[i>>2]=(A[i>>2]|0)+-1;i=(s|0)!=0;s=ii(0,0,t|0,c|0)|0;a=i?K:c;c=i?s:t;K=a;l=r;return c|0}function ni(){}function ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;t=t-n-(r>>>0>e>>>0|0)>>>0;return(K=t,e-r>>>0|0)|0}function Ai(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,o=0,s=0,a=0;i=e+r|0;if((r|0)>=20){t=t&255;a=e&3;s=t|t<<8|t<<16|t<<24;o=i&~3;if(a){a=e+4-a|0;while((e|0)<(a|0)){n[e>>0]=t;e=e+1|0}}while((e|0)<(o|0)){A[e>>2]=s;e=e+4|0}}while((e|0)<(i|0)){n[e>>0]=t;e=e+1|0}return e-r|0}function oi(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){K=t<>>32-r;return e<>0]|0)t=t+1|0;return t-e|0}function ai(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;r=e+r>>>0;return(K=t+n+(r>>>0>>0|0)>>>0,r|0)|0}function ci(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){K=t>>>r;return e>>>r|(t&(1<>>r-32|0}function gi(e,t,r){e=e|0;t=t|0;r=r|0;var i=0;if((r|0)>=4096)return Ne(e|0,t|0,r|0)|0;i=e|0;if((e&3)==(t&3)){while(e&3){if(!r)return i|0;n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}while((r|0)>=4){A[e>>2]=A[t>>2];e=e+4|0;t=t+4|0;r=r-4|0}}while((r|0)>0){n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}return i|0}function li(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){K=t>>r;return e>>>r|(t&(1<>r-32|0}function ui(e){e=e|0;var t=0;t=n[d+(e>>>24)>>0]|0;if((t|0)<8)return t|0;t=n[d+(e>>16&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[d+(e>>8&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[d+(e&255)>>0]|0)+24|0}function hi(e){e=e|0;var t=0;t=n[f+(e&255)>>0]|0;if((t|0)<8)return t|0;t=n[f+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[f+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[f+(e>>>24)>>0]|0)+24|0}function pi(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,A=0;A=e&65535;n=t&65535;r=ie(n,A)|0;i=e>>>16;n=(r>>>16)+(ie(n,i)|0)|0;t=t>>>16;e=ie(t,A)|0;return(K=(n>>>16)+(ie(t,i)|0)+(((n&65535)+e|0)>>>16)|0,n+e<<16|r&65535|0)|0}function fi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,A=0,o=0,s=0,a=0,c=0;c=t>>31|((t|0)<0?-1:0)<<1;a=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;A=n>>31|((n|0)<0?-1:0)<<1;i=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;s=ii(c^e,a^t,c,a)|0;o=K;t=A^c;e=i^a;e=ii((mi(s,o,ii(A^r,i^n,A,i)|0,K,0)|0)^t,K^e,t,e)|0;return e|0}function di(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0,s=0,a=0,c=0,g=0;i=l;l=l+8|0;a=i|0;s=t>>31|((t|0)<0?-1:0)<<1;o=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;g=n>>31|((n|0)<0?-1:0)<<1;c=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;t=ii(s^e,o^t,s,o)|0;e=K;mi(t,e,ii(g^r,c^n,g,c)|0,K,a)|0;e=ii(A[a>>2]^s,A[a+4>>2]^o,s,o)|0;t=K;l=i;return(K=t,e)|0}function Ci(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,A=0;i=e;A=r;e=pi(i,A)|0;r=K;return(K=(ie(t,A)|0)+(ie(n,i)|0)+r|r&0,e|0|0)|0}function Ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;e=mi(e,t,r,n,0)|0;return e|0}function Ei(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0;o=l;l=l+8|0;i=o|0;mi(e,t,r,n,i)|0;l=o;return(K=A[i+4>>2]|0,A[i>>2]|0)|0}function mi(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var o=0,s=0,a=0,c=0,g=0,l=0,u=0,h=0,p=0,f=0;s=e;c=t;a=c;l=r;o=n;g=o;if(!a){o=(i|0)!=0;if(!g){if(o){A[i>>2]=(s>>>0)%(l>>>0);A[i+4>>2]=0}g=0;u=(s>>>0)/(l>>>0)>>>0;return(K=g,u)|0}else{if(!o){l=0;u=0;return(K=l,u)|0}A[i>>2]=e|0;A[i+4>>2]=t&0;l=0;u=0;return(K=l,u)|0}}u=(g|0)==0;do{if(l){if(!u){g=(ui(g|0)|0)-(ui(a|0)|0)|0;if(g>>>0<=31){u=g+1|0;l=31-g|0;e=g-31>>31;c=u;t=s>>>(u>>>0)&e|a<>>(u>>>0)&e;g=0;l=s<>2]=e|0;A[i+4>>2]=c|t&0;l=0;u=0;return(K=l,u)|0}g=l-1|0;if(g&l){l=(ui(l|0)|0)+33-(ui(a|0)|0)|0;f=64-l|0;u=32-l|0;h=u>>31;p=l-32|0;e=p>>31;c=l;t=u-1>>31&a>>>(p>>>0)|(a<>>(l>>>0))&e;e=e&a>>>(l>>>0);g=s<>>(p>>>0))&h|s<>31;break}if(i){A[i>>2]=g&s;A[i+4>>2]=0}if((l|0)==1){p=c|t&0;f=e|0|0;return(K=p,f)|0}else{f=hi(l|0)|0;p=a>>>(f>>>0)|0;f=a<<32-f|s>>>(f>>>0)|0;return(K=p,f)|0}}else{if(u){if(i){A[i>>2]=(a>>>0)%(l>>>0);A[i+4>>2]=0}p=0;f=(a>>>0)/(l>>>0)>>>0;return(K=p,f)|0}if(!s){if(i){A[i>>2]=0;A[i+4>>2]=(a>>>0)%(g>>>0)}p=0;f=(a>>>0)/(g>>>0)>>>0;return(K=p,f)|0}l=g-1|0;if(!(l&g)){if(i){A[i>>2]=e|0;A[i+4>>2]=l&a|t&0}p=0;f=a>>>((hi(g|0)|0)>>>0);return(K=p,f)|0}g=(ui(g|0)|0)-(ui(a|0)|0)|0;if(g>>>0<=30){e=g+1|0;l=31-g|0;c=e;t=a<>>(e>>>0);e=a>>>(e>>>0);g=0;l=s<>2]=e|0;A[i+4>>2]=c|t&0;p=0;f=0;return(K=p,f)|0}}while(0);if(!c){o=l;n=0;a=0}else{s=r|0|0;o=o|n&0;n=ai(s,o,-1,-1)|0;r=K;a=0;do{u=l;l=g>>>31|l<<1;g=a|g<<1;u=t<<1|u>>>31|0;h=t>>>31|e<<1|0;ii(n,r,u,h)|0;f=K;p=f>>31|((f|0)<0?-1:0)<<1;a=p&1;t=ii(u,h,p&s,(((f|0)<0?-1:0)>>31|((f|0)<0?-1:0)<<1)&o)|0;e=K;c=c-1|0}while((c|0)!=0);o=l;n=0}s=0;if(i){A[i>>2]=t;A[i+4>>2]=e}p=(g|0)>>>31|(o|s)<<1|(s<<1|g>>>31)&0|n;f=(g<<1|0>>>31)&-2|a;return(K=p,f)|0}function Bi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;return Oi[e&1](t|0,r|0,n|0)|0}function yi(e,t,r,n,i,A){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;A=A|0;Yi[e&3](t|0,r|0,n|0,i|0,A|0)}function wi(e,t){e=e|0;t=t|0;ji[e&31](t|0)}function Qi(e,t,r){e=e|0;t=t|0;r=r|0;Gi[e&3](t|0,r|0)}function vi(e,t){e=e|0;t=t|0;return Hi[e&1](t|0)|0}function bi(e){e=e|0;Ji[e&3]()}function Di(e,t,r,n,i,A,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;A=A|0;o=o|0;_i[e&3](t|0,r|0,n|0,i|0,A|0,o|0)}function Si(e,t,r){e=e|0;t=t|0;r=r|0;return qi[e&3](t|0,r|0)|0}function ki(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;zi[e&3](t|0,r|0,n|0,i|0)}function Mi(e,t,r){e=e|0;t=t|0;r=r|0;Ae(0);return 0}function Ni(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;Ae(1)}function Fi(e){e=e|0;Ae(2)}function Ri(e,t){e=e|0;t=t|0;Ae(3)}function Ki(e){e=e|0;Ae(4);return 0}function Li(){Ae(5)}function xi(){it()}function Pi(e,t,r,n,i,A){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;A=A|0;Ae(6)}function Ui(e,t){e=e|0;t=t|0;Ae(7);return 0}function Ti(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;Ae(8)}var Oi=[Mi,Qn];var Yi=[Ni,Nn,Mn,Ni];var ji=[Fi,dt,It,mt,wt,St,Dt,Wt,Xt,Er,Ir,Kr,un,ln,En,yn,mn,Bn,wn,Et,Un,Fi,Fi,Fi,Fi,Fi,Fi,Fi,Fi,Fi,Fi,Fi];var Gi=[Ri,yt,vt,$t];var Hi=[Ki,hn];var Ji=[Li,xi,xn,Pn];var _i=[Pi,Rn,Fn,Pi];var qi=[Ui,Bt,Qt,Zt];var zi=[Ti,bn,Dn,Ti];return{_yo:qr,_strlen:si,_retireVar:rn,_bitshift64Lshr:ci,_unyo:zr,_solve:Zr,_bitshift64Shl:oi,_getSolution:$r,___cxa_is_pointer_type:Ln,_memset:Ai,_getNumVars:en,_memcpy:gi,_getConflictClauseSize:nn,_addClause:Xr,_i64Subtract:ii,_createTheSolver:Wr,_realloc:Yn,_i64Add:ai,_solveAssuming:tn,___cxa_can_catch:Kn,_ensureVar:Vr,_getConflictClause:An,_free:On,_malloc:Tn,__GLOBAL__I_a:Vt,__GLOBAL__I_a127:Lr,runPostSets:ni,stackAlloc:st,stackSave:at,stackRestore:ct,setThrew:gt,setTempRet0:ht,getTempRet0:pt,dynCall_iiii:Bi,dynCall_viiiii:yi,dynCall_vi:wi,dynCall_vii:Qi,dynCall_ii:vi,dynCall_v:bi,dynCall_viiiiii:Di,dynCall_iii:Si,dynCall_viiii:ki}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_yo=Module._yo=asm._yo,_strlen=Module._strlen=asm._strlen,_retireVar=Module._retireVar=asm._retireVar,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_unyo=Module._unyo=asm._unyo,_solve=Module._solve=asm._solve,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_getSolution=Module._getSolution=asm._getSolution,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_memset=Module._memset=asm._memset,_getNumVars=Module._getNumVars=asm._getNumVars,_memcpy=Module._memcpy=asm._memcpy,_getConflictClauseSize=Module._getConflictClauseSize=asm._getConflictClauseSize,_addClause=Module._addClause=asm._addClause,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_createTheSolver=Module._createTheSolver=asm._createTheSolver,_realloc=Module._realloc=asm._realloc,_i64Add=Module._i64Add=asm._i64Add,_solveAssuming=Module._solveAssuming=asm._solveAssuming,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,_ensureVar=Module._ensureVar=asm._ensureVar,_getConflictClause=Module._getConflictClause=asm._getConflictClause,_free=Module._free=asm._free,_malloc=Module._malloc=asm._malloc,__GLOBAL__I_a=Module.__GLOBAL__I_a=asm.__GLOBAL__I_a,__GLOBAL__I_a127=Module.__GLOBAL__I_a127=asm.__GLOBAL__I_a127,runPostSets=Module.runPostSets=asm.runPostSets,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;var i64Math=function(){var e={math:{}};e.math.Long=function(e,t){this.low_=0|e,this.high_=0|t},e.math.Long.IntCache_={},e.math.Long.fromInt=function(t){if(-128<=t&&t<128){var r=e.math.Long.IntCache_[t];if(r)return r}var n=new e.math.Long(0|t,t<0?-1:0);return-128<=t&&t<128&&(e.math.Long.IntCache_[t]=n),n},e.math.Long.fromNumber=function(t){return isNaN(t)||!isFinite(t)?e.math.Long.ZERO:t<=-e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MIN_VALUE:t+1>=e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MAX_VALUE:t<0?e.math.Long.fromNumber(-t).negate():new e.math.Long(t%e.math.Long.TWO_PWR_32_DBL_|0,t/e.math.Long.TWO_PWR_32_DBL_|0)},e.math.Long.fromBits=function(t,r){return new e.math.Long(t,r)},e.math.Long.fromString=function(t,r){if(0==t.length)throw Error("number format error: empty string");var n=r||10;if(n<2||36=0)throw Error('number format error: interior "-" character: '+t);for(var i=e.math.Long.fromNumber(Math.pow(n,8)),A=e.math.Long.ZERO,o=0;o=0?this.low_:e.math.Long.TWO_PWR_32_DBL_+this.low_},e.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(e.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var t=0!=this.high_?this.high_:this.low_,r=31;r>0&&0==(t&1<0},e.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},e.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.subtract(e).isNegative()?-1:1},e.math.Long.prototype.negate=function(){return this.equals(e.math.Long.MIN_VALUE)?e.math.Long.MIN_VALUE:this.not().add(e.math.Long.ONE)},e.math.Long.prototype.add=function(t){var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,A=65535&this.low_,o=t.high_>>>16,s=65535&t.high_,a=t.low_>>>16,c=0,g=0,l=0,u=0;return l+=(u+=A+(65535&t.low_))>>>16,u&=65535,g+=(l+=i+a)>>>16,l&=65535,c+=(g+=n+s)>>>16,g&=65535,c+=r+o,c&=65535,e.math.Long.fromBits(l<<16|u,c<<16|g)},e.math.Long.prototype.subtract=function(e){return this.add(e.negate())},e.math.Long.prototype.multiply=function(t){if(this.isZero())return e.math.Long.ZERO;if(t.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE))return t.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(t.equals(e.math.Long.MIN_VALUE))return this.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().multiply(t.negate()):this.negate().multiply(t).negate();if(t.isNegative())return this.multiply(t.negate()).negate();if(this.lessThan(e.math.Long.TWO_PWR_24_)&&t.lessThan(e.math.Long.TWO_PWR_24_))return e.math.Long.fromNumber(this.toNumber()*t.toNumber());var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,A=65535&this.low_,o=t.high_>>>16,s=65535&t.high_,a=t.low_>>>16,c=65535&t.low_,g=0,l=0,u=0,h=0;return u+=(h+=A*c)>>>16,h&=65535,l+=(u+=i*c)>>>16,u&=65535,l+=(u+=A*a)>>>16,u&=65535,g+=(l+=n*c)>>>16,l&=65535,g+=(l+=i*a)>>>16,l&=65535,g+=(l+=A*s)>>>16,l&=65535,g+=r*c+n*a+i*s+A*o,g&=65535,e.math.Long.fromBits(u<<16|h,g<<16|l)},e.math.Long.prototype.div=function(t){if(t.isZero())throw Error("division by zero");if(this.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE)){if(t.equals(e.math.Long.ONE)||t.equals(e.math.Long.NEG_ONE))return e.math.Long.MIN_VALUE;if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ONE;if((i=this.shiftRight(1).div(t).shiftLeft(1)).equals(e.math.Long.ZERO))return t.isNegative()?e.math.Long.ONE:e.math.Long.NEG_ONE;var r=this.subtract(t.multiply(i));return i.add(r.div(t))}if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().div(t.negate()):this.negate().div(t).negate();if(t.isNegative())return this.div(t.negate()).negate();var n=e.math.Long.ZERO;for(r=this;r.greaterThanOrEqual(t);){for(var i=Math.max(1,Math.floor(r.toNumber()/t.toNumber())),A=Math.ceil(Math.log(i)/Math.LN2),o=A<=48?1:Math.pow(2,A-48),s=e.math.Long.fromNumber(i),a=s.multiply(t);a.isNegative()||a.greaterThan(r);)i-=o,a=(s=e.math.Long.fromNumber(i)).multiply(t);s.isZero()&&(s=e.math.Long.ONE),n=n.add(s),r=r.subtract(a)}return n},e.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},e.math.Long.prototype.not=function(){return e.math.Long.fromBits(~this.low_,~this.high_)},e.math.Long.prototype.and=function(t){return e.math.Long.fromBits(this.low_&t.low_,this.high_&t.high_)},e.math.Long.prototype.or=function(t){return e.math.Long.fromBits(this.low_|t.low_,this.high_|t.high_)},e.math.Long.prototype.xor=function(t){return e.math.Long.fromBits(this.low_^t.low_,this.high_^t.high_)},e.math.Long.prototype.shiftLeft=function(t){if(0==(t&=63))return this;var r=this.low_;if(t<32){var n=this.high_;return e.math.Long.fromBits(r<>>32-t)}return e.math.Long.fromBits(0,r<>>t|r<<32-t,r>>t)}return e.math.Long.fromBits(r>>t-32,r>=0?0:-1)},e.math.Long.prototype.shiftRightUnsigned=function(t){if(0==(t&=63))return this;var r=this.high_;if(t<32){var n=this.low_;return e.math.Long.fromBits(n>>>t|r<<32-t,r>>>t)}return 32==t?e.math.Long.fromBits(r,0):e.math.Long.fromBits(r>>>t-32,0)};var t,r="Modern Browser";function n(e,t,r){null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function i(){return new n(null)}"Microsoft Internet Explorer"==r?(n.prototype.am=function(e,t,r,n,i,A){for(var o=32767&t,s=t>>15;--A>=0;){var a=32767&this[e],c=this[e++]>>15,g=s*a+c*o;i=((a=o*a+((32767&g)<<15)+r[n]+(1073741823&i))>>>30)+(g>>>15)+s*c+(i>>>30),r[n++]=1073741823&a}return i},t=30):"Netscape"!=r?(n.prototype.am=function(e,t,r,n,i,A){for(;--A>=0;){var o=t*this[e++]+r[n]+i;i=Math.floor(o/67108864),r[n++]=67108863&o}return i},t=26):(n.prototype.am=function(e,t,r,n,i,A){for(var o=16383&t,s=t>>14;--A>=0;){var a=16383&this[e],c=this[e++]>>14,g=s*a+c*o;i=((a=o*a+((16383&g)<<14)+r[n]+i)>>28)+(g>>14)+s*c,r[n++]=268435455&a}return i},t=28),n.prototype.DB=t,n.prototype.DM=(1<>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function u(e){this.m=e}function h(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<=0?e.mod(this.m):e},u.prototype.revert=function(e){return e},u.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},u.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},u.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},h.prototype.convert=function(e){var t=i();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(n.ZERO)>0&&this.m.subTo(t,t),t},h.prototype.revert=function(e){var t=i();return e.copyTo(t),this.reduce(t),t},h.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,n,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},h.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},h.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},n.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},n.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+DV:this.t=0},n.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var i=e.length,A=!1,o=0;--i>=0;){var s=8==r?255&e[i]:c(e,i);s<0?"-"==e.charAt(i)&&(A=!0):(A=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==e;)--this.t},n.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},n.prototype.drShiftTo=function(e,t){for(var r=e;r=0;--r)t[r+o+1]=this[r]>>i|s,s=(this[r]&A)<=0;--r)t[r]=0;t[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()},n.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,i=this.DB-n,A=(1<>n;for(var o=r+1;o>n;n>0&&(t[this.t-r-1]|=(this.s&A)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[r++]=this.DV+n:n>0&&(t[r++]=n),t.t=r,t.clamp()},n.prototype.multiplyTo=function(e,t){var r=this.abs(),i=e.abs(),A=r.t;for(t.t=A+i.t;--A>=0;)t[A]=0;for(A=0;A=0;)e[r]=0;for(r=0;r=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},n.prototype.divRemTo=function(e,t,r){var A=e.abs();if(!(A.t<=0)){var o=this.abs();if(o.t0?(A.lShiftTo(g,s),o.lShiftTo(g,r)):(A.copyTo(s),o.copyTo(r));var u=s.t,h=s[u-1];if(0!=h){var p=h*(1<1?s[u-2]>>this.F2:0),f=this.FV/p,d=(1<=0&&(r[r.t++]=1,r.subTo(m,r)),n.ONE.dlShiftTo(u,m),m.subTo(s,s);s.t=0;){var B=r[--I]==h?this.DM:Math.floor(r[I]*f+(r[I-1]+C)*d);if((r[I]+=s.am(0,B,r,E,0,u))0&&r.rShiftTo(g,r),a<0&&n.ZERO.subTo(r,r)}}},n.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},n.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},n.prototype.exp=function(e,t){if(e>4294967295||e<1)return n.ONE;var r=i(),A=i(),o=t.convert(this),s=l(e)-1;for(o.copyTo(r);--s>=0;)if(t.sqrTo(r,A),(e&1<0)t.mulTo(A,o,r);else{var a=r;r=A,A=a}return t.revert(r)},n.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<0)for(s>s)>0&&(i=!0,A=a(r));o>=0;)s>(s+=this.DB-t)):(r=this[o]>>(s-=t)&n,s<=0&&(s+=this.DB,--o)),r>0&&(i=!0),i&&(A+=a(r));return i?A:"0"},n.prototype.negate=function(){var e=i();return n.ZERO.subTo(this,e),e},n.prototype.abs=function(){return this.s<0?this.negate():this},n.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this[r]-e[r]))return t;return 0},n.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+l(this[this.t-1]^this.s&this.DM)},n.prototype.mod=function(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t},n.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new u(t):new h(t),this.exp(e,r)},n.ZERO=g(0),n.ONE=g(1),n.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),i=Math.pow(t,r),A=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(i),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),A&&n.ZERO.subTo(this,this)},n.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},n.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},n.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},n.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},n.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=g(r),A=i(),o=i(),s="";for(this.divRemTo(n,A,o);A.signum()>0;)s=(r+o.intValue()).toString(e).substr(1)+s,A.divRemTo(n,A,o);return o.intValue().toString(e)+s},n.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t[r++]=n:n<-1&&(t[r++]=this.DV+n),t.t=r,t.clamp()};var p={abs:function(t,r){var n,i=new e.math.Long(t,r);n=i.isNegative()?i.negate():i,HEAP32[tempDoublePtr>>2]=n.low_,HEAP32[tempDoublePtr+4>>2]=n.high_},ensureTemps:function(){p.ensuredTemps||(p.ensuredTemps=!0,p.two32=new n,p.two32.fromString("4294967296",10),p.two64=new n,p.two64.fromString("18446744073709551616",10),p.temp1=new n,p.temp2=new n)},lh2bignum:function(e,t){var r=new n;r.fromString(t.toString(),10);var i=new n;r.multiplyTo(p.two32,i);var A=new n;A.fromString(e.toString(),10);var o=new n;return A.addTo(i,o),o},stringify:function(t,r,i){var A=new e.math.Long(t,r).toString();if(i&&"-"==A[0]){p.ensureTemps();var o=new n;o.fromString(A,10),A=new n,p.two64.addTo(o,A),A=A.toString(10)}return A},fromString:function(t,r,i,A,o){p.ensureTemps();var s=new n;s.fromString(t,r);var a=new n;a.fromString(i,10);var c=new n;if(c.fromString(A,10),o&&s.compareTo(n.ZERO)<0){var g=new n;s.addTo(p.two64,g),s=g}var l=!1;s.compareTo(a)<0?(s=a,l=!0):s.compareTo(c)>0&&(s=c,l=!0);var u=e.math.Long.fromString(s.toString());if(HEAP32[tempDoublePtr>>2]=u.low_,HEAP32[tempDoublePtr+4>>2]=u.high_,l)throw"range error"}};return p}(),initialStackTop;if(memoryInitializer)if("function"==typeof Module.locateFile?memoryInitializer=Module.locateFile(memoryInitializer):Module.memoryInitializerPrefixURL&&(memoryInitializer=Module.memoryInitializerPrefixURL+memoryInitializer),ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module.readBinary(memoryInitializer);HEAPU8.set(data,STATIC_BASE)}else addRunDependency("memory initializer"),Browser.asyncLoad(memoryInitializer,(function(e){HEAPU8.set(e,STATIC_BASE),removeRunDependency("memory initializer")}),(function(e){throw"could not load memory initializer "+memoryInitializer}));function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),ENVIRONMENT_IS_WEB&&null!==preloadStartTime&&Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms"),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}function exit(e){if(!Module.noExitRuntime)throw ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",(function(){process.exit(e)})),console.log(" "),setTimeout((function(){process.exit(e)}),500)):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}function abort(e){e&&(Module.print(e),Module.printErr(e)),ABORT=!0,EXITSTATUS=1;throw"abort() at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."}if(dependenciesFulfilled=function e(){!Module.calledRun&&shouldRunNow&&run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){assert(0==runDependencies,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(0==__ATPRERUN__.length,"cannot call main when preRun functions remain to be called"),e=e||[],ensureInitRuntime();var t=e.length+1;function r(){for(var e=0;e<3;e++)n.push(0)}var n=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];r();for(var i=0;i0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run();var origMalloc=Module._malloc,origFree=Module._free,MEMSTATS={totalMemory:Module.HEAPU8.length,heapUsed:0},MEMSTATS_DATA={pointerToSizeMap:{},getSizeOfPointer:function(e){return MEMSTATS_DATA.pointerToSizeMap[e]}};Module.MEMSTATS=MEMSTATS,Module.MEMSTATS_DATA=MEMSTATS_DATA;var hookedMalloc=function(e){var t=origMalloc(e);return t?(MEMSTATS.heapUsed+=e,MEMSTATS_DATA.pointerToSizeMap[t]=e,t):0},hookedFree=function(e){return e&&(MEMSTATS.heapUsed-=MEMSTATS_DATA.getSizeOfPointer(e)||0,delete MEMSTATS_DATA.pointerToSizeMap[e]),origFree(e)},setInnerMalloc,setInnerFree;return Module._malloc=hookedMalloc,Module._free=hookedFree,_malloc=hookedMalloc,_free=hookedFree,setInnerMalloc&&(setInnerMalloc(hookedMalloc),setInnerFree(hookedFree)),module.exports},module.exports=C_MINISAT},73789:(e,t,r)=>{var n,i=r(98312),A=r(5817);(n=function(){var e=this._C=i();this._native={getStackPointer:function(){return e.Runtime.stackSave()},setStackPointer:function(t){e.Runtime.stackRestore(t)},allocateBytes:function(t){return e.allocate(t,"i8",e.ALLOC_STACK)},pushString:function(t){return this.allocateBytes(e.intArrayFromString(t))},savingStack:function(t){var r=this.getStackPointer();try{return t(this,e)}finally{this.setStackPointer(r)}}},e._createTheSolver(),this._clauses=[]}).prototype.ensureVar=function(e){this._C._ensureVar(e)},n.prototype.addClause=function(e){return this._clauses.push(e),this._native.savingStack((function(t,r){var n=r.allocate(4*(e.length+1),"i32",r.ALLOC_STACK);return A.each(e,(function(e,t){r.setValue(n+4*t,e,"i32")})),r.setValue(n+4*e.length,0,"i32"),!!r._addClause(n)}))},n.prototype.solve=function(){return!!this._C._solve()},n.prototype.solveAssuming=function(e){return!!this._C._solveAssuming(e)},n.prototype.getSolution=function(){for(var e=[null],t=this._C,r=t._getNumVars(),n=t._getSolution(),i=0;i>>1,s=1&A?-1:1;n[i]=o*s}return n},e.exports=n},55737:e=>{"use strict";e.exports=e=>{const t={};for(const[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}},46227:(e,t,r)=>{"use strict";const n=r(35747),i=r(85622),{promisify:A}=r(31669),o=r(95584).satisfies(process.version,">=10.12.0"),s=e=>{if("win32"===process.platform){if(/[<>:"|?*]/.test(e.replace(i.parse(e).root,""))){const t=new Error("Path contains invalid characters: "+e);throw t.code="EINVAL",t}}},a=e=>({...{mode:511,fs:n},...e}),c=e=>{const t=new Error(`operation not permitted, mkdir '${e}'`);return t.code="EPERM",t.errno=-4048,t.path=e,t.syscall="mkdir",t};e.exports=async(e,t)=>{s(e),t=a(t);const r=A(t.fs.mkdir),g=A(t.fs.stat);if(o&&t.fs.mkdir===n.mkdir){const n=i.resolve(e);return await r(n,{mode:t.mode,recursive:!0}),n}const l=async e=>{try{return await r(e,t.mode),e}catch(t){if("EPERM"===t.code)throw t;if("ENOENT"===t.code){if(i.dirname(e)===e)throw c(e);if(t.message.includes("null bytes"))throw t;return await l(i.dirname(e)),l(e)}try{if(!(await g(e)).isDirectory())throw new Error("The path is not a directory")}catch(e){throw t}return e}};return l(i.resolve(e))},e.exports.sync=(e,t)=>{if(s(e),t=a(t),o&&t.fs.mkdirSync===n.mkdirSync){const r=i.resolve(e);return n.mkdirSync(r,{mode:t.mode,recursive:!0}),r}const r=e=>{try{t.fs.mkdirSync(e,t.mode)}catch(n){if("EPERM"===n.code)throw n;if("ENOENT"===n.code){if(i.dirname(e)===e)throw c(e);if(n.message.includes("null bytes"))throw n;return r(i.dirname(e)),r(e)}try{if(!t.fs.statSync(e).isDirectory())throw new Error("The path is not a directory")}catch(e){throw n}}return e};return r(i.resolve(e))}},55598:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=Array.prototype.slice;function A(e,t){if(Array.isArray(e))for(let r=0,n=e.length;r0||(t=!1,g())}function A(e){function t(){e.removeListener("merge2UnpipeEnd",t),e.removeListener("end",t),i()}if(e._readableState.endEmitted)return i();e.on("merge2UnpipeEnd",t),e.on("end",t),e.pipe(a,{end:!1}),e.resume()}for(let e=0;e{"use strict";const n=r(31669),i=r(12235),A=r(54722),o=r(3598),s=e=>"string"==typeof e&&(""===e||"./"===e),a=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,i=new Set,o=new Set,s=0,a=e=>{o.add(e.output),r&&r.onResult&&r.onResult(e)};for(let o=0;o!n.has(e));if(r&&0===c.length){if(!0===r.failglob)throw new Error(`No matches found for "${t.join(", ")}"`);if(!0===r.nonull||!0===r.nullglob)return r.unescape?t.map(e=>e.replace(/\\/g,"")):t}return c};a.match=a,a.matcher=(e,t)=>A(e,t),a.any=a.isMatch=(e,t,r)=>A(t,r)(e),a.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,i=[],A=a(e,t,{...r,onResult:e=>{r.onResult&&r.onResult(e),i.push(e.output)}});for(let e of i)A.includes(e)||n.add(e);return[...n]},a.contains=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);if(Array.isArray(t))return t.some(t=>a.contains(e,t,r));if("string"==typeof t){if(s(e)||s(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return a.isMatch(e,t,{...r,contains:!0})},a.matchKeys=(e,t,r)=>{if(!o.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=a(Object.keys(e),t,r),i={};for(let t of n)i[t]=e[t];return i},a.some=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=A(String(e),r);if(n.some(e=>t(e)))return!0}return!1},a.every=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=A(String(e),r);if(!n.every(e=>t(e)))return!1}return!0},a.all=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);return[].concat(t).every(t=>A(t,r)(e))},a.capture=(e,t,r)=>{let n=o.isWindows(r),i=A.makeRe(String(e),{...r,capture:!0}).exec(n?o.toPosixSlashes(t):t);if(i)return i.slice(1).map(e=>void 0===e?"":e)},a.makeRe=(...e)=>A.makeRe(...e),a.scan=(...e)=>A.scan(...e),a.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let e of i(String(n),t))r.push(A.parse(e,t));return r},a.braces=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return t&&!0===t.nobrace||!/\{.*\}/.test(e)?[e]:i(e,t)},a.braceExpand=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return a.braces(e,{...t,expand:!0})},e.exports=a},65007:e=>{"use strict";const t=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},60102:e=>{"use strict";const t=["aborted","complete","destroy","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},19793:(e,t,r)=>{"use strict";const n="undefined"==typeof URL?r(78835).URL:URL,i=(e,t)=>t.some(t=>t instanceof RegExp?t.test(e):t===e),A=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},Reflect.has(t,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(t,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(t,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(e=e.trim(),/^data:/i.test(e))return((e,{stripHash:t})=>{const r=e.match(/^data:(.*?),(.*?)(?:#(.*))?$/);if(!r)throw new Error("Invalid URL: "+e);const n=r[1].split(";"),i=r[2],A=t?"":r[3];let o=!1;"base64"===n[n.length-1]&&(n.pop(),o=!0);const s=(n.shift()||"").toLowerCase(),a=[...n.map(e=>{let[t,r=""]=e.split("=").map(e=>e.trim());return"charset"===t&&(r=r.toLowerCase(),"us-ascii"===r)?"":`${t}${r?"="+r:""}`}).filter(Boolean)];return o&&a.push("base64"),(0!==a.length||s&&"text/plain"!==s)&&a.unshift(s),`data:${a.join(";")},${o?i.trim():i}${A?"#"+A:""}`})(e,t);const r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));const A=new n(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&"https:"===A.protocol&&(A.protocol="http:"),t.forceHttps&&"http:"===A.protocol&&(A.protocol="https:"),t.stripAuthentication&&(A.username="",A.password=""),t.stripHash&&(A.hash=""),A.pathname&&(A.pathname=A.pathname.replace(/((?!:).|^)\/{2,}/g,(e,t)=>/^(?!\/)/g.test(t)?t+"/":"/")),A.pathname&&(A.pathname=decodeURI(A.pathname)),!0===t.removeDirectoryIndex&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let e=A.pathname.split("/");const r=e[e.length-1];i(r,t.removeDirectoryIndex)&&(e=e.slice(0,e.length-1),A.pathname=e.slice(1).join("/")+"/")}if(A.hostname&&(A.hostname=A.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(A.hostname)&&(A.hostname=A.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(const e of[...A.searchParams.keys()])i(e,t.removeQueryParameters)&&A.searchParams.delete(e);return t.sortQueryParameters&&A.searchParams.sort(),t.removeTrailingSlash&&(A.pathname=A.pathname.replace(/\/$/,"")),e=A.toString(),!t.removeTrailingSlash&&"/"!==A.pathname||""!==A.hash||(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};e.exports=A,e.exports.default=A},91162:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}e.exports=n(i),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0})}))},27180:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function A(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}e.exports=n(i),e.exports.strict=n(A),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return A(this)},configurable:!0})}))},59351:e=>{"use strict";class t extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}}class r{static fn(e){return(...t)=>new r((r,n,i)=>{t.push(i),e(...t).then(r,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,r)=>{this._reject=r;const n=e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)};return Object.defineProperties(n,{shouldReject:{get:()=>this._rejectOnCancel,set:e=>{this._rejectOnCancel=e}}}),e(e=>{this._isPending=!1,t(e)},e=>{this._isPending=!1,r(e)},n)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(this._isPending&&!this._isCanceled){if(this._cancelHandlers.length>0)try{for(const e of this._cancelHandlers)e()}catch(e){this._reject(e)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new t(e))}}get isCanceled(){return this._isCanceled}}Object.setPrototypeOf(r.prototype,Promise.prototype),e.exports=r,e.exports.CancelError=t},61578:(e,t,r)=>{"use strict";const n=r(60550),i=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=[];let r=0;const i=()=>{r--,t.length>0&&t.shift()()},A=(e,t,...A)=>{r++;const o=n(e,...A);t(o),o.then(i,i)},o=(n,...i)=>new Promise(o=>((n,i,...o)=>{rr},pendingCount:{get:()=>t.length}}),o};e.exports=i,e.exports.default=i},60550:e=>{"use strict";e.exports=(e,...t)=>new Promise(r=>{r(e(...t))})},37127:e=>{"use strict";const t=(e={})=>{const t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path"};e.exports=t,e.exports.default=t},5763:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747);async function A(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return(await n(i[e])(r))[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}function o(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return i[e](r)[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}t.isFile=A.bind(null,"stat","isFile"),t.isDirectory=A.bind(null,"stat","isDirectory"),t.isSymlink=A.bind(null,"lstat","isSymbolicLink"),t.isFileSync=o.bind(null,"statSync","isFile"),t.isDirectorySync=o.bind(null,"statSync","isDirectory"),t.isSymlinkSync=o.bind(null,"lstatSync","isSymbolicLink")},54722:(e,t,r)=>{"use strict";e.exports=r(18828)},71086:(e,t,r)=>{"use strict";const n=r(85622),i={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},A={...i,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:n.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?A:i}},47974:(e,t,r)=>{"use strict";const n=r(71086),i=r(3598),{MAX_LENGTH:A,POSIX_REGEX_SOURCE:o,REGEX_NON_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_BACKREF:a,REPLACEMENTS:c}=n,g=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map(e=>i.escapeRegex(e)).join("..")}return r},l=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,u=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=c[e]||e;const r={...t},u="number"==typeof r.maxLength?Math.min(A,r.maxLength):A;let h=e.length;if(h>u)throw new SyntaxError(`Input length: ${h}, exceeds maximum allowed length: ${u}`);const p={type:"bos",value:"",output:r.prepend||""},f=[p],d=r.capture?"":"?:",C=i.isWindows(t),I=n.globChars(C),E=n.extglobChars(I),{DOT_LITERAL:m,PLUS_LITERAL:B,SLASH_LITERAL:y,ONE_CHAR:w,DOTS_SLASH:Q,NO_DOT:v,NO_DOT_SLASH:b,NO_DOTS_SLASH:D,QMARK:S,QMARK_NO_DOT:k,STAR:M,START_ANCHOR:N}=I,F=e=>`(${d}(?:(?!${N}${e.dot?Q:m}).)*?)`,R=r.dot?"":v,K=r.dot?S:k;let L=!0===r.bash?F(r):M;r.capture&&(L=`(${L})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const x={input:e,index:-1,start:0,dot:!0===r.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:f};e=i.removePrefix(e,x),h=e.length;const P=[],U=[],T=[];let O,Y=p;const j=()=>x.index===h-1,G=x.peek=(t=1)=>e[x.index+t],H=x.advance=()=>e[++x.index],J=()=>e.slice(x.index+1),_=(e="",t=0)=>{x.consumed+=e,x.index+=t},q=e=>{x.output+=null!=e.output?e.output:e.value,_(e.value)},z=()=>{let e=1;for(;"!"===G()&&("("!==G(2)||"?"===G(3));)H(),x.start++,e++;return e%2!=0&&(x.negated=!0,x.start++,!0)},W=e=>{x[e]++,T.push(e)},V=e=>{x[e]--,T.pop()},X=e=>{if("globstar"===Y.type){const t=x.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||P.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(x.output=x.output.slice(0,-Y.output.length),Y.type="star",Y.value="*",Y.output=L,x.output+=Y.output)}if(P.length&&"paren"!==e.type&&!E[e.value]&&(P[P.length-1].inner+=e.value),(e.value||e.output)&&q(e),Y&&"text"===Y.type&&"text"===e.type)return Y.value+=e.value,void(Y.output=(Y.output||"")+e.value);e.prev=Y,f.push(e),Y=e},Z=(e,t)=>{const n={...E[t],conditions:1,inner:""};n.prev=Y,n.parens=x.parens,n.output=x.output;const i=(r.capture?"(":"")+n.open;W("parens"),X({type:e,value:t,output:x.output?"":w}),X({type:"paren",extglob:!0,value:H(),output:i}),P.push(n)},$=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let n=L;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(n=F(r)),(n!==L||j()||/^\)+$/.test(J()))&&(t=e.close=")$))"+n),"bos"===e.prev.type&&j()&&(x.negatedExtglob=!0)}X({type:"paren",extglob:!0,value:O,output:t}),V("parens")};if(!1!==r.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=!1,A=e.replace(a,(e,t,r,i,A,o)=>"\\"===i?(n=!0,e):"?"===i?t?t+i+(A?S.repeat(A.length):""):0===o?K+(A?S.repeat(A.length):""):S.repeat(r.length):"."===i?m.repeat(r.length):"*"===i?t?t+i+(A?L:""):L:t?e:"\\"+e);return!0===n&&(A=!0===r.unescape?A.replace(/\\/g,""):A.replace(/\\+/g,e=>e.length%2==0?"\\\\":e?"\\":"")),A===e&&!0===r.contains?(x.output=e,x):(x.output=i.wrapOutput(A,x,t),x)}for(;!j();){if(O=H(),"\0"===O)continue;if("\\"===O){const e=G();if("/"===e&&!0!==r.bash)continue;if("."===e||";"===e)continue;if(!e){O+="\\",X({type:"text",value:O});continue}const t=/^\\+/.exec(J());let n=0;if(t&&t[0].length>2&&(n=t[0].length,x.index+=n,n%2!=0&&(O+="\\")),!0===r.unescape?O=H()||"":O+=H()||"",0===x.brackets){X({type:"text",value:O});continue}}if(x.brackets>0&&("]"!==O||"["===Y.value||"[^"===Y.value)){if(!1!==r.posix&&":"===O){const e=Y.value.slice(1);if(e.includes("[")&&(Y.posix=!0,e.includes(":"))){const e=Y.value.lastIndexOf("["),t=Y.value.slice(0,e),r=Y.value.slice(e+2),n=o[r];if(n){Y.value=t+n,x.backtrack=!0,H(),p.output||1!==f.indexOf(Y)||(p.output=w);continue}}}("["===O&&":"!==G()||"-"===O&&"]"===G())&&(O="\\"+O),"]"!==O||"["!==Y.value&&"[^"!==Y.value||(O="\\"+O),!0===r.posix&&"!"===O&&"["===Y.value&&(O="^"),Y.value+=O,q({value:O});continue}if(1===x.quotes&&'"'!==O){O=i.escapeRegex(O),Y.value+=O,q({value:O});continue}if('"'===O){x.quotes=1===x.quotes?0:1,!0===r.keepQuotes&&X({type:"text",value:O});continue}if("("===O){W("parens"),X({type:"paren",value:O});continue}if(")"===O){if(0===x.parens&&!0===r.strictBrackets)throw new SyntaxError(l("opening","("));const e=P[P.length-1];if(e&&x.parens===e.parens+1){$(P.pop());continue}X({type:"paren",value:O,output:x.parens?")":"\\)"}),V("parens");continue}if("["===O){if(!0!==r.nobracket&&J().includes("]"))W("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));O="\\"+O}X({type:"bracket",value:O});continue}if("]"===O){if(!0===r.nobracket||Y&&"bracket"===Y.type&&1===Y.value.length){X({type:"text",value:O,output:"\\"+O});continue}if(0===x.brackets){if(!0===r.strictBrackets)throw new SyntaxError(l("opening","["));X({type:"text",value:O,output:"\\"+O});continue}V("brackets");const e=Y.value.slice(1);if(!0===Y.posix||"^"!==e[0]||e.includes("/")||(O="/"+O),Y.value+=O,q({value:O}),!1===r.literalBrackets||i.hasRegexChars(e))continue;const t=i.escapeRegex(Y.value);if(x.output=x.output.slice(0,-Y.value.length),!0===r.literalBrackets){x.output+=t,Y.value=t;continue}Y.value=`(${d}${t}|${Y.value})`,x.output+=Y.value;continue}if("{"===O&&!0!==r.nobrace){W("braces");const e={type:"brace",value:O,output:"(",outputIndex:x.output.length,tokensIndex:x.tokens.length};U.push(e),X(e);continue}if("}"===O){const e=U[U.length-1];if(!0===r.nobrace||!e){X({type:"text",value:O,output:O});continue}let t=")";if(!0===e.dots){const e=f.slice(),n=[];for(let t=e.length-1;t>=0&&(f.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&n.unshift(e[t].value);t=g(n,r),x.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=x.output.slice(0,e.outputIndex),n=x.tokens.slice(e.tokensIndex);e.value=e.output="\\{",O=t="\\}",x.output=r;for(const e of n)x.output+=e.output||e.value}X({type:"brace",value:O,output:t}),V("braces"),U.pop();continue}if("|"===O){P.length>0&&P[P.length-1].conditions++,X({type:"text",value:O});continue}if(","===O){let e=O;const t=U[U.length-1];t&&"braces"===T[T.length-1]&&(t.comma=!0,e="|"),X({type:"comma",value:O,output:e});continue}if("/"===O){if("dot"===Y.type&&x.index===x.start+1){x.start=x.index+1,x.consumed="",x.output="",f.pop(),Y=p;continue}X({type:"slash",value:O,output:y});continue}if("."===O){if(x.braces>0&&"dot"===Y.type){"."===Y.value&&(Y.output=m);const e=U[U.length-1];Y.type="dots",Y.output+=O,Y.value+=O,e.dots=!0;continue}if(x.braces+x.parens===0&&"bos"!==Y.type&&"slash"!==Y.type){X({type:"text",value:O,output:m});continue}X({type:"dot",value:O,output:m});continue}if("?"===O){if(!(Y&&"("===Y.value)&&!0!==r.noextglob&&"("===G()&&"?"!==G(2)){Z("qmark",O);continue}if(Y&&"paren"===Y.type){const e=G();let t=O;if("<"===e&&!i.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===Y.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(J()))&&(t="\\"+O),X({type:"text",value:O,output:t});continue}if(!0!==r.dot&&("slash"===Y.type||"bos"===Y.type)){X({type:"qmark",value:O,output:k});continue}X({type:"qmark",value:O,output:S});continue}if("!"===O){if(!0!==r.noextglob&&"("===G()&&("?"!==G(2)||!/[!=<:]/.test(G(3)))){Z("negate",O);continue}if(!0!==r.nonegate&&0===x.index){z();continue}}if("+"===O){if(!0!==r.noextglob&&"("===G()&&"?"!==G(2)){Z("plus",O);continue}if(Y&&"("===Y.value||!1===r.regex){X({type:"plus",value:O,output:B});continue}if(Y&&("bracket"===Y.type||"paren"===Y.type||"brace"===Y.type)||x.parens>0){X({type:"plus",value:O});continue}X({type:"plus",value:B});continue}if("@"===O){if(!0!==r.noextglob&&"("===G()&&"?"!==G(2)){X({type:"at",extglob:!0,value:O,output:""});continue}X({type:"text",value:O});continue}if("*"!==O){"$"!==O&&"^"!==O||(O="\\"+O);const e=s.exec(J());e&&(O+=e[0],x.index+=e[0].length),X({type:"text",value:O});continue}if(Y&&("globstar"===Y.type||!0===Y.star)){Y.type="star",Y.star=!0,Y.value+=O,Y.output=L,x.backtrack=!0,x.globstar=!0,_(O);continue}let t=J();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Z("star",O);continue}if("star"===Y.type){if(!0===r.noglobstar){_(O);continue}const n=Y.prev,i=n.prev,A="slash"===n.type||"bos"===n.type,o=i&&("star"===i.type||"globstar"===i.type);if(!0===r.bash&&(!A||t[0]&&"/"!==t[0])){X({type:"star",value:O,output:""});continue}const s=x.braces>0&&("comma"===n.type||"brace"===n.type),a=P.length&&("pipe"===n.type||"paren"===n.type);if(!A&&"paren"!==n.type&&!s&&!a){X({type:"star",value:O,output:""});continue}for(;"/**"===t.slice(0,3);){const r=e[x.index+4];if(r&&"/"!==r)break;t=t.slice(3),_("/**",3)}if("bos"===n.type&&j()){Y.type="globstar",Y.value+=O,Y.output=F(r),x.output=Y.output,x.globstar=!0,_(O);continue}if("slash"===n.type&&"bos"!==n.prev.type&&!o&&j()){x.output=x.output.slice(0,-(n.output+Y.output).length),n.output="(?:"+n.output,Y.type="globstar",Y.output=F(r)+(r.strictSlashes?")":"|$)"),Y.value+=O,x.globstar=!0,x.output+=n.output+Y.output,_(O);continue}if("slash"===n.type&&"bos"!==n.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";x.output=x.output.slice(0,-(n.output+Y.output).length),n.output="(?:"+n.output,Y.type="globstar",Y.output=`${F(r)}${y}|${y}${e})`,Y.value+=O,x.output+=n.output+Y.output,x.globstar=!0,_(O+H()),X({type:"slash",value:"/",output:""});continue}if("bos"===n.type&&"/"===t[0]){Y.type="globstar",Y.value+=O,Y.output=`(?:^|${y}|${F(r)}${y})`,x.output=Y.output,x.globstar=!0,_(O+H()),X({type:"slash",value:"/",output:""});continue}x.output=x.output.slice(0,-Y.output.length),Y.type="globstar",Y.output=F(r),Y.value+=O,x.output+=Y.output,x.globstar=!0,_(O);continue}const n={type:"star",value:O,output:L};!0!==r.bash?!Y||"bracket"!==Y.type&&"paren"!==Y.type||!0!==r.regex?(x.index!==x.start&&"slash"!==Y.type&&"dot"!==Y.type||("dot"===Y.type?(x.output+=b,Y.output+=b):!0===r.dot?(x.output+=D,Y.output+=D):(x.output+=R,Y.output+=R),"*"!==G()&&(x.output+=w,Y.output+=w)),X(n)):(n.output=O,X(n)):(n.output=".*?","bos"!==Y.type&&"slash"!==Y.type||(n.output=R+n.output),X(n))}for(;x.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));x.output=i.escapeLast(x.output,"["),V("brackets")}for(;x.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing",")"));x.output=i.escapeLast(x.output,"("),V("parens")}for(;x.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","}"));x.output=i.escapeLast(x.output,"{"),V("braces")}if(!0===r.strictSlashes||"star"!==Y.type&&"bracket"!==Y.type||X({type:"maybe_slash",value:"",output:y+"?"}),!0===x.backtrack){x.output="";for(const e of x.tokens)x.output+=null!=e.output?e.output:e.value,e.suffix&&(x.output+=e.suffix)}return x};u.fastpaths=(e,t)=>{const r={...t},o="number"==typeof r.maxLength?Math.min(A,r.maxLength):A,s=e.length;if(s>o)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${o}`);e=c[e]||e;const a=i.isWindows(t),{DOT_LITERAL:g,SLASH_LITERAL:l,ONE_CHAR:u,DOTS_SLASH:h,NO_DOT:p,NO_DOTS:f,NO_DOTS_SLASH:d,STAR:C,START_ANCHOR:I}=n.globChars(a),E=r.dot?f:p,m=r.dot?d:p,B=r.capture?"":"?:";let y=!0===r.bash?".*?":C;r.capture&&(y=`(${y})`);const w=e=>!0===e.noglobstar?y:`(${B}(?:(?!${I}${e.dot?h:g}).)*?)`,Q=e=>{switch(e){case"*":return`${E}${u}${y}`;case".*":return`${g}${u}${y}`;case"*.*":return`${E}${y}${g}${u}${y}`;case"*/*":return`${E}${y}${l}${u}${m}${y}`;case"**":return E+w(r);case"**/*":return`(?:${E}${w(r)}${l})?${m}${u}${y}`;case"**/*.*":return`(?:${E}${w(r)}${l})?${m}${y}${g}${u}${y}`;case"**/.*":return`(?:${E}${w(r)}${l})?${g}${u}${y}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=Q(t[1]);if(!r)return;return r+g+t[2]}}},v=i.removePrefix(e,{negated:!1,prefix:""});let b=Q(v);return b&&!0!==r.strictSlashes&&(b+=l+"?"),b},e.exports=u},18828:(e,t,r)=>{"use strict";const n=r(85622),i=r(95321),A=r(47974),o=r(3598),s=r(71086),a=(e,t,r=!1)=>{if(Array.isArray(e)){const n=e.map(e=>a(e,t,r));return e=>{for(const t of n){const r=t(e);if(r)return r}return!1}}const n=(i=e)&&"object"==typeof i&&!Array.isArray(i)&&e.tokens&&e.input;var i;if(""===e||"string"!=typeof e&&!n)throw new TypeError("Expected pattern to be a non-empty string");const A=t||{},s=o.isWindows(t),c=n?a.compileRe(e,t):a.makeRe(e,t,!1,!0),g=c.state;delete c.state;let l=()=>!1;if(A.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};l=a(A.ignore,e,r)}const u=(r,n=!1)=>{const{isMatch:i,match:o,output:u}=a.test(r,c,t,{glob:e,posix:s}),h={glob:e,state:g,regex:c,posix:s,input:r,output:u,match:o,isMatch:i};return"function"==typeof A.onResult&&A.onResult(h),!1===i?(h.isMatch=!1,!!n&&h):l(r)?("function"==typeof A.onIgnore&&A.onIgnore(h),h.isMatch=!1,!!n&&h):("function"==typeof A.onMatch&&A.onMatch(h),!n||h)};return r&&(u.state=g),u};a.test=(e,t,r,{glob:n,posix:i}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const A=r||{},s=A.format||(i?o.toPosixSlashes:null);let c=e===n,g=c&&s?s(e):e;return!1===c&&(g=s?s(e):e,c=g===n),!1!==c&&!0!==A.capture||(c=!0===A.matchBase||!0===A.basename?a.matchBase(e,t,r,i):t.exec(g)),{isMatch:Boolean(c),match:c,output:g}},a.matchBase=(e,t,r,i=o.isWindows(r))=>(t instanceof RegExp?t:a.makeRe(t,r)).test(n.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map(e=>a.parse(e,t)):A(e,{...t,fastpaths:!1}),a.scan=(e,t)=>i(e,t),a.compileRe=(e,t,r=!1,n=!1)=>{if(!0===r)return e.output;const i=t||{},A=i.contains?"":"^",o=i.contains?"":"$";let s=`${A}(?:${e.output})${o}`;e&&!0===e.negated&&(s=`^(?!${s}).*$`);const c=a.toRegex(s,t);return!0===n&&(c.state=e),c},a.makeRe=(e,t,r=!1,n=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let o,s={negated:!1,fastpaths:!0},c="";return e.startsWith("./")&&(e=e.slice(2),c=s.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(o=A.fastpaths(e,t)),void 0===o?(s=A(e,t),s.prefix=c+(s.prefix||"")):s.output=o,a.compileRe(s,t,r,n)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=s,e.exports=a},95321:(e,t,r)=>{"use strict";const n=r(3598),{CHAR_ASTERISK:i,CHAR_AT:A,CHAR_BACKWARD_SLASH:o,CHAR_COMMA:s,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:g,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:u,CHAR_LEFT_SQUARE_BRACKET:h,CHAR_PLUS:p,CHAR_QUESTION_MARK:f,CHAR_RIGHT_CURLY_BRACE:d,CHAR_RIGHT_PARENTHESES:C,CHAR_RIGHT_SQUARE_BRACKET:I}=r(71086),E=e=>e===g||e===o,m=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},B=e.length-1,y=!0===r.parts||!0===r.scanToEnd,w=[],Q=[],v=[];let b,D,S=e,k=-1,M=0,N=0,F=!1,R=!1,K=!1,L=!1,x=!1,P=!1,U=!1,T=!1,O=!1,Y=0,j={value:"",depth:0,isGlob:!1};const G=()=>k>=B,H=()=>(b=D,S.charCodeAt(++k));for(;k0&&(_=S.slice(0,M),S=S.slice(M),N-=M),J&&!0===K&&N>0?(J=S.slice(0,N),q=S.slice(N)):!0===K?(J="",q=S):J=S,J&&""!==J&&"/"!==J&&J!==S&&E(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(q&&(q=n.removeBackslashes(q)),J&&!0===U&&(J=n.removeBackslashes(J)));const z={prefix:_,input:e,start:M,base:J,glob:q,isBrace:F,isBracket:R,isGlob:K,isExtglob:L,isGlobstar:x,negated:T};if(!0===r.tokens&&(z.maxDepth=0,E(D)||Q.push(j),z.tokens=Q),!0===r.parts||!0===r.tokens){let t;for(let n=0;n{"use strict";const n=r(85622),i="win32"===process.platform,{REGEX_BACKSLASH:A,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:a}=r(71086);t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>s.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(a,"\\$1"),t.toPosixSlashes=e=>e.replace(A,"/"),t.removeBackslashes=e=>e.replace(o,e=>"\\"===e?"":e),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===i||"\\"===n.sep,t.escapeLast=(e,r,n)=>{const i=e.lastIndexOf(r,n);return-1===i?e:"\\"===e[i-1]?t.escapeLast(e,r,i-1):`${e.slice(0,i)}\\${e.slice(i)}`},t.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r},t.wrapOutput=(e,t={},r={})=>{let n=`${r.contains?"":"^"}(?:${e})${r.contains?"":"$"}`;return!0===t.negated&&(n=`(?:^(?!${n}).*$)`),n}},79588:e=>{"use strict";function t(e){this._maxSize=e,this.clear()}t.prototype.clear=function(){this._size=0,this._values={}},t.prototype.get=function(e){return this._values[e]},t.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),this._values.hasOwnProperty(e)||this._size++,this._values[e]=t};var r=/[^.^\]^[]+|(?=\[\]|\.\.)/g,n=/^\d+$/,i=/^\d/,A=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,o=/^\s*(['"]?)(.*?)(\1)\s*$/,s=!1,a=new t(512),c=new t(512),g=new t(512);try{new Function("")}catch(e){s=!0}function l(e){return a.get(e)||a.set(e,u(e).map((function(e){return e.replace(o,"$2")})))}function u(e){return e.match(r)}function h(e,t,r){return"string"==typeof t&&(r=t,t=!1),r=r||"data",(e=e||"")&&"["!==e.charAt(0)&&(e="."+e),t?function(e,t){var r,n=t,i=u(e);return p(i,(function(e,t,i,A,o){r=A===o.length-1,n+=(e=t||i?"["+e+"]":"."+e)+(r?")":" || {})")})),new Array(i.length+1).join("(")+n}(e,r):r+e}function p(e,t,r){var n,i,A,o,s=e.length;for(i=0;i{var n=r(91162),i=r(97681),A=r(35747),o=function(){},s=/^v?\.0/.test(process.version),a=function(e){return"function"==typeof e},c=function(e,t,r,c){c=n(c);var g=!1;e.on("close",(function(){g=!0})),i(e,{readable:t,writable:r},(function(e){if(e)return c(e);g=!0,c()}));var l=!1;return function(t){if(!g&&!l)return l=!0,function(e){return!!s&&(!!A&&((e instanceof(A.ReadStream||o)||e instanceof(A.WriteStream||o))&&a(e.close)))}(e)?e.close(o):function(e){return e.setHeader&&a(e.abort)}(e)?e.abort():a(e.destroy)?e.destroy():void c(t||new Error("stream was destroyed"))}},g=function(e){e()},l=function(e,t){return e.pipe(t)};e.exports=function(){var e,t=Array.prototype.slice.call(arguments),r=a(t[t.length-1]||o)&&t.pop()||o;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var n=t.map((function(i,A){var o=A0,(function(t){e||(e=t),t&&n.forEach(g),o||(n.forEach(g),r(e))}))}));return t.reduce(l)}},82905:e=>{"use strict";class t{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,"function"==typeof this.onEviction)for(const[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}e.exports=t},20663:e=>{"use strict";const t={};function r(e,r,n){n||(n=Error);class i extends n{constructor(e,t,n){super(function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(e,t,n))}}i.prototype.name=n.name,i.prototype.code=e,t[e]=i}function n(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>String(e)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:2===r?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}return`of ${t} ${String(e)}`}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){let i;var A,o;let s;if("string"==typeof t&&(A="not ",t.substr(!o||o<0?0:+o,A.length)===A)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))s=`The ${e} ${i} ${n(t,"type")}`;else{s=`The "${e}" ${function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument"} ${i} ${n(t,"type")}`}return s+=". Received type "+typeof r,s}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},39138:e=>{"use strict";var t=new Set;e.exports.emitExperimentalWarning=process.emitWarning?function(e){if(!t.has(e)){var r=e+" is an experimental feature. This feature could change at any time";t.add(e),process.emitWarning(r,"ExperimentalWarning")}}:function(){}},72434:(e,t,r)=>{"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=c;var i=r(58020),A=r(6729);r(85870)(c,i);for(var o=n(A.prototype),s=0;s{"use strict";e.exports=i;var n=r(54801);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(85870)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},58020:(e,t,r)=>{"use strict";var n;e.exports=w,w.ReadableState=y;r(28614).EventEmitter;var i=function(e,t){return e.listeners(t).length},A=r(49298),o=r(64293).Buffer,s=global.Uint8Array||function(){};var a,c=r(31669);a=c&&c.debuglog?c.debuglog("stream"):function(){};var g,l,u=r(43117),h=r(32340),p=r(77433).getHighWaterMark,f=r(20663).q,d=f.ERR_INVALID_ARG_TYPE,C=f.ERR_STREAM_PUSH_AFTER_EOF,I=f.ERR_METHOD_NOT_IMPLEMENTED,E=f.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,m=r(39138).emitExperimentalWarning;r(85870)(w,A);var B=["error","close","destroy","pause","resume"];function y(e,t,i){n=n||r(72434),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=p(this,e,"readableHighWaterMark",i),this.buffer=new u,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(g||(g=r(69538).s),this.decoder=new g(e.encoding),this.encoding=e.encoding)}function w(e){if(n=n||r(72434),!(this instanceof w))return new w(e);var t=this instanceof n;this._readableState=new y(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),A.call(this)}function Q(e,t,r,n,i){a("readableAddChunk",t);var A,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?D(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,S(e)))}(e,c);else if(i||(A=function(e,t){var r;n=t,o.isBuffer(n)||n instanceof s||"string"==typeof t||void 0===t||e.objectMode||(r=new d("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(c,t)),A)e.emit("error",A);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=function(e){return o.from(e)}(t)),n)c.endEmitted?e.emit("error",new E):v(e,c,t,!0);else if(c.ended)e.emit("error",new C);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?v(e,c,t,!1):k(e,c)):v(e,c,t,!1)}else n||(c.reading=!1,k(e,c));return!c.ended&&(c.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function D(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(a("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(S,e))}function S(e){var t=e._readableState;a("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||e.emit("readable"),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,K(e)}function k(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(M,e,t))}function M(e,t){for(var r=t.length;!t.reading&&!t.ended&&t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function F(e){a("readable nexttick read 0"),e.read(0)}function R(e,t){a("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),K(e),t.flowing&&!t.reading&&e.read(0)}function K(e){var t=e._readableState;for(a("flow",t.flowing);t.flowing&&null!==e.read(););}function L(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function x(e){var t=e._readableState;a("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(P,t,e))}function P(e,t){a("endReadableNT",e.endEmitted,e.length),e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function U(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return a("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):D(this),null;if(0===(e=b(e,t))&&t.ended)return 0===t.length&&x(this),null;var n,i=t.needReadable;return a("need readable",i),(0===t.length||t.length-e0?L(e,t):null)?(t.needReadable=!0,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&x(this)),null!==n&&this.emit("data",n),n},w.prototype._read=function(e){this.emit("error",new I("_read()"))},w.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,a("pipe count=%d opts=%j",n.pipesCount,t);var A=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr?s:f;function o(t,i){a("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,a("cleanup"),e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",c),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",s),r.removeListener("end",f),r.removeListener("data",l),g=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function s(){a("onend"),e.end()}n.endEmitted?process.nextTick(A):r.once("end",A),e.on("unpipe",o);var c=function(e){return function(){var t=e._readableState;a("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,"data")&&(t.flowing=!0,K(e))}}(r);e.on("drain",c);var g=!1;function l(t){a("ondata");var i=e.write(t);a("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==U(n.pipes,e))&&!g&&(a("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function u(t){a("onerror",t),f(),e.removeListener("error",u),0===i(e,"error")&&e.emit("error",t)}function h(){e.removeListener("finish",p),f()}function p(){a("onfinish"),e.removeListener("close",h),f()}function f(){a("unpipe"),r.unpipe(e)}return r.on("data",l),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",u),e.once("close",h),e.once("finish",p),e.emit("pipe",r),n.flowing||(a("pipe resume"),r.resume()),e},w.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var A=0;A0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,a("on readable",n.length,n.reading),n.length?D(this):n.reading||process.nextTick(F,this))),r},w.prototype.addListener=w.prototype.on,w.prototype.removeListener=function(e,t){var r=A.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(N,this),r},w.prototype.removeAllListeners=function(e){var t=A.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(N,this),t},w.prototype.resume=function(){var e=this._readableState;return e.flowing||(a("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(R,e,t))}(this,e)),e.paused=!1,this},w.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},w.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(a("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(a("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var A=0;A{"use strict";e.exports=g;var n=r(20663).q,i=n.ERR_METHOD_NOT_IMPLEMENTED,A=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,a=r(72434);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new A);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var i;e.exports=w,w.WritableState=y;var A={deprecate:r(73212)},o=r(49298),s=r(64293).Buffer,a=global.Uint8Array||function(){};var c,g=r(32340),l=r(77433).getHighWaterMark,u=r(20663).q,h=u.ERR_INVALID_ARG_TYPE,p=u.ERR_METHOD_NOT_IMPLEMENTED,f=u.ERR_MULTIPLE_CALLBACK,d=u.ERR_STREAM_CANNOT_PIPE,C=u.ERR_STREAM_DESTROYED,I=u.ERR_STREAM_NULL_VALUES,E=u.ERR_STREAM_WRITE_AFTER_END,m=u.ERR_UNKNOWN_ENCODING;function B(){}function y(e,t,A){i=i||r(72434),e=e||{},"boolean"!=typeof A&&(A=t instanceof i),this.objectMode=!!e.objectMode,A&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",A),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if("function"!=typeof i)throw new f;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(process.nextTick(i,n),process.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),k(e,t))}(e,r,n,t,i);else{var A=D(r)||e.destroyed;A||r.corked||r.bufferProcessing||!r.bufferedRequest||b(e,r),n?process.nextTick(v,e,r,A,i):v(e,r,A,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function w(e){var t=this instanceof(i=i||r(72434));if(!t&&!c.call(w,this))return new w(e);this._writableState=new y(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),o.call(this)}function Q(e,t,r,n,i,A,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new C("write")):r?e._writev(i,t.onwrite):e._write(i,A,t.onwrite),t.sync=!1}function v(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),k(e,t)}function b(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,A=new Array(i),o=t.corkedRequestsFree;o.entry=r;for(var s=0,a=!0;r;)A[s]=r,r.isBuf||(a=!1),r=r.next,s+=1;A.allBuffers=a,Q(e,t,!0,t.length,A,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,g=r.encoding,l=r.callback;if(Q(e,t,!1,t.objectMode?1:c.length,c,g,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function D(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),k(e,t)}))}function k(e,t){var r=D(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(S,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}r(85870)(w,o),y.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(y.prototype,"buffer",{get:A.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(w,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===w&&(e&&e._writableState instanceof y)}})):c=function(e){return e instanceof this},w.prototype.pipe=function(){this.emit("error",new d)},w.prototype.write=function(e,t,r){var n,i=this._writableState,A=!1,o=!i.objectMode&&(n=e,s.isBuffer(n)||n instanceof a);return o&&!s.isBuffer(e)&&(e=function(e){return s.from(e)}(e)),"function"==typeof t&&(r=t,t=null),o?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=B),i.ending?function(e,t){var r=new E;e.emit("error",r),process.nextTick(t,r)}(this,r):(o||function(e,t,r,n){var i;return null===r?i=new I:"string"==typeof r||t.objectMode||(i=new h("chunk",["string","Buffer"],r)),!i||(e.emit("error",i),process.nextTick(n,i),!1)}(this,i,e,r))&&(i.pendingcb++,A=function(e,t,r,n,i,A){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=s.from(t,r));return t}(t,n,i);n!==o&&(r=!0,i="buffer",n=o)}var a=t.objectMode?1:n.length;t.length+=a;var c=t.length-1))throw new m(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(w.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(w.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),w.prototype._write=function(e,t,r){r(new p("_write()"))},w.prototype._writev=null,w.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,k(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(w.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(w.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),w.prototype.destroy=g.destroy,w.prototype._undestroy=g.undestroy,w.prototype._destroy=function(e,t){t(e)}},4245:(e,t,r)=>{"use strict";var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var A=r(91327),o=Symbol("lastResolve"),s=Symbol("lastReject"),a=Symbol("error"),c=Symbol("ended"),g=Symbol("lastPromise"),l=Symbol("handlePromise"),u=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[u].read();null!==r&&(e[g]=null,e[o]=null,e[s]=null,t(h(r,!1)))}}function f(e){process.nextTick(p,e)}var d=Object.getPrototypeOf((function(){})),C=Object.setPrototypeOf((i(n={get stream(){return this[u]},next:function(){var e=this,t=this[a];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(h(null,!0));if(this[u].destroyed)return new Promise((function(t,r){process.nextTick((function(){e[a]?r(e[a]):t(h(null,!0))}))}));var r,n=this[g];if(n)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[l](r,n)}),n)}}(n,this));else{var i=this[u].read();if(null!==i)return Promise.resolve(h(i,!1));r=new Promise(this[l])}return this[g]=r,r}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[u].destroy(null,(function(e){e?r(e):t(h(null,!0))}))}))})),n),d);e.exports=function(e){var t,r=Object.create(C,(i(t={},u,{value:e,writable:!0}),i(t,o,{value:null,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,g,{value:null,writable:!0}),i(t,l,{value:function(e,t){var n=r[u].read();n?(r[g]=null,r[o]=null,r[s]=null,e(h(n,!1))):(r[o]=e,r[s]=t)},writable:!0}),t));return A(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[s];return null!==t&&(r[g]=null,r[o]=null,r[s]=null,t(e)),void(r[a]=e)}var n=r[o];null!==n&&(r[g]=null,r[o]=null,r[s]=null,n(h(null,!0))),r[c]=!0})),e.on("readable",f.bind(null,r)),r}},43117:(e,t,r)=>{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=r(64293).Buffer,A=r(31669).inspect,o=A&&A.custom||"inspect";e.exports=function(){function e(){this.head=null,this.tail=null,this.length=0}var t=e.prototype;return t.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},t.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},t.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},t.clear=function(){this.head=this.tail=null,this.length=0},t.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},t.concat=function(e){if(0===this.length)return i.alloc(0);for(var t,r,n,A=i.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,r=A,n=s,i.prototype.copy.call(t,r,n),s+=o.data.length,o=o.next;return A},t.consume=function(e,t){var r;return ei.length?i.length:e;if(A===i.length?n+=i:n+=i.slice(0,e),0===(e-=A)){A===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(A));break}++r}return this.length-=r,n},t._getBuffer=function(e){var t=i.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var A=r.data,o=e>A.length?A.length:e;if(A.copy(t,t.length-e,0,o),0===(e-=o)){o===A.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=A.slice(o));break}++n}return this.length-=n,t},t[o]=function(e,t){return A(this,function(e){for(var t=1;t{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,i){var A=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(i?i(e):!e||this._writableState&&this._writableState.errorEmitted||process.nextTick(n,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!i&&e?(process.nextTick(t,A,e),A._writableState&&(A._writableState.errorEmitted=!0)):i?(process.nextTick(r,A),i(e)):process.nextTick(r,A)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},91327:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,A){if("function"==typeof r)return e(t,null,r);r||(r={}),A=function(e){var t=!1;return function(r){t||(t=!0,e.call(this,r))}}(A||i);var o=t._writableState,s=t._readableState,a=r.readable||!1!==r.readable&&t.readable,c=r.writable||!1!==r.writable&&t.writable,g=function(){t.writable||l()},l=function(){c=!1,a||A.call(t)},u=function(){a=!1,c||A.call(t)},h=function(e){A.call(t,e)},p=function(){return(!a||s&&s.ended)&&(!c||o&&o.ended)?void 0:A.call(t,new n)},f=function(){t.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?c&&!o&&(t.on("end",g),t.on("close",g)):(t.on("complete",l),t.on("abort",p),t.req?f():t.on("request",f)),t.on("end",u),t.on("finish",l),!1!==r.error&&t.on("error",h),t.on("close",p),function(){t.removeListener("complete",l),t.removeListener("abort",p),t.removeListener("request",f),t.req&&t.req.removeListener("finish",l),t.removeListener("end",g),t.removeListener("close",g),t.removeListener("finish",l),t.removeListener("end",u),t.removeListener("error",h),t.removeListener("close",p)}}},4939:(e,t,r)=>{"use strict";var n;var i=r(20663).q,A=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function s(e){if(e)throw e}function a(e,t,i,A){A=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(A);var s=!1;e.on("close",(function(){s=!0})),void 0===n&&(n=r(91327)),n(e,{readable:t,writable:i},(function(e){if(e)return A(e);s=!0,A()}));var a=!1;return function(t){if(!s&&!a)return a=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void A(t||new o("pipe"))}}function c(e){e()}function g(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?s:e.pop():s}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r0,(function(e){n||(n=e),e&&o.forEach(c),A||(o.forEach(c),i(n))}))}));return t.reduce(g)}},77433:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,i){var A=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=A){if(!isFinite(A)||Math.floor(A)!==A||A<0)throw new n(i?r:"highWaterMark",A);return Math.floor(A)}return e.objectMode?16:16384}}},49298:(e,t,r)=>{e.exports=r(92413)},86897:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):((t=e.exports=r(58020)).Stream=n||t,t.Readable=t,t.Writable=r(6729),t.Duplex=r(72434),t.Transform=r(54801),t.PassThrough=r(52444),t.finished=r(91327),t.pipeline=r(4939))},19476:(e,t,r)=>{"use strict";const n=r(4016);e.exports=(e={})=>new Promise((t,r)=>{const i=n.connect(e,()=>{e.resolveSocket?(i.off("error",r),t({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),t({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})},48491:(e,t,r)=>{"use strict";const n=r(92413).Readable,i=r(55737);e.exports=class extends n{constructor(e,t,r,n){if("number"!=typeof e)throw new TypeError("Argument `statusCode` should be a number");if("object"!=typeof t)throw new TypeError("Argument `headers` should be an object");if(!(r instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if("string"!=typeof n)throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=i(t),this.body=r,this.url=n}_read(){this.push(this.body),this.push(null)}}},2383:e=>{"use strict";e.exports=function(e){var t=new e,r=t;return{get:function(){var n=t;return n.next?t=n.next:(t=new e,r=t),n.next=null,n},release:function(e){r.next=e,r=e}}}},69078:e=>{e.exports=function(e,t){var r,n,i,A=!0;Array.isArray(e)?(r=[],n=e.length):(i=Object.keys(e),r={},n=i.length);function o(e){function n(){t&&t(e,r),t=null}A?process.nextTick(n):n()}function s(e,t,i){r[e]=i,(0==--n||t)&&o(t)}n?i?i.forEach((function(t){e[t]((function(e,r){s(t,e,r)}))})):e.forEach((function(e,t){e((function(e,r){s(t,e,r)}))})):o(null);A=!1}},13499:(e,t,r)=>{var n=r(64293),i=n.Buffer;function A(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(A(n,t),t.Buffer=o),A(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},95584:(e,t)=>{var r;t=e.exports=l,r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var n=Number.MAX_SAFE_INTEGER||9007199254740991,i=t.re=[],A=t.src=[],o=t.tokens={},s=0;function a(e){o[e]=s++}a("NUMERICIDENTIFIER"),A[o.NUMERICIDENTIFIER]="0|[1-9]\\d*",a("NUMERICIDENTIFIERLOOSE"),A[o.NUMERICIDENTIFIERLOOSE]="[0-9]+",a("NONNUMERICIDENTIFIER"),A[o.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",a("MAINVERSION"),A[o.MAINVERSION]="("+A[o.NUMERICIDENTIFIER]+")\\.("+A[o.NUMERICIDENTIFIER]+")\\.("+A[o.NUMERICIDENTIFIER]+")",a("MAINVERSIONLOOSE"),A[o.MAINVERSIONLOOSE]="("+A[o.NUMERICIDENTIFIERLOOSE]+")\\.("+A[o.NUMERICIDENTIFIERLOOSE]+")\\.("+A[o.NUMERICIDENTIFIERLOOSE]+")",a("PRERELEASEIDENTIFIER"),A[o.PRERELEASEIDENTIFIER]="(?:"+A[o.NUMERICIDENTIFIER]+"|"+A[o.NONNUMERICIDENTIFIER]+")",a("PRERELEASEIDENTIFIERLOOSE"),A[o.PRERELEASEIDENTIFIERLOOSE]="(?:"+A[o.NUMERICIDENTIFIERLOOSE]+"|"+A[o.NONNUMERICIDENTIFIER]+")",a("PRERELEASE"),A[o.PRERELEASE]="(?:-("+A[o.PRERELEASEIDENTIFIER]+"(?:\\."+A[o.PRERELEASEIDENTIFIER]+")*))",a("PRERELEASELOOSE"),A[o.PRERELEASELOOSE]="(?:-?("+A[o.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+A[o.PRERELEASEIDENTIFIERLOOSE]+")*))",a("BUILDIDENTIFIER"),A[o.BUILDIDENTIFIER]="[0-9A-Za-z-]+",a("BUILD"),A[o.BUILD]="(?:\\+("+A[o.BUILDIDENTIFIER]+"(?:\\."+A[o.BUILDIDENTIFIER]+")*))",a("FULL"),a("FULLPLAIN"),A[o.FULLPLAIN]="v?"+A[o.MAINVERSION]+A[o.PRERELEASE]+"?"+A[o.BUILD]+"?",A[o.FULL]="^"+A[o.FULLPLAIN]+"$",a("LOOSEPLAIN"),A[o.LOOSEPLAIN]="[v=\\s]*"+A[o.MAINVERSIONLOOSE]+A[o.PRERELEASELOOSE]+"?"+A[o.BUILD]+"?",a("LOOSE"),A[o.LOOSE]="^"+A[o.LOOSEPLAIN]+"$",a("GTLT"),A[o.GTLT]="((?:<|>)?=?)",a("XRANGEIDENTIFIERLOOSE"),A[o.XRANGEIDENTIFIERLOOSE]=A[o.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",a("XRANGEIDENTIFIER"),A[o.XRANGEIDENTIFIER]=A[o.NUMERICIDENTIFIER]+"|x|X|\\*",a("XRANGEPLAIN"),A[o.XRANGEPLAIN]="[v=\\s]*("+A[o.XRANGEIDENTIFIER]+")(?:\\.("+A[o.XRANGEIDENTIFIER]+")(?:\\.("+A[o.XRANGEIDENTIFIER]+")(?:"+A[o.PRERELEASE]+")?"+A[o.BUILD]+"?)?)?",a("XRANGEPLAINLOOSE"),A[o.XRANGEPLAINLOOSE]="[v=\\s]*("+A[o.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+A[o.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+A[o.XRANGEIDENTIFIERLOOSE]+")(?:"+A[o.PRERELEASELOOSE]+")?"+A[o.BUILD]+"?)?)?",a("XRANGE"),A[o.XRANGE]="^"+A[o.GTLT]+"\\s*"+A[o.XRANGEPLAIN]+"$",a("XRANGELOOSE"),A[o.XRANGELOOSE]="^"+A[o.GTLT]+"\\s*"+A[o.XRANGEPLAINLOOSE]+"$",a("COERCE"),A[o.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",a("COERCERTL"),i[o.COERCERTL]=new RegExp(A[o.COERCE],"g"),a("LONETILDE"),A[o.LONETILDE]="(?:~>?)",a("TILDETRIM"),A[o.TILDETRIM]="(\\s*)"+A[o.LONETILDE]+"\\s+",i[o.TILDETRIM]=new RegExp(A[o.TILDETRIM],"g");a("TILDE"),A[o.TILDE]="^"+A[o.LONETILDE]+A[o.XRANGEPLAIN]+"$",a("TILDELOOSE"),A[o.TILDELOOSE]="^"+A[o.LONETILDE]+A[o.XRANGEPLAINLOOSE]+"$",a("LONECARET"),A[o.LONECARET]="(?:\\^)",a("CARETTRIM"),A[o.CARETTRIM]="(\\s*)"+A[o.LONECARET]+"\\s+",i[o.CARETTRIM]=new RegExp(A[o.CARETTRIM],"g");a("CARET"),A[o.CARET]="^"+A[o.LONECARET]+A[o.XRANGEPLAIN]+"$",a("CARETLOOSE"),A[o.CARETLOOSE]="^"+A[o.LONECARET]+A[o.XRANGEPLAINLOOSE]+"$",a("COMPARATORLOOSE"),A[o.COMPARATORLOOSE]="^"+A[o.GTLT]+"\\s*("+A[o.LOOSEPLAIN]+")$|^$",a("COMPARATOR"),A[o.COMPARATOR]="^"+A[o.GTLT]+"\\s*("+A[o.FULLPLAIN]+")$|^$",a("COMPARATORTRIM"),A[o.COMPARATORTRIM]="(\\s*)"+A[o.GTLT]+"\\s*("+A[o.LOOSEPLAIN]+"|"+A[o.XRANGEPLAIN]+")",i[o.COMPARATORTRIM]=new RegExp(A[o.COMPARATORTRIM],"g");a("HYPHENRANGE"),A[o.HYPHENRANGE]="^\\s*("+A[o.XRANGEPLAIN]+")\\s+-\\s+("+A[o.XRANGEPLAIN]+")\\s*$",a("HYPHENRANGELOOSE"),A[o.HYPHENRANGELOOSE]="^\\s*("+A[o.XRANGEPLAINLOOSE]+")\\s+-\\s+("+A[o.XRANGEPLAINLOOSE]+")\\s*$",a("STAR"),A[o.STAR]="(<|>)?=?\\s*\\*";for(var c=0;c256)return null;if(!(t.loose?i[o.LOOSE]:i[o.FULL]).test(e))return null;try{return new l(e,t)}catch(e){return null}}function l(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof l){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof l))return new l(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var A=e.trim().match(t.loose?i[o.LOOSE]:i[o.FULL]);if(!A)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+A[1],this.minor=+A[2],this.patch=+A[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");A[4]?this.prerelease=A[4].split(".").map((function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new l(e,r).inc(t,n).version}catch(e){return null}},t.diff=function(e,t){if(C(e,t))return null;var r=g(e),n=g(t),i="";if(r.prerelease.length||n.prerelease.length){i="pre";var A="prerelease"}for(var o in r)if(("major"===o||"minor"===o||"patch"===o)&&r[o]!==n[o])return i+o;return A},t.compareIdentifiers=h;var u=/^[0-9]+$/;function h(e,t){var r=u.test(e),n=u.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e0}function d(e,t,r){return p(e,t,r)<0}function C(e,t,r){return 0===p(e,t,r)}function I(e,t,r){return 0!==p(e,t,r)}function E(e,t,r){return p(e,t,r)>=0}function m(e,t,r){return p(e,t,r)<=0}function B(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return C(e,r,n);case"!=":return I(e,r,n);case">":return f(e,r,n);case">=":return E(e,r,n);case"<":return d(e,r,n);case"<=":return m(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}function y(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof y){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof y))return new y(e,t);r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===w?this.value="":this.value=this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){return h(t,e)},t.major=function(e,t){return new l(e,t).major},t.minor=function(e,t){return new l(e,t).minor},t.patch=function(e,t){return new l(e,t).patch},t.compare=p,t.compareLoose=function(e,t){return p(e,t,!0)},t.compareBuild=function(e,t,r){var n=new l(e,r),i=new l(t,r);return n.compare(i)||n.compareBuild(i)},t.rcompare=function(e,t,r){return p(t,e,r)},t.sort=function(e,r){return e.sort((function(e,n){return t.compareBuild(e,n,r)}))},t.rsort=function(e,r){return e.sort((function(e,n){return t.compareBuild(n,e,r)}))},t.gt=f,t.lt=d,t.eq=C,t.neq=I,t.gte=E,t.lte=m,t.cmp=B,t.Comparator=y;var w={};function Q(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof Q)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Q(e.raw,t);if(e instanceof y)return new Q(e.value,t);if(!(this instanceof Q))return new Q(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((function(e){return this.parseRange(e.trim())}),this).filter((function(e){return e.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every((function(e){return i.intersects(e,t)})),i=n.pop();return r}function b(e){return!e||"x"===e.toLowerCase()||"*"===e}function D(e,t,r,n,i,A,o,s,a,c,g,l,u){return((t=b(r)?"":b(n)?">="+r+".0.0":b(i)?">="+r+"."+n+".0":">="+t)+" "+(s=b(a)?"":b(c)?"<"+(+a+1)+".0.0":b(g)?"<"+a+"."+(+c+1)+".0":l?"<="+a+"."+c+"."+g+"-"+l:"<="+s)).trim()}function S(e,t,n){for(var i=0;i0){var A=e[i].semver;if(A.major===t.major&&A.minor===t.minor&&A.patch===t.patch)return!0}return!1}return!0}function k(e,t,r){try{t=new Q(t,r)}catch(e){return!1}return t.test(e)}function M(e,t,r,n){var i,A,o,s,a;switch(e=new l(e,n),t=new Q(t,n),r){case">":i=f,A=m,o=d,s=">",a=">=";break;case"<":i=d,A=E,o=f,s="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(k(e,t,n))return!1;for(var c=0;c=0.0.0")),u=u||e,h=h||e,i(e.semver,u.semver,n)?u=e:o(e.semver,h.semver,n)&&(h=e)})),u.operator===s||u.operator===a)return!1;if((!h.operator||h.operator===s)&&A(e,h.semver))return!1;if(h.operator===a&&o(e,h.semver))return!1}return!0}y.prototype.parse=function(e){var t=this.options.loose?i[o.COMPARATORLOOSE]:i[o.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new l(r[2],this.options.loose):this.semver=w},y.prototype.toString=function(){return this.value},y.prototype.test=function(e){if(r("Comparator.test",e,this.options.loose),this.semver===w||e===w)return!0;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}return B(e,this.operator,this.semver,this.options)},y.prototype.intersects=function(e,t){if(!(e instanceof y))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new Q(e.value,t),k(this.value,r,t));if(""===e.operator)return""===e.value||(r=new Q(this.value,t),k(e.semver,r,t));var n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),i=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),A=this.semver.version===e.semver.version,o=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=B(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),a=B(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||A&&o||s||a},t.Range=Q,Q.prototype.format=function(){return this.range=this.set.map((function(e){return e.join(" ").trim()})).join("||").trim(),this.range},Q.prototype.toString=function(){return this.range},Q.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var n=t?i[o.HYPHENRANGELOOSE]:i[o.HYPHENRANGE];e=e.replace(n,D),r("hyphen replace",e),e=e.replace(i[o.COMPARATORTRIM],"$1$2$3"),r("comparator trim",e,i[o.COMPARATORTRIM]),e=(e=(e=e.replace(i[o.TILDETRIM],"$1~")).replace(i[o.CARETTRIM],"$1^")).split(/\s+/).join(" ");var A=t?i[o.COMPARATORLOOSE]:i[o.COMPARATOR],s=e.split(" ").map((function(e){return function(e,t){return r("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){r("caret",e,t);var n=t.loose?i[o.CARETLOOSE]:i[o.CARET];return e.replace(n,(function(t,n,i,A,o){var s;return r("caret",e,t,n,i,A,o),b(n)?s="":b(i)?s=">="+n+".0.0 <"+(+n+1)+".0.0":b(A)?s="0"===n?">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":">="+n+"."+i+".0 <"+(+n+1)+".0.0":o?(r("replaceCaret pr",o),s="0"===n?"0"===i?">="+n+"."+i+"."+A+"-"+o+" <"+n+"."+i+"."+(+A+1):">="+n+"."+i+"."+A+"-"+o+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+A+"-"+o+" <"+(+n+1)+".0.0"):(r("no pr"),s="0"===n?"0"===i?">="+n+"."+i+"."+A+" <"+n+"."+i+"."+(+A+1):">="+n+"."+i+"."+A+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+A+" <"+(+n+1)+".0.0"),r("caret return",s),s}))}(e,t)})).join(" ")}(e,t),r("caret",e),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){var n=t.loose?i[o.TILDELOOSE]:i[o.TILDE];return e.replace(n,(function(t,n,i,A,o){var s;return r("tilde",e,t,n,i,A,o),b(n)?s="":b(i)?s=">="+n+".0.0 <"+(+n+1)+".0.0":b(A)?s=">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":o?(r("replaceTilde pr",o),s=">="+n+"."+i+"."+A+"-"+o+" <"+n+"."+(+i+1)+".0"):s=">="+n+"."+i+"."+A+" <"+n+"."+(+i+1)+".0",r("tilde return",s),s}))}(e,t)})).join(" ")}(e,t),r("tildes",e),e=function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map((function(e){return function(e,t){e=e.trim();var n=t.loose?i[o.XRANGELOOSE]:i[o.XRANGE];return e.replace(n,(function(n,i,A,o,s,a){r("xRange",e,n,i,A,o,s,a);var c=b(A),g=c||b(o),l=g||b(s),u=l;return"="===i&&u&&(i=""),a=t.includePrerelease?"-0":"",c?n=">"===i||"<"===i?"<0.0.0-0":"*":i&&u?(g&&(o=0),s=0,">"===i?(i=">=",g?(A=+A+1,o=0,s=0):(o=+o+1,s=0)):"<="===i&&(i="<",g?A=+A+1:o=+o+1),n=i+A+"."+o+"."+s+a):g?n=">="+A+".0.0"+a+" <"+(+A+1)+".0.0"+a:l&&(n=">="+A+"."+o+".0"+a+" <"+A+"."+(+o+1)+".0"+a),r("xRange return",n),n}))}(e,t)})).join(" ")}(e,t),r("xrange",e),e=function(e,t){return r("replaceStars",e,t),e.trim().replace(i[o.STAR],"")}(e,t),r("stars",e),e}(e,this.options)}),this).join(" ").split(/\s+/);return this.options.loose&&(s=s.filter((function(e){return!!e.match(A)}))),s=s.map((function(e){return new y(e,this.options)}),this)},Q.prototype.intersects=function(e,t){if(!(e instanceof Q))throw new TypeError("a Range is required");return this.set.some((function(r){return v(r,t)&&e.set.some((function(e){return v(e,t)&&r.every((function(r){return e.every((function(e){return r.intersects(e,t)}))}))}))}))},t.toComparators=function(e,t){return new Q(e,t).set.map((function(e){return e.map((function(e){return e.value})).join(" ").trim().split(" ")}))},Q.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(var t=0;t":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!f(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}}))}if(r&&e.test(r))return r;return null},t.validRange=function(e,t){try{return new Q(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){return M(e,t,"<",r)},t.gtr=function(e,t,r){return M(e,t,">",r)},t.outside=M,t.prerelease=function(e,t){var r=g(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){return e=new Q(e,r),t=new Q(t,r),e.intersects(t)},t.coerce=function(e,t){if(e instanceof l)return e;"number"==typeof e&&(e=String(e));if("string"!=typeof e)return null;var r=null;if((t=t||{}).rtl){for(var n;(n=i[o.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&n.index+n[0].length===r.index+r[0].length||(r=n),i[o.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;i[o.COERCERTL].lastIndex=-1}else r=e.match(i[o.COERCE]);if(null===r)return null;return g(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}},29069:(e,t,r)=>{const n=Symbol("SemVer ANY");class i{static get ANY(){return n}constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof i){if(e.loose===!!t.loose)return e;e=e.value}a("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===n?this.value="":this.value=this.operator+this.semver.version,a("comp",this)}parse(e){const t=this.options.loose?A[o.COMPARATORLOOSE]:A[o.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(a("Comparator.test",e,this.options.loose),this.semver===n||e===n)return!0;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}return s(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof i))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new g(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new g(this.value,t).test(e.semver);const r=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),A=this.semver.version===e.semver.version,o=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),a=s(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=s(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||n||A&&o||a||c}}e.exports=i;const{re:A,t:o}=r(49439),s=r(38754),a=r(6029),c=r(14772),g=r(73004)},73004:(e,t,r)=>{class n{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const t=this.options.loose;e=e.trim();const r=t?s[a.HYPHENRANGELOOSE]:s[a.HYPHENRANGE];e=e.replace(r,w(this.options.includePrerelease)),A("hyphen replace",e),e=e.replace(s[a.COMPARATORTRIM],c),A("comparator trim",e,s[a.COMPARATORTRIM]),e=(e=(e=e.replace(s[a.TILDETRIM],g)).replace(s[a.CARETTRIM],l)).split(/\s+/).join(" ");const n=t?s[a.COMPARATORLOOSE]:s[a.COMPARATOR];return e.split(" ").map(e=>h(e,this.options)).join(" ").split(/\s+/).map(e=>y(e,this.options)).filter(this.options.loose?e=>!!e.match(n):()=>!0).map(e=>new i(e,this.options))}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Range is required");return this.set.some(r=>u(r,t)&&e.set.some(e=>u(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new o(e,this.options)}catch(e){return!1}for(let t=0;t{let r=!0;const n=e.slice();let i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r},h=(e,t)=>(A("comp",e,t),e=C(e,t),A("caret",e),e=f(e,t),A("tildes",e),e=E(e,t),A("xrange",e),e=B(e,t),A("stars",e),e),p=e=>!e||"x"===e.toLowerCase()||"*"===e,f=(e,t)=>e.trim().split(/\s+/).map(e=>d(e,t)).join(" "),d=(e,t)=>{const r=t.loose?s[a.TILDELOOSE]:s[a.TILDE];return e.replace(r,(t,r,n,i,o)=>{let s;return A("tilde",e,t,r,n,i,o),p(r)?s="":p(n)?s=`>=${r}.0.0 <${+r+1}.0.0-0`:p(i)?s=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:o?(A("replaceTilde pr",o),s=`>=${r}.${n}.${i}-${o} <${r}.${+n+1}.0-0`):s=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,A("tilde return",s),s})},C=(e,t)=>e.trim().split(/\s+/).map(e=>I(e,t)).join(" "),I=(e,t)=>{A("caret",e,t);const r=t.loose?s[a.CARETLOOSE]:s[a.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,o,s)=>{let a;return A("caret",e,t,r,i,o,s),p(r)?a="":p(i)?a=`>=${r}.0.0${n} <${+r+1}.0.0-0`:p(o)?a="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:s?(A("replaceCaret pr",s),a="0"===r?"0"===i?`>=${r}.${i}.${o}-${s} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}-${s} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o}-${s} <${+r+1}.0.0-0`):(A("no pr"),a="0"===r?"0"===i?`>=${r}.${i}.${o}${n} <${r}.${i}.${+o+1}-0`:`>=${r}.${i}.${o}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${o} <${+r+1}.0.0-0`),A("caret return",a),a})},E=(e,t)=>(A("replaceXRanges",e,t),e.split(/\s+/).map(e=>m(e,t)).join(" ")),m=(e,t)=>{e=e.trim();const r=t.loose?s[a.XRANGELOOSE]:s[a.XRANGE];return e.replace(r,(r,n,i,o,s,a)=>{A("xRange",e,r,n,i,o,s,a);const c=p(i),g=c||p(o),l=g||p(s),u=l;return"="===n&&u&&(n=""),a=t.includePrerelease?"-0":"",c?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&u?(g&&(o=0),s=0,">"===n?(n=">=",g?(i=+i+1,o=0,s=0):(o=+o+1,s=0)):"<="===n&&(n="<",g?i=+i+1:o=+o+1),"<"===n&&(a="-0"),r=`${n+i}.${o}.${s}${a}`):g?r=`>=${i}.0.0${a} <${+i+1}.0.0-0`:l&&(r=`>=${i}.${o}.0${a} <${i}.${+o+1}.0-0`),A("xRange return",r),r})},B=(e,t)=>(A("replaceStars",e,t),e.trim().replace(s[a.STAR],"")),y=(e,t)=>(A("replaceGTE0",e,t),e.trim().replace(s[t.includePrerelease?a.GTE0PRE:a.GTE0],"")),w=e=>(t,r,n,i,A,o,s,a,c,g,l,u,h)=>`${r=p(n)?"":p(i)?`>=${n}.0.0${e?"-0":""}`:p(A)?`>=${n}.${i}.0${e?"-0":""}`:o?">="+r:`>=${r}${e?"-0":""}`} ${a=p(c)?"":p(g)?`<${+c+1}.0.0-0`:p(l)?`<${c}.${+g+1}.0-0`:u?`<=${c}.${g}.${l}-${u}`:e?`<${c}.${g}.${+l+1}-0`:"<="+a}`.trim(),Q=(e,t,r)=>{for(let r=0;r0){const n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0}return!1}return!0}},14772:(e,t,r)=>{const n=r(6029),{MAX_LENGTH:i,MAX_SAFE_INTEGER:A}=r(76483),{re:o,t:s}=r(49439),{compareIdentifiers:a}=r(99297);class c{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof c){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?o[s.LOOSE]:o[s.FULL]);if(!r)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>A||this.major<0)throw new TypeError("Invalid major version");if(this.minor>A||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>A||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this}}e.exports=c},31192:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}},38754:(e,t,r)=>{const n=r(78760),i=r(83286),A=r(26544),o=r(44984),s=r(65069),a=r(93845);e.exports=(e,t,r,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return n(e,r,c);case"!=":return i(e,r,c);case">":return A(e,r,c);case">=":return o(e,r,c);case"<":return s(e,r,c);case"<=":return a(e,r,c);default:throw new TypeError("Invalid operator: "+t)}}},38113:(e,t,r)=>{const n=r(14772),i=r(21883),{re:A,t:o}=r(49439);e.exports=(e,t)=>{if(e instanceof n)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let r=null;if((t=t||{}).rtl){let t;for(;(t=A[o.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&t.index+t[0].length===r.index+r[0].length||(r=t),A[o.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;A[o.COERCERTL].lastIndex=-1}else r=e.match(A[o.COERCE]);return null===r?null:i(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)}},63353:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>{const i=new n(e,r),A=new n(t,r);return i.compare(A)||i.compareBuild(A)}},58566:(e,t,r)=>{const n=r(17340);e.exports=(e,t)=>n(e,t,!0)},17340:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))},29301:(e,t,r)=>{const n=r(21883),i=r(78760);e.exports=(e,t)=>{if(i(e,t))return null;{const r=n(e),i=n(t),A=r.prerelease.length||i.prerelease.length,o=A?"pre":"",s=A?"prerelease":"";for(const e in r)if(("major"===e||"minor"===e||"patch"===e)&&r[e]!==i[e])return o+e;return s}}},78760:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0===n(e,t,r)},26544:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>0},44984:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>=0},24063:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r,i)=>{"string"==typeof r&&(i=r,r=void 0);try{return new n(e,r).inc(t,i).version}catch(e){return null}}},65069:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<0},93845:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<=0},75157:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).major},5195:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).minor},83286:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0!==n(e,t,r)},21883:(e,t,r)=>{const{MAX_LENGTH:n}=r(76483),{re:i,t:A}=r(49439),o=r(14772);e.exports=(e,t)=>{if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof o)return e;if("string"!=typeof e)return null;if(e.length>n)return null;if(!(t.loose?i[A.LOOSE]:i[A.FULL]).test(e))return null;try{return new o(e,t)}catch(e){return null}}},39592:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).patch},27050:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}},93788:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(t,e,r)},15213:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))},73011:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>{try{t=new n(t,r)}catch(e){return!1}return t.test(e)}},71102:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))},99589:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r?r.version:null}},53887:(e,t,r)=>{const n=r(49439);e.exports={re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r(76483).SEMVER_SPEC_VERSION,SemVer:r(14772),compareIdentifiers:r(99297).compareIdentifiers,rcompareIdentifiers:r(99297).rcompareIdentifiers,parse:r(21883),valid:r(99589),clean:r(31192),inc:r(24063),diff:r(29301),major:r(75157),minor:r(5195),patch:r(39592),prerelease:r(27050),compare:r(17340),rcompare:r(93788),compareLoose:r(58566),compareBuild:r(63353),sort:r(71102),rsort:r(15213),gt:r(26544),lt:r(65069),eq:r(78760),neq:r(83286),gte:r(44984),lte:r(93845),cmp:r(38754),coerce:r(38113),Comparator:r(29069),Range:r(73004),satisfies:r(73011),toComparators:r(47753),maxSatisfying:r(1895),minSatisfying:r(33252),minVersion:r(4224),validRange:r(44315),outside:r(842),gtr:r(69258),ltr:r(36928),intersects:r(87395),simplifyRange:r(3530),subset:r(74264)}},76483:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},6029:e=>{const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},99297:e=>{const t=/^[0-9]+$/,r=(e,r)=>{const n=t.test(e),i=t.test(r);return n&&i&&(e=+e,r=+r),e===r?0:n&&!i?-1:i&&!n?1:er(t,e)}},49439:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:n}=r(76483),i=r(6029),A=(t=e.exports={}).re=[],o=t.src=[],s=t.t={};let a=0;const c=(e,t,r)=>{const n=a++;i(n,t),s[e]=n,o[n]=t,A[n]=new RegExp(t,r?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${o[s.NUMERICIDENTIFIER]})\\.(${o[s.NUMERICIDENTIFIER]})\\.(${o[s.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${o[s.NUMERICIDENTIFIERLOOSE]})\\.(${o[s.NUMERICIDENTIFIERLOOSE]})\\.(${o[s.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${o[s.NUMERICIDENTIFIER]}|${o[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${o[s.NUMERICIDENTIFIERLOOSE]}|${o[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${o[s.PRERELEASEIDENTIFIER]}(?:\\.${o[s.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${o[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${o[s.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${o[s.BUILDIDENTIFIER]}(?:\\.${o[s.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${o[s.MAINVERSION]}${o[s.PRERELEASE]}?${o[s.BUILD]}?`),c("FULL",`^${o[s.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${o[s.MAINVERSIONLOOSE]}${o[s.PRERELEASELOOSE]}?${o[s.BUILD]}?`),c("LOOSE",`^${o[s.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",o[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),c("XRANGEIDENTIFIER",o[s.NUMERICIDENTIFIER]+"|x|X|\\*"),c("XRANGEPLAIN",`[v=\\s]*(${o[s.XRANGEIDENTIFIER]})(?:\\.(${o[s.XRANGEIDENTIFIER]})(?:\\.(${o[s.XRANGEIDENTIFIER]})(?:${o[s.PRERELEASE]})?${o[s.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${o[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${o[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${o[s.XRANGEIDENTIFIERLOOSE]})(?:${o[s.PRERELEASELOOSE]})?${o[s.BUILD]}?)?)?`),c("XRANGE",`^${o[s.GTLT]}\\s*${o[s.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${o[s.GTLT]}\\s*${o[s.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),c("COERCERTL",o[s.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${o[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${o[s.LONETILDE]}${o[s.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${o[s.LONETILDE]}${o[s.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${o[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${o[s.LONECARET]}${o[s.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${o[s.LONECARET]}${o[s.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${o[s.GTLT]}\\s*(${o[s.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${o[s.GTLT]}\\s*(${o[s.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${o[s.GTLT]}\\s*(${o[s.LOOSEPLAIN]}|${o[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${o[s.XRANGEPLAIN]})\\s+-\\s+(${o[s.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${o[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${o[s.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},69258:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,">",r)},87395:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t))},36928:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,"<",r)},1895:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let A=null,o=null,s=null;try{s=new i(t,r)}catch(e){return null}return e.forEach(e=>{s.test(e)&&(A&&-1!==o.compare(e)||(A=e,o=new n(A,r)))}),A}},33252:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let A=null,o=null,s=null;try{s=new i(t,r)}catch(e){return null}return e.forEach(e=>{s.test(e)&&(A&&1!==o.compare(e)||(A=e,o=new n(A,r)))}),A}},4224:(e,t,r)=>{const n=r(14772),i=r(73004),A=r(26544);e.exports=(e,t)=>{e=new i(e,t);let r=new n("0.0.0");if(e.test(r))return r;if(r=new n("0.0.0-0"),e.test(r))return r;r=null;for(let t=0;t{const t=new n(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!A(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}return r&&e.test(r)?r:null}},842:(e,t,r)=>{const n=r(14772),i=r(29069),{ANY:A}=i,o=r(73004),s=r(73011),a=r(26544),c=r(65069),g=r(93845),l=r(44984);e.exports=(e,t,r,u)=>{let h,p,f,d,C;switch(e=new n(e,u),t=new o(t,u),r){case">":h=a,p=g,f=c,d=">",C=">=";break;case"<":h=c,p=l,f=a,d="<",C="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,u))return!1;for(let r=0;r{e.semver===A&&(e=new i(">=0.0.0")),o=o||e,s=s||e,h(e.semver,o.semver,u)?o=e:f(e.semver,s.semver,u)&&(s=e)}),o.operator===d||o.operator===C)return!1;if((!s.operator||s.operator===d)&&p(e,s.semver))return!1;if(s.operator===C&&f(e,s.semver))return!1}return!0}},3530:(e,t,r)=>{const n=r(73011),i=r(17340);e.exports=(e,t,r)=>{const A=[];let o=null,s=null;const a=e.sort((e,t)=>i(e,t,r));for(const e of a){n(e,t,r)?(s=e,o||(o=e)):(s&&A.push([o,s]),s=null,o=null)}o&&A.push([o,null]);const c=[];for(const[e,t]of A)e===t?c.push(e):t||e!==a[0]?t?e===a[0]?c.push("<="+t):c.push(`${e} - ${t}`):c.push(">="+e):c.push("*");const g=c.join(" || "),l="string"==typeof t.raw?t.raw:String(t);return g.length{const n=r(73004),{ANY:i}=r(29069),A=r(73011),o=r(17340),s=(e,t,r)=>{if(1===e.length&&e[0].semver===i)return 1===t.length&&t[0].semver===i;const n=new Set;let s,g,l,u,h,p,f;for(const t of e)">"===t.operator||">="===t.operator?s=a(s,t,r):"<"===t.operator||"<="===t.operator?g=c(g,t,r):n.add(t.semver);if(n.size>1)return null;if(s&&g){if(l=o(s.semver,g.semver,r),l>0)return null;if(0===l&&(">="!==s.operator||"<="!==g.operator))return null}for(const e of n){if(s&&!A(e,String(s),r))return null;if(g&&!A(e,String(g),r))return null;for(const n of t)if(!A(e,String(n),r))return!1;return!0}for(const e of t){if(f=f||">"===e.operator||">="===e.operator,p=p||"<"===e.operator||"<="===e.operator,s)if(">"===e.operator||">="===e.operator){if(u=a(s,e,r),u===e)return!1}else if(">="===s.operator&&!A(s.semver,String(e),r))return!1;if(g)if("<"===e.operator||"<="===e.operator){if(h=c(g,e,r),h===e)return!1}else if("<="===g.operator&&!A(g.semver,String(e),r))return!1;if(!e.operator&&(g||s)&&0!==l)return!1}return!(s&&p&&!g&&0!==l)&&!(g&&f&&!s&&0!==l)},a=(e,t,r)=>{if(!e)return t;const n=o(e.semver,t.semver,r);return n>0?e:n<0||">"===t.operator&&">="===e.operator?t:e},c=(e,t,r)=>{if(!e)return t;const n=o(e.semver,t.semver,r);return n<0?e:n>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,r)=>{e=new n(e,r),t=new n(t,r);let i=!1;e:for(const n of e.set){for(const e of t.set){const t=s(n,e,r);if(i=i||null!==t,t)continue e}if(i)return!1}return!0}},47753:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))},44315:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>{try{return new n(e,t).range||"*"}catch(e){return null}}},91470:(e,t,r)=>{"use strict";const n=r(67719);e.exports=(e="")=>{const t=e.match(n);if(!t)return null;const[r,i]=t[0].replace(/#! ?/,"").split(" "),A=r.split("/").pop();return"env"===A?i:i?`${A} ${i}`:A}},67719:e=>{"use strict";e.exports=/^#!(.*)/},17234:e=>{"use strict";e.exports=e=>{const t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},10129:(e,t,r)=>{"use strict";const n=r(76417),i=r(19184),A=r(92413).Transform,o=["sha256","sha384","sha512"],s=/^[a-z0-9+/]+(?:=?=?)$/i,a=/^([^-]+)-([^?]+)([?\S*]*)$/,c=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,g=/^[\x21-\x7E]+$/,l=i({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>m},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}});class u{get isHash(){return!0}constructor(e,t){const r=!!(t=l(t)).strict;this.source=e.trim();const n=this.source.match(r?c:a);if(!n)return;if(r&&!o.some(e=>e===n[1]))return;this.algorithm=n[1],this.digest=n[2];const i=n[3];this.options=i?i.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if((e=l(e)).strict&&!(o.some(e=>e===this.algorithm)&&this.digest.match(s)&&(this.options||[]).every(e=>e.match(g))))return"";const t=this.options&&this.options.length?"?"+this.options.join("?"):"";return`${this.algorithm}-${this.digest}${t}`}}class h{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){let t=(e=l(e)).sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(r=>this[r].map(t=>u.prototype.toString.call(t,e)).filter(e=>e.length).join(t)).filter(e=>e.length).join(t)}concat(e,t){t=l(t);const r="string"==typeof e?e:d(e,t);return p(`${this.toString(t)} ${r}`,t)}hexDigest(){return p(this,{single:!0}).hexDigest()}match(e,t){const r=p(e,t=l(t)),n=r.pickAlgorithm(t);return this[n]&&r[n]&&this[n].find(e=>r[n].find(t=>e.digest===t.digest))||!1}pickAlgorithm(e){const t=(e=l(e)).pickAlgorithm,r=Object.keys(this);if(!r.length)throw new Error("No algorithms available for "+JSON.stringify(this.toString()));return r.reduce((e,r)=>t(e,r)||e)}}function p(e,t){if(t=l(t),"string"==typeof e)return f(e,t);if(e.algorithm&&e.digest){const r=new h;return r[e.algorithm]=[e],f(d(r,t),t)}return f(d(e,t),t)}function f(e,t){return t.single?new u(e,t):e.trim().split(/\s+/).reduce((e,r)=>{const n=new u(r,t);if(n.algorithm&&n.digest){const t=n.algorithm;e[t]||(e[t]=[]),e[t].push(n)}return e},new h)}function d(e,t){return t=l(t),e.algorithm&&e.digest?u.prototype.toString.call(e,t):"string"==typeof e?d(p(e,t),t):h.prototype.toString.call(e,t)}function C(e){const t=(e=l(e)).integrity&&p(e.integrity,e),r=t&&Object.keys(t).length,i=r&&t.pickAlgorithm(e),o=r&&t[i],s=Array.from(new Set(e.algorithms.concat(i?[i]:[]))),a=s.map(n.createHash);let c=0;const g=new A({transform(e,t,r){c+=e.length,a.forEach(r=>r.update(e,t)),r(null,e,t)}}).on("end",()=>{const n=e.options&&e.options.length?"?"+e.options.join("?"):"",A=p(a.map((e,t)=>`${s[t]}-${e.digest("base64")}${n}`).join(" "),e),l=r&&A.match(t,e);if("number"==typeof e.size&&c!==e.size){const r=new Error(`stream size mismatch when checking ${t}.\n Wanted: ${e.size}\n Found: ${c}`);r.code="EBADSIZE",r.found=c,r.expected=e.size,r.sri=t,g.emit("error",r)}else if(e.integrity&&!l){const e=new Error(`${t} integrity checksum failed when using ${i}: wanted ${o} but got ${A}. (${c} bytes)`);e.code="EINTEGRITY",e.found=A,e.expected=o,e.algorithm=i,e.sri=t,g.emit("error",e)}else g.emit("size",c),g.emit("integrity",A),l&&g.emit("verified",l)});return g}e.exports.Sd=function(e,t){const r=(t=l(t)).algorithms,i=t.options&&t.options.length?"?"+t.options.join("?"):"";return r.reduce((r,A)=>{const o=n.createHash(A).update(e).digest("base64"),s=new u(`${A}-${o}${i}`,t);if(s.algorithm&&s.digest){const e=s.algorithm;r[e]||(r[e]=[]),r[e].push(s)}return r},new h)};const I=new Set(n.getHashes()),E=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>I.has(e));function m(e,t){return E.indexOf(e.toLowerCase())>=E.indexOf(t.toLowerCase())?e:t}},69538:(e,t,r)=>{"use strict";var n=r(13499).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function A(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=a,this.end=c,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=g,this.end=l,t=3;break;default:return this.write=u,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function a(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function g(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function u(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.s=A,A.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},A.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},59428:(e,t,r)=>{"use strict";const n=r(12087),i=r(33867),A=r(72918),{env:o}=process;let s;function a(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function c(e,t){if(0===s)return 0;if(A("color=16m")||A("color=full")||A("color=truecolor"))return 3;if(A("color=256"))return 2;if(e&&!t&&void 0===s)return 0;const r=s||0;if("dumb"===o.TERM)return r;if("win32"===process.platform){const e=n.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in o)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in o)||"codeship"===o.CI_NAME?1:r;if("TEAMCITY_VERSION"in o)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(o.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in o)return 1;if("truecolor"===o.COLORTERM)return 3;if("TERM_PROGRAM"in o){const e=parseInt((o.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(o.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(o.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(o.TERM)||"COLORTERM"in o?1:r}A("no-color")||A("no-colors")||A("color=false")||A("color=never")?s=0:(A("color")||A("colors")||A("color=true")||A("color=always"))&&(s=1),"FORCE_COLOR"in o&&(s="true"===o.FORCE_COLOR?1:"false"===o.FORCE_COLOR?0:0===o.FORCE_COLOR.length?1:Math.min(parseInt(o.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return a(c(e,e&&e.isTTY))},stdout:a(c(!0,i.isatty(1))),stderr:a(c(!0,i.isatty(2)))}},93255:e=>{"use strict";function t(e){return Array.prototype.slice.apply(e)}function r(e){this.status="pending",this._continuations=[],this._parent=null,this._paused=!1,e&&e.call(this,this._continueWith.bind(this),this._failWith.bind(this))}function n(e){return e&&"function"==typeof e.then}function i(e){return e}if(r.prototype={then:function(e,t){var i=r.unresolved()._setParent(this);if(this._isRejected()){if(this._paused)return this._continuations.push({promise:i,nextFn:e,catchFn:t}),i;if(t)try{var A=t(this._error);return n(A)?(this._chainPromiseData(A,i),i):r.resolve(A)._setParent(this)}catch(e){return r.reject(e)._setParent(this)}return r.reject(this._error)._setParent(this)}return this._continuations.push({promise:i,nextFn:e,catchFn:t}),this._runResolutions(),i},catch:function(e){if(this._isResolved())return r.resolve(this._data)._setParent(this);var t=r.unresolved()._setParent(this);return this._continuations.push({promise:t,catchFn:e}),this._runRejections(),t},finally:function(e){var t=!1;function r(r,A){if(!t){t=!0,e||(e=i);var o=e(r);return n(o)?o.then((function(){if(A)throw A;return r})):r}}return this.then((function(e){return r(e)})).catch((function(e){return r(null,e)}))},pause:function(){return this._paused=!0,this},resume:function(){var e=this._findFirstPaused();return e&&(e._paused=!1,e._runResolutions(),e._runRejections()),this},_findAncestry:function(){return this._continuations.reduce((function(e,t){if(t.promise){var r={promise:t.promise,children:t.promise._findAncestry()};e.push(r)}return e}),[])},_setParent:function(e){if(this._parent)throw new Error("parent already set");return this._parent=e,this},_continueWith:function(e){var t=this._findFirstPending();t&&(t._data=e,t._setResolved())},_findFirstPending:function(){return this._findFirstAncestor((function(e){return e._isPending&&e._isPending()}))},_findFirstPaused:function(){return this._findFirstAncestor((function(e){return e._paused}))},_findFirstAncestor:function(e){for(var t,r=this;r;)e(r)&&(t=r),r=r._parent;return t},_failWith:function(e){var t=this._findFirstPending();t&&(t._error=e,t._setRejected())},_takeContinuations:function(){return this._continuations.splice(0,this._continuations.length)},_runRejections:function(){if(!this._paused&&this._isRejected()){var e=this._error,t=this._takeContinuations(),r=this;t.forEach((function(t){if(t.catchFn)try{var n=t.catchFn(e);r._handleUserFunctionResult(n,t.promise)}catch(e){t.promise.reject(e)}else t.promise.reject(e)}))}},_runResolutions:function(){if(!this._paused&&this._isResolved()&&!this._isPending()){var e=this._takeContinuations();if(n(this._data))return this._handleWhenResolvedDataIsPromise(this._data);var t=this._data,r=this;e.forEach((function(e){if(e.nextFn)try{var n=e.nextFn(t);r._handleUserFunctionResult(n,e.promise)}catch(t){r._handleResolutionError(t,e)}else e.promise&&e.promise.resolve(t)}))}},_handleResolutionError:function(e,t){if(this._setRejected(),t.catchFn)try{return void t.catchFn(e)}catch(t){e=t}t.promise&&t.promise.reject(e)},_handleWhenResolvedDataIsPromise:function(e){var t=this;return e.then((function(e){t._data=e,t._runResolutions()})).catch((function(e){t._error=e,t._setRejected(),t._runRejections()}))},_handleUserFunctionResult:function(e,t){n(e)?this._chainPromiseData(e,t):t.resolve(e)},_chainPromiseData:function(e,t){e.then((function(e){t.resolve(e)})).catch((function(e){t.reject(e)}))},_setResolved:function(){this.status="resolved",this._paused||this._runResolutions()},_setRejected:function(){this.status="rejected",this._paused||this._runRejections()},_isPending:function(){return"pending"===this.status},_isResolved:function(){return"resolved"===this.status},_isRejected:function(){return"rejected"===this.status}},r.resolve=function(e){return new r((function(t,r){n(e)?e.then((function(e){t(e)})).catch((function(e){r(e)})):t(e)}))},r.reject=function(e){return new r((function(t,r){r(e)}))},r.unresolved=function(){return new r((function(e,t){this.resolve=e,this.reject=t}))},r.all=function(){var e=t(arguments);return Array.isArray(e[0])&&(e=e[0]),e.length?new r((function(t,n){var i=[],A=0,o=!1;e.forEach((function(s,a){r.resolve(s).then((function(r){i[a]=r,(A+=1)===e.length&&t(i)})).catch((function(e){!function(e){o||(o=!0,n(e))}(e)}))}))})):r.resolve([])},Promise===r)throw new Error("Please use SynchronousPromise.installGlobally() to install globally");var A=Promise;r.installGlobally=function(e){if(Promise===r)return e;var n=function(e){if(void 0===e||e.__patched)return e;var r=e;return(e=function(){r.apply(this,t(arguments))}).__patched=!0,e}(e);return Promise=r,n},r.uninstallGlobally=function(){Promise===r&&(Promise=A)},e.exports={SynchronousPromise:r}},75799:(e,t,r)=>{var n=r(31669),i=r(73975),A=r(77686),o=r(86897).Writable,s=r(86897).PassThrough,a=function(){},c=function(e){return(e&=511)&&512-e},g=function(e,t){this._parent=e,this.offset=t,s.call(this)};n.inherits(g,s),g.prototype.destroy=function(e){this._parent.destroy(e)};var l=function(e){if(!(this instanceof l))return new l(e);o.call(this,e),e=e||{},this._offset=0,this._buffer=i(),this._missing=0,this._partial=!1,this._onparse=a,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},s=function(e){if(t._locked=!1,e)return t.destroy(e);t._stream||n()},u=function(){t._stream=null;var e=c(t._header.size);e?t._parse(e,h):t._parse(512,I),t._locked||n()},h=function(){t._buffer.consume(c(t._header.size)),t._parse(512,I),n()},p=function(){var e=t._header.size;t._paxGlobal=A.decodePax(r.slice(0,e)),r.consume(e),u()},f=function(){var e=t._header.size;t._pax=A.decodePax(r.slice(0,e)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(e),u()},d=function(){var n=t._header.size;this._gnuLongPath=A.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),u()},C=function(){var n=t._header.size;this._gnuLongLinkPath=A.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),u()},I=function(){var i,o=t._offset;try{i=t._header=A.decode(r.slice(0,512),e.filenameEncoding)}catch(e){t.emit("error",e)}return r.consume(512),i?"gnu-long-path"===i.type?(t._parse(i.size,d),void n()):"gnu-long-link-path"===i.type?(t._parse(i.size,C),void n()):"pax-global-header"===i.type?(t._parse(i.size,p),void n()):"pax-header"===i.type?(t._parse(i.size,f),void n()):(t._gnuLongPath&&(i.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(i.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=i=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e}(i,t._pax),t._pax=null),t._locked=!0,i.size&&"directory"!==i.type?(t._stream=new g(t,o),t.emit("entry",i,t._stream,s),t._parse(i.size,u),void n()):(t._parse(512,I),void t.emit("entry",i,function(e,t){var r=new g(e,t);return r.end(),r}(t,o),s))):(t._parse(512,I),void n())};this._onheader=I,this._parse(512,I)};n.inherits(l,o),l.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))},l.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)},l.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=a,this._overflow?this._write(this._overflow,void 0,e):e()}},l.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,i=this._buffer,A=this._missing;if(e.length&&(this._partial=!0),e.lengthA&&(o=e.slice(A),e=e.slice(0,A)),n?n.end(e):i.append(e),this._overflow=o,this._onparse()}},l.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()},e.exports=l},77686:(e,t)=>{var r=Buffer.alloc,n="0".charCodeAt(0),i=parseInt("7777",8),A=function(e,t,r,n){for(;rt?"7777777777777777777".slice(0,t)+" ":"0000000000000000000".slice(0,t-e.length)+e+" "};var a=function(e,t,r){if(128&(e=e.slice(t,t+r))[t=0])return function(e){var t;if(128===e[0])t=!0;else{if(255!==e[0])return null;t=!1}for(var r=!1,n=[],i=e.length-1;i>0;i--){var A=e[i];t?n.push(A):r&&0===A?n.push(0):r?(r=!1,n.push(256-A)):n.push(255-A)}var o=0,s=n.length;for(i=0;i=o?o:i>=0||(i+=o)>=0?i:0);t=Math.pow(10,r)&&r++,t+r+e};t.decodeLongPath=function(e,t){return c(e,0,e.length,t)},t.encodePax=function(e){var t="";e.name&&(t+=g(" path="+e.name+"\n")),e.linkname&&(t+=g(" linkpath="+e.linkname+"\n"));var r=e.pax;if(r)for(var n in r)t+=g(" "+n+"="+r[n]+"\n");return Buffer.from(t)},t.decodePax=function(e){for(var t={};e.length;){for(var r=0;r100;){var c=A.indexOf("/");if(-1===c)return null;a+=a?"/"+A.slice(0,c):A.slice(0,c),A=A.slice(c+1)}return Buffer.byteLength(A)>100||Buffer.byteLength(a)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(A),t.write(s(e.mode&i,6),100),t.write(s(e.uid,6),108),t.write(s(e.gid,6),116),t.write(s(e.size,11),124),t.write(s(e.mtime.getTime()/1e3|0,11),136),t[156]=n+function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}(e.type),e.linkname&&t.write(e.linkname,157),t.write("ustar\x0000",257),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(s(e.devmajor||0,6),329),t.write(s(e.devminor||0,6),337),a&&t.write(a,345),t.write(s(o(t),6),148),t)},t.decode=function(e,t){var r=0===e[156]?0:e[156]-n,i=c(e,0,100,t),A=a(e,100,8),s=a(e,108,8),g=a(e,116,8),l=a(e,124,12),u=a(e,136,12),h=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}(r),p=0===e[157]?null:c(e,157,100,t),f=c(e,265,32),d=c(e,297,32),C=a(e,329,8),I=a(e,337,8);e[345]&&(i=c(e,345,155,t)+"/"+i),0===r&&i&&"/"===i[i.length-1]&&(r=5);var E=o(e);if(256===E)return null;if(E!==a(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");return{name:i,mode:A,uid:s,gid:g,size:l,mtime:new Date(1e3*u),type:h,linkname:p,uname:f,gname:d,devmajor:C,devminor:I}}},59938:(e,t,r)=>{t.K=r(75799),t.P=r(72203)},72203:(e,t,r)=>{var n=r(13302),i=r(17067),A=r(85870),o=Buffer.alloc,s=r(86897).Readable,a=r(86897).Writable,c=r(24304).StringDecoder,g=r(77686),l=parseInt("755",8),u=parseInt("644",8),h=o(1024),p=function(){},f=function(e,t){(t&=511)&&e.push(h.slice(0,512-t))};var d=function(e){a.call(this),this.written=0,this._to=e,this._destroyed=!1};A(d,a),d.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r},d.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var C=function(){a.call(this),this.linkname="",this._decoder=new c("utf-8"),this._destroyed=!1};A(C,a),C.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()},C.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var I=function(){a.call(this),this._destroyed=!1};A(I,a),I.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))},I.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var E=function(e){if(!(this instanceof E))return new E(e);s.call(this,e),this._drain=p,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};A(E,s),E.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!this._finalized&&!this._destroyed){"function"==typeof t&&(r=t,t=null),r||(r=p);var A=this;if(e.size&&"symlink"!==e.type||(e.size=0),e.type||(e.type=function(e){switch(e&n.S_IFMT){case n.S_IFBLK:return"block-device";case n.S_IFCHR:return"character-device";case n.S_IFDIR:return"directory";case n.S_IFIFO:return"fifo";case n.S_IFLNK:return"symlink"}return"file"}(e.mode)),e.mode||(e.mode="directory"===e.type?l:u),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),"string"==typeof t&&(t=Buffer.from(t)),Buffer.isBuffer(t))return e.size=t.length,this._encode(e),this.push(t),f(A,e.size),process.nextTick(r),new I;if("symlink"===e.type&&!e.linkname){var o=new C;return i(o,(function(t){if(t)return A.destroy(),r(t);e.linkname=o.linkname,A._encode(e),r()})),o}if(this._encode(e),"file"!==e.type&&"contiguous-file"!==e.type)return process.nextTick(r),new I;var s=new d(this);return this._stream=s,i(s,(function(t){return A._stream=null,t?(A.destroy(),r(t)):s.written!==e.size?(A.destroy(),r(new Error("size mismatch"))):(f(A,e.size),A._finalizing&&A.finalize(),void r())})),s}},E.prototype.finalize=function(){this._stream?this._finalizing=!0:this._finalized||(this._finalized=!0,this.push(h),this.push(null))},E.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())},E.prototype._encode=function(e){if(!e.pax){var t=g.encode(e);if(t)return void this.push(t)}this._encodePax(e)},E.prototype._encodePax=function(e){var t=g.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(g.encode(r)),this.push(t),f(this,t.length),r.size=e.size,r.type=e.type,this.push(g.encode(r))},E.prototype._read=function(e){var t=this._drain;this._drain=p,t()},e.exports=E},84615:(e,t,r)=>{"use strict"; -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */const n=r(59235),i=(e,t,r)=>{if(!1===n(e))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===t||e===t)return String(e);if(!1===n(t))throw new TypeError("toRegexRange: expected the second argument to be a number.");let A={relaxZeros:!0,...r};"boolean"==typeof A.strictZeros&&(A.relaxZeros=!1===A.strictZeros);let a=e+":"+t+"="+String(A.relaxZeros)+String(A.shorthand)+String(A.capture)+String(A.wrap);if(i.cache.hasOwnProperty(a))return i.cache[a].result;let c=Math.min(e,t),g=Math.max(e,t);if(1===Math.abs(c-g)){let r=e+"|"+t;return A.capture?`(${r})`:!1===A.wrap?r:`(?:${r})`}let l=p(e)||p(t),u={min:e,max:t,a:c,b:g},h=[],f=[];if(l&&(u.isPadded=l,u.maxLen=String(u.max).length),c<0){f=o(g<0?Math.abs(g):1,Math.abs(c),u,A),c=u.a=0}return g>=0&&(h=o(c,g,u,A)),u.negatives=f,u.positives=h,u.result=function(e,t,r){let n=s(e,t,"-",!1,r)||[],i=s(t,e,"",!1,r)||[],A=s(e,t,"-?",!0,r)||[];return n.concat(A).concat(i).join("|")}(f,h,A),!0===A.capture?u.result=`(${u.result})`:!1!==A.wrap&&h.length+f.length>1&&(u.result=`(?:${u.result})`),i.cache[a]=u,u.result};function A(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let n=function(e,t){let r=[];for(let n=0;n1&&i.count.pop(),i.count.push(a.count[0]),i.string=i.pattern+u(i.count),c=t+1)}return s}function s(e,t,r,n,i){let A=[];for(let i of e){let{string:e}=i;n||c(t,"string",e)||A.push(r+e),n&&c(t,"string",e)&&A.push(r+e)}return A}function a(e,t){return e>t?1:t>e?-1:0}function c(e,t,r){return e.some(e=>e[t]===r)}function g(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function l(e,t){return e-e%Math.pow(10,t)}function u(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function h(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function p(e){return/^-?(0+)\d/.test(e)}function f(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),i=!1!==r.relaxZeros;switch(n){case 0:return"";case 1:return i?"0?":"0";case 2:return i?"0{0,2}":"00";default:return i?`0{0,${n}}`:`0{${n}}`}}i.cache={},i.clearCache=()=>i.cache={},e.exports=i},75158:e=>{function t(e,t){var r=e.length,n=new Array(r),i={},A=r,o=function(e){for(var t=new Map,r=0,n=e.length;r0&&(i.forEach((function(e,t){t>0&&(g+=(e[1]?" ":"│")+" "),c||e[0]!==r||(c=!0)})),g+=function(e,t){var r=t?"└":"├";return r+=e?"─ ":"──┐"}(t,n)+t,A&&("object"!=typeof r||r instanceof Date)&&(g+=": "+r),c&&(g+=" (circular ref.)"),s(g)),!c&&"object"==typeof r){var h=function(e,t){var r=[];for(var n in e)e.hasOwnProperty(n)&&(t&&"function"==typeof e[n]||r.push(n));return r}(r,o);h.forEach((function(t){a=++l===h.length,e(t,r[t],a,u,A,o,s)}))}}var t={asLines:function(t,r,n,i){e(".",t,!1,[],r,"function"!=typeof n&&n,i||n)},asTree:function(t,r,n){var i="";return e(".",t,!1,[],r,n,(function(e){i+=e+"\n"})),i}};return t}()},36370:(e,t,r)=>{"use strict";r.d(t,{gn:()=>n});function n(e,t,r,n){var i,A=arguments.length,o=A<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(A<3?i(o):A>3?i(t,r,o):i(t,r))||o);return A>3&&o&&Object.defineProperty(t,r,o),o}},98161:(e,t,r)=>{e.exports=r(69876)},69876:(e,t,r)=>{"use strict";r(11631);var n,i=r(4016),A=r(98605),o=r(57211),s=r(28614),a=(r(42357),r(31669));function c(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||A.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",(function(e,r,n,i){for(var A=l(r,n,i),o=0,s=t.requests.length;o=this.maxSockets?i.requests.push(A):i.createSocket(A,(function(t){function r(){i.emit("free",t,A)}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n)}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t)}))},c.prototype.createSocket=function(e,t){var r=this,i={};r.sockets.push(i);var A=u({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(A.localAddress=e.localAddress),A.proxyAuth&&(A.headers=A.headers||{},A.headers["Proxy-Authorization"]="Basic "+new Buffer(A.proxyAuth).toString("base64")),n("making CONNECT request");var o=r.request(A);function s(A,s,a){var c;return o.removeAllListeners(),s.removeAllListeners(),200!==A.statusCode?(n("tunneling socket could not be established, statusCode=%d",A.statusCode),s.destroy(),(c=new Error("tunneling socket could not be established, statusCode="+A.statusCode)).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):a.length>0?(n("got illegal response body from proxy"),s.destroy(),(c=new Error("got illegal response body from proxy")).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):(n("tunneling connection has established"),r.sockets[r.sockets.indexOf(i)]=s,t(s))}o.useChunkedEncodingByDefault=!1,o.once("response",(function(e){e.upgrade=!0})),o.once("upgrade",(function(e,t,r){process.nextTick((function(){s(e,t,r)}))})),o.once("connect",s),o.once("error",(function(t){o.removeAllListeners(),n("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var A=new Error("tunneling socket could not be established, cause="+t.message);A.code="ECONNRESET",e.request.emit("error",A),r.removeSocket(i)})),o.end()},c.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,(function(e){r.request.onSocket(e)}))}},n=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},t.debug=n},5817:(e,t,r)=>{var n;e=r.nmd(e),function(){var r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},i=r._,A=Array.prototype,o=Object.prototype,s="undefined"!=typeof Symbol?Symbol.prototype:null,a=A.push,c=A.slice,g=o.toString,l=o.hasOwnProperty,u=Array.isArray,h=Object.keys,p=Object.create,f=function(){},d=function(e){return e instanceof d?e:this instanceof d?void(this._wrapped=e):new d(e)};t.nodeType?r._=d:(!e.nodeType&&e.exports&&(t=e.exports=d),t._=d),d.VERSION="1.9.1";var C,I=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,A){return e.call(t,r,n,i,A)}}return function(){return e.apply(t,arguments)}},E=function(e,t,r){return d.iteratee!==C?d.iteratee(e,t):null==e?d.identity:d.isFunction(e)?I(e,t,r):d.isObject(e)&&!d.isArray(e)?d.matcher(e):d.property(e)};d.iteratee=C=function(e,t){return E(e,t,1/0)};var m=function(e,t){return t=null==t?e.length-1:+t,function(){for(var r=Math.max(arguments.length-t,0),n=Array(r),i=0;i=0&&t<=v};d.each=d.forEach=function(e,t,r){var n,i;if(t=I(t,r),D(e))for(n=0,i=e.length;n0?0:o-1;for(i||(n=t[A?A[s]:s],s+=e);s>=0&&s=3;return t(e,I(r,i,4),n,A)}};d.reduce=d.foldl=d.inject=S(1),d.reduceRight=d.foldr=S(-1),d.find=d.detect=function(e,t,r){var n=(D(e)?d.findIndex:d.findKey)(e,t,r);if(void 0!==n&&-1!==n)return e[n]},d.filter=d.select=function(e,t,r){var n=[];return t=E(t,r),d.each(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n},d.reject=function(e,t,r){return d.filter(e,d.negate(E(t)),r)},d.every=d.all=function(e,t,r){t=E(t,r);for(var n=!D(e)&&d.keys(e),i=(n||e).length,A=0;A=0},d.invoke=m((function(e,t,r){var n,i;return d.isFunction(t)?i=t:d.isArray(t)&&(n=t.slice(0,-1),t=t[t.length-1]),d.map(e,(function(e){var A=i;if(!A){if(n&&n.length&&(e=Q(e,n)),null==e)return;A=e[t]}return null==A?A:A.apply(e,r)}))})),d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,r){var n,i,A=-1/0,o=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,a=(e=D(e)?e:d.values(e)).length;sA&&(A=n);else t=E(t,r),d.each(e,(function(e,r,n){((i=t(e,r,n))>o||i===-1/0&&A===-1/0)&&(A=e,o=i)}));return A},d.min=function(e,t,r){var n,i,A=1/0,o=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,a=(e=D(e)?e:d.values(e)).length;sn||void 0===r)return 1;if(r0?0:i-1;A>=0&&A0?o=A>=0?A:Math.max(A+s,o):s=A>=0?Math.min(A+1,s):A+s+1;else if(r&&A&&s)return n[A=r(n,i)]===i?A:-1;if(i!=i)return(A=t(c.call(n,o,s),d.isNaN))>=0?A+o:-1;for(A=e>0?o:s-1;A>=0&&At?(n&&(clearTimeout(n),n=null),s=c,o=e.apply(i,A),n||(i=A=null)):n||!1===r.trailing||(n=setTimeout(a,g)),o};return c.cancel=function(){clearTimeout(n),s=0,n=i=A=null},c},d.debounce=function(e,t,r){var n,i,A=function(t,r){n=null,r&&(i=e.apply(t,r))},o=m((function(o){if(n&&clearTimeout(n),r){var s=!n;n=setTimeout(A,t),s&&(i=e.apply(this,o))}else n=d.delay(A,t,this,o);return i}));return o.cancel=function(){clearTimeout(n),n=null},o},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},d.once=d.partial(d.before,2),d.restArguments=m;var L=!{toString:null}.propertyIsEnumerable("toString"),x=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],P=function(e,t){var r=x.length,n=e.constructor,i=d.isFunction(n)&&n.prototype||o,A="constructor";for(w(e,A)&&!d.contains(t,A)&&t.push(A);r--;)(A=x[r])in e&&e[A]!==i[A]&&!d.contains(t,A)&&t.push(A)};d.keys=function(e){if(!d.isObject(e))return[];if(h)return h(e);var t=[];for(var r in e)w(e,r)&&t.push(r);return L&&P(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var r in e)t.push(r);return L&&P(e,t),t},d.values=function(e){for(var t=d.keys(e),r=t.length,n=Array(r),i=0;i1&&(n=I(n,t[1])),t=d.allKeys(e)):(n=Y,t=N(t,!1,!1),e=Object(e));for(var i=0,A=t.length;i1&&(r=t[1])):(t=d.map(N(t,!1,!1),String),n=function(e,r){return!d.contains(t,r)}),d.pick(e,n,r)})),d.defaults=U(d.allKeys,!0),d.create=function(e,t){var r=B(e);return t&&d.extendOwn(r,t),r},d.clone=function(e){return d.isObject(e)?d.isArray(e)?e.slice():d.extend({},e):e},d.tap=function(e,t){return t(e),e},d.isMatch=function(e,t){var r=d.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),A=0;A":">",'"':""","'":"'","`":"`"},H=d.invert(G),J=function(e){var t=function(t){return e[t]},r="(?:"+d.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};d.escape=J(G),d.unescape=J(H),d.result=function(e,t,r){d.isArray(t)||(t=[t]);var n=t.length;if(!n)return d.isFunction(r)?r.call(e):r;for(var i=0;i/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,V=function(e){return"\\"+z[e]};d.template=function(e,t,r){!t&&r&&(t=r),t=d.defaults({},t,d.templateSettings);var n,i=RegExp([(t.escape||q).source,(t.interpolate||q).source,(t.evaluate||q).source].join("|")+"|$","g"),A=0,o="__p+='";e.replace(i,(function(t,r,n,i,s){return o+=e.slice(A,s).replace(W,V),A=s+t.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":i&&(o+="';\n"+i+"\n__p+='"),t})),o+="';\n",t.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{n=new Function(t.variable||"obj","_",o)}catch(e){throw e.source=o,e}var s=function(e){return n.call(this,e,d)},a=t.variable||"obj";return s.source="function("+a+"){\n"+o+"}",s},d.chain=function(e){var t=d(e);return t._chain=!0,t};var X=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){return d.each(d.functions(e),(function(t){var r=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return a.apply(e,arguments),X(this,r.apply(d,e))}})),d},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=A[e];d.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],X(this,r)}})),d.each(["concat","join","slice"],(function(e){var t=A[e];d.prototype[e]=function(){return X(this,t.apply(this._wrapped,arguments))}})),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return String(this._wrapped)},void 0===(n=function(){return d}.apply(t,[]))||(e.exports=n)}()},73212:(e,t,r)=>{e.exports=r(31669).deprecate},87945:(e,t,r)=>{const n="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,i=r(85622),A=n?";":":",o=r(64151),s=e=>Object.assign(new Error("not found: "+e),{code:"ENOENT"}),a=(e,t)=>{const r=t.colon||A,i=e.match(/\//)||n&&e.match(/\\/)?[""]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],o=n?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=n?o.split(r):[""];return n&&-1!==e.indexOf(".")&&""!==s[0]&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:o}},c=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});const{pathEnv:n,pathExt:A,pathExtExe:c}=a(e,t),g=[],l=r=>new Promise((A,o)=>{if(r===n.length)return t.all&&g.length?A(g):o(s(e));const a=n[r],c=/^".*"$/.test(a)?a.slice(1,-1):a,l=i.join(c,e),h=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;A(u(h,r,0))}),u=(e,r,n)=>new Promise((i,s)=>{if(n===A.length)return i(l(r+1));const a=A[n];o(e+a,{pathExt:c},(A,o)=>{if(!A&&o){if(!t.all)return i(e+a);g.push(e+a)}return i(u(e,r,n+1))})});return r?l(0).then(e=>r(null,e),r):l(0)};e.exports=c,c.sync=(e,t)=>{t=t||{};const{pathEnv:r,pathExt:n,pathExtExe:A}=a(e,t),c=[];for(let s=0;s{e.exports=function e(t,r){if(t&&r)return e(t)(r);if("function"!=typeof t)throw new TypeError("need wrapper function");return Object.keys(t).forEach((function(e){n[e]=t[e]})),n;function n(){for(var e=new Array(arguments.length),r=0;r{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(15215)),A=n(r(11050)),o=function(){function e(e,t){if(this.refs=e,"function"!=typeof t){if(!(0,i.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");var r=t.is,n=t.then,A=t.otherwise,o="function"==typeof r?r:function(){for(var e=arguments.length,t=new Array(e),n=0;n{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(11050)),A=function(){function e(e){this._resolve=function(t,r){var n=e(t,r);if(!(0,i.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(r)}}var t=e.prototype;return t.resolve=function(e){return this._resolve(e.value,e)},t.cast=function(e,t){return this._resolve(e,t).cast(e,t)},t.validate=function(e,t){return this._resolve(e,t).validate(e,t)},t.validateSync=function(e,t){return this._resolve(e,t).validateSync(e,t)},t.validateAt=function(e,t,r){return this._resolve(t,r).validateAt(e,t,r)},t.validateSyncAt=function(e,t,r){return this._resolve(t,r).validateSyncAt(e,t,r)},e}();A.prototype.__isYupSchema__=!0;var o=A;t.default=o,e.exports=t.default},95814:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(72912)),A=r(79588),o="$",s=".",a=function(){function e(e,t){if(void 0===t&&(t={}),"string"!=typeof e)throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),""===e)throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===o,this.isValue=this.key[0]===s,this.isSibling=!this.isContext&&!this.isValue;var r=this.isContext?o:this.isValue?s:"";this.path=this.key.slice(r.length),this.getter=this.path&&(0,A.getter)(this.path,!0),this.map=t.map}var t=e.prototype;return t.getValue=function(e){var t=this.isContext?e.context:this.isValue?e.value:e.parent;return this.getter&&(t=this.getter(t||{})),this.map&&(t=this.map(t)),t},t.cast=function(e,t){return this.getValue((0,i.default)({},t,{value:e}))},t.resolve=function(){return this},t.describe=function(){return{type:"ref",key:this.key}},t.toString=function(){return"Ref("+this.key+")"},e.isRef=function(e){return e&&e.__isYupRef},e}();t.default=a,a.prototype.__isYupRef=!0,e.exports=t.default},40828:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=s;var i=n(r(21043)),A=/\$\{\s*(\w+)\s*\}/g,o=function(e){return function(t){return e.replace(A,(function(e,r){return(0,i.default)(t[r])}))}};function s(e,t,r,n){var i=this;this.name="ValidationError",this.value=t,this.path=r,this.type=n,this.errors=[],this.inner=[],e&&[].concat(e).forEach((function(e){i.errors=i.errors.concat(e.errors||e),e.inner&&(i.inner=i.inner.concat(e.inner.length?e.inner:e))})),this.message=this.errors.length>1?this.errors.length+" errors occurred":this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,s)}s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,s.isError=function(e){return e&&"ValidationError"===e.name},s.formatError=function(e,t){"string"==typeof e&&(e=o(e));var r=function(t){return t.path=t.label||t.path||"this","function"==typeof e?e(t):e};return 1===arguments.length?r:r(t)},e.exports=t.default},18830:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=void 0;var A=i(r(72912)),o=i(r(62407)),s=i(r(31490)),a=i(r(71665)),c=i(r(11050)),g=i(r(7045)),l=i(r(21043)),u=i(r(16434)),h=r(63802),p=n(r(80180));function f(){var e=(0,o.default)(["","[","]"]);return f=function(){return e},e}var d=C;function C(e){var t=this;if(!(this instanceof C))return new C(e);u.default.call(this,{type:"array"}),this._subType=void 0,this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.of(e)}))}t.default=d,(0,s.default)(C,u.default,{_typeCheck:function(e){return Array.isArray(e)},_cast:function(e,t){var r=this,n=u.default.prototype._cast.call(this,e,t);if(!this._typeCheck(n)||!this._subType)return n;var i=!1,A=n.map((function(e){var n=r._subType.cast(e,t);return n!==e&&(i=!0),n}));return i?A:n},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=[],i=t.sync,o=t.path,s=this._subType,a=this._option("abortEarly",t),c=this._option("recursive",t),l=null!=t.originalValue?t.originalValue:e;return u.default.prototype._validate.call(this,e,t).catch((0,p.propagateErrors)(a,n)).then((function(e){if(!c||!s||!r._typeCheck(e)){if(n.length)throw n[0];return e}l=l||e;var u=e.map((function(r,n){var i=(0,g.default)(f(),t.path,n),o=(0,A.default)({},t,{path:i,strict:!0,parent:e,originalValue:l[n]});return!s.validate||s.validate(r,o)}));return(0,p.default)({sync:i,path:o,value:e,errors:n,endEarly:a,validations:u})}))},_isPresent:function(e){return u.default.prototype._cast.call(this,e)&&e.length>0},of:function(e){var t=this.clone();if(!1!==e&&!(0,c.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema, or `false` to negate a current sub-schema. not: "+(0,l.default)(e));return t._subType=e,t},min:function(e,t){return t=t||h.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,a.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return t=t||h.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,a.default)(t)||t.length<=this.resolve(e)}})},ensure:function(){var e=this;return this.default((function(){return[]})).transform((function(t){return e.isType(t)?t:null===t?[]:[].concat(t)}))},compact:function(e){var t=e?function(t,r,n){return!e(t,r,n)}:function(e){return!!e};return this.transform((function(e){return null!=e?e.filter(t):e}))},describe:function(){var e=u.default.prototype.describe.call(this);return this._subType&&(e.innerType=this._subType.describe()),e}}),e.exports=t.default},76595:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(31490)),A=n(r(16434)),o=s;function s(){var e=this;if(!(this instanceof s))return new s;A.default.call(this,{type:"boolean"}),this.withMutation((function(){e.transform((function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(e))return!0;if(/^(false|0)$/i.test(e))return!1}return e}))}))}t.default=o,(0,i.default)(s,A.default,{_typeCheck:function(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}}),e.exports=t.default},41755:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(16434)),A=n(r(31490)),o=n(r(76813)),s=r(63802),a=n(r(71665)),c=n(r(95814)),g=new Date(""),l=u;function u(){var e=this;if(!(this instanceof u))return new u;i.default.call(this,{type:"date"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:(e=(0,o.default)(e))?new Date(e):g}))}))}t.default=l,(0,A.default)(u,i.default,{_typeCheck:function(e){return t=e,"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(e.getTime());var t},min:function(e,t){void 0===t&&(t=s.date.min);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`min` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(e){return(0,a.default)(e)||e>=this.resolve(r)}})},max:function(e,t){void 0===t&&(t=s.date.max);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`max` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(e){return(0,a.default)(e)||e<=this.resolve(r)}})}}),e.exports=t.default},15966:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.addMethod=function(e,t,r){if(!e||!(0,f.default)(e.prototype))throw new TypeError("You must provide a yup schema constructor function");if("string"!=typeof t)throw new TypeError("A Method name must be provided");if("function"!=typeof r)throw new TypeError("Method function must be provided");e.prototype[t]=r},t.lazy=t.ref=t.boolean=void 0;var i=n(r(16434));t.mixed=i.default;var A=n(r(76595));t.bool=A.default;var o=n(r(45167));t.string=o.default;var s=n(r(72068));t.number=s.default;var a=n(r(41755));t.date=a.default;var c=n(r(51727));t.object=c.default;var g=n(r(18830));t.array=g.default;var l=n(r(95814)),u=n(r(6856)),h=n(r(40828));t.ValidationError=h.default;var p=n(r(43910));t.reach=p.default;var f=n(r(11050));t.isSchema=f.default;var d=n(r(24280));t.setLocale=d.default;var C=A.default;t.boolean=C;t.ref=function(e,t){return new l.default(e,t)};t.lazy=function(e){return new u.default(e)}},63802:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=t.array=t.object=t.boolean=t.date=t.number=t.string=t.mixed=void 0;var i=n(r(21043)),A={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:function(e){var t=e.path,r=e.type,n=e.value,A=e.originalValue,o=null!=A&&A!==n,s=t+" must be a `"+r+"` type, but the final value was: `"+(0,i.default)(n,!0)+"`"+(o?" (cast from the value `"+(0,i.default)(A,!0)+"`).":".");return null===n&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s}};t.mixed=A;var o={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};t.string=o;var s={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",notEqual:"${path} must be not equal to ${notEqual}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};t.number=s;var a={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};t.date=a;var c={};t.boolean=c;var g={noUnknown:"${path} field cannot have keys not specified in the object shape"};t.object=g;var l={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items"};t.array=l;var u={mixed:A,string:o,number:s,date:a,object:g,array:l,boolean:c};t.default=u},16434:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=I;var i=n(r(72912)),A=n(r(15215)),o=n(r(26052)),s=n(r(78700)),a=r(63802),c=n(r(94916)),g=n(r(80180)),l=n(r(22808)),u=n(r(11050)),h=n(r(54107)),p=n(r(21043)),f=n(r(95814)),d=r(43910),C=function(){function e(){this.list=new Set,this.refs=new Map}var t=e.prototype;return t.toArray=function(){return(0,s.default)(this.list).concat((0,s.default)(this.refs.values()))},t.add=function(e){f.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)},t.delete=function(e){f.default.isRef(e)?this.refs.delete(e.key,e):this.list.delete(e)},t.has=function(e,t){if(this.list.has(e))return!0;for(var r,n=this.refs.values();!(r=n.next()).done;)if(t(r.value)===e)return!0;return!1},e}();function I(e){var t=this;if(void 0===e&&(e={}),!(this instanceof I))return new I;this._deps=[],this._conditions=[],this._options={abortEarly:!0,recursive:!0},this._exclusive=Object.create(null),this._whitelist=new C,this._blacklist=new C,this.tests=[],this.transforms=[],this.withMutation((function(){t.typeError(a.mixed.notType)})),(0,A.default)(e,"default")&&(this._defaultDefault=e.default),this._type=e.type||"mixed"}for(var E=I.prototype={__isYupSchema__:!0,constructor:I,clone:function(){var e=this;return this._mutate?this:(0,o.default)(this,(function(t){if((0,u.default)(t)&&t!==e)return t}))},label:function(e){var t=this.clone();return t._label=e,t},meta:function(e){if(0===arguments.length)return this._meta;var t=this.clone();return t._meta=(0,i.default)(t._meta||{},e),t},withMutation:function(e){var t=this._mutate;this._mutate=!0;var r=e(this);return this._mutate=t,r},concat:function(e){if(!e||e===this)return this;if(e._type!==this._type&&"mixed"!==this._type)throw new TypeError("You cannot `concat()` schema's of different types: "+this._type+" and "+e._type);var t=(0,l.default)(e.clone(),this);return(0,A.default)(e,"_default")&&(t._default=e._default),t.tests=this.tests,t._exclusive=this._exclusive,t.withMutation((function(t){e.tests.forEach((function(e){t.test(e.OPTIONS)}))})),t},isType:function(e){return!(!this._nullable||null!==e)||(!this._typeCheck||this._typeCheck(e))},resolve:function(e){var t=this;if(t._conditions.length){var r=t._conditions;(t=t.clone())._conditions=[],t=(t=r.reduce((function(t,r){return r.resolve(t,e)}),t)).resolve(e)}return t},cast:function(e,t){void 0===t&&(t={});var r=this.resolve((0,i.default)({},t,{value:e})),n=r._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==r.isType(n)){var A=(0,p.default)(e),o=(0,p.default)(n);throw new TypeError("The value of "+(t.path||"field")+' could not be cast to a value that satisfies the schema type: "'+r._type+'". \n\nattempted value: '+A+" \n"+(o!==A?"result of cast: "+o:""))}return n},_cast:function(e){var t=this,r=void 0===e?e:this.transforms.reduce((function(r,n){return n.call(t,r,e)}),e);return void 0===r&&(0,A.default)(this,"_default")&&(r=this.default()),r},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=e,A=null!=t.originalValue?t.originalValue:e,o=this._option("strict",t),s=this._option("abortEarly",t),a=t.sync,c=t.path,l=this._label;o||(n=this._cast(n,(0,i.default)({assert:!1},t)));var u={value:n,path:c,schema:this,options:t,label:l,originalValue:A,sync:a},h=[];return this._typeError&&h.push(this._typeError(u)),this._whitelistError&&h.push(this._whitelistError(u)),this._blacklistError&&h.push(this._blacklistError(u)),(0,g.default)({validations:h,endEarly:s,value:n,path:c,sync:a}).then((function(e){return(0,g.default)({path:c,sync:a,value:e,endEarly:s,validations:r.tests.map((function(e){return e(u)}))})}))},validate:function(e,t){return void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,t)},validateSync:function(e,t){var r,n;if(void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,(0,i.default)({},t,{sync:!0})).then((function(e){return r=e})).catch((function(e){return n=e})),n)throw n;return r},isValid:function(e,t){return this.validate(e,t).then((function(){return!0})).catch((function(e){if("ValidationError"===e.name)return!1;throw e}))},isValidSync:function(e,t){try{return this.validateSync(e,t),!0}catch(e){if("ValidationError"===e.name)return!1;throw e}},getDefault:function(e){return void 0===e&&(e={}),this.resolve(e).default()},default:function(e){if(0===arguments.length){var t=(0,A.default)(this,"_default")?this._default:this._defaultDefault;return"function"==typeof t?t.call(this):(0,o.default)(t)}var r=this.clone();return r._default=e,r},strict:function(e){void 0===e&&(e=!0);var t=this.clone();return t._options.strict=e,t},_isPresent:function(e){return null!=e},required:function(e){return void 0===e&&(e=a.mixed.required),this.test({message:e,name:"required",exclusive:!0,test:function(e){return this.schema._isPresent(e)}})},notRequired:function(){var e=this.clone();return e.tests=e.tests.filter((function(e){return"required"!==e.OPTIONS.name})),e},nullable:function(e){void 0===e&&(e=!0);var t=this.clone();return t._nullable=e,t},transform:function(e){var t=this.clone();return t.transforms.push(e),t},test:function(){var e;if(void 0===(e=1===arguments.length?"function"==typeof(arguments.length<=0?void 0:arguments[0])?{test:arguments.length<=0?void 0:arguments[0]}:arguments.length<=0?void 0:arguments[0]:2===arguments.length?{name:arguments.length<=0?void 0:arguments[0],test:arguments.length<=1?void 0:arguments[1]}:{name:arguments.length<=0?void 0:arguments[0],message:arguments.length<=1?void 0:arguments[1],test:arguments.length<=2?void 0:arguments[2]}).message&&(e.message=a.mixed.default),"function"!=typeof e.test)throw new TypeError("`test` is a required parameters");var t=this.clone(),r=(0,h.default)(e),n=e.exclusive||e.name&&!0===t._exclusive[e.name];if(e.exclusive&&!e.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t._exclusive[e.name]=!!e.exclusive,t.tests=t.tests.filter((function(t){if(t.OPTIONS.name===e.name){if(n)return!1;if(t.OPTIONS.test===r.OPTIONS.test)return!1}return!0})),t.tests.push(r),t},when:function(e,t){1===arguments.length&&(t=e,e=".");var r=this.clone(),n=[].concat(e).map((function(e){return new f.default(e)}));return n.forEach((function(e){e.isSibling&&r._deps.push(e.key)})),r._conditions.push(new c.default(n,t)),r},typeError:function(e){var t=this.clone();return t._typeError=(0,h.default)({message:e,name:"typeError",test:function(e){return!(void 0!==e&&!this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t},oneOf:function(e,t){void 0===t&&(t=a.mixed.oneOf);var r=this.clone();return e.forEach((function(e){r._whitelist.add(e),r._blacklist.delete(e)})),r._whitelistError=(0,h.default)({message:t,name:"oneOf",test:function(e){if(void 0===e)return!0;var t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},notOneOf:function(e,t){void 0===t&&(t=a.mixed.notOneOf);var r=this.clone();return e.forEach((function(e){r._blacklist.add(e),r._whitelist.delete(e)})),r._blacklistError=(0,h.default)({message:t,name:"notOneOf",test:function(e){var t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},strip:function(e){void 0===e&&(e=!0);var t=this.clone();return t._strip=e,t},_option:function(e,t){return(0,A.default)(t,e)?t[e]:this._options[e]},describe:function(){var e=this.clone();return{type:e._type,meta:e._meta,label:e._label,tests:e.tests.map((function(e){return{name:e.OPTIONS.name,params:e.OPTIONS.params}})).filter((function(e,t,r){return r.findIndex((function(t){return t.name===e.name}))===t}))}}},m=["validate","validateSync"],B=function(){var e=m[y];E[e+"At"]=function(t,r,n){void 0===n&&(n={});var A=(0,d.getIn)(this,t,r,n.context),o=A.parent,s=A.parentPath;return A.schema[e](o&&o[s],(0,i.default)({},n,{parent:o,path:t}))}},y=0;y{"use strict";var n=r(60087);t.__esModule=!0,t.default=c;var i=n(r(31490)),A=n(r(16434)),o=r(63802),s=n(r(71665)),a=function(e){return(0,s.default)(e)||e===(0|e)};function c(){var e=this;if(!(this instanceof c))return new c;A.default.call(this,{type:"number"}),this.withMutation((function(){e.transform((function(e){var t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)}))}))}(0,i.default)(c,A.default,{_typeCheck:function(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!function(e){return e!=+e}(e)},min:function(e,t){return void 0===t&&(t=o.number.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,s.default)(t)||t>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=o.number.max),this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,s.default)(t)||t<=this.resolve(e)}})},lessThan:function(e,t){return void 0===t&&(t=o.number.lessThan),this.test({message:t,name:"max",exclusive:!0,params:{less:e},test:function(t){return(0,s.default)(t)||tthis.resolve(e)}})},positive:function(e){return void 0===e&&(e=o.number.positive),this.moreThan(0,e)},negative:function(e){return void 0===e&&(e=o.number.negative),this.lessThan(0,e)},integer:function(e){return void 0===e&&(e=o.number.integer),this.test({name:"integer",message:e,test:a})},truncate:function(){return this.transform((function(e){return(0,s.default)(e)?e:0|e}))},round:function(e){var t=["ceil","floor","round","trunc"];if("trunc"===(e=e&&e.toLowerCase()||"round"))return this.truncate();if(-1===t.indexOf(e.toLowerCase()))throw new TypeError("Only valid options for round() are: "+t.join(", "));return this.transform((function(t){return(0,s.default)(t)?t:Math[e](t)}))}}),e.exports=t.default},51727:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=w;var A=i(r(62407)),o=i(r(72912)),s=i(r(15215)),a=i(r(36494)),c=i(r(89170)),g=i(r(5253)),l=i(r(89612)),u=r(79588),h=i(r(16434)),p=r(63802),f=i(r(18417)),d=i(r(23316)),C=i(r(31490)),I=i(r(7045)),E=n(r(80180));function m(){var e=(0,A.default)(["",".",""]);return m=function(){return e},e}function B(){var e=(0,A.default)(["",".",""]);return B=function(){return e},e}var y=function(e){return"[object Object]"===Object.prototype.toString.call(e)};function w(e){var t=this;if(!(this instanceof w))return new w(e);h.default.call(this,{type:"object",default:function(){var e=this;if(this._nodes.length){var t={};return this._nodes.forEach((function(r){t[r]=e.fields[r].default?e.fields[r].default():void 0})),t}}}),this.fields=Object.create(null),this._nodes=[],this._excludedEdges=[],this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.shape(e)}))}(0,C.default)(w,h.default,{_typeCheck:function(e){return y(e)||"function"==typeof e},_cast:function(e,t){var r=this;void 0===t&&(t={});var n=h.default.prototype._cast.call(this,e,t);if(void 0===n)return this.default();if(!this._typeCheck(n))return n;var i=this.fields,A=!0===this._option("stripUnknown",t),a=this._nodes.concat(Object.keys(n).filter((function(e){return-1===r._nodes.indexOf(e)}))),c={},g=(0,o.default)({},t,{parent:c,__validating:!1}),l=!1;return a.forEach((function(e){var r=i[e],o=(0,s.default)(n,e);if(r){var a,u=r._options&&r._options.strict;if(g.path=(0,I.default)(B(),t.path,e),g.value=n[e],!0===(r=r.resolve(g))._strip)return void(l=l||e in n);void 0!==(a=t.__validating&&u?n[e]:r.cast(n[e],g))&&(c[e]=a)}else o&&!A&&(c[e]=n[e]);c[e]!==n[e]&&(l=!0)})),l?c:n},_validate:function(e,t){var r,n,i=this;void 0===t&&(t={});var A=t.sync,s=[],a=null!=t.originalValue?t.originalValue:e;return r=this._option("abortEarly",t),n=this._option("recursive",t),t=(0,o.default)({},t,{__validating:!0,originalValue:a}),h.default.prototype._validate.call(this,e,t).catch((0,E.propagateErrors)(r,s)).then((function(e){if(!n||!y(e)){if(s.length)throw s[0];return e}a=a||e;var c=i._nodes.map((function(r){var n=(0,I.default)(m(),t.path,r),A=i.fields[r],s=(0,o.default)({},t,{path:n,parent:e,originalValue:a[r]});return A&&A.validate?(s.strict=!0,A.validate(e[r],s)):Promise.resolve(!0)}));return(0,E.default)({sync:A,validations:c,value:e,errors:s,endEarly:r,path:t.path,sort:(0,d.default)(i.fields)})}))},concat:function(e){var t=h.default.prototype.concat.call(this,e);return t._nodes=(0,f.default)(t.fields,t._excludedEdges),t},shape:function(e,t){void 0===t&&(t=[]);var r=this.clone(),n=(0,o.default)(r.fields,e);if(r.fields=n,t.length){Array.isArray(t[0])||(t=[t]);var i=t.map((function(e){return e[0]+"-"+e[1]}));r._excludedEdges=r._excludedEdges.concat(i)}return r._nodes=(0,f.default)(n,r._excludedEdges),r},from:function(e,t,r){var n=(0,u.getter)(e,!0);return this.transform((function(i){if(null==i)return i;var A=i;return(0,s.default)(i,e)&&(A=(0,o.default)({},i),r||delete A[e],A[t]=n(i)),A}))},noUnknown:function(e,t){void 0===e&&(e=!0),void 0===t&&(t=p.object.noUnknown),"string"==typeof e&&(t=e,e=!0);var r=this.test({name:"noUnknown",exclusive:!0,message:t,test:function(t){return null==t||!e||0===function(e,t){var r=Object.keys(e.fields);return Object.keys(t).filter((function(e){return-1===r.indexOf(e)}))}(this.schema,t).length}});return r._options.stripUnknown=e,r},unknown:function(e,t){return void 0===e&&(e=!0),void 0===t&&(t=p.object.noUnknown),this.noUnknown(!e,t)},transformKeys:function(e){return this.transform((function(t){return t&&(0,g.default)(t,(function(t,r){return e(r)}))}))},camelCase:function(){return this.transformKeys(c.default)},snakeCase:function(){return this.transformKeys(a.default)},constantCase:function(){return this.transformKeys((function(e){return(0,a.default)(e).toUpperCase()}))},describe:function(){var e=h.default.prototype.describe.call(this);return e.fields=(0,l.default)(this.fields,(function(e){return e.describe()})),e}}),e.exports=t.default},24280:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e){Object.keys(e).forEach((function(t){Object.keys(e[t]).forEach((function(r){i.default[t][r]=e[t][r]}))}))};var i=n(r(63802));e.exports=t.default},45167:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=l;var i=n(r(31490)),A=n(r(16434)),o=r(63802),s=n(r(71665)),a=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,c=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,g=function(e){return(0,s.default)(e)||e===e.trim()};function l(){var e=this;if(!(this instanceof l))return new l;A.default.call(this,{type:"string"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:null!=e&&e.toString?e.toString():e}))}))}(0,i.default)(l,A.default,{_typeCheck:function(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e},_isPresent:function(e){return A.default.prototype._cast.call(this,e)&&e.length>0},length:function(e,t){return void 0===t&&(t=o.string.length),this.test({message:t,name:"length",exclusive:!0,params:{length:e},test:function(t){return(0,s.default)(t)||t.length===this.resolve(e)}})},min:function(e,t){return void 0===t&&(t=o.string.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,s.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=o.string.max),this.test({name:"max",exclusive:!0,message:t,params:{max:e},test:function(t){return(0,s.default)(t)||t.length<=this.resolve(e)}})},matches:function(e,t){var r,n=!1;return t&&(t.message||t.hasOwnProperty("excludeEmptyString")?(n=t.excludeEmptyString,r=t.message):r=t),this.test({message:r||o.string.matches,params:{regex:e},test:function(t){return(0,s.default)(t)||""===t&&n||e.test(t)}})},email:function(e){return void 0===e&&(e=o.string.email),this.matches(a,{message:e,excludeEmptyString:!0})},url:function(e){return void 0===e&&(e=o.string.url),this.matches(c,{message:e,excludeEmptyString:!0})},ensure:function(){return this.default("").transform((function(e){return null===e?"":e}))},trim:function(e){return void 0===e&&(e=o.string.trim),this.transform((function(e){return null!=e?e.trim():e})).test({message:e,name:"trim",test:g})},lowercase:function(e){return void 0===e&&(e=o.string.lowercase),this.transform((function(e){return(0,s.default)(e)?e:e.toLowerCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,s.default)(e)||e===e.toLowerCase()}})},uppercase:function(e){return void 0===e&&(e=o.string.uppercase),this.transform((function(e){return(0,s.default)(e)?e:e.toUpperCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,s.default)(e)||e===e.toUpperCase()}})}}),e.exports=t.default},54107:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.createErrorFactory=l,t.default=function(e){var t=e.name,r=e.message,n=e.test,o=e.params;function g(e){var g=e.value,u=e.path,h=e.label,p=e.options,f=e.originalValue,d=e.sync,C=(0,i.default)(e,["value","path","label","options","originalValue","sync"]),I=p.parent,E=function(e){return a.default.isRef(e)?e.getValue({value:g,parent:I,context:p.context}):e},m=l({message:r,path:u,value:g,originalValue:f,params:o,label:h,resolve:E,name:t}),B=(0,A.default)({path:u,parent:I,type:t,createError:m,resolve:E,options:p},C);return function(e,t,r,n){var i=e.call(t,r);if(!n)return Promise.resolve(i);if(A=i,A&&"function"==typeof A.then&&"function"==typeof A.catch)throw new Error('Validation test of type: "'+t.type+'" returned a Promise during a synchronous validate. This test will finish after the validate call has returned');var A;return c.SynchronousPromise.resolve(i)}(n,B,g,d).then((function(e){if(s.default.isError(e))throw e;if(!e)throw m()}))}return g.OPTIONS=e,g};var i=n(r(74943)),A=n(r(72912)),o=n(r(89612)),s=n(r(40828)),a=n(r(95814)),c=r(93255),g=s.default.formatError;function l(e){var t=e.value,r=e.label,n=e.resolve,a=e.originalValue,c=(0,i.default)(e,["value","label","resolve","originalValue"]);return function(e){var i=void 0===e?{}:e,l=i.path,u=void 0===l?c.path:l,h=i.message,p=void 0===h?c.message:h,f=i.type,d=void 0===f?c.name:f,C=i.params;return C=(0,A.default)({path:u,value:t,originalValue:a,label:r},function(e,t,r){return(0,o.default)((0,A.default)({},e,t),r)}(c.params,C,n)),(0,A.default)(new s.default(g(p,C),t,u,d),{params:C})}}},31490:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t,r){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),(0,i.default)(e.prototype,r)};var i=n(r(72912));e.exports=t.default},71665:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return null==e},e.exports=t.default},11050:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e&&e.__isYupSchema__},e.exports=t.default},76813:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){var t,n,i=[1,4,5,6,7,10,11],A=0;if(n=r.exec(e)){for(var o,s=0;o=i[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,void 0!==n[8]&&""!==n[8]||void 0!==n[9]&&""!==n[9]?("Z"!==n[8]&&void 0!==n[9]&&(A=60*n[10]+n[11],"+"===n[9]&&(A=0-A)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+A,n[6],n[7])):t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7])}else t=Date.parse?Date.parse(e):NaN;return t};var r=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;e.exports=t.default},7045:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{"use strict";var n=r(60087);t.__esModule=!0,t.default=function e(t,r){for(var n in r)if((0,i.default)(r,n)){var s=r[n],a=t[n];if(void 0===a)t[n]=s;else{if(a===s)continue;(0,A.default)(a)?(0,A.default)(s)&&(t[n]=s.concat(a)):o(a)?o(s)&&(t[n]=e(a,s)):Array.isArray(a)&&Array.isArray(s)&&(t[n]=s.concat(a))}}return t};var i=n(r(15215)),A=n(r(11050)),o=function(e){return"[object Object]"===Object.prototype.toString.call(e)};e.exports=t.default},21043:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e,t){var r=s(e,t);return null!==r?r:JSON.stringify(e,(function(e,r){var n=s(this[e],t);return null!==n?n:r}),2)};var r=Object.prototype.toString,n=Error.prototype.toString,i=RegExp.prototype.toString,A="undefined"!=typeof Symbol?Symbol.prototype.toString:function(){return""},o=/^Symbol\((.*)\)(.*)$/;function s(e,t){if(void 0===t&&(t=!1),null==e||!0===e||!1===e)return""+e;var s=typeof e;if("number"===s)return function(e){return e!=+e?"NaN":0===e&&1/e<0?"-0":""+e}(e);if("string"===s)return t?'"'+e+'"':e;if("function"===s)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===s)return A.call(e).replace(o,"Symbol($1)");var a=r.call(e).slice(8,-1);return"Date"===a?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===a||e instanceof Error?"["+n.call(e)+"]":"RegExp"===a?i.call(e):null}e.exports=t.default},43910:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.getIn=o,t.default=void 0;var i=r(79588),A=n(r(15215));function o(e,t,r,n){var o,s,a;return n=n||r,t?((0,i.forEach)(t,(function(i,c,g){var l=c?function(e){return e.substr(0,e.length-1).substr(1)}(i):i;if(g||(0,A.default)(e,"_subType")){var u=g?parseInt(l,10):0;if(e=e.resolve({context:n,parent:o,value:r})._subType,r){if(g&&u>=r.length)throw new Error("Yup.reach cannot resolve an array item at index: "+i+", in the path: "+t+". because there is no value at that index. ");r=r[u]}}if(!g){if(e=e.resolve({context:n,parent:o,value:r}),!(0,A.default)(e,"fields")||!(0,A.default)(e.fields,l))throw new Error("The schema does not contain the path: "+t+". (failed at: "+a+' which is a type: "'+e._type+'") ');e=e.fields[l],o=r,r=r&&r[l],s=l,a=c?"["+i+"]":"."+i}})),{schema:e,parent:o,parentPath:s}):{parent:o,parentPath:t,schema:e}}var s=function(e,t,r,n){return o(e,t,r,n).schema};t.default=s},80180:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.propagateErrors=function(e,t){return e?null:function(e){return t.push(e),e.value}},t.settled=a,t.collectErrors=c,t.default=function(e){var t=e.endEarly,r=(0,i.default)(e,["endEarly"]);return t?function(e,t,r){return s(r).all(e).catch((function(e){throw"ValidationError"===e.name&&(e.value=t),e})).then((function(){return t}))}(r.validations,r.value,r.sync):c(r)};var i=n(r(74943)),A=r(93255),o=n(r(40828)),s=function(e){return e?A.SynchronousPromise:Promise};function a(e,t){var r=s(t);return r.all(e.map((function(e){return r.resolve(e).then((function(e){return{fulfilled:!0,value:e}}),(function(e){return{fulfilled:!1,value:e}}))})))}function c(e){var t=e.validations,r=e.value,n=e.path,i=e.sync,A=e.errors,s=e.sort;return A=function(e){return void 0===e&&(e=[]),e.inner&&e.inner.length?e.inner:[].concat(e)}(A),a(t,i).then((function(e){var t=e.filter((function(e){return!e.fulfilled})).reduce((function(e,t){var r=t.value;if(!o.default.isError(r))throw r;return e.concat(r)}),[]);if(s&&t.sort(s),(A=t.concat(A)).length)throw new o.default(A,r,n);return r}))}},23316:(e,t)=>{"use strict";function r(e,t){var r=1/0;return e.some((function(e,n){if(-1!==t.path.indexOf(e))return r=n,!0})),r}t.__esModule=!0,t.default=function(e){var t=Object.keys(e);return function(e,n){return r(t,e)-r(t,n)}},e.exports=t.default},18417:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t){void 0===t&&(t=[]);var r=[],n=[];function c(e,i){var A=(0,o.split)(e)[0];~n.indexOf(A)||n.push(A),~t.indexOf(i+"-"+A)||r.push([i,A])}for(var g in e)if((0,i.default)(e,g)){var l=e[g];~n.indexOf(g)||n.push(g),s.default.isRef(l)&&l.isSibling?c(l.path,g):(0,a.default)(l)&&l._deps&&l._deps.forEach((function(e){return c(e,g)}))}return A.default.array(n,r).reverse()};var i=n(r(15215)),A=n(r(75158)),o=r(79588),s=n(r(95814)),a=n(r(11050));e.exports=t.default},60306:e=>{"use strict";e.exports=JSON.parse('{"name":"@yarnpkg/cli","version":"2.3.2","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/core":"workspace:^2.3.1","@yarnpkg/fslib":"workspace:^2.3.0","@yarnpkg/libzip":"workspace:^2.2.1","@yarnpkg/parsers":"workspace:^2.3.0","@yarnpkg/plugin-compat":"workspace:^2.1.2","@yarnpkg/plugin-dlx":"workspace:^2.1.3","@yarnpkg/plugin-essentials":"workspace:^2.3.2","@yarnpkg/plugin-file":"workspace:^2.2.0","@yarnpkg/plugin-git":"workspace:^2.2.0","@yarnpkg/plugin-github":"workspace:^2.1.1","@yarnpkg/plugin-http":"workspace:^2.1.1","@yarnpkg/plugin-init":"workspace:^2.2.1","@yarnpkg/plugin-link":"workspace:^2.1.1","@yarnpkg/plugin-node-modules":"workspace:^2.2.1","@yarnpkg/plugin-npm":"workspace:^2.3.0","@yarnpkg/plugin-npm-cli":"workspace:^2.2.0","@yarnpkg/plugin-pack":"workspace:^2.2.2","@yarnpkg/plugin-patch":"workspace:^2.1.2","@yarnpkg/plugin-pnp":"workspace:^2.3.1","@yarnpkg/shell":"workspace:^2.4.0","chalk":"^3.0.0","ci-info":"^2.0.0","clipanion":"^2.6.2","fromentries":"^1.2.0","semver":"^7.1.2","tslib":"^1.13.0","yup":"^0.27.0"},"devDependencies":{"@types/ci-info":"^2","@types/yup":"0.26.12","@yarnpkg/builder":"workspace:^2.1.2","@yarnpkg/monorepo":"workspace:0.0.0","@yarnpkg/pnpify":"workspace:^2.3.2","micromatch":"^4.0.2","typescript":"4.1.0-beta"},"peerDependencies":{"@yarnpkg/core":"^2.3.1"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\"","build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},"publishConfig":{"main":"./lib/index.js","types":"./lib/index.d.ts","bin":null},"files":["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{"bundles":{"standard":["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-node-modules","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp"]}},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"engines":{"node":">=10.19.0"}}')},98497:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=98497,e.exports=t},32178:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=32178,e.exports=t},3368:(e,t,r)=>{var n,i=Object.assign({},r(35747)),A=void 0!==A?A:{},o={};for(n in A)A.hasOwnProperty(n)&&(o[n]=A[n]);var s,a,c,g,l=[],u="";u=__dirname+"/",s=function(e,t){var n=we(e);return n?t?n:n.toString():(c||(c=i),g||(g=r(85622)),e=g.normalize(e),c.readFileSync(e,t?null:"utf8"))},a=function(e){var t=s(e,!0);return t.buffer||(t=new Uint8Array(t)),E(t.buffer),t},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),l=process.argv.slice(2),e.exports=A,A.inspect=function(){return"[Emscripten Module object]"};var h=A.print||console.log.bind(console),p=A.printErr||console.warn.bind(console);for(n in o)o.hasOwnProperty(n)&&(A[n]=o[n]);o=null,A.arguments&&(l=A.arguments),A.thisProgram&&A.thisProgram,A.quit&&A.quit;var f,d;A.wasmBinary&&(f=A.wasmBinary),A.noExitRuntime&&A.noExitRuntime,"object"!=typeof WebAssembly&&X("no native wasm support detected");var C=new WebAssembly.Table({initial:31,maximum:31,element:"anyfunc"}),I=!1;function E(e,t){e||X("Assertion failed: "+t)}function m(e){var t=A["_"+e];return E(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function B(e,t,r,n,i){var A={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);b(e,t=Ke(r),r)}return t},array:function(e){var t=Ke(e.length);return function(e,t){M.set(e,t)}(e,t),t}};var o=m(e),s=[],a=0;if(n)for(var c=0;c=n);)++i;if(i-t>16&&e.subarray&&y)return y.decode(e.subarray(t,i));for(var A="";t>10,56320|1023&c)}}else A+=String.fromCharCode((31&o)<<6|s)}else A+=String.fromCharCode(o)}return A}function Q(e,t){return e?w(N,e,t):""}function v(e,t,r,n){if(!(n>0))return 0;for(var i=r,A=r+n-1,o=0;o=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o);if(s<=127){if(r>=A)break;t[r++]=s}else if(s<=2047){if(r+1>=A)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=A)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=A)break;t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-i}function b(e,t,r){return v(e,N,t,r)}function D(e){for(var t=0,r=0;r=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}function S(e){var t=D(e)+1,r=Le(t);return r&&v(e,M,r,t),r}var k,M,N,F,R,K,L;function x(e){k=e,A.HEAP8=M=new Int8Array(e),A.HEAP16=F=new Int16Array(e),A.HEAP32=R=new Int32Array(e),A.HEAPU8=N=new Uint8Array(e),A.HEAPU16=new Uint16Array(e),A.HEAPU32=new Uint32Array(e),A.HEAPF32=K=new Float32Array(e),A.HEAPF64=L=new Float64Array(e)}var P=A.INITIAL_MEMORY||16777216;(d=A.wasmMemory?A.wasmMemory:new WebAssembly.Memory({initial:P/65536,maximum:32768}))&&(k=d.buffer),P=k.byteLength,x(k);var U=[],T=[],O=[],Y=[];var j=Math.abs,G=Math.ceil,H=Math.floor,J=Math.min,_=0,q=null,z=null;function W(e){_++,A.monitorRunDependencies&&A.monitorRunDependencies(_)}function V(e){if(_--,A.monitorRunDependencies&&A.monitorRunDependencies(_),0==_&&(null!==q&&(clearInterval(q),q=null),z)){var t=z;z=null,t()}}function X(e){throw A.onAbort&&A.onAbort(e),p(e+=""),I=!0,1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}A.preloadedImages={},A.preloadedAudios={};function Z(e){return t=e,r="data:application/octet-stream;base64,",String.prototype.startsWith?t.startsWith(r):0===t.indexOf(r);var t,r}var $,ee,te="data:application/octet-stream;base64,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AkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiAB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ECwQMwsgASgCDCgCVBAWIAEoAgxBADYCVAsgAUEQaiQAC/EBAQF/IwBBEGsiASAANgIMIAEoAgxBADYCACABKAIMQQA6AAQgASgCDEEAOgAFIAEoAgxBAToABiABKAIMQb8GOwEIIAEoAgxBCjsBCiABKAIMQQA7AQwgASgCDEF/NgIQIAEoAgxBADYCFCABKAIMQQA2AhggASgCDEIANwMgIAEoAgxCADcDKCABKAIMQQA2AjAgASgCDEEANgI0IAEoAgxBADYCOCABKAIMQQA2AjwgASgCDEEAOwFAIAEoAgxBgIDYjXg2AkQgASgCDEIANwNIIAEoAgxBADsBUCABKAIMQQA7AVIgASgCDEEANgJUC9oTAQF/IwBBsAFrIgMkACADIAA2AqgBIAMgATYCpAEgAyACNgKgASADQQA2ApABIAMgAygCpAEoAjBBABA7NgKUASADIAMoAqQBKAI4QQAQOzYCmAECQAJAAkACQCADKAKUAUECRgRAIAMoApgBQQFGDQELIAMoApQBQQFGBEAgAygCmAFBAkYNAQsgAygClAFBAkcNASADKAKYAUECRw0BCyADKAKkASIAIAAvAQxBgBByOwEMDAELIAMoAqQBIgAgAC8BDEH/7wNxOwEMIAMoApQBQQJGBEAgA0H14AEgAygCpAEoAjAgAygCqAFBCGoQxAE2ApABIAMoApABRQRAIANBfzYCrAEMAwsLAkAgAygCoAFBgAJxDQAgAygCmAFBAkcNACADQfXGASADKAKkASgCOCADKAKoAUEIahDEATYCSCADKAJIRQRAIAMoApABECQgA0F/NgKsAQwDCyADKAJIIAMoApABNgIAIAMgAygCSDYCkAELCwJAIAMoAqQBLwFSRQRAIAMoAqQBIgAgAC8BDEH+/wNxOwEMDAELIAMoAqQBIgAgAC8BDEEBcjsBDAsgAyADKAKkASADKAKgARCAAUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBAqNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBUgAygCkAEQJCADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAuIAMoAhwgAygCpAEpAyAQLgwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLgsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAuCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC4LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFSADKAIcEBcgAygCkAEQJCADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQUDYCjAEgAygCHBAXIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECo2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFSADKAKQARAkIANBfzYCrAEMAgsgAygCEEECECAgAygCEEHP0wBBAhBAIAMoAhAgAygCpAEvAVJB/wFxEIoBIAMoAhAgAygCpAEoAhBB//8DcRAgAn8jAEEQayIAIAMoAhA2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCEBAXIAMoApABECQgA0F/NgKsAQwCCyADQYGyAkEHIANBFWpBgAYQUDYCDCADKAIQEBcgAygCDCADKAKQATYCACADIAMoAgw2ApABCyADIANB0ABqQi4QKiIANgJMIABFBEAgAygCqAFBCGpBDkEAEBUgAygCkAEQJCADQX82AqwBDAELIAMoAkxBxdMAQcrTACADKAKgAUGAAnEbQQQQQCADKAKgAUGAAnFFBEAgAygCTAJ/QS0gAy0AhgFBAXENABogAygCpAEvAQgLQf//A3EQIAsgAygCTAJ/QS0gAy0AhgFBAXENABogAygCpAEvAQoLQf//A3EQICADKAJMIAMoAqQBLwEMECACQCADLQCFAUEBcQRAIAMoAkxB4wAQIAwBCyADKAJMIAMoAqQBKAIQQf//A3EQIAsgAygCpAEoAhQgA0GeAWogA0GcAWoQwwEgAygCTCADLwGeARAgIAMoAkwgAy8BnAEQIAJAAkAgAy0AhQFBAXFFDQAgAygCpAEpAyhCFFoNACADKAJMQQAQIQwBCyADKAJMIAMoAqQBKAIYECELAkACQCADKAKgAUGAAnFBgAJHDQAgAygCpAEpAyBC/////w9UBEAgAygCpAEpAyhC/////w9UDQELIAMoAkxBfxAhIAMoAkxBfxAhDAELAkAgAygCpAEpAyBC/////w9UBEAgAygCTCADKAKkASkDIKcQIQwBCyADKAJMQX8QIQsCQCADKAKkASkDKEL/////D1QEQCADKAJMIAMoAqQBKQMopxAhDAELIAMoAkxBfxAhCwsgAygCTCADKAKkASgCMBBSQf//A3EQICADIAMoAqQBKAI0IAMoAqABEIIBQf//A3EgAygCkAFBgAYQggFB//8DcWo2AogBIAMoAkwgAygCiAFB//8DcRAgIAMoAqABQYACcUUEQCADKAJMIAMoAqQBKAI4EFJB//8DcRAgIAMoAkwgAygCpAEoAjxB//8DcRAgIAMoAkwgAygCpAEvAUAQICADKAJMIAMoAqQBKAJEECECQCADKAKkASkDSEL/////D1QEQCADKAJMIAMoAqQBKQNIpxAhDAELIAMoAkxBfxAhCwsCfyMAQRBrIgAgAygCTDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFSADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAqgBIANB0ABqAn4jAEEQayIAIAMoAkw2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IACwsQNkEASARAIAMoAkwQFyADKAKQARAkIANBfzYCrAEMAQsgAygCTBAXIAMoAqQBKAIwBEAgAygCqAEgAygCpAEoAjAQhgFBAEgEQCADKAKQARAkIANBfzYCrAEMAgsLIAMoApABBEAgAygCqAEgAygCkAFBgAYQgQFBAEgEQCADKAKQARAkIANBfzYCrAEMAgsLIAMoApABECQgAygCpAEoAjQEQCADKAKoASADKAKkASgCNCADKAKgARCBAUEASARAIANBfzYC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IAMoAoABKAIAIAMpA3CnQQR0aigCACADEPEBBEAgAygCfEEVQQAQFSADEFwgA0J/NwOIAQwDBSADKAKAASgCACADKQNwp0EEdGooAgAoAjQgAygCNBCFASEAIAMoAoABKAIAIAMpA3CnQQR0aigCACAANgI0IAMoAoABKAIAIAMpA3CnQQR0aigCAEEBOgAEIANBADYCNCADEFwgAyADKQNwQgF8NwNwDAILAAsLIAMCfiADKQNgIAMpA2h9Qv///////////wBUBEAgAykDYCADKQNofQwBC0L///////////8ACzcDiAELIAMpA4gBIQQgA0GQAWokACAEC6YBAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCEBD6ASIANgIMAkAgAEUEQCADQQA2AhwMAQsgAygCDCADKAIYNgIAIAMoAgwgAygCFDYCBCADKAIUQRBxBEAgAygCDCIAIAAoAhRBAnI2AhQgAygCDCIAIAAoAhhBAnI2AhgLIAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC9UBAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCAJAAkAgBCkDEEL///////////8AVwRAIAQpAxBCgICAgICAgICAf1kNAQsgBCgCCEEEQT0QFSAEQX82AhwMAQsCfyAEKQMQIQEgBCgCDCEAIAQoAhgiAigCTEF/TARAIAIgASAAEJYBDAELIAIgASAAEJYBC0EASARAIAQoAghBBEG0nAEoAgAQFSAEQX82AhwMAQsgBEEANgIcCyAEKAIcIQAgBEEgaiQAIAALJwACf0EAQQAgABAFIgAgAEEbRhsiAEUNABpBtJwBIAA2AgBBAAsaC14BAX8jAEEQayIDJAAgAyABQcCAgAJxBH8gAyACQQRqNgIMIAIoAgAFQQALNgIAIAAgAUGAgAJyIAMQESIAQYFgTwRAQbScAUEAIABrNgIAQX8hAAsgA0EQaiQAIAALVQEBfyMAQRBrIgEkACABIAA2AgwCQAJAIAEoAgwoAiRBAUYNACABKAIMKAIkQQJGDQAMAQsgASgCDEEAQgBBChAiGiABKAIMQQA2AiQLIAFBEGokAAszAQF/An8gABAGIgFBYUYEQCAAEBIhAQsgAUGBYE8LBH9BtJwBQQAgAWs2AgBBfwUgAQsLaQECfwJAIAAoAhQgACgCHE0NACAAQQBBACAAKAIkEQEAGiAAKAIUDQBBfw8LIAAoAgQiASAAKAIIIgJJBEAgACABIAJrrEEBIAAoAigREAAaCyAAQQA2AhwgAEIANwMQIABCADcCBEEAC6YBAQF/IwBBEGsiAiQAIAIgADYCCCACIAE2AgQCQCACKAIILQAoQQFxBEAgAkF/NgIMDAELIAIoAggoAgAEQCACKAIIKAIAIAIoAgQQbUEASARAIAIoAghBDGogAigCCCgCABAYIAJBfzYCDAwCCwsgAigCCCACQQRqQgRBExAiQgBTBEAgAkF/NgIMDAELIAJBADYCDAsgAigCDCEAIAJBEGokACAAC0gCAX8BfiMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBCADKAIMQQhqEFUhBCADQRBqJAAgBAskAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgAhCmAiADQRBqJAALpxECD38BfiMAQdAAayIFJAAgBSABNgJMIAVBN2ohEyAFQThqIRFBACEBAkADQAJAIA5BAEgNACABQf////8HIA5rSgRAQbScAUE9NgIAQX8hDgwBCyABIA5qIQ4LIAUoAkwiCiEBAkACQAJAIAotAAAiBgRAA0ACQAJAIAZB/wFxIgZFBEAgASEGDAELIAZBJUcNASABIQYDQCABLQABQSVHDQEgBSABQQJqIgg2AkwgBkEBaiEGIAEtAAIhCSAIIQEgCUElRg0ACwsgBiAKayEBIAAEQCAAIAogARAjCyABDQYgBSgCTCEBIAUCfwJAIAUoAkwsAAFBUGpBCk8NACABLQACQSRHDQAgASwAAUFQaiEQQQEhEiABQQNqDAELQX8hECABQQFqCyIBNgJMQQAhDwJAIAEsAAAiC0FgaiIIQR9LBEAgASEGDAELIAEhBkEBIAh0IglBidEEcUUNAANAIAUgAUEBaiIGNgJMIAkgD3IhDyABLAABIgtBYGoiCEEgTw0BIAYhAUEBIAh0IglBidEEcQ0ACwsCQCALQSpGBEAgBQJ/AkAgBiwAAUFQakEKTw0AIAUoAkwiAS0AAkEkRw0AIAEsAAFBAnQgBGpBwH5qQQo2AgAgASwAAUEDdCADakGAfWooAgAhDEEBIRIgAUEDagwBCyASDQZBACESQQAhDCAABEAgAiACKAIAIgFBBGo2AgAgASgCACEMCyAFKAJMQQFqCyIBNgJMIAxBf0oNAUEAIAxrIQwgD0GAwAByIQ8MAQsgBUHMAGoQowEiDEEASA0EIAUoAkwhAQtBfyEHAkAgAS0AAEEuRw0AIAEtAAFBKkYEQAJAIAEsAAJBUGpBCk8NACAFKAJMIgEtAANBJEcNACABLAACQQJ0IARqQcB+akEKNgIAIAEsAAJBA3QgA2pBgH1qKAIAIQcgBSABQQRqIgE2AkwMAgsgEg0FIAAEfyACIAIoAgAiAUEEajYCACABKAIABUEACyEHIAUgBSgCTEECaiIBNgJMDAELIAUgAUEBajYCTCAFQcwAahCjASEHIAUoAkwhAQtBACEGA0AgBiEJQX8hDSABLAAAQb9/akE5Sw0IIAUgAUEBaiILNgJMIAEsAAAhBiALIQEgBiAJQTpsakHvggFqLQAAIgZBf2pBCEkNAAsCQAJAIAZBE0cEQCAGRQ0KIBBBAE4EQCAEIBBBAnRqIAY2AgAgBSADIBBBA3RqKQMANwNADAILIABFDQggBUFAayAGIAIQogEgBSgCTCELDAILIBBBf0oNCQtBACEBIABFDQcLIA9B//97cSIIIA8gD0GAwABxGyEGQQAhDUGXgwEhECARIQ8CQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCALQX9qLAAAIgFBX3EgASABQQ9xQQNGGyABIAkbIgFBqH9qDiEEFBQUFBQUFBQOFA8GDg4OFAYUFBQUAgUDFBQJFAEUFAQACwJAIAFBv39qDgcOFAsUDg4OAAsgAUHTAEYNCQwTCyAFKQNAIRRBl4MBDAULQQAhAQJAAkACQAJAAkACQAJAIAlB/wFxDggAAQIDBBoFBhoLIAUoAkAgDjYCAAwZCyAFKAJAIA42AgAMGAsgBSgCQCAOrDcDAAwXCyAFKAJAIA47AQAMFgsgBSgCQCAOOgAADBULIAUoAkAgDjYCAAwUCyAFKAJAIA6sNwMADBMLIAdBCCAHQQhLGyEHIAZBCHIhBkH4ACEBCyAFKQNAIBEgAUEgcRCqAiEKIAZBCHFFDQMgBSkDQFANAyABQQR2QZeDAWohEEECIQ0MAwsgBSkDQCAREKkCIQogBkEIcUUNAiAHIBEgCmsiAUEBaiAHIAFKGyEHDAILIAUpA0AiFEJ/VwRAIAVCACAUfSIUNwNAQQEhDUGXgwEMAQsgBkGAEHEEQEEBIQ1BmIMBDAELQZmDAUGXgwEgBkEBcSINGwshECAUIBEQQyEKCyAGQf//e3EgBiAHQX9KGyEGIAUpA0AhFAJAIAcNACAUUEUNAEEAIQcgESEKDAwLIAcgFFAgESAKa2oiASAHIAFKGyEHDAsLIAUoAkAiAUGhgwEgARsiCkEAIAcQpgEiASAHIApqIAEbIQ8gCCEGIAEgCmsgByABGyEHDAoLIAcEQCAFKAJADAILQQAhASAAQSAgDEEAIAYQJwwCCyAFQQA2AgwgBSAFKQNAPgIIIAUgBUEIajYCQEF/IQcgBUEIagshCUEAIQECQANAIAkoAgAiCEUNAQJAIAVBBGogCBClASIKQQBIIggNACAKIAcgAWtLDQAgCUEEaiEJIAcgASAKaiIBSw0BDAILC0F/IQ0gCA0LCyAAQSAgDCABIAYQJyABRQRAQQAhAQwBC0EAIQsgBSgCQCEJA0AgCSgCACIIRQ0BIAVBBGogCBClASIIIAtqIgsgAUoNASAAIAVBBGogCBAjIAlBBGohCSALIAFJDQALCyAAQSAgDCABIAZBgMAAcxAnIAwgASAMIAFKGyEBDAgLIAAgBSsDQCAMIAcgBiABQRURHAAhAQwHCyAFIAUpA0A8ADdBASEHIBMhCiAIIQYMBAsgBSABQQFqIgg2AkwgAS0AASEGIAghAQwAAAsACyAOIQ0gAA0EIBJFDQJBASEBA0AgBCABQQJ0aigCACIABEAgAyABQQN0aiAAIAIQogFBASENIAFBAWoiAUEKRw0BDAYLC0EBIQ0gAUEKTw0EA0AgBCABQQJ0aigCAA0BIAFBAWoiAUEKRw0ACwwEC0F/IQ0MAwsgAEEgIA0gDyAKayIJIAcgByAJSBsiCGoiCyAMIAwgC0gbIgEgCyAGECcgACAQIA0QIyAAQTAgASALIAZBgIAEcxAnIABBMCAIIAlBABAnIAAgCiAJECMgAEEgIAEgCyAGQYDAAHMQJwwBCwtBACENCyAFQdAAaiQAIA0LtwEBBH8CQCACKAIQIgMEfyADBSACEK0CDQEgAigCEAsgAigCFCIFayABSQRAIAIgACABIAIoAiQRAQAPCwJAIAIsAEtBAEgNACABIQQDQCAEIgNFDQEgACADQX9qIgRqLQAAQQpHDQALIAIgACADIAIoAiQRAQAiBCADSQ0BIAAgA2ohACABIANrIQEgAigCFCEFIAMhBgsgBSAAIAEQGhogAiACKAIUIAFqNgIUIAEgBmohBAsgBAvSEQEBfyMAQbABayIGJAAgBiAANgKoASAGIAE2AqQBIAYgAjYCoAEgBiADNgKcASAGIAQ2ApgBIAYgBTYClAEgBkEANgKQAQNAIAYoApABQQ9LRQRAIAZBIGogBigCkAFBAXRqQQA7AQAgBiAGKAKQAUEBajYCkAEMAQsLIAZBADYCjAEDQCAGKAKMASAGKAKgAU9FBEAgBkEgaiAGKAKkASAGKAKMAUEBdGovAQBBAXRqIgAgAC8BAEEBajsBACAGIAYoAowBQQFqNgKMAQwBCwsgBiAGKAKYASgCADYCgAEgBkEPNgKEAQNAAkAgBigChAFBAUkNACAGQSBqIAYoAoQBQQF0ai8BAA0AIAYgBigChAFBf2o2AoQBDAELCyAGKAKAASAGKAKEAUsEQCAGIAYoAoQBNgKAAQsCQCAGKAKEAUUEQCAGQcAAOgBYIAZBAToAWSAGQQA7AVogBigCnAEiASgCACEAIAEgAEEEajYCACAAIAZB2ABqIgEoAQA2AQAgBigCnAEiAigCACEAIAIgAEEEajYCACAAIAEoAQA2AQAgBigCmAFBATYCACAGQQA2AqwBDAELIAZBATYCiAEDQAJAIAYoAogBIAYoAoQBTw0AIAZBIGogBigCiAFBAXRqLwEADQAgBiAGKAKIAUEBajYCiAEMAQsLIAYoAoABIAYoAogBSQRAIAYgBigCiAE2AoABCyAGQQE2AnQgBkEBNgKQAQNAIAYoApABQQ9NBEAgBiAGKAJ0QQF0NgJ0IAYgBigCdCAGQSBqIAYoApABQQF0ai8BAGs2AnQgBigCdEEASARAIAZBfzYCrAEMAwUgBiAGKAKQAUEBajYCkAEMAgsACwsCQCAGKAJ0QQBMDQAgBigCqAEEQCAGKAKEAUEBRg0BCyAGQX82AqwBDAELIAZBADsBAiAGQQE2ApABA0AgBigCkAFBD09FBEAgBigCkAFBAWpBAXQgBmogBigCkAFBAXQgBmovAQAgBkEgaiAGKAKQAUEBdGovAQBqOwEAIAYgBigCkAFBAWo2ApABDAELCyAGQQA2AowBA0AgBigCjAEgBigCoAFJBEAgBigCpAEgBigCjAFBAXRqLwEABEAgBigClAEhASAGKAKkASAGKAKMASICQQF0ai8BAEEBdCAGaiIDLwEAIQAgAyAAQQFqOwEAIABB//8DcUEBdCABaiACOwEACyAGIAYoAowBQQFqNgKMAQwBCwsCQAJAAkACQCAGKAKoAQ4CAAECCyAGIAYoApQBIgA2AkwgBiAANgJQIAZBFDYCSAwCCyAGQbDrADYCUCAGQfDrADYCTCAGQYECNgJIDAELIAZBsOwANgJQIAZB8OwANgJMIAZBADYCSAsgBkEANgJsIAZBADYCjAEgBiAGKAKIATYCkAEgBiAGKAKcASgCADYCVCAGIAYoAoABNgJ8IAZBADYCeCAGQX82AmAgBkEBIAYoAoABdDYCcCAGIAYoAnBBAWs2AlwCQAJAIAYoAqgBQQFGBEAgBigCcEHUBksNAQsgBigCqAFBAkcNASAGKAJwQdAETQ0BCyAGQQE2AqwBDAELA0AgBiAGKAKQASAGKAJ4azoAWQJAIAYoApQBIAYoAowBQQF0ai8BAEEBaiAGKAJISQRAIAZBADoAWCAGIAYoApQBIAYoAowBQQF0ai8BADsBWgwBCwJAIAYoApQBIAYoAowBQQF0ai8BACAGKAJITwRAIAYgBigCTCAGKAKUASAGKAKMAUEBdGovAQAgBigCSGtBAXRqLwEAOgBYIAYgBigCUCAGKAKUASAGKAKMAUEBdGovAQAgBigCSGtBAXRqLwEAOwFaDAELIAZB4AA6AFggBkEAOwFaCwsgBkEBIAYoApABIAYoAnhrdDYCaCAGQQEgBigCfHQ2AmQgBiAGKAJkNgKIAQNAIAYgBigCZCAGKAJoazYCZCAGKAJUIAYoAmQgBigCbCAGKAJ4dmpBAnRqIAZB2ABqKAEANgEAIAYoAmQNAAsgBkEBIAYoApABQQFrdDYCaANAIAYoAmwgBigCaHEEQCAGIAYoAmhBAXY2AmgMAQsLAkAgBigCaARAIAYgBigCbCAGKAJoQQFrcTYCbCAGIAYoAmggBigCbGo2AmwMAQsgBkEANgJsCyAGIAYoAowBQQFqNgKMASAGQSBqIAYoApABQQF0aiIBLwEAQX9qIQAgASAAOwEAAkAgAEH//wNxRQRAIAYoApABIAYoAoQBRg0BIAYgBigCpAEgBigClAEgBigCjAFBAXRqLwEAQQF0ai8BADYCkAELAkAgBigCkAEgBigCgAFNDQAgBigCYCAGKAJsIAYoAlxxRg0AIAYoAnhFBEAgBiAGKAKAATYCeAsgBiAGKAJUIAYoAogBQQJ0ajYCVCAGIAYoApABIAYoAnhrNgJ8IAZBASAGKAJ8dDYCdANAAkAgBigCfCAGKAJ4aiAGKAKEAU8NACAGIAYoAnQgBkEgaiAGKAJ8IAYoAnhqQQF0ai8BAGs2AnQgBigCdEEATA0AIAYgBigCfEEBajYCfCAGIAYoAnRBAXQ2AnQMAQsLIAYgBigCcEEBIAYoAnx0ajYCcAJAAkAgBigCqAFBAUYEQCAGKAJwQdQGSw0BCyAGKAKoAUECRw0BIAYoAnBB0ARNDQELIAZBATYCrAEMBAsgBiAGKAJsIAYoAlxxNgJgIAYoApwBKAIAIAYoAmBBAnRqIAYoAnw6AAAgBigCnAEoAgAgBigCYEECdGogBigCgAE6AAEgBigCnAEoAgAgBigCYEECdGogBigCVCAGKAKcASgCAGtBAnU7AQILDAELCyAGKAJsBEAgBkHAADoAWCAGIAYoApABIAYoAnhrOgBZIAZBADsBWiAGKAJUIAYoAmxBAnRqIAZB2ABqKAEANgEACyAGKAKcASIAIAAoAgAgBigCcEECdGo2AgAgBigCmAEgBigCgAE2AgAgBkEANgKsAQsgBigCrAEhACAGQbABaiQAIAALsQIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYKAIENgIMIAMoAgwgAygCEEsEQCADIAMoAhA2AgwLAkAgAygCDEUEQCADQQA2AhwMAQsgAygCGCIAIAAoAgQgAygCDGs2AgQgAygCFCADKAIYKAIAIAMoAgwQGhoCQCADKAIYKAIcKAIYQQFGBEAgAygCGCgCMCADKAIUIAMoAgwQPiEAIAMoAhggADYCMAwBCyADKAIYKAIcKAIYQQJGBEAgAygCGCgCMCADKAIUIAMoAgwQGyEAIAMoAhggADYCMAsLIAMoAhgiACADKAIMIAAoAgBqNgIAIAMoAhgiACADKAIMIAAoAghqNgIIIAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC+0BAQF/IwBBEGsiASAANgIIAkACQAJAIAEoAghFDQAgASgCCCgCIEUNACABKAIIKAIkDQELIAFBATYCDAwBCyABIAEoAggoAhw2AgQCQAJAIAEoAgRFDQAgASgCBCgCACABKAIIRw0AIAEoAgQoAgRBKkYNASABKAIEKAIEQTlGDQEgASgCBCgCBEHFAEYNASABKAIEKAIEQckARg0BIAEoAgQoAgRB2wBGDQEgASgCBCgCBEHnAEYNASABKAIEKAIEQfEARg0BIAEoAgQoAgRBmgVGDQELIAFBATYCDAwBCyABQQA2AgwLIAEoAgwL0gQBAX8jAEEgayIDIAA2AhwgAyABNgIYIAMgAjYCFCADIAMoAhxB3BZqIAMoAhRBAnRqKAIANgIQIAMgAygCFEEBdDYCDANAAkAgAygCDCADKAIcKALQKEoNAAJAIAMoAgwgAygCHCgC0ChODQAgAygCGCADKAIcIAMoAgxBAnRqQeAWaigCAEECdGovAQAgAygCGCADKAIcQdwWaiADKAIMQQJ0aigCAEECdGovAQBOBEAgAygCGCADKAIcIAMoAgxBAnRqQeAWaigCAEECdGovAQAgAygCGCADKAIcQdwWaiADKAIMQQJ0aigCAEECdGovAQBHDQEgAygCHCADKAIMQQJ0akHgFmooAgAgAygCHEHYKGpqLQAAIAMoAhxB3BZqIAMoAgxBAnRqKAIAIAMoAhxB2Chqai0AAEoNAQsgAyADKAIMQQFqNgIMCyADKAIYIAMoAhBBAnRqLwEAIAMoAhggAygCHEHcFmogAygCDEECdGooAgBBAnRqLwEASA0AAkAgAygCGCADKAIQQQJ0ai8BACADKAIYIAMoAhxB3BZqIAMoAgxBAnRqKAIAQQJ0ai8BAEcNACADKAIQIAMoAhxB2Chqai0AACADKAIcQdwWaiADKAIMQQJ0aigCACADKAIcQdgoamotAABKDQAMAQsgAygCHEHcFmogAygCFEECdGogAygCHEHcFmogAygCDEECdGooAgA2AgAgAyADKAIMNgIUIAMgAygCDEEBdDYCDAwBCwsgAygCHEHcFmogAygCFEECdGogAygCEDYCAAvnCAEDfyMAQTBrIgIkACACIAA2AiwgAiABNgIoIAIgAigCKCgCADYCJCACIAIoAigoAggoAgA2AiAgAiACKAIoKAIIKAIMNgIcIAJBfzYCECACKAIsQQA2AtAoIAIoAixBvQQ2AtQoIAJBADYCGANAIAIoAhggAigCHE5FBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUF/ajYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAUhFBEAgAigCLCACKAIkIAIoAhgQdSACIAIoAhhBf2o2AhgMAQsLIAIgAigCHDYCDANAIAIgAigCLCgC4BY2AhggAigCLEHcFmohASACKAIsIgMoAtAoIQAgAyAAQX9qNgLQKCACKAIsIABBAnQgAWooAgA2AuAWIAIoAiwgAigCJEEBEHUgAiACKAIsKALgFjYCFCACKAIYIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQX9qIQAgBCAANgLUKCAAQQJ0IANqIAE2AgAgAigCFCEBIAIoAixB3BZqIQMgAigCLCIEKALUKEF/aiEAIAQgADYC1CggAEECdCADaiABNgIAIAIoAiQgAigCDEECdGogAigCJCACKAIYQQJ0ai8BACACKAIkIAIoAhRBAnRqLwEAajsBACACKAIMIAIoAixB2ChqagJ/IAIoAhggAigCLEHYKGpqLQAAIAIoAhQgAigCLEHYKGpqLQAATgRAIAIoAhggAigCLEHYKGpqLQAADAELIAIoAhQgAigCLEHYKGpqLQAAC0EBajoAACACKAIkIAIoAhRBAnRqIAIoAgwiADsBAiACKAIkIAIoAhhBAnRqIAA7AQIgAiACKAIMIgBBAWo2AgwgAigCLCAANgLgFiACKAIs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AykDKCEBIANBMGokACABC3cBAX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMoAhQvAQqtEDZBAEgEQCADKAIIEBcgA0F/NgIcDAULCwsgAyADKAIUKAIANgIUDAELCyADKAIIEBcgA0EANgIcCyADKAIcIQAgA0EgaiQAIAALaAEBfyMAQRBrIgIgADYCDCACIAE2AgggAkEAOwEGA0AgAigCDARAIAIoAgwoAgQgAigCCHFBgAZxBEAgAiACKAIMLwEKIAIvAQZBBGpqOwEGCyACIAIoAgwoAgA2AgwMAQsLIAIvAQYL8AEBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABQQA2AgQDQCABKAIMBEACQAJAIAEoAgwvAQhB9cYBRg0AIAEoAgwvAQhB9eABRg0AIAEoAgwvAQhBgbICRg0AIAEoAgwvAQhBAUcNAQsgASABKAIMKAIANgIAIAEoAgggASgCDEYEQCABIAEoAgA2AggLIAEoAgxBADYCACABKAIMECQgASgCBARAIAEoAgQgASgCADYCAAsgASABKAIANgIMDAILIAEgASgCDDYCBCABIAEoAgwoAgA2AgwMAQsLIAEoAgghACABQRBqJAAgAAuzBAEBfyMAQUBqIgUkACAFIAA2AjggBSABOwE2IAUgAjYCMCAFIAM2AiwgBSAENgIoIAUgBSgCOCAFLwE2rRAqIgA2AiQCQCAARQRAIAUoAihBDkEAEBUgBUEAOgA/DAELIAVBADYCICAFQQA2AhgDQAJ/IwBBEGsiACAFKAIkNgIMIAAoAgwtAABBAXELBH8gBSgCJBAwQgRaBUEAC0EBcQRAIAUgBSgCJBAeOwEWIAUgBSgCJBAeOwEUIAUgBSgCJCAFLwEUrRAfNgIQIAUoAhBFBEAgBSgCKEEVQQAQFSAFKAIkEBcgBSgCGBAkIAVBADoAPwwDCyAFIAUvARYgBS8BFCAFKAIQIAUoAjAQUCIANgIcIABFBEAgBSgCKEEOQQAQFSAFKAIkEBcgBSgCGBAkIAVBADoAPwwDCwJAIAUoAhgEQCAFKAIgIAUoAhw2AgAgBSAFKAIcNgIgDAELIAUgBSgCHCIANgIgIAUgADYCGAsMAQsLIAUoAiQQSEEBcUUEQCAFIAUoAiQQMD4CDCAFIAUoAiQgBSgCDK0QHzYCCAJAAkAgBSgCDEEETw0AIAUoAghFDQAgBSgCCEGy0wAgBSgCDBBTRQ0BCyAFKAIoQRVBABAVIAUoAiQQFyAFKAIYECQgBUEAOgA/DAILCyAFKAIkEBcCQCAFKAIsBEAgBSgCLCAFKAIYNgIADAELIAUoAhgQJAsgBUEBOgA/CyAFLQA/QQFxIQAgBUFAayQAIAAL7wIBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFAJAIAIoAhhFBEAgAiACKAIUNgIcDAELIAIgAigCGDYCCANAIAIoAggoAgAEQCACIAIoAggoAgA2AggMAQsLA0AgAigCFARAIAIgAigCFCgCADYCECACQQA2AgQgAiACKAIYNgIMA0ACQCACKAIMRQ0AAkAgAigCDC8BCCACKAIULwEIRw0AIAIoAgwvAQogAigCFC8BCkcNACACKAIMLwEKBEAgAigCDCgCDCACKAIUKAIMIAIoAgwvAQoQUw0BCyACKAIMIgAgACgCBCACKAIUKAIEQYAGcXI2AgQgAkEBNgIEDAELIAIgAigCDCgCADYCDAwBCwsgAigCFEEANgIAAkAgAigCBARAIAIoAhQQJAwBCyACKAIIIAIoAhQiADYCACACIAA2AggLIAIgAigCEDYCFAwBCwsgAiACKAIYNgIcCyACKAIcIQAgAkEgaiQAIAALXQEBfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkAgAigCBEUEQCACQQA2AgwMAQsgAiACKAIIIAIoAgQoAgAgAigCBC8BBK0QNjYCDAsgAigCDCEAIAJBEGokACAAC48BAQF/IwBBEGsiAiQAIAIgADYCCCACIAE2AgQCQAJAIAIoAggEQCACKAIEDQELIAIgAigCCCACKAIERjYCDAwBCyACKAIILwEEIAIoAgQvAQRHBEAgAkEANgIMDAELIAIgAigCCCgCACACKAIEKAIAIAIoAggvAQQQU0U2AgwLIAIoAgwhACACQRBqJAAgAAtVAQF/IwBBEGsiASQAIAEgADYCDCABQQBBAEEAEBs2AgggASgCDARAIAEgASgCCCABKAIMKAIAIAEoAgwvAQQQGzYCCAsgASgCCCEAIAFBEGokACAAC6ABAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE2AhQgBSACOwESIAUgAzoAESAFIAQ2AgwgBSAFKAIYIAUoAhQgBS8BEiAFLQARQQFxIAUoAgwQYCIANgIIAkAgAEUEQCAFQQA2AhwMAQsgBSAFKAIIIAUvARJBACAFKAIMEFE2AgQgBSgCCBAWIAUgBSgCBDYCHAsgBSgCHCEAIAVBIGokACAAC18BAX8jAEEQayICJAAgAiAANgIIIAIgAToAByACIAIoAghCARAfNgIAAkAgAigCAEUEQCACQX82AgwMAQsgAigCACACLQAHOgAAIAJBADYCDAsgAigCDBogAkEQaiQAC1QBAX8jAEEQayIBJAAgASAANgIIIAEgASgCCEIBEB82AgQCQCABKAIERQRAIAFBADoADwwBCyABIAEoAgQtAAA6AA8LIAEtAA8hACABQRBqJAAgAAs4AQF/IwBBEGsiASAANgIMIAEoAgxBADYCACABKAIMQQA2AgQgASgCDEEANgIIIAEoAgxBADoADAufAgEBfyMAQUBqIgUkACAFIAA3AzAgBSABNwMoIAUgAjYCJCAFIAM3AxggBSAENgIUIAUCfyAFKQMYQhBUBEAgBSgCFEESQQAQFUEADAELIAUoAiQLNgIEAkAgBSgCBEUEQCAFQn83AzgMAQsCQAJAAkACQAJAIAUoAgQoAggOAwIAAQMLIAUgBSkDMCAFKAIEKQMAfDcDCAwDCyAFIAUpAyggBSgCBCkDAHw3AwgMAgsgBSAFKAIEKQMANwMIDAELIAUoAhRBEkEAEBUgBUJ/NwM4DAELAkAgBSkDCEIAWQRAIAUpAwggBSkDKFgNAQsgBSgCFEESQQAQFSAFQn83AzgMAQsgBSAFKQMINwM4CyAFKQM4IQAgBUFAayQAIAAL6gECAX8BfiMAQSBrIgQkACAEIAA2AhggBCABNgIUIAQgAjYCECAEIAM2AgwgBCAEKAIMEI8BIgA2AggCQCAARQRAIARBADYCHAwBCyMAQRBrIgAgBCgCGDYCDCAAKAIMIgAgACgCMEEBajYCMCAEKAIIIAQoAhg2AgAgBCgCCCAEKAIUNgIEIAQoAgggBCgCEDYCCCAEKAIYIAQoAhBBAEIAQQ4gBCgCFBENACEFIAQoAgggBTcDGCAEKAIIKQMYQgBTBEAgBCgCCEI/NwMYCyAEIAQoAgg2AhwLIAQoAhwhACAEQSBqJAAgAAvqAQEBfyMAQRBrIgEkACABIAA2AgggAUE4EBkiADYCBAJAIABFBEAgASgCCEEOQQAQFSABQQA2AgwMAQsgASgCBEEANgIAIAEoAgRBADYCBCABKAIEQQA2AgggASgCBEEANgIgIAEoAgRBADYCJCABKAIEQQA6ACggASgCBEEANgIsIAEoAgRBATYCMCMAQRBrIgAgASgCBEEMajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ADQgASgCBEEAOgA1IAEgASgCBDYCDAsgASgCDCEAIAFBEGokACAAC7ABAgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIQEI8BIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIMIAMoAhg2AgQgAygCDCADKAIUNgIIIAMoAhRBAEIAQQ4gAygCGBEPACEEIAMoAgwgBDcDGCADKAIMKQMYQgBTBEAgAygCDEI/NwMYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAvDAgEBfyMAQRBrIgMgADYCDCADIAE2AgggAyACNgIEIAMoAggpAwBCAoNCAFIEQCADKAIMIAMoAggpAxA3AxALIAMoAggpAwBCBINCAFIEQCADKAIMIAMoAggpAxg3AxgLIAMoAggpAwBCCINCAFIEQCADKAIMIAMoAggpAyA3AyALIAMoAggpAwBCEINCAFIEQCADKAIMIAMoAggoAig2AigLIAMoAggpAwBCIINCAFIEQCADKAIMIAMoAggoAiw2AiwLIAMoAggpAwBCwACDQgBSBEAgAygCDCADKAIILwEwOwEwCyADKAIIKQMAQoABg0IAUgRAIAMoAgwgAygCCC8BMjsBMgsgAygCCCkDAEKAAoNCAFIEQCADKAIMIAMoAggoAjQ2AjQLIAMoAgwiACADKAIIKQMAIAApAwCENwMAQQALggUBAX8jAEHgAGsiAyQAIAMgADYCWCADIAE2AlQgAyACNgJQAkACQCADKAJUQQBOBEAgAygCWA0BCyADKAJQQRJBABAVIANBADYCXAwBCyADIAMoAlQ2AkwjAEEQayIAIAMoAlg2AgwgAyAAKAIMKQMYNwNAQeCbASkDAEJ/UQRAIANBfzYCFCADQQM2AhAgA0EHNgIMIANBBjYCCCADQQI2AgQgA0EBNgIAQeCbAUEAIAMQNzcDACADQX82AjQgA0EPNgIwIANBDTYCLCADQQw2AiggA0EKNgIkIANBCTYCIEHomwFBCCADQSBqEDc3AwALQeCbASkDACADKQNAQeCbASkDAINSBEAgAygCUEEcQQAQFSADQQA2AlwMAQtB6JsBKQMAIAMpA0BB6JsBKQMAg1IEQCADIAMoAkxBEHI2AkwLIAMoAkxBGHFBGEYEQCADKAJQQRlBABAVIANBADYCXAwBCyADIAMoAlggAygCUBD4ATYCPAJAAkACQCADKAI8QQFqDgIAAQILIANBADYCXAwCCyADKAJMQQFxRQRAIAMoAlBBCUEAEBUgA0EANgJcDAILIAMgAygCWCADKAJMIAMoAlAQZjYCXAwBCyADKAJMQQJxBEAgAygCUEEKQQAQFSADQQA2AlwMAQsgAygCWBBJQQBIBEAgAygCUCADKAJYEBggA0EANgJcDAELAkAgAygCTEEIcQRAIAMgAygCWCADKAJMIAMoAlAQZjYCOAwBCyADIAMoAlggAygCTCADKAJQEPcBNgI4CyADKAI4RQRAIAMoAlgQMhogA0EANgJcDAELIAMgAygCODYCXAsgAygCXCEAIANB4ABqJAAgAAuOAQEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAJBADYCBCACKAIIBEAjAEEQayIAIAIoAgg2AgwgAiAAKAIMKAIANgIEIAIoAggQpwFBAUYEQCMAQRBrIgAgAigCCDYCDEG0nAEgACgCDCgCBDYCAAsLIAIoAgwEQCACKAIMIAIoAgQ2AgALIAJBEGokAAuVAQEBfyMAQRBrIgEkACABIAA2AggCQAJ/IwBBEGsiACABKAIINgIMIAAoAgwpAxhCgIAQg1ALBEAgASgCCCgCAARAIAEgASgCCCgCABCUAUEBcToADwwCCyABQQE6AA8MAQsgASABKAIIQQBCAEESECI+AgQgASABKAIEQQBHOgAPCyABLQAPQQFxIQAgAUEQaiQAIAALfwEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIANBADYCDCADIAI2AggCQCADKQMQQv///////////wBWBEAgAygCCEEEQT0QFSADQX82AhwMAQsgAyADKAIYIAMpAxAgAygCDCADKAIIEGc2AhwLIAMoAhwhACADQSBqJAAgAAt9ACACQQFGBEAgASAAKAIIIAAoAgRrrH0hAQsCQCAAKAIUIAAoAhxLBEAgAEEAQQAgACgCJBEBABogACgCFEUNAQsgAEEANgIcIABCADcDECAAIAEgAiAAKAIoERAAQgBTDQAgAEIANwIEIAAgACgCAEFvcTYCAEEADwtBfwviAgECfyMAQSBrIgMkAAJ/AkACQEH0lwEgASwAABCYAUUEQEG0nAFBHDYCAAwBC0GYCRAZIgINAQtBAAwBCyACQQBBkAEQMyABQSsQmAFFBEAgAkEIQQQgAS0AAEHyAEYbNgIACwJAIAEtAABB4QBHBEAgAigCACEBDAELIABBA0EAEAQiAUGACHFFBEAgAyABQYAIcjYCECAAQQQgA0EQahAEGgsgAiACKAIAQYABciIBNgIACyACQf8BOgBLIAJBgAg2AjAgAiAANgI8IAIgAkGYAWo2AiwCQCABQQhxDQAgAyADQRhqNgIAIABBk6gBIAMQDg0AIAJBCjoASwsgAkEaNgIoIAJBGzYCJCACQRw2AiAgAkEdNgIMQdygASgCAEUEQCACQX82AkwLIAJBsKEBKAIANgI4QbChASgCACIABEAgACACNgI0C0GwoQEgAjYCACACCyEAIANBIGokACAACxoAIAAgARCFAiIAQQAgAC0AACABQf8BcUYbCxgAIAAoAkxBf0wEQCAAEJoBDwsgABCaAQtgAgJ/AX4gACgCKCEBQQEhAiAAQgAgAC0AAEGAAXEEf0ECQQEgACgCFCAAKAIc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KAIYKQMwWgRAIAIoAhhBCGpBEkEAEBUgAkF/NgIcDAELIAIoAhgoAhhBAnEEQCACKAIYQQhqQRlBABAVIAJBfzYCHAwBCyACIAIoAhggAikDEEEAIAIoAhhBCGoQTyIANgIMIABFBEAgAkF/NgIcDAELIAIoAhgoAlAgAigCDCACKAIYQQhqEFlBAXFFBEAgAkF/NgIcDAELIAIoAhggAikDEBCgAgRAIAJBfzYCHAwBCyACKAIYKAJAIAIpAxCnQQR0akEBOgAMIAJBADYCHAsgAigCHCEAIAJBIGokACAAC5gCAAJAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQCABQXdqDgoAAQIJAwQFBgkHCAsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgACACQRYRBAALDwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC0oBA38gACgCACwAAEFQakEKSQRAA0AgACgCACIBLAAAIQMgACABQQFqNgIAIAMgAkEKbGpBUGohAiABLAABQVBqQQpJDQALCyACC38CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEKQBIQAgASgCAEFAags2AgAgAA8LIAEgAkGCeGo2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvwUgAAsLEgAgAEUEQEEADwsgACABELQCC+UBAQJ/IAJBAEchAwJAAkACQCACRQ0AIABBA3FFDQAgAUH/AXEhBANAIAAtAAAgBEYNAiAAQQFqIQAgAkF/aiICQQBHIQMgAkUNASAAQQNxDQALCyADRQ0BCwJAIAAtAAAgAUH/AXFGDQAgAkEESQ0AIAFB/wFxQYGChAhsIQMDQCAAKAIAIANzIgRBf3MgBEH//ft3anFBgIGChHhxDQEgAEEEaiEAIAJB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HAvkAQEBfyMAQSBrIgMkACADIAA6ABsgAyABNgIUIAMgAjYCECADQcgAEBkiADYCDAJAIABFBEAgAygCEEEBQbScASgCABAVIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEH+fWo2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEF/aiIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5gQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAgxBBWsgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcUVFNgIQIAIoAihBAEEAIAIoAhAQVyACKAIoKAIIIAIoAigoAhRBBGtqIAIoAhw6AAAgAigCKCgCCCACKAIoKAIUQQNraiACKAIcQQh2OgAAIAIoAigoAgggAigCKCgCFEECa2ogAigCHEF/czoAACACKAIoKAIIIAIoAigoAhRBAWtqIAIoAhxBf3NBCHY6AAAgAigCKCgCABAdIAIoAhgEQCACKAIYIAIoAhxLBEAgAiACKAIcNgIYCyACKAIoKAIAKAIMIAIoAigoAjggAigCKCgCXGogAigCGBAaGiACKAIoKAIAIgAgAigCGCAAKAIMajYCDCACKAIoKAIAIgAgACgCECACKAIYazYCECACKAIoKAIAIgAgAigCGCAAKAIUajYCFCACKAIoIgAgAigCGCAAKAJcajYCXCACIAIoAhwgAigCGGs2AhwLIAIoAhwEQCACKAIoKAIAIAIoAigoAgAoAgwgAigCHBBzGiACKAIoKAIAIgAgAigCHCAAKAIMajYCDCACKAIoKAIAIgAgACgCECACKAIcazYCECACKAIoKAIAIgAgAigCHCAAKAIUajYCFAsgAigCEEUNAQsLIAIgAigCDCACKAIoKAIAKAIEazYCDCACKAIMBEACQCACKAIMIAIoAigoAixPBEAgAigCKEECNgKwLSACKAIoKAI4IAIoAigoAgAoAgAgAigCKCgCLGsgAigCKCgCLBAaGiACKAIoIAIoAigoAiw2AmwMAQsgAigCKCgCPCACKAIoKAJsayACKAIMTQRAIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBoaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsLIAIoAigoAjggAigCKCgCbGogAigCKCgCACgCACACKAIMayACKAIMEBoaIAIoAigiACACKAIMIAAoAmxqNgJsCyACKAIoIAIoAigoAmw2AlwgAigCKCIBAn8gAigCDCACKAIoKAIsIAIoAigoArQta0sEQCACKAIoKAIsIAIoAigoArQtawwBCyACKAIMCyABKAK0LWo2ArQtCyACKAIoKALALSACKAIoKAJsSQRAIAIoAiggAigCKCgCbDYCwC0LAkAgAigCEARAIAJBAzYCLAwBCwJAIAIoAiRFDQAgAigCJEEERg0AIAIoAigoAgAoAgQNACACKAIoKAJsIAIoAigoAlxHDQAgAkEBNgIsDAELIAIgAigCKCgCPCACKAIoKAJsa0EBazYCFAJAIAIoAigoAgAoAgQgAigCFE0NACACKAIoKAJcIAIoAigoAixIDQAgAigCKCIAIAAoAlwgAigCKCgCLGs2AlwgAigCKCIAIAAoAmwgAigCKCgCLGs2AmwgAigCKCgCOCACKAIoKAI4IAIoAigoAixqIAIoAigoAmwQGhogAigCKCgCsC1BAkkEQCACKAIoIgAgACgCsC1BAWo2ArAtCyACIAIoAigoAiwgAigCFGo2AhQLIAIoAhQgAigCKCgCACgCBEsEQCACIAIoAigoAgAoAgQ2AhQLIAIoAhQEQCACKAIoKAIAIAIoAigoAjggAigCKCgCbGogAigCFBBzGiACKAIoIgAgAigCFCAAKAJsajYCbAsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCyACIAIoAigoArwtQSpqQQN1NgIUIAICf0H//wMgAigCKCgCDCACKAIUa0H//wNLDQAaIAIoAigoAgwgAigCFGsLNgIUIAICfyACKAIUIAIoAigoAixLBEAgAigCKCgCLAwBCyACKAIUCzYCICACIAIoAigoAmwgAigCKCgCXGs2AhgCQCACKAIYIAIoAiBJBEAgAigCGEUEQCACKAIkQQRHDQILIAIoAiRFDQEgAigCKCgCACgCBA0BIAIoAhggAigCFEsNAQsgAgJ/IAIoAhggAigCFEsEQCACKAIUDAELIAIoAhgLNgIcIAICf0EAIAIoAiRBBEcNABpBACACKAIoKAIAKAIEDQAaIAIoAhwgAigCGEYLQQFxRUU2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBXIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHQsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHQEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCAB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A0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhAFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCDATYCDCACKAIcKAIAKAI0IAIoAgwQhQEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsHACAAKAIAC4wBAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQgAkEANgIQAkAgAigCFEUEQCACQQA2AhwMAQsgAiACKAIUEBk2AgwgAigCDEUEQCACKAIQQQ5BABAVIAJBADYCHAwBCyACKAIMIAIoAhggAigCFBAaGiACIAIoAgw2AhwLIAIoAhwhACACQSBqJAAgAAsYAEGonAFCADcCAEGwnAFBADYCAEGonAELiAEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQAJAIAMoAhQoAiRBAUYEQCADKQMIQv///////////wBYDQELIAMoAhRBDGpBEkEAEBUgA0J/NwMYDAELIAMgAygCFCADKAIQIAMpAwhBCxAiNwMYCyADKQMYIQIgA0EgaiQAIAILcwEBfyMAQSBrIgEkACABIAA2AhggAUIINwMQIAEgASgCGCkDECABKQMQfDcDCAJAIAEpAwggASgCGCkDEFQEQCABKAIYQQA6AAAgAUF/NgIcDAELIAEgASgCGCAB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IAIgADYCSCACIAE2AkQgAkEIaiIAEDwCQCACKAJIIAAQOQRAIwBBEGsiACACKAJINgIMIAIgACgCDEEMajYCBCMAQRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIEDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCAB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CyAAIAFBf2oiAWoiAi0AAEEvRw0ACyACC6kBAQN/AkAgAC0AACICRQ0AA0AgAS0AACIERQRAIAIhAwwCCwJAIAIgBEYNACACQSByIAIgAkG/f2pBGkkbIAEtAAAiAkEgciACIAJBv39qQRpJG0YNACAALQAAIQMMAgsgAUEBaiEBIAAtAAEhAiAAQQFqIQAgAg0ACwsgA0H/AXEiAEEgciAAIABBv39qQRpJGyABLQAAIgBBIHIgACAAQb9/akEaSRtrC+gDAQN/IwBBsAFrIgEkACABIAA2AqgBIAEoAqgBEDgCQAJAIAEoAqgBKAIAQQBOBEAgASgCqAEoAgBBoA4oAgBIDQELIAEgASgCqAEoAgA2AhAgAUEgakG8lwEgAUEQahBvIAFBADYCpAEgASABQSBqNgKgAQwBCyABIAEoAqgBKAIAQQJ0QaANaigCADYCpAECQAJAAkACQCABKAKoASgCAEECdEGwDmooAgBBf2oOAgABAgsgASABKAKoASgCBEGQmgEoAgAQpAI2AqABDAILIwBBEGsiACABKAKoASgCBDYCDCABQQAgACgCDGtBAnRB2NQAaigCADYCoAEMAQsgAUEANgKgAQsLAkAgASgCoAFFBEAgASABKAKkATYCrAEMAQsgASABKAKgARAsAn8gASgCpAEEQCABKAKkARAsQQJqDAELQQALakEBahAZIgA2AhwgAEUEQCABQdgNKAIANgKsAQwBCyABKAIcIQACfyABKAKkAQRAIAEoAqQBDAELQdSXAQshAkHVlwFB1JcBIAEoAqQBGyEDIAEgASgCoAE2AgggASADNgIEIAEgAjYCACAAQc2XASABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAtxAQN/AkACQANAIAAgAkHQiAFqLQAARwRAQdcAIQMgAkEBaiICQdcARw0BDAILCyACIgMNAEGwiQEhAAwBC0GwiQEhAgNAIAItAAAhBCACQQFqIgAhAiAEDQAgACECIANBf2oiAw0ACwsgASgCFBogAAszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGhogACAAKAIUIAFqNgIUIAILigEBAn8jAEGgAWsiAyQAIANBCGpBuIcBQZABEBoaIAMgADYCNCADIAA2AhwgA0F+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QQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQaShAQsGAEGgoQELBgBBmKEBC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELMCIAIgACAEQYH4ACADaxCyAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBCQAyICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtQI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQuwIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsgAigCFAuMEAMCfwF+AXwjAEHgAGsiASQAIAEgADYCWAJAIAEoAlhFBEAgAUF/NgJcDAELIAEgASgCWCABQUBrELkCNgIkIAEpA0BQBEACQCABKAJYKAIEQQhxRQRAIAEoAiRFDQELIAEoAlgoAgAQhAJBAEgEQAJAAn8jAEEQayICIAEoAlgoAgA2AgwjAEEQayIAIAIoAgxBDGo2AgwgACgCDCgCAEEWRgsEQCMAQRBrIgIgASgC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NgI8IAEoAlAgASgCODYCQCABKAJYIAEoAjAQ1gIgASABKAJYKAIMNgJIIAEgASgCWCgCEDYCQCABIAEoAlgoAgA2AkwgASABKAJYKAIENgJEIAEgASgCUCgCPDYCPCABIAEoAlAoAkA2AjggASgCUCgCBEG//gBGBEAgASgCUEF/NgLINwsMDQsgASgCUEEANgLINwNAAkAgASABKAJQKAJQIAEoAjxBASABKAJQKAJYdEEBa3FBAnRqKAEANgEgIAEtACEgASgCOE0NACABKAJERQ0NIAEgASgCREF/ajYCRCABIAEoAkwiAEEBajYCTCABIAEoAjwgAC0AACABKAI4dGo2AjwgASABKAI4QQhqNgI4DAELCwJAIAEtACBFDQAgAS0AIEHwAXENACABIAEoASA2ARgDQAJAIAEgASgCUCgCUCABLwEaIAEoAjxBASABLQAZIAEtABhqdEEBa3EgAS0AGXZqQQJ0aigBADYBICABLQAZIAEtACFqIAEoAjhNDQAgASgCREUNDiABIAEoAkRBf2o2AkQgASABKAJMIgBBAWo2AkwgASABKAI8IAAtAAAgASgCOHRqNgI8IAEgASgCOEEIajYCOAwBCwsgASABKAI8IAEtABl2NgI8IAEgASgCOCABLQAZazYCOCABKAJQIgAgAS0AGSAAKALIN2o2Asg3CyABIAEoAjwgAS0AIXY2AjwgASABKAI4IAEtACFrNgI4IAEoAlAiACABLQAhIAAoAsg3ajYCyDcgASgCUCABLwEiNgJEIAEtACBFBEAgASgCUEHN/gA2AgQMDQsgAS0AIEEgcQRAIAEoAlBBfzYCyDcgASgCUEG//gA2AgQMDQsgAS0AIEHAAHEEQCABKAJYQYfxADYCGCABKAJQQdH+ADYCBAwNCyABKAJQIAEtACBBD3E2AkwgASgCUEHJ/gA2AgQLIAEoAlAoAkwEQANAIAEoAjggASgCUCgCTEkEQCABKAJERQ0NIAEgASgCREF/ajYCRCABIAEoAkwiAEEBajYCTCABIAEoAjwgAC0AACABKAI4dGo2AjwgASABKAI4QQhqNgI4DAELCyABKAJQIgAgACgCRCABKAI8QQEgASgCUCgCTHRBAWtxajYCRCABIAEoAjwgASgCUCgCTHY2AjwgASABKAI4IAEoAlAoAkxrNgI4IAEoAlAiACAB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KAIMSQRAIAIgAigCUCIAQQFqNgJQIAIgAigCLCAALQAAIAIoAih0ajYCLCACIAIoAihBCGo2AiggAigCKCACKAIMSQRAIAIgAigCUCIAQQFqNgJQIAIgAigCLCAALQAAIAIoAih0ajYCLCACIAIoAihBCGo2AigLCyACIAIoAgQgAigCLEEBIAIoAgx0QQFrcWo2AgQgAiACKAIsIAIoAgx2NgIsIAIgAigCKCACKAIMazYCKCACIAIoAkggAigCRGs2AgwCQCACKAIEIAIoAgxLBEAgAiACKAIEIAIoAgxrNgIMIAIoAgwgAigCOEsEQCACKAJUKALENwRAIAIoAlxBsO0ANgIYIAIoAlRB0f4ANgIEDAoLCyACIAIoAjA2AgACQCACKAI0RQRAIAIgAigCACACKAI8IAIoAgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsMAQsCQCACKAI0IAIoAgxJBEAgAiACKAIAIAIoAjwgAigCNGogAigCDGtqNgIAIAIgAigCDCACKAI0azYCDCACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCMDYCACACKAI0IAIoAghJBEAgAiACKAI0NgIMIAIgAigCCCACKAIMazYCCANAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIMQX9qIgA2AgwgAA0ACyACIAIoAkggAigCBGs2AgALCwwBCyACIAIoAgAgAigCNCACKAIMa2o2AgAgAigCDCACKAIISQRAIAIgAigCCCACKAIMazYCCANAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIMQX9qIgA2AgwgAA0ACyACIAIoAkggAigCBGs2AgALCwsDQCACKAIIQQJNRQRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCCEEDazYCCAwBCwsMAQsgAiACKAJIIAIoAgRrNgIAA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIIAIoAghBAksNAAsLIAIoAggEQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIoAghBAUsEQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAACwsMAgsgAigCDEHAAHFFBEAgAkEQaiACKAIgIAIvARIgAigCLEEBIAIoAgx0QQFrcWpBAnRqKAEANgEADAELCyACKAJcQc7tADYCGCACKAJUQdH+ADYCBAwECwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiQgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAgxBIHEEQCACKAJUQb/+ADYCBAwCCyACKAJcQeTtADYCGCACKAJUQdH+ADYCBAwBC0EAIQAgAigCUCACKAJMSQR/IAIoAkggAigCQEkFQQALQQFxDQELCyACIAIoAihBA3Y2AgggAiACKAJQIAIoAghrNgJQIAIgAigCKCACKAIIQQN0azYCKCACIAIoAixBASACKAIodEEBa3E2AiwgAigCXCACKAJQNgIAIAIoAlwgAigCSDYCDCACKAJcAn8gAigCUCACKAJMSQRAIAIoAkwgAigCUGtBBWoMAQtBBSACKAJQIAIoAkxraws2AgQgAigCXAJ/IAIoAkggAigCQEkEQCACKAJAIAIoAkhrQYECagwBC0GBAiACKAJIIAIoAkBraws2AhAgAigCVCACKAIsNgI8IAIoAlQgAigCKDYCQAvBEAECfyMAQSBrIgIk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LSAAKAKgLUEBdGogAi8BEDsBACACLQATIQEgAigCKCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BEEF/ajsBECACKAIoIAItABNBgNkAai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIoQYgTagJ/IAIvARBBgAJIBEAgAi8BEC0AgFUMAQsgAi8BEEEHdUGAAmotAIBVC0ECdGoiACAALwEAQQFqOwEAIAIgAigCKCgCoC0gAigCKCgCnC1BAWtGNgIgIAIoAigiACAAKAJ0IAIoAigoAmBrNgJ0IAIoAigiACACKAIoKAJgIAAoAmxqNgJsIAIoAihBADYCYAwBCyACIAIoAigiACgCOCAAKAJsai0AADoADyACKAIoIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAA8hASACKAIoIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCKCACLQAPQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAigoAqAtIAIoAigoApwtQQFrRjYCICACKAIoIgAgACgCdEF/ajYCdCACKAIoIgAgACgCbEEBajYCbAsgAigCIARAIAIoAigCfyACKAIoKAJcQQBOBEAgAigCKCgCOCACKAIoKAJcagwBC0EACyACKAIoKAJsIAIoAigoAlxrQQAQKSACKAIoIAIoAigoAmw2AlwgAigCKCgCABAdIAIoAigoAgAoAhBFBEAgAkEANgIsDAQLCwwBCwsgAigCKEEANgK0LSACKAIkQQRGBEAgAigCKAJ/IAIoAigoAlxBAE4EQCACKAIoKAI4IAIoAigoAlxqDAELQQALIAIoAigoAmwgAigCKCgCXGtBARApIAIoAiggAigCKCgCbDYCXCACKAIoKAIAEB0gAigCKCgCACgCEEUEQCACQQI2AiwMAgsgAkEDNgIsDAELIAIoAigoAqAtBEAgAigCKAJ/IAIoAigoAlxBAE4EQCACKAIoKAI4IAIoAigoAlxqDAELQQALIAIoAigoAmwgAigCKCgCXGtBABApIAIoAiggAigCKCgCbDYCXCACKAIoKAIAEB0gAigCKCgCACgCEEUEQCACQQA2AiwMAgsLIAJBATYCLAsgAigCLCEAIAJBMGokACAAC8AFAQJ/IwBBIGsiAiQA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AgQgAkEANgIQA0AgAigCEEEPSkUEQCACKAI8QbwWaiACKAIQQQF0akEAOwEAIAIgAigCEEEBajYCEAwBCwsgAigCNCACKAI8QdwWaiACKAI8KALUKEECdGooAgBBAnRqQQA7AQIgAiACKAI8KALUKEEBajYCHANAIAIoAhxBvQRIBEAgAiACKAI8QdwWaiACKAIcQQJ0aigCADYCGCACIAIoAjQgAigCNCACKAIYQQJ0ai8BAkECdGovAQJBAWo2AhAgAigCECACKAIgSgRAIAIgAigCIDYCECACIAIoAgRBAWo2AgQLIAIoAjQgAigCGEECdGogAigCEDsBAiACKAIYIAIoAjBMBEAgAigCPCACKAIQQQF0akG8FmoiACAALwEAQQFqOwEAIAJBADYCDCACKAIYIAIoAiROBEAgAiACKAIoIAIoAhggAigCJGtBAnRqKAIANgIMCyACIAIoAjQgAigCGEECdGovAQA7AQogAigCPCIAIAAoAqgtIAIvAQogAigCECACKAIMamxqNgKoLSACKAIsBEAgAigCPCIAIAAoAqwtIAIvAQogAigCLCACKAIYQQJ0ai8BAiACKAIMamxqNgKsLQsLIAIgAigCHEEBajYCHAwBCwsCQCACKAIERQ0AA0AgAiACKAIgQQFrNgIQA0AgAigCPEG8FmogAigCEEEBdGovAQBFBEAgAiACKAIQQX9qNgIQDAELCyACKAI8IAIoAhBBAXRqQbwWaiIAIAAvAQBBf2o7AQAgAigCPCACKAIQQQF0akG+FmoiACAALwEAQQJqOwEAIAIoAjwgAigCIEEBdGpBvBZqIgAgAC8BAEF/ajsBACACIAIoAgRBAms2AgQgAigCBEEASg0ACyACIAIoAiA2AhADQCACKAIQRQ0BIAIgAigCPEG8FmogAigCEEEBdGovAQA2AhgDQCACKAIYBEAgAigCPEHcFmohACACIAIoAhxBf2oiATYCHCACIAFBAnQgAGooAgA2AhQgAigCFCACKAIwSg0BIAIoAjQgAigCFEECdGovAQIgAigCEEcEQCACKAI8IgAgACgCqC0gAigCNCACKAIUQQJ0ai8BACACKAIQIAIoAjQgAigCFEECdGovAQJrbGo2AqgtIAIoAjQgAigCFEECdGogAigCEDsBAgsgAiACKAIYQX9qNgIYDAELCyACIAIo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KAIMIAEoAgxB/BRqNgKwFiABKAIMQajbADYCuBYgASgCDEEAOwG4LSABKAIMQQA2ArwtIAEoAgwQuQEgAUEQaiQAC9cNAQF/IwBBIGsiAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYQRB2NgIMIAMgAygCGEH//wNxNgIYAkAgAygCEEEBRgRAIAMgAygCFC0AACADKAIYajYCGCADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIYIAMoAgxqNgIMIAMoAgxB8f8DTwRAIAMgAygCDEHx/wNrNgIMCyADIAMoAhggAygCDEEQdHI2AhwMAQsgAygCFEUEQCADQQE2AhwMAQsgAygCEEEQSQRAA0AgAyADKAIQIgBBf2o2AhAgAARAIAMgAygCFCIAQQFqNgIUIAMgAC0AACADKAIYajYCGCADIAMoAhggAygCDGo2AgwMAQsLIAMoAhhB8f8DTwRAIAMgAygCGEHx/wNrNgIYCyADIAMoAgxB8f8DcDYCDCADIAMoAhggAygCDEEQdHI2AhwMAQsDQCADKAIQQbArSUUEQCADIAMoAhBBsCtrNgIQIANB2wI2AggDQCADIAMoAhQtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AASADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQACIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAMgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAFIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAYgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AByADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAIIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAkgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQALIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAwgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAOIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA8gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFEEQajYCFCADIAMoAghBf2oiADYCCCAADQALIAMgAygCGEHx/wNwNgIYIAMgAygCDEHx/wNwNgIMDAELCyADKAIQBEADQCADKAIQQRBJRQRAIAMgAygCEEEQazYCECADIAMoAhQtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AASADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQACIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAMgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAFIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAYgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AByADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAIIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAkgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQALIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAwgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAOIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA8gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFEEQajYCFAwBCwsDQCADIAMoAhAiAEF/ajYCECAABEAgAyADKAIUIgBBAWo2AhQgAyAALQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDAwBCwsgAyADKAIYQfH/A3A2AhggAyADKAIMQfH/A3A2AgwLIAMgAygC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KAIEDAELIAMoAgwoAgALQYAEEF4iADYCECAAQQBIBEAgA0J/NwO4AQwDCyADKAIQBEAgA0EBOgAXCyADIAMpAxhCAXw3AxgMAQsLIAMgAygCtAEoAgAQNSICNwMgIAJCAFMEQCADKAK0AUEIaiADKAK0ASgCABAYIANCfzcDuAEMAQsgAyADKQMgIAMpA6ABfTcDmAECQCADKQOgAUL/////D1gEQCADKQOoAUL//wNYDQELIANBAToAFwsgAyADQTBqQuIAECoiADYCLCAARQRAIAMoArQBQQhqQQ5BABAVIANCfzcDuAEMAQsgAy0AF0EBcQRAIAMoAixBttMAQQQQQCADKAIsQiwQLiADKAIsQS0QICADKAIsQS0QICADKAIsQQAQISADKAIsQQAQISADKAIsIAMpA6gBEC4gAygCLCADKQOoARAuIAMoAiwgAykDmAEQLiADKAIsIAMpA6ABEC4gAygCLEG70wBBBBBAIAMoAixBABAhIAMoAiwgAykDoAEgAykDmAF8EC4gAygCLEEBECELIAMoAixBwNMAQQQQQCADKAIsQQAQISADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ+Qv//AyADKQOoAUL//wNaDQAaIAMpA6gBC6dB//8DcRAgIAMoAiwCf0F/IAMpA5gBQv////8PWg0AGiADKQOYAacLECEgAygCLAJ/QX8gAykDoAFC/////w9aDQAaIAMpA6ABpwsQISADAn8gAygCtAEtAChBAXEEQCADKAK0ASgCJAwBCyADKAK0ASgCIAs2ApQBIAMoAiwCfyADKAKUAQRAIAMoApQBLwEEDAELQQALQf//A3EQIAJ/IwBBEGsiACADKAIsNgIMIAAoAgwtAABBAXFFCwRAIAMoArQBQQhqQRRBABAVIAMoAiwQFyADQn83A7gBDAELIAMoArQBAn8jAEEQayIAIAMoAiw2AgwgACgCDCgCBAsCfiMAQRBrIgAgAygCLDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCLBAXIANCfzcDuAEMAQsgAygCLBAXIAMoApQBBEAgAygCtAEgAygClAEoAgAgAygClAEvAQStEDZBAEgEQCADQn83A7gBDAILCyADIAMpA5gBNwO4AQsgAykDuAEhAiADQcABaiQAIAILBwAgACgCIAsIAEEBQTgQewsDAAELC/KNAScAQYAIC5QFTm8gZXJyb3IATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQAQ2xvc2luZyB6aXAgYXJjaGl2ZSBmYWlsZWQAU2VlayBlcnJvcgBSZWFkIGVycm9yAFdyaXRlIGVycm9yAENSQyBlcnJvcgBDb250YWluaW5nIHppcCBhcmNoaXZlIHdhcyBjbG9zZWQATm8gc3VjaCBmaWxlAEZpbGUgYWxyZWFkeSBleGlzdHMAQ2FuJ3Qgb3BlbiBmaWxlAEZhaWx1cmUgdG8gY3JlYXRlIHRlbXBvcmFyeSBmaWxlAFpsaWIgZXJyb3IATWFsbG9jIGZhaWx1cmUARW50cnkgaGFzIGJlZW4gY2hhbmdlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABQcmVtYXR1cmUgZW5kIG9mIGZpbGUASW52YWxpZCBhcmd1bWVudABOb3QgYSB6aXAgYXJjaGl2ZQBJbnRlcm5hbCBlcnJvcgBaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQAQ2FuJ3QgcmVtb3ZlIGZpbGUARW50cnkgaGFzIGJlZW4gZGVsZXRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFJlYWQtb25seSBhcmNoaXZlAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAFJlc291cmNlIHN0aWxsIGluIHVzZQBUZWxsIGVycm9yAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAEGhDQuAAQQAAAkEAAAvBAAATgQAAGkEAAB0BAAAfwQAAIsEAACVBAAAtwQAAMQEAADYBAAA6AQAAAkFAAAUBQAAIwUAADoFAABbBQAAcQUAAIIFAACUBQAAowUAALwFAADOBQAA5QUAAAUGAAAXBgAALAYAAEQGAABcBgAAcgYAAH0GAAAgAEG4DgsRAQAAAAEAAAABAAAAAQAAAAEAQdwOCwkBAAAAAQAAAAIAQYgPCwEBAEGoDwsB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CAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkAvwEJAH8ACQB/AQkA/wAJAP8BCQAAAAcAQAAHACAABwBgAAcAEAAHAFAABwAwAAcAcAAHAAgA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cnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAFVua25vd24gZXJyb3IgJWQAJXMlcyVzAAA6IAAvcHJvYy9zZWxmL2ZkLwAvZGV2L3VyYW5kb20AcndhACVzLlhYWFhYWAByK2IAcmIAUEsFBgBBkJgBC04KAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAAQAAAAgAAAAQTAAAMEwAQZCaAQsCgFAAQciaAQsJHwAAAGRNAAADAEHkmgELjAEt9FFYz4yxwEb2tcspMQPHBFtwMLRd/SB4f4ua2FkpUGhIiaunVgNs/7fNiD/Ud7QrpaNw8brkqPxBg/3Zb+GKei8tdJYHHw0JXgN2LHD3QKUsp29XQaiqdN+gWGQDSsfEPFOur18YBBWx420ohqsMpL9D8OlQgTlXFlI3/////////////////////w==";function re(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?C.get(r)():C.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(A)}}function ne(){var e=function(){var e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}();return A.extraStackTrace&&(e+="\n"+A.extraStackTrace()),e.replace(/\b_Z[\w\d_]+/g,(function(e){return e==e?e:e+" ["+e+"]"}))}function ie(e,t){var r=new Date(1e3*R[e>>2]);R[t>>2]=r.getUTCSeconds(),R[t+4>>2]=r.getUTCMinutes(),R[t+8>>2]=r.getUTCHours(),R[t+12>>2]=r.getUTCDate(),R[t+16>>2]=r.getUTCMonth(),R[t+20>>2]=r.getUTCFullYear()-1900,R[t+24>>2]=r.getUTCDay(),R[t+36>>2]=0,R[t+32>>2]=0;var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return R[t+28>>2]=i,ie.GMTString||(ie.GMTString=S("GMT")),R[t+40>>2]=ie.GMTString,t}Z(te)||(te=function(e){return A.locateFile?A.locateFile(e,u):u+e}(te)),T.push({func:function(){De()}});var Ae={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=Ae.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=Ae.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=Ae.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return Ae.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return Ae.normalize(e.join("/"))},join2:function(e,t){return Ae.normalize(e+"/"+t)}};function oe(e){return R[Se()>>2]=e,e}var se={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:he.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t="/"===n.charAt(0)}return(t?"/":"")+(e=Ae.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=se.resolve(e).substr(1),t=se.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),A=Math.min(n.length,i.length),o=A,s=0;s0?r.slice(0,n).toString("utf-8"):null))return null;e.input=ye(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(h(w(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(h(w(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(p(w(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(p(w(e.output,0)),e.output=[])}}},ce={ops_table:null,mount:function(e){return ce.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(he.isBlkdev(r)||he.isFIFO(r))throw new he.ErrnoError(63);ce.ops_table||(ce.ops_table={dir:{node:{getattr:ce.node_ops.getattr,setattr:ce.node_ops.setattr,lookup:ce.node_ops.lookup,mknod:ce.node_ops.mknod,rename:ce.node_ops.rename,unlink:ce.node_ops.unlink,rmdir:ce.node_ops.rmdir,readdir:ce.node_ops.readdir,symlink:ce.node_ops.symlink},stream:{llseek:ce.stream_ops.llseek}},file:{node:{getattr:ce.node_ops.getattr,setattr:ce.node_ops.setattr},stream:{llseek:ce.stream_ops.llseek,read:ce.stream_ops.read,write:ce.stream_ops.write,allocate:ce.stream_ops.allocate,mmap:ce.stream_ops.mmap,msync:ce.stream_ops.msync}},link:{node:{getattr:ce.node_ops.getattr,setattr:ce.node_ops.setattr,readlink:ce.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ce.node_ops.getattr,setattr:ce.node_ops.setattr},stream:he.chrdev_stream_ops}});var i=he.createNode(e,t,r,n);return he.isDir(i.mode)?(i.node_ops=ce.ops_table.dir.node,i.stream_ops=ce.ops_table.dir.stream,i.contents={}):he.isFile(i.mode)?(i.node_ops=ce.ops_table.file.node,i.stream_ops=ce.ops_table.file.stream,i.usedBytes=0,i.contents=null):he.isLink(i.mode)?(i.node_ops=ce.ops_table.link.node,i.stream_ops=ce.ops_table.link.stream):he.isChrdev(i.mode)&&(i.node_ops=ce.ops_table.chrdev.node,i.stream_ops=ce.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i),i},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-i,n);if(o>8&&A.subarray)t.set(A.subarray(i,i+o),r);else for(var s=0;s0||n+r>2)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}return t.mode},realPath:function(e){for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),Ae.join.apply(null,t)},flagsForNode:function(e){e&=-2097153,e&=-2049,e&=-32769,e&=-524289;var t=0;for(var r in le.flagsForNodeMap)e&r&&(t|=le.flagsForNodeMap[r],e^=r);if(e)throw new he.ErrnoError(28);return t},node_ops:{getattr:function(e){var t,r=le.realPath(e);try{t=Ce.lstatSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}return le.isWindows&&!t.blksize&&(t.blksize=4096),le.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:function(e,t){var r=le.realPath(e);try{if(void 0!==t.mode&&(Ce.chmodSync(r,t.mode),e.mode=t.mode),void 0!==t.timestamp){var n=new Date(t.timestamp);Ce.utimesSync(r,n,n)}void 0!==t.size&&Ce.truncateSync(r,t.size)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}},lookup:function(e,t){var r=Ae.join2(le.realPath(e),t),n=le.getMode(r);return le.createNode(e,t,n)},mknod:function(e,t,r,n){var i=le.createNode(e,t,r,n),A=le.realPath(i);try{he.isDir(i.mode)?Ce.mkdirSync(A,i.mode):Ce.writeFileSync(A,"",{mode:i.mode})}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}return i},rename:function(e,t,r){var n=le.realPath(e),i=Ae.join2(le.realPath(t),r);try{Ce.renameSync(n,i)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}e.name=r},unlink:function(e,t){var r=Ae.join2(le.realPath(e),t);try{Ce.unlinkSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}},rmdir:function(e,t){var r=Ae.join2(le.realPath(e),t);try{Ce.rmdirSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}},readdir:function(e){var t=le.realPath(e);try{return Ce.readdirSync(t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}},symlink:function(e,t,r){var n=Ae.join2(le.realPath(e),t);try{Ce.symlinkSync(r,n)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}},readlink:function(e){var t=le.realPath(e);try{return t=Ce.readlinkSync(t),t=Ie.relative(Ie.resolve(e.mount.opts.root),t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}}},stream_ops:{open:function(e){var t=le.realPath(e.node);try{he.isFile(e.node.mode)&&(e.nfd=Ce.openSync(t,le.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}},close:function(e){try{he.isFile(e.node.mode)&&e.nfd&&Ce.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(le.convertNodeCode(e))}},read:function(e,t,r,n,i){if(0===n)return 0;try{return Ce.readSync(e.nfd,le.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(le.convertNodeCode(e))}},write:function(e,t,r,n,i){try{return Ce.writeSync(e.nfd,le.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(le.convertNodeCode(e))}},llseek:function(e,t,r){var n=t;if(1===r)n+=e.position;else if(2===r&&he.isFile(e.node.mode))try{n+=Ce.fstatSync(e.nfd).size}catch(e){throw new he.ErrnoError(le.convertNodeCode(e))}if(n<0)throw new he.ErrnoError(28);return n},mmap:function(e,t,r,n,i,A){if(E(0===t),!he.isFile(e.node.mode))throw new he.ErrnoError(43);var o=he.mmapAlloc(r);return le.stream_ops.read(e,M,o,r,n),{ptr:o,allocated:!0}},msync:function(e,t,r,n,i){if(!he.isFile(e.node.mode))throw new he.ErrnoError(43);if(2&i)return 0;le.stream_ops.write(e,t,0,n,r,!1);return 0}}},ue={lookupPath:function(e){return{path:e,node:{mode:le.getMode(e)}}},createStandardStreams:function(){he.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var e=1;e<3;e++)he.streams[e]={fd:e,nfd:e,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(e,t){he.isDir(e)?Ce.mkdirSync(e,t):Ce.writeFileSync(e,"",{mode:t})},mkdir:function(){Ce.mkdirSync.apply(void 0,arguments)},symlink:function(){Ce.symlinkSync.apply(void 0,arguments)},rename:function(){Ce.renameSync.apply(void 0,arguments)},rmdir:function(){Ce.rmdirSync.apply(void 0,arguments)},readdir:function(){Ce.readdirSync.apply(void 0,arguments)},unlink:function(){Ce.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ce.readlinkSync.apply(void 0,arguments)},stat:function(){return Ce.statSync.apply(void 0,arguments)},lstat:function(){return Ce.lstatSync.apply(void 0,arguments)},chmod:function(){Ce.chmodSync.apply(void 0,arguments)},fchmod:function(){Ce.fchmodSync.apply(void 0,arguments)},chown:function(){Ce.chownSync.apply(void 0,arguments)},fchown:function(){Ce.fchownSync.apply(void 0,arguments)},truncate:function(){Ce.truncateSync.apply(void 0,arguments)},ftruncate:function(){Ce.ftruncateSync.apply(void 0,arguments)},utime:function(){Ce.utimesSync.apply(void 0,arguments)},open:function(e,t,r,n){"string"==typeof t&&(t=me.modeStringToFlags(t));var i=Ce.openSync(e,le.flagsForNode(t),r),A=null!=n?n:he.nextfd(i),o={fd:A,nfd:i,position:0,path:e,flags:t,seekable:!0};return he.streams[A]=o,o},close:function(e){e.stream_ops||Ce.closeSync(e.nfd),he.closeStream(e.fd)},llseek:function(e,t,r){if(e.stream_ops)return me.llseek(e,t,r);var n=t;if(1===r)n+=e.position;else if(2===r)n+=Ce.fstatSync(e.nfd).size;else if(0!==r)throw new he.ErrnoError(ge.EINVAL);if(n<0)throw new he.ErrnoError(ge.EINVAL);return e.position=n,n},read:function(e,t,r,n,i){if(e.stream_ops)return me.read(e,t,r,n,i);var A=void 0!==i;!A&&e.seekable&&(i=e.position);var o=Ce.readSync(e.nfd,le.bufferFrom(t.buffer),r,n,i);return A||(e.position+=o),o},write:function(e,t,r,n,i){if(e.stream_ops)return me.write(e,t,r,n,i);1024&e.flags&&he.llseek(e,0,2);var A=void 0!==i;!A&&e.seekable&&(i=e.position);var o=Ce.writeSync(e.nfd,le.bufferFrom(t.buffer),r,n,i);return A||(e.position+=o),o},allocate:function(){throw new he.ErrnoError(ge.EOPNOTSUPP)},mmap:function(){throw new he.ErrnoError(ge.ENODEV)},msync:function(){return 0},munmap:function(){return 0},ioctl:function(){throw new he.ErrnoError(ge.ENOTTY)}},he={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof he.ErrnoError))throw e+" : "+ne();return oe(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=se.resolve(he.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===t[n]&&(t[n]=r[n]);if(t.recurse_count>8)throw new he.ErrnoError(32);for(var i=Ae.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),A=he.root,o="/",s=0;s40)throw new he.ErrnoError(32)}}return{path:o,node:A}},getPath:function(e){for(var t;;){if(he.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,n=0;n>>0)%he.nameTable.length},hashAddNode:function(e){var t=he.hashName(e.parent.id,e.name);e.name_next=he.nameTable[t],he.nameTable[t]=e},hashRemoveNode:function(e){var t=he.hashName(e.parent.id,e.name);if(he.nameTable[t]===e)he.nameTable[t]=e.name_next;else for(var r=he.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=he.mayLookup(e);if(r)throw new he.ErrnoError(r,e);for(var n=he.hashName(e.id,t),i=he.nameTable[n];i;i=i.name_next){var A=i.name;if(i.parent.id===e.id&&A===t)return i}return he.lookup(e,t)},createNode:function(e,t,r,n){var i=new he.FSNode(e,t,r,n);return he.hashAddNode(i),i},destroyNode:function(e){he.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=he.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return he.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=he.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{he.lookupNode(e,t);return 20}catch(e){}return he.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=he.lookupNode(e,t)}catch(e){return e.errno}var i=he.nodePermissions(e,"wx");if(i)return i;if(r){if(!he.isDir(n.mode))return 54;if(he.isRoot(n)||he.getPath(n)===he.cwd())return 10}else if(he.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?he.isLink(e.mode)?32:he.isDir(e.mode)&&("r"!==he.flagsToPermissionString(t)||512&t)?31:he.nodePermissions(e,he.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||he.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!he.streams[r])return r;throw new he.ErrnoError(33)},getStream:function(e){return he.streams[e]},createStream:function(e,t,r){he.FSStream||(he.FSStream=function(){},he.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new he.FSStream;for(var i in e)n[i]=e[i];e=n;var A=he.nextfd(t,r);return e.fd=A,he.streams[A]=e,e},closeStream:function(e){he.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=he.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new he.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){he.devices[e]={stream_ops:t}},getDevice:function(e){return he.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),he.syncFSRequests++,he.syncFSRequests>1&&p("warning: "+he.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=he.getMounts(he.root.mount),n=0;function i(e){return he.syncFSRequests--,t(e)}function A(e){if(e)return A.errored?void 0:(A.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach((function(t){if(!t.type.syncfs)return A(null);t.type.syncfs(t,e,A)}))},mount:function(e,t,r){var n,i="/"===r,A=!r;if(i&&he.root)throw new he.ErrnoError(10);if(!i&&!A){var o=he.lookupPath(r,{follow_mount:!1});if(r=o.path,n=o.node,he.isMountpoint(n))throw new he.ErrnoError(10);if(!he.isDir(n.mode))throw new he.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},a=e.mount(s);return a.mount=s,s.root=a,i?he.root=a:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),a},unmount:function(e){var t=he.lookupPath(e,{follow_mount:!1});if(!he.isMountpoint(t.node))throw new he.ErrnoError(28);var r=t.node,n=r.mounted,i=he.getMounts(n);Object.keys(he.nameTable).forEach((function(e){for(var t=he.nameTable[e];t;){var r=t.name_next;-1!==i.indexOf(t.mount)&&he.destroyNode(t),t=r}})),r.mounted=null;var A=r.mount.mounts.indexOf(n);r.mount.mounts.splice(A,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=he.lookupPath(e,{parent:!0}).node,i=Ae.basename(e);if(!i||"."===i||".."===i)throw new he.ErrnoError(28);var A=he.mayCreate(n,i);if(A)throw new he.ErrnoError(A);if(!n.node_ops.mknod)throw new he.ErrnoError(63);return n.node_ops.mknod(n,i,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,he.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,he.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",i=0;ithis.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},A.prototype.setDataGetter=function(e){this.getter=e},A.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,A=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,o=1048576;i||(o=n);var s=this;s.setDataGetter((function(e){var t=e*o,i=(e+1)*o-1;if(i=Math.min(i,n-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",r,!1),n!==o&&i.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(i.responseType="arraybuffer"),i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+r+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):ye(i.responseText||"",!0)}(t,i)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!A&&n||(o=n=1,n=this.getter(0).length,o=n,h("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o={isDevice:!1,url:r},s=he.createFile(e,t,o,n,i);o.contents?s.contents=o.contents:o.url&&(s.contents=null,s.url=o.url),Object.defineProperties(s,{usedBytes:{get:function(){return this.contents.length}}});var a={};return Object.keys(s.stream_ops).forEach((function(e){var t=s.stream_ops[e];a[e]=function(){if(!he.forceLoadFile(s))throw new he.ErrnoError(29);return t.apply(null,arguments)}})),a.read=function(e,t,r,n,i){if(!he.forceLoadFile(s))throw new he.ErrnoError(29);var A=e.node.contents;if(i>=A.length)return 0;var o=Math.min(A.length-i,n);if(A.slice)for(var a=0;a>2]=n.dev,R[r+4>>2]=0,R[r+8>>2]=n.ino,R[r+12>>2]=n.mode,R[r+16>>2]=n.nlink,R[r+20>>2]=n.uid,R[r+24>>2]=n.gid,R[r+28>>2]=n.rdev,R[r+32>>2]=0,ee=[n.size>>>0,($=n.size,+j($)>=1?$>0?(0|J(+H($/4294967296),4294967295))>>>0:~~+G(($-+(~~$>>>0))/4294967296)>>>0:0)],R[r+40>>2]=ee[0],R[r+44>>2]=ee[1],R[r+48>>2]=4096,R[r+52>>2]=n.blocks,R[r+56>>2]=n.atime.getTime()/1e3|0,R[r+60>>2]=0,R[r+64>>2]=n.mtime.getTime()/1e3|0,R[r+68>>2]=0,R[r+72>>2]=n.ctime.getTime()/1e3|0,R[r+76>>2]=0,ee=[n.ino>>>0,($=n.ino,+j($)>=1?$>0?(0|J(+H($/4294967296),4294967295))>>>0:~~+G(($-+(~~$>>>0))/4294967296)>>>0:0)],R[r+80>>2]=ee[0],R[r+84>>2]=ee[1],0},doMsync:function(e,t,r,n,i){var A=N.slice(e,e+r);he.msync(t,A,i,r,n)},doMkdir:function(e,t){return"/"===(e=Ae.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),he.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return he.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=he.readlink(e),i=Math.min(r,D(n)),A=M[t+i];return b(n,t,r+1),M[t+i]=A,i},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=he.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&he.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=he.getStream(r);return n&&he.close(n),he.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var i=0,A=0;A>2],s=R[t+(8*A+4)>>2],a=he.read(e,M,o,s,n);if(a<0)return-1;if(i+=a,a>2],s=R[t+(8*A+4)>>2],a=he.write(e,M,o,s,n);if(a<0)return-1;i+=a}return i},varargs:void 0,get:function(){return pe.varargs+=4,R[pe.varargs-4>>2]},getStr:function(e){return Q(e)},getStreamFromFD:function(e){var t=he.getStream(e);if(!t)throw new he.ErrnoError(8);return t},get64:function(e,t){return e}};function fe(e){try{return d.grow(e-k.byteLength+65535>>>16),x(d.buffer),1}catch(e){}}var de=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=he.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(de.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return he.isDir(this.mode)}},isDevice:{get:function(){return he.isChrdev(this.mode)}}}),he.FSNode=de,he.staticInit();var Ce=i,Ie=r(85622);le.staticInit();var Ee=function(e){return function(){try{return e.apply(this,arguments)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ge[e.code])}}},me=Object.assign({},he);for(var Be in ue)he[Be]=Ee(ue[Be]);function ye(e,t,r){var n=r>0?r:D(e)+1,i=new Array(n),A=v(e,i,0,i.length);return t&&(i.length=A),i}"function"==typeof atob&&atob;function we(e){if(Z(e))return function(e){var t;try{t=Buffer.from(e,"base64")}catch(r){t=new Buffer(e,"base64")}return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}(e.slice("data:application/octet-stream;base64,".length))}var Qe,ve={m:function(e,t){return ie(e,t)},b:C,r:function(e,t){try{return e=pe.getStr(e),he.chmod(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},g:function(e,t,r){pe.varargs=r;try{var n=pe.getStreamFromFD(e);switch(t){case 0:return(i=pe.get())<0?-28:he.open(n.path,n.flags,0,i).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var i=pe.get();return n.flags|=i,0;case 12:i=pe.get();return F[i+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return oe(28),-1;default:return-28}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},l:function(e,t){try{var r=pe.getStreamFromFD(e);return pe.doStat(he.stat,r.path,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},q:function(e,t,r){pe.varargs=r;try{var n=pe.getStreamFromFD(e);switch(t){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var i=pe.get();return R[i>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:i=pe.get();return he.ioctl(n,t,i);case 21523:case 21524:return n.tty?0:-59;default:X("bad ioctl syscall "+t)}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},t:function(e,t,r){pe.varargs=r;try{var n=pe.getStr(e),i=pe.get();return he.open(n,t,i).fd}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},s:function(e,t,r){try{var n=pe.getStreamFromFD(e);return he.read(n,M,t,r)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},j:function(e,t){try{return e=pe.getStr(e),t=pe.getStr(t),he.rename(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},u:function(e){try{return e=pe.getStr(e),he.rmdir(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},e:function(e,t){try{return e=pe.getStr(e),pe.doStat(he.stat,e,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},i:function(e){try{return e=pe.getStr(e),he.unlink(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),-e.errno}},v:function(e,t,r){N.copyWithin(e,t,t+r)},w:function(e){e>>>=0;var t=N.length;if(e>2147483648)return!1;for(var r,n,i=1;i<=4;i*=2){var A=t*(1+.2/i);if(A=Math.min(A,e+100663296),fe(Math.min(2147483648,((r=Math.max(16777216,e,A))%(n=65536)>0&&(r+=n-r%n),r))))return!0}return!1},h:function(e){try{var t=pe.getStreamFromFD(e);return he.close(t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),e.errno}},k:function(e,t){try{var r=pe.getStreamFromFD(e),n=r.tty?2:he.isDir(r.mode)?3:he.isLink(r.mode)?7:4;return M[t>>0]=n,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),e.errno}},p:function(e,t,r,n){try{var i=pe.getStreamFromFD(e),A=pe.doReadv(i,t,r);return R[n>>2]=A,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),e.errno}},n:function(e,t,r,n,i){try{var A=pe.getStreamFromFD(e),o=4294967296*r+(t>>>0);return o<=-9007199254740992||o>=9007199254740992?-61:(he.llseek(A,o,n),ee=[A.position>>>0,($=A.position,+j($)>=1?$>0?(0|J(+H($/4294967296),4294967295))>>>0:~~+G(($-+(~~$>>>0))/4294967296)>>>0:0)],R[i>>2]=ee[0],R[i+4>>2]=ee[1],A.getdents&&0===o&&0===n&&(A.getdents=null),0)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),e.errno}},f:function(e,t,r,n){try{var i=pe.getStreamFromFD(e),A=pe.doWritev(i,t,r);return R[n>>2]=A,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||X(e),e.errno}},a:d,c:function(e){0|e},d:function(e){var t=Date.now()/1e3|0;return e&&(R[e>>2]=t),t},o:function(e){!function e(){if(!e.called){e.called=!0,R[Ne()>>2]=60*(new Date).getTimezoneOffset();var t=(new Date).getFullYear(),r=new Date(t,0,1),n=new Date(t,6,1);R[Me()>>2]=Number(r.getTimezoneOffset()!=n.getTimezoneOffset());var i=a(r),A=a(n),o=S(i),s=S(A);n.getTimezoneOffset()>2]=o,R[ke()+4>>2]=s):(R[ke()>>2]=s,R[ke()+4>>2]=o)}function a(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}();var t=Date.UTC(R[e+20>>2]+1900,R[e+16>>2],R[e+12>>2],R[e+8>>2],R[e+4>>2],R[e>>2],0),r=new Date(t);R[e+24>>2]=r.getUTCDay();var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return R[e+28>>2]=i,r.getTime()/1e3|0}},be=function(){var e={a:ve};function t(e,t){var r=e.exports;A.asm=r,V()}if(W(),A.instantiateWasm)try{return A.instantiateWasm(e,t)}catch(e){return p("Module.instantiateWasm callback failed with error: "+e),!1}return function(){var r,n,i;try{i=function(){try{if(f)return new Uint8Array(f);var e=we(te);if(e)return e;if(a)return a(te);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(e){X(e)}}(),n=new WebAssembly.Module(i),r=new WebAssembly.Instance(n,e)}catch(e){var A=e.toString();throw p("failed to compile wasm module: "+A),(A.indexOf("imported Memory")>=0||A.indexOf("memory import")>=0)&&p("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),e}t(r)}(),A.asm}(),De=A.___wasm_call_ctors=be.x,Se=(A._zipstruct_stat=be.y,A._zipstruct_statS=be.z,A._zipstruct_stat_name=be.A,A._zipstruct_stat_index=be.B,A._zipstruct_stat_size=be.C,A._zipstruct_stat_mtime=be.D,A._zipstruct_error=be.E,A._zipstruct_errorS=be.F,A._zipstruct_error_code_zip=be.G,A._zipstruct_stat_comp_size=be.H,A._zipstruct_stat_comp_method=be.I,A._zip_close=be.J,A._zip_delete=be.K,A._zip_dir_add=be.L,A._zip_discard=be.M,A._zip_error_init_with_code=be.N,A._zip_get_error=be.O,A._zip_file_get_error=be.P,A._zip_error_strerror=be.Q,A._zip_fclose=be.R,A._zip_file_add=be.S,A._zip_file_get_external_attributes=be.T,A._zip_file_set_external_attributes=be.U,A._zip_file_set_mtime=be.V,A._zip_fopen=be.W,A._zip_fopen_index=be.X,A._zip_fread=be.Y,A._zip_get_name=be.Z,A._zip_get_num_entries=be._,A._zip_name_locate=be.$,A._zip_open=be.aa,A._zip_open_from_source=be.ba,A._zip_set_file_compression=be.ca,A._zip_source_buffer=be.da,A._zip_source_buffer_create=be.ea,A._zip_source_close=be.fa,A._zip_source_error=be.ga,A._zip_source_free=be.ha,A._zip_source_keep=be.ia,A._zip_source_open=be.ja,A._zip_source_read=be.ka,A._zip_source_seek=be.la,A._zip_source_set_mtime=be.ma,A._zip_source_tell=be.na,A._zip_stat=be.oa,A._zip_stat_index=be.pa,A._zip_ext_count_symlinks=be.qa,A.___errno_location=be.ra),ke=A.__get_tzname=be.sa,Me=A.__get_daylight=be.ta,Ne=A.__get_timezone=be.ua,Fe=A.stackSave=be.va,Re=A.stackRestore=be.wa,Ke=A.stackAlloc=be.xa,Le=A._malloc=be.ya;A._free=be.za;function xe(e){function t(){Qe||(Qe=!0,A.calledRun=!0,I||(!0,A.noFSInit||he.init.initialized||he.init(),ae.init(),re(T),he.ignorePermissions=!1,re(O),A.onRuntimeInitialized&&A.onRuntimeInitialized(),function(){if(A.postRun)for("function"==typeof A.postRun&&(A.postRun=[A.postRun]);A.postRun.length;)e=A.postRun.shift(),Y.unshift(e);var e;re(Y)}()))}e=e||l,_>0||(!function(){if(A.preRun)for("function"==typeof A.preRun&&(A.preRun=[A.preRun]);A.preRun.length;)e=A.preRun.shift(),U.unshift(e);var e;re(U)}(),_>0||(A.setStatus?(A.setStatus("Running..."),setTimeout((function(){setTimeout((function(){A.setStatus("")}),1),t()}),1)):t()))}if(A.cwrap=function(e,t,r,n){var i=(r=r||[]).every((function(e){return"number"===e}));return"string"!==t&&i&&!n?m(e):function(){return B(e,t,r,arguments)}},A.getValue=function(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return M[e>>0];case"i16":return F[e>>1];case"i32":case"i64":return R[e>>2];case"float":return K[e>>2];case"double":return L[e>>3];default:X("invalid type for getValue: "+t)}return null},z=function e(){Qe||xe(),Qe||(z=e)},A.run=xe,A.preInit)for("function"==typeof A.preInit&&(A.preInit=[A.preInit]);A.preInit.length>0;)A.preInit.pop()();xe()},98261:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;tC&&(C=p,I=[]),I.push(e))}function Q(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function v(){var t,r,n,A;return t=p,(r=b())!==i?(47===e.charCodeAt(p)?(n="/",p++):(n=i,w(s)),n!==i&&(A=b())!==i?(f=t,t=r={from:r,descriptor:A}):(p=t,t=i)):(p=t,t=i),t===i&&(t=p,(r=b())!==i&&(f=t,r=function(e){return{descriptor:e}}(r)),t=r),t}function b(){var t,r,n,A;return t=p,(r=D())!==i?(64===e.charCodeAt(p)?(n="@",p++):(n=i,w(a)),n!==i&&(A=function(){var t,r,n;t=p,r=[],u.test(e.charAt(p))?(n=e.charAt(p),p++):(n=i,w(h));if(n!==i)for(;n!==i;)r.push(n),u.test(e.charAt(p))?(n=e.charAt(p),p++):(n=i,w(h));else r=i;r!==i&&(f=t,r=c());return t=r}())!==i?(f=t,t=r={fullName:r,description:A}):(p=t,t=i)):(p=t,t=i),t===i&&(t=p,(r=D())!==i&&(f=t,r=function(e){return{fullName:e}}(r)),t=r),t}function D(){var t,r,n;return t=p,64===e.charCodeAt(p)?(r="@",p++):(r=i,w(a)),r!==i&&S()!==i?(47===e.charCodeAt(p)?(n="/",p++):(n=i,w(s)),n!==i&&S()!==i?(f=t,t=r=c()):(p=t,t=i)):(p=t,t=i),t===i&&(t=p,(r=S())!==i&&(f=t,r=c()),t=r),t}function S(){var t,r,n;if(t=p,r=[],g.test(e.charAt(p))?(n=e.charAt(p),p++):(n=i,w(l)),n!==i)for(;n!==i;)r.push(n),g.test(e.charAt(p))?(n=e.charAt(p),p++):(n=i,w(l));else r=i;return r!==i&&(f=t,r=c()),t=r}if((n=o())!==i&&p===e.length)return n;throw n!==i&&p{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return'"'+i(e.text)+'"'},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;t>",!1),I=le(">&",!1),E=le(">",!1),m=le("<<<",!1),B=le("<&",!1),y=le("<",!1),w=le("'",!1),Q=le('"',!1),v=function(e){return{type:"text",text:e}},b=le("\\",!1),D={type:"any"},S=/^[^']/,k=ue(["'"],!0,!1),M=function(e){return e.join("")},N=/^[^$"]/,F=ue(["$",'"'],!0,!1),R=le("-",!1),K=le("+",!1),L=/^[0-9]/,x=ue([["0","9"]],!1,!1),P=le(".",!1),U=le("*",!1),T=le("/",!1),O=le("$((",!1),Y=le("))",!1),j=le("$(",!1),G=le("${",!1),H=le(":-",!1),J=le(":-}",!1),_=function(e){return{name:e}},q=le("$",!1),z=/^[a-zA-Z0-9_]/,W=ue([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),V=function(){return e.substring(oe,Ae)},X=/^[$@*?#a-zA-Z0-9_\-]/,Z=ue(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),$=/^[(){}<>$|&; \t"']/,ee=ue(["(",")","{","}","<",">","$","|","&",";"," ","\t",'"',"'"],!1,!1),te=/^[<>&; \t"']/,re=ue(["<",">","&",";"," ","\t",'"',"'"],!1,!1),ne=/^[ \t]/,ie=ue([" ","\t"],!1,!1),Ae=0,oe=0,se=[{line:1,column:1}],ae=0,ce=[],ge=0;if("startRule"in r){if(!(r.startRule in A))throw new Error("Can't start parsing from rule \""+r.startRule+'".');o=A[r.startRule]}function le(e,t){return{type:"literal",text:e,ignoreCase:t}}function ue(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function he(t){var r,n=se[t];if(n)return n;for(r=t-1;!se[r];)r--;for(n={line:(n=se[r]).line,column:n.column};rae&&(ae=Ae,ce=[]),ce.push(e))}function de(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function Ce(){var e,t;return e=Ae,(t=Ie())===i&&(t=null),t!==i&&(oe=e,t=t||[]),e=t}function Ie(){var e,t,r,n,A;if(e=Ae,(t=me())!==i){for(r=[],n=Oe();n!==i;)r.push(n),n=Oe();r!==i&&(n=Ee())!==i?((A=function(){var e,t,r,n,A;e=Ae,t=[],r=Oe();for(;r!==i;)t.push(r),r=Oe();if(t!==i)if((r=Ie())!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();n!==i?(oe=e,e=t=r):(Ae=e,e=i)}else Ae=e,e=i;else Ae=e,e=i;return e}())===i&&(A=null),A!==i?(oe=e,e=t=[t].concat(A||[])):(Ae=e,e=i)):(Ae=e,e=i)}else Ae=e,e=i;if(e===i)if(e=Ae,(t=me())!==i){for(r=[],n=Oe();n!==i;)r.push(n),n=Oe();r!==i?((n=Ee())===i&&(n=null),n!==i?(oe=e,e=t=function(e,t){return[e]}(t)):(Ae=e,e=i)):(Ae=e,e=i)}else Ae=e,e=i;return e}function Ee(){var t;return 59===e.charCodeAt(Ae)?(t=";",Ae++):(t=i,0===ge&&fe(s)),t}function me(){var t,r,n,A,o;return t=Ae,(r=Be())!==i?((n=function(){var t,r,n,A,o,s,g;t=Ae,r=[],n=Oe();for(;n!==i;)r.push(n),n=Oe();if(r!==i)if((n=function(){var t;"&&"===e.substr(Ae,2)?(t="&&",Ae+=2):(t=i,0===ge&&fe(a));t===i&&("||"===e.substr(Ae,2)?(t="||",Ae+=2):(t=i,0===ge&&fe(c)));return t}())!==i){for(A=[],o=Oe();o!==i;)A.push(o),o=Oe();if(A!==i)if((o=me())!==i){for(s=[],g=Oe();g!==i;)s.push(g),g=Oe();s!==i?(oe=t,t=r={type:n,line:o}):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i;return t}())===i&&(n=null),n!==i?(oe=t,A=r,t=r=(o=n)?{chain:A,then:o}:{chain:A}):(Ae=t,t=i)):(Ae=t,t=i),t}function Be(){var t,r,n,A,o;return t=Ae,(r=function(){var t,r,n,A,o,s,a,c,g,l,u;t=Ae,r=[],n=Oe();for(;n!==i;)r.push(n),n=Oe();if(r!==i)if(40===e.charCodeAt(Ae)?(n="(",Ae++):(n=i,0===ge&&fe(h)),n!==i){for(A=[],o=Oe();o!==i;)A.push(o),o=Oe();if(A!==i)if((o=Ie())!==i){for(s=[],a=Oe();a!==i;)s.push(a),a=Oe();if(s!==i)if(41===e.charCodeAt(Ae)?(a=")",Ae++):(a=i,0===ge&&fe(p)),a!==i){for(c=[],g=Oe();g!==i;)c.push(g),g=Oe();if(c!==i){for(g=[],l=Qe();l!==i;)g.push(l),l=Qe();if(g!==i){for(l=[],u=Oe();u!==i;)l.push(u),u=Oe();l!==i?(oe=t,t=r={type:"subshell",subshell:o,args:g}):(Ae=t,t=i)}else Ae=t,t=i}else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i;if(t===i){for(t=Ae,r=[],n=Oe();n!==i;)r.push(n),n=Oe();if(r!==i)if(123===e.charCodeAt(Ae)?(n="{",Ae++):(n=i,0===ge&&fe(f)),n!==i){for(A=[],o=Oe();o!==i;)A.push(o),o=Oe();if(A!==i)if((o=Ie())!==i){for(s=[],a=Oe();a!==i;)s.push(a),a=Oe();if(s!==i)if(125===e.charCodeAt(Ae)?(a="}",Ae++):(a=i,0===ge&&fe(d)),a!==i){for(c=[],g=Oe();g!==i;)c.push(g),g=Oe();if(c!==i){for(g=[],l=Qe();l!==i;)g.push(l),l=Qe();if(g!==i){for(l=[],u=Oe();u!==i;)l.push(u),u=Oe();l!==i?(oe=t,r=function(e,t){return{type:"group",group:e,args:t}}(o,g),t=r):(Ae=t,t=i)}else Ae=t,t=i}else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i;if(t===i){for(t=Ae,r=[],n=Oe();n!==i;)r.push(n),n=Oe();if(r!==i){for(n=[],A=ye();A!==i;)n.push(A),A=ye();if(n!==i){for(A=[],o=Oe();o!==i;)A.push(o),o=Oe();if(A!==i){if(o=[],(s=we())!==i)for(;s!==i;)o.push(s),s=we();else o=i;if(o!==i){for(s=[],a=Oe();a!==i;)s.push(a),a=Oe();s!==i?(oe=t,r=function(e,t){return{type:"command",args:t,envs:e}}(n,o),t=r):(Ae=t,t=i)}else Ae=t,t=i}else Ae=t,t=i}else Ae=t,t=i}else Ae=t,t=i;if(t===i){for(t=Ae,r=[],n=Oe();n!==i;)r.push(n),n=Oe();if(r!==i){if(n=[],(A=ye())!==i)for(;A!==i;)n.push(A),A=ye();else n=i;if(n!==i){for(A=[],o=Oe();o!==i;)A.push(o),o=Oe();A!==i?(oe=t,t=r={type:"envs",envs:n}):(Ae=t,t=i)}else Ae=t,t=i}else Ae=t,t=i}}}return t}())!==i?((n=function(){var t,r,n,A,o,s,a;t=Ae,r=[],n=Oe();for(;n!==i;)r.push(n),n=Oe();if(r!==i)if((n=function(){var t;"|&"===e.substr(Ae,2)?(t="|&",Ae+=2):(t=i,0===ge&&fe(g));t===i&&(124===e.charCodeAt(Ae)?(t="|",Ae++):(t=i,0===ge&&fe(l)));return t}())!==i){for(A=[],o=Oe();o!==i;)A.push(o),o=Oe();if(A!==i)if((o=Be())!==i){for(s=[],a=Oe();a!==i;)s.push(a),a=Oe();s!==i?(oe=t,t=r={type:n,chain:o}):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;else Ae=t,t=i;return t}())===i&&(n=null),n!==i?(oe=t,A=r,t=r=(o=n)?{...A,then:o}:A):(Ae=t,t=i)):(Ae=t,t=i),t}function ye(){var t,r,n,A,o,s;if(t=Ae,(r=xe())!==i)if(61===e.charCodeAt(Ae)?(n="=",Ae++):(n=i,0===ge&&fe(u)),n!==i)if((A=be())!==i){for(o=[],s=Oe();s!==i;)o.push(s),s=Oe();o!==i?(oe=t,t=r={name:r,args:[A]}):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i;else Ae=t,t=i;if(t===i)if(t=Ae,(r=xe())!==i)if(61===e.charCodeAt(Ae)?(n="=",Ae++):(n=i,0===ge&&fe(u)),n!==i){for(A=[],o=Oe();o!==i;)A.push(o),o=Oe();A!==i?(oe=t,t=r=function(e){return{name:e,args:[]}}(r)):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i;return t}function we(){var e,t,r;for(e=Ae,t=[],r=Oe();r!==i;)t.push(r),r=Oe();if(t!==i&&(r=Qe())!==i?(oe=e,e=t=r):(Ae=e,e=i),e===i){for(e=Ae,t=[],r=Oe();r!==i;)t.push(r),r=Oe();t!==i&&(r=ve())!==i?(oe=e,e=t=r):(Ae=e,e=i)}return e}function Qe(){var t,r,n,A;for(t=Ae,r=[],n=Oe();n!==i;)r.push(n),n=Oe();return r!==i&&(n=function(){var t;">>"===e.substr(Ae,2)?(t=">>",Ae+=2):(t=i,0===ge&&fe(C));t===i&&(">&"===e.substr(Ae,2)?(t=">&",Ae+=2):(t=i,0===ge&&fe(I)),t===i&&(62===e.charCodeAt(Ae)?(t=">",Ae++):(t=i,0===ge&&fe(E)),t===i&&("<<<"===e.substr(Ae,3)?(t="<<<",Ae+=3):(t=i,0===ge&&fe(m)),t===i&&("<&"===e.substr(Ae,2)?(t="<&",Ae+=2):(t=i,0===ge&&fe(B)),t===i&&(60===e.charCodeAt(Ae)?(t="<",Ae++):(t=i,0===ge&&fe(y)))))));return t}())!==i&&(A=ve())!==i?(oe=t,t=r={type:"redirection",subtype:n,args:[A]}):(Ae=t,t=i),t}function ve(){var e,t,r;for(e=Ae,t=[],r=Oe();r!==i;)t.push(r),r=Oe();return t!==i&&(r=be())!==i?(oe=e,e=t=r):(Ae=e,e=i),e}function be(){var e,t,r,n;if(e=Ae,t=[],(r=De())!==i)for(;r!==i;)t.push(r),r=De();else t=i;return t!==i&&(oe=e,n=t,t={type:"argument",segments:[].concat(...n)}),e=t}function De(){var t,r;return t=Ae,(r=function(){var t,r,n,A;t=Ae,39===e.charCodeAt(Ae)?(r="'",Ae++):(r=i,0===ge&&fe(w));r!==i&&(n=function(){var t,r,n,A,o;t=Ae,r=[],n=Ae,92===e.charCodeAt(Ae)?(A="\\",Ae++):(A=i,0===ge&&fe(b));A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i);n===i&&(S.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(k)));for(;n!==i;)r.push(n),n=Ae,92===e.charCodeAt(Ae)?(A="\\",Ae++):(A=i,0===ge&&fe(b)),A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i),n===i&&(S.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(k)));r!==i&&(oe=t,r=M(r));return t=r}())!==i?(39===e.charCodeAt(Ae)?(A="'",Ae++):(A=i,0===ge&&fe(w)),A!==i?(oe=t,r=function(e){return[{type:"text",text:e}]}(n),t=r):(Ae=t,t=i)):(Ae=t,t=i);return t}())!==i&&(oe=t,r=r),(t=r)===i&&(t=Ae,(r=function(){var t,r,n,A;t=Ae,34===e.charCodeAt(Ae)?(r='"',Ae++):(r=i,0===ge&&fe(Q));if(r!==i){for(n=[],A=Se();A!==i;)n.push(A),A=Se();n!==i?(34===e.charCodeAt(Ae)?(A='"',Ae++):(A=i,0===ge&&fe(Q)),A!==i?(oe=t,t=r=n):(Ae=t,t=i)):(Ae=t,t=i)}else Ae=t,t=i;return t}())!==i&&(oe=t,r=r),(t=r)===i&&(t=Ae,(r=function(){var e,t,r;if(e=Ae,t=[],(r=ke())!==i)for(;r!==i;)t.push(r),r=ke();else t=i;t!==i&&(oe=e,t=t);return e=t}())!==i&&(oe=t,r=r),t=r)),t}function Se(){var t,r,n;return t=Ae,(r=Re())!==i&&(oe=t,r={type:"arithmetic",arithmetic:r,quoted:!0}),(t=r)===i&&(t=Ae,(r=Ke())!==i&&(oe=t,r={type:"shell",shell:r,quoted:!0}),(t=r)===i&&(t=Ae,(r=Le())!==i&&(oe=t,n=r,r={type:"variable",...n,quoted:!0}),(t=r)===i&&(t=Ae,(r=function(){var t,r,n,A,o;t=Ae,r=[],n=Ae,92===e.charCodeAt(Ae)?(A="\\",Ae++):(A=i,0===ge&&fe(b));A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i);n===i&&(N.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(F)));if(n!==i)for(;n!==i;)r.push(n),n=Ae,92===e.charCodeAt(Ae)?(A="\\",Ae++):(A=i,0===ge&&fe(b)),A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i),n===i&&(N.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(F)));else r=i;r!==i&&(oe=t,r=M(r));return t=r}())!==i&&(oe=t,r=v(r)),t=r))),t}function ke(){var t,n,A;return t=Ae,(n=Re())!==i&&(oe=t,n={type:"arithmetic",arithmetic:n,quoted:!1}),(t=n)===i&&(t=Ae,(n=Ke())!==i&&(oe=t,n={type:"shell",shell:n,quoted:!1}),(t=n)===i&&(t=Ae,(n=Le())!==i&&(oe=t,A=n,n={type:"variable",...A,quoted:!1}),(t=n)===i&&(t=Ae,(n=function(){var t,n;t=Ae,(n=function(){var t,r,n,A,o;t=Ae,r=[],n=Ae,A=Ae,ge++,o=Te(),ge--,o===i?A=void 0:(Ae=A,A=i);A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i);if(n!==i)for(;n!==i;)r.push(n),n=Ae,A=Ae,ge++,o=Te(),ge--,o===i?A=void 0:(Ae=A,A=i),A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i);else r=i;r!==i&&(oe=t,r=M(r));return t=r}())!==i?(oe=Ae,A=n,(r.isGlobPattern(A)?void 0:i)!==i?(oe=t,t=n=n):(Ae=t,t=i)):(Ae=t,t=i);var A;return t}())!==i&&(oe=t,n={type:"glob",pattern:n}),(t=n)===i&&(t=Ae,(n=function(){var t,r,n,A,o;t=Ae,r=[],n=Ae,92===e.charCodeAt(Ae)?(A="\\",Ae++):(A=i,0===ge&&fe(b));A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i);n===i&&(n=Ae,A=Ae,ge++,o=Ue(),ge--,o===i?A=void 0:(Ae=A,A=i),A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i));if(n!==i)for(;n!==i;)r.push(n),n=Ae,92===e.charCodeAt(Ae)?(A="\\",Ae++):(A=i,0===ge&&fe(b)),A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i),n===i&&(n=Ae,A=Ae,ge++,o=Ue(),ge--,o===i?A=void 0:(Ae=A,A=i),A!==i?(e.length>Ae?(o=e.charAt(Ae),Ae++):(o=i,0===ge&&fe(D)),o!==i?(oe=n,n=A=o):(Ae=n,n=i)):(Ae=n,n=i));else r=i;r!==i&&(oe=t,r=M(r));return t=r}())!==i&&(oe=t,n=v(n)),t=n)))),t}function Me(){var t,r,n,A,o,s,a,c;if(t=Ae,45===e.charCodeAt(Ae)?(r="-",Ae++):(r=i,0===ge&&fe(R)),r===i&&(43===e.charCodeAt(Ae)?(r="+",Ae++):(r=i,0===ge&&fe(K))),r===i&&(r=null),r!==i){if(n=[],L.test(e.charAt(Ae))?(A=e.charAt(Ae),Ae++):(A=i,0===ge&&fe(x)),A!==i)for(;A!==i;)n.push(A),L.test(e.charAt(Ae))?(A=e.charAt(Ae),Ae++):(A=i,0===ge&&fe(x));else n=i;if(n!==i)if(46===e.charCodeAt(Ae)?(A=".",Ae++):(A=i,0===ge&&fe(P)),A!==i){if(o=[],L.test(e.charAt(Ae))?(s=e.charAt(Ae),Ae++):(s=i,0===ge&&fe(x)),s!==i)for(;s!==i;)o.push(s),L.test(e.charAt(Ae))?(s=e.charAt(Ae),Ae++):(s=i,0===ge&&fe(x));else o=i;o!==i?(oe=t,a=o,t=r={type:"number",value:("-"===r?-1:1)*parseFloat(n.join("")+"."+a.join(""))}):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;if(t===i){if(t=Ae,45===e.charCodeAt(Ae)?(r="-",Ae++):(r=i,0===ge&&fe(R)),r===i&&(43===e.charCodeAt(Ae)?(r="+",Ae++):(r=i,0===ge&&fe(K))),r===i&&(r=null),r!==i){if(n=[],L.test(e.charAt(Ae))?(A=e.charAt(Ae),Ae++):(A=i,0===ge&&fe(x)),A!==i)for(;A!==i;)n.push(A),L.test(e.charAt(Ae))?(A=e.charAt(Ae),Ae++):(A=i,0===ge&&fe(x));else n=i;n!==i?(oe=t,t=r=function(e,t){return{type:"number",value:("-"===e?-1:1)*parseInt(t.join(""))}}(r,n)):(Ae=t,t=i)}else Ae=t,t=i;if(t===i&&(t=Ae,(r=Le())!==i&&(oe=t,c=r,r={type:"variable",...c}),(t=r)===i&&(t=Ae,(r=Pe())!==i&&(oe=t,r={type:"variable",name:r}),(t=r)===i)))if(t=Ae,40===e.charCodeAt(Ae)?(r="(",Ae++):(r=i,0===ge&&fe(h)),r!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();if(n!==i)if((A=Fe())!==i){for(o=[],s=Oe();s!==i;)o.push(s),s=Oe();o!==i?(41===e.charCodeAt(Ae)?(s=")",Ae++):(s=i,0===ge&&fe(p)),s!==i?(oe=t,t=r=A):(Ae=t,t=i)):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i}return t}function Ne(){var t,r,n,A,o,s;if(t=Ae,(r=Me())!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();if(n!==i)if(42===e.charCodeAt(Ae)?(A="*",Ae++):(A=i,0===ge&&fe(U)),A!==i){for(o=[],s=Oe();s!==i;)o.push(s),s=Oe();o!==i&&(s=Ne())!==i?(oe=t,t=r={type:"multiplication",left:r,right:s}):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;if(t===i){if(t=Ae,(r=Me())!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();if(n!==i)if(47===e.charCodeAt(Ae)?(A="/",Ae++):(A=i,0===ge&&fe(T)),A!==i){for(o=[],s=Oe();s!==i;)o.push(s),s=Oe();o!==i&&(s=Ne())!==i?(oe=t,t=r=function(e,t){return{type:"division",left:e,right:t}}(r,s)):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;t===i&&(t=Me())}return t}function Fe(){var t,r,n,A,o,s;if(t=Ae,(r=Ne())!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();if(n!==i)if(43===e.charCodeAt(Ae)?(A="+",Ae++):(A=i,0===ge&&fe(K)),A!==i){for(o=[],s=Oe();s!==i;)o.push(s),s=Oe();o!==i&&(s=Fe())!==i?(oe=t,t=r={type:"addition",left:r,right:s}):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;if(t===i){if(t=Ae,(r=Ne())!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();if(n!==i)if(45===e.charCodeAt(Ae)?(A="-",Ae++):(A=i,0===ge&&fe(R)),A!==i){for(o=[],s=Oe();s!==i;)o.push(s),s=Oe();o!==i&&(s=Fe())!==i?(oe=t,t=r=function(e,t){return{type:"subtraction",left:e,right:t}}(r,s)):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;t===i&&(t=Ne())}return t}function Re(){var t,r,n,A,o,s;if(t=Ae,"$(("===e.substr(Ae,3)?(r="$((",Ae+=3):(r=i,0===ge&&fe(O)),r!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();if(n!==i)if((A=Fe())!==i){for(o=[],s=Oe();s!==i;)o.push(s),s=Oe();o!==i?("))"===e.substr(Ae,2)?(s="))",Ae+=2):(s=i,0===ge&&fe(Y)),s!==i?(oe=t,t=r=A):(Ae=t,t=i)):(Ae=t,t=i)}else Ae=t,t=i;else Ae=t,t=i}else Ae=t,t=i;return t}function Ke(){var t,r,n,A;return t=Ae,"$("===e.substr(Ae,2)?(r="$(",Ae+=2):(r=i,0===ge&&fe(j)),r!==i&&(n=Ie())!==i?(41===e.charCodeAt(Ae)?(A=")",Ae++):(A=i,0===ge&&fe(p)),A!==i?(oe=t,t=r=n):(Ae=t,t=i)):(Ae=t,t=i),t}function Le(){var t,r,n,A,o,s;return t=Ae,"${"===e.substr(Ae,2)?(r="${",Ae+=2):(r=i,0===ge&&fe(G)),r!==i&&(n=Pe())!==i?(":-"===e.substr(Ae,2)?(A=":-",Ae+=2):(A=i,0===ge&&fe(H)),A!==i&&(o=function(){var e,t,r,n,A;for(e=Ae,t=[],r=Oe();r!==i;)t.push(r),r=Oe();if(t!==i){if(r=[],(n=ve())!==i)for(;n!==i;)r.push(n),n=ve();else r=i;if(r!==i){for(n=[],A=Oe();A!==i;)n.push(A),A=Oe();n!==i?(oe=e,e=t=r):(Ae=e,e=i)}else Ae=e,e=i}else Ae=e,e=i;return e}())!==i?(125===e.charCodeAt(Ae)?(s="}",Ae++):(s=i,0===ge&&fe(d)),s!==i?(oe=t,t=r={name:n,defaultValue:o}):(Ae=t,t=i)):(Ae=t,t=i)):(Ae=t,t=i),t===i&&(t=Ae,"${"===e.substr(Ae,2)?(r="${",Ae+=2):(r=i,0===ge&&fe(G)),r!==i&&(n=Pe())!==i?(":-}"===e.substr(Ae,3)?(A=":-}",Ae+=3):(A=i,0===ge&&fe(J)),A!==i?(oe=t,t=r=function(e){return{name:e,defaultValue:[]}}(n)):(Ae=t,t=i)):(Ae=t,t=i),t===i&&(t=Ae,"${"===e.substr(Ae,2)?(r="${",Ae+=2):(r=i,0===ge&&fe(G)),r!==i&&(n=Pe())!==i?(125===e.charCodeAt(Ae)?(A="}",Ae++):(A=i,0===ge&&fe(d)),A!==i?(oe=t,t=r=_(n)):(Ae=t,t=i)):(Ae=t,t=i),t===i&&(t=Ae,36===e.charCodeAt(Ae)?(r="$",Ae++):(r=i,0===ge&&fe(q)),r!==i&&(n=Pe())!==i?(oe=t,t=r=_(n)):(Ae=t,t=i)))),t}function xe(){var t,r,n;if(t=Ae,r=[],z.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(W)),n!==i)for(;n!==i;)r.push(n),z.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(W));else r=i;return r!==i&&(oe=t,r=V()),t=r}function Pe(){var t,r,n;if(t=Ae,r=[],X.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(Z)),n!==i)for(;n!==i;)r.push(n),X.test(e.charAt(Ae))?(n=e.charAt(Ae),Ae++):(n=i,0===ge&&fe(Z));else r=i;return r!==i&&(oe=t,r=V()),t=r}function Ue(){var t;return $.test(e.charAt(Ae))?(t=e.charAt(Ae),Ae++):(t=i,0===ge&&fe(ee)),t}function Te(){var t;return te.test(e.charAt(Ae))?(t=e.charAt(Ae),Ae++):(t=i,0===ge&&fe(re)),t}function Oe(){var t,r;if(t=[],ne.test(e.charAt(Ae))?(r=e.charAt(Ae),Ae++):(r=i,0===ge&&fe(ie)),r!==i)for(;r!==i;)t.push(r),ne.test(e.charAt(Ae))?(r=e.charAt(Ae),Ae++):(r=i,0===ge&&fe(ie));else t=i;return t}if((n=o())!==i&&Ae===e.length)return n;throw n!==i&&Ae{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t0){for(t=1,n=1;t'"%@`\-]/,I=Ae(["\r","\n","\t"," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),E=/^[^\r\n\t ,\][{}:#"']/,m=Ae(["\r","\n","\t"," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),B=function(){return ne().replace(/^ *| *$/g,"")},y=ie("--",!1),w=/^[a-zA-Z\/0-9]/,Q=Ae([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),v=/^[^\r\n\t :,]/,b=Ae(["\r","\n","\t"," ",":",","],!0,!1),D=ie("null",!1),S=ie("true",!1),k=ie("false",!1),M=oe("string"),N=ie('"',!1),F=/^[^"\\\0-\x1F\x7F]/,R=Ae(['"',"\\",["\0",""],""],!0,!1),K=ie('\\"',!1),L=ie("\\\\",!1),x=ie("\\/",!1),P=ie("\\b",!1),U=ie("\\f",!1),T=ie("\\n",!1),O=ie("\\r",!1),Y=ie("\\t",!1),j=ie("\\u",!1),G=/^[0-9a-fA-F]/,H=Ae([["0","9"],["a","f"],["A","F"]],!1,!1),J=oe("blank space"),_=/^[ \t]/,q=Ae([" ","\t"],!1,!1),z=(oe("white space"),Ae([" ","\t","\n","\r"],!1,!1),ie("\r\n",!1)),W=ie("\n",!1),V=ie("\r",!1),X=0,Z=0,$=[{line:1,column:1}],ee=0,te=[],re=0;if("startRule"in r){if(!(r.startRule in A))throw new Error(`Can't start parsing from rule "${r.startRule}".`);o=A[r.startRule]}function ne(){return e.substring(Z,X)}function ie(e,t){return{type:"literal",text:e,ignoreCase:t}}function Ae(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function oe(e){return{type:"other",description:e}}function se(t){var r,n=$[t];if(n)return n;for(r=t-1;!$[r];)r--;for(n={line:(n=$[r]).line,column:n.column};ree&&(ee=X,te=[]),te.push(e))}function ge(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function le(){return he()}function ue(){var t,r,n;return t=X,de()!==i?(45===e.charCodeAt(X)?(r="-",X++):(r=i,0===re&&ce(s)),r!==i&&be()!==i&&(n=fe())!==i?(Z=t,t=n):(X=t,t=i)):(X=t,t=i),t}function he(){var e,t,r,n;for(e=X,t=[],r=pe();r!==i;)t.push(r),r=pe();return t!==i&&(Z=e,n=t,t=Object.assign({},...n)),e=t}function pe(){var t,r,n,A,o,s,p,f,d,C,I,E;if(t=X,(r=be())===i&&(r=null),r!==i){if(n=X,35===e.charCodeAt(X)?(A="#",X++):(A=i,0===re&&ce(a)),A!==i){if(o=[],s=X,p=X,re++,f=Se(),re--,f===i?p=void 0:(X=p,p=i),p!==i?(e.length>X?(f=e.charAt(X),X++):(f=i,0===re&&ce(c)),f!==i?s=p=[p,f]:(X=s,s=i)):(X=s,s=i),s!==i)for(;s!==i;)o.push(s),s=X,p=X,re++,f=Se(),re--,f===i?p=void 0:(X=p,p=i),p!==i?(e.length>X?(f=e.charAt(X),X++):(f=i,0===re&&ce(c)),f!==i?s=p=[p,f]:(X=s,s=i)):(X=s,s=i);else o=i;o!==i?n=A=[A,o]:(X=n,n=i)}else X=n,n=i;if(n===i&&(n=null),n!==i){if(A=[],(o=De())!==i)for(;o!==i;)A.push(o),o=De();else A=i;A!==i?(Z=t,t=r={}):(X=t,t=i)}else X=t,t=i}else X=t,t=i;if(t===i&&(t=X,(r=de())!==i&&(n=function(){var e;(e=we())===i&&(e=me());return e}())!==i?((A=be())===i&&(A=null),A!==i?(58===e.charCodeAt(X)?(o=":",X++):(o=i,0===re&&ce(g)),o!==i?((s=be())===i&&(s=null),s!==i&&(p=fe())!==i?(Z=t,t=r=l(n,p)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,(r=de())!==i&&(n=Ee())!==i?((A=be())===i&&(A=null),A!==i?(58===e.charCodeAt(X)?(o=":",X++):(o=i,0===re&&ce(g)),o!==i?((s=be())===i&&(s=null),s!==i&&(p=fe())!==i?(Z=t,t=r=l(n,p)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i))){if(t=X,(r=de())!==i)if((n=Ee())!==i)if((A=be())!==i)if((o=function(){var e;(e=ye())===i&&(e=we())===i&&(e=Be());return e}())!==i){if(s=[],(p=De())!==i)for(;p!==i;)s.push(p),p=De();else s=i;s!==i?(Z=t,t=r=l(n,o)):(X=t,t=i)}else X=t,t=i;else X=t,t=i;else X=t,t=i;else X=t,t=i;if(t===i)if(t=X,(r=de())!==i)if((n=Ee())!==i){if(A=[],o=X,(s=be())===i&&(s=null),s!==i?(44===e.charCodeAt(X)?(p=",",X++):(p=i,0===re&&ce(u)),p!==i?((f=be())===i&&(f=null),f!==i&&(d=Ee())!==i?(Z=o,o=s=h(0,d)):(X=o,o=i)):(X=o,o=i)):(X=o,o=i),o!==i)for(;o!==i;)A.push(o),o=X,(s=be())===i&&(s=null),s!==i?(44===e.charCodeAt(X)?(p=",",X++):(p=i,0===re&&ce(u)),p!==i?((f=be())===i&&(f=null),f!==i&&(d=Ee())!==i?(Z=o,o=s=h(0,d)):(X=o,o=i)):(X=o,o=i)):(X=o,o=i);else A=i;A!==i?((o=be())===i&&(o=null),o!==i?(58===e.charCodeAt(X)?(s=":",X++):(s=i,0===re&&ce(g)),s!==i?((p=be())===i&&(p=null),p!==i&&(f=fe())!==i?(Z=t,C=n,I=A,E=f,t=r=Object.assign({},...[C].concat(I).map(e=>({[e]:E})))):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)}else X=t,t=i;else X=t,t=i}return t}function fe(){var t,r,n,A,o,a,c;if(t=X,r=X,re++,n=X,(A=Se())!==i&&(o=function(){var t,r,n;t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(f));for(;n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(f));r!==i?(Z=X,(n=(n=r.length===(Me+1)*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i);return t}())!==i?(45===e.charCodeAt(X)?(a="-",X++):(a=i,0===re&&ce(s)),a!==i&&(c=be())!==i?n=A=[A,o,a,c]:(X=n,n=i)):(X=n,n=i),re--,n!==i?(X=r,r=void 0):r=i,r!==i&&(n=De())!==i&&(A=Ce())!==i&&(o=function(){var e,t,r,n;for(e=X,t=[],r=ue();r!==i;)t.push(r),r=ue();return t!==i&&(Z=e,n=t,t=[].concat(...n)),e=t}())!==i&&(a=Ie())!==i?(Z=t,t=r=o):(X=t,t=i),t===i&&(t=X,(r=Se())!==i&&(n=Ce())!==i&&(A=he())!==i&&(o=Ie())!==i?(Z=t,t=r=A):(X=t,t=i),t===i))if(t=X,(r=function(){var t;(t=ye())===i&&(t=function(){var t,r;t=X,"true"===e.substr(X,4)?(r="true",X+=4):(r=i,0===re&&ce(S));r!==i&&(Z=t,r=!0);(t=r)===i&&(t=X,"false"===e.substr(X,5)?(r="false",X+=5):(r=i,0===re&&ce(k)),r!==i&&(Z=t,r=!1),t=r);return t}())===i&&(t=we())===i&&(t=me());return t}())!==i){if(n=[],(A=De())!==i)for(;A!==i;)n.push(A),A=De();else n=i;n!==i?(Z=t,t=r=r):(X=t,t=i)}else X=t,t=i;return t}function de(){var t,r,n;for(re++,t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(f));n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(f));return r!==i?(Z=X,(n=(n=r.length===Me*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i),re--,t===i&&(r=i,0===re&&ce(p)),t}function Ce(){return Z=X,Me++,!0?void 0:i}function Ie(){return Z=X,Me--,!0?void 0:i}function Ee(){var e,t,r;if((e=we())===i){if(e=X,t=[],(r=Be())!==i)for(;r!==i;)t.push(r),r=Be();else t=i;t!==i&&(Z=e,t=ne()),e=t}return e}function me(){var t,r,n,A,o,s;if(re++,t=X,C.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(I)),r!==i){for(n=[],A=X,(o=be())===i&&(o=null),o!==i?(E.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(m)),s!==i?A=o=[o,s]:(X=A,A=i)):(X=A,A=i);A!==i;)n.push(A),A=X,(o=be())===i&&(o=null),o!==i?(E.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(m)),s!==i?A=o=[o,s]:(X=A,A=i)):(X=A,A=i);n!==i?(Z=t,t=r=B()):(X=t,t=i)}else X=t,t=i;return re--,t===i&&(r=i,0===re&&ce(d)),t}function Be(){var t,r,n,A,o;if(t=X,"--"===e.substr(X,2)?(r="--",X+=2):(r=i,0===re&&ce(y)),r===i&&(r=null),r!==i)if(w.test(e.charAt(X))?(n=e.charAt(X),X++):(n=i,0===re&&ce(Q)),n!==i){for(A=[],v.test(e.charAt(X))?(o=e.charAt(X),X++):(o=i,0===re&&ce(b));o!==i;)A.push(o),v.test(e.charAt(X))?(o=e.charAt(X),X++):(o=i,0===re&&ce(b));A!==i?(Z=t,t=r=B()):(X=t,t=i)}else X=t,t=i;else X=t,t=i;return t}function ye(){var t,r;return t=X,"null"===e.substr(X,4)?(r="null",X+=4):(r=i,0===re&&ce(D)),r!==i&&(Z=t,r=null),t=r}function we(){var t,r,n,A;return re++,t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(N)),r!==i?(34===e.charCodeAt(X)?(n='"',X++):(n=i,0===re&&ce(N)),n!==i?(Z=t,t=r=""):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(N)),r!==i&&(n=function(){var e,t,r;if(e=X,t=[],(r=Qe())!==i)for(;r!==i;)t.push(r),r=Qe();else t=i;t!==i&&(Z=e,t=t.join(""));return e=t}())!==i?(34===e.charCodeAt(X)?(A='"',X++):(A=i,0===re&&ce(N)),A!==i?(Z=t,t=r=n):(X=t,t=i)):(X=t,t=i)),re--,t===i&&(r=i,0===re&&ce(M)),t}function Qe(){var t,r,n,A,o,s,a,c,g,l;return F.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(R)),t===i&&(t=X,'\\"'===e.substr(X,2)?(r='\\"',X+=2):(r=i,0===re&&ce(K)),r!==i&&(Z=t,r='"'),(t=r)===i&&(t=X,"\\\\"===e.substr(X,2)?(r="\\\\",X+=2):(r=i,0===re&&ce(L)),r!==i&&(Z=t,r="\\"),(t=r)===i&&(t=X,"\\/"===e.substr(X,2)?(r="\\/",X+=2):(r=i,0===re&&ce(x)),r!==i&&(Z=t,r="/"),(t=r)===i&&(t=X,"\\b"===e.substr(X,2)?(r="\\b",X+=2):(r=i,0===re&&ce(P)),r!==i&&(Z=t,r="\b"),(t=r)===i&&(t=X,"\\f"===e.substr(X,2)?(r="\\f",X+=2):(r=i,0===re&&ce(U)),r!==i&&(Z=t,r="\f"),(t=r)===i&&(t=X,"\\n"===e.substr(X,2)?(r="\\n",X+=2):(r=i,0===re&&ce(T)),r!==i&&(Z=t,r="\n"),(t=r)===i&&(t=X,"\\r"===e.substr(X,2)?(r="\\r",X+=2):(r=i,0===re&&ce(O)),r!==i&&(Z=t,r="\r"),(t=r)===i&&(t=X,"\\t"===e.substr(X,2)?(r="\\t",X+=2):(r=i,0===re&&ce(Y)),r!==i&&(Z=t,r="\t"),(t=r)===i&&(t=X,"\\u"===e.substr(X,2)?(r="\\u",X+=2):(r=i,0===re&&ce(j)),r!==i&&(n=ve())!==i&&(A=ve())!==i&&(o=ve())!==i&&(s=ve())!==i?(Z=t,a=n,c=A,g=o,l=s,t=r=String.fromCharCode(parseInt(`0x${a}${c}${g}${l}`))):(X=t,t=i)))))))))),t}function ve(){var t;return G.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(H)),t}function be(){var t,r;if(re++,t=[],_.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q)),r!==i)for(;r!==i;)t.push(r),_.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q));else t=i;return re--,t===i&&(r=i,0===re&&ce(J)),t}function De(){var e,t,r,n,A,o;if(e=X,(t=Se())!==i){for(r=[],n=X,(A=be())===i&&(A=null),A!==i&&(o=Se())!==i?n=A=[A,o]:(X=n,n=i);n!==i;)r.push(n),n=X,(A=be())===i&&(A=null),A!==i&&(o=Se())!==i?n=A=[A,o]:(X=n,n=i);r!==i?e=t=[t,r]:(X=e,e=i)}else X=e,e=i;return e}function Se(){var t;return"\r\n"===e.substr(X,2)?(t="\r\n",X+=2):(t=i,0===re&&ce(z)),t===i&&(10===e.charCodeAt(X)?(t="\n",X++):(t=i,0===re&&ce(W)),t===i&&(13===e.charCodeAt(X)?(t="\r",X++):(t=i,0===re&&ce(V)))),t}const ke=2;let Me=0;if((n=o())!==i&&X===e.length)return n;throw n!==i&&X{let n;e.exports=()=>(void 0===n&&(n=r(78761).brotliDecompressSync(Buffer.from("W0plWMI2Bp2n2wYw31R9mfBH1sjGcFjc59+P8GUO0eL82uRHjG63JyVJz21bhqTSUf4UVNW0pENkJtQFWuhQVf/9hgSPmLRyutJaCDmnIM3aQfuk6mqJ6o6AQ2aT7ieEDCRkBPeAHI62fGFth5zCoYHVedaG8HiWmSg3ykpjsngLZ6PaX1HD7wN8LEEkkTT6+d789UO/lzAxcf2R5/EeF/+TODk06n3E5wFOxqaAt1vVIEzWwohCbMrimjU6N7afTt5Kvj4/eb6laPVtUz1EwPrxsIaUHuSk6aUFV8V5X539nCxTrSP3uyDJeIRv/0CHKbuYEjaIwkvf/32bb//5+br1LJGKLL+tnRm7mwPhvXSAMJh0cznGWLJRkCVVVwacOfifP9P/+hU8B2vQyK0wHJTSOisQ5cZLmRWKbEf7/ven+v/5+RKUk0oeupId56RkkLFo33PXkBquIMYhA9/DKO7Dfpup5T+fl2dfqyvOpfuUChGgjJgEuQDodgXe9DKw3RwNYQJ+gKFPU79OV03YYIx+PG7Mp+Gm1DafrB6LKoNNwl8GRvtsfUbp2NzPfXsqlYp2MiNn32OCCGF/qt+4XqSrI/CeBb8kHcls7RdfLJZUQ2/a/Kp1mXykqiNQHLL3NHo6+FtD++MVSNmpR7DVyoz0Q+KD9ZYk8yX6TJxVUTxszZ6PPqStu6vPmckkhNMhRKU/xRqRWmuxi9T3c5ZlSzinUpeFQ2YtdfoSD8wOOHAMgYco0fnHQ/s/JjitOb6V1rYCIgypAXFLlGRTBBjqwAA8PNW79cvF+zF+ectTt6vTVUkIBQTBnUatxkgYhxlb9aPG9sdDB6msj8c3ywCDgg1ISTfEXIz6q2Kt5Eft1Z5fLt7H+DMTZXlOdQGNALmQcSLvZHJdEE2MJZQ0zmH+tD8eV/m0ZY8zo5FtsCFjRQV6I7zNaCw+SemrI/z4H86nz4/d3cerqc37PDN3LgwBdMCbiH8p1iFBgy0qWnjKbPbH43eW7fhaFiD2Jpn1Bsmk1RbLT8GMbKD/ueW8yft3YJpDwZCGdEX/+95Kq9WYZSJJgiOEXs5iq0CghNCbNfzec99huvt3b0SEZ5ARkZnTIJKoBrOIpu7WV7zv4e4RmRURmSxDJlA9AEVPkaNYNUKp1cxurdRuNrvZ7BIYIcSq/38rtfeH71VVN0BiTIHrgLNKf9/iBiTNuuQ/9hYP3r233rDee9VHVV3dw+5Ct3+jG/SgG+QfrMcEQFY1MKNqkPoGKc4/AGcDNTr/SF4peaPsXQTIc0RRs3LkZdvjZdkz/cyhnTr64R8HkUNHuaPYQZL/3PD/77IJswvWJj+hCotyM3P2C0NpTrybR20KNP7/+6vqdZs+ouV/r6c/gQgtY+rec95eU0mrC7t5aar7syV07z5wT0RkZBZ+ohKj4ch2ZFsvIgU1I2JPpqyaqhtSfu6ZR4BB62+lTUUu6GFgWGg9a9MKrP7/+5b25d4nMiIBsJKoKgj+KVZrYXgRkcmEKNFCCW+85rvn3L2Y8e67qzNUFzIici0gxfqE+gLCoLr3RWTivkCCFZEE+COTYFUCZPWALDEgqwV/C80/sr41SljClL5S7oznjMnWLI4UljQMfwzPH+vbbxWVWLmd/YPH/JVEyrx+Ah6hBErJYvzz/cV0/7nwd5YTD/RNQBmvU5MIBW7ZGK4FOFf5HNo/gJt+f3RQtmLv7toOKBKBKBKBIEECFG+BBPcEgq2T7svw77b/e4Ch7jB2A+FsIxawIjqsRL1hJDFC+329IXTr+6+rZpvL3f0tVCEJJQlSeugBpFahJ5Su0p2ZiL4y7zu1U1pn7wzKX3lGkYljlzmIY5r4OesH652EeHdvs4IQpVgQG4oiiMaa2AoxgmjPxsR8/G7eUky8MvBu+/83qfMYHM+9V4+roIfAGCAhSKiEoGISBjBiMOgbv2OUYe591acPWZvLCyiggIhlOHcFXkrbsmYvfavV3K//9/PDv7ZLWcpSjlgRcVoiIkaEMpSIERERF5y6AM+FnahAsKvvn2//nNuDw/yEsyihhCxqEaSULIrfsS0ktiWGpvhGKJvwySKLC95FD5P/v3se+nXfA5yZeRAEB4IgCIIgCILgQhAEB/asdWBDM//bbz7/z3v3eVXqW5zCQvgWFhYWq7Cw8IOFhYRNsJBgYcgKyGcVizAkFm/dgud9956Qf9sJBEsqEBUsQSAQCAQCgUAgECRDnEBUVFR0qM1SxGKYxpA4CTFYt9fnru0YDNJd7raPvA5BJ69hHiF3w3AykdIS25dS2/RfrJmPNfbcx3E4Ow8hiS9mHzhF7cdTN092Ksj75tmfRYotmbDzEoyHtgVBTbD6KrcuEODpXfL6jjth9+FP8uylf7dKcKv7gj1Fi8RJSmjTYzbV5UDzUHBEGW3TaBnup/84CUyixdcv20J1PyJE/8IlGHzt7px5CW9GZelAVzRcjlXFrslt6m4VMD19Hw9vmp9JS/zoBSPLwGKwx9uUNYra34BEnkwHdHuDbV41Ieoxqvuf9OqF3gHyqaV4H90u2xRE7evzp8BH1VQc+zzpPnt5PMl5eubmHcmTGPLmDkdE9yIrB/KCX2slmF0i9Tzmpare5PA39QhSoUNX+WX8Y6z6c3V4Ml4pyrhcG9XKitoZuABf81Bk3Bh6mPe1g5A9L13q2Kro/2lCNX2VJB+GUsQAOHDJvA+oi9Rfrczkr/Ff5E5dfE+rQ5KZTJPFRfdb4CTf9RA9nHv078vHJgmcBJzQMwrUPUyyUpshTpBPSwBSsH/y0Qu7yOTEP+Lx98L6+q51E2yaklSf/ulBW4SzgXMIdZbGPKJNkum9dS4YgylAAjzFHlZGlYJ+RmMrcGBc2hTi08vgjezI4steUmnk7iMZj6INH2+jAyw9YGHdAzyZq3yzm6L6wpdE8Ge6aV2wZbj/1v4klGdU7atJRPKTaEQKvgWwyultdZZrHU0cmzd8UaBYZDHDDt7u6/5aAkHIxT+C73wPkXO5NJXo5GlUCGGclozSePPmU3eaUHmTsXWT+W8He9hmfFJHsRjyjGuShvRKt0HB8N5HogaKMW3LK4WBaEF9pW47iX+T9+YIAOTcK9C1FiBrKGrZM0tI66fR+hNa+GLHg1gBfKul6+nCTp6U6wSGhwiRd6/o0EC/mLSkzChLes8wP5HAbdJAozyIIshRIBC3xTKm+PiYpksZ6wPvfbXH6/gcbTzXz2mUQCPOlKdE0HcKzT3e/aHSYXn3xdPFAC4vAaSE2bwce5qcT0O24gWPLZMFSBtu/61VX/VxGTgZTj/Cb+rkg82IeUD3VFNRHxG8SVBqDh8oFuP7wi92OIkvuMCoC1w04l38+keziNSGpFH1rTzoTVJneke3vHEQK9eqE1bM6rLi4H4z91Zo62RHUn4vSJj68fGA3LHUBuEkNSyh5JxSob7VBqwQmnCWCKIZeWjN5U/hizUgqWWrg4Kc93GyFbKRc6Y593F0fARCal2bnvUiOwJMnwFLzVPrzc3mAPkgQxwMAdejH016WXF6SXkqxR33sE2R2AZww8xq6PH/h/HgFPf+clcrVYm6cCl/Wj7NvM7ER8VXqfcbumgqvsjoLlA+lkJ09IEhlBvgYeidcmWpr7IsDRiRQiDtDMqfBRS8RBDMvnAfuV2VnCzgYkZIAq5YPoDpwNhTCRK+Jj94jB/kQmJvHvekDYKwrvsWUUl6zkLiDN4UIEm27R5qD/lRJP4ZMxeKzKk0oeAzeOsjUEMjGAJpZXYEt9HQHT1Zxvkv/hYIdXTl1vmFMD43rMtXcwy/ZjjiamdSq+Tr5YekD9rfQynIC54aFQaG8TYNRbyHrleMhOY+FRu9PGjLGewo5dgdctd6Qk7jpHZ80NZdgO9Y4QRbPj9dymxr3ehNboqxFeEuj13A0jya+nSuJaA2zMThXnNqlJHNilGRxp80XF9snSi3CwoU9SfzAHh6c0nkofAqtziAgKYVTyBH9FbXdQmNKFjpCCZWOFIT9Y46wYO1lTrMDP+DPxWXrDBcUF5I2oSaQ55+6reT1+d/JuhZ/6C+Avo7GV1qAfO7yo4b/yQJfzc1l+0DdHNWAvy0XTdi++5ZVNrXup8Fuoe3jRnY64oBvAt6YQHQIPTMjsh5BunbF19JI/Gbo5jr1OwhgxVuyiJmpOer3wagJ6XOpLGmPzpuxXaMhJSHrEM1fBMp82w2OOn48FcYFzxsImdf50gs+A0RI2EwKMM9AIEuRhS+RVx3lBRELeu4eNwVfr1h+A9vGXa5bTYbFrEzP50MvwW4Lh6qhtlPjWlvCqPPNZW1ABv1pTDxLYy2r52jZkhbg5mU+aV1nWZEnH8QVEdL3Bep2zLf39q8mrCjtGi40bs8TC8OFII0UBAgLn6DxWaa9L/mtO6TORD9FwFzTNzm1yHWSNmxCRoYMMURdhm6gat0VQlzfWPf7TTalIQMHJ0KefgOLvKIOYxgz0QeDn3euqLUCBFkJYC5tXkPNIQoA3YLVRCD5hK9/plcgcmpLfkxNPYkeepw2JYwjm0/lN7MpV5G1321tetXbicGCOLMc4CeDEpj86LfhLiREJIsGQGsqoyxn4oIUd/OYqqFCpd8egzRhS+5WOo2LZ+eshhllp+EtwA2xDhxZSMQe5+W6nr2UF809QONuPZyaUJRnSBtgHcRadDlcQcO6NSADWjGYPilLU2qLeb9awbzkEAB4Wibx3SJ4M03UzQH6JWkRSTDjiptjpNZn/SQN0YGTqB5RXyrLR3qO8kzITbBu49fa15eQserW5u221aYzE4CNwwpeQbejKUY6QtsADcVq6JhoJHQ2V5HmVgzQY8d6DCCBQ02g0tJ5+IpJ3vuEs+W3FgIXOYgUjRG70udlwjYo1RHpj2TAJigFxPIA+3706zoXHDLicuBFGG3xAJ+GFIKtUcigYPFaI02qsGnXhi1+pkpOYQb0ZrVX58b0OtEDI6EhpFhYNpCkutEZYWeCzB3U68/4BBn8gNK8a4GjZTdGDd355mGSZ9KCOaU7m0aeXYr1c69ulVL3yvqR6UZ223KfcHBmmTiTEK+eH9D9fnUHY57nxsIHIgGk45ruIyFYGQ6MNpFRZ3o7Rsk+EuKLi0FcTj28UpzT+KyXmuTi78OINZvaT+XLGak/D2Ebbb//rzWexuAyaWDq2b7vBKovJtDJrAu7WO3mKamwn+PBtUrdCAWl3ZuCZ/Ro5a3OOoVINt7fssDG5BQ2eCAA+ck1JCw02YUq3VhhwgDITcUs5+DhiMJKYokkK1f/V+0HjWsQ4BozUmhlfUcKNObez4/Ix21NlquOD1iPbIM2WlQnAqHc5uMlF7I+eNUIubAebXZr2D4DDGLqkpagE+U9VesaU5t3AzK7G3SRqwSwj2aZ57AoDcd3WZufXNfKWxTYmeYyPeefbYPi47osAq2XPj2ieHSgQShsGpzV6M2isuisDIF9Q/0AqMgmzBedaaJRDGHPSvOuu2mZWwaFFjftypNCXw/Gu5kdgHbJpX4ab5Tve/cf/o43OMwEqDF6olA7X7JR+Mgg2szZ23TmdxWI07aMthy6IYFgj9xTZNmskTfvpxn1tzRXToEgfUaKW8Nur6NFGboJbB4yN+yb5bqGbtX4F/xc1jTeAAPndEf/nk1bsFj/aq5D8MMP8opt0bavDvShZ86+4Q3hHzg/kowGH0k44Jt6i9Gg8kTswHAezYqH5E1KvvodtE4Fr6Zsxngz5RiNB/6+TKWsj3ZgStbwO46GPEqMpo9sczyPky/5B4dhMRjwG+U3vh0SvwHXiRQgyDnNPgdyQWjhEYYhzUu4uIkq+Qh6QKWZBn6HlRUExchTj3duoxPf68y2D3tTeMbbljdn3MikCbk3cfpStxHdKDQMrYLqKuisTGvWlwEShyYqn5EyVeulIl2bSqfECdRiJ7RJERP4TU/Ca6p0WOjRN+h9Lx1atdgYV/yONhHBxi73U6lK415AQ1lodVTd9E52IWGdlEystXxhp7VUSb8/yr/4zWsLRJZP1lTy7tysrPxqa4kszqyl9ntrmJU5mdVOxKTYkXQCjNi6SKXGrXL0WHJwkZG0nWePemYR8NpBqu+y1Ruyzgjj3PxBZu+ydx3u94QyHso4O92CoIcC1O5kaZApwUdcACJc/hZBi8R8L/yak1aZzc3zy03JfMoq37qCR+G/HV96blOst9wiXWlpPSVaAOoc7HH+PfGzhiBmKTnF2QoxpQv9bl98qI3BQ3TPwvjBbDT09tciRVFTnfpJ+4jSljfYX3A+MbU6d4Zhek4Gmj6jLb/PlfSttleLST1dSG/YrI+V/n/HRZsYFRrWN23rZOWLodvaE4bf33tcrbP5uh+N9wZB62TVvX+aORmazGFafQw5jTyydptGrCtb8wFA1xuZTOHZhsy8GurnkBkdAXws7/9PY5RZ67Goo8sOtDvB+FHfE3BbjoP0Nx0JQG223KmxJXDy2uG3vbRTuRnGmvzjX1f0R6y6g1tfD97Wko2o+qGJFl56orO1aif/vuwmiE3EsJk+gd4RDzXhRNLOZ2M/+YCsaHxuvijwFaf/lnedb3vqJQpYwT92N/6Xfyqlf4QX1ZX3QL0BFqx9solAyX/LeywZ6sooM2ZwyEIKd7D+j5ID8QNcAG6aeF2UIB/N4Twup0xpBZTtbkiTCHj10tdpswiSm+PK0+SUdsjtVMvMGzWpvLf2aae/bf7zfT+1QZztwKaTL1f30j/GuTfHgbR4jq2v/G1vvf0QfuhNOnxyzOcH8r48N2gH8KUQxtEBUwjT5kKbmUvT3F38LJV90ftGr7rSgLkJfVhSv7KXnH8Oy0d0iE+dFIljF7U/4oXny0r0Cap86eFZI0LEIyDLqUhIeN6lwVRJt9kjUuzhWKQbpbm0RQYpwtsTPFPPD9HuwR/mevnjHa6IEAJHr2/QbOii3g0V9IqxscQwYsvkQOFaL0P9AD+khsm+YMh4GgA8d19iTtvEIwacC5z7WOplZvoladtng+Fl2/oMnGaKpt/6WtYI+V4dExNcTj9lH+vVt9wq/s5iJg8JnG93/MHK+LuO/qGj0XjOIyLP2CWGfyBvEZy2o9YWQT29+48nWLB2ZXhiumX8OYiACnUamTygk6V3+2cXGrg0DYB4HSsl9/DpbxOyCkC5CSSZs0P4peRkIB3S2mtL7qTuaOy6u166dDIjF/jdJ/T9450/NpEFMQSVUzXlluKa8VvwNQLSN9FwIEN8nQSLJe3kAc1Pk7Aya2GcoQ6VvOthntJUc3+1NPJEUjkVxBIejUOwQv/eVkw25w6ud9wKBKAVGzTmsmcIZRq3eJEFjb11F7GYoGTCYvUzpC5vCpwn1ghAh8+Cx4WGoeb1Rlx57hE/h8L6cWIPGE/3dU01E+fx0+SJQXFv+YdN+787fPz65vnHIgvEAjf0KdVCgg37eEflFtprfjlpnbA+OLreQFpL5hPtjRVv2rlPeFO70XMogzHcl9o9VDZyf5Zkvn8SOX9mCzTNk8WQJvGmfDETqPxTK+fGQHK9nw8LrlxffjPF/2TS6qDmYuDTi1AOllrtZ26MOL5is7NR35+Ryxm10Dd75Ib82l4tKC2aI0lI+yV/nwPixAGM3lMOH2Yw7MRwB/E0MNGjxI3RSl4NejpoQv+cflRzyu4BavH/2MV0kwf356ewm83sUrazL18XbtjtDB46H9FCzaWnl4Pg0TPOcE2NpQQbCRPpYwtElDusl0J1FGIN+wMHI6jge2V9ZzU2hnWmTbr+glELGZlZHrOQF7mDHWmBZZDGIIVtLqSWpdTX5H8gAtstdnu3BFeanUi2PW1nQchkjNEOf5+/Eejo434syn/7/3BS7fNp0nSccP4/1+60Ayc5U5CaQsIuPbUmn3aPen/cbi7mDW+1PprIJg+rvSVO8D2eOKP/XS66TUM1fkwRCyXXqIQ/UTqEytPjvHNrt7b0AE2SZjdC3oq01vtN9u/e3uLF2lMnEWW2PU9tjPubQ0us5fduK8Mnfajq7YwYGDPs7oYA38yb6Cjf1f5AR1NrYJdfy88yRHKvQ3AEmAo4mwTxdlr0TfzAJi1SiLGVWo1DH1ffR/T+n289zUGBJaAeyWdjMG+C1PU0+03f1OOrDrgAfzNB9BWfbVPpl2xaU1UPOcsYrzFGNvW7zEaOBKNUssWZeVwmD7TN7Np2e7UjRgFwTReYFlQYq7VTkSc2DkGGd0JQv5gLjpXba/2lec+fFM2er+jQ7lLWiLZMzZHC1H1F7z0vzflAFNCjafZAxO5ZiZRWs0sxPfiM8nJHNEBweb+ZfR+UNgUbZ/OMpj2wn+7quUw76z+tLkNqMOXrDn/Ue8+afIX0f0ZuaRfFjnWKQo984gkrA5UJig80jelT582ER+GYhYrDZx1xvgv7EzJu2bqVhfOAlnakiV4zpO11QBEtANz7JC63SnsivHeFye0gOQ9d+hWVofXSmFmJi+gwySUIeXYaBIq+/9cnxE6G1hGmGMTFDph4sjS2LUWegXt0biW5IA9vqOnVX8T17PE9u4ferhFwM6mGLiLsO5oxBD63y5Lt3ez0dI5I5OYpb1yfc6udYAxAOq5OHM/jI5QwzPjjDGMPRvCwJUvSnvbSv+VG05AfcIGXdfm0f8TBMY6acJUZU+zxdkxsH4DE4cF779wCxI3+hUosl/7U/2EkdTik91Q94HoTjtzEt7M1EHaq2gZzDNqZpcGIuVVlmWUj6GCLF2Y0p8Bx8yI4912H+YPN8pnBbIdnomWmAXRaScK+ZjGqmEG3L1foNZ3wx8iYQ7KEvqyI0TH6ML0o2/X1gWws/GwPbRIi06LAORfCr1Ji21hGEcjuCw/MCwa+Sup2HH7nrDxzM+ZberCShibHvX3bXF0OFgaF3Cuuq2Ng9uF1Zx/hKj4XPvL12/rbNtV76YrLI1dWaH7xLbM2qgbtw8JxJMG9hVTW1EFZnlkd6Yk5N51kqiroTIQ/cWikjoZkDc+kWruZg87F0v+tZ7QIZiruskWslKp7BpbsuuXu10E9XE3Q86DKVcS6qZPrTg/xI2WnIid1iS+imvuK1SvXF1zr6TmsJjPckT4P8Tw9F/HK+WFZQHAZPGIr8weivUOOKH//e3F3G77Yf0fsnQR/o5ZC8B0fgrEawWA0TRAeSWOmKkwRiQ/WjWx7rv6iqwrglkndDtvkXUGu5sFeRwmKdsh8yuj8uFHwTnW+ctNn665s/UTsFaCtZKyUAsqJVFXW+ten+24+bsIIoq0Z6EZIKg8MkEyC4i+XdDAjCG4Zy4pHTxm322jl61YjdeL2p6f8azioXtskCNvzN14CMQWMdcKxvwmuPn0hQ1ugocydHN6kOmxq34VvoRXuCmvxvCedHrcTeuwQBxWzoN8lTzQjiwPTwp56J7NYyr0uh48BekABbElJ0BuXYI9ylKnBcqEwHXEXEhrAZtbkQK03Lvu237g5SvyxcyK0wchYq47LOJfnpqTcKMABLwd8gdSj92DNsUpRimfCxg2YU9sxctZQI9RHQx3ixJv0twHjyzT01p7nUXn7d2B4Ke3nqMl9UsNtwNmGP35r53ZxTY0t8pMAtHOJjb1MgppXVkltDUnyd57aC5vbjurP3F1vFJeWBYUF5ZFjvhqsy8/WUXa916pEvo7CRyn6un8jnba9POdRGYE+2Bws7AP/YXY/5k45O09XriC7C4cVDpxDbRaloVXo92iGfUMiisEdFO3vPODdTUH1t7gwdKDbRDEdWA8bhwI6DgWwTALwnpdL/n0x3dpvPPhe6NFUcc6nzXjn9XAMOWy9ehpXYE+vHdfbZ2cBZYXl7CqrIkHNIHs/WEA2O8wipxBKW4Fux7Na3wAKbIiDmuOYdTNInfmjlo+oN5RfV7j98bxGgvhcEEJ0uxUZvQOMhB+fSXmkZC4xcFXU+JjmxtfI9y8FC1tXdrDk2hi10vCslgCme0i3o2B3pbUX1XBlzVK+r5UXnuJqbLBVelNFr0dQT7j8eT5hQjE+jTGq3AWuTkESxcbnANqjU2AQlQsHathheLwSgEwq4F5zdhY9PeYpg6X1v9DnmV2h4WuFHQr558N4bECB5oO4OX1ToBZ/4iWjaa/Uncm5USp1BZ/ZNdrRGKW/ZiVZQrFg2D79MCLvTOAlfLKZsYqXn5sXx9rc8ZmJLSuJPq2Im+OwYldpHHRFAzzfCmr019f+c9f/2OvSor/tYptnEmJw0TEr29fnWl3v4kHN80e+kYvvrw9lq45m6v2z/Tm5ng74kjCWYwsO93ZciN6XziZ9pcnYyPQP2mKHkFSY1hvjkibPUYOuAB5yNcDpVOk2K65CPWjxmDSqkH9xCU/kBlT+AqyUHt+NNP6R3DBhTIAtbXAn7jl05ovjY+3gqoK4Jtk6+DRS9ZRQe7E546Q8q2AgQIhP6XJP1079d7UaZtzlUwAyl8aSFOYMDNBhwj4pZ6Qn9ZhGw8wnjYhBxIDG1oXFnNyTZ4KyrmaO7XEJ4GSKybHdtiGU/G9Fs30OjR3dc1dVXPZ6Q5MwfJ2TfTNG28ALIAszI8dYDzS4dWgc/KwfWACpGF2CL69wjpMXB00bm3WMSYPaYcJANNhSZ9ztsg0SCaAwLOMezbX9uGGfQwq4dzh1czMUdc3/7VtLAuR9aeHBOftgKZpcOogWpZMQ5Ol6c6Tqom8P1zSp8RLU+cB4XMCxLCQ73vo47ERu2YYzQ77i1NDzRyY7Z/EhCxvS6Jv3tAgYAEk4S+fLz6QfB4NlTzMg+QgEh8xWPhQm7zIoNwn2QEdJTDfa8K3BKr8MOAtiO0ECFK+h0C0QlpqLIl3rKN3JTX+Qy8c3ikpL+SJTZ4WVSiAKvT4wTSSPxCS7uSTVLido/gI3Rm+xRa+48XmhDCk/JckD291QnpOu64s0kYHF3NsbsDNlpiGjQh6uNBZsFG48WFdgttNf7PJBRyvh7MJSocRRJnFT+Kqy24d5rXVLeC+rdBaD+0O5LKGHOhMA1GcDaDJBjXdo0RnqrBronJi+6SN57kzsbsRKACe9vo2RCYG8MnruwQBAFzJbufjIhIedlM2BkHJPlkdYXelOdtiQtRxTffd7G2y8P5JbXMG/IEXwvoHX2LUo5fXfbODo0Dd9/4sl4UgVq5p2933rFUwT209P7HD1Knu2vTkwRDQtb3b93Jgr82O637wxDCzP+pD0P0b4hZ4FJ538PtuQXxHNrCBt6/QHU70pvvCsfg17rwNyFzY1a/XxMsD3L4iBz9+Awi9nN1lXNYucMiBi3t0dZKd1LD9M19YNdn1hVRGbbHWy/ciA+biqmx/LtdYS9sDqPxCbJrcV027M4hGB6Q4W7LbKLvYEGtrEgShSnmADZ8r7DmdsXURhEs5J/1nzv5F6Usc+EsegZKMP3ZYTd3Z8jIGj/nqjdSH5+kY4IGuYpCF9sObMCd4Z9FLePxSDfS61opEa2yf7/cLBfXFF3gNqOUugxF8pDE7Isafqv9xs75npfBETSPz2jR8Xkc09o3CBzy1B1u1hUS0VC3RDziZrEErhOAfXTDaP+q5yBwOZcsHf0uCtzqOSaKb5ajaIk9VppOzGYLBtk1HtkFFqrgmNuxdmbO1lQ6TXTuz0s18lw3fkxIF7N8qjumTytjsd1kEmACxbg8QB+aoUPQprYc7Kl8ImK3PiiSJXV3AQ6yfFAmLA7BTLNLUb70ZzMI8KayzODFtW49E4IaUpy/LIHE8OSqnF4thuji7Nh7pjKXjox68uKYjKcDBW5Z7BvM2kPF7SGboKRZjkDHawEVk6rr2E2Md9t8cwNGNxmfZAbjGrwPAP9Nyzi/I3xS+sVH9aJtOMYRdkczeish89NJ6PvA8Z3igTFrfzyY/CCbW78VvO63k1UspHgY6hhGPyQucW+usztoIV608GHH+QYnqF4VBsi27nmXJ7u751EuiWTUdYQLtcqlsg8ChrueZzud+cZlNY2Rn3dbGMWIttHnMdzgt8wya5daIrftmJ2T8I8ycP9mRfkibJqT59kpzXM9e6QaQkiSLwuCWXqzFWPHLb1pDAXugbBbhdcB/wyrOtR7wBn6kwvmUOKvHyKr7AVEnSiuMF8VJkYPmBteMtRTzWG/QDbA8Rhq6xzHv6rWZ800uwsYWH+qXKkXsK+3THTdD0LPSAV1StbvRrsMuktLBrY60IeHAbKquGd09zG9q/n1uaLWWvh6E4J7X/L1S8H+SQR83516T54gR0HBbE5GtamxkngidOUfjkwprAyRkBu3am8wv1Gd42LqX9ym6+y9jeCNupWWy/etHdh+zjhbj05KIXr9w2IuU2tuNednZ6Ci6iD1xWE5r2Dt6uAzwYv2LNXp3+cYQBS7SN23kUC3BNdOLN1FSruMd7rLSvR6OHySwsyNVR9M4zpjHAEktSiRQYEjaLTkVihzrkEJ1PuC5JVO7Vit3Eem63WSRrt9BKx3aZ7SQBSl62SCmTW/ru+zDl8DNsgvfbmQ7fyOXlF+wK+u67P15nQsBXeDPU1gBXSBrxsAipepkx7otZ0nKUWxjc0d+ZOhkxVoOAmDd7/wv8CYJugCbNxJEdBKxtiOrSNfJT4oJeKhVn7OYvr4bveZMELDpIjZ8Njyvx3xx6V5dDtn1JYd4Wze/fr9jfR5cmCejqJASZforw770LT/tDusDSSSXt1caNYP6oPQ1jqvXmp83NhuZTh4sFMYprtPL0CutmqE3M7yAKbtIMDAAwuZlqCMRhW7mrTYztE0Chq3AMhKmIQ5TFDqQcKDQrAgpo2kxCvSs5aPUVTtmHYVxs6vGxHJO2DTVh80c/r5cBCYLKrXvPv92O7Mk2DG0baml5a3sl0c0uw3Smo7ePOPscScuxfZ2x7mdFNSTt+Fm/Ntz8E6ZPeTWa7QtkLmg5IyHqX8Z0Qnn43FL+i6Lp74yB7vw+8yhssG0rZgLJDzyZhMhyH96W/QVHnmbJ9owvw5yDwK30PyJUQSRYuXijJuWIwhmzqkSJsjzwMCMbdKoEV4msebOsIpR2IfONtP2hx4SlYjdtRMJRwjLrqyAoQgZhZxaMLxdpCuOj5uEtCOU2JAQr0TO4FmVH7rSLu/Nfp1qOQHkp7zu/YWKfEML9i6q+L8FCycw9scqwXH+4R4B/gd6nDaGBtOh/JMcdezdGmg7hN22nu5QSQu9wan+QckI1A4J125dfO8kkZOdclOaMmxBKI4/UoScBvGCFGCfwldx8ZF63Zuik+O7/YM+crY50unLPsrEUo2xgPg2nUXhNdlVyK3n/FLpknSSfp+O63yiTJPPb4h1sZPRr9tkAt3PRppHcr4v6i045WMBAOhHCR74MKeb4phkF6RAtU+eEELFjiqfFaVp8zeV05EVbepoJ3I3fH2Rk4ca5Z70qJXcx5Idet6rHKqXOBvUPNLjXYcPeyWILjadzayIU+vZJWQrbiBudqpmjmah7rcTgJta8UcbJfE8Oo4/LdQf4vCyjaV5dwt2pk2333FBntXTC+RAdBgNMBlTugoZuiObaIgJbzOLFUlNMKDbwcBGmW3r114AJobujKHbY4vL8+JOo1fMw/Kw21B0XWbPZjx0wKoQG5vampOBcUajE+rb70GgjKk+Yvmq2p5WPRYEbCzIQY+7tQlXkSok5Jy0SvMujgqewVzEr8LPd78ar7figiYItQXefnoddGFmvwnBjnvKG2mpE0LNihd2+d6HCK4wxRs3bO666Y5jC/HbCPZGQUODWc0150DdU/Kmvz0CyfEEiFQstU/kxEi5okUjIzGap1CKqrFj+quxQR317Qoqvc0rfXhgp+peU2rOALrt0+hcSWoiD1uyT31Qhms/rgy3Z8UE4H2mZ+K9XOvgec3hBB+2BSusDiEn/7b6EeumhBjrE6FH4x2tUNuxpy0jpg0G34yMyVFVE0vKW1pdE6/yTHaYjrzGyM11PTmmZCztBiHz+gwoI3GctA/fHe0DPeJqXD/Eaj2tVyZqpzc8z15j/11IOVZkh2LAowFRQoUrQlyM4T4BlwrXGvjzuMUcxBq46jJ8M61iaZXXvodcCw5lSIpGqfJNG5DITd+newdg+mGMgY2ldaIdk/OChBBPlD8YM0w8X9bNY5P9YzkS7pDdMzN4JnmDJUKiHh/W47URXQTx+PU+mp6fF7GQBSV3X4eh9opuyvQEEGVhabroFeqseexiZcP1BalC+ihv+tuAuvcVh6MqRujVGWHlVY+aP+njtRdyd/742Yd18x8gru0Bzf/AFbP4laaPAU+odnmf7UdGmjX4+57gBMzAJLEWZ2SRwYLWs3E2BKG28cTSqr5EnsGQO+ne0CX0gRQ600MWRk60LhXInMEuGbuH0IMEVt9EkmM3nfz5h/Tbp8jPLoW3mdZIfgpXuz/OES+Ez0DxD54KTwkVA559Ymc1QNEJ0yk3T2vvDvnxmOom4WN9LdwVolw7LVyXFJgne0hto7yo+v0zOL18u8a5PYl9rmauJzB2DmLXit9AUC3dz682WNUK6QM4z/aSDboM19DqDj8prRFo2MQU7gbgIuyIqelNV2Afq8025cRzV81zbwptA2E1K3npbZ/R3+Z6txkzhJg9hX2Xg5g6oXAUgMmwai6kG9zCbvpW9yiI3JwzEwxeqgeOVUqGhnCths4XQhIfgPonGvXXN9jO+z+9OPQu7Pw6wL+KV+2sq1o1XvjBXjQK4YCnoZEaqGwSewV9cDKG2QUiZPlCC66QQG1EXlMoH87H2gBKXmhgBgc2IbMox9JUz1t/rhvxoEQeeIhX22uGQkJLqYDmkef1rylXHN4Hl8cFJpZluXn/N62bBwiLdm3Gf1nbkL39Xb6mh/lHrnxGaIyeAnVHIOWzP7jH/9oBu4PVD11HxcTeBA4ZIEVQDN0dxY9CIr5xc1CWl/b6Bt8CughdwqV4byJixPyHGpqRhn1wHEWvmnpo/63qIF+4fBN5eUg+dhLM+rX1aFa4CwYhsr1yAcz5lMvYiD/aeR/DDMTJXb0StxFYW7UQJJ6dVisloRNud7NI9OxIsplW3WxrHLS/I4e0D7KzDzuFj0gp7Gt7BmrydS0oEDBIk8ed6Qh8Svqu7LCEXGgITgkYu1omdepZO4jpM1y8Cx9yxCd80Jt+dNadoMNnq94fq3ngyJL7M0pNjGARSjQ2+MRcs3mjjV28nbYu0aXNN2EQ1j0BkfvhM5O38jsmlV1olACm2jvrkpVmjRQXMsIrm00Z6J8pQcWkuFk8pk3pIx/UKMqb1OC8BShbmJMLycPui2yqpB7t98ieVNnaJyNhSrJ6B8MnJdf+X8A6m/KoqBB9GXOO5RIuLXpeuGHsCaNIKqDzY/cyvYkpizm0Bs9Mx3zDf0VAUujMwLKsRARBR3ZC+0/84Z6yKUkYfE5UZTPNegVnY42llTED0Q3QGcyTQyxx/Phu47Idaq11oKpKqNhn8FXO1e/1tS68n7kSJL3SsCoI0QL7Nml8MkrjJ8s6dd0B+waIbF+eJRtczq/YKeldjB29FiQuGmy5wovwxpp28FANhqsDnKZlIqmmwY7qqgCXdt3W7m+BcnQ0HOfiUca+gmmK6987EqVYiUZvBxk1rtK/3ePz0CDHgFdcheThDYO5D4d9Xm00FtlWdcOfmGLQC99mnCS6YMS74nGO+PRHYnennd4WNsPos1hG6cLf1NBHlZakfuR+KEEzix0+fNUPEaAq4oruwPkfluZcd5Ud+ZHlI8E29lmusGDit5vRCfEpwFZyXC53yhklSJJj1jtfaWqxg9p24QanqCBHf64TS4JGhhgNhq+dSZ79xXMAY4zxF0DJ0zGj/iM4lp8X6E+sIMFg2I1Ha2dtNDN7wYswZGhkAaXsIVR91Pis0h7D+J450/+LjPxfkcLIcerasbIwUnXuOT833bG41b1wXgJQpZi5RqJnefYchwiWNJZo3HLgEVvoBeqzwjataxqaeY6+oIS7WQPBf8ceynepkOtaMfcZa0DBjD3f8QtBH7uPSKY/YKtRxcyXQehYdMQGRKChm+zdqdYD6drqXKQxBXFMnd1129J5txSYvUJCcZcVzIRkBtvN4ID5CH7Ye/1v40zezSVmVgPk6i9Y7NYGzObgxXVdBS2PE6/ntNOWPDkyjj855LiSQp3vUxclP1kDpnnqgnd2n1jvjHrsPW2JSSTr3raPEkkto5N4MpLVkYlg66yiLuDhlpnB6Rf23s0eTAlXe1deWzBrNsIonLjA+Msfe3uu5/yz4d9NjXs7OrpdpZVTm3/KL4Fi6hbU1hP7/1pFN+CNaRl0oNKj6c/lEUf9FXwcNH0fivek+ZFCaKD2Puvs+cIv8/MFSw/H4XDC7S82fozrTCgxT46V/ZbkXxW3QnRgp0X3TOHo9ndNtxr6zDATD65HD41HnwddhHgPyzpufE9oKXA95eoYTw0YTX3I165s3uk3qpzO7vTgq7Cezdo3u7H3SWYj6Oy7YjLpGkSfnY3cAya7xDhODH0CwPWGYW3vYs6GCEplXXJynCFhfncYed5LIfoMraajiE5j/RpCOZ2d6kUVE0nlP5V3xcBUc5iZWXT+WYA5lFtWWrKVGSnOA+KHLFkKRNph1gFYtAdi5jzMISQyB1uENh4Wud6lP+C3lIgv8vs+yCIkok2erkDQPUqZKCufXZjXl/R2JWp/x0MscafqmYfmxcMM+yLFZBEtEhUTA229DzdBQsjUq/bQq5FLwhLes77S0bOffOojKHm18lM1B0avXNSx8lC09ewHlB5Yn7FR2yABSy7mW6/0ukHpYCwto3o0eXE1x4YqUgYMA3HcXXjonBeomjCz0SM1F3jaEwFgUTN6P1iPiwUl8pmLXuEfZPs8m/1yvkzjIS/8hIXj9yOkeG6nvuPYL36SOUPxxL8vBvr4jvOGZqg+k01ryA6n4Dl9r5fgQUeXXsyI6Q3GHRE5DX1iBj2URDP1LdNNLC0cN3nWryAth8/dvSoR5OXii7HzgcgpXwgCI49maPtkzzirMRjvOWvrY6JAWbKCN/X6YuMTd/0WCospXTvFhBv2yHEauQFT+v15MCc8MP2obOJ7uav5rz7pRhPH7DXMAD0nZMdZzeswHJULRb3qn9UMya4ic53f8jh8+rnQaQsZYvqqhWBiPtgzfqKHSTxDmGZ98dSmQac+0E/Kbh5aJlDAFzgurXcGD0qyP7lAEGleMaQ3Ya93s758YcfxC0raG+pVYq1aJxXwnuGKZy0buDwyD6JveUOrH6HPduqJh8EaqQMTHjYBPUObMIhAEsvoDf/gIqVRsLX+hkgP0gegTvG2fgza8UNjzY0JNpP8CGxvN9EHVOWRecOu07qYjWm+1i+C3e5h0ZcHc7ZykgLd2dAxvNnj0wDFx8fjZP81nUc7pFJBt26D6XGswbqh6f7+ASVv/3Ubyho2SuH2HIUmrUNeWkscFGSDh6C1tKhiPfEXSSjO9NzcvyyAyLCTcMvgs7DLc2QFP5RWsutuXqojBdaKi6PTMUtYZ6G06jC6nmfd1Z51cCvn3r8fSRVAMRk5J90n7cdx/1WrgLOuv4Abf/ZFDyFZs2kkWWAQWbOJXqihLqPurH9KR+gPKZhoq3v3EEBX0prEP+J57PZCx9aQiZA4edHuejdm8EOkzATPSMBuO3lNbycsnYcSlidnRru23GJr2vxMI6WJy8U+kCxgbU45tNmUhE2XToJhWGqUJYCf14Yg2ufslL0uHqC+e05PDJe2bItAVh6nLmktd72zvjs7c/Wiw0u+2OUnFql/St2nbfnjeeYgWxpQYzVcYcFjLtcZUbbR4fNlCQI4uEV/9zaqQ+21iCNb4jMLlAeCMpBEf5moKNBB0Bbzcgc92eYa51S1eVWX7PHznZmagQZaLGrzAfGBD8b1aGdHc/civcWeAmS0trOx8uL91Yh9ouhw5TN6genQgc6NIsgo1yVkpmcfkeTNyBMJPe/8emqn3+9whAUFEiIS7Vvh5prI9hptL/0qYFr9djRSpqYXUPN99+2HofSJrb0UoLWU4ebxxlKHeOP17fvHGfYmvOuPrP2f9ZEfDWkZA/X55DimFmccjo/xT2Px9Hn1AmQK1FaOM8ea/Vmt28ViXPfSZEospmpqiiSwRyYFKVYPdXLTHmVBh2XVXNQqZlFphd/UKrDX78UBHfx5x8IDC5tpGzyBQyAZY4hUyzi0mbjmrQ8GDy1GvIHnIx7iwmMCs1pylSVmC8VXyqa1MQP1ldcQwaKtCP1YZVMTC2FcaRdTOO4VMwPtIk38ZNtsZ6X0ycGhHu3I3Ggg5rOT2YWYwUaXnlfvN0cnzIjh+c5pdMm4iw0AfIdkS5v8crUE1J+W9aw4bkwS75zkAnAOJeP9GgU+DAPfugUDiK4sIOA/U1yCZgBIC9oVFeLmvGQ82HyJNx8wBJn3IUiwQTzQLw0wKA5mIaAQbjGxixzc2A/vKXJdSjcpEED3whbxX6gfbBt4I2rwXH4HCvC8t3Vcv9vq5gIZ4QxHnla6msV6JE7VhG885xxpPKiCLTyaOiUDQHnjxbC6IcV2I+dvUTYe/ApfISjAQDbx8ZsJlDDL/SODxAsl4zjpWJCGxcsmeQQsqxlT/OmBsZojLYcl6VvxBl2zxRebDMzdJIcuHK9TDTPUUahIGuecu2Fxwse5kAAHXrpu5Q6NnwDWDJ2W7YsWUtddpOC9i9SLUDqQVBpKn0x9JMp4Zy2mFkmbOR1eEjwgdn89ruTmfjwxW/OhNG9+QtTivnf3ny+GidZOjsIqrg99nEqM6+W7eDSY/2+EXrUb5tG/19rElz6lT/79OXt5Y4cwYkgfQsHqXvSqM9NKIwjcVKj6MBgvSz0STiNUY7NxEHdnzkAB13FyQdoCP8Jffn9jf9TSE7b3lwIF5UHCR4zK7dG3y1/y6YXVWrJC4ExaEsNOXuK1bbYj4mCpK5DGHDZ6N5muGM9WWp5Os3sbhfRvTCMTMp5QNvZQpPvBZfVbU+er1PFlduxoZvXrALyWjaEKbYnauhhgiBrLaruYBGo3Q32QS/zktf3XuuVXMTwtblizX+FYAg6LOVpH/370FSX84h/ifOPgr5nSxGTthwf5/PDG30CR+pHc/JUGysZAY746uwwWk7pb40PjyqiKsKu/FCkXcPI6Lv58DcdPswzcQsj25Cq/Ws5APigZq9nWJ1B7niO3maAXdQP5nEMgcS8vBwcS5ZdkSqps7JYAVRvvA+YMYkInx/91waPoWjA55hafxqAfcJssweZtKgcv4obnAZT12zU1n0Cj/Wk+nuk/mW6kG1JZqkz3CssAXAPGCeW1TlDazXEOtD0iyZztUEDP6dUx815pxJp13ecHYvRcEoMxCM54k5VyoaNxoOIGpjnLNATz3RbhZgbR+sWH6OsWtZi59GlCg6CSLKqI6ROXhrjdih07LsZsEJjfrMqCrLMb2tMjvgwEj4Tx54NgCjq8y1XsaB6r0ckYEYMcsL9kn0AMC1lamRohB8i8oqL4h7ltOk5Ki1+z5HO5sfmg4fKa92W8zBywLK5mmd8IkmYpcCNTXHFMsyJEbeTmUx9LxBuEyUdSzOJQkqm9PybiQTa4FlKff2w3o3+mLF8iy0Q0krJ3/ruj34N4zi7sSJm6rKx1+YlTHZAatAnp3nfNKSGbEo4XVKh/HnEVDfdrAX0UX6qq8UlO0Mj5BJLjoSaThtSCOFuT7xAEspnjUePz4n30ZZbgdMG+4dJKh7UZ241lAZ/lcgRQBX3QxNIm/rA33gz711wBwBqpolGwHyXs/2VNTgLTwxq8c/nldrcXa7R8e/4Mt/+v8yOms11xumpAgt5R2i8v19/s8dXzFPjzZe/L7c1vPpF5uft8KZ1U31Q6Qna+NCtSI9L07Rl4NN/xjCaCUQQXX5qH3We4rREgEGQb+T1kZsZ9SDxkSNTIb2gxopgOaK2uAsooI/1lY00UC0jw+TwlBI9JqGW4dQTDIssMWPKv1MbZ19tm0YcvvzU+ed4RGKM1Tjk6dyKSf11XJ/GRvk+nrnn7lBDjdaP87nqxZv3c33jP4Hr7piONl19LqMWKbB+NocWhjAkdReVwfi5OvCKd4fl5+3JS2yAj9nytQ2yaZrRprFGLPUOUDjEBuLgx50pc9/V0/uXchBimuvGSBYF3t+lRW05CO0mDAjGclTEz7NxN7uaeQqly2QChUAdtRz1uPNPtEX4xhe6HcNTYLaBY6iZqXuix/HUiutMomtscUhpnRtcUUho9Cp6pA+hdIUemrPf/rwEixmQ3zPNPpYQSBvMfm830GihXnP2KQ0cMAjFYxeyDhsyH0olcoGKfrohozo+XP7fUb4DuZxAGFsO4gilVTqhMXl5dpKRw1MI8bIhOOOoT9J6B89nlpYt1eCbM+UpStILE0e5GxUOh2HPjihqhEPP3vrcVFXH+ol6TC+SJTUeAZI+Ez096llNmE1gaTIzQpjW74sU8QWi2qQDPxOcFlA0TNu3KZbw5zC+PAZVpNiphKJgmqXvlX6aWv2vZfBwRGPNNAFZpsrGaHhl2XSbzHuOTIN5iqgAnbPGm7BBZ9u1zzN/BbT6cBWSJhoFBQ8HR+QYUdPpoV3lqXVnrHrPWvTLPOjSjz2VawBH8lk9auYUvdJ7lf9BxE74Ocp89cFIk/VfHPOkhM5UzL1GX2Qg8Mbq9xq6w7pZ6OE3mc3Y+bCsw7Ms3TBdQeAYtOzv2Wab5u5Wxr/wseMZUQIkLNduZTsb1Z45PJ66OdL4RsNzipGomJ6tJxcc5n0jMtkHY909tMEex5O7OjycCEZpktMiH2Y9RlVxMonN1i8SVeVz/sasSvuIsDu1gdrTTA2WNcrEpgTtTiz1FACRO/Q/ToVRUQED4wZkaG4zdwu3wFJlfR7gfwLvWXskDkebb6ToGgPkTm0GG6yhY+UNKEDslKn0J8pgy1fk9Vx8G9VPO/Fo5y2B/AuqqEJcXDL8/EnIu14qAS/1zz3VWfk54z5/8u2PS8vFjyBiiHfvxjcTq+HZrF8b1+Zu7mJBE56lkdI4F51jORmAgvW7+koe8SlwuM/2dWWeUtp6SaSqwZpIH+GTuqy4EvPTdKYUmW5jaheU8SlydmlME7KxkV9vTQuCmNed85qWzsA4JhlysrS+qPRhcFGfl9DBtz9/0F/C4i7g7Kb4A4ic/JsWyrXwI8LmBZD8q7/EmABiefZ264C9sZO8CiFD0YHRvkkiny1ydmos5MybMGjqv8e+u0Gb0kF3Hn8k+hatZx/Dn9Fyf3nw5vTFy5fNwAin668lnEiWKmOMM6bEHXXt74jtF/dQH2rVEf24BfgvUJ+T+F73u9YJJv9jn/utgS7Z/vvk8Ef7fqkc6Fp3kAM8vkBCiB9SIgLjutUEJArxbrUmhdJb7fPV7R59Y7cBfVuHV9onF9voQanRxIgbZOl5qpJSQN3dImfoY/6LwOL7RjZQ2hqOHeWgON3e+1l/6nu1ouUWPhnKLLvvWbVAzzbzdvtsJFG2DZxsIZsEBJeAjqSz/6qYZDHwZ4atwjhHqY2HDnprEFn8cxlLDwMEtiGZo/1sOvLiBOMRmzsEVPOC4P/NU3g+Iz2LI72offSOLKkrrb7BiLKYPOJ7b2xgU3BC9DGQq3UfPMvtZ8daNAxB5ccbVaQFMQEWAm0XExcJtZSES738Fx/HTEzhKgHVrkb1++XrYQ43FMIK1sJwD+PguwHhKF88ZxIp9Qe/pfWTQQl6vIHoxDEJtAL6T9ll4aNn2Z4/tZkBYmyinMCDg/qKJjvTc1XDxakL+ZGIQ1LhSdZgkFlSHoTzdIjjGaRZG8fZ1jGoy1BMF73zTeXZXIQ9VW4GVZKIiQT/AxGIPBeG1f/0b2LE1DIGGz+kD91Q+7nvZIAcRj448C+KS/7kj0fEFm0CogCDRPlqKOyGFUSp3kUxNBLSL1+mOQ47kDbDSarNgCmOjhrQerbvNxiaXvKd33Sbq/PAjo/S8UdY438pdtnGsd1epv1ZtXprLzlQ4DZS6AaAdS88aAF6QYH25to590Pt+VeJgSmyPqlDCSR6FD9JAe69ZPgBLexks3FCYPVPoMSJNHo13Fvfo+ejMi0TDDjsHB+WRJSert9Hyc/PVcHYbuxeqI7b3CdO5G5P7tF0JyJgFTrb5OvaL++Oyb317tf3w9vwowuyotABiOUY2fihVB2o9mEce8fJlVWMkqlnY5wgABWjsxmveVZtZIFlrkR9DRgD/Ykt8ZXRXVUjenq7tK/9uJlg+i9kKV+y/3EkxX4P8PtsUVGZm28exD3A+ZQyq7V3+OhoKz/yGj0M6wKFzLEyqiRglQZM+PJDgwaQ3ESqOPM8FqUV5wag/ZkIUOH+puyUcUEpd++wxaeOjgrmeIt0A1Bk2lK83j1Fobcy5xOWzae6O1ZzgMriS9G//0lwfvIim3trz/NnZKUkLwigTQJcHXSBccqv7I9l2NVLbRS4KiV6dvjtkWgmMqlX767npq7550wvH7mKgkLg8oNOA+lycdzs89SqDsn51en5VHwUe636rNxSpd9q9MFgs3k0+3Gkcdr1x/VG87PinrE/qb+zxucEmxs6OxXGI9ecoNL+iYwE+DkWi+DlvIHKhUENdOQdUgiEiM8T0Kgrg3diYT5QfUkf6CLi+3BP+lxjE6+/3pTyqKkN373ikcAxk/ol1qygHmKszwLPVGWCOG+Ir+a9UvGAjTjUq6GDv7qsUdbCnmI0cyLMAUuieoYzeqAiMMxcHaGiN4UvAZZIOFjFvMcl+B9zJvB5LKkY4uBfma8HaxRxVTKVAnuEFGddVnL1ZpeI0ZiBANDv28SsW6JtBrAI/IaCe2d9nw9oFmOVxbRMoUhCoUpmiXRW5tYiEUHgJYvWmS/kPsLDSVPrkq8knYwKANvf9RtXn1iEpTDET5HzEu2BY+74J0lWJwIqLTdlaROivFKE7KX4lrBP3imru6pp7lTT3qmjuKpqLzxW90hy6+GtJJSMCGKTROa7r02rj1OYWGDEH80sbrzTNIRPWlGqgAjjEmWWZ61PuY9WmHThxZ/OLRedTDwNeLW+o6eyCeOnEPEC+6wsRBDmJW7+M5ZP5h/g6jX+snj5cnc4pl1r7qPFNwF16u47tQLTe/aw7Tx+dPruvou/hM8JmwNeuXP0bK9bjfVUp2CdLCuA3d2v1r6/PbzPh50S7nuPxEvIXZ/RwV/equuArZFFw6Vl8U/PC0OSOXn9Ek2VNesyz76AT4A0s5XGiQ4E42zz/7LnQnoKzXMbtSxs/6gMg3p8HZA6T+tnY45HlaWWedvMsjpMmRChFJrSgM3wKbXru8CeT3RGXdnOUkPdb3SXx89vZ3L8VyeyC4X6QxRPH8FDr5oyDa33pdJX8r1BxxfVe6lIUkfFNX2ydM7+ca4ZeUPiZkTCBfq6Z0Ae54MVjdVpKugwKak23AJ/JhryACFWDfsCzr51FCYOgwV5RjSxGvQWCVFX0B1i8VayTyvCbYgYytkb2K5vXQ2Hkd28r3prNxN1m/9TK4e6Cv4AKKMBj4XysZusWfn3d1AstW0k6vK6Os9bOpxDMY23m1xN8mTZz7keMyb9jwdu8IZmqKYOsfd1UFzIVr5j5jKspStafj6yr+BCozCMlhUb9DcnVN/wmSVmJBNhHrtAiWMzZRKZeKpxBWdxdyuiyjLDHDxxgtAEhK7cBD/zZPFStlAfh2niQTeftN19YaXFYyCvZFUCV67YVubUIQCgXoN4Win+6t/qUxq1YTX4ZGyBAn34bifrcB8mKCwFEed/jM/OvtBxc/NUUASOmehbbbzVQn3MbpzbTwJjRV/orpqQY+KsEP0W+dMV1AcapB8DIg/yc6RVdxPFcR+1YScaDtGqw8LtNs1vssnUgRFe6GwAp7Xb+x05b6WGesGM95eATA8z7ttHqD/8oXWFB+FQ2qPlh0ObVBf4RTnQ2uIOFtCCd6S0k+V5OzuZqfHcOhxHNoFhkrpqAnsHUHyY2vapjM+Z9K2rxw+RGsrvEv2WVZJnM14ziKDx+MGKwHArn8F7rjaJvV342cLxYz97lXFnWWAgjenicFt99Beb5r1nMvP6cxvSTfa4tYpiz/rinF/pea8mvsYEKeFlJdlyPBIJ6Cfp9Kb/Q80qTGqBfSWptQgBGjs+eXJ9jj6Y00UyR8ZKXJq53EBixV5AR6jqnQas7T8GPfr809cEAzryAAERn6BWzoSVaqXfMxPGtj8/kCy2uQKIXL7rQ0RtPGdyeRUcjyfFfe0982h6OCBZthT+kc2owe61fuROEo7aDusSytd41Yt8k5EjwvqqO0QSVlpkfJLtan3HvjuWBBgn7MeudTqPpLg6+aEO9usV9JIg1VxbNxEWWcLpYavBQ8l4rd8vDdcZ69/OdjtysW637Ay6V86DJa5ZMp0wnL2IbB4N/Yj9c3ElRcfhitE6aTEoTNgxk9LJEdZqtVID2d97KRTaEgCW3ILrYJB3ZQjlV08p4m3BTDi9AfabMWDgVg0SYAnlPy7gdvBtDC2kqlpYLOJ5qCNfxJSPr5/Ok6Tq6glLj/MCHqLln5MfUJh6wj76pWLfn5cR9zqybZHhNuyM1/cIevEHeFx+mXChv4lM66RqHfej0Xs3I2ShfiWDwT5MXu/6ohRXnAn6SaOg8lxOwkVF8DSYVn8oToHJL8OfmNwiIak9WOZFJwz6o+RPnDGJi36lUC1/Yw0uZN1wVilHoF/kzayl5aHdClskJt9pF3q7CJm1WvtgUrkufG+deJtZ2oTiYfqYEWm+Bww9y0spxdAY3EnN7kjvyuajl3oAmOzOb0YJYv2nH39Q3cdKMbqH47lQFaXpK6fGO88IHiOoPR97VK+1H7v3D+KH7u++cEhWhZWHiPlMZKBf0hfFr4X9JhmlBGZrYNtuU8WmcY952wa8R9VtgjkcCZVMNmFz8bBcc0v/slO8/cSq6Psfxt8DVOkZiv6W1IMP5H6mOwitwkdQh0XYkqHlMf9HRjPlomwuyWjRuAdHBRoepY2sXFbK2mwnRuRR0G28dbFzaJhZWZqeXOlNj+2QvYGnpmKkXWQ0DGyFJrtFG+rGceJRpUQA2NEWUTJPvc463oB6fReT+KXdilC5SQ1aganEqVjb9NA6+zQIrAuLn8QHlcicr2tZh3HeChWNbJsxaaPMz92pw/y28fD02nflD3SGYo0GW5cHiavxcBvF8ggyZyq0rouScyoMnULlXsOT2G+Pz/IGdk4H1c8rjqqM+M0axKBVIqj8gjb9UkU/D6zL86qgQBMXvsS/zg+J1xTJRC8QTa38qhSHXMyPCPbSY1uezc8BRrM1d4je2679gDYl/g5sbe2yC8BWNGCYG7omhem0BOj/5loREfGsVRjhSfmzMa1NI3vyEd79Vd2403pXtd8y6k93kEmFo0r4pZwEDAGzOyp/PDA1PKfylHWZt5S7D25qFv7mLFdmEmAVamd8lJYFKq5lkUs3+1iu6wZx0Kl6NSHETqWS514BGC+pEU7l9YQBL0snBXGsypiJKNXVXjwR42TrSqvz80rPOy4Z0Kh98GT1IB8g8EalyKm8tI4zUk07k8s1rX0uMlHKY1cKLzpx0ohkfhg9WsojUCD7sM2CKSCnDXas3UAFhTY5Ry0m1aXk1FalUsw83BLQmk56ZugeE2FCvguGZe0RVwDQVaHVu56mJGbMRqZrwxfwsMglUgM8G6BSx5JFSjqMfkjSelxSp7wfwoPfgl4NIPcnK2wt5dgpIykgrQ381IwPLpsao9Soghod1ZNSTvw4jgw2Z5HJkQyXNmZNO5HL3FnkvAsGBZbJxB5hkHecKAKu9s44Tm3dePpGt9nUVXkOP+MYI+Xx4sY9/96WFgnY/+kt597eWizdV8sRMRhX8xd0/9N296dyT3f6Pr5XzNw/s6cDw+fD10VhaxcMoltFFhnWbhmZrSbBhCU9/JSZLrl0xHIgaEoCAgvCh6L2OUyXgDqyRC7qK08TCXYMfF7BbseGXvulhVw15MyCT2Gy+bHEPug5UXmFltEHNVTpWAQOU9xUC+BjePtZIhl7yLAMH5TBn3Cjcrlm8vzpGViukl6cytD0xRpWu8UkQgX6MLqVON3rkbLLE4tnLY3xRqkfdGF8ePhqN8dVNIDWVULZEvdHXbEoZgj7GN/KZqpSej/FtaaFEG4taDoL+vzxZZNY+BCjHJugHaCLV0OJDffZIqLz38vFkj9VMyZp0v9r+nIdM3MhzmRb127Ec4LfjHDBvJ2UHtOyJi1XxashKo1gvTO4dbktKF2G4FvvnPon82Obia0fw41V4cqBRZ8xB5hYKFPVFuqyG9gxCnrxbtZG7FWKGh7CKANmB77vVkR53cNIDyi6htGf75akyOS339eLCW847lcTCqqjGBkLC2l98NRyRnY0WHm+CmFuf9b6STuLRDk9kk4HLXyjTXGXnkGtqTCFTMqvh1sFDou5Uijrk5idyyg3pILlXmzs6Mh0Um7sfAIiYCyGpbZ5zxXTkpHxmS4nluKu22AOf3ifMPpbz3vWVmgrZe7u0QuQkhoyE5gRwfloL5nlIyxf6vuLcnVDCHXX+sKqx6Wna9+f1oXKvNH7TG3qLy9SH+VaoALf56QY88c1jUWGjcVVCION+IpdgYM0uuDJ9vVy6vfsVYq467JlkViFI+xIu3u3frhy9W1343apho7bzwxKTsxCUoA6omPnqtwZuweVhIlwJzdFpRT+rqoW7vU0Bwn2KD1cO4XK3Otg5rf65qaL6hDdmeB4Sm68D0NoLSWz0dryD3Z/uSdI1XRBQI+mBpg+XlOjExTiGmxoU8heVJ12jn92snsD5X1EpTZ+QFXVzAMxqnmFG8Q/BSO2UL4HBNUX4uVDuuUFArOMn9rwWoHhVhFyhwPYsMLSuQ2S4iw3W6F6GYbydCagP7ZjRNyKH96Ysyb7jszyQUQCkiZPeYY5AVgu64YN8ygdfF2dOVymwSLqiacrIcOz16ZcqKdxg9+VPmrzbrx0X1e+uoz8sygVLgMiLunayEND3rg+ThrP9MlJ/4cXbHC8nM5T0Wo7j+9OEtAmzkeOzTC/gUCIhRYCt4NV6TP9k8ZQsIKgQ+PZJ02Uxfar8wC5LSOXxQSWUCnb5IBjoUFC+fQqFWU0Pks2Wg1a/KOq2y6lqg9V8zQH2SrcXDf87ziPttf3o42Aicz9Pmgl6tBQnnrarZkK3OULwqAxTL6Rsklmf1mmpjCMtjTNyPxtswrTv/D1KXdS5tJw3DkIBHX/DWFBOl84JEfLxm1nUM5PDZvM5RvtBfv2kFPO90ObQt/nwh6R4oaQ27R5SLhi8LplUieF3+ECR/lOsELxCDyz/Ansx/Kfddr/sgTfOroQNTwPwGvdv1vwzIZv3JHomna9gE9zgUHRvS76Fc/4zIoG0M4hvFl5BcRvgNcBzC4281ELtzwJTPPpaTc2CLuJF7ohQy81dZn0Y9xLZSv2ENBRjlrZGGiBJQJKkkbQ2kpCkESSpB0kcZGInuwZqiP1RQsLpyYz3yGVHMUb/MPEJSFIgSQ/zCGA8k6EieZM9+GK+uuP7dGOX0dUbxQyf/qioA96LK0lMX32AN+crwF/NYEnu/IL48wT5xub1KVQ3rp7T0jXuAi5SXHIssLgc/4wT4bwGIvLROirtrlKzSTMK3m3Vji918fnyiMTBNIqv+GS8eH8I/7y1ztVeSLzkGWIYUNNcpp4lQWhE5vhH3vLE6jPqY7/bRYfJ4OtJSqR2jcTltPy+uL003pJV9giuFBg92FeMmLnxd3M3DmWCuNB0MqxB3laTdPgEasP82rKmhXZQJSyWoBjoeYQgz+ztcs57hauv3MNf6/BH3jMTdiR9sCeBr1hKfyJBOEkDfSS2WNFVYx0TCYO9PlKpx4F8jGQWq7Gua00XyyRlMYCT076/hYtp4L+aeiKmjEXJFTEZS5J6una0/ynWLwsQ5JbxzUt6ztjpS7XdBoVrQz+NRM0le54+dqrYeGwJDqGwLuSWYXmfiefz4Y8OLH/On5ol+zFiNYtCUnMN+riBOVX2xHhUyQm+8Q8D5ywo9JuTNmUZkOqBMfrKsqgDOURnq+sYMVvfgdM7ytH+ELz+qw+woDrSl5AokBVgOcFRbCMeQ9bpURzYxyK3fkl4CxJgmEeKJZa4X7YitntD/mno1D1AeUHvZvR42UBSpqVNVHPopAIQIUh9L51TIFOeIBxFcYOQntuDFdqPXQUoqBTBUeq7IWWJd2OZUD9GSeizDKtUx7oMl/5lqyEngIXcZYDFGDPvL7KTVx4jflrVc04NwWd7cerof4rauclnHRa/x3lBNo/NxrCtPBIAflflAUCOOdr0r04VAYMOpJS6cC7I6THEKYYQ0GAtqUR7kRh9MsWkzSJS3PbsyY5uYNtzoh1gJwCaiqHbO1jC2pnHS/NLit3OP7Zyn03oF/WJdtG53j+u1xv57jFYI2DiyBJNUyGb5o9gAU9rmRJkgNSxkTYPZEtwFWQR8VYQNOanGaNDPMF2ccCyesG3JtW8tjTYmy4DBqYyYzQ83MbC3Qos/+aruHCxh+MJYtN0k9ywVMGjeRCNO8pZaWPp0UqCBMzUV10bKogpXap6Q6X3DlzoHwRlfCdZm8dFBeCCcItiaBm3a4Ttbt/QVBEMvD1KHbn6ST6kBBT1kkXcFTa5Yu86CQ6Xg3jVbx7SAzCrKKk3OIPzOFSN94Q6fUjNAHn4mDWFfo/syH7Yn2gQhtG+XGvJ8u55ekCDxN8RrieM90HIXv7/al4JLqKPqoOfZbM2f4qRofxVncDB+0g3XT1swtojOz9z4dkZgvStHOjwOj8VBK0XY33P0ZB0dLyHSb1Pm7/wfTaiLyyoDeS4w7CSocZoFzPSz3DQuIOh0bzdMANH8HqZXtSQHMLuuFi/JHN86EeQ9ck0Vo3C+oOAGOfQw0H86JkPPkB0hhKB4kdtyn4CXAa0EVhqc9gmxQFyBrESDRjw4HpyNHdoaH6N/DxSAKzWT75KbBulImMSSPGufOcd9WuflaY9qMlHCyNeWKVFMHC+WdnkU5L47E+p6w2uRU52H7FlCIv4VmF/bfkTz5K9C8b+YUnU7Zybv1vHtqH1B+iRvwT3q4fYVuPzxdU7P/BoLkInBnw4ThLFJ4XCj15yuIOvMcXkF8qjBL9/Qem7CJ1DjJa1d6e/2NHqFFLLOB98wIKU7FaBvPwPwBLSkAKmy78WGbgQ61dT6GDvS98/UyB1EiRJF7yVoh5cX7cTKTFK7yX5h8uAwpkJXytnbcJaVfdt7PnNX9NPKy8fCOBuNE0ttyBHJDc3PJTC/rpQTgl+NYnuoNMJfIguoynM9mDvyCP862dCmgeImzVWjSAka+J/dzAo50ShV7nHHwquH7zUujaQMK9xEC/m808ucJW9OR3ww7HWn/e2yb3uxrPP5+dXUWXh7XLZZKv6jlE+JaitXVlaAejmF86/RsulvPVmDTSTKCAySZkCCMaaFBP3RAJ68WTAi1LsK5WGe0N3DGJRNRX6GwgMb3sRwx54dleeTWPEaGmjOnzJ99DqpsezibWzgs182QAyu12eqxk7w62ng5Oqk1eFY4rZLISVFQZdbA51FNHgKeLDzuUIY2zPVMFCimUfMK7jYHdv8TDStw6WRH7ia7OGcLCc0j1DqpUCvU14kootu6pC8g+pMOlIjaA0StT2x31SVfjBigfzdfufBMIbnLEE7qQqTznbBCXb4wkbWg+vydsDlgULcbdNBgBCFA+o7vKsGMFez/eeBuE7DhA6KRsedwoiYjT3//qRYIDbAs8ZSQdcBNCehcU8k3sr2f3thCsrbk0NFbPdwZdmMv86R5Wc/mHwrnkaphvR3i5pBPofXAgxtGjePiaZjNtzAuYkVoHTn23hcNOWYeGfp320Mg/paRJtLFbIJ+mP2DLVKZTw/ETt1HR9dckn14F8X+mgjFOHUr20CfOc37GDayDWjtCK3YtrVXD2VrxbleYB7hdxxv0m1edqVQhkoo4MbG9Qy0EzwX2JYOqRR0wO/pa3365rkaXiDpVmm1Mym+ooXDFSM3wNWQ3VVGlS+Ef02BMCzxPKwYuAbTg97rDNsoHYsWSdHjMzTCZoWLkCR1+F0ZwHTbJH0s+S3p89iZoYebZy1NkXWq3Cs/ZkXw3aEHL3Sbe6GR2Azbcs+Mez+wQ20eYNrm/oeutsIw8CQTmEs/9B69XlrgCHKnswuO74aQs5KNSQkihlDdMVts3SC4RSv1UxrrY8jSYm6p7/qfklul9J+4zwZ1yD98oVPRJo7J030XuaWOMYG4Rpz0OehLJRpvXnzEB9tpj0271OIZfbNI97tYBbEltwOxLZqOUN3G3YjGb/3lY3p2ia1U1eCbYwKdsAQtv5K8bkJmWZSbWLBdeNOhCCD1DCGFtiCJMzKL9GcwbN1ITC1oY0JRFb+pXu+YO9OMwg6pAi/GeBO0QNpCFmx5oNvD4hKfBUg4ipiHYaNWJIZ6SMvJjdoTyhUTzjFAzlr5yc4AuuW5vWBrSuSav6WurbRGrXoi0Ybo9I3/xmYQD2WnvNCJv9CFAVtQtpg6AaCILbvHkBZGU77nWBbpt3NNCg0BL+hzGNHqbZMJIKvxkihctAzqOEAhIQ2w4jbFYFkj3GVK2ldY0COKSmTaCJfAbqlZd3MU0DxhCSkunCso8Fyc60olzZqV9FPFlig6hmSwX9toWWtje7uZBHrwzSBbOor+yRPBajv0bU8/NkEzk6ezvCVssM5t07rzEncq0k4gMX5a2m9bloaVluwXxXYJ8pC3fzp+yLw3rnUQvdjBuXUahF05Kl0jsb9zuzNb0CoEU4aZY+7hxxWBTNyNiWBK8u3SAqhbSM4Dm4DxMr0sU1q/LRTd9TvWjYeREztNpoULAPK399xR7EaNgDavLgc8r3BdgXgjwCMbcTjoY4mIA51NuZt5uifOEGThT+nM/0VmxW2ht4zk1Ch2b/5rtZkeEemEQNOXIwhNY5SS0BoG6HTlZpDm6Q9SbzRhFyFTDYzeJCiwUPvQWrmCV71gE5FfN7Gw4oz+4+3NNJOq9wcoeh5VVuxTdxC1AaMlnG7lXgq6kaYcO7vh9dfShIzihyp+9MkyFLosxEsfhJ73efkkP8BCfSTEHgSmbb/e+RnHNn1AU3NiYhiJqM2ox6uZtWU8CIbYnAgsSiYUekZ1OcPGwb2SFchzBNaciCIj6eLq6kaoB2v0FJDFnsmLsRo6CCGhpqd5w7Sz+WBcO4pxl/RpYCzfVCd6F4bTFZxCFpYePOTGEjOtti/JG301wTomhltdnF50tUWWzVG+TU5MXH4R3ApVQ8rTVYeCeG1pYphnktpeXsxL8Qj1PNYOzkNLGOAcPeL+IC3hD+0aD4pRp2HfBbEWSRI+65CC55i3kgdWoF1VIYM5dKPRp20eNIVM7YVBA644M8M2hA4FoDFyPt2DhI3nRTCMOCTl+7A79q6QxfZwCy7SaGgUip0q9g7yHwqM4gfUS3sKeMsspltlHd721DwFYXk1EoWqjW9hxpFmOFsGX3FA1iJJCnXczKqNxJ2khknbF27nHdmw6SoJKmKtSxvE1KEOeY4TnOIzaEnYUnwo0nQZJf4ij7lrvsj7TQuBY2WmybOTCijfg4dwzjMaAkBVGW3BFPonx3XzFilsvACdfFbdMSxKuEx/4d7Pf8P6yzTomaltFaF6llciu2qZoKm5WyfHmJENNG8GZLiKL0MTEUW4WSDLo01sfW8LHln5YlZY0jaBCHacQ9RTPuDbtTMu4YyuGTA1XRBbwurAxQCHXdQdBZESuCGFcXuU4k4S6togymJVokwNbLYgFXFA0NvyMABvHgLyqRdzDcP+G0Fn7/Pw5au1z2av/8v0fh2lDg2DH8vwPJUL8/fVhwZ8DlYHO0GNDTkdfdscnUrSkNiGhxLcpHF4QHBt00sNvYPKdZt0l54Cwn3W8bp1DcpCXC+B0mR2oX7DeBX+/UVOtn0wHWu4BL5RZm8fLVArtJvshO0wkZ7hPi9B5v3K56B7kl2yxFL1ZUUrTHjGgKtJ0ljdfqfVCc+Pdf8X+nCYR5ftvkQ6O6pZihb+1QiolVYtm7mGOLHi76nmJykrXanUb5wTPr1LklT71iIRaPUEi3LT4396VLUiQU+Oz0BxkotnOvVjX9IsgtEhQFZuLQJmRePQQtvcdNRGogiza5z039JuRJ88bQ8OLdmRrRlhwBtniaYex8/v0d9Ps79h0GqdZPDZcvMKyv3jk0ovOdVZ9hEwboBdTZ+T5Ugyg3CUiz0pujG4W9U3At4wLFJmoeT+AI4iXq6qQNSqfge8Y5LEE7n0p9RXWSiujL+LRiQF4NYa9twsU9G7QSpd76HcKRaAX6VHtz1L8pRz7b89C99FOO16q9Av0NhFhWLlKnM/Jdnf2+WWJyo5EW8O7MbGVMCjBuJs6fmaXsEyMiWiyEhuRruYvt+SOjnOlrWJedpwzoetxOw/V9wVJsNkgbW2GR00abig1dtQNtQpCTMcYhZipUHLLUfNgys5y7PO8oCyJ1r+Q8IuBUxwceR88t+uBmWf3OfBC0ecKq3nccG8w39saQYhqgAvphuRKc87tK5+JBTmcjBR23nvILAHp38GrNkH6M9yBCnUTO7dsDGetcThtLjUPj6OgdtWgI6eVJoNjW5p9YBa5f39/pp04gVUJfmSOL9R2GjRpI4H3kRcDPRF1K76S1IaJyFi9dmpl0qiofjvUj4K5GY2hYdrS6MBJzPcEg8WHf4qqzxVeN1VjWUSroCwtWs7bnQHgh7QmsFVa2tIM9sNe/fXqVNxD0eJHVmIhyu/neT0lvAMtvsmKfIGFtVOn+kKtRYuNu69wdKn9Co+bohg/Y9trycrTc+FCVG1NNXG+SN9JhEBfVrti1f6tWQkXquGquNHmjZl0SPvi7O2wQb869+yKuB3EcWJ8Wm86WctvagNNxuam5fmg7TrfW6Gu9kVb0tQxyHIzacxzlumCo1rdCMu9th//X2arOnknaan30LBteDNG2rlKCjV0RS2t/C13gRmxnuzl38js1HpBNN/W0JDUe1K1zB6SIK2oFMHaYOLHZVlRGaTdnNqQWxEmQ1zkHUc4MOLW1ljIGh8vl+LxvhjOTL7da2r3iRiYGmNvPimw4UXPGDs4/UQNqGzXKtaPYHZoMj7ym1FBiFb44wHz2vVVjEJ7phCVknmYffHkg9hh6UUfra2dHYUMfPY9ohfaLAcpNr31QqIVSKGsHra9PaGQi8GGGEEXTXWn+iqXGo0QSmXEeQjpaaOmfHwYz85W0qFnMarZ1YBvdvR9/IFHocG+tjSf8U/ygpPJAsh035bnSe2xKGgHOBCQlDLNFk8M+UrlKJiJcWxsh3SO/yE0WFFlPfgcfNmsOL9xXqocq7I1TKLdKQYiUhcBlHVjFL3YF96o34PjgSa2ob7K8Bc8YiybY79lUN1dwWcvuvyhs85YbTdlOXwlrPYXBVgtyE/5qa3Fx/73jQFo5Pyxrp6Ew1bKdv4rQ6dIt9ltoU9oDvfYycZxqzKARPJty6SBUTLtOlnBxXvCRmLh5fIywixGlI9csjIHSa9DJihVhZQmZlx/WKunFmxQVd7vXtMJwO+beG54Fy2PvbJXAq8flzDmIqZ7qCg/NWlnvLT3ngfEbI8GIq+AwNLogQa9imAodAd8O6eaWPrthCJjyqOSSjNUDHG9xiOENc+0aoQ7ZIgmrGmHabTtNr4G1K3ogtcMgSGpP4Vc6BmTErBK+dbDwLH1S5A6F8x38eXDqLOK299NBMpcc9bIhFYfIWNx3fSlnKTG5k7saeMIrU3SRVCnmHKhNdoSwIgjs8Bkn5eEbcfSwL+bM19LjzNx+QZxAJXrtfX4pC6TDVOQPvuv4MHRO1Ylb32EEbHx8T1ud919fmGf4sfczfKX3YxAZhbEs/YkPIy6k0mCHQ6kEp11PLVFuWsKI/M8SiI7jCxfSyoS4L44Xj5Ipnu2/K2EkBh2CFwNd1q3HFVu29FHjeHOaZV62fUbFJicrOjmTl1Le2wDgyS/tC53fMvP4vLLgENPv4g3ql6qxE1ARt7II63XjCehEHmEvlnbj4BTnLTksXCcmx0yK2X6PD2CWmaPdHro15b2BGxrEXpMsm0bM2poqUcj4FXGS0YVtbkULtBnoFxM+f9PwmSjjmvurBlQx4QzOrMBxIsWvd2WpSqtOCMXxrth/OLYFL6cbg1AyG81EWSna07B8jTGhzYD4zr+YXRXFtT3O+HIdMsYnBrtHIGgN1aHSpLqRJvhwlyP66gyujnXfzhXPHj98KfynYYyuLKY5esiFc86jsyXr+7ukTRHg1QmgXF1f9b6dXAVdNS4T7X33VTu8vYS1obX3konW4eznZh+aCcR5DOY3zZstDPzGiT3Zl91Y4mFEdJ0iGs+LEdd8hRiuYb/76chu0aCg0sSTWczc3OjeXGUMd8NWVr2/BxiHulbj7OOyaQqDW1yErFF4lkbpO1YydpXvkXoj3yyAj7jHqNnFVl4IsHyZZeYgHuaGlt8lzB6sqsp4kRWVVFz8bv1AuOrOY6GKOmHfbGn7V+13Dc2x6mSyxXCXZRB0ORuiZyIJOHmRGJOg9Avq0x06pzbEkT4i53+Mz51drTBXJl7FJA+23w/+noglqrEYeRdTQGN0b4pUN3xysv6wiKm1axovT4jXujJ5Cxc0JgJKMBWsX9qZxQGudF6BLZ6v/UUDyYRAwfVmtRN8uL9vQimX+PAh3ozUkOoj2LeW1w/wL4VL37WuTGqe9hXHyrxv7MELEKUKpiILBqjDfWpNhxxOrMTOUpCKJWjW6xZmzTtlnizYVv1jfAfysSwWSvVEu6Z+Re9sfyDPHjvdg0d3aGab3RAsVCu21Fydr2LFNK0dQpF56Ju9sVTdalTqU3dwKehkMVBeqizg6axJhX49gmbo0zt07fy7bDSO+pXe0FBqPOcOpzxQM0Gb9WOLmptQcxsBPdTI1h3OeGnniWAaztVRI9sV1tNlR+U2/N3TYx1qbTazfs96gZF2Od7axh+4Qf8jop3r0ZRQUEYOODlDY/l9Xay1qbYZj15BmQExjhshbhBOevdZChrxRZ4ReXmSfPCdCafL9q0yJ/AYAMIpUR+cz/C+Qte1ddJrf0ESuEWABvdNba8mHFNhY1r1FWMXH0JpDZ0HsHIeDxe4Qw2FYAF22IvOXNlWn7NzYFukab62PuSD00+6wrRtDjU0gDjGHouE7OWMltw+kuAVnk6alRMVbEDXS2TiQLbyXpPs68L0VF1JpkzHtFtxxz5SJgqpjpGKQWl+VhFg1qYkQ+mJuepHudFViebwKZ75hg2ADbOlqwFhXPZEJXgBU/eiwBNpdr14VO8+RtBVSwWEidGNExF3YNRXsx5jUbZEgsgypgYyGhRiaFKQHzpPRaLm6Ni4Vb/J/4B8Lst+Fqyy4Z5t1u2jgQJJOIF0kM4XMEd2EL9Gyilot6Y+ozPfWYppJ+ayaIeNrl8NUdsBcCSt1Ggao8wWEVJhjuoqtiL52zefup/js8m+BEDFC02fL/52bG1m7s8yGJUsKUJf4NI1ZtRzlXk7XgyIjUYwkdiN/aZd93ZSMuvtEJDfWzQsujxcDMuD8uJvh25Di24X8vUdAdAHxd1Rl8cnIX9ZmUUsW8rDvh/FH3kn3dhKpp9LkJZ+TiFYFl2Egh6v+9vsjcGIxS4MBGTqoVeYkj8s+RYAiGtc7iogfXeGYImM18su2tBzqnTQb3q9KDn748rTScUCHU4CEUSPJ3Ovj9+A0+ekLD471ZWRaSSd91GoXp9ShqNKYUcl580ce4td029bRIvkaSozRxGl0ByZRaMbVDFp6RJ2x2hNkdjpu043VscGyHLhq/0cKjuwUIo0emiKWRk94NTjSZC5nHL9SrDweFZYP9aPjQ91HAHYQBWH3Jw9ZO8bINudOwp4KkpyFgo4jYayPzGTdTS2ckEPZn/xhWmPvqwUZo/F77eZR2edwPd2qM6RASrpJRJWNJkeUMI/VCiY6bTWonHnGRqkWQvmimx5ZEs4O2Z7vEu9pVCQVOaTXp4KPUdd/0A4IqYvuCbCYF7xEqb0sJI61KIArkBIVbTGVaEOriNQVlQQ3kETVxEP7W49k6Vf9GVV5aBaMzYv+rqUx0GzD7wcAQDJoOsY73FxEA0PPytRvOautGdTF1qoyP3mYj4qIZvVq5iuzCESqO1vGAmo/qd/8tCmcU6toYc3G2mPPK4Odd1vhjse+CiW2dBelYm0nBNtm13Cz/a2qGGJxTbISA9TA7LWcqyHUH2HwcKvwOLFank1PK68AnDKLyVEFLbHHZ8C3mAqRg/LBe85jUmMnU2HaWc9h06JmJaKinjnphxmSXMN9heWz9WSKN7Zv+v5TcwM0X3SRyztA1ST4LYbdYVpCWweM6gy+xaPXdc9DE4M7KcpfNO8ypCtE0F6MPYSjivgzlm8owJB9DL4AzMmolcMZeh5VQG0z04UsTulz7yWfuPvSd1qawZzjSWjGFK7HqY6TIG55hqpcGzn7YpJdVJxkDfG1NviXSe1d640ioWkijSl73cd3hIbf24iJDFiLIMalfuruom9PhqsYLB8tKN75j0gc5I8kikCbk9JvFWH5NG8OaaIRLdKkcFq1iCuB8MvNAjqooVoBA9pawWJpCZOBvy88OBdxa0AnMRxUovRoRrQQ7URmXRHmCMqKPmkjtiMT5T3S3Uqa5JNnAGlcVqNQniOvqvqvWsMp7ExA1xR19T4krIjxCewCRqmn+PJHto8vdrBerTGpok2oUTY6+q7YHPj0WOEd2dIkL8XRfDvZMFtpaeVPZLxvPnGlYBOHJGR1Y0qwlxJNSH2begPpKEsCZUw2l16/SE+8spS/6y3io8xH+hWid0akXvrjmPldYUvF5DaX2reo6lSQJOMoCO5XGdJtAyuUf4BDTDzROMky6YlnRKC6GwuwJSjjxqEWulm0yxxRoq0IcFSvSGjsROgJOxhTzj9Lu7FB5T0STrCzcktRIJ6n2gbDKLykJ/2nf8zydx3aEKKZaC2EE3sBjHzQJ2G9ALXKLKjDw3ZbmnwZKPRskk4VbBda+lDtD145k+Tes5IlnFfNaV0TU1/Z3ReVJSmY0vlOtRGs6ui7Sx/1MGl7OaQBVdSVhmgJVl0vqz9+WuXcN+GZZCsGAJKCCP0u7DhTifhI4nagWraqANJpM02WG6RsBLlhw50FS15JUbdMOmZWQcXgQBcJAZvlfRuLA545+voo634H1rfOAuQsCy9aoJ/9qw7MNjKWhSUbW4siEFuPqjFsDZqoSFXOe/RwgQesF2b1t+sPaDpVCxyIBeTUS1AZnAySkgteLjkTcKcCl9yxClpODLVP642AVV1RFvH2hm1Nfq2CMVSpwe/F/rHOL23Dp0apJWAJe7Y50ptzXmTrEKQLhl17G0HdkvLL31roQT4K4tOiTs4aT7VHjXNJ9BNDXhx3GD4gh+NelOFsoIj52LNvopP2Ll3qCxg7ewrDDwpE2h2QtS+Ctm9osnfYollW08rwZoQEy1KPG0xxmdaI8UEi3XTHmcdbcfMecuE2zpZnj4bbPuwH47D4MobQaRA+d2u0u3o3zkq/WTFBfYG8g3Q7MXJgZ27UFa3tp0O6yoTICUhM51+Mz5GSbP7R9LQ/G1RQtArunB7a7fz2QC2r8cWFKWXWSldbYTqZva4htUaXH8Wqk7TRD0ds3e0JsI6+fl9U/sRPnCIgw5Cr74h5e7P6Zv2Tf90MO5KKhg2QIp4GLNU7z5X3guNJxPbo2RaEnvqzomF2S0NzHGu0skRHal0SPqNU762I4aBc6Pf2vUuZ9SWav9Yat/n2zX/ZAUZpKF7Zvp8I6saCqiNHNIn4pqt953PkfHEUYBtnt9h1KNkJqbZmNNGTU2Y5+gO1TLbq9wzGgVuLlrra1bIMWHvTWlLBVJTm1XBg7g0ASekQI41ECnQpwyjkgYDOG/lIB4qlf80RnV/UN1QB0RRj7jdYDNWJOK8KS3mtY1dQ2vkhqbDVqBjFS1XNEeEQQ65i2gUf/jD43erKprsLkViChc/nOKhRK8oM9PfHRX0IvhH5AOzG4P3kcP5dpqJVnu22UHQGoMV7LXH2Nlos8Rh1lzRCKAQ/dwiqDXFiourAMZf0ggfan9XdRYzT/zKfROYZWpEpzCs9O94IvFpHgC2ZijLNH+qLmnBav5XTi/iGw1vLoTMPKQk8ZsEwK+cF1m2ViC0UdMpyu6e98xFPHF/VriGy/Gb8ZjBVGUwOtt+GwLoDb6j6KxqZ86OgApejPnYWIbLirm5/AapoNhaXiBQFLn1VUcFRm1do8Yx3nVTjD0KMO0YH864Gt3Gs55dcQ/Pgt7sgPZIeE4EKGxIAbm6OKLPapB5QU4eR/FNlciWXVXg90wsMi/stq3HFvf+wzJkigLYXbuz5xze88dlrCvbdAFW/kzERtJCEXoXegDswMso2yco890tubBVX/OQc4w/5UUHIq0b47/9Pbfl3+YbO9Yjbsrd+eUpaUHUVJyV+ojuZSywKTwrkym9vylCs8xdBN0vdMrPawhh4oq/+wAN7NU+sDLr+lFKZ65k6xCmiV3jDFvO2JsJ49VuRKLOqslkQxdqSATAEBXQCpu/kjeQGFT49xvBThjJBlZANMAYXzfgauNfYkdENOWy6E/W2vd4CRjQiI3IYL60irsc/IvFkgMZh3m8ZLSt13ccYEXn+9swxIQ2X+yOrtDqh3hQcSJS19osYkfsNNovGI9hLjhpZWepxSqu58wzxYnn9GR5KnR84fikF0iwYuV5P9DucGg8ne2Z8v1nF3o4XwiLaZ2roFputeUKKLB/sgLsdKWTrPxb9ZOmuKTFJhGCOKloGhkyj3+KHVAv0Nm+hxlr6G7gH115uohZy5ZNkfwueMPWZrdB7CQrFgFDm9EQPoH+s9dFQNP44hYWSFsofIg1gLxysqiOtdXkE+gY8SixTBJTKYhMIp9Fm1wHnYlR4NBmPTqb2Qj+cqfaQQQdvYCfLTfaTFnXTOLvspu7tQcxQZ00cmqVUvAaM6p5XStlSsbE36aqmrIgasTxTiuCUMipe7R22MagpNiMXbW69vJI99kxH7PbLauJLfaFqibSz4rsS7wpoNZUgN21TVPUeOY5AQTRQ1cgIMVJYoUpC8YUubKglGPvhcTIQhgApynwwFQAYRr49htJAyS3ckNuqC8BLmqVon5mKjp81grDHD2uGIejEqu9IpIzETqNItiOCUUxoIQiJU+SdmabJX3UxvcyyAyDEaS4aT3EGfKbzZvvet1DQtvwsd66FZFI0OwMC117Yw/1hrYeJuvzKAPbq7asgKgnuZCdUqh4bvhswWohCWXm3ljQyo7WfHJnCEQQdphXi1F+b9aaAwLHN/vKSpmbZlm3//Gp7zVNWj7FaNo4UdrlhSgfPfQGyNvQjd3+joZY26kZfxoobQp5q6NQytiCHebovciKoi1fh4Ym6wghftLBCb5Dr5I/KqlRmDDlEePqtikFSUkXQ2v//aqrvNwAA/LPSY9qkL4y9annbWwIaPxWGjdhlVwBvtJm62ipWvQSKqQcHk4xTCP6SUimTRnfohecEq3NRt/WgHm2PPHnEE957i3oETIaw2sCMAWdaxh6ncC0eos/oY2/GT+4P2GLghCLFTRI8PSzY0ivIWcoORrmX4Nw9cQsM1Eoh0SgH13/MALDCnhL7vfFS4vJZTxaQVr0/JEiEWgt4aUnT5aeOGDJj+ZVltPAQN64HJvE3xLmHaYesBsjD8yoszZV3zLXNr3216Lz1JzqHLsq6CKLDXXWdEzMMpYCyoHrwgd5GYZY/0nJEN8zXXWqVA5+ZsqPAxA377sfIr2DcdlxLwJx1Y+mMaSoqKRQzueETDWtKddxtVz9TUZasmzGWIhUxuH2su463LhjRTO2edaPUYIqT/sqsye68S1Ic74OI3C53pLycltx2r+nmrVyiXIYmHkV/hITQC/Zu5a1G6ZUlXP10nNO6CFBUbKfydTy3i7i3lqdG81xdB5ErhfkLu61qfIkdnPBXB+i/AjQyHYWs4gZUTxBZ3ZdAmL1j9lYHgPG2AoxXNqBeUp7JPb6KJkRmEmPbgOYpct+W1IpNhqekL7aSKO+iFZ7Thg/+dWIyNRBVDsMohu/SzUXQb8OvD+ephz8qrIB3mDM0IypW2FhQ8xyDShlgxyYQ+WB1EdLsny38lDwoS591z8RWKeg3r4MFy6Djweqx2YfN/8WDLkXt/0FMdM2ieScdpM0UBTXRGdY0rpdBKkVzq8yTKMcBrGE85/pFHA05Xu1fnjq1wXCxLCyPghifEMNck1wufTDSeky/w6/l7lWCJ5RobiI7rvcJ0SJGObljqfq4Xf+PjqovrmXKLFD5wd0+HVdncon+xtAJGeHsWf5BkC1Nua1/kQbvhQCrwvsXBVw44vWPPM9w/FO6ikxINR8gJ03o/MuApC4c5QvxLeHQdNJEA7tXtg//SI5t59b6w6Phlb9ZcmRVp9sGCIcTkAVswy0vtqv6/FvvX0ZMLSdNguSTkPbXzoG2aaEZlO4q6V97wikV7ZBMPtIdRVXjPEWtDvY+xq4gokvpzEs9JKdOx6Y85VB9zAsJvFQw8UUYaiGW+ZjnFZa7lmSuUzSBdmoxOs64GF07WN7R8xcBZyGCMCKXRl8k172mZuUIjekecOt+rBUQaBmJaEOJnszRn9cHdT3Em+kb8HyNN6lJFS6Ju/Z+CV27Q5nZWWILDeBURKp8/gKnE4Q+OIj+HO7ON1rbcMzdnof9NIb7gZLPKDdQQW7Ti+pkBEFuP2Zz05Dbb3CA3xE8Kw8kv8bdDE6W0+zLSnuU8YbCfylKc2/mT9ep8u/ItfXtjrjPowQkBsVlZuGn+U23ZK6ZK8N5MSZ3dx4ztKtv7vAi6e2XhcuG0MJehuvyQerG3Ja4DHc/LFmd+XbKAa+u27CiXj5SMe5U+jc9JEdcGVYJyC7drW+lx1i558sxMZikMv2t7YvItPJP+nN3QhpcfVzVLGAzRflGo1BEOBbKHJuW4hbxgu+ZRAA52HzsR0QDHal88V8Zr8NJY6Ghms6ii1rxoUX0oEd6XDzKSVG9P9xAv6IiqZgNOPlvyoblKzObKEEnIVZuDxmL3Wu9HIR9XYNrd201KTYgFp9r9RR6zllSSOqU88INfRoe/TSERNXZOtSv2TlTTJSm+ogjULa+kHbHDsWEO4zNpmxRUv7OcRQ/F9FWFQ0qDmg+M4wy3qTImbZ7Peblrf1HeW/+25i5TXHQekHDAeLox3Zb1dmLRFr/ge97P/int8z5/GvR11y8+FSnO6tarAKli5jsQPmQhBEVpOfXxICls7ZLvAY0lkYgm8Opyp5Z9a6AV0HdwD5iuPIdr9Q3n4NS4zwQbVe6C92+4cd3sxnUgRQ5faF+fV7axOgJjbHenftBsONsTZrWhgLVWjLiLvabInQJUd9u/pfK4LBifCBhOwXLyPkbvWIc+8q/X/PB/b5hrrD+9hKmwiN+qP8+Mqf1JcV7RXqiPA1Safhc3AUp6lCUmCF9hq1fQPMKUPndyDzl9r6JJ6ZSl8JqnQSe6LqLWSeUGCLoe+K/MuKFFa6qD4GijMNr2/VbAAs8y8YneHv5CLpBMSIC1yZcNEDj2vqW8nZqkw78OMYx7uF2xx/NGfmGooMbG4pOXbAQFOqBzCBUOPQkCdmCYyIYdA6kjppuJPZyyC25S0n7I//lzNhFgtXKc4koTIfshAeeehUDnCVnbOBqUGwDbuZNnDM65Q9t/mx3ZrYsU20tJza3NkhHFsUubj8zPbRdrvh6MBpt7+zDoLeVWQ9WW2tM/d63cRwATg0Awla6JCnHvoQIR4kfAL//2NrIuHnA4Po3Yo5rwqN6GYcHnTKt6bNmDPf2POIig3JPOAwAStij0egwzqOci2WqJ26hzH7Gc692UKKfBbfhNf3bZkjMZjU87KzEu38nJafxo/eGX4XWe6PQTIE+8PWCaruY4/8Hi/L/FkxLELMHm7fGjqgjTQE4vdeC3j/0/czW0Je08JxOMjfRRv5+IYo60aN3Zgv05PnrSBRhHTLfwf41yYD6lXQwZTe9LtY5BeJyuwEa1YffhezF6tjaunPFze038aTOL0fUwrGU1ENMcPOR9FWsKW3HvsX0xcgSMVCz7hNGVAbP+bOYqWJowPuXys/UxzvZw+7MCJa6ytFCLb3w1DjywWxEQ3mrBwQyZsr3fHH0AsyGCFwqqDSZHigdEPJ3MyEyFgLY8Cw693mMZo5hldH/kImC0XB+NdXeNybNCOvTyq9MZvs4jjpFcrrszLO43s9TOP6J/WLzVAKh3LK9J+P6Saa9NEvU1M6Pti1ft7Q9vsQXn40jLaFdVPL+HqusOwYv04hgJm7m1NzZ/QWEqlJ53K983kcbd/2cTMGWnY4kDXsxy/4nafKPT69t0KxaVcVDw9XKBr4MbU7pfpYqCybiKQzYZfnMA3am+vkybgyr/SmCezYpHGx6u2+GfHi0up6iZDvizmUP5xp4ZMcbIU2PxHeSCfEvhQV//p7Jq7WxWfAMuayjE6e7vIXllljPiHsz5luTIRCWY0aJhBvWveLDY5y4/ow29c/C8Ro8OLi27lO3PCNnZlyLurNAKMUu5Jd3NNPrsMglWs7CmQeYR8P89yk2B2ZN9uJIfNWSxzXG2hrqC/mumRzYqAzsKzeukS/4HAfngdhjSjzlySjf5FanxECg0zMgd/8pDzRMae0ooCiK6j3I/qFh5pOGdivTeMsKLDwZ4yuodOwLNHyZ2tXS2WdOxvHTXjCGBzIZWJxyJnF70qAGJaXrM6wMTZhw7S8KPxztGHYCBDl/e2JHbbgovuPs7XmSrh08wmf566edB5X42YV1wh1XmVenHR8/L1o5IFRYZOgPryyYZDBRXBBwXx1unFsfwlzZ06aYZ0t37J7tR0yS4SyyL6Q+HZydxUQx/J4FlHl56CAp7+LBpLRTFQRPB6+6BNQGD7KE3PT/BXaymU+Jmhq1T/d+TKH0wXNtHekcF2auktA5gFBip9nKp2Th0/vrTlotMWMDtTTokXBLO7cG+xuE1HHEkcLlW2EFq6nPmQX8GV4SmutAhRrtK++K0DIO8j4601alCslFA/lfWt4s0zY2K+hjxMzyg1RHHbxnqOysLPo3YjhcuwKDeKcz66gdp/8AOFcQss450F9qglwdisC/QVtYouaRzlio80JeUtDPlkgXn0HTVQpMsYMg3wNV1SpptuNFF7eQJ1GrDPR6SXxd+5q7wKUqafb5u2e3NTB+HoLveYMd9SJCjGAurkr6FbwzAUvqCCGO9GsteREiZTtB5M4wDzBVzUZADLSOtyGX+fdcwAu9TUdZ8/lbutAMcWG415U3Fzw4cKqc5zyCFtIA6WmbNwXWE8TjPeJSZp0BG98p10dmnJv0MyU/I69wemXqzTXMMyUQHaZhMitMlzO2jUihN+8eTQL5oTv4HMlMLeUrzsh12lkpe3E0puf7b5INs25+EYLb65OVkxl4g/m1/z7i0E52qEFTMeopbRs8BGF7zzy3TCrKBgzPXNzlSMyQOkFvx1baOFjc9rgMVnO42amzzxdayfJwRpijEN9GwOcJyNnLwjITAdHzYtPkCQX9kyFWjktniLtp46so1pdmyTPa3iSB222bQJr3KTdGPXco5Jfn88Ro79ArBTaW520UQ3DHT2PCueeuXd6YK9ejTi4AiO5oGqMTFg85yRjPwjOCeks/lJsVQvsTMntWo8ark8i03x3G8qJ46wTkEZs0uqfKmffAId9/G0sMhe845pGFj/7+IDndYFMorZAJ+7CfvFBuUREDxk5hc+8uWjU+lJHj6JwSjbU0fGeFp30jp3tWI2i1/XpISOI+E1basy5dt+GBTFi+TaKle5sfn8eC0IzV2b2T+t3bKd24nERQCYxYxOEUtu/nfSl7IuDTPgGUgc4wgQvDu6r8bVE2rJcMx8zmfL1ObaV6VXeEuUdyMjvSq1DGEsF1Z8r9Zkndw9ptijJoOXvJkly4y5pkVE+wATTSXkbhekqOD7EyWBuXA094Y4UivsIx74dmYHYZRmznYGso2b1OA3/XdLEJhkrYJ8XUx5uDxwmY3BHiv5LYbUFxrvyb1DPebjHHSJjRVYWs1hyS6PmaMgYGfksGT4p7a7YJz7EGptljLGdg11yddGlhSMmmL0YX5y1XMIxFgCWTEuo7MQnmvAf18vsBdn5t2K3tKMvepy2ECP52EaxjfrJET7/oh57yqe/urMajxfV5vyJvuPF4jF0r/DEUaLoYtiEU9pVX/iDbAvowY6UC5iiy4Bq3sSwLoNEw+5VBkrs+2t1YoiJzONKta07hNOaXA/GWrCnz0i8FYBCSaNKiunbJUmJAUnqy8aenUgy6f1KuAau1kTwIHElT5Z1dIbPuAtZSUAvJVHsVNmKGSuEL1/Uwk8gZ0uMMdlLfFuInnzwE3eVBbhi5gL/NB4jQsrYLkd3ggFfxdjRy+ZdTTilBd4iRfOzXHRQtspAYVqFgtrfoRb2Z+MCQmz2My5Cwr/QxS5+4VM+7aUuxjjssPO38ALFmjrUTTtIhvoJgG+/rRr7ETxbv5uPGZuuX4JN2CHArbMAsi+fZ0Lx4w8aAIl/BjXklDZ3gPdV3xWYtbO8sYnHf2um055Omzh7GDDiMRnJR5slPbEpXaSf4bRvGc7EP+7ozulhkDvnktA9jL+rGxr5HpNy9fSitjQZhznOKN+xm9eS1/sMsMf087ru+wRjgc6TaP/Qbvcewsa76ujO8/Tm4uLqO+yBvhi0mNvozf4C6f3qK/YJCji/ZonXR851Gq5s5OQHV9eLH/xfHFh3bbEnL7zlJP2fKUnZs8QoYKWkMMlF144fjfNevoqUx9IXutxvaR26JpFbFA5KcinS6V1b7xC42ayQOZ9doT4nOuzjK3MC9WasWwKMmFOo0p0UxOTl68sFTvehwCy/3KD/gHIzzTXO5leiDFxxET/pz5TCsLcIRt+ykDgll658JK4/Nm5vXY2I2B+js9v6Z3JkxFojXT8KYo8W5uPP4e04PvJ+XH3Qg7Vri3uYOsaf+v15uB6ZVGkIAa4bw/IZYQxLyPzMlcasJoNYgomRcusxxp+6RWiHF7NU+Ds9jV9T7W6WTonIoJH+atatFPAMCcyrFo4iTfub29louA8gkx1mg4x5pEY/ppnt6nxpNETj7M94kRtcoUWwyVllmdqfT9lXg4t4Y2VvkTaS1XdIxsOmaYNizMPSvQyCfqxdvgZ7aJalhNYZmWNeKEHJVdGag095izkIpXSYryWuTL4hVXee2b3mu/cr9r+zh6mwYbLZWKXj/kD1nRi9chB3b7WD2reUsl5YAbOaODXrV1IMwM+iz16djKDHYdt1GPzLV4KdpdbVoY7aZPxqNc0csDVJqiXNL/HuJ3Oc8d2XDZOIq9HfHfoeQYt9UGSn2Y/s+H8EYzdfeMQwecjhBrHDdqbG8q3tl177BRm3ICWSuFVCm3HxXvH+aBHQ9XIwLJHNS5bsftvzVE1h1WsLyNJt8mnBKZwsXuROAPfzelvkTFsRq0WsH92gOJTgyRQdHaue3iDk0lb1QzBPzKrslXB9IVppmo9Qwq0y9U876YIqrvhRhtsQ+aWELDlb8WIsPg3z0McQ9o6DugjW9OqKHZuG1P4vkosKJptuSS60pyiDmAQC4YxjXYzNSRFDIzv/zMOmBcMwoiLd/jcaqGeMSkSjik00Tha6p3U3KZbgPa0JT0ayrJSwY0fyLcZpafLkIrRMancSd2NpCVuqQ7zMJOTrG5ICegv5Gn1IpSIh5NlRbhO/WSlLyYm3EY2a90kUwRm+4INDOsSbuKt7fuUSOX07R3AupfQ4YNsZSHDWPAgpJvUSgLhbnnV+BPTUePj2i8Vj+kKUn9oovJvjgcjQzaczSWBbHYcIlHkSKospgXvesE8Koz05RWJd7lfaWHJHe3jeebyqMsSEfJQrkiiFklwp8Fr27s6X7w9v8AtSeTjzo2phQPL6HgFDMzg1RSvBYbOmHRFwmfgqcV/Nm2fnEfKzQwprrTKBCOIxFE8BvFEp4ptz4vPwh9s1hxvrHgx8quEka/+Wr8PrDoowxvnWuLiGZ0KKvaJ644Gah9eqq0GMyr/Hnh557a5fRu3bCwmMVxd/xgd8Ef4RezD4IN1K7Fz5Gu9ZQ339Z3ys6zrfQVGySdvpZ/nY5Jo/+GtTwFSakbR1sjLYINC7YHRna4c2j4FVZ1yR1h1YY/JxSs/Tyd6Uh/a7/U2ZegM4Rv95Oxofrv/t7tmmnh4/EfZ/HDeIBsjSFr/z7TMS3ns+OqJMKKAdpcKH1GagGS6SYPPK9Jsn5t0CjYVOUeLD8rTCqXeo8xij8kNVouptP7qYUUPL4u2MfFBn4pSsLJY6JmcGhZNzY46HUq7q1uAPcjGcT2v9wPzAlOmaAyS+kZ9sKylC+2iNaQ+ZtpjDvy6qkJ2waD6m3CISXURNHCzW/mRhNEibI3FiOJ0m1dS4i7zitD1eYbc3TwOUwAOcLPKZXGq9eQbi87a8bPOOs0ZGmBpNpPuiDcjzkXSOc300/CBZRIXEgfmAEnWnyTTnfLClIIlJ5aOL3DutK5a+wsI4ngUl947JYXsuqVEFIzKW0ZEYEimLjzc+KE/N6zulWC1rg83vI8gn7zLHQpHmm6EN9+rPfTdcERQIS6QlKCYZM44AQaB7fy6E+Sx+E4zgb6GGWQq+zfSvDC/3ohinroKu0jtzMu8hjZolfpX/qCUutWnQRMpkJ/cDkjHkx9eUXMxlOQ5zIatJGNvYb2C7ufJUD2GnI6UocH58YWTvOBcoBYSkDWUJNMzTD1iFkOEQYCWdBpfw+ng3g8oQdGF/+c88V2oQl5kUHw8rHj0gkzLbhI5P2ZtRkWg651JKo6Cg3H1Moa3gPGXHmrKnVzS+Ama7Piz5mdW6mncXL2/yvTVs1rv38ftroCu27El9HBwMpEceR3vGpI4ORFIVRWXE2R3Vjol2bXpWXB+2IHHLm53rNhFnNYgncQU4uhwILJMZj6ybL2ajfAZxumRUu/A33G5UHFK6NJRAUfK5TpSUQcxjs+AkOMvFJxYwGXk9YiZFqfl27H7CTZHAo6drvdsCWGYZv0kvca83gs/4RDBdJnmupwFBH09cOpmUQ7DxiuD4OyaM2ItQDxfi6Yt1+MnxdK7/5GWSPm/x8ZCCGi9y/S1OmXOvwHDEVAv9jwcaKmSs9rXNMt7fV9yyY/NrOb8Hbv4UAfISIGzNyT6FOntE7OMSc17beVPx1sLm3vDhDoKfv9kpVY/tBguCGCbpP84RnkkavcwmTI+mObkqSE8e+DS+bPeIkwHYr8+9mD8Uq9h0gkHC8Omgv+iQsTwTaaHyj90F9AqLaoHsrs2PAlWuYCzeHr0Jm10UK6cC22wUik4bKqavMRrD09ry19cC3opXQouRyrELs3nQ6jjwoSSDBF9xBTpUcNGNuex8Vm0TCYq/raLnCuaE/QL64ZB878kDib8HI1WgJKhUbnjG9j9ry+U8WcBzUqRaEqt5JjPQ3iGyvaUCECsszKjy7c2qxB1iGaG3aGEFneyWQ9EWF0pKJo4XxKKUt2cIk/b8WtzTUkuDJGn+Md1y9qeyWYALGdV8noDfI6xlFsFXR8RaQKjoen1U++B7Sn8f4bvX9CvhsxdcVkxRJ8ZNbJ9a8JeyMNdlCTf0xPXbrpuvPCihq/pBKdbJM+KoApS5yQOJbhD73xWsQtZVPlSlCyuLqqS4r8SzDLIs7PP+S6WBGrksfnTyQm00O0zbWuhiqHOO5nMzlsC7jBdsLoi9qV2fLw0M99V1p41ht9OAbDoGSz0b+e+uR2b3FDzQ09cSdOv6f+YLWI1PXfq+8ZU2UZnvZP/siyOr8bg33yDeWQ13qOKjOk6voU7ktrSb7+wbrlehKsOFhQRbTM22WaxW6APCBq7ntm3SBwZTGIPPV4SvhI1+XEaywNUgw9EbYReUektNus62OS744J6yDK4hO6BaOfgy7IR/6geE3oEfovNPHTuAYtdjrTNFzYZsRnh1GJjpyWWEupsZPJ+/iaxHDvtTP5bZBPBnppiR7T+G0BC/mrYZ/VbRBIl9dZ+wrO/ehpa7XVCk2jEQjoJuJM64azF1nO+UBlKhW+nyz67lUWwa5Bbsf4dpKrWn2iEn7EB86mTMMrxD2gFo4dAXtnDi57L/cc9yGCsafLQjf/iZdyUdEifTkE7E5qa3qcAO5Ys9STna6fHuM1nyk7ZCw97Tmesh9meQw12AbPEeh8ilTqZ2eDQPhqjuyx2JoinD9uq/p9Rtk607e/wzJp5Z6wr79oE8JC0Z3YFv++oW08syb5EEiK0ITYfmHFFUhStPKLL+jjsouDdPzubRTpSja9ty1++N04pCYZPlne3Pl/VdijNd0MREvL20PSae4OpE7kNfWmDS94li1krBOwFDBgFlP6SLfkiSkKgakr4bAkTn608rLFoRhtRIbaiElNUeplPQKSsqS0i3c4hSXHe3363qvxctY/LZyJCyFz5oCczT6kf3Yphaenind6OffFhthKvDopucIjfHZ3Fs1bX0TcPnZN7bg6vU2kbD1ye3tXHjClJsubiSLBxr56n6eAlkQqa1z4Vlx8aVS8ejwK7dw3x3o42Qe7y6/1uI429wN0/abMazywSOZyxX8+BXs+GgsjfVpDs26swTN6+EyXmqHZsS/WnRXBRvAr0lqq9LcA4VPpDjYXdCbc6sn2wUmZkpsJ9ab92tqDqPBnJqB3KksmJsiuUtEJu078rw9O1AO2uhaL6mjd2EIKPsoha94Pt0aq/A7hLlD5L1cK8w0uE3b/u5HZ+Q0SGPtr9VXTUrOzHcgKrapYJiTj7pDd+XO/TdZmQT875tOeWkA/k3rlwjbvZjj9uhBiJQ0ddTHq7ezNgz2CrSuTn+E0pJNAliK/2sXb7E/gcZ4rccRc4ofOJb7WOBd9MxpNFHDLA//DHKgXI9Hr6EO/3Pbf2nYlDuT0T6u9X2903LkFYxLJPxibvnzcvnT+6X8X+Tak47aHdYiftn5+5dPbl/+X9rsNxRQY6PSb1Mz/+QTrk/Q/vwqSS9+Ic7ujt38dfOedzHf4VQQVuAX3iv/FH+4iQSetmETPs9UdRoYlGL+y/t2cFx6I/7E7vwJrBbfUoA3oFJhcz/jJUxhjbSdJqstwqZ18nMEmELTg5yIAECXlHAjWU13TeGueBTFKWSv6QytX3q9o/7Ez5ccbCP58Ob+7zfn0PafpfZuxEWFnaw+msmKQ7PmKabBeZomRNymVsdXkt6Y0/fkQKHK2ywuhlLEzCHxkxi5vj/06mGe9EG4V1NU9su0qZvcflEnwdL0OpgsS7a65Lj4Odms/WEp4eh55ZDP5T6yTIM+kgb951X74suBQNZbyXFgebGz/iq1bCMqbTp2jKOO7lY6oDYOexcHRKH6sF1pxj/nZteg/tOH6QW/FqN5KSFyFPouaWU1c/TTbTZJofE0zutDqUNSR+knKdk21vG59pPJTyXdZtT/JzXlNq3sXZNsKfVxHbHfixtWmnDWOKw2r45jFplWaRoXZTpSj8mvdIZfk202ijRhWqp9CCtLiOrgDRa6WPy1OlCm+tU5q9pqSKWi83D8t5cr7pWA4arUx3iMJKTnxUGTWKLgtbpQ+hjtaAPUymBbW+pWRuij+l1306XPC2WcXjRDTeWUbLt9NW36lj1Ibqw43iX+pK+5JhWL/ZFP03PUV67a465TXcRV5btGxerzj77liVF6++0be9iLPbN78zpTfSvtO3O9ljsD37J6Uq8sWyrct7bP/mnlXSV/XdtO9odi/2Zy9zubDad/bnHKOkgJn17ZT12bgePWdJh6Z+07cHuUNwevG41vW39N237Xo3ObfNaTu+i/6htr+1KcrvxKmq6MDTt4mFq/bl28e/Uuivt4uPU+nvtYplaf6ddfJpaf6tdfJ6aXx5vZ9tN5/FhlrL78C57Icf15+w6Lv6bWj9rF6ep9TfaxePUyqPH89nFsXh8PtudF6cyu1iK03a2e1WcLmbl2Du9mm2E05vZetM5vZ2t153Th9nurDjdznZLcXqY7Z6L06dZWrrPn7OxfUpaKdrpbu6Xf/ghNvHy0T8ZzzFN/p7jt81Lz8f4FZvB8xw/22b0HJHWz31v8Weuv/k+xLv12LW2Tp7Ek5bXq/Pjxf+y4kdmAbB4JjOR83GiAhobB0Ft8doYYxAE+g1uAdVFoYWidmhyVBeKGgNGWEJrQe1Qe4FbZp7nJdj+BgUKTg0YsG1/jtoEcAyPbgIspNt+jcpblJrVgFTjWxA4koSuTw06BEHtUBjnZcKVcgHPKEx4aqEDFOU5ChyuzP+DZ5QxMRylnCFlagZhCVV1Cyjq91Mi1SKwj9BieyrNEVbUDk0TqWfjfP6OQD/TkSkUtp07Lj/WNkQIqFcCs3htTGRAAnuAewO+OKqLMZxjgqImWu55TAwnCdP9VfF3CjNR5OYW6na0aqNMYETL8qzjxHeFDIqGOHdOyr+AEpQIzBRBKmRwWGwFdiRJOnqiJRTqVoBBWtI5ijiiFXb9LYZK8EgIjQEWZ9+vYRkUtUV1iY2wahbYh/9h61zICkjPZiAK+QaHQgLq7nNAysMa5uJhgvb3enXAGjlLRUu17BhLEMr+evaJukXGuRF5YeO+ksGMO2kHCnFMB2IG2/Hotc5M0E2Xb/ZoAQb6RBZPjkKxWgdemG7KofQZrJMWETkDlpaleNfVjSHobSLcY+8SQutXXthyfYew0QA3FAH14G1OJFxyHTr2hb4M0vyhEwWVp0X9ACfeqpHS7VtEK8DA0ZMVq7+ZhbqfHzKcz11kaCErcUEI1ZAiP6zCthbs6Q9pq7UdrAQIN2D3RCqQS0fROH/9eF5eBlKcD3vA0SNggiJlxKNXI+LkBB7Cq4Pv591ra98RzlF/lM9msvTywDWDbYPdhKVwPoB4dbAtPevAByTCzJ6KnBuzt6B7Ax1iygTDMVdlj8Vkp5E5RHaWwUryFfjtjxMTcS8Vy2mWCNTYKAjyq98Q65wklKsVWfYwU7YkUgsjdX9DntCUGmAPG16iQlw6fK7mbD1xZJccjulIY/pF5e/AzI53AuXjcF7FKneWaUkUG+QWS7BPkod5bVapAc2UD+9jd5LQZGKkyNkXlkoJvJ/QujB3/fXHWaYhC6Za5whIPEmy2ME9nU6/mAnBWXx4V5TfsQJM42kWK+DYQDxVwCBnw7R4iI7w9h3NK8+dR8DlK9fgdFYH2ovNlThXvFUYcyAVHKHXLCpKSHUe1B0eCwxQOXCkulT+9nMRjY8iqM0hUyiITNocSakBnRhPADvczMDnUCvFMYE4Uo5/Ppdnq+jBtF+j5lH0qCgFbHjGS16NWCAfcPBsTheZLu6W516iMs4uPuJ7tbT/mX49/zgpdt8TShM3tx4fMSZHUdpr646e36IwK0pgIv56szrOucIKX09CQYyJmqWI/ZNOBJEHQUm4f79EKCkNDrsfwiyQGUWGFFDIScgKMi+Trc3ksrpteoumahyEYPTIR/Poqa0UmmpNpzbB4/xm1JZK48QaItxTjidwXX3E1LKF+SGnwMVU6KbXsufpvqIp3pE5jKA/0G6BxPJI0bJKNIl79dxgLYyzvLf7q0iqFDUfNPCIIkzuhC3DADWJrYLDlWlGTWK7nHcJBzNV+2VXgEq94uGzASvpEjUWEBjrhIGQxWpGrlAZmmws/BtTvZ3lQVaUxLkrgI+hDjos1NIJaD4tkH71DPiW4UZ5x7LtKrmWcLBUbYm/wvRamSmGfA0TrqrYy/ffLv6axLcI8LLHlR3FF+6IgEHl3rG0WkiPK4LYGs5Fadeys+dwE0mI6gDArlm069hCFGgL8cOkc56dGM0XlmoBWXFz/qtSH1ul7JASmIg4AavfBY7z9dNr0w6JtS/d5cCAsUW3Oyvp5uYrou07mZRPGDBMoKB8WGleXpDO1I6pVbSfEpjGNIT5ROXcXXOEhRjYc2+pmwBFfDjKthO9xecXVLZMxXfF3t8a/lO3eFDbpzzJ2Wk/iMRnjIVktPeEK1kMR0ThFwOvwAjtEP2z9A7rDHOVGC4s8oIw5TJSRWYhQ6uZsbh1zV5sJJ4xlzuUE1YfieBs0oQvCVlBc61KTmkxeGwqnLDWVW0MC+L0dtGZzF1tuzhHxX9/vT+prLZ4nBKqvpLfiYpWjDAmzx60LCTEwO7fEvebf30IQcZV0k7DsL+ICPOYkYHFA/+yvu6MtjYCAfTDilKKxc87mXh8W4W44sA5YHaMcthjf466OFLW6qbZiw17NSlsrNYRmweQJcptz5u0pGpwIsPd5UWWILLpSMa3n9MjJwD4pNwslOCuZEuIP2nOhFYV4rwH4688fmoQEP3ef60jJazmCTxtltdalsa8sQToSJlEkAfmXervbKdx1CrsgD+w2Qyk4spnyI+Agsg+zm/as8r+pB0YJiKltt3B0xlnToxZeTTCLac5vFe+3S8LRJPldBxoUAHwaZZ9e4TzIfV+q25nYa1sNnTLC+iVo3MlMIsXa557zD8WCVQaDTtM8raFfFle7NrTkzB/QIA10ARQ6Ey2TjoagTqSPO4VZlZefthHgPO0MAK7Bo27moE9FN3ZP4UFjxmpQXQ2YSLwLxHw67pJ0mNkmBkA/aoxox1+TNi5GScM7iomgXbiZFLhqnrgHh0NSzkrSTzewTJxrIGltmjiFslwz01yc33Ee7AinGgNLBNOB79sd6b6qankeHCYp0LY8CjZjJsHkhVWHTY6IeoZ2kPvq7F4cBw4/eKAqZZONCHI8V5Iyf8pg6kJ5HCFXFYjW01827kiP0Xf1X2lTXi0FK7c+gvmoJ2PJoE8RIr5lFoMVZUWId+CRvm7Ez16hICllm6/y1rxW2SBQ73aM60HCvZC4ND5NvFblyA2ujSPFAJdAWtNgUIblX94TFNt2MK6MDDfB9g7/D75SDkr/IfAq112mBPBI8gJM2GEEJ/ftnSzw/R1ezyN2hrukHyYB8TR4D0NS447LxPn2aVXUJSXqD/S240+a81Qju9JQQiQRz78MxSddH/C9OTCWWsmLAXNKtKxlsP+iBgAIjJYlGMCqbvkqnVoMZBhxnXV4NZSm9VydHzls1A9X9OaLQp7qUSgQRHBrVls/KClBiusae1YLIq6qCV6/OBI9FSnWQn6zYK7uh6+0D9eGHnFIIefq1Dc8OhNTROJlXcaHLy06BfnCf/GAcaG+eYjTWgshNupF5z9NqWpL416oO03L4eCDEgMFSYcbC3RzKpbER2yQwHJG+d0WYQoHi7HgEG88JfYtKADBUarlcjhnods0BS9BxfaTkbP3d7JeVlsVboF6uggz7zs5oQFWOflOfkrF7wkR7G+sgW/clmFjL/fikjLwo+X8mm25I5ssLTQgTkEE0nwNeDtCcVk/GeA46y0GQVwbMdJOoJW/flJApqgdMeUB4E9RsfEN3ExvifItf6vCp/9vvQV2/PkyYV1FxuCGw232oJMqre3xsWpgPLY6pNIumWwNOFp3r52QjT0G7mrEc2seE/3Q8jhuz5UnrIN+SPmG1nJssi5hmgAgL51aao4QjlKiElxtP9Z4LWgqMrig7TNQcltpRsZ7WId2yvxMady79qfTfZrMUVqhxvorgTKnMjdbvihc3x7YtokLmoKjeMKa/AiWgnwBvgkpdxItNUWkf6VQlVU0KBpCUYiPJ8LzYj2Ygc4Bcu3KNp23TDROHottm4SxemoaMbe76ch+h0NPha93s+237dRblPCUcktmyJ33EmFj3Ky1cTy1vz7wsucUcr5e9Lc1rr5L4CZzockXbF5UdGcAIFFR3PFriDpUoFeVDZBVB1nHfLSwtrtrZBhBADsUX0GjWvPjNGDl9wOxANI6k53hlVUDGTgPMDqpaNrZTuoGQb7HNm4zClucog/nKFgQGFmcIqL/qd2y/9mQqdXQNlvxKmYJ93AlKsVYleYeq/YAqELh+CwGR2pCaFpaGSeB2RYhtGAY+dKhEf3qCBWsYX6dGJRW2krHxxDtUl6KDoc157ZTjNWb8chISs6cDjX5xsmTI44yR2zxH54HQm53d+Hku8YHowK/Gtry/PDzXOdo1aUa/TMGtsL8RbsXsXzaBT2Vg8Jc8GHROsVTlB/8qForCJfiLN45rW0cWyMxq1QzqbZCKvy4p0e2cXxkMHRS6QiEg4d5UkRtMATGSTVSM5HWmdA6Bu0rTqQvzWY4VhRNmnPZ84sjNnkAkNeWo2DDGMnUcDbHyM8CoROmEHtKpwNawX5z3zIif37+tpyWzXaED3mdC7mI5PR+tYYC/nWkTeqhWmfgaOqGnjiHR8ePY+Sb4f4+5MpZX2o7Zuixcei6zi9RGhoP+by99jWcTtXCTKYl+2rcaLo2y0BQCz7+tChygLRsdpZoxDkH8wPHj7fdH6wJpu2NJVtqlpJScOgVIQrTUjFw8QKB4scPfZbKS2+Y4MDXasOS1FJ3qLkRdd6RdYhOCoy7uT/WXYUWeyIL2eCL9drSaBFsJWgZd3ILJ1QwK8bZ4wetNZwZUnal4l4ElkVR2EOC5S4bHsrUq7JUZ4crD1LHpjmycEoFDZC+A4fNQvBDN7MikqOPlnwMn9tsBoOogH6gynOFKbbed4Oaw7MK8fynLecpOwAx7Ei0p8z+IaFoAgulW8Esn7K/RG/XGryOUahhFkivDfWo7lqMeoMh8YpqJXOLZ3yYpqT2Z6GUHNwMIAh1AHYPgfcuTMstxvVCbQ+PlABMB0tPQ4cLplaZWHoYktWc8kdHmi/TvlNITcWy/x1w988qG0E12gwEcMx2ZMEFESvHp2U6z7+Y4yf5Enl6bztmhIl87/rw3EAWLkokkfrQbCB++qwI4qraR3mvhDV8P7uO4wTLCSbwEGAWNeswl51CQTNx7KPAiA55Arce+i4+BjtOCIKv/OkVFLPyqBicBC+Os9wLHtocYDse0HIv8odURLvUA2Jc8ipueN2pGLpiAWstj1DrnaEM557eB0iBNwUMy1FQWaDtAlqQ7ajDIWEA6ePQRhc6sz4FUq/sToBR/sxGObHn7ZVNBc8115vnrt3YZ3HKH+f/CJqCcsmVm77zXDGfxUOeA8ICYdPkDaQO4MGGnELprxNgFszuYhxbpRa88+kmAbyMVMUK5g3rdKgcroQq4llXwF5A+Aaeg2rLaaNXHXxG589wyu1ntD4M8Pl4bC3Yh2g0wAKdXLE0VOofAZkcJhGohMYYaRYuD/FRNwar/MD5zwPZjswGu/zex7n00HjwAk+5QtPB5a85itf8zMv8sXg5AfOzrds0Y2kyeiZ1Gu62Gk8VrSeWRUr+nPQ8FBQT62i0jEqJOLqzSTxpMMGJnMH2nh2n6GMGIcpjum2DQZoOGBQLkrwz1speO2gGv974S8sqzhuJpBo/vgZYSUea9thuXFTrJqvdZCa74ain51ePI+WiDQNycEqYC8L1aMx4T78CRZrh4gZlt4fBKiUaJAlMeoOE1p5MFqMlJrcm/FE6A0IFLZBFtBoP8lCNlrfYXk/35FtzA5epzh3c7ydxkqGOLVSzJ6xLLuQsqoxun2tSgYikVmOrTsUbLhTEPJI6PLoRO7T57m6QRIe5CROnORpik6wIjdutmcIQZu9N9IFJ9o2WAQTDE0CX6WahVR+vZDbRhMFlGmwnkfF4hi2P9ORsZLVFSYOqm4aLxDf7nySF/Z3BzNSQDGFIw4F9Jeu6M0pD5jBUQK8c+4yYdAxWKiKH7D5+mNzu1Kg/Su7AyKZtDzvZt3wBFx53UyiIEVv1s0aq8qNE76RTQtCXLHUXLmekzRXP5k9PThbs0pgBmpzD6ENjAVUU4Z3NRPReA34YTNFm2zTndJPjsSjaFJEbGDmgOaDQacL9WQlr7w2aweARH2XZ9Kg3ePTFRMAa2rqPpmjT/ak3tdgrlrefaYzi1hFCEd6BxprWC3poGioFVDC5rb9BfpgHXR5x86B6KAlz2T7nzNwAp3bYZI2z0BtMNlARrV+hFy7+tUjZb5aPETyi4fLRHRqXuHTizx46TVIusfEDMGwksAceX8f56UQXy+PpW6LHk1gcQWx/5t7fDn+nqxjgogxOMyfS9cj2AlhixVdXyliIRrf2CVKQDJQUYrXNJS4WNKpIGZ2E6sixRVWrxt3m0eBmLOhRK+wQ/UmyFLTpyJSdBDmY8SwiM5uKsGxvLAqCYQ9Koj6KVHijLjTIlRXq+XxuVxzaXxzDdNDOTsthoH5dbSKPQ4SBu6kqX9X6kC6FWGpPXi01KHtKYiHKYWKE5I3S6Q+daam5ik/olPKy7yygzWjnEH35kWD0AUTNiWvmFfnBkOg+JQjr5AFL6Y5XjOVx+KqzREELCPh3t9j3RmZGp1D9vr8c6TGH/0kXyz2mg2SyFpXfhc0sJhxyDDplqDJ3ZU5OVaMt8dyB9LDht2+DD5HycKBvimm08Q4Wj4BVVlnroZoqTHnldbTr9njHbMonWiAMviZNYsl4rZ7yJQtP4TKrrze1wUehKyNeL3+rAQwjHI+r3cb3rUny1JjxYpgecEtK6+5ezMZs9AZjaUmYTpsMoTg/HNRBfHaJwyCqprbGcvIBvQaEYV+Vk1y+rcsk/8wBZSNJdz8wnTYqaUVSipbj2MN5fV/HpeT5/uFbPNXEY86ya3I4nPuIP/yaPPffdnCjpEEne1g4sBR7YrR8Lk2TzeDWBOhyfwFQbokUxlBK3te+HbWtqnRdY7tdNNmvsitnVH0fdwUBWH2p19NTmfri4aiaM3T3/JM422Zq8iBEUlw8/AkW89slRKWoERKTPiOGhDs4B23sRQ+2GsEi12FeMIX7EMnPZewtW2JtoylqHI5Iq3HdnGrgakqWZaGi+zJ/2uGLbG2maPQqQni1NWpiqrd+cCbX8vn68rZjFLdHmWPsN6W024u5nXBqx8i9jm14xG106pq0qDCipQNsQY/24mfhS70Mfg6oo97JmYGfSQWlMZbxVOMNHhw9shZoY4gBFA8ZcGe/hQPq8g8x+XH08CfEBF43czv5GVNPO96bsN2UWskYC8VCiHzrAi3pY0QAHjqR2l/0FSmto5go/ASpn4lqrnee2wHSBd6oLlHe2jqnacYGAxrbQNF42VSLlZJjpZlbexPDhkZxkfxPoojSPAS6W+j8QBTZJjpoMEtcrzGWryEBYHdm56HJ2GMON37mEz97XrLpCQAQ+Plke6KrRj/SVelkMNsQgXxfENjW5/y8j6z4SfsCmo0z6yYsSwxq13e72v5LHRemkFdN4kKghZxXuPgHueKfJv1blwxOKH9ME4GWZZ6y8xlN7RmG7ni8z1cjPFanMe8dLzovWWwuPoVX/KpOEzWUiq2gvjIM6kX3VcGzLn6BviPuOeNMq5NzQok9fyUmrKaG6qS6iNtsWtmQhfI1H+MxRM+myvF7QKTymMJxYzbqef+uaJHNw+628OpfeHbpeV6YySEDO492odbTYA9WMB2M23SZ8c9FBXXHWQJmOqkITysYAZiK/Ky4IQnhUUfux38EuLm9jlqXmHMInlk5BWX5GSE/Lh3PNOVe+0meD3cLJ4eD+ehb+CHlH9NtPH2mkODrCI4T94jGIeeJyMqCGOWZhgegISupYu82J0eOy7yzZacKAEGFure3tsONqeh9eq9MWvEIpkUKxwY99yWn736X5pETYh2bn4YpQpGo7b4Kv3d0P5N6KTr+dyFZGSUmTfqBaAXMv3PQNSOsZ9hn4eAghv9lOBjfBXIWFIwj5Hu+5S3gceCtV/MU04nIDdvrebpwBI2ys1fPnvVibpvGuVdlJgAOw7SFjbm8HcIqVckK6TF6Jlevz7ha5TZ3wiYsBlBc083atkoc2hxDGb8RrSzdCuVd9SCf9WcVYd9cy1eOEUlL5nuGU0x3f6G9aDMocXOxutXfQomRglDzk4jyFAx3MO8HifYHxC1d2/J59Er+NyFS1M2OSVSeqns1LvL1wh1E+G4+7+C2ANa+4b1qmFmHg2ZPE6o61ghFLWDg8JLdXqALzVBRIOeCAyrz5wW5mkOXe6MmbS1my4PIeJowWa4Rfv3CxrYVQB/HwdXwn3Iw7Qti2bUOmbd4qOP4j03IqgktRauwEGSlV3wuB4938pa+yc7t3J5CF8cCw9X63x8PAlvVynkT9/5+J4Ag7genbDdW52EE9Ng3eCFPO1w0N6E6XtyWp1hu/OdTxORNO8yUiUn8qQgVHscmh3iNNeCeu6eJ4x2y2eMGi7brgKzRIywcWck0PNPYJwHhC8TkgLuTzuVdDQXV6pYsFkfKzRS3ggPKkxzoId0qsXDneIb6B2Ek3gsjfOYv5hscflCKzWuWSdIdX+siGvs0Pqyv9CZXkgXk+IW3VaFjRLEtHoNTnzGAL2gzpXHkoOEkNQkHaSGqaeTk84OB5ZE+hhf7QRiW6xAX/5LCtRPYAdG86WoIlAB1VMccUTjqDb3Jj3p5eXNqv4zam5HQhH0vfFnb6MegxEcOGJUwdFRGYteFDgc6biKjLxk8dwiYDDBI0y/xbW1NFiunyZaJAbK26yklqhlmXDWSfuEcqV6A+WdTAq+Ntl4ygiR0iywVq3o+0lFQ9C4J+DVjMnStfN43MTSAmP5EGC3J6ZlNIzmCiFVs/nUDRg8xJEV7Ct+PrT2eXPFD5CeVE2UfjlOCW6A9keR/NmaOhvoVOIN2VcuIPDETJ+mvw1yMliNE3yP8XU6uEG5dbBRyinBTsN1my1Sj7TejLZuSi3rxWFG6cLF0J6Ub20YP9JC4VrWKZal073DOPlOyW3RGcmtoLx82Ih4cB0LWpXfLjxagtNRxyXV3SESXw7NbmgVHdrzgE5r0qOWE0nLRcEHmyuVNJIxfCXFKlm9m8uHoldQUBy13E+SsfyZh2RoQCOWZj/G84+5PT+OYIJUrrUPDyMKv8aijCpch01e+nkhcoalPUTCF0FcpSY0DEHAzCZJtB3Ugop0pvx90Y1prjJFSCt6YmHyWsBs+YQI51MTdXO8+mKj3Mg98N0aE6MEDd8oigyTsk8aYwVBVgUFpCOfeC7iXBHoi2o/C4MGmPbu0pVXvvNZyVE1PbpSHXraB0sR8s8zcRcAkUWQoFwVp6K6L7YJsfD3+1wLYHoqlLbuK0voLtDBb7pwicHm8c1a3wiqbiLhInzdCgvfH8bZuis88r+SGaWkpwhLbRAQGPE2xswfSPkyJmcmTAl7gtAg2EYhucVpdsPkRE/0Ftu4hjTUJE7Z9iIxYi89biU3BJtc2hBS+Es9p6CvNeOXqmOKJqAo22lm6zCmgSpzVIs00r4W4cVGbHUPUJ1KRY6v+WAAwptpY3CKhmKO97WDvMzKmj55FOs3LaheOadJwlJd8gnJmVsNpu8vr30WfQ4vCEdH5nCsr76TapcUD8mElL59qFo3CW0GF3v4vAUZFit67qZ7OSWz3+BMEKJ/tdZWePsvB2d14jMo5B+w2F5vKgbEVMaRcqWtm4cuXSzXi30wzszfcR76raXtOJrmjN2aPKe4bJb9eb2+cLLluyPF4JVsSopFU4IYRWGd7AiZmpR05gZPBvi6x0tsrh4g0yVLxQ76b32PpMtz8q8tnyZlcMzsEgjgnCi5CCQCCzOTQ/A1LZTt3WbK/t5YkYssmd63QybC18l5ekk3lLXcusDgTZQ4LfmsddyQ0p9RYkFKCSn9DJES0ejTdumsUrlWBoeTKF2TIUk/J4ZooqHvFJ0C7a2c2a2Q50glC0TD3KDACu5BoNVBHitzmkjRiLgbh0jFG7+grEBPnV/wBV0CAgwT9WUSIHxv02a0xpcOpkhN7fJWIOtW1rw9iJBSk67uNDv25sdqpEoQeZytj+mYXDKyr3pYolG5awUN3zW1QBOsEHPzaU9yX/lq8HdblrCRxb/QhR4JEtUFtGoTMkYoqz/DBJg9o/NnMv//+fqR6Tr8nAEG7PdmBoJADT+bHkYQQ/Kixt173jBEtiXZTCczPll0tXNjG6flCIbNXK2tkYZDho7xq0j1koeC3oncDXcUU3rRSZc2wMImkp2Nf0nm1es8dhJYE7ryA7krWXVacHfIBUS+6fx86gfu3LH9IB0CcHGifm1BndPFb8nwJtSiXesrG8DELXWbQg511AQ6XpmR6ORnQKjcgPv49IVIt2IR/O3o4AMS2NYTOl/srHtJM8t9CeUh81smnSQF7eDc1uvEPXvdO5gGkWCohRtDmi25Xtqe53PRgHAch1C1LRIDaaM8XGcPz6Fi2r3kW1nY06H7TO6hgjzWmPjAiOIwFIoajjmXJabdKPVpbLtQiw3UrNYB/CFJXTKLivYA4UdhMzj9r2HJMb4yL1Q1yVxJRwW8xMZKS1qfoWCzXUuACy+H5EBoBnK1MFnkmlGSeoEE5EwmEAv3RSNDNwm3Hyxm1BGI9HzgZQzNzb8miLkrZ7EY9Q1k8f71FqbNhxFST9M8MLvvC//CUcxRFZVqfJOZENeJDNzUFdSflf10OvGIrsZVQmnN7NvRgZxA0vVJHw7YnrjA8/utqABt1Pi2txnXm+uV/U2poK1F2eoFNEoGiK/UDD9LVxQ7fe02Us3NYQIW+qngWGN4OCzSBLBjxlHAYEHuCQYbSld9DcM9JLE8YKXmak4CyXP3sQ/GLe1qqaQMGUuaPJi6ZFrvcTbZ0SGDEiOqrBOaArjDQ6BCfiI2T5lk5QlQIeUTHSDJFXnmNIqalklQ4XdpJN/d7yR4oOPog8+d98q6PIvr4xydFgaDG3YHbQ1VnggJX0r5emYOghUdfdtEjkpz1O3vorFGoAPCAlOmB4TGsnxDB7D0ijg7tckbKsLXWOY8iuDmOBgzLXhHLNGQrtIUVDp8xHQxYxG5iUrNPHwEY3sjSVWVo/3zaFiLpkncmhCsZLEc9IjW2d74Hr5SinL3FnGlPyM09DHR5wQcdCtjltxwGHcY5in9vaMch2s6161HEFo6eyhb980Yi9orXTt4L82FgPAgjkeclNQQwMXNvKyamrZY6a97abjPTePZgnca5aaGyTu6gIs+vnKEez99jbr6Vk/OulOIiQy2sfp+gz7eJ+L7URB2lUylW95CkgkHGduy0JVauwgyi7y2XO/WrPI0cYSVpVhGdu6CL04yzGKLUFbqaryGmaZNKoQpS6RncMbK1Q4nV8kHNQPmEshmw+VzAeihdlDSm0Juklr+iQLUSqBB5ZWRMi+kVy3A6+mOfT06l+GBqkonSlvMhAY9bvahT6cxULOTSHVc/uk0swTBsSZa4fBJuufSm19Gyz3hqju/1HwCUVH2KY7blJuomfPMdLymS9Ufd4rlMRY3Dwz1UXsZG/wPE6oiyVb9sgS4nrNA59TmNml6CiqXr//D69ZOHkzC0zerHk6MNHOjCem3xHI5u6dSilV3KdRt4uh2Xcjkc+Ho/+Rrgf1itF9gLoiBVF73qrTUci5scD1QGrGqGiIFvH0DeUQ5PFWH30P3ksJu/Sk/0Dax0ElA3Ua/j7w/JuyCXp1yVHuZyBJTZC/IodIX8NwAjT3rFqx9FjbPCb4MLJ0RoCw5A11jpWpSHVwuveGsTyOkq+hlScdUBQHlNrO2qJ1C4Hq/cCgysfpZHTXANPj6dr0qN/IohgngMalKlFOpYbtofV6SdaZR3wN7O27JkRa2DMGGnlGxsCO5m8KMeziJvBw3RV5Fm2hkpLK3RQwZ2WsAK2auxD40/1bwBsBJCLRSQP3ZEMeYFsFBhraoGNNemilZwc5yb54OBHudqTYvC2SjxpIR62BGmSCFcA1f7Sy6xi8+IlhTPzZPpByqBRZWt/hZ36E4OG6ZK/h/HZBypPKR3jPWSOF3rTRGOJqocAjC4TkIpDAW3UNMH+zoP71R+402Mn7VSY/ZqPm0MnpQRLIiP0xeRV/gwpxhTwyLC1aGTz5m3e61HLz6rlDXDaLMsCUfInGxJnTA+myJCAGZfqMhejmQ0RpMssv1xJUTU4svXF6xJXODP5qOWR3sMvrO1IIyjYhDPZlxR6TkJTOuOLX0XqsQoioLIsEol723fUfKb59qGZU5fgMn1IzuMA2nFrqLU8NR0MYn3xrNAsVGsu+PpwYkwBh9XzPCayGaUj7hjJVDMTzYHoaVTzcTLcHn9jx59X0sm32oBpWSLbbHnLuvWAnTUeux7vropm2qt9fDQxYL92PtCre57TPr2ouFIMCOyqCruDXauERBdnrrMpB0Sl/nUmCSbe1L0FhkxgNINF9wD/6t+W33Y1G/8RgD+84uqN9GsWOxF+FQ1yO23djKNkjgRusqzgCPW4mTKd2am7T8yz1dU6EB7tXIQLlsWZO5nWLh9jBfAIBnXP2pzb4sbsiZOQyX13nZ0DPtiyusoBKn8GRw9OfzkwOVMgwXhsqURmdH+gKLDWnrmqGK1kRQrtZxNtKWq0Tsp0c4/0TINi1szP7K2vnaJJhO+v7Zx8A12jOlWsCBUmfRkYeA7Nh67Yonnd+os3+NV6gprlB1u4p2yo2z8pR9h7pijXA0dzqS9WiM0uPVKTlRvUYk5GNTlCmC8qiGgKc3lmjc3JZOS3Vk8OrWuu2GP4hrSuZXNcrzZT+DgdVQhd5dJKh8NnPTIPwdWrZrILEu9hK5BH7yta/oEOurk+KGwSufysxhUT6NMRSulAWg2s9yRkUGoYyymTkDyEZMyrVYUjSIA1RyPrKgCMXNGCcZujGZOcA/BxJN3UV8Mqx7FF+lw30s8qgOM09znHURVz8Lhi5afmEti77TRVc43dNjDGWb0InTPZrbe80G3I/llXPjOz7zA2zgwRdSPmAZRugffJHxN5o0kC999gi3BIa7+FY7vg2LnwEfGnb6Rsq/aD2gRQu8wZBswsyMrNZv8Y/jM3s7NtcESpNdTslp9tK8MLd9oNairWz5mvIjYt+RuIE+CEDSmbrYtSqxCEqoIbwxP7dOWgVqA3Uvlya/z8d63NHkprr+qJesOBYydBy/q1PcON6xThkC1kh3oG5ySNbIRA25fpcUeN+Jgywadnmkg+IHv8yqi4yslFnyPyaGFvBl8SkKefMZPbBnS7ic1VIWivAGpg1X3VWyaaRrq61ynZFw6W4oyvcZPWOJj3UUGTYLLydDhNVUClduCi8Tql7/6/c/m6f4eQxPxzHqGzAChPr1jQYgSQuyadjcNY4n5uyyGOiU1+T7GHHHMPE4+87R+qRF6oHGi6puFCgdOlanWKQM4sEqBBQSqF2B4WEvZ7jy8eZZbbTxTA6czCn1AwmpkmkcL9+mFM2MKxzG92jJt6h+ZDDl+xYZa1t4kBBsEMOUFOEbRvfbEzSUEcP8B8egX3LgZLJ/EwmZs40s4YM4yvAUJKsqYd+kGjpHOERxbaF5Jvn2RO0QQPGE9HGi0fYgTYgkrRP/C/kMzKouo3oG8WTQH+niFJET1Y9fzVDp6Eb7HMG8ICMum+BR/FObKZCcYAnyajvcYFy4fAcZYQAjYR8uzJfIUFLQyDwrr2x+OpUHIpYOwF46emLfY8ZSFravSi74at/ULCOwZi+yKn2GrmY5aoP1zJ67DSghb/l8hbWf+FNPHeIDy1rYW+6r5CTCMgSv8LXfcMYYmDl11UQWETQS2ZhQ+9l3DjzeuNsU61W74hIZaL4o26Q9UB7uBWkuxwnrg91VeRAV0trkGQM58OL6LqefcrPm8O80RN98fg93mKx9orWubJUf38tl20WV58X8RvQqI4L06r+dSztxAjuMJ7ah2KL0ivL+6phOO0n4UZin2QefhsI359n674G+we8Q4EqP14kknGf/AY4Pp2hc4uppmyvL7ReE1In6uNmgOrDVoAMD98SAmKPYQ24MxGk3a8yAqO5GEZkH/k+UExhOdl1X3j9AeiMau4EXWnuAySAEczJunFK7gF0Kd7XnXwlkscy+yX6oAIv08N2g6yGOM3gol4Js5sCwFFAoldKI7RPMGs80twPkEMCKW05pSsdFjRkWslwBkfbK5w7ek9DQ3WxdBAOhjQKuhaQPX1sWo3lbUj39N5lbhndIA/5P5IGPEtPQy+5uUOUqyg8kviFDK8l0Q9ZTwcFl6VRyyHdj7fWBnxnZVBkT4DCD1nLKZeWF1wrJTxITfi8y5nUuQR7aPx3JUDjdgy1zc5/170QFHTkic07d6U0Rwu8MwUoVLA/x97I0kDKnd7v74nKD8L6y2Pv6r6iQlQ2lJZbOvMlaSHpd5Vl+Kz2EccCxQ4IDkcVCr7ROrd7mm8bjfsEFA1zLnh253RSmZ9ER8WeFzwwo04UIz9Uu9bYoNtBFWUULuguy5ZxknKqrlk9LsRsYdXOTZStDaDJeHpMc4NZiEr0f97ypuNuVAXutQ2M+wR1qhPuun/JaOVtzFoyg1V6pid9pxfJtnO7bEltmp0VXZUn9CzbPuFO0mARVdEWuMzNwdfESJCJGDt2HicF+fyLtZimOS9MUXL0Dj+XfOsPCVftUze4tNBsmtZboLDlLm2RC0bZfJX4j7TryxoamZ2mnaXC55SRlARPf672Xdfe2PCZobHUUf8KEgHMRRxqrD378aMC6yxPI4Hlc9M3+hlsweeO1NcqZVoGsIs8RW09szZawV2MBVDhaDy8X/5oOzMJyOeNOl+YJIhvShSSUXSywkIz1fPHB1n0NujUdk2Injdf64p0R3paI4/yG/wEkgclOoe0ax6K6rGO3hD7SP7y9YfZ65uPcJS7lvJNUir/mnlj01rgPHFfkBx/0w8MLtewmd12HS7oNTbzyQSvQM7bujnz1/xgOFg7u21TzM1jJiSoGkrR09lgAZFWqENsqTCm2ns9Z2LuJ2TgcVFgnp+5Cxb5HR6r3MEw3NxqzOqDQqB2txYd/IIHdZ4/895VDb+HuCxYycEEWt/7iyhyqJJwFsw8uD1I8XNI+cpwQ5EWeL5u+nziC/WLFoNChBd2P6UnqselaoDyKtwrN1di6yIMc4KFWIqtFnAsEP3dolytz4Bij7WhvULBCCiIKg+D5LEKbZZ3GcNnsa0+xkavLZBocRZSjspqIkQxCf0QIjmjfK4BbvRNf607HEk9zFvKJsL2CFkUerEHxGIGLHFze6GQsyygf1T+Qhjgk7wQTrZqSckfX1ZoMPRaxFH9g7E0fOJDBqfx8BPr6dpStTfcEu9xn50SQuUYFXE/0/hc6fX7LkgPEVmr2ewtEyQMe2mr65dHk9qLuelRvMPdb5VyJnC15RJfjiAOfSPoOM+2EAJckGRqEplaKp7S2potsblQAKWsrszu/PysOZgqKSmsV9iT3U3ZSK0vlNiur0QNbwl2Qn9EMA6cTqUonFRvBcMiGbYGmkTTAMn6By0yDuq346Yid5sR0+S3s/lxyAYpg8V1gOz9ls3QsqVRtGPOqumpkpQOxV9Ra4RoAaa2MXjliApwInaOr2P9ahZHKy1iP+6bhGP+2loNCmNKzshz08y0d/sLtLJh7c6lhDqdgELkKJ3m8NGcqjpDjW2Ds647HOcL8sZSAPrmkM2Y2+YJndHeM85wSPIXrDxuMrU+J3Ls8pzy+BdjrKqmJam9bPjcQ0Mo7FUC3BaQTc5/tU1lVnpDmBytyoYWE9ZuIBCe4sBg8f4hud371L0EXr3VdYqLr8Wrl+L5dMiT8Nc5S4s4JHdEcHmCnAk+QKw4xsO6NGkcGdFwtviTHFw+ayQKdUQWirrQ4PChP0PifO+KPVBiM4wb4gPN7fMuMYU01BrKyo9AdUeAj2HLh2yCpZ0G2Y2ot8xQDigNIO4h21RQS5lqKrbcu0eNrmADJ5qP2ObQvKzmSwhC3vOuM1seHhkpgwUC/ZOAodP0xLO6URs8qrm/a/Tq99AaMubX4kW9ahAVBmPq9CS2g53n9PZSLAs0seiC++SiwOqFP2OnONl7iaJsnAlOGdKkM0nF4WlHrNgcXb5xRxLppLUHgWyakuvJej7dz9H2vHKuOQgUB2CrIxLq1fgw04+uuYKbO51MsKgyirigYE2xqx+RGqzaHaUQcuTV+td/1wE2Xw4lTaJgPPk3Ps/U/FFPAA0DALYiG1vYwV3BPf9r5+UA5gOsxRc/o5A0TNwPwthV0dKY/PMQ1J1wjcFKxjjLGREh4ia8epdzo+yknvfcDqAXNZ3/RU5wtvfbBIfQgPLH33aovItlI+NJ4uj3FrfOJRWwTeOgyjSB2HkXd5IHUlWGvHN65+h41x9kG8yIgZbPfks/IBBuEnHIPAy8UXM92uR7rcsBrmYcISS6rTOFARBrC/J/daZlgnkvxzo/5bSUCyzE8PyAhHdROYGGG1TwApYYT9g4FhTVBBfDy6s/YKUKt3Amsie3T2IHt9i2SQEGXNkSwbTgCFpvORb7aBGhqp+02qQngTYeJjqxj+CE8MGfknrX5pGDG/uUv7LIrELl4jo01pwshGRXC5Tk1vK0pXeQH+cIx7kWIh9QrZKx3ygy+FHHKiWPOWE8TSnQwZ9M8Rn4EDiECZjZHd2UbIhGYrASzmFNeLsrkmW/WMXC0ZJFd5QgrFJnorkEW9MBGfP5xDL6A+GRVL10L2ZJqbZ7R1TDZvcu+KrOEKtBISDAL3wF0YpVWWOiQP2FTt2eMTKnN5q2gfFuB8ybN0+lD21k/8avgqCAdIuP2VA31SNTm8xOWkynKnjiWOrJcYIKF1WlVih4jTuwBNgh8z2HZ/YPYU/EwZ60IuunPcYwJzIQJvuad74R4vUM9dNOJGBqXfWiR/1+DyiFotN3v5yjzF7pT0hQ6uUN6VjQQ1iCHfji9adV9Woic5999oKweyFAtayLVOpaRVq9ppJwoUM1hiqO3lpwIeCk2B4WX0lEcVI1dvDx3qEerY9XaHkOxDNlcHXHuUYu0ecVYzUinFmGiF1kAker8RBo2LWIxNuWs/zI9IEVtPYoqj2qganG+BSWjmDSalWG1LY3hlfhnswBwClFuj546Kxd1HoGMHW8qGLPo/7H7UH4vcCGhw0UpNaV++8nDaxzDi+MKIPErm8R5YHH73BP1PZJYWUb3KmJQaXUqkOGUbIYCZZewWnSVVXOLHSEGiLSoz5DT14CLBZoTx/LP2cTdwjPaTcJeILSlgCfmyNk5sJC04kXd1md5jPSdwNzl1CAACCReDiP5IrWAuX7/LynzjFcIPnnM5mWvv+jnJYr3EBVYgVOUs9A90Rc5cqfXqtayoEOmKWsjhJvitSQg8VGRd+vNW76d4aPAbFkNjBaI17oNZTzUhcNTn39We7aWT1RxlFBWw5WxJeJQPqvMkXX15iVXVGdvq5rlAsjTJwgZ18lEQIOjcCqvT9quCvNqFm49J6wVVkcA2ObvLmqXcMhyRuQiDw8+aMWzWheX7VYuVRO2+/qG6VO/7X0Wa2j1VOnOyI5+brxIx1I3p+VYyv/uuVLwBfwFD3cfJJ5awNIBXc4GFUt8aytEmlXVQB54xBvsH3AtBAe7QnXGtCSFr43iSK3TRxwHNAI1Z9poVXlCoppoSqtJ8NJdbfEfZzP637C3qthWp3MrJm1q+RI+39qkWQmtWHjOgI5I8GKkK3Xe8KqwrFYDquxtTwUoef5iNSmSxLrrvRb3PJfLc+giR9L6DzddR2yLyD7sInrHj8N773OzGJIiDHSAR37vp0fC0IKlr6MN8ybFBtIXRv1TY/7tagFtS/p6aChCqlQxQuJTMeq5j+8WggNMApEbYT/3eQwN0KB6CQC/2hhPXXJWVwxu/uji2e+e4S+wt4itcJ2vGqgOKeg/er20Y2Oe3+yRZFCo9rWpuviA0W1kZF/OwUxpA+J7pQ8dnWFx5ROn2R65pRuCxGisjdMP9v7RumnDyhJa8CKCZ7ZBy7tBvp0i9pyH6om2aVIuy1R/8awiLtGwirukVzicRlzOpvrz7A0Y6WlvE691U64UdtGCvgApWCOcd8/vOBD9JP4O4CspiUh/6prEL6MSkhKbTroyExo93MwqVGdHq9vFNpm0iaTHxQ96qJ6SsBG+2s418i7CWlsMnmu4RuxaAkQymb+UM22kvMe6G8ZxCr2CYrAvVz/oTLN/RgldCEWQQlMvSvks5o3FxgFavztHwCp4YIGi18zv1cWgoWpXqrnlH5XoMaqmcpx1gt8FtozixdzAGz1Rjzhro6Ax+lvJBM0XouxUSdS9BcZOMDi211opXLzI0eNSMDgidq0nrHzGCFqZIJ+JBC6Q1WZKcJhAZL+CdPD+CjS35gu5RAYXOotwA3vFa6vijWTE5s0d4k/jHOH5IdRFbAEwmvaIcw8PZBvAsOISYXVE1EUyNG7bAvAMaQOweE7WbYroXkmeatPZIuw5ACso76WjUwoKjRCPLccx9LrBPQeeDcACmrChxXCWKmVxpBlYk7JZAZ25ySIODUTsQENPe3m91QiiAXU4yU4Mwfv9SqLANhtrwNWQUdIF+6QFYqvvBBaPkHmYsGqHWPhfME5YVjROwTgPEwbB6hL5a1RVmdAwdw6CCTKTL4Bt4IioCjgSQb4dUW6gsN2wy2q4dCyZ8wgonq1NBBQ57yUSqUU1tY/3gJdyJKuvaSulIf3Ja1Z+D08VmHeBRKhLnbFwoBbFdgBWthBD9ouFphUMt/DrqQX8FqKUvSamSQ3p5caEEDr7XbqWl6aCF4bmSQj5eMPUi87tcXOJmCIU4THsKfguoJDEom+pVErF0MdKgLUp+Njzlp67A7ZDbPbIcAfA4anyHVj/bfjhi9AhvROenZbZ0KsPsra+DvYKWt4KnuwdH4ur63PJezAzsbE7Z0X8h54qYKjmRXqkh7MYGNBwkQRNUfFyFHQnwB0XCCU9wiYGxAqGiZP/INTqeoAcvJ0ERo6771oFrfFB2QnkovnNO8fa9uQvFtcwoZN1wly+l7v4COdK4aPGZzmoCu/1ijIej9BogM+4saggarXu6F9Q2U7LtAPcOBtK8+8c2wq5K4uU25/gk57Tp2mkosIY6uGTJzfSK4JvMADyNpamquiAoqMEGEmnQD2Uakd4r2KvsrEfbpcED7nux9SjQshL7oiwCITTBE0PDPhbUZCFhFN4seVei8d6S9wYlMFYU62tImjfYcy3+ECQjw1Y8dVkZB9c2YvoOS77sufmibUfUN5Z/YQNGVizeOjj/QxM4N5IOPU8eIXcbUYHUTADzkqi1717nToLeMoc4lw2dSbyRi/IEjpzzcYrxs7pwmZCEZOEr1NXQoYTf4GLyXHdi31cbUScaaMTpl0VoSGarScPSb2Rh6iGIj6oMQqgknitZ8pSp4n4+Q6ZCyAMUB9OMKwrii+ohL4w0n718cPqLnxLYF7NyPXwsDYnG+bu28Ea426G6fBl5R7A8pNWm6tBaJJ7MZ3M8PQ78RRfhcApVwtQ9BGYCV/AvFs5sUe/A9QuROvYeE4ySf3pqLsDzW21rWlYTDXyKZ10we5CbwfwnTJ6n/JmZMLG6vnz43Vmqxko00CpsXU7QYigsdtBx3Z9gHYYufGE11fR3LDpzotB1+NfoF4DpFB3yZVXlClB3mS+vuY7FmbPgWtEOwyUxIrIkdgHjhOMl7F4W1KdzeJjKQ94MTH96KENWwsroN+6ei7EpodXgxEgMgM4BH2mzL8JPtgCe5FCtV4AeFJwiBaxrqj0Ku0mcsKCCPJbzQNeslXu6pV3UJc4noMPDk/FHUh7WRgi83I+0BzWnu8FOwEHCamDJoHNg2wTupcUX6NWJImHVxUq4Uo5XehDUgnmYIqyr+mrLPiFtHXTW42NB0/rajAwiRjXXMz68Ac3OVzpaspc7OadZkTOHGflhSPxvYtnjoOTwBk3ti0mb0zuCKKGizovWPZOSczRdykewF63GqIO47s13mJZrZ10J9iEPPD8oOu1ZiqP8qWgxZWTCj5hIHUBVjRD9CTt17ahCvrjIyfIGNonBLfSvwASnV04GgZ7OCa+p7TuCowj5SumPv/S/4BJtYCIiIoZlSCu3mMe3ynf8Epx8PjndaJEynRxj8R0Wv/2WbxwqbmAau0P4va+15UR6DudYZ+t0WxoLCNLv88Np07ZrSxLRIw5sd5p97dWlI3pqK0meKRHVke11Cp2yqYgJW/4SmslQ1uTH8MuoLE6xmhUTNnPne808KFnb9NMlaWOg+X5wwGfNLgIKFrjY++O5//13KVQhT2HE8dN3Me2+cqyEeRZIRcxpBJ3Jwg3Ab3qQ+Jr7P9v+6DD3/7cu2fvN9euqSM3zvG4Gxjzex6774i3Xvl+fvR1ga/0FmqaRZ9MJF7pKGC+pKVLnj+iKyeCiYVFkfQ7r6ytERK37Z2t52FYJdLVk3ZIjFxJkyJf/2fSmrgJzjnslax0ShnyywmExTYXzfJNmN5kD+gq79aL9Od3dTbPy0hcZnvcqWIdhV6pxzm6CDu7/DJH1wIvUW10yAZzjLIuqIOybV3osppIFGxsfdZNVBZLPmeSIlq6A737OHq9PfsQ+5v6HTKsSEaFAq+7CfM05wAf7wISQv/0+1kHTvW11wRq0jcLeIaGydglP5RiKLo3iuofT/mQuaiWqcZvuMI+2vO/yeWWLaN+Rz3rc+p7TpwL0VPRH4dOnYqsV7pSAqIzCiwjxmui2hWMqC+5+4lalp/noXwykk68M6SXAckZRtn0xkILZeQ9o94xfxQEjJI4I1yhfcPK8NMFWaxdPHEEse2fLCwdLc5RAeUgU9OYavCNseCLGdP0OxTGOBf7JHZAQaaz8s46M7uqRVupjbWD286UxvNom0xcJFImqPCZlEFg9iBX2j0xIumrpNBIJ/1a4HbYA9fQlulxixBpjCURTLBpK3M2tR6089FuyCzAtsCbyiHQSR5hO9P4ne3LriwR/39gqY4lm68O8nulxiMHdm1PsvuQfEsbpptkRplvljEZXzx+26QYfbXJe7EuefxotIVrcKKvnQhdCjE9QLGb5ZUcO6a2WTWbd3+2Flw3ttKTurMdAARH64IEHMzwcWeQ3Xw6mbHekx6KkH7ncAgHbMVBopAPi50XbBAt3TNA0/SytferAjDy6I8u+X/aHDdmxpOinb1P33Y5nDu5Skuj/WU31kwDqEP6lNVaeV3NaMk3SRjlcFx8eSRsP1Bs+rTCTHSWgVXenAJIOD2xBZqzLMvJqBiN0HSC0ImjLa93M70nM+grUksxtQad+AOt7JGtldeoC4lPMofFyFZBB6giJZo8AIYF3/OWvlp3wd5all4xT8ejazQzxdoBmoq3EBGfKIYdUJyxQgQr6crjfdMjeogrRSqIlBQtQajrZn+bYyn0cZYBOVQqOkl/qCW5JdsmF639NkKeDBQfzJFwcd8qS25tHtMO7z5iY3r1EOioka6JWyfsJv6AlJNDjXjE4P+0XrvV/y5HzKB4nQWY+Gi8zTgzBmKnZ9JGsCRLiLc0ruJxJGUjWrcd6ZPR1u0izKY8O1J+qGM7gUwgLSco6F/Bzhq4FfEYqAwPYa3E4CE71AG0Vo5SsvgD1S6cfn5hoLZedf5hIevzwvw4YxUR/F9TpchV41sRlR12y2s7NgBfU1nSfuBWhuxr0mqCNuH9O5aVW5eKUro/fTNOAxYD3D0/An/2QJfv84nvwwS3bFdrDIinFujEM9ZdGiN6OhbjMpHxi35GLH44kJmg/+DRuZNxl8mmspYFkvkN0y5efg4B3vbe9qdc1jYBANDK3/IuMAK2x7f3VbsOniIy0kfz0zHSwNx/ax75KRly3VDwgg9MF3qSIDtzlZQ1TMLuLpR0tLJtafAZNotlI+6FYtShZO+2tQErgXV5GywUSUnG9bpmQhRSlRoeCQWLZtBOqdelYthPr1XFlEaJK4jhWHhyB9e+tcTwhPO6kDi2kJHSfWAqMTJ+GsfbmAk0H/A6P9Abd5rqSbUUCa8oKfyGKSRSRysrxoZKMV7rikNXYY4ZapfKT/rBv4FE2r5CipRs/XlVRi9Ms59QPxThlEyEcJVLyb5NMlFTyAgB7IrLyO5X6MeVrCJzkLFz4zdOC0rWRuWKxPCvuCAZpSGwXWv9holal2Ehs2aBMp3MHZr9QmZC5vOs5xYPwTApTITsRLHxBkLzXh11cyTDSodsqysL4czKTZNMuIJBRsvDHPNp5RimopcELq5vygvfBBgeuU0yNeWoNP0DrrE5hLIACDeOKXg6ugRhR81GVNITeSZayRUPqaK4inOgxYNUgNrJNTPowPZobdT0NX0kMIdwYYapLqKG93F61BQ+aEvSxOnKSL7nFT5/Rk4JxA5Gv/YkYJJx5yx5d3IxwJC1NsKetmRlHSTg3tsq1plZMdGpHId2qlOMTEqmwo18SSIzVELn2GuPmOpaucJVItVrWC86ADyLSJNC+zfzn7OekT8tmbfuwPT1ZD0uQNIuU2MFK/PyOYsBME1lZBwS6fO5WNdumFZKa7n956X/yS+vtcYloa6ezFZ2MclFM8eWw2u+qxmTbglKBoOQifIQASNfj+w01hNr0r0r3GfCYfZ3d0loGSoyzKObcqxNP1oAQhohfhj1WcvYb3m/UeHijez282JlM5sBEbQmuaT7+1sA+I+gCio1o2giDLDSY80PtOAYizgq87kDZ4Vzysh3Cm2AlotkgpkAVY1XjE2dOqyD7fuW3tw8AP3lj58sT6LsEcAU1BG33WtjFH7DTM7aglBs0oMcdUIOwHderKMA4a3oxCxJchD7mmWHcKMBVIXaEwBjDGg1jg0XavQILUWE+J6uzh/SUJScBAnf6jS0P02v9BgtV3gk9+oE7zhf1b/X/KAKddQDnaBWzo2R0oRfjsl+KHglfxrcvbRYaOXZgHSAPCMtLO8fSGlMFr9uK+tS3fmvKNAPyDtRcjoDE64sUYaVIK19b79ZhVDxW47pIAzvNwXjgTn63Yv+QHouh4P103Gc/X/8ZsNrJGJdjxzJYTEorNLvMXumhw7CNBUkOgpNrdJjEMhTf0Kr5JrCcjPkWLmcnT1Xgs0u7MtRuKfWqz5GSeRxFLXrICs+TeSgfG5VH7h08Ntwh/l4VsviHyEMamQCtxwdPbhNDOI802WuKA3n+k1YLXQ7KwJFUM53+7WadftbTpRCJzO4lqnb08TzEFo2xeopdjhIG9MEDF54Wl/4wNjgMmn8Ifk7JkjNGDGCnvENUJQwS2/qv1nSXHQE9AoKsaRxhExfsqkEy9x/xFQqfoOU42oezSX65fnN8Ipv3hKhtOhd2IlDXuZ8ypLnANGm/D49a/XKwWns2uyZtSI0SZCPmvPZkmEzMwJQgCmn85ZgAYaUwC6sFP/cjWgJNB/qs/v9lyI9aDA9AiflfH4EEyJytVL+5TZGrvox1vTD21fA3Ff0pbT+QPPfU5dKkvhKSCMeCtrQ6ZssGQUlFQKO0LdtYtlxKyop2qKG+qMMCUD+tLx1GVhmtTKnQnNGCCrAXmjM2ow0bcQSP22ScaPYoegvatog6DkmHYcgNxquMlWUV2fL9gAXMWCbtYSYfA5g759bE5KWgRWfSu89zzfKsjPVZBzLbq71Q456G2xlt1555ZjJBytmUh9U53wuiPX8ufU/ENU664kfX/Tbs1TA5fTpjHdj565MGEV7NFdUk17RiyfPFjzxDPzAXZNKSTw+vV41fn6Gu44nNMsClroheVlfauVA/dVN1nSl32EQVZGlRtd9BpkaHEuk7usQRmbHiHDd0T3j8Td24LRYLW8G+Yo5caEiued7Y3UtkH7zDu+THZDWmuuo7cx4vZYHODxBcHEk/lCMb473T+hk+dwV/iLZYeqJs5/yiE8PUpcPn7vPpvb0oJdaLcZqGZa+adYTT9LV4+q0/NcvV4HEmvbzqu9gjRDmcuXJ8lWvqzkMD5gNSc4X610KdlYy3HpOwJsKliWY8SIfzik2mQtmDyqDwnl6COlSWtZuMmw4CTyVzEbOB9Q8k6C2vOWcPBAfS85LNeuWptKF+HAmPIySzhdpk28KasV0l/4gzXCuJSntBZp28Gxu47vagDl+EmvBgQlDDla2Tqz/cIbUd9i96Q0/zsA/sOK/tmzYBsVIvgjJMeBrHFeHaFAmDrJ8VVqR/arX4PJN3Pn5Ogb2kNcVRKGuobCKC+Z5MugP3Dge6Hdoc3z/Hwj72s7jqGfVq0yVjY1nTGbnoHCddHfSQ21+GqqLCW5Bp21QPUGorEmMBzDyIDIRPr9KAN8S2zZ1y2NrXkJmLgai9q9C7/2iSAKv9oUY3u7cZwH89zpjdoeTLUyCWl3Pe1D0sy7yNU8AcAadnnezzgsG7Hg1B66ifX5NDU2vg/kny+lXHF5PZgfMsQYn2382Ys3KQNoZlOyFC01RWe8H9mqFxcqVf8s/b6oEUN5a1naoLG7YbJtKteHaTd929Rw+2UsxLc7ooKdeAZUEhTz+CPt9r1HO6gUNm3NENY+cMuaPN0Sf4KSZbzuUBkmaF2nxNwRAedXZw2+9GTYYbewV8/tPxndeKXKzWqRwh5SjacA56rt7rOhjQ+5ZTVHRpgZlL5RWOnZbz/Ou/FuNLInVFcffkt+W7ALFMReyYNO3a9KYklWGLxew0K/UI52jaC6e4otZY1m3jtxaCBFOepAZAal5KyKxoYG1Abe+h606WRY22PLFE+T9U1zB8eyW0Ty7dJTuIcoWxtSHbDZMNoYDbet6Xxw61u3WGek6z3N827Gjn9vpbdIv+WeN3QgqsF7mRvH19pTemWOhetMrsOtTWTmCASf97aYIndHQsM5pdvbtK2kig65TEVBm8WJohVNvUx5RSZvdCzzenX6fAKNk6QqoUuXeLf+J8t5bVAw4frXw2yVTG0DkVA/FXebTGMQUsaAr/g/frqeULvclzCWc3P0h8cT4KDPW0HCFqtg3O9AdxMXmSgFPC0rvyxmB+5a8I4dd+QoGn82AjonDqxzd70sZjaoyuOxUymvehjE5IB50mEDux9N3aKObVjxjOItYCtZseo4joAETkQIuG4yM8kUg8Xd4okv8XV55TH8mVCnjCShn92dawX9J8aMlZBqkxJ9gKV20qhWN2VNVvAmSYFi9NNEAtnwCajXaBYHM1e5MFSXao5jA/a4NEfBZ5GPVjdKVyL0S+AMFRMgUgpYVkou2VgMdJn8LpgrdTWTwRY0iWalqU8JgPd3rqK2djVlioXc4v8P2olaK5pAWneoFRKdfXOG17M+XK1YP/zotao3YVF3zOROZm/qwTLdKSv6O5CNa+jvIxPvf3J5R95+O+FrTSKjSmk598ZRn28np2o0PWnrNSWBa953qfzkz6TS120wNzh1NjFMCU/MZsXg/0u93huUI55eyBPI9UDpRfnc0LXJ1aDXDzoJyl9QwqfIIA8zKgSuzkuUpU1bl6mLNJ4f9YzH93EQgLQMn3IvI7pKAXy35OfcyI3mj56aP69c3JMe81IdZapBFCnhcBNthUf8x1t0+twZa/Hi05hFTdnQLaaoFMvEKwZ3tZqokmMdLju2sIY1E/U3C1nsDxPGWjBNtZCYVEMb5Zn+x5AJUZnEg3hC/mgOOe6A/tMwJFK2ESpFfH8YZ0HHdP+sQsp67wHByfDe3D7NHHNqtb5cG29wIk9gSQ5/a7v75sL4hr5IrJX6qjE6RC3VVPksLaBBT/a1jW7ue0voagKdkM9K/UgZ4K/j9r+VzL5y2/JUdn3IjzDnp6rqATsg+XfnWMjt+t5UlktGHyVnYg+UmCHjR0fbMQLsUL1i/JNSWUGg+Rl4yLPoICj0fzN8MfAqXjSfDaStDhnJGs9FOLl6ya2j76b4BMft1Dg4cQ6dTWPLeeETZE/Ct0yxC3L3SaviGlMf4O1qPZBOWzT92rgdsZaYAS163miQeM0U/fyWlnxoe184DCN8vY6olScAh63hA4UbOeZj6kd19gRIzDwVfhuGlGywMYZDbouS0IVO0XKZFVe+N0xl5UPdD9pIc97ArqDM4rXSKyX0V1T/TZwBHxhj1QHGbSln5VDqmRVd1uKOx1LvCRhg2QtX8YmGGkE8kYnw/pZ9fuwxeY9kO3QYQwhKQwsm9DkSvRM+QISXfizIt5yLen/6Sb1NvZUSIcnRghffGCngzYD2lhdvlOq/FZPYcTgp9NtpDyVOOOCctIovsTX4cjVf/oo9HdSP5Z1GiXSd+2/2dUUISDhF/kJu7cZgg380BtMEO6bt7TtJvEYgSieW0G9XB4z73UK9ideIduaIz2XG9nLptjmlHS0zp0nb5peB1v8df7vojdx/pODHfGuVnBKz7sisOb8xBP+e/iXwbIjyWj8U8DgHX6KMyTjUJKHxcJLDrtLYZl4eBweZESRQrn30aHv8+Fsjn2ZKx0A7iJahiBarK5u4N1YsG5bj+5HJi/o2FJKnz2bXI/2CQbvfnEGbApMRqmuypJCyQa5buZF2k91jFO+Gbh6kfZG714fp3EihURs+hZVMSUAmapvvzL11KgAoN7UcrgINZ4GrToC57gEC82yotr7TN0ArAdQ4CT+SVugWrXfFFf+PuViuA9JXOJidgsE3mcTNCdwY+9jbo596+ZuUselTC+7lRMOi7AJeUiCwb9VX+yjwFVAFW/L0pcg7yTkkMb1s34mhL2gi2Fy7rBX1kkDQHLG3nnNloC9tPb8Md/82YM9jJDiU573PM50qNuastlILrMzKMmOuJt6FSrGfikmdIg5G3VFCTxabhFcuQ0pzxPiRDubiZq/E6oF8JKSSKEz5kyF0MFWfPKmsS0yMvV0RtdND8RdWy8CLMF6zv98djjjY2pi9Pa7hZhM1kB+WUW7qIQcNHTHvJjW2jUly2gnWod0JI86sNFHzPkMz6qY7O8pfKhirWtJbNV90t3732LenD2yy1HTaDlNqKIrzvamsq5bK7M6GjoFiplxcT9TCjrHvVV1kNrW3V/CsZJLRkSS1bKKtizkre/Uytd/OuRKeh9P9s2Bj2AQ7vS+8HhtdXthHODzfoFa6dL1rvBFYdl3f78lG1OPIdKWEvnrZTuznUl+SjFCHV/v3ZO3htqetZMUzarw4hj3Vb3vNDGEGerQe3C5jBq/Vpqw5C8Pas3tBMgpSmCYd2rERJD99eLVjVE5YoDdsDZ17cVDKK+J3sN8oL0T70M8KeJuBZ29Np1pXPmyDTFT2HMuoOSFf2/NMmf+MFwSDaPC8bkmLvgYA1LyfGvHHrAXUtnlzte+/vt8KiOv/xQo8Q5nPlkU2kmTWd06SYWdj0r/WQJUYzWNHCCl/0zXl8akOfFfk49L2aWJ8hQ2ZL/im8lupRcmk3gh5M1G3qI81NXwhE6Ui8PK58Pjel1DDdGc2rC++sMQVcsi20TqFZ5kdRqrDUOGDNTxCzvAkqEzpRmu0bp89LqlP7eYwQymzvbgRyXt8fgBRDsbLm6yultNo+orJV70liLpivLKSxBDq9UGn9kWWE9GK5v0BfdeQzRKvbbFIFKmECSzoaaCCab1V0JfNpT2/P1gjVaG6z5mJ8zu2dTqtKqGhufiOmmF2zyFOi8sJ7Tnibk/kv3a/ooGajxivaztcmsgXlh6sGZtJpcqWFiUak93U1MnmBLCWMEzhXU/ztwvZzPIT8uszH3lQRFU71RRFR/iOgEGsgmqMLaWIQpGq7d5oaOPk0Y6bcBN3WfqgYF63dkuKuTh7JS5yGK4+hV2FpLZpsh7M1jxRjqedac0Y0vWOdLTXR8wfIaM3EKWGPhoRbzcZiigAmHFqDcRiU3K3/35esQ8haJZMpuGYirLPI8xbTKG6d80ycX3omO011xjjkQWaeOw5l0SsODQUPdI48YinMMNgecco7E6ggF14jb3UIK2lQ9jk0G32HBGecYRqOBlQvlt430aChHFZ/q+w4tPs9zC7GxNvX7a3icvvfP+ImeS1trNTlL4zN1/NpEAurWgazYbb5ido8YNRzF2cPU2m/ox8TmqsmUBVnJIrF0zE2cMU5kYLMHGS7NbPiGZkb84uVJ23JWnJ33l2RdxO1Sr4FTWZExB3bWjrq72oDmklcHrFL1dRDX7pAyksKmTYRZ7hStefbxQbLF9j8dD0jmOD9XdO9NG9sZVLHR/S2aGxvDijaHHtmNBzcYLm5UtwbqkabP+EMZuAh3JGfhLXnt96IlS93sbkffJw4t29xDRo7S96St2iplRHzBrqku9tzVPhQh7sAZayvFD9vQYxky55ncDui1HTS5rTF5mPTWOSFtmhzLi9Ui6mp+07k5RCcy/VVeEYS53I5qomLzDwz3JT+EUyzl2TO5S5tvsBZP19tym7v46WSrbxrUJAxU6F+rGn2KZwrR6aPEWkKISbJPzTjPMHL9RJAKnud2Yf/AFuRqnhpYm7I+JJghTtlFkAVWNNCOahrunj+HcitFuDGscrJeKSDZ4SXBoj1j2YPNrPSAUGzy3zIJQ0uuoTtoARyR/OuK4B01x3XoPaZnTazm1mqBLDZgAN9ZmnuxBncfAVQGmmEbEacpJRuZQQcLPKGsaNjrGQsmZZXWRaNBclZwj7kYw7NaxqH8wX5Xx5vAHGkIXPfikXXmGNMyF5L0BfmelQQXVpezNvOWP1McC8jksqOoRWZvsXuj4hhZfsfsUtOhXb1dK2oZ3Ss2dMIE483s+R6udcmLPlUSnr4OtCacbb6kcnTAmVX4Jd4KeC/OjyFTLJhYZLUlu1qBBfN7Ygs74fOPHceyaaLcfQ6uLx+6lIwcmmANyrfzSKs5xxnYOEr5ghEkOGbrAG46h2jaw4c1GnDmA0qLK9T9KJ7Ht3Kk9tMg7LFT4nlHXXAlFdX4tu4NNYzkBhAJR8DXG8iZSyVRUYuA7AZXo4g8R54ECiQ7wDVlzeHgt6YqwOMtOl0/W6wMz0ega0YnXPybW6T8Q7F5CmUE7fV3caHJpGVnI5Efjc3ONzxp3poQfHiwZhdRXCAxL9mG6RbRFRNwoAg4dhIu4LJCeoFaEmJWSpPDcOLoA+v9j9juntg2OI2Ia9TeqM5XZs7pOR69kj0G0Ee5XVtMi0uR4/EF8Y8yBrxJKA6297SQv3nIM663xngGHM41Ffm2V6TNnHWgfCYHtOW/c641ofrh8WpWFOHjk9eF4rZMMQnhN9T0DSAUkVct13JsBc8lCxMM3GO83DZBVvOnx5Z41aqHU4jR6DO5H/LmOgvzSLECxqqYm5FykdSS5HNbZC5BpsaoXXKaFk/mYRJYujmdqydcMQmrYdu8pOessuzQrJqPoDPrKL2yvGoAZtNOxX5eLwcv+nFGDKgOqYUC/U8hO7nsf/m3/hjkmVp6YDDrkZ8Tk5Z5oft3RfXRmvIUaWgUH6QcYopTpaHnHyCc/s5xSK6Vk55SC0ZjW+rWVScWd3QCUcj3uGyu32pGMwbRE5mn7udOA2cQEC+GW4XOEQKo0cXBmFTwSnckcG0dctsnNaHVe7ybWA9kvQpKBBuEGvehSyw3H3a+uiWTbmjtigB7lpn/Lo18zeB3rlUifbD/+MN8kxMJ5V+US5ZUARLTMHMzAME644Hj35eLo5/YCcNrrOnuwndF+tw7OzQ1oQNS4alIa/So5Z0F3+nq7nLZMF9Pb2XkvFncnGmpoJ0pcX/XQSSqnw6Yy1LP/12GV7d6NRWlT0pX0oben4UZag+bZK4F6fIfj5bpmNS1X8EF5Rhy9VeT7IGYb5ZLhXgpyOMqV/vXTKdIw+jE6HDVV4Yoy73K+JIomgxBtY2OkHyMCbadlY0RCe/rVtTUmBpnVQh0qM2lylxo4Lf7vsA1VDUFchWoazy2843eT3gez5bHPi0C8+o2WmxzDeJBao/Ezt9EMZ3MXNaAcl3IveAp1jF8gbPZGqcdkBdDzNuxJ1O8WtPgwPzwsgDNeRqpEPPOu6f0NAoSf7U1v7duCVPjYXQPUu70oupqDfZVmn76Wf/A2k/m1q1JJWAgo3EkxuTf7K1AeUrjZMW5gH6FRZRFlh6aaNzrQz7XgDlkHQv6UxdnJT2NobWnzXMAMaj8tAdFXUJNopoc11Ztz7DNupoai3pdAGO8KNHO6b+4D8WDr5xPlC5Eoqz7Lu0kv5JqZLrFlkmQqrhzt02eYhiBAgBrLggABzIDAsTuAHJ0Xswhr33cgh7JMWHiFCzFKGqpIR54MbBkGmd6K9uW04U6xqARUHrfSLaElrYGlE9gSojnQ0+8ru/5SGr8rhodkZk9sd8tuPCzdur8wUh3G7lCWAHzzSauiGN1BxJUDYcXfCHVuq3MF04XzZpPYIua/mxuW3l+aJI5CKDtKfxmLBgWf+Vj3c9jhVESASTJWHlPWxM/b1m4NBkBxcKvuSXr9WHaqHzh9UaS7Gfr8fiKbZGw1RBuYA9XOwkL/4nd/7zZdf1mRYgeYdV0ecr+qqy5bPcVA4zE5ZFgzRDqx4zOLFP8PRn0edFyJbULm2xopQ6W764LGt2KOddTk2RIu6UdElWPDnplKCRP25/6M5Jli4BJ6VcMyqyJvnj5ofef138g7NVnIq5JC4a0BXW8B/nH7qRdGTGutRpXNZKpTF/nH7oylGkq6xWIK4xv8bgmDwVNWYbgxd2V1yxxN3bHOZOI+rGGptdNH+hOyszsjylciBTlr1Q7Uwz06z2Jjx0HEKWT6WrlyknQSKXX5ssLWpazEFKDkaVG7UUtd2FbmXQMEnLEVuyCzbWq5LXmqCBdQb9uvABDwurvTBl5RO8hO6pJaNiJB3UDoMc9qk3Vkp4XfPQqoaxKYJHDGv7BZ1RVblUtqvI3RPU68mWe07Z78auE5FJM5XbkWQBVHoDuUL0y/UR8/J5p8gFDX+FaIYUnD4XuEBce0kqV58w4GcRYnuMdbZuPcD0gz7T5RiYMB0+deeJtSqXY5UpeXWcsTNy9GuN4WW1UGAwlatSFUy+e6evL2nmE3+01b1gaNv9PeWT6wRuwDz74Uay2NtEP/lfPnuhCwoRGOftHxcesHgIM6tD0Yjt10Sdr9yLao1GtaWYGykqqJiFk4Ni1KRyQf2moDx6LpdC0i6ttUsgsXgUEBeLF7W5MgE879d7lud9h9aSWorfF31xucXpL2Lkj9sfurMSN9nY193B+Jby+RLl/Mvg0qHfJYybrDj9taUKW+uxcafJuWTOrapXxgGI2uNg9dCZEljDyHrs0nlI2+E+oqvRDJs13i1SbfLPLc4Vtx8+HMx92OA8QV1zHVyS8mprha85IH1dIACS0fpzNTNsWCyzZq9LJRg/SP4TFJZifyoAL/MFHb2avwMVxp3l55xG+CJGOzN3cVWVLYQ/wfln0W0RdMyL1t02DcNI9QZt8d15kJ7Ofj56gA/r043/15KNZhW+gPduwXlHoteudv438Bwsui6CKuCtm69ecE0V7vbJdC8WhhZfqXzBaNwJtX4ZYQ9hJ0j2Exx+Fh3PFEFyq61eE182/v4KIPlB5/GYR1IzAkgCDzaEPCqWGtTEpdDBjrJBO9ohAv4LHyS+DMrMSaQXG6KAz1gts4dOA56tb0EaouLigNUw2HBg4sB2dlgT/EU+Ng1RbbHZ8TnLiwnIXA4XNk75gVaQxdeBgIfY4vMQON9cIDwO4cOZi0/PEMgORwzPar8MqSeiIKSk5/C9LfAvSaSrxU21UxMoVygNJauh87TigJiEhaKjhWWXspRNQ8efE3uBpgn1NeEhcYJolL1ifTyCGNvjswBK5EATNYMXiHOAyKK/CJEvSUAxuvFkKET0gqK0UDFrqFh5oDVRmhOqVR0zy4WEKvKJ+SSonjiEjYhRKvNqpuLU3v8Kpt86yNitfwY/uU+ZeAY/ePiZDzups0OfeblSKspflUDBdua1nGKqqmpg2AZcyTLqEHhXYR5D1KGfAzZBCJ8SzyCO5VIDhdYsQSWamu6ZtEJLT3H1a4jguKlyoTjoNZEET1WvwsqvBqrBTMoZGiFNZkLZH6ugUASX7QhS2UdOhLKtS6QmY5aycIA/gJLMmI+0Aoz5I8aY0JKPUeISBCKhrXRUBpwPy6Feek8Uo91XfK+B6nlRHPzgCSY44yNYyIym1TzsE4SIcF7DPZiZqHit2ZnfkY7eqStSXySUOUfD75lKqA6wB7ondzhBsTLRnknG/lZfFOx3pZTtJNIIE7zcOT35lpJznltDIlkCNzO/Gsh8q0I7YsQO3a4qiN7NzOtRZFEtGaqNN396VbZa5mbtA+H8B6If0EnKVxIGP2vdgxjzZPnk/huyk6K6+PU2o5IpPYZ/4EGzYvxqGnMZcSU6gT9W4e6pFtXeacJBy7r84W2OSePsM1f4nIgA85EmiieSZ/RYQglkrEcIGhfVwGr+F5dmC6vLi21EoHWzrsJuLxhJ9vb4bXvFmuLBMrR5uALhJNIAjwR7gA/xnDgwHyMHKshT9a/0c2UJE9TxQ31b9VdS/I7SdZ4MjOnnUulS2poZqkkXF53jvGhGAorx2SHmuNpMZHKEGmDrr/vB62VzrUZaE9MFLnzrmEF4u0QV7T3djZLACTF+uHkYB4CZn6lmAyo0EaFfzvY/I1EZz4PVKnenoUI1pkSYLUeq0k6IrGf4ArO75rSy4GyUPQhezdgIGoSVUWyAQfYBQICReKzwUi4cAeE5cK28tCx/lY5xQqm1kLFfr5AQLW93RK97N1AWfH0Ilh/moe9WH9klBRZO32gpoXP5kgVS7lm2AiqR3omfHmuv1n6jkPLQ2UDPdSZxc0JNaduO4medRVZxTf5ZU45KQgGlooPOrPtKfIwxDuGglLmC7/ZsZWcd5ZItj2afpqJ6o+bWAjdBRxp13+ykZfmgwKy+1ZWeqzlTQ424rN4MLP66cGN2D+o2dOSdleylOB33jUCgadDJyNKAsp/y9lzknt6XekI/db3q+RgjtGw+Slr65TT8p1h5PVuDXBW2/WNAaeo4vMeG6aBBJOkycwDo5zoTaYPZPfvvbBn5N6iCxyXRheao1WSWS8Br1LVzmibGYvlxswT8B5t/P6Wofy8+XxXDsD9BNBQgIpB4SqYUgrNaW5vPzoSvnuiDdaiL0rThLEqlehrc+M/maHC6AUkGBxBRPbWT6Ooxv8GLcBtr5zfrMnsfIP7xn1eCDP+CAqeXX+rmThfg2CgC+ieZ/ezMs18vR/VMpM7y/ihSvBXvzhODq/F1YRE1Su/aM7/I1pPLChGl9cRL8o1bz5c6dPIW/OxThNYGMwHDy1oxOUa8y0Dru/BZJz5ObCdipCES0a/vmeTRuzRtBBoDFmF8Ue79ZDGz/9DFpkeSC3XAu7O1NTuGWJuPIIfDEcSYW98Tfk0FjpmlY+D0sC/o5t91f+Aarl7s9aZdFsQSSg+VlqWAT6YTNz0/f4x+LhTihoUn8Fx5zkZ24X53/SO+vIZMtnOaipu3drOqBjncYfACis2EhyQbUv6Qsqp2xEF583OhTVQ/zdBOTHgNID+X4P8hhgCD409mjizBtmE0UlCMUnroSvGYq572y0FpqeVgrLGjrI2LqQKtjECqREzuVM//w17moig+T+s1d2CL+NRIb+aJ0EqjXODIvhlXiaUfCT8fMv3+2DEHCgoKZcfi89aN6fIsJcuGA3MUDRqjKGFePXz7r3cTVAMHRaEpXh3B12RSDPkwk6MWKjvTPhckb8k/z68q5ai7h1OfbrS/Zx2rpSSS1TndwD6kpSTGh5u+Jn5bz89S7cZRWp7lTHb2QvjKB8YnxlzVBuOpNp8temZ6Gk++EiRmbwFUwZyn/qY8p9DvEVj65E/nzw++Ae9NYr/33kxJ59gPNddVFsvsCl/j+IQeuDoETou0XzexEr3nNPQY6pamespHLispPSGzD6OIUHFxngZaTvRIrZDda45OW1OyOJpE/doCD0cXptNFbrbSCoRp4F3PZodv7fuDkPKxOWgI5ZpeRZU/cqibxL1tj4uAusHbsvWcDUMFBzVXJK84p97hWZwEMZVXnykSQ8inaVl2xWerwplpwO1LdeNsa5FGfdsXOu5wKrQf81h7Jp0D7WEZSblZZS2h7SgE7B/tVhw2YU5010IOE+ENURQ7D9rKhpoYW0Mgtwsi8/uq1uXKXFZ12n7njl9ZG4lJN568P7S1EXj8TvarP2NYgwa8ovfNu8ExYneYVqySLzeKVfwDtgiXHUu9QCwadaDDAMemcqGsA3cHwvPEMnIcumardqn1++9M4r744nWBi+Nh9recrqrpNXMT2qatvp9StG29nqVeIUf/2jYpE7K2cf6Dd4vBd/78cgQSiNLT6ktq+nouTriEAcNKnt1Tuuux/crUm86IbHioGiBLuYEspCEFScobyQhajAb3pHN3gf7PghBRohJKhCOnUPL1LRzKytZt0vxpPv/o1ndvQ9iEy5dwUIB6yjiHgPwZdEKK0WDBDY8SccDS/2edUClNJYkmIdhfACnFt1qIgEG5ZKOLYlZiNkfgwONG3lAY9RgrMGT+krTcE1Ot4ppxBcdpSchAqtoHGA0GF8AXkYWeIJR05QxO3lHStuVk9ExBT3gKbDgkVyBJCl/L+OAid2jY0R+0zTHfiPycZ93gl+MckvxQmxR5eB2MY/N5fIOztgKEHnJRbIpftpmGNwhwf/oa7JNCps9msod1UzLvS3gOKMSWE4j1ZAR/o/Jzy1MVNVnEtjgfYM1v+VypUHqa2+QTRPD/HMyOKO4FIOUZSODBA4qbsnO8ofm/6uh4zJ/eKCnuj7bwgO0zyN3RQaE4dNgJh/sTsrHXQVTg4yynfTJxoB50JtOFprFhlHxnYEZpaXqOICsKsVGp7qNc6x17us2CdwTGEJm+2e9boiWwT1HmO8MrFKOMLwBSpWIABT8gjVB2QVEo5ZWD6hyMRXG96PRs9xNyP/IQClgjlmwQffXJRAW3lXmzrFDp6a2GkTpnaDDwq+Zkd4Soll6xO6A98YDFzpmSCkDeNeq0MNFhmU6tpVzvvT3wPCmuxgnlDWxyzhHnD+3qPmYQT/QUd2unVnnFmqvFjEGmm1M7lfQiWA4guTuiSD0nJ/DSi0zfEldHWAq3lGImqTMM6ZmpkqAV8zq116ioFjpgExefAsKt9GiDublCusEkHqRO/rjJKcEJrboR1WQtiXWTaiOkouZMzR5QhUYCczvqgiHr9ct9nObCmVyT/3rhFEJZOp7jkTy1RJBXqHp7r79/TOUVVTnBGR9zN/H6UMZ5EuUpXC9+p57xh5gRW3YtvcSnaJzXAWgnPvq2T3dClJRBFz6kNw5QRfmG6h+14lvcuJs5kNh5kbTVwwUYDqqRxwJ5dAab+eL7g5ULWBOvk7/MxOFDV485WYRpp0BEE1fWhgUAd1Nx+UGVvlM0xXMXv+Q/C8SS70/6T+cb4F6uAQl4ebNYrQknTrQPDVOObaXMHkAA9dE6KJAbZ/hngRp+FRV26A62Wu4JApEvpFTKwsbavBFBOjmZwl8p32rd4Qz2a/hTXGeyHEtwJvsEcc+iNRgB882dptu4U3gOMRN07VxcYWmwkeUPlyhomf2bbqhHBWkUkBngjB3y9L8wDauzhkJ80NrJ60FMfmgRTrVx5u1kyfsR5AvClI50L3V9B7GiTr4xV0cedfpeYgLFK1jFjtNM3CT/Gl41+PiU6gaDb86k8eiI7op4WR+90b4tHhu5DZO+n7+64XGu6AyRXgLryZIDb3atM9P5FQdiNDCFDNlIlIb79OR1M1r/jMBQnAUJT3sfXe7DkXX0e6C/48Tor3Ja0T4Lga2+7oRlY8PunB+2rIo88wDy8W2iytZd+Bt7Tfr9aY91eE2wdZELNRsOXfUPyRGQy1j9Inlc5zQkYdp8NsLBY+9w34bYUEagayQNHnmBBocSCTnvbVoE2lPSw6f60X4mZRmzhome9hbFX4i6nhEIAaCs5dUu8nEI6ZPzgyFGTqaGuaEQaFAm3JhRe56/wz3G306XeCLKTj7W6RhkEodpNxj9DbH8jyTT8iL/hxjYxGvNZUXNj09xqZjJYXSwZ73ntwMMWaWPKoN0tosFE8Qu6HnOkDOClKh1vT291tG/LjXRHZ6w7lxKf+pWfXa032/tPyJqjvRAUHs8W0UpmzECEhTnlMRCkt0yOTvp0cimWxKt2ZgQXzte4f0hk6fY7xovDbmwfMGH6ve/I0LYrTX33yBjVZJ9WIgDVWJuUbAtv45O8JGhuU/J+3cQfe+KBsBxBs7ePVV+TR7JENC2ax7E0P73xvJIZMxM9fA+a9ydO2Jc3DVjf4QD2MECcv9mxNIDA4r8GmF3tS6YXiAITD9seQKL7wRg1TGhHoN9XQGK/L88IijgODSOz1sRPcYOtS6xvDkwKOWFyx4CcNjjZpXVFNkx6Obtf5olmpkK+Zzgsxx/l5/70uE5wvMhpIr1SU9OlzJ/kkpKL2nz1e9Dra35P582mD1Rok6z1oDBp7Q8ea1wjZGOhIZ+ECTYJb55V1KFU9R5mxfokGIfKxzXL3tgUgkDfw5YysaY20DojxEi+pcQMpj7c+DvQh1fsgtacMvN9h/dCUckCLW7vwaph4wGnAOHHdqSRhbDw/MTYNHyGIeoP7XyYMlqhwp7abXBhLEUNS0z6BZs9erzn+7XSDnD1v68n+vpp5eN9epp357Fma0XUAWh1nBPOMU0VH3nm8jCHvcaYF0L6aqTonQyyGHrZtbPmkNaWBVaYClWxM48it9tKxaQM1pSbUS2vptSwIxzBGIE5QsXOVAgkDO/2/dOoujru4hB05L8/R4mRI7efaozLcvcc3CoUsKcK3Bztjw6sxLF7I+pmlsdzyrZGlbRbHdg8NbO4ROfSQmR4zuhqw0QG4fxHJEdtkyC7QSVZmEkPX9OTP2apHbrEq7NWQcl4tU0pMmxu+IzoxG6BrRqb8bXxcMCbPE5Jpnfhn/BPu5ncC931sunzz5hO8RCMYldb0KaIyRYcGBVIZNWTbOFxnYc4Go9e6KIrdx96CgnzS2BXFy1Gzi5QocSwvKwV5jVvvRBTnyg/k5DsFGOa+5+2hfq2CmJBkRiGCYRIHDmbmq7NuUi9dOpoDYvEsJhi7Bhu338K9wdcpmxqWqaO6fPPWPC4xxhtdMLQI61XPVFjjtnX3ik+MMI5Z307qqYkf0jfYtVi162qFHGbRGV8EopwmPRntvY3V9WbdaLW4xh2Lg8oRkMNgkrSTcipOTvI85313dSqPbPRSeZCS39gcccafdr3Pz2SA4r2FyfbHBqNIffjQLP5XncPNs6FNOErieww1WuUmqtWMZjYKCWA5TO2791SlNsOQlRgDW3h4v8lwvQh5QRL70cMSXTCPN7E7ROYNnAsmqZiXdXyfF7c7vmXhyl4lzuK76nX+ZAhGApqQQvKJeLI6YRJvmDWJP0NptxE0YNPtB0hvtzn8rmIiQjS5XZ0KZJxwmrr809Ieias0tPN2+aDxAYyfLV+eZOkVKOov9b2oNcSvPWGhL64t4uC+GSt2Y+TBSxSn0Z4W3zbDOQIkftbjeEhXJwFD4WQUlGCEdhEtx0qXQGAuR8xclkxS3KAxvb8qk1ydHTdplGgbjlXCeWkJ+lzkk1CRJ/fin06+OUEMgWOqbuSDnhNGnp7hC2hE9eypZvupCjdBZGABJMmzNwoLiJoi5/Z6agwk31CIXfcAGi/DNH4fW/kxEOk4XaNMG6zOOATh7TP33AJHQBU26UuO1TuDMj0jda6MzaHhw3WUKWi7X2D2TSq27Q9tPG9s5jCQdfxWkCzSj7toACEtoT+yUfIUHr3QNf4ausXpCZlY3OIW6199n+YpcdQCGwcUeva3OEWsQ0nE3J6ewDpGo6csD6K55R9DYX3xNvNg20m5viYKfWN//mhsvPiJtzLfFFzS3HwblSmv7te6b/kzJ/y7lBJTpJf5s567vVKKRwstR2fRsl6AQaZdyQAwoqzgTKQS5ZHgMN079WUuMcsguU8itC5f7zH1MYRx86HVZB2TvzpPSvqKzsebKrfBVsg5D91Z2wm88mOevh1ctOe250lXAga72rqp9wC4DtZfP1hGk/GrnuXdHLmAjY0/uiONYCkDyVb4Bj+nnv8nks+YCqFw9ZFn4lkDKwkp46afqUTX2f8aAeZprPkWzn1xT90TV1/2mWg//zkFXpSMNA5HtWdjwOgl+TyrFanAraqfydB+JPpt5HrqgbafMYzxQZL7U76sbJeuZOHbnsJTwH0B4O6XD6jggZdspxGwkt5fqfLhqePhtvhHVZrxnwxZXPyz/P1yhhl9xI3Bh1fpZq9WLIzfn2Hdpq6K7Q5KMCZ2++vQ6e4rQJ6llknBwpVZ+UHNgwxpxV3ndmYsRLsPowHr0HfIpfidiprDCFnbmcbi1qGFiyGEm3DO0qnzhV/oNH/pmGZOVhjgNWcU7OkSFLEwEesNFnELEJrSxj1ZGO3+fui+IMYEigluiwwq1aFTTjUaMUCSguyQVHM+WcPaUCR79DjtcLUEnhUQleNEr2ZQU63yvqAlBG+nVNuwOH5LOirTuiC0tQgrub/GJnb7IFzKqysyQpqQ45ZM8KvHKW4B6KBlgqYapmftCgE1Yq8JLtoYViY6EU6ls5FT663sL3s6E1qj/jZkqXzvNH3meRIjJjq53hDQzmkhGm5AgTcZDVypf8L6mz/a3Msik3QgzO8C42VhBhxJCDTVhnu5H1neKlXeCyDkRLHCxihb1eMc96WGMoRekpuHyj672IbIK9GSAEO1yXOmMM3IfpqUzJjeyxb1LktHjtuVp4DLGvxrCTWCmS7y/AA5phXMLoZUkXaLVkH7Sj0D3gZNbJ2WPL1Ti452cxB4DujYXLofyNKrmeddXIcKs7NIAPSFZNd179HuhZRwIjmULDIfBwW4z+B3Hm2ucDkE83Fa5n5iX/rjzQxF9H9rqUFSwVjiDxBcLlYSf21/KyOzvGmhjfsg8lhSWxA/UxZPfk838Qb4C7ab9nrttcAd9sI5AP3HS94qTly/OGnFv2t0Xcr2SAIfTbYzmojCI223pWGcLmGUmRQ1KhVsSVVacxK1BcuV+ybbuip2dRIWp7chanfVUqwUNHnLhe7rszG7Q5JUdKImg5O8uaFljmZLykJDM11yH5riclHTbpau/41+JAhi937/pS5/XJybAHmii2qSWf3Ofcw+8zlkUSbvXX50OKSptDhE5GVQ+ghnSwpXnQTbdRKTU2s9syPxTLJi29hZMkHqNNfYWvLaIM0q/jE7mNmvAcNnXKpClbnvPFYFfxWEd4ljHR5eJjZFIY1eO2FFqlegjBljMSlXJhSIqJigVfblMVoEZ9wbL2sRMrPQ4SkDITURBIN9tGotVhozI4u/UiR0Hu+lQz3scA2flNAtw1faktv+gww284iCOvpOYDLVKE5JKn920z+o6ll0TTrqr4LayJBXzPo6nE1aN2xYW5cFa0a5aD3wrkfRv/ZNV67i2DUkwnJiiRzZ1QffkHDvNHpAAtlJy5nttyFJ554xB0bE57SY9Tlk6ee4CorNc1oZ7999pqik7u5MY4GK0KrNKoN/vsZm7C0ke7uOhIdxPzE1HX3PTRIVll9tjzgXukx4YlTnh0tSDYVgV9ANcALnQfryxaMOoHGqJU9XJ8zaudieJxMaEP48BBH0v4R6Dpc3mxWpoYnk3R4ISMmB35IQZEaZY1gzC4N0DtIL9wM1WzcYaGl9ingNPqwyz6BnwKniuX3EpYb3W6RiS5JIs+cwq8Q3FPeONQnd5UqsIpkcVmAgl19/OIArZ2enbAsaSaCsvhj6Jm1yiN5bZ18kmiATa3TTpWSYpATYibiOx9Ip4fzUaCWukJlbSKf62eXcMrb8Pi4GSw15BB5d8u+X0TzjivH6N/6ASMTYflatzr3x2aDTpAgnW4vZa7gtKTvaV91VSlf1yyW+zDrqZcnUHAXu2SK8Lb/ojgGgMSjHDkA7Y0+NJ4zR2QWzLeICpB7CG9YUeDIPlpPsiFt2v8qDSQV7Zsp+yco0lQTngJZz2Fo60qe/LE528cV0HHu1AS5J0TY6IC96pqYrI/VXnwSt87NpxcIUMKzoKPzV1zsJZInFnK13sB7YSOxDAbX/ArkpsL/HajGV6FYb/rMCMswyMLEuIopx2+gye8eme4B8DXZzSbnA21r4RCN41hEAysvzsooPQUVJrWFjgSTHF+XC1yIv/OMtF+OKVpf0EX7l2Lh2zBhjaJHEIGNJNGsR8JGV9+7GMRiiguFL9ZzjVqqJFS07G9qHrI4pQykWhwADzI8sWHJ2G9XpaWgcJx0Xlom07veYBh4AQioskfY0LYtW1HLL1k+9KelKCH6fGmBjts78b7echTQrULy3WA8HCnBHpcdozF0Id3Xm+JLtjbkbaf/eiRtubZZRmJFtlJr5xTbVWLz4UwGnLaxiHFOdhucyhzfOrZnqjkxBDc7GQYsbxqOPODfsA2/eZlyT93K2U9xPCkqG4FlmeM5VGp7djQmgk1tf6vNzw6BeKZcfVpWHljyWWxCTvy+x6QmSZjO7ZNRKgMCV9wkwhA3aCt0ePaaYUVLk9imwywh2M5xK7BFMmw2zgNaBgqQptFopIDjO3w9QLtGcMEQ1e09AkL9BowcLyCgW5SBeBksG8lgLct/h1Tntp7BLDFx9DL4HUEoXJHydIAuiYi6lxSZkaCiqBDjfGnxmhxQ062JkcwwUGipyu4DptuM0wAEebGxHGya4kg8kxppdmTkO1r4bjgCOoZowpovlTTbIotHSPUSWvsPcSguQGuxnvaBva6/IGn8SusIS0HBKVuquTRdslXVy3/yJxsIoaLMzkXkhwUS9HFB2xOyTq27GKvkVmBqTZzm+LDZ+Yno8rdJwUbJ/4G9KqvD83FGfYic8ctW6ehzLHWXuPJv89ny/tNYrAXYU8a0CzYXD2GLiYkvl+MHArbOqikkyewFOJ8l5bq/FjOjpnMAaILvidwKP+vbMGhE8lVLUTLRlBtEXb4hOIekwVZNc5fKKaVaANevgCbACiBMJa3KUaadr2yvreYIbQ51BjQOp+bxXHfUPJ91sedLl1dDgi3619Q4E2iznbCNWOvy5D96HF0EMRHMTi2UslZ+ppBqIiYvRNgFR1hBVXV18zkigXT5ZJ0ERn8U+qTIDRM6Vtf5CmTg0ztJuNXOlIwdlJ3aLQIRvbi3Cfyy0kIAW7jvlNkXmF7EFFUTvu86kMe41SrKw5NRpY1+8L8CfUOTY6KGDLoiae6TxnVVrQsQw7+zqJB7obuVcBCzmEochal6ncerumr0Nt2sawhsp6UsYZ5uesHCFeAlPYsaRPzzuWf0IAYdVgZQCGvYFyBbYewKe2DocSzZJfhxOJNMWU95daNFTmRBFF+VNqyeT8/UspbKkMpcnD7X5XpzIF69vlNfBHpdgJNkyO05iY4YPV/q6oYtDCiF4OgqWZgcjp2ou7Oy4vNbcfL8u6fZ2Z+29ZtaSEesbjSb//e/E6VaGwau8C1Bspv+gATZ43FV7RylIVqZEOKLPym/iY8byb6G2c/NsHcrhb7ifKH1KXnSffSroEFn5EX3NP2tgX5pgWXJY7fQPDMKtL7dQSuYGClS0/RubXvvVW3tTd8gA1rLNk8pT07LESBYc/qEVcuYLHY17VGcYqO2JsM4aPp1eEGyf7DHrETE010kKwcPZlKustoEPDyqt2OKbSP8M6sAkQommCOvtKw4Gq08jxVTyE9Epyog2oym2jmmnnApXx29uaXBwVQJkLUMXM0/n/pcJP2b7ulgWJO5qNze4lGxYTJQtXMDp3rR1USiTVq3qrgOxjY3qHAxC54EYydFezTg+v3Vb2cCTXjzL/Z0h0iHy43CtMiiP/0xN4MTdtG6YkXzf5OmEz7AeAFgrvPmTCtK6J7e3WwdFhcmkfwXdUmit148vMxBTu5gctGUrD7MiFT8AFwf4Ul0PECE78GTiimKVtqj8lrlaGu0kN/ecDsLdInVaLbTMnHDKT6S3YHocOdmUqIY37aCttUVMS+Fn6PMLa3paxi583zL4dO7/GaqFDn1mgA9oCROuHoeSH6Yc8rM3jTfEvl3tE+rd2W2lmugrqiFnsPy6/qMO9nVXPVuKWozholbStJBkiKtOpIVkLtcuPTvx9TMtTfexjLuVMgIVKyvgQmLGgfgBjpCE7E1dqS/REmIJv0D5n6krpMtyjpWK45VRXrM80HgLYTEth4hSa5nbQY5fUUptHZlRXfCKV4Wf8OSsrTmLgopj6gkAFakmPEW5cvNABZlLbU570JSw3kp+0t9xlJQV3rvTY2Hc+utyWf6ULHcGFz31Vg1Zas9I9zwHSWCg3P7DiPRImxyzJasbko5GZ5JZxiewUPYb/ItUZXFSVnyeauiSh9rmV40d9Nj72rBdF1yWoE/DYdg+xiZyKV2ntqgyx0xGEPr/Gxtv6CCPrL68lJUNOf8HS9RHUXZwU0AX5EklpVi+IcnxoMvESBHycK2kuUOid8/0PSu94DfwRM/phGVG6+GPhqBT3OLmenaxCvsbG6YDszN5i04HQFUkk76SBGzsggAB2oUES+JK/OI0HWUqO177EuekQjHftmH1weCFw8vDvStrnh4BAt8YCBir6KVeDmlnXMfNWnrP3fjBuj93zjUjlF9Qbk7MDpKPcOhgJBeBfSxg92b7I26WyCEpO5BdYfiEpLCPd3VkBju4tZigBNhMaJ+kjp6ihLGYHOqftfIMUDuroEN9yYgGijCLdSmItf6sHbRWHYyxVkZ7U/hQOWdcd3n5EUwUEk9pWB/vtx97FaY8jOm/lgEQWYUTvBANPyHAV+oePUE5ed7i1adMIa4KAcgXQYSKhvyH3LTCCdoTlYItD569cCPnJYueNIvocgrZTirBEW1f0NjXr9ZVKQip3Jj5iGU9NzeYAUDaTnNfUWpZb6BsRcclIJa1IpFafHGnrytqU6QuYQrs46nNpLNYTtMRoVeWPYsK66/leVpLgGFjl+glZApXqK4edVUKArcA4ZO/sBBys8hTllHekgmZEAy+gP1FqVP/2DDn8okKQUJ5grPlk+ZLVyxiTBcj6+i3VbFAZz/tpwobcXrSInwHwqQZY896040X7DF1Qip9kHNGA5EvXtTDIxRgdWLkIFVQI0I+ayfL7tfuCYQbcUKBw7NjqXLGwj4NaDQLtftpJkH5fETj/3tKPFXgA7qp1aHbw6Ap+J/OzV/naVm1UbQaSnfwZdyu9AdIoKCiurDLV5E7xbtx5/R4JWXhsmzBh6sopRyLEs7YRawbbmFExiE5Gw3P0FiBvtP/uedVE50+7ziHOyGBNxqq7n/v169Hipj9vh12GuP7V5egCdgYeu6fYWN82YwI1uwpG3KqEkk1SvkmAv8rK001Jg1vtkTOzSRCh7vtCnLFpTg4mY1t1hN0/GuG+AC+rw3kEvT2k3bf2h9DK6e4WaufqMFIRM0Jqi4LC7l4ZuY8qfhjBtxR2c6R6O1HdLwFdcF3HrhspNoDWXty/PT231T9NXBcWT4N5PwupTOxcwAgXdSEZLyOyUGk303uPp+jRMiSmugL0SsBzt3QbdMUG+zIdm2ilToMO06qjfXS1TrnA5CuI+Y/0/bXqN2oC9MLGaDRn8JZSpPdzlacs+scwReKCM6jxLTGBEs5ZJvOpPTKLH5VIRaq0lFXwcIl5+0zwmdkGB60laioO1KONWX0ZmNS5qaOxQPqBiLubYuySOEG5LIWXqYGGclQh9zLJEo8tumNcJjM3+3MljR+ljX+2Vz/IRVVQWYppw+Vy/pGufKa67Ve/yFwY/rFPBIfTYqJ8hQ2sDu6LDEtF2JhxSC2JCeHfQdfbTTzi4q0G+Z9FNOynzbBiDtSvGcnPij72EugJkvWPqZWSWR06/k7QIGRL2S+5zLaj5RjHM8DyvC8C+h7ZovteL1cRKL0b3WIydQ7/p3zrHNTOovwQGrF1BAodVGVriSsCBqIBWAZUW14SJYSvZUX0fBAjMgDVvaH/vuftxrBhYZeYVTmoe7imFvrfotIe8bJGRsGMAZtl6+rSMoTRN3D8odOd1Iax6HJyBlJwyx951g/ARQkj3Z2Zyqj4qfteTNvrwIQVDeLEnmYCf6jdUcOgwnDK3xcRxPcAX26wUNiAxsL5ab06rRSCyW3wxPi1aIXzMeJUr2GzGRfnNakJP/jsFNPZdXUuit0uP6SEXiHN6GJIvD7VP49fv1b/R5sznqF2hn6SmUJ/JbAK9CHepSAkyUTawXtXQLLZ7eJ4Rq1ulXTadJfKEqlrCwLWgBfk8CtDNMtFtG16dhV8sfBK/9UXej8XHMzDCmSKuetoAtlMxP4FU9y77akh07DdLaOEQft2T7V9Lqwl7sJeto+YJV6kF5kv5tWHPlayk5nwykMjkwy54+Nt93Eg1Bn7ymE6/53SH0Y5IIesG5gJCdazr0OnrVLitPCvgxg3WjnVPhN6u8s2h2P8EixxtOaj6/gmmxM1D0r8t2RCZVkmVs1djfZM2WA2+owYHrktkVPJ52aMNQm5J7vHhBDJ3RrYgmVrcwzKNkttIQrGENx4tz+qtmMZgxfLn77FG3B9bv2fhpI1Hl+8m6jNs416lQGbrwE8ko7U1oy9V6WY4518lLJCgR4zUqDGI8ybRKpDwpcpJXxan5JgfoPam6Jhqv4vrMpSXmuTE7G8G2g6+7cOpM6J5suQig2mipz2lDMs47C4luPRQzgLAalGE0iy1FufNYw8obTqKtweIMDhmui/5TwXTgmz04c9k8j/lSvZ6Okd8VJzy8QqHfYT8PQzciw66JHpo+LNs9W2BLt1xOInx84ku5HOnivpN88fbHPoJqzEdIYcLMuc3zbyb8AUrIlxuE8jlpQYApcK9XWNS6aKQdPanfWTsZxQhnfVWmiItK9+6w3em2c2LOOsRZ2EcBoCniz9e2LEeTP+1Eu033nvqrDGZphd7d5UaThiVoLhiBPpnxHTO0Z5IwTHr+14D95FsRiue2YvlTcXdZOdEVgPa390rE6l/AEsmRRK0f4IgmkVEmKbCCvQj9wkrUKo3RPr+eyKCiAhygV7mRAORji+rK4VAqJ5WYrZgNvyxFsw3UN6bGZfeSQL5KIuXtK/1nTQqiOc78iRlZCc7Ga9UwarkLznw2VT2Kg96PgPo5LMoVgczpc6NFzhvhVEM7NSGo+GAI+e4S73C7ntiIw1MpI0Ijk7iFN9M3EfO/8iE0xl9H0V2m0imqowBV09wh1OG64dosmaiNIa7foBYdlKfIrzYXH3AiO3A5JVMEAzOT5mXmdUxTcbZxYbfLK5ip2dkbtJKC4bOZToIkFJiOq9dI+a01IbWxOpdE+ibQz4+ClTLxA0ktUNcsl5DssjfjI0dDnfB2MXRoGjgB1CH9LKAQ0DJ32D0DY/uehiVvVlKadHIR0/YDqW4qbrZ7KL09MlXQpxDamnlCi6wCkLhSdmQLcsddOWAKl/zJewa5UuqGkw4sySL7lg4jQZWG4/xpDh+Pq0mMHFvvQTHrrhTiQS3Et54rEpl0uMzvU6pU56XB+o0d6KE+H4/ed3IPJTUTCN1BUTicROFu3oE/RKAmxzNxu7biS/rJ2iNo5GWsA78njjSKLH4nd4dYGXr6viN0NOgOiRTV/i6XuGWnAR/FhPGYigrwNlWf7yHVs023myKZ/DxMFAG2JlcuyL6Pbxeo7iFRl44hA5okl71IHkxzbJF5EndwTrsPauc9lHy9zrAmyPlnesWVs3ongoLd7EdCqYDOdjZWw5mCCeCWaiGfhJKzWxaCdoPoaJ1iseAO67TvB8JLkH9NcrAkyh3qmh08nQ85EQIvcF0mHkjqAE3o2mB7ngUBzweGsYf3ahW0zLPJ8JvS6Rci8vIiibvmpgZMSdRsUAVRBzYzSSa5s1+m+JOmeH0WiP3F9VhqglKcLc5Vp0qE7isQKWAWp6oLKgPDF1ZXnmToXGrA8UeDArIPX3AYaLhIHS5v+PDa3W9yJNVYAVAraUFpIUxasIrT99YPJqAWTQ3Obyq4/lr0U440kiiE3sk8WMpFv8l3RqW+f/tVic7Du/tNmzDIlYGkkqIx1rWG5xAazlpJ19H5xbWxePgMytw4J2k0jYHOddvD/t3LCd03/AbGEGXn0mrhC6gxWctuXKNWG8V4ZiT6PIYifBp7ViMxwTiVpqLnQwdixHLpIXMSSMRvaE0ZZKdVZ78Fnu83zdcz0G69zaFsiwN6pNN8OHT2W3o2qeh+73s91vYOKKU66+U433V0UzXJBqJY3gMjRCUINzmuiWsu/uODsR5mAF5+1XW7EiJ01iAhTF6W8tXJm3GdinlKPwLFyYu2Q/oLJ95xdMfod3uNoHEmwKS+0l5VKTGL1/vj3kDRpIFztpnWd1Ug6tHCaphZWdghqTNrLsZlCkhI+OotkocZXmNCpf2Pgi4gVZHU8RlDb+fivIPt/xJR8o7iMlthyG7oLQnXX4nO9JSh5OIOfxutk7GyJogsd+CW8jRH31hWrsB824UC0OeLaqgc7svv6/oREIytM48BcsHhu75xOjhg+2lE0VDNpO3Jn35QyAyN0ynAHifad+4Q6qesPMUhj3N/uDMc30LK3OrfBHHUY63gwri35+UX855y8aCc+2TDrAroeNO39cFOog1sG6Bd3DTp5iFvqcVtM2q7I4lfwc2jrlkUOpxG5/F4/kGXfNBPlsMq/7vGM5XLc5RM63OCfS+gr69bi8kc9u/E0j5b5C/LF582NuQBMXnmHI8PQy0qHcRxLGVnya5yppIE5Za0jmOYJ2A/+1ElFrdzrpSElfFASPpkXqC2SoF0zpU9yulyZVBbJtWfsE5kpPYlhisM6WtfsBFGXGZGSXSHFIkRkcv6CxxyPWtt174iTLEc7K3XcpIDiO1NYe3Iv4XXeoe1Dq9Kkk+xRcxG8RAcdm4snCVTW7jEfJH6XBOuI5lun4T12hYN62fmWb7c22Lv745Js1BpqNje3NiWaILxdii6v9oO7QBDY/Lou3ICf1do1Utg278UY9MEjUqkbako9Vl2uPrGscvAeYei8zf70LvaD/RFCpQ+i6OYvt8nVvVl3vcQMevyebuUC81jue6vX3jITDazPMi7SZgnnVhNMOtnGqhiNbGouKkfArARZ3MQ+zB0GOrVi5mk5K9wFXzXv5K83Yivd2/J3/DaMRBP35Be4xrZCRTCxTNJUJD+8xf49iJGBSChxdiOCe0quU5wjCjeIvSNWBXRr4Tapu/Hvqc40xwny0N/xTIE8EcBMMo0EDhjopuB4V68vz1RSd2+erhUzU3PjnwnKPu7E/E1gphnKDgkkC54DXqawgdy1/m3W8Fg4dqnAKhXRAJUNxbgfJaoZrmXZSGIgOB2tUUEwXdAHY0t86X+j0+o3nzo7DsxHLLyQVYavXZMGiG7ViHhUN3idqu1il0DaihJISb/LLxnZ4SjeCVII/rcYhe0Nvg3b7xcLf6+4vnCnwBz1H/oXkLppaF9wKlbuhsUk4RnvmM8hzhjSD+eiwF9InLwQe/a+gYVL+W4xA3pvvmjcXAogxtKophX4Y/5CuYZMc6kT8DOTeCbEZhbcdG0fwkTY7H9RKz7YNQORubsPgq3Hb/Jwo9Xy2xh1PXwgQ1ca/zxwmNUJwkE5LirTKTHjbwDy0Rikrgj5LLJSL+KTIKI6rOV3vqbeT9mul8TKMz/HIZMnpwuFEqL1EXd1nE8RSAmsJfJ3NU9Dc4Rg0V2bwQ85tdTxj8tWdsbT+GjL5Na/Z6sA7ds4/cD82eVmaVi7NfBI8Xk+x+nDlRetKxOEA6CNEvxdcOlLjGsVM9lwW7ndiw6SYqAANiflayw1e3ZeTdmqtz8cUZZZPAg67qJH+ApCmLJham+2Yd9nynRm0sdcgvY3W6T3J51x3pbHvdttwLTGhajyvdLniYeLKAk9u9mZRPcc5g225kqECxthAI6+DEKo8InLUxxciOOfFEUVRbWaJ0O8F3mu80tZ+8sah0uEfhE1SXt43yvudyVz0L97R9zOkmzzoC5js9XwNZLfkruVgVpfd69dqH1WnJJ13pgSk1/A1VWzHOePng4W52nELREGTeRW2CdPiKxlHC4tLx2k0pmVIqNneweATlwyc6U7iw918Wp4+HYW9r7Q7Q2gz5ERG4C8vTj70NreO7fzNXpEj85dskLqvOz/bMy5pJQES5lEm2xMWeHsiqrMneMXfPZaA2Sf7n0qT4In09Ekb8/Xwsv1r/O9VeE0Cpds2YEAIZm0xw9Mz4p9Tt51uBi+ScCbsMaNN2JLfitzPhssuv2lb5HQX/1ckUg1gXxKBozzNwk+mSXV2sU03vZrIL3tRDD7++9DrvFGa2uLNN1IFaop5JsUaHCzYVjILaHKXcMiqNQFNtpkqkPW/+btciCd3FNTO4RJv7VuGWl17hg9i0PhnOT3VK0owPRaj2uhR9k2p/RVOSy68iNoJHYuJcJvQbnwULCMh2GzFn74c7Jviv4IKmchk0UW35L84lkumb+K6Li6oZjIqlPkqf5PQG16CVDrXxFUR28KASjbWPjaO7O+aQPdkEjGaNirgQv1W9YkVjCwlQalYv1OffsHSsBA/L5IYpwmy8LKN0HcH4tOrbxZb4IdvAxFmbcs14PqFte0zDsprrowmWlbPAvJHvCoS7KB6t7qSz3PXplbeoy2sUF5py/rVWShS9eCCBK1vpdkzQ1rVicDSwcGr2eMizCiOSWh0CHKruiz2LDvyeOJy2YXcRsNtO5x9Pr0xmgnT9f5c7Gi0Xt9FfbhEe/i57sEQDbDkwt53Iiz+9Ac4RT/SUBmO/YHsU6+JcLkSynJvV8ifC2B9Eieo8GqXobolr4v1wkPnu9dwKpBqd/cVGDKPV3CbpCxgTxmWMt0+fZyXO7/9lagZvCWUUpTZjQoQmVb8TwpP99lJF/2c9wtDo1YDNIs9EdmGNN0EIzhaz1fmk61RnT1i2Tf4jY1JR6FhtnI064cuclFEy3+44YGiHPVtbJh5nbx3kJdyxE2xRF4eNdWGrUdKKE3lL1N4+ryIIodd7jzSKhL94PBCCG0dW9KEVuMDF557XZGAXCcA77e9FpnAEiolxSYowrTOPOeWpGOxx1nA8ZZZuQf1b+9eDgrTUC1LES3zsIzLpCrjhuLiOLfVwkVGxP4DsZqqW7QeuIPdswbYoWGUtP50XZVX8dwSwk4aImqEeR0N+I7k8d+ZoQhIUD4HD5AhdDIjxsSsW8CtBVhWT+8b2UY/1ulLwyEUvCaRjhltwpUA6ny4VuRtDJrTFHi/aQzLPhwUHTikMYiBhTMvwsqjRuq07ZinCLrL3Qp0MJMjWgsJed2IRklFuOMv5cc1uusW/AaUtiJ1oMgMEYnhDBZ42UOwGtmwXDcZqTa0bFeUpbP0hk/zypNyaCb+K8eNY4U8BCy2baV1tph0hOMIqd5Pbqr6kOoJJSBSJOOGtNuSVzCJgfwBrX0+QsQDJ7axckSV+b5nM4hTAqxkuD7JPOBj3WBafISX+PAzdYn1choNAVPf/VHsh4aNcbp5vfPunIuktWLdTkp4EOIf8/H9Hlk9P5DjGSBkWNYAn4UsgkuCyDL09y1n6UwMd/9f06IwntqrPLWM/Mp/9KbRSiLaXKKKJjMUT8s9OomwaDY1K6R2How8nidVgENJjGZasuHf5yu7ZjEdsCohCTS29rtPgsaAoF4kJu1VIkUEx/tliz9uwc0CsbnPGiqNfnrXPzcj6BSDWpHMwQtvLtFqP7d4s1SuwRFKcyd/arymKpbvsUwp38i+GzRwoRwfLAcnc05VU4J/jeG9wRvl3LmYLJWjDaLriVXrSMw1mu/xhJx/pamC30Yj7NFCw7Hxupcn5OgUmtdh9k7x1rSS/m3nN78s4rbp5i7q3o9yFW7Jed7gUZsBxYnhre+fpteMUaZTMUcf3bMpGLRUgHjze3Yy5sP5Bxb+C2u/z3VqX0nDzucJZW+Gtd7NtskCJV7QhYZwbP1JrIs3vUtWzGxkFilE4hzc26/n+VErmrBHBrx65bGsIG6nrD7OKN2siIBtyLl1cOR2a4zdvd/YhuyOd9tL/lwDnVHMRXYPaGDxpsbz2bOMR17NltvCDJqdiLcyT1PrY1pcEPZFsEjWi/QpfYHWTCJl/D7zPh/gGsN7vb+e2Fu3/6eBWHe+GXr5bYNgjl38iktksXLkrWKIa0/qzbvKA9QGGN7Ov2YG1m58qW1hXbDWdr8SN6ChEa24bBN48ANAaW/gmEk99iaGJRmgJWwc9G/q+dAo3RR9xYmfn8i7bITVTqxpcLtLT3JNd1DN+8ba3G43f4x6UvgrdzVH9wUwkO/iSZW1oIsbGVmjbhTHf8KQX6ZxexQII/o2QUJ+Y2CyDr72D3VmXSklcSmQrLvB1UZ1z783b2mV4J2ZzTF0+I4osaALevMJ3ijL/tF7peWegwzyra8Dpd5UP2WLrj0ZjG8B+NOGnj+X/HB8sXYbPtFnos3zZf+3uGl0xiNMYyWJjddva1Z8Ulm61CdR8gkhhObH0OouxOo6SyO9KT1EaRLw08zHiIOeq/sGMyEszVt83kENHsXntv0Ll1Fyxsd8sQsImZOpdZRE+0sHPV7xWfF0RWAYc+WQwsVZga8CbR+ZPfBiCL8WHCGs2Avg4XLiL91FGQMak83wcHbnri8C/BZQ9yMqa0T33uHU46bk+XTdsdQC2fGVY+fy6DFGOVGG8wQojQ5ALKI32BxW2Zadg9boAqee7BUR4bwmSls3L/++wlB3QF0rsvObAnr9dDyKujYMrQN+iA4niAHv2qr797CLn4NTCa/LD7ajoyFD1B4lq9m4VysniYA1V4nlM3tflkAjrq3ytQ1C/CQy+YN7CG4X1V4DnFVD3fJH5arJhkzaHAXIi+rBtZL+EWfQ3BIaIsVmnWipBmKRMVFNP6I311dK5TUYl8E+jNyqXqopmRV3tYGc1u7mFNS+7oOAA4i8tSTzyNFAZX4SiymzKls0aXFXp4wAocsouz7FuCrxzAP0ViXeY+b1A1QkptkyAeTn7O1ODXLyCMoI4ST+L4F5x8dxTi7q1X2yt5SuKkcs0kl2dYK4cVOJwS1UWrbj2HZ3mcBBieBUyZUfnCyHrU9j+rRsfMadw9V/L4GYcEhtZAowMbESTgeIdEZq1neJInjlzu5ztwONLmcyRsTV1uEkpFtZuvqas6iUixVRMszCjkqnH6npEpW8Ck3WdwRL9KwDdZGxc1grC0HHA1IOJ/GhpvlJgiVTWwUHWrnE18suL51OIBzIlXw4hMDlqO00n6YSOGpTwq2S/bAo7H0WU8+FowURfCWbBbloYFysi2+1C+cjH398w7zFE+carcbdVHAjtsG+fbFnuJOzGYN3hlFvELkl/UszbqTeulyvQ+VWmD5JnXmn9372u3rDHqSeSmXhWjrXYewrLzRGBX3dhV30qxEt+K5dx1uT6kYvds8ObIrf8U9n4T+HovgBW9pmV/e3bcvKC4Bdhx1agwcpWw9U80r9WIUUlwg7ebjJwpWa/sYPtjBBiuz7ysP7HG9A15glURXdh0Aa3IHO++IiIe5CDa4Te9QNLlLaQGiv5ZW/cqCDHMC5FoUql4dBxCobb73sOXCQ/Og0M1OcCLIN/y7Y+9HSo7+spOEvtm6Ly/lE6WQMVXfv2bpLiq9UXeoPa2j4ZDykBbiLfAf2D8v5V8JQzx2wl0q1PbPC9FjX0zEty7wAl+u2S2BB0pReedxlqwSx66SWYSqmHnfVSnAH2E0+ORzxkegsHzrfsMxeTltgVBD1jL34KcnmVKzcJ3oQLiHK/DTozDUV5MYayrzYIEGV5KgNiVa+bpovCSiSsbUDQupiwCTBeq/G+YNRX543tPNRSGGNRi2d9ktUMU7E6a/mwjQFpTRftB1TG6+QVjqpubegQEFdladEVlo7qAHJNeiyzmMPp9sniSuarlf1IxfuWR5b+cqIpYlV0jrZw1JV7tpUVYXFkWRU/F+nwN1lRFSt5iy7CmWdAJBAVeWwmEohKchpeSUxpGqsrMQp/LML5TLhdBEzl8jLHyphZLEnTbu39niVfeAgjFBkwvm3yfFE09iXkQI+g0wpd9RZyoEvPEZLtu7boCWTHNHMoGXcFl4fPTsoAAFpXIpmZIs0M9gOOXp23XjtaYuP6riaxW+rMfRxs5uVZ4NDJhgopncxdlUS+9KTixUU3TiTniUJ1K4QrDVqKGNTyz4GUcMg0Gtct9W6YBIXd4lhwUpfVBeCrrzhTjDlDhBmlRm3bTGPRfI9a6d9WoUlwPQ+drTcFtpQ5YU5haGc+QTFONMG+S+MJSwrd/1/3gSkU7/LIlyDmL1t8RT8eFTSJQbUhe8w0xCZmrJfvbstUiYrg8l+3uZT3yQiHDbltTIdEMN/Nr0k2VCAgdsOaoiecRIpmqm6PnN2MHWhbgYsydn333fxPUJ6j788RGoP76d+I7lNfrKSTpvZkUYMgmUBUQ8MkTQAYqJ2APcB0Dcwg6OH7SPWrZRBghzrx2vDUZSnndd8JlMEEpo9hsrXT0JGb+0ABFHJzirUyFhsHNJ0L/DOfCKlxehpJKKw9dK3bh1KgzG5y3TEHcPG1ndU7lDbHeqkbnohzCEncANOa5iaekClw6+QTwOtCTYx5IbjMVKPPWr7ZsZUN/E2eQbl3KIoyN1cz+xq/C7f9QzESXmN2Lzn7s3WLsTSIxWTrzwwc0OxYr9CVAZ1tJxvEyEIyiM4uBCwiQkbful39cYvemilRPHx53VyoELgN8a3IPCIw10xOa9g31flZH+GWkta3EDIP7gnYabKWLhlGb9v7i66zOEYvSS6riZDARDZeGJxTaRO5a6aBvYoMdLZcRXc/JoYy9G0sTXI5vyV/H3BieQhYgWVXO54xkBI1Zx4Oa5bAxv3Cq15qVuJuMQM6VqiUhz8Cyn97cu3VTYfWdBJExSEVftTEIJ0N0xbvQGP5XzOULe/+MUEDOdJh7FwmGf1vZMWCdu9BQ/m8PFcO+Lt722THlNjvysTvw4CAltiXkGFvc7u/Bz9J/lScZkKyhfn5lYbQi1yJtmhgngx/JKgkS/7hb4IHwhsm7SLpUH3ZQHuqsU1YbFvB07zjivhK6oUEVryEcZJyxawGcI3ThycDSNxoK1LPHh1fybaM1XAgaSh87bG9uFtQd/0O/s3qKZl/cydjsRgdMVp6Gd+qjWw0XkEMJktUHq65dipkPBKqqyvut2gk9hH0l4KuXcj4AnBXLeLKDVxHUi9dLWSyYjke8Yg4v8jX2CmFGpqi2iEoWrPolVvRj1kBIdNDsF8radwYhyLdfHsS0pDhUhd/PSDU2O/Z3eykfruCM2uOi+fuYgvKXCzwZEN/RVhWm9Cf4j8XZLk/u/Xu0xEWhcPzUo/DNq2HO18y0EOCSVI0SBc1JJW4aNVQyOUA/kmaRkO6XVJScZiuVBfoqUUGzCA2lH7OHw7xI2ye5gGyT2Fy4sseENAvktEmEA/8az9wBwtJ8uvqasGVrv1UnoYQp5hh4WQwv5wt0XgiAQWm0DgKHUYQquDQ2XQDZJWNY2wQY4HQT6HPfo+wSOO0OcBYyZLpkjN3zMvt5/YUbf6eqOqTYrALOTARvod1Vriy//8nFtyEOFmAsWLQnIcYjhp2VDl/Y2It+kMGBVCFFeUBrItUSHKTplOWUARalq5XHQGmRnV8q4KgZEa2WjemToqI51dwKE5x2SToxo6OpvJSiDxinuQg0PMtzX8C2mvbYjurjQlmrrBFIDXWWfRFgFLheNCLPMSl/FMhUU3U+qywq0OvNhnG1cQYpFAkB7uDhAKbEDLPosVQECJzKw1uSKPgSbjeMbqrlzFmFT/sEq58jmePmSx0teEReYNXaQ78aL+X7KaYhdp6UEnxSRJ9eo2JRsbwHxTUkXtgBy/JAS0xFc4q2TdqwY0kC8exKCTyZxvDsXEIy9u6cS2r/qvz1s2N5nSjFkgpnk+9gT2neEtvOshmGpg4EYRPqvSkme0icZmcVkOqPzzIjECB7XuVrC+RxP2qdtR4ZcAZ/qLncHYy4Pwy7toT5S3Ad7NTqXx7BDeODUOPQ5FTfhBQ3U9zzdnRJG0zt/65548jcmmCTbQ6xlZjXMdMpFkDDMeHIzfhOUjXIEtTIfbCOaDcWKNYnXGTtlr2vclzgrc6DfUbxvw7Ac8NI8Cx9WN/9/ZERihjgwU/xz44gLTuWvPpU8j+Kg85+gRhH0bGuylT8rYIIBJjABCWkbKGP/EWaVbTUQMdbDTZ/5T8gnelJnV0EmbSUYcvxxYyGx1O8ENiKfxQ/eFLOLmOsE4yVDPpr7PgzEOXeg4ky27chrJ5LzGZOyioiHJI74XwGejLvYl1UNN0D+Ecko53L5SapJ7iQRVRSQQbB43cLoTYRNK9EF1LFVvEXWohUlvTOuhR+V2Y46QBVFB/BeHjOfrHCA/QQpK1+1zn8nZsGAF5oAvmOc94xFHNmdmjzUTdMjTg48l3f1rG4O0aW9W/vYOc47gHU0KB7kTo7vCYeEhdvJ+TLZumvsV4bE3R/JTCjbLztNijrwaShvedlDC7gnSASGYkxtWIV2tU2j15/RqELV0e+VOuQV1JgugvMNsFAOEBtVHQdp5JNlS7bIFE54xh9Xz+/RNsiqUZw/I3OWCBNv3RFSzrPb9H4DgGJo4DZem4hEIAVIkYPKucX6mCpFsbQIRayIcX5MclQwynYBxHlYssGu7vAxBjXFzX2Q7UGSR4pnxjoeZikh2TWOV4kA1uLl83Hk40xsy55dy+Bz5onb+vATJXRN8S3939Muypc57d0eP9+nQSZB0ENRSIUN+wruZE/PvUC6pLggzKhTPawwI2ssD0N1pF87V/3sjtnlSEMPRx+UcXiH/rhUj1Bw0BohYg9/0+sfwfGECP4GZrpQ/CD/SFpc6Gp5YwPN8N9pKGdQ8h5M3v67pm5n0H3lg9coSVQmUQKUJ727o1PXsoV7uMgAnB3XIYHxMf2z7KaGtuVEeTxGLKKpjXsF4wV2f5V6Pj2EBQQN+ZwTydmOqv4htriMTqKZBYAbjXfJlzSpDquNZr4BVgMJPzejSX2BHXfppRlUa/ryHDp1waYtgicie6RCDCnoAW1OqdLG00FHHjrczMoSEAoCDmXGt66wR+Jp4H5zmtymCewP11jiN2ioMx55bwIp9SuOIqVajSO0wpyD8BPkIU9cCyc0l9JvII7l0f0PqoDAcUwj06G/6EbPDF6YNJqBAaa4B7ZD6SJjeZCXMQFC2QntBd91sdifwDyPvCsswUg8vmamrexbK5Yf63MFId9zHlC+bPvgsX+F3q1ohoFfPJeIdG4U5t5XjUBtoEpnxkk8GQJy7iiWo0yiBSGk5Y5mv1QUCzcm7vHc9J71so40PCfNUyoTP+TvOHMr0bIwxQVcZrulzOwxPWa156ZFrO2dHp4DNVFwbQIR5HOLo8jXDkQL42jx2HL+YH5vtZgZZqq2o6uFh+Y9037NVOHFHeeHSH0J4icUG1hdQa0Ik5qUfdxQlwYu7pUDMff5NaTA4Y1NzZECsxkM4ZM6cZqAJg8lyUsr0z454tGd8i+7CVJuhuR9TSVQL7DuvLg7dwsBKou1xBPPu8vkfTs1Sv6nA3m/8wztW6asaWJR7NG/Ln5UWjd7c5miR4ThPcCsYGnqXHnV+t7dE1X8QcAGQ0Bh1VpXeAyWQzFzN9dgr8ReR8NmM3seGqFPjH3gcKT60EiCxXgXAaB8ltFXKHAMulwOyU5s5JaFDOxefnql4qjhY8Yg3SF2S97iP12yHzr06R2+/LczhtAJNASDl5r8gujdL5IxN3/GnruB8OpnS7EoP/TcbFzVNrh8uqXXgarfR4F7c8DOizTJbENTQjCT65BT2vwDhlG4OecJoof5ubH8WVrjo6SC6IDlIKDK5u8gz9qBXnh//8BipEqUobGoKQulBgbKT6R4B0+35q8blZ9PHnjE+bAGYSR+EqjHiL/gY4M6zNqEkHkTP5qfy+l4vRpt5kUsSOaXi5Zu9swxpHOs511q1pFXpv99n3iyh9P1u1SGtOXpV0d6+/ezaTGduXqaYTAbp2pNWXBZqVzeHiXzbGOUtRKpfl8uFdCEVPlBKYSKwzCthSj1h8rz1aUvg7D3ROFl3rv14CGR0XEtTmwAt0IJ6S41K3lmafh7OGOXlQqumc0IcSf98eYLubO4bi/4gGMnTDrUqdLTLwdtdYvSQfS//h1LW6uNS1FsInHhfn44vq7oUjj/XEQhi7Upcv+fB3aiLnN0soNrQXAnHfmfSkTNe0ENV1in4E01tfUGgnt88pwew57dnrn0SFnRRr2I/r28/wBCnkR4McyllntCezsTO2uvfim1CTq6XbcW3utK68mceNDBnqoW1Vqa+UTkdliGbJYpPtioObGiXLq+Iws56T6mbHLoRKrk60GcF+mFp1qpP6KGw2MfmC+eJiEkC1ZchqqWKEpQkEpCMyWbJBLBdjN4hYMumTqZBUfqWooj2x+zkgoARTHZL2xzr8IRfuRVvJ8/d9Kr4Iw2UlufkaTU6h9G5Xai8H82/g2im2oNVZdfzUznfgCOdPou1okwln7OdOW1BTlgQDT71s2FGxA7ecvlUTM/i5X0xZfyYgh3C1SIRfZDY1HetIsbzIwf6qhVKgQjhz5DqwRkCKLUlHVKs2t4S/dPrSfrtNYnIM8zQ9WZbIniLx3apdcc2HPwPrtE+8Ubmp4tQk01pfBwJjuWRzc4laIYqpv3eNqGWP20rC8YDgbhKpxT2n9CZNjFmson7khFpVjZLX3j3jp0S5Gvzkmsvta2BUGdPhtAbWGaqHM1i41I/O3KgtKXozlEtyxJ9Ci9xCRJ8Tr/PblBW5oD/CnUrMXBVkt9o8UBtGyI4wrhkL2BEsmUKSQTiXzugk9cmSC9e3/Gh/iDbMxr6e0Ntm3UYVBfhak7SytpVTOUaf/wNogNJ+YxrZsXJPP+n8f0PaGfr098XxzTwdUyuWHvAj+kmkL9NvRf76L71WYpt+RyiB09/XpNz3e5jiiqjgyTPe2a2/M+lNLe4JZDtaDf8+sB3CURyjDz9Cqie2W89rRI08bC8t3XEYoHqzW0ZCmc4uJJX9OrYddOWb6xDwSO5FMy/4e0i0JwxgS+0I2/mCIkEuz7W16WsSlZn5wDVLXtqsfyUCRZdSieyDj/mbnnEJWvv1XeeBp/Sl6vlMyL4Pnl9ZudbDBMPIwbljQ0Tu+IW8JfmiVyggjNUapeXfCoEdkPxXXKkCx6lDe7yDPio4J++fhZelqf2akF1nOJmBqouFnO4883udsaS8M7y1H9v+B0q95ilm0/YqD1O/3bjT6/7fLQ6DOKlSMEfKbrTQoGoaqvRPFMYtitm3zundo9Xg1AOwn3I6lMmKxbaidKwCzVVY6yToLKO8bV8vt21XeNn9qhaEoqs/6nDU/TOGlUh7d1P2qu5MNXxfdD8/Mn7MyVqyLuV+X5ZYiCP4xi1JT/JLYuRmenWvTqGGZWWoLVFi96wPLAd7m8tG2/ud55HxMEru6L0XTLK9K6Vh7vbmtz4mfZaaKe8M9fzx3hf7qu7XKJX5kAC567NnnlPShRUNN/Wf80IYflscwAWxHVlUfBRwJweSWBmt+vth5IQqWal5hiErIRncnsL94alAvmd9+bbCXPJtqMRKfyMS8SbICff0ifxFArz8ddreLx5Mt5lJzS+8j4H1i7n/UzKWL1YB/GRwKzA5K1dlu2E3/npUyl3VYnJKYhkamxT4Tq8yNImAD5GIlR5zOdUqfaVnueMaZVCZzOrMuhcjmNBoBpfZPqwsynMmTuqxC+XcyusvBMjtO/u9gRqRA8tMscv2Z1m9Y88Kx7Gkw74qpR3g4J+8E5DTqz+e+gMHDuLUGFXf3gBag49Y2WvK3a/N+y6FinLAibEE6zvMGqTBECZQJHbpLTWaCbBoZ+MEW2K9ed5B+PZRDTQf0zhl25eq/VQRxLz72qH8Ld97TfokMj/XHzYYeq6+AWLs3g8fD1VyeH8hd06SaibGi6pimB7P+3b4a/HxB++AVshGuc8TD3cGZsKxEwp3Hzj6iFZrL3a5FcX7TBUeJvSl0ic4Fun8cRxygTaeSn8rcr+BiaD8d25nKYru3ghl6oLHOmpKeY/+YCR0/vLDlAzfsvOr8uHmBfZnbWWRN8YI/It6fhuxrUW+TmdeJ3TRNJ5Tt4UrIXC0j3aI+/KNcDY8Gveq7JYDvnnxrCMeUwv4Sytu6G5u+69o8yeUK2z6nlXYsvAfIag4uZ0/8KoUIJbIgzoHEFjR2iZnDcE+V6ZK32OC3HtcmgR1ldX8uAddE1N6Ailx4INV+UVjcbJTX8YkeYjH17bxS6OaKhnGW1jDFLTF27/LzX5e9TvKOCXtJ9XCUaU0lbVorh/bdsQjDE3j3TUBVAp/Jsfw7zriG1rbhpJf5rnj98JK8fDXxf7sua4OD8237+eGBOsbUnxuSv99iI4l/wXxK35AZyRfckN9rpIG7+ri9zJFQEGOuC969ivLXpWsoR0uYwYmd3cKbchc+5RYislu8qbIt1CKLpMRn/jM+X/BMsW5dvpCgYbza9McVhQEY61R9KjhE1qcOdOSSf3LydOIelD5GLc/+f3ebesztcKAI8x5ccLrqDVSZHtUHmt+PQSV+Yto12LZReBoTtO6bWismfgm3cv2CER3uWXkqScN2vR/R3X84VS0QhxfEvD904aGEpRgUD/wgdF5XHsDDrlqJiefXCD77n99FCOsb6gHV5Afy+YnN+Pz5l8Qv2o9bHcH6QhqQdCFKRzONUN7oce6tYDhsOt+rv9xS5lZuI9h/Bou36di9X1R/zwT9/Gtfh4k/j1ODFfQalAGkeYwed3swAolXLUfXkVLvmksGRcRQBrTte0naOP22qJ/bZ42luHKgAueyfJNEt1BtCPPsj4i+4MsA2TdDbU1ma/6lYUohl82543DGJILIqPAKxh1F07R7FsflAH2sXrYMRYRRsXj8CDFvQe4ZbJmSLCT19SNI1yLc6i4PYIGWGoAQ4LbslsNWR4jnBo6+t4WBC25y3ei3TZmbGc02GsVdeiPufnRa3Te90y35hNkdLRToacGDpuM0hUvpnp5ziRkFZeNeX+NdrKPXXc9Dv/U+lk/b60RSXfi9+83AHmxU/GkTOv01yJdDwxE5btAt3batWPfHLqQ1cPCnm/rC0Sr6OKbvFnfWXIQU/khp7KPdfkDzAmTxfWOxnJ8bfJrAmWbUYihEhyF2W3QGnHvoxnDI0Cv3lLgSO6jP4tPkq5rTM2DtcGAGCtniBm1MgRrkWQYAQKZoWnA3Ou9/BDxldb2oYR3kLD4jwynKsg/LwMn4ZJ8D3DoXA+PlpBEYaD0Q54xzsMUx7U09LsUrFLqeZrHyllhuIub0UMgzWT8517Cz6UOimFfK6ps9vXzel1JEEjgYhBq4LGwDmC5+1FE17M1mc0fJF6ZPHwwYEmAzapcePs/4GMB2xDUphdFnBYjoJWsdBrmENKYjSkp+QtqkW4Sg3++nMAOf4J54hlayxNbh5PaC/puohwmj/pmUHKXCT6f6/5kKwDWRD+QB8hg2qx108vdmv3oZlIlmyi5ax18LY/USPCyGQ6YmgojMHbDKfZ3iTbzSCQnhfkDZpWYgtA5TRLLfQBijYBbepw0to/sJUGU1v3d05OLNLO/y5qiDfLkHI36ZifKdpeN5oxB5OAQEYt7sfGe3i/szbH0FJaZbasoA1kSFGPlK57uEIJ9dKuokQm4AZPLr0CWoggUL9kHbENyyTE5sROIfRNWJBO4f9rwBlbTkHHiXiyOiCSvE0vxCmEVPLIcsjFzXHr91jbQbK0mtkERisJwgiS0dGOXt2vPUGqoe337PGLtm/MZGU7w2BBCKYLg7NbNefb4llWamg9R/zfzneL+2SU3SQk7TuGILDi5F2irPWEbUl4Nckkn0hXBSAilqivx0cYgjzyl+lS1mFFl6F7xsdArXmha2NthC6Z2Etxf7BWE0W8rZ7STwyg5gvkXz1Vt6W32lIL8qWc7VHZJFZd7O55NF8X09dLuHFigc5MXhPDp4tZYYda9cxV7Dn6dacPcMoVjmK73w9nCrtdnamaN4BurCQCCTdUcrKpWswWnn+xQqVUlWAfSVWUDpv5sVLNLIxyDXbJ2HWSXneq3MzeCxBCHcE32CI0N2Noe6zHa08xz0ZnlERan2c1Np8+eJZbvnIWJ++9knE4SOYozfRNrIHf8kJeUYQlODp/auo4r5gqJg6XRw1X9wCgXiE9SvKKyblFtslgXZveZXHGGP6wcftTcC1X0dq4ad07oIqb2hSfgcHb88eNfmXwoFsgpvXmgTYZ50p2NxbtIOJBWe43lb2BJqfJ5jPYh99+AcWxHEICEGC7yBRDAH4UQP3IOXp2ehdoiGbJD+N0qGRuzy4PC4QIMw8hLs0jLMZLLb7XihoLt4sph55o6vf1uQPBmjxMTlM8JM+UhhmyLktDK0+PDr5ArdbVDZjJIdMuRV8OO2lH5Y/494B2QHHBJnYncymFmv3xVBJ4Y5KBGSKcAW0VCc0dDZxF4APOY+kkQ+e7kUQTzZYXs3rZPiVs1aFAExGhFKJKtlDfcTE2d/oSnEVOSIwRlAPtLEbrC07cBWYFrzepf7z4g6O2qmmZFHrYf55Ynw6q5AgbsYwZV5HFEqLwcjYzMiNvgeMT53x8gw77lIb9TTYuLYiZ0VcbUonZuFS4cfuzSApVRoP30CkDShlPP3KKGqRd3QvXgLvp1ZWftl+vMH3C5pgt7QigPUCzD+cLeNK1nri3ViDM1vXllmsYymMtq1RZcO/aK3gjmF/X+xjJFC+geyVIXZvncR3jiSO1NtTwNV4d29kSps+PltEqQFj+oXPpaymyPecUCBtfBljsDPUdOKXA66jT74rLxESNK/wl9fiW+uQXYlVjhXizr5ViPMch5V5T+VbgMb4yX7kQ3X4qU42Yh+MiIjbUBdyryEVmQ/nlVfJAhPOj4nixM0lzoXv4uDz3mbfSB5gZypxvyRFCGKMIA5XMiXMiHrISrgWnx4maZdA0Ck+PQWBohwOA5AH4BOq0ANqiEAGOpcp7LLLhZSxBbm7EoTmXbxTG8tQ+sOnM8XrJtqOYwfnhNqN8tks3s4RcY3rwjUAvwvgPCS6ReV60dPH/IYk1j2mZp4SHoYyAjeDRkcAfyAyavK6deR/jm41hmi/R2HPS1pT82BfSAhsx13vnVwzjnJk1uNsZbcLGNjMTY2rcfgpLPJ5pjNwPog+a2vT/vFO3wqIWFdHJLrQqS3xYizY5LE3jlSyKH3jU8rzR/tH5A9B9Q3qMBTYp2cWmPoMHof+JPbcqXo0ZGl8FgOb9uPsE0GfIcdq2J3qFoiiz4NXuzFTtRD2xCVSSkqg6RB3yYV7YGXKEFuuQrmSyDcm/So25BP7oWg71e3QbIKcXoKH3hde4jXZen3n0jRRQUgyfBJ5VErqP2z/n3yFza/GCNEEVM91e6MFh2dlKz/yWmLYJlIXqOcEwqhE00QF4CFK7qqYxqQjb7dTbVOgJcRTlD1CdFJSzv/saIq4psAOfnyLzPK4HwWlTBPt7yhzgTGBPMUcwvp4P2oxFsD9kxIqNP6GZ5PVNiKpId+5yumuDv1ACl+OAboMlJ9wshg6sPSugSx/K/9In2RodroYXSgR6XTbD4KjMg0f1t4m72DSxS0b2rQnjIhxlZQ5czwuVgsdNxTfqy/hCXrcToN+XtUTotptzcAUYNJh2sEHXUNey0oYUjOl2CiYiF2KS7hd//tHusMpvtormUYo8FYCUWqSKXDhs7W7s+kTzydPdAEZOcYRRv75cSO9avkUdXkLQ3y9x7ImpEp3h5I25qvj02fypB8KxFG+p8mOjOoHWhTIu243jb3c78e11M2JZV/edw8x5hmJPzXXPQzAoKYqi7EcRyyMA/duLhlGEEkPYulP/flffvShvxwGaLKmpzXmrgoW81UYY8whVIDCmapd0qD52pN8WDv0QZ3/oRWBrl49ti+AKzFbW+G2pXKmgL555pOlGJPFCJsV00lzkIUFtZNA4kD3VSEyDG77pZTU0vpFpKXhdC26MYmXvtr+GCEwPWtbFP8hxJbNo1WAox3CwGp/ROrsp+KXjpK0dOXyXIbr3+3AqwQ9ffJJNup4D5HVew8p2m0HUAtB3dLMq+kQYNagi4t1m3HqpF/SISEoktOxS2sNBvi3bUL9K4HwxOPbjYc1qUSNqkqYLLDP0s4MztBo2xlo3DcLXPsbMRLtwe64XFbpuIaGBhp2M1WyFZZT3a7CoiCbAMnjwrYzYsz+veDIdqgtwCF6U99XRKHwc3oaES/D9kMrX3GIzttlqxP8aV8h812YYvnNzJROzuP2qt+JmTV3mnyrG0yDEpBys/JwRH3B85D6cI+eon7RhFqfV/aiLqGbUKKouvdEPeFtJWn9M73Qjzol+3ta1eVNSr1qs6Xk2QYaarDTygdJxMb2rGea5dLTIos3CHkkajlRM8+oFLkPQz/AoASGQZ5DK7OYYJojNt7XhpRqjIQULiCEIa3oUveWtfIu6A+cAvfdFL6qsJGbySSkHpZeaIKwB6ZZxx9OXHkVQwvBt90ckXUuAPEg2e7sVbMf5NBZoxUgX49A9LjLXc4PTLY8uxy/HKSfRtHixG8nayecgs1BfGmw0r+YF0U6MRi+4M9xKwAdtp2jYruHR3KtIZjjmav2xYVM9njlSLF5Mr0xpppLWswmC2Y3RY8dMvrQN102EBcEYIHiCO+OkZzqXtos9x+sxuK62GxWLmUZabs783uYPhbrgJWEV3rzlXpPPN5bnKhuXy7zzzm7hldiZBACJsXI3qiiO+SXBVe6pt5Xk+q7BSOtPGViOtmmunmVxmT3rFfkKqKD96Hk4ZlQBlg4a74/4nKUSEZZwG5HIwZw40qVW9IcfGNCq1HZFz43G7yvCdYVFeTn04Zf8tqpDpEwntdISOvIlw/9bOqDn7d2rC53fnKZ8DV6brJrcD3GuzQ6qlUS5l6+BsIsIXrAIzJ093wNgOKpEX04jWGFAVZValDGM+NsU2TeK8fGMfrQdbKR4pOiA6sxsKju21rqURy0um5NczEgRqPGsDzE42hzdUCpzT5cZhZnGJhVfPXQgCISdy4jvfHPrP5Hl3HMT6sjgw/SLw+8crl8nDdasUITHoMSP/tQptPLolfRC8pLJzge+LYu9u1IUQh9dFdZMU4y0gbXQNJf/nKycuvZScAsP3moiUlnScLM8mfUYoAwy+LECzNAFYTPhEtl59FLJ9DSytd8lAgIUSbpA9/oRANBxqWGjZHlpkXIgfxHTlPRh+Ht7ZItkZi++TjiZujlncZ3vVIu3gc4TadnhF9Pa+kYI/45zF9iNzE4/m+yivp8acPMothATr287LTWWQGY0A3Y+o4qOzG+ehdeqx4L5u+2dMgzpNhlV7ux1eM66fSW3R9+2FjBdZvRITfy6B4dX0+unbEyly88pf/IxpzfXbQgLVkUjob2YgxNJ3BOfse34VSnFU4REsYuqkFj316eagynPM3T2hQz/kp0waf6nGdjRCKmI9dtIQtjttFf5qz4VhIXewJDwW9rDFHJllracqeqCshYOox9w1Zq/n8ZJSKndJ9URO/6QA+Ieb0+uxqAQJku0o17M4BvAIVK+nahFZSb4IkuuLFUsDA+nBkQ73lIMbqulYkn00AiBOYbcGVw5qxVOae2VpLzZeNSLiRwnyflAoDWtmCpNvppm0b8g4Qq6gWGr7j08dBboB3D5G6efr3KGJ2skhn4RD8IxTP1a9DaopLZ6ou6Iio3gEKq95s4M+J2EpV6blyLu+PP9MMIWAG35cOvhNSMx/sJM4cFEJ5Aiql1yVhBUECad90tELBzBjWkX1zfSusJp6Uw2/ILSCE4EnpGjiXm6e0ZE3nzfYfDQztVQcFaj0WxftlqiqXTTbVsztFBvgDkT8iZIWfysCjJOLH6VQ7xmNMsRn8/lxy5XqsKn1bRpS/fvm/NinOOtrLZ7cZ75pvnhknE6kkhU0cPOHPuagT6c77QW7TQjeDT1Lm/t9FcemqnvglMWVnf7oEInl7Tk6BfHEuJtl1ZrTDs4wOHU2N3qMKV9VVOW3b5GiyteXkLuz527Bmj+7IzGtw3IqBpclKWANhoiLWj7QDsPBR8q+/bVARgaeiZpHLaDexs4yGoVAA3vU1BFqeabaA6iVQmy+qtpM6kSYsfVsPZO6dv2FdUUqvsD7+xf6eA8rnJKEup2CoN7e1jxmpjTc2maBgL7abBXUl9/QFPm6tZ2ZBgwEUZDY7XFsXEd+bkbOW/G9mBT2BgFV7sDUI3OTKDZq1kStCuDRbV0bFzQpy+lpnewQJeF1TR5YebswB0uKZfqZ+3BDo7sNI+RdU0cYz9InDac/5JoYJJyB0aa5wBCMeZ3JB0unCuhB6K4gbFXAunizj679hUc2noilN30i2q/TQFksKlRXYbGkycJltsPfW5UOYZvSkCfAGfo6gsVUnGUtHg/eCeHcatSbwXzIFIrVkC9X9Gq0QIb1eIk/AcVctKEP0uFRVbe4R6IUnA55y4vh1LLjG93xFmL+d0NHREO8E299HL/D1UqC76+TSRvMDtaiyIn44Y1ujIn61Rt2mDeEouEYavqMKqlAkwlG+25qN1R3c7CKsjC/f4OrBoWjEj5edvOC77TqdAqUqwEQLTL5VoAyr5tunz7nBaAlAw6HJjM+xoJBTz22hpBabZ3QN/8WApYZt/xx4nIOKSb4BE/NyjRPtaE66THUKRHtxSzmJRmf3fG7oXgV7eBDLhUVpxZnnJrO7F9SV0rkpqM6XNPE71flUHmstCfvsrFW+Obo2VUbJfw0JWjsXrWeSdaALUM8QsoKm/uIqFx5SFqud78N/fT9SJN2IA5Wbu1SDL250gzU+unTcpLZWLtycEWr3tQARhDNRLVg6l3YCZY9/Tk9UUWoKWUMuDwX50IDPOPFbSXKfozed+Jxtn7IpWwB7/B28oVUw5AAbf0AuTIDB4DtamRoeW1N7Lj/HQIlZh5Jh/IBt1aftCbOuSe1azdTzjjPK/3/MVPquKm6h2CxfVsUnWF3Su71Lb+qctBeU7yD42pAcmXQ9VxuKuaegR2bw4deicr2oa1szXb+EHI/azZB0lcFk6OTYlP4LB9zdy9n0NbjHxA3ANF5d6XHQlOm1ZQ3iXfJ/65pwJ51xJOJkgaBUVBNiYyzuJkRjoUhxliA8tpI5J+PRaYntgtdTNiWjFiPCU93C9fwqKzHVTDHosRBNSp67P0zpXM2OfZk5msGFtZoaCJ3iG1iKC9EchwdZm0zV88izZEIvUc6CxdD1AmZiJPpP1op56wPKVj6x0UdRfM7pYKr6q1UGPxg40Umj6WNnUsr6BuL21TIxB1lzFQKUDBpsnJIPHFSGZmOh9wfXX8sMyuGU70cOoypARGJ3p9A5UIPl1pzM1PKz7Anm33NpPj5UEQBIgiiV0Ww9rWZgEN1VsYmdZnVxYipb4kJs1FK9sqsOGMXT7HhdEMTb2oEQPKaVCwZJfc8fn9kH6pOxs/3x+un3ckkowCRBlA0gaqV41gW8H2Cd70pFPa0Sh15oENzD1aiGWRPvYv3eRQ2zYVbP5Ah+ZbffXRJBTZcGrtuqatPraz32+42YI0g63LY3We+eprwo3ASU0+XPgtdHjb5Di6Qb3mOG7BowjvdSbx+urGR3aMwqQUk5w28ovR+20qWoCtooXl6miRcM9GamQrlHQ/y1LNkNeeaVOnFnG8TFR3VRluZZ3wUjuliq3iR4vI6c5uyFGlYOg7F0GRhYQEDZN5ZvUGFZx+Py/IKRYvokNGNtIxQISwoBcNesGHE7Kn+zfcqCY4csJ9k0PuTuccMcoRkfougWGMvzehsP3U0pG/IcxfbVlpUrQ8pqkxLgVr9lhdV/goCvcgmTgbS2tJGFljAo6Q+qW9BZYHV22oYYOpbGf3kMsoGHbJzEBHzcKRA5X26VRjA1bqAV6FCHAvDV1M09dj7b9XCPd+lMOhoZJKQjGG52gNkk7wMnXV1DiBH4BlVPh/gIH+HD66QuaXGHwEtJQGivjNxUzaxMmG+ZbHIvxf4usyfDdxjm3Ih5WzJ+klyVdsA4/0g1MY/BK4dlpaVrfA+6Icp47FcLvV72+t8oIAfQKrTyCzs4gk6MdTaDiBmlweDECgTCQFqTjobKw4PySOP4xSHpI0fly87uXQbHOWfEo3jFj57GRxVjacoo5AtMXNJoPEr/+fbXJwhPd7LgZSP5czVwgMCmnnAYf0n9ZKbPialogDmXD4jFK/11JBGtQniBtMYQd+x7kPGBJW1yroZSkFtGPbcJMpaObG3IeCN7FLD0W/X7OZptDMB0/uI2W9I+gTRAC4Q39eXDfTW8eJEY9ZzZ7txjtASbdamwrxJesYsKU5BDd205jQnzQ6/9LeNtE0CuAFWXBAADmzHP+fkT8KoWi3SpFfPbwzhyeaBuQAlywMogJ3yzppczYlm9PzdQri6hUgNq279vJMjrzD8j1DzrfzVd4e6tbkdcFYG69vz/x/q7X2xomGaC1YcBFLLmcKAR1aonAmCHhyp+NVsy4ljGCCbZZNNVUEtwBT6iKzmYZiLaxzX3H6C64wteloE89yqO7ykmp/5suErKQ49en996iXrBvlOEGslZS2th3nioA8GmAp5WDsZPH1y17lcfF0EU4IYUpMjOLUk17i2mNP5mMB8TBGdVNIICaol8h2Nfi+/oZGNJTigNFZGG6hhufu8+fBA84Er52Ep2YaHfONKB3s607MkQD6MjV7H+p7uoLJjGo/o8e1SXRS8XSbbYYQH6/k9ITp+wQEvO1vtGUP6Dd9W8uHUmgcPvPdjU9TI4EcUM7t6OpzRgiLSfu7PZLgH0yCpwhWQdEnIFNkkotITInZUNDD1jGWf33oE182dDywvAlrSmbZhAd7kf/CWiPHdm5ATQqxpRVjhq12G40MOD9E7Kk/gHiLh147lhua2UG3wu6/P3iOln4zCoxKlwNMdtwae7/hh/s1p+nVLKqA4Yb50HjY4TyqPI9fimWeA8ce6fDmiNRYpTgcUv/sTUjMLqc4B1ez5wXMfJhIObLeX2rkBqTDzNIkifd5QL5VyJZLfDfPuToa4Prnrny+7rs/MVtpw7qYI26kLR2GwgQ+ZD2rfkXf2Hf0sd7Jjsvy1+gE2IhV5413D73+zKf8/O3xLeMRvbGvhWRKmqqTRDpdlm3n35xT+s1Qaz2vbvaLf/480kjlAjjCurErgGUO7ZdYXiSviMGDwzBGb2V+UVGsrsPGGchi6Pz9h6VqinHQbRgxri7dNWGa4XGahlCe/pG1i42+7/ojiduOL74ot2AKXXqf3peU969xnNWxiL8YE5+LOK/q5UMenL7kQ9SDfLtZ44jQKgH/XV4UJ986Tdgkd2it43j6oO/zmlXtdJo5yV+iz1dCVWS+YL9kdACS5/Li9x+FGfGeddwW8nCoFB5BAXXmjkGbooi1e/eUjs4hxEfvFmxZRF2/68vFxEavFW798oVrEm0XaJvrqiMfydCFVNm4+wzGveMLR5kyfGTkz11ohm5KWGEFc/2tbnD9cBFLQHox++gAzIJNjXH3QyuoXrK0EB87RdtuYeMKvqQ37eqqBK1rSdh/cUe4Lywcv23JUdL70fN33Vf1XmVTcpv7NJt7M0X9ZKb5YgtGaRBrEyUjS7BfPh73NW4/MWWdmrPeKACuZ6dggQePiVLjD/eTTqYUOuSASJadHZML9q73F9qqB8F/bNA6eNBATKMLMlQCk/R8DO7AdImlJWaTsoJvZT0WIUyETwHPQiVBleY9Zqt/KFLHNq1PcE9belgItpaH7bpD/eQiCWEQqCMtGjVV3bsi3DSfE9SileG3+JiNYsFDRq98r+r9GmlrwChSJzr9bVBpdMs6s0vsG6k5K2g+7OhGnezCNGCJG6cThXW2P1XvBfL2YL5hiXIhp05H4ZARNRzBLKJkoQcpcj9JGh9gXXGYPDlQZlqaejVE8e43WsrJrzkpeb1SdrpTrusds7JirNHwMsf4jNahyqt43BfddNoSQLyN41J0aBRjWrSsj4V49I9nHkS1NLIiKtWLRIIMosILG7UOhLS70mhZBBrk6Jyqh/KtzyOfNj0iYCeu9YFTyArxBE2KQ9kMI4zRihgJIC82tpwP9aoE9x22gLxnJIkmhvcUm97sjTDfjVa+2cj2eOsxqZOtzcDd7bu7LXqHbLLuFcg9rS3/fFemuUcbPo6O2sQLE4yvv2bHLCBflbJmt0OYr4coQlPZ4h+Xi2oqrBkzCJjerHh1HliFZZMrrOxbPyReU0iI/iWJyEzTJBRIIfCmC0PwTJZ8pJjpTKpaPUtADKiqjLRmTAhHYX4CCO3jLPpyoIkDfiTWEBTusmy59z8q+fo8cFCyDQt8Q8jk8+e1xbx6Kc0ZBrDfEqklftW8U6+JPwdDRM1hgMjqft66WAWdrs3MbxbsFIFMoTXMVlF7Kf0u3QBawhH4NrRCuDB/VJtXDP7RRHmSl3hkt+0d7BaoDkc0RZltbHtLKSW/53+6R1URKYnKJvPLvYDFJHGbRSy8WkKYD7VietgurtkFqMYI+2ws4KeV03baewIWYtOW0nJ5weEx90jc7ERcRyGYMdjxKA7iHmozNlCulOEdRKS9xGRHIl6nDrJU29NNZCIV4MPZOkGwNH4oZKcGMm3H9AESE8qr+VvGKy50T5+jjUk6CdA1Csw4jWBSPTkLFfwq9gICFlfyh0FM7QgY8ewdPHofpck3nar+QI4Pj1VRGZ7Jkry/ml9aUoJehr98/6v/jx8s1JIDbw7XDY/zurEkHlbPLifcVRFguPVOqoTTDWof4culIrsrDGFoKiIfKj2mI0mF4UfJfjztr+BV+ihRsVL+nGzfmAlB6E7gPnKRybBvN/PEcVjzeiaezv9YFULHbYwsR/ggSbsypnKYR88ycIBQU8o9h/PrWr+AYQ7P50nqx/EykrdwUv1gEerVAH2mMpMFq2Gt8ywxGG+kVll6Bhwtj8e8XJez7W6nUFzxccl5gaehkwEsF+JONPTKRjSBCwwjzKhTeQF2Ykei7FrMtFVqX5RGrx5Kv1YfyWrexE4M+to5bCVDRsVFkRJ9xf4KVZ6Fyh2zHcKhAMCIhpvwD11ymzFspAYrYODkOrQkY0NNCeOx2zWF6NxUJsZJIdp2T8yH0Xh2/gtZOcO6gi8mcQwhhX829boOraRrweh7seAwURJ0DPnjp/Z0gEXUNvbaMfqQ3MjNBWT/HEqMKobDhTavTXm4lgHIXQJRgJ5eugcl31pAkGEF8qFIPM0uSTy1ISfxbX1560x+hgME79M87ZhKhsCmFOdSgltRP9UBMKGrygMh5ucxOUFSUooZiHczuxbJvzN9s4IcahIb7BvAbKkAyDWTVxAx6ZuZwS6VovICm3QjZR15DkCeZ0maCkFmZHnGtp4XqeJe/Xfu29wTqTUcZQ7Jc0cOzsE9yaHGJToxfAo0qkqWUJ+3K3wDtQlfQknA6DIIt+aN1N4sGWe/M9K87NugRkxkqGiY3gKC2sqi2MdcQJRVZViMg9Wwk389OcGxVkOvE9UnDf0v6+69AMiF4pDSWVqU78wuiyKYX5WNSU9MYbIzXGiuw0uTs/nUtgdmWZThZ3UtAmXlhKzlOkfmnwaypeZ56ZSJrWd1E4ZA2a8uR6rmAgJUBBYjohrVQJIm4vU/xTrmBnD3mwS5SllOqHjczovV3bkcBnYqzViAm2VoSLWBUJCUjc4bRbzN9YKaZFP5w7tlIoSfCBe2IfsDebwjGGepv1SdyHBuTiUeXbSDKMChY412d6eqcXibJwjVO7uqpoNwIWyraypdqRXMi9Gpk2AjLL6UQb6gtgpfy61/JhX6uj3+lQm+GfBwIaRd5eFNyxdhEcY1RKZUqGYiwCu5sjq+iCpDghiF2+qmB0V1jqNSoLgrJnirtRxAq9wVjlvxteooCuFftGZaD4BlzwkgejsVnM/gWI/NSoBgFYGZOjsua0J6w1V4Za5KVLNriye4odoWd9ykO6mI5T0l8xDtdKTcutl24kulpXIxdVf4gltsEKZIHFPmIVrjmeVlZpOh0iLzmsuVA5NOYEqhfc+LpCPtQwaZ1qPBxmGxuMC1iAixbqG561hxnBKAQ1yrP76jDaIVHnnXDqJn/LskvmjEUMcgALDaQOZpIIIFhySjgHrjuCFum4/BmlIIvogRWCmJK/QlhM1O+pQGoR/U/ycgP2c9x1a2NgAtinx7SLFonhWoXZKc+zBNDwuNvereReLol83fMNDjBUmtDnsZkCY99F1epnHyXHPYa0yrsT/osXjUsMZz4mznkclsE7o4PCZ1FnGwmSjtswkVa49+yAUahiOCWw+3mbZMgPZFf2jwg4RHkwMjdaJLyZLkMnao7lrR2Q48oqhhyGUHOfJt5rDjc44eeRrBiqaWkTAPoHV0axzINUrC1NfK4YEt0KnfW6n160jfgyOXfusannxkJS9q2I9btlHfrgidPeoCHyzYV5R7evAitubUdPwVyFaH7im+keJY92U9bAkUDWx21ATcl2prp2NcG3g7i1MfY/tt6aEgR7YHCjSNyz1HegcRHVNS7p8B5b7m6nTny1n1l+i7FcvCkleg9LRefjsKBUxwsauspcWMyfhEshFov8Una0J9i/zPXu/Xf5glrFs75xv71B28eZzMQoPGdPlMQkwEHm8eMgYww0nsQNRMoVP2gnIE5HwvhoieuCG16xLm2hxcjwcsSdQmIePeGS4jW8cpY/DAFj8t8f6jJ+zkJQHA4u4/0fQIvqK8wYOTgOSxl3xTe3xRqdaWAgU2wK+On4v26U2CKwntUYejnQQDa81gAsJJa+oSpWiCspoizh7eZbOkT/tewh8oqSWwLHAOXKakRqFjLAs487R6BtjgR4ynuVLplX5avD/EERzEpJmltE2obaBMxzGYtlNmFabpYt0G/m5CZGotHQz4VCVY2s46DqQJgoDFLFFRpilO8Ih0eIxmgyOOqX+qQTtevYRV3vLvgUET7IoMGJfD3OhijF/HsV9quoisY2a7C8cg8gU6f2DC76tW4YEf4HNEYm5ADFfOuhs4otsNwyrrf/R68BL/KvfogIIK0nnsfoaPoiP+hD6mXhqskKx+J4WIHnYSROetCZDsf4TAgrX9TyUoOCMdjxcOGnqE0Szr3PHen6gSA1MB9U/7a1xgpZjPS0lGDGDyfNJEhRNNBs5sT+ezcXhdc6bSi3bfvPiHnfd1eKyNJaWE8HBrT5xB/LMNb9RwVG2qrklI0+R+KDRgi84cKIKjzw8icpeROxWoOQYHrLbHZvtc3rNTcOzt89cjMpncjw/hSTeXEv6F6yLwBBKr1a28iHDtvXAc0/tT8s0LhH0FY589KLvqVSHHvdOTNK9K/yN8rfK+egBwm0aibkZ1nZH2Lfp7Fuy+Kns2qEaSm2E3SzniNIfw/B/rTqnRDqMdBIgq9/0ZQKC7NuKoQ4UC1xC/ZOh3nhh4XB/3dXgmXeRLPc4dCJxsXxdAZgvj4/YHyoXAs+pOwlHHLU69zQFfBofpJBldFIvvZXk0ohjy0BDf62N+eAL+oGWct+tcjyGynbwp+PFLaHnQtICBGODhrfM/mYpBZzlidnQp9rP8JL+FQuosrLzg6u3mxA6QbkJ5AZ4hF97v+2Cikbj2nfkBDLLJkS0XJtbeworM994P4mlBIyPVvCl8BEIH6JyZkO42z5Dl1bvT8yJmE2dsPZ5YZygDlabjnFeijy/imrEKYQB1pGf8jYTKa96xqI/Rp9aCkzz7Pihxt9U8to+CAcNxkRivmFjc2JMa3rzdNsUbaiOTMcBVPaIdwuQ8ogkjELMNr3tZk7LJgmL0sBfPZyuigmSIytjgJohCc8gmTCh+EyRmiE9mpWzp7etOrKEDdZBYQxGWP/dLbRO2kMXvCihXJLCIg/gvpRHO2mDnJay+KUan7fgugo7yr+17T1dIxTo5f4ROqXxScd1wmn8sghk+zWgp5Gr99za4YtOFJijZbO6Znu4FoJqrrQSaG3iZdeECZZ02WdckEzSrEk8XReid5vWZxU1FoS2rvwIngcqqMbKpy5Jh6B9rxsC1fUzpfW6aFrII8QpX3QP9D6KIIL4RiUZ4ndMWH/5F7QPppVsyHMK1ce6x1henQyFfNQv1DQErE77yBEpiQuoAoXVZ6NaSSiQ3N0Ws1vplZiK3Lv76VoWsBUlZ7v8Tyz3rmiIS2/mgmRkwQe1M1/wJzZ+tJkAWmC+BjNm0AmmF2Kr2pQTFQgk9o69PEW2MiDRA/IeL5B8qJKnH8gNmzOKUKDyyWrKt6d7tHcTDzAvp1OhpJNnhyD3fPKqPmf78e3THsy0uy6H6gazpVpl/Fm9mgCCGJ+Xt6dJRZWJw7criumbU6MQ44/Ll/8XeVlaWtdTgxW8kcx7VxXP45I+voyOrtWCJiq4Y1Ln/lxzHUtGoOL9wP4DwVtyffyR9Z/pOUZt1Gxr6+5bt+ORJgnGCVzZN6QlT7FXN/YDY0D7U3OwsVJ3ufrkNcMv1YQCILpfRGjz4HC5N8js4XOPr4N/0iEB1uWQaW4brh1YwoeEiz0Ko1+yzDEWES4J3Lq5Lj/6F+QSJfKINaVE6iPxJer5meeKCNRbjscPMQUta0X3YnkPGlwY17BSx2zpybf+cCI97rEWBdkV6aMmmRChbvrm+3QylLt6s5NhG317NMBdY0ZXtyYykI54V3yM5pk/8yGUJWIcUJd8UW7r0iSlrbXt2XyIhla74b2VMfUkKbezmuTel9GbmCB9nCj4OH0bNgwiErypP/TnST+7mR2XH9BzrPL9zEZX62ZGvRPmEM9sIc74RxbGqXU31F+6P4DgmrW2ji1ni9Jxbhwz/bPvY03Jp8wQfiE81jXyQMiv4vNs8uZU5So39Ewv8J0GKMA+WNaCqykN6a6AEy0ooYxgRdS0T7CHgpes2ASE84NRZoEh6z5wOv5967FlDmr+Iaj0SKDlY4FnsPw5LQCoXBzWmGvnFfEdUJv3vGAqt/DZLU5gVWm4opfNAsnXAowzYSnxf0B3Crw2KYVj3OZrKxCwIHYWvByCQpWzC+HL02EInzbwkaFeR4EkHCnAlB73zmq9M6VJAW2xtGtrh0VAbCHBvCD1ZZFFIdEjsvXMAMPKprt6hc2RDN3adoHpogokC81zfsJ0EBxys3Wix289FAJ4z11tL9J/eqqi7VLnfVsuPr9+QCE54VzNOpJHSZ5ysv5a874t29Xv+6F7AjABX4EZz/yxL/BpAfAMIIE1eGjoUQcoMQM1eAybH16WIT1W6bUvjJkd9jHmaaXanKRas6HQ12leCWgpx/kqmRiV0bRyjk1fU6cPyLcszymVl8gxqSNOQk0Jf1OL7XzOy4PtNt6DkL5L3270XQKS2++rhsEuuodotksqI/eL/CYrnDqyEmGVs1kpFcGyuv/DWEK2OgUkcLXZBIVxbeEauyYx/94RTCVueXnxwBBJNYpI20UD+/bIdwlV3MTdejKHNzApMKha1ctF2Xj1JQrwc+IBWzHvjkL/6Zjz8RES9Ik2ZarPY64MoC0rsyKwHtKPdt7P8VlgCQysyWBboO0kD5yeLN98YFi3qVgJW4eJiDhpdU4pkX+8dEdOJVb4RV6+sO+o/wj6b+LKP3PaqQ59bxAYxrSrdEHd2AKng/f6UxXdJZjuJwSc4Iw/ZcodWtdCRlvEDDWrTFoveX6F+hl1EMDCTXf4nqcWSxWO6IPhvzj+/XreKFOFwz85md/lYng+v6naVF9jHUxfag7FRnRIIv2xF6c3I03pNJO4GaTtx+EP4IuoPEjvBsvhaGPa4vp68dUCIm+0Rof4HyPp1W0GcvpwaFurcWITK6Dqk7mMM1LZkq+fmumEHZyDinm3W8SPjlZCoORqG6j17YMBRt8u/t162im2s8HDCXyS7q7buAqeeEsZqLeBsZXDr3ymQTM9mbiLPjlbj9b0r1e2qr2wXWZvrvDZeTc023N1Ld5j26/gpw2Te6VvkFJ+g6oq8nR4vou3yC1Qa2SFl7wt9ZS5jV2y+/uE3r1IkkxtkaoCko5JTLlfpfwBE2p+wIgoFKoTizAPjSHSr/yik8szI46hNqNbAyAdtJHY88DvviZn15sk29CkG51yb8gTlkpU9rZDUx3pcArkE41MimLeVuelaEyKRe73qzOi0LItn++PQUQJiAi7x66Nt3WuBY8aPgpgWrxiKH0+rQlzxUng/H2/DvQ9s4PEyNN3zB9t+6+xSU5cBw3JJuSuMQe0oZiUMKnnLPJrcMlyl4HQfsV7grjY17ctuR5tI5tHum1Q5dXq37drrSIEMCPL7d5i5yUUQ5OrXXov5/eFVeHfvllLRSHvU9KEofhigymBLVJcEi99Xl0iF9JUjuQXcr+GhMgKkfI68ylj7nNw9D5aEiyrjpzNkbv9M4m4mudRFgPwTDcaG8cXYQ9KKkOu7Jhva9artyckKoSz+TrntAI9g9Sx96sdhv4CzJWZvZpHOo7rEDq19Nk9WOGSFAokdKEIPmwR3mnc78OPayYMzJgn9wIj4sZnFeTnlg/leGGVcHk8CEpgvmtpjY9ADO1e5zzly96JMB8u/AkD8x5rBAodjmy7yIfNTdiOdBvIRgTNxtRDn+2LSFdACmdadVKO8P1ym8DspecwSb94bTmE5hQ+BDnF9SrUE/kpLKP8r1pTbZXrh9fOhM98xxyhdhZzln8qeB1mYTzPjukugtXAA+m2zEdaA2aA8jNF1l0QYCHMbut0Yd2y7hL4nkoxXUffjk1PJIVYGNJXuiRXHPELXN2T8xpEj0G7ajLiRkp5dcHSF/akdpxlrgwVhCcnYMrAkVrg27l5Pq9JlCX7RMhuFE2vivTctIgz8A4LY9BtQK8oAoGY5aAOW5aJddS1qD8TixI1SAMp+kzdzPrnF1wD/Ne1fqpOqE9LZBZuNkBX+UHeOPoUfbjpHiS4gqnNDZBoFTX8bhSEJSmF9V83AJSUvMP0aFpQyfAbf9GxJHRyL5ymFV1t45dG+BqSK2czNtHATS+7O48+rM9Z1RFAsj8+y/8cXA9oSfTu0t+VGGq+0uaa0UvTxnFSNCZcPjELtv+XMYeXzLHWSJppXgKMrCVRTkUmPeG0Y7UkyuA8/nQd5bnk7ObIWVb5Jjp7EMER39kHJsZAHJ2Xlmp/Mq2zsAL2aHsDGrzsX5hb1MEbC+6hknScJySAIV6cg6JH5Z6DyqV9tdCp9D+NajTtqmooqEojK+tbxk9wD0/uzzzGXny9aQnu2mh4U3J5ZgBZknEb4OS3reLMDKexG/p1HqdbP93o1P96+BJmo0L3UJ1hDljYd3n4u83IRTOmpiwwiwyF3UmIs+VjU7uUPIdrNYQdA/vWxDeqTP53DIGVlFJM+l6jFRk33MmrmVzubnjrayzVTYf2IRWDizqOKHDyM2wwaOrktclnZppEha7IXw6mVBq2LeZzyeAHivOblGnjuATktyLj2g6u5Ho/Zq6KX+3QxowmO66rwtSfYuoQqVrDTjlPbJGhBM/SGl46MzrgzOU2RnGd4Bpg1miCj+yBNVlqItFunxZRk0j2s9u8FbkTClRI2KE+/4Qbl65YnmPa5lp3Sh4h4hUaKjEP9YdIMGBEFtRVRdNA7+pCoTNQAb7P/dOaI9+64ZqvUHRNafnCOaJ0cMTx7/3hijowem9NDr8zodZKslhcNJSFuO3HlrfQVwpNf2zc9LNCVGC3ozHcQwDMM4vpBLidqZvc4HH7SzRnikQgyVKCKt8Bq9eMr6T6chRatelO52V38Dx53SlmH4ZHT4MXGdCXY2OGnLaicHrs55LdMjoe0XtosNg3wnYRzvHRbge4DCZJTIaiY0T5hO7MVJ2sBM9E3oOZd9f7bGIYzi7XvkNljbkBzMDZ79mTK0atyLKWAoQvatiIhuOTFhVf/iNP8TnMejhzkeR5xtG17G1VW7g7P80nlnNfyUG74b/nxH3dLozCBzCITJrP6bQ14fTVm+sxgUFvSk0Q3RoLFdZM4ZmQoP7qeaGiMP9kXNb0X0iWNVJbGqfn8f/Q9WtfnfQ79kM5S/gUBpJ56wAY1Tggsk1yTrAci97Rsgj6SJqctcD2E2QNOvh55aOmW+GYP5tkcqCTCPzW6NC+RzDm/EQvPCUKQn93p9o92WsFte5BLmGtfDPWB2amGNq+hMZl0J2Wy8tE5g1ed/4A7HZtkVLTpV0V2docvMmGtHYePxbZIqb2AjM4Op6skqPzJnIDzi4z7VXKB+cDlYJmstBOEylVZ3bdP+WvEnNkJpG9iqGnpBPADpieHNyPdxSbarQq8SbehD3CjV97mUSNzR8wDqZKmofApJz1Ca3uKxtkYF0PX3QesVJj5WvnzXEw9QQD7flE6D8+dCZkAvxm0AfaY15CEP6YqF+vdaUTRvwpU0/6FtadN99QZzSa/vLWvHFV3z0w+5BwQiEWLwhwo5r5pRj9I71c4W0s82gogiQh2bayHhHWK9ecCsiSdI5JN1g/hG5Jllar+UkJ0i0ZvJA3WKIQ2YzVfo7jGj7sPYrcJM+ugbidUMknZ1tOifqRK9tV+GoH+/qjc/FxiO54wQ+SPvW2fKermjvVRoF7W1FYxn1HZ4Mu/n71kCHLa5l9yaJz4tTC3WiBkQotOltWnitfUxm89t7jkPifOoG1dreXe9lY/PNElbx//D800TBkBlxMSA4fZNPqbOpApaircfnFPothCyf/C53VIVaPGypN8WQg9D0umaiylVc/XFkWnB4K7zQN5Cxwf/9mS2Zt14rRbtz9H3ea4UGld2gUS2QloqjyHnfJO9PBUaSWDxXctNAj0zxBjUB09UYcR+iGrIVIA1IQkpeFeuD/GjahJu7cGEVpgZAUhNkdrBdOtXBRb7gKiGM0kEanDC6B3IxtsJ2GbqoUaOvecS+lFD5tSw1//XI3E+Uyjnq6jkHNAEaLyYrUJsTqEqyBqoTLOnPuXi8jSPW6jcCj1JuDSo36bdFUd9oNb2Jb8nJ0k/nH3j50Rj+ROAJjfzPsB3XQocqwBenu8UdhN+yEC6V8pVc01HZLin5Q9FMymaz+iTc4J5dvXuzYRRKuUtvm3Y2PqBnuczDMMwfLk9jXjBisNHOS4x57dwTr0/xyEd82eyShD5T4QFrmH1/+3ydCaOD9qScGCk9pBxoeUjTKPpKabZQVlwKNer7St/lVPKc9XJ31AmLHFwH5VPiHxKh15vbw+f0ZB+tgILN5DQrzWpu+AOwfsLrJvZbNAbNhZUC4GJAzpUbd24A4TB32dbCeF9/oUDzEHYFi7YzyW0Pe5ZB0OlIcPZYRPHfXrX6YOah52ZjrRKvCfccPEedBQa1rpDv14yrvAPVrirWmVvXgwYFTV/4XGqw2smnUmqBNMp6zwpbPyrnLCccrPJNEFoUNqA3PhyPbbQ7PvqhYkc35d9dnDtmYLqFGdOM4/icPvu41AV+PCjslKoqYlqEO2Ws/6KqCtOdAhX5qfWA4B4KBVxDEwrkW7Xmgs18uTLg4p9GyNUN6q98/Xo+3u0kAvkJUlYErgO9nrlSgZn8H2UyMIFvbiYfv9nTgvuiAKKEdyn27EnocwSER/ARDpiJDyk+sIrU2ZmFTsrxh17bNWKwWjJsKlXceR699ujA6hz7msNe5n5WlxOApJMhyvtICO5YGo5Qsyqiiq4vG46sZnwELPhw8jJyac7MLtQoTszvRna+wuHzxydcGY8dutfxEIElxLUIh/WO+4S/NxFJ+0r4iWRUZoeSTVEvOcSMMQD31hEQ3jHE3TvIcBIf9yeqIxiFmkflZ6usd3HukHh052CV/GlZD+yDkzgfKupF2Urln+FK9GRkgwlFjpgHbhAWH8SyYJswEXH0rxReuODRe1B9Vflag1sThqC3+NI95JXZ086h1cBcXTFdqsQDv/XmM1RXUK3NuOGUP6OgqDSmrF/YEyMCYr+NW3TE1tW5hib5J7wy0wh/dzb50XRsVx1OPCjtNLSJTp6f10gzLvDAD1tZYYgFhg0uXLCjjckJ/P/G+9mMz9BMJSppuKAIymquFe8MrYhR6o6bC//Yho/90GNhdU1p82OVeM+Wnf7xVW/Cai9861+tuBy1AixkG84CCL97u4/BnVejm45anYPcU3lKXM53eVJXr8O+AOsa7aHkhdT19KNRcRgqo+95Ff/BAzMa+Jb6tdW9VaqEgBPrCGW+Khdv5TXpfxPPQN3CSTH0GXEl2D206T/GHjMCachYMl1mKqyygQrVKZ0kpc1JGVFij4dLMFA5V40oW8MmNuvoyRabRO3D/zBSdZAlraO5NJsBiak247nm7fXcr/vw+FpGeXtEnCqRXbubMdSWXETvzWVYwivggCeRCxodddQkEEs2U7XmlWOJNFBsi2cVZGyuwesEId0BcKdz5//uUIeDvAnDa0eYTh2JLsoZ0XGUBNeTY4EZPPOqoSfyl7dit3IOprF4waSvpfcDcMwDDum5Id1VKNuF3GfrhqPiGYbN1+Z9FtnX4RbZlWSXwe9yWpzMjxgOnwzScHCZAfCw14i0v4ZaF1jYuIkcFeH7+gAPTcSrFcL9voC2st9BkuiBDK/SMlzsgqrE2j9MQvuaRBKrHACZDXYOOlISjETBpU5C/0v29O8O6+66KLYG/Ut4q30bQen/6FBDCcf04AFHGXEwBdjN5u2SRXjPuq2WDqeFkOg4Wr3FAVqvIm2LT8Ql4lGomIiFsxkOu0CmoxpIC/MeKloPdNFAx3Pl47k0AgOTw+/KDI7ZpA89nv6J1eb3oUqGCpKalYvMrWp7yiD+UopgsANCwgJdr14WkNHrJdHPLAoZObIvuzThKRmB42IDLB829+yKAAEiefZU30WkUDF95+ivFtp/q/F4BNxSncxhQUyB7s/9Nw9ueaXhjI/qlyO2Fjfx219jcOQOkpyyHNA2qbqkZ3I9kCRMTVVcrA0gRHPI78Pzes75imknc+bGIzTf3IrU9lplr6Gx0bV/pwGdeM7nrqHCk6GbwwSwYMMp8Z4E1h8lyB+UJpIE/DAZcL0IZ1F/AyYmZlJ/VQoWa506FcNhccROJ7dyCoWnt6BouKht1zMQ/x4bMW/vyxxDXew8GVA2LXUtF/o2VI6AovIv4gAgeNYFZrt/RlkYGiduA2nDIwx5dYO8fktMk3JkHTxMHrqkZVhdz5A5GktRFHdpc5wYPg+RbP6mQ/mC1qOenQHkY5wRSGMsCGaZ7JXIL2Ml1KeJDHzLCHOzG8dHWXb+xH1b1RFaLXoDPzLTvnGVqq6uQM0vCmRtGg8aoYqjrg8g2eYGvXWKGWz9q3Gu8Qtb7VHPKvjWn8VIBCl6DQTmYzphHSTq97PE6+DBVOfvl7PeE/dhl1uTqIga3lRrLPDyXiSeo6UxquydaPXHZIRQ2DvP71ODfY5pwmnAf/kmlr/LXDb+UJLS5Z5Ck0FVVvu7dncVkgtzkTWhIXTI08ERiQSm7h+VMu/2NaUWxpCqIokC1itDKV/EXNdJ7/8OO27WrZ6LxVQq2UByXUrD8RNlvCdcnvV0QLhdd+JIscP7Gtd5+z4m0lZZDSWHHen/8/NrhLMdPLGkQf0jkiv0JlAk1zmVn3j5EXFS4D+DkO27FS7VhTxnuIVReIvNHMxy/Dp8c3BcF69tAHCWmjZRT1cSQBgbbc6Krc3vwQsQQThEZoehPi7OKXgi9ReCYzkcNCOTG5xFgsoTMQ34Y6z4vCPBkc3+GuffcDfGWMbm1hnK0pFz9HNjUHyUSj6rYjSJeeKcgF0E791YcIh3H8ax1HHKsOO+FT5zKj0Xcg9nvScD07z++bp817XVZwDF1gP4yX+5oVGScLTW5DYEmMYhmHKp3jGC7MS70u5UCJYBBWkmN1oBVwTIoDnyQuXh8w7XsVRvRswM17ltfaQpFHP4dnrXaTuqsJ0p3LuF3HlvHBSaXsUW/+vWFRaHWfRds9gGT7Ryt9p04ODxPbbovBztY1S6VoeG+6AeNPSYj5ERix8xJBycyb4H+57pzFp/7wUozUyl63giGVxTZ2LWKEYwHe9xw9cWjHbGhm5PdzNPFqAQfsm6c8vao52/ccdXk9yyxRR+IVRMzF/4nbtcJgQnzuCEmOso4+DhAMhSYiU3IfOMPtfzravNUovHRn5r+EuFa/ZpFHe5k+PXdAJz7lz9JMjqTWEQmzl7ELSDqLL82UHRs4LJ0ugjqNIOnC0WXrbZJDOPahnEhzWqsNg3sRYaur4h8dNNVE3hWz5tUlqZDGvpz1tD3FT6YvxySyY6NyD2ilySezaKHgQW+0YAT/YNT6lRxorTFFoQ4Z5yo3TnE/fVkOJkNPvvd9AfVJqSS/lkgqRDlZ706Qo8A58KTSPSUysPXT/zaIY2Q+un++8ExgdH03Gshqgwj0hOocAyFyJaIHyc6b2qFLcc20ukxVYDv6NxyjxbNF8ESz5+FcDJnxtruCcbAO4l3E+52nasVxOL2hyLPqvKA+4Am9xla7Qe7C0clYnnXcmTpdhooOi3KDFj4D4RELv8CEffT32CsGaj8tu0kIYMu942Xuhdd/goMDnUkX3x8/VNvxRNuMxxNCF1R0szDHzaAGqac02y7H+5/K5Gii5hrtUFJLnXX543BTap+uhFmOpqV3ZQwdoRI3jhB1T6khzPn3z6ZBwkAwkNFOh724EcyWiqS6948evkr77nbwBt0LvwWwOhQzhM+sJTXYHFMMQQxd8GvyCUyJTUJpusZxtMpDQoPvM4U547872Z8l9PuG9O2VZeW1QhL8fop1ROHjzhbzdaQKq4mwP7KPSxcjUCPQWUV2wPjd4uQqv55SZT+HEfQxZL7nffCHvXaO5r9lPcfNi3dxYQ49BooIhg3p1c6o6+K72FslTQ3tIyf7UOdwW/OHy1NBmZpC26rDMnv5YpBJZh40FPAK9Re8ueQkqUtj35kOkv/OghcjxMgL4+C9IstARmmrb0/ZgWw6wQV3Q3MZkeuPzRQLEA0UuL81zkkUxt0NdtFI4cZ/Ah94KKZEsanEZ5yx6JKpAMHT7NLYZCF7E6bfdjNGwuY/5Ur/8xuNDfuAPSpvTL20hiYloaFxdCALyuc73U9y8c46i82XQ55xMuiEpbaL20a4unBRdUrfrn4NBYKTvWim+fee60fqHnxlOzZquk0HYAo3Z1QzQsVgVepxv0pyqjhSSYMPiqMmZbr013IM4EkOf57OWcBHR9ziZCzAZhmEYdsiNQPjMSeO0D/YfxD1ex6VL0BXDcZvbgWbHo1aQZFGgQiO9er8JZe9pc9Z3PbR5PbrqAamaD7FavCl+aOeEUfQRz3Aq230gRL6dVLn2swxNMp5E9kvOshAbzIua9kqi9GA2t3v0es83P9enK0XjEAVz6SlgQQBRCs74lQhbzut6lQoxovrcjgO2uGypqm/Xq/8hq+bRxRiQI/rSEC73bRXcFdxz5DY0OX3AaMCN6LoUbs3I55A57/Fkvj1RKEEoKi1ZUj8L0X1p6RwN/dgosOqMQkM693PLlJEX3oln8if5xTOvLlrReaCOi8IK0MRBZF88HWdf96QjE9tsm8X9J16TGReegTpb+gxkIwvEZGF7hyAdLekJxQItc+YsjRd5TyJp4dHGrbIFDIn+8TcYZhThX1Tye+06tG4DaiMuGA4Wgj3EpDNtOnPHhojRs0oCozY2Vz6wevfoetcHVO1g+N2rKikd0YPRcbRblYr4Vk34N+glz8EKc6EVSMrTGt5X9J+iK42/Zxj9k8FSRnL3zUi6FewMojYUb6PAiDtVS7pPHnTIlfKaD5G4XD2+oBk2mvXFaifrIVmxKUQzjgKrOkFUoUNlZ8hLxvG0PtQD8v+CoTMPdBzRmW3qi3pxIP/Bm6SfHQwhVaR+42rsxNLMe8sGpyKP/A0qrZtTfyAbvNWVtVu5ZoKBY3D241JigC59KIdyBj8RHzRLQ7F628yEwd4cz+Ce6H2eskWdhIvNs5T7Dp3YLWDOIqIkzBOKQNKkqc0u+ORLoEui6U8RNzj9FzPMGa/V9zhnHmNkE8EnhvEWxXgD7LqSlfPO0HbR2hfFw79psb6frQroc4rgDJNva0JlBVlmXq4yLNjIb9cydD4hlFV2uy0lBGzdbrnSE0OwGBRZgg0I0e392hyVRvsoIMi3QhsMxXPTb6oXLh/ejMDAkqiBMv9/frcJGyYbbdxvdfqiG/nmZwA2zMHq7ylUnYHZN37lbpWMpnhL1FQKS4KC6HboeJWaP+3jXEU/cI/9U2/xBsR/PTYwsxL6DIiEYUN6z9DnjH0+xSOdZOAVGJakvj3YXwhtyln4hhBTCEicGQ82xwyremd8SdebRMBeF0gU0K2Oh5jnbAnH8x9DhslBgXqjs+ySdbaq0E68SrRFmCfqMSXhDwmT4ylgDjG71oDG/fRk8l4GJ2uQkq3q2z5cJOb26FWGCIcDgrmtVkEIzlBZYlBU0d0Enx41PJuryrNvoRtXVcjTHdG0rv4+8m8ImjOXgqfRSU/xi+pF/W9vB5kh+5m6xQBtXPrqmXdUfVy/N8acK5Us+KZLdC/S6ILfGM9oC/c5v0Y9vkUuZrqOTPBmkNNs6vmHz6eLhmEYhmGfaUEZzA/yRpXucZC5rC/Y4+aIxzNrXRH9NxP51nQvBnQtjDJHLI54Mb4xZ8iAyFEQ1fS5FTu55izcHyrUzXzkylfdF+jKF6sSFlqlj9J3dj+T9Eg2GuSkaIJpV4Gpo/FpvAeFXJjWlv19VQhtcQlEG3uUN8P6eYmryzUtAZYwfrJ1syC/VLOs5sYunxbI/gHaxdFtgyGCHuICKUDitkxM/KXzP86eP4EkbWCNsAJbngvh3Pgg5N6MV2BRz93xlBm3BJhVgHrBLjkjauiTATaUjZmrj58mT2lV2wi1uYM07iLQllpBiZU0HtMKD35l2zkONOf1O1amjkKXDX6mBWWKsJ9p1KiiDP9Q3kpL3BhlOXX974REUPzKMsrdmFBRuQU9MrVrB1LE+beTTsQb2RsqQakGdBEWYyXfY6dz/bkOCQZcpbwte6/ye3OI6ILb6d1K4M0zXvSYaf4tPux2lFISBAptRNg3JG2IQnTTLI9hyR3uypyUxiJSgF37oI+/j1XFTIg92Kj9YXPLeLTRyab89lE/6M1OXDUnExndw8smoZAojRYdgURcRRmeQDaNwWV4uP2dYZ60wdJ7Fg6oqHVC3+BSuIRvHo9OOlEDsGd6USG2/XRq1u+CHAfgcO+sqs0V0a6jKD/bsRtaUiwJXIBibiYZGL/dcK13jz4xP8gbi0eLvO6OArww1BqRKqEO+J/Bc9zxvJ2NyyV4J77VYcHIy2l44OvmMT8T220JDuxwaz470963P9OIaSzuGvIvm6egUpfBtTzmmw7ZbSakljkAuiUkcKpeQcdiDYeph189W+caFHxaHpqoII2F2lGd1Ie/7+ppDAmBO7VBCk0rEW4QfUFDeqc6h8zty8DRWYZvE/hn7C5pT/ZQvtTxstx5s4+2KL9hC0zOMziPRXaSzRGgjLcM2p4KafdUdi3fkAQEwytGrpaQbgXet2W8Qo3D4+dH/yef0uKWg3EJNdb9DFi+BRRnqlcrKle5V35/wZFLA5HywLYf08j+RsP1VLrHgXPy+kWH7uT01V41dorWnihGxA02POiIWwswhRdn8pcBFQf2Aigs1ormesWXtIPzz0vLJ/CnXyK9df+hGDE7P3h64axZDDOxkLB/7Fy7hStJ5eRo+lJZYeI6I+nPxMpSpeMihgAblnjwRS6QUxIG6g3aUJoSrIglfpPgWDG3SncWrWmutdrSxrc2wr2AjNwr+bs1V9X3CDiE7TvfLpqpREjW3t51woXDOBvPn2YXu1lfTSAc0OprG9mWnYjnPBYKmoPYdp7PgZvvveL+ZPr+8jCOB3gtUlR5RHs6JAwvuugyfQk9EcACMJGuVCqM/K+63aNli+NveK2QnUhMC2IYhmEu/Z3TbFE/5fDODLx6RIvDv64oXhkzGCzmssCuIoI0i6Y5AdByEm1Ss2DbR9TgHcCoaU/Qiq/L30ySl40CdoxnoBsNeycElQqc7ceKkiYfo51fojrLWFEcCrXyLwv3mH50V0hEHxhO8JIlk6ukA1xUQv17SHvejjs4eZW/jPn2H0v6o825/pzPXJMZk7kDvl1H4K15JUwpS6HxtJLTJJOhEiIw3bd7iM7K31hsYB8EJfUiue4dC034unVvpH80sGs9tapfcekMbu/msbRraLzpo4Y51Q4draTz+mckPqohgTAVsthnPEler9hqgiPAoEiZQWhqlod6XFs8q0en101sz1psuHnllEO6TEah10V+ZDu+rbHvmZIxJ+cTxa0Wmffw9olP0FsvcTTEkqKgQp/baAQaiyW/j7IetFQy6jB5Qv2PqJcTx5e1csIW4RVyvIdB0wYHC58CGY+Qvsj5fZj9PBEdrhsOC5Rk5lMWTM4PdsFTugQ1WsWG1Lxk0CHVu+AbfHPSVbhtrFkHuD9PwW1C5sfYX6j8rK/XW7avm/BQ4JX0vVND9YhT4JkLRn0poSO/4LnR88Ybnu3dqgyzH2hm0+JfcGbNqYmrZLGLyy1N6iywkLv80QcdO18mLro6rP3Fvr7FxuMcu6PsriqVaqhVdQwrQdIxs7oN+Hu+C07P/gzxUqxcmAUOGzykMuysTzyQpZS4ovmIqnz6heA0C6lglXWBXOJwMa2tsXmtrbK5xKgNhJz4JGc5PSDWCaEdSxrY+pMet1Q1D7jpANeMTkUobKuENEs0EscUtU7luIe+4GY8DbugG2IfaWXTLUbHESv8b8GrEKnHtR4VUP786EjZOo7riZ+TU7JimkAISlH7USXOakAzhpWQkqOU/FPQX94MyYz6T4+ASMqyFRNYEpnunGKfsjtPCUNEp1GDF/78dRv/bgZP9JIEB5Sx2PMEcza17QM2vkmFIGPWOOkRI53KiCUYl/1+ggS+2VYnuBooT78lNZXBDMK3IHDj40X8CpP+W1IT+hXUBR4AQV4Aj8aDQPLl3vXVXc4IfI9u0sbfa9DdTDKkmrGSTTQyp6AmWAJarkAQPPMmP7j0G3fU0cOnlFzQ+zPiWPBMS4hKYkD0A3O7YdqZH5zc/OIbj+8xVUQi+EcEaF6jGn1Dn0hyRZGU0gGSwJc6itjqvlp/OgUdv72eLy1rOVMPytfIM03lMr2xTHq52wjky9U3eWIF6lxh4kT5XcOfTSyYmJSs9FvBhRnEdB7NjUE4DCuCiJDSNpvtc32f7r3R7gsgclQ5x2MpXcLwNer5YCQlUrjkwfbsoSfzcTiJ8kYeWJyHLDcObahL5reqKcOT1K9YJ38ZhiHU/phSL53UyZgSLukUsxm/L07VQJkcLt3U6ZhsLiPUwhlHT6AUPWHWhzvUrGkHT/KVVGkHTqiV1WmPLqJUj4JQmgcxqnwTk5qexGLd/CXSJvwjNrb8NAy26cxwcNG8NDS75o3h5JL/G9Yus5Cz1sogN1dRdvLBtXQhP7nOspXP3LRyaWTfypVxdCu9NU5us9wbF+9a+WhMd1HujBv30oPV4D7L0ergfSsnq+ZDpG9WJx+lR6u1j5kWU3Vo6bcpfIp0Zpp9ls5NR58znZtWvjQxnM/+Z/hqV7w2NLu919l/t3v2xvDD7pW3hmp78CuGz7aT/xvOXA7+lcNrlxt/tP5gPXjK+GY9t2OfZrsz59m/cVmdRffN5uhHasOb9CNiY119z3ir1jOH14kvylTY5BAaV2H7jKBcjT8neAUk/crh1liBj3lDmvOWfN4IddmSPOP/DbznmMPUuL8oORjltpRS+35xBvUMrYIunZ54UW5OeTrdymxpcu5b/d3S2Tmhbt+i+sckNbYIrj4q/Ojxic0Lvnm4WZnh82HqffeAr9P0yy1vaOrTbxKPVaeviVb/APJq+Qhy/vkpE1Z4ngEAAEBa+YNBpBXZAUmWHC2l8g0j0gomsDpBhdsUUXM5GGtinK2jV5x+NPEpBhwkQndClO0Eai5hOHev7WUSZjnl/SZsCPrW/5JX5mdwOxrryZrlxVM0gc93O/nU9qivzKXx8ob/ghVvJxn3Odii9/UEwPMDbB88sPzKpgK40VdAuG4F+DEVwO3wAUC+tADpHMD1bwC+tgHwYz9AmvQVeL9VCGM1Jq1zsgdDfijRv7rXng5V229hS3b+Nfil/u2RGoVfHxq0/yfbBfvQ+t+Y3zy2GoD3VNMdm/qfUn1pvY/L+hD3B3l6+K5vtBly8ZsfXkz52+M4Ps2/HZbX4oE7VH108H+u4EdZtZz3gZPG3bOx1LtUBKveyzcIU1vWLiT16ChPNzV/Ul0OUJ8D1JkLrjUPjC3jtmX1f33sDv/SDEmi0Gi2fiFpTK3iHMm20frRkkOfHR9Sf7At6snoTOT/N9NFiJHuhmKbgme6vyhWKQwnuomippBmupcUQwqxoftCcZmCoOtNkYswdHSlK9aDkP6le9UUaRDiim7fFReD4Bfdc1NMgzD8ooumKE9CekH3qyniKMQ3ug9NsXsSfKB7bIrxKAzXdLuu2ByF9Bfdv5rCvRA7uqum2E6CR7o/m2I1CcNnurEp6iSkd3R/NMUwCXFG96kpLifBju5rU+RXwnBJt2mK9VpI3+neNkVaC3FHd9cUF2vBv+h+NMW0FoY/6DRFyUIqdEsoogrxQHcfil0WXNEdQzFWYXhDtw3FpgrpJ915KByFuKC7DsV2EfxJ9z0Uq0UYvtKtQlEXIX2gexGKYRHinO5zKC4XwUg3hyLvhWFLV0OxPgjpE93rUKSDEG/pbkNxcRD8Qfd3KKaDMDylG0JRzoT0iu53KGIlxCPdx1DszgSf6E6hGFfCcEt3GYrNSkjP6f4XijSKcKMtjqmqY+mi/MPRfqnVxSii/0dbbFM1jKWL7jdHz5mraRRRfmuL81RdjqULG44ia1WeRXQvtcV1qvJziehfcvQrcxUnEf7SFt9TtT6ViPIfRx8yV7tnEf1/2mKVqnQqEd0NR4+Zq/EkotxoixepujiVCG852i212pxEdH9ri8+pmk4lov+bo39lrhxEmLTFnKpyKBFlz9FV1mo7i+j32qKmKuYS0X3h6M/M1WoWUb5oi9ep2h1KhDuOxqxVnUV077XFbarGuUT07zn6I2s1zCK81BZ/p2ozl4jyjKNPmavLWUT/TFsMqXJeuuhec/Q1c5XPRZTX2uJ3qrab0oUfHG2yVuuNiO6HtviYqtWmdNH/4Oht1iptRPiiLU6pqpvSRbnn6C5rdbER0d9ri8tUDZvSRfeEox+Zq2kjojzRFv9L1eWmdAEHjUmQsnQOMpORlBYODkx0KUvhYM1k1aR0z8E7JkOTsrziIDHJTUpHDt4zSSFl2XNwwWQKKQ10PRV5Kww9XVkU61FIH+lepQIpNPaCUWpSyOyNjCxSOLCnG6VBCmv2Vs3IvRTesTc0o7SWQmIvNyNHKbxnL4VROkjhgr0pjGylcMNepFE6SWFib0yjPLXzZvNPXKqZlIfFYb2ihEu4LQ+Dz/hMOKFQg/jROG/lD4gN9uf56iuELTyMmgYd1TDCp3B9OHLU8zDCs38nF/LKGzbDwolS6J9Zq1eDcLhI7ThGxtayir7VS3m18kxdR14sLBlcdlRMW2vUbrij7ofnPQ0+aLslMxJm2MVk1iP8O30llcfLo3h2zJzZ9v0ro61G43z8buI/eSu5l6H+Mz6sf46tlO+XT+Jstd8yrJxLLHkjMlHqVaeEyesxtW/T9ETDSkG3+mGyKoOdKYmG40IbTP7nMK/yr8XmaRsGmhRWHASVJ5EuOJebG2m2Sl/EaJ1+G05alhur0SFjsB4tOXylJIBMk9pZPdxcDXfX1sBu2Ggt9TDu9cPh1jtgdZPP/GrMp8uH440a/K+ARWl+ytl9dMW20nZFq6GNpcirE0LVVsrG2R620N5cYkoesarNuyxs/FN0LzWr8F46WjUfpZOJg7QyRSFzSV7vxdMCYBaY/IdKHB/1LAmqz17Hx8SoIGypsf4vrkUC16bDbGw6EBatVwEuW9TxOajrR/buqkbsH3p+3y/fwrRfq2nxMD/1QkaAWrt3tMtS5ScvjK2q/1TEQnxaiFcGqqROEy5DGp1Fn2xvBL09LMV0vRV8rIGYP50myIig/38owcffovsYiz1MpmSENQPPAR+9EQQtITHtLO5xBjWG6e/kikF91cmp6Rn614EOQfpN5J9Cxv0+sqVvHrdk2qc1Qa0sjvdMSUzYYon9Vw2n0UYsdhHHX3G5p6Ltx9XJ6BP9Gx8d098F9rMdaRfPYEJPYixBTeHkOL8NVeOmriDAuWL5cJaLERzk8/2wppyWniv8vkcD288iSOK2XGr/AJy+vetiD/WGnV8afN05AEm1ejZRMR2gaxz4s6Nlw3CaHTJfTyxsSEVJX3K1B7w3La+LOJ/f3C/IC7U/yo+N5t/SMO2T2ENP1KSVPGJuKAVx/R/Y1a+of7ZPTTKVRmwb+oS6cFN+nzCvUXaIW3Kb36B8QHQNj4kSiKFjHlA3tJKB+YAycttdbuVl/gvlE6IPnAapTn0Qu0BfUL8hNDxUlCvEXZMdBpQ7REk8TlLsDwuxT/QN6hnX5eeM+YSyQdw09BHlK6IuOK0lk4XYDuhX0qE8pZvya8T8C2XbiDnkNr9EuW9EN+BxQdGJoWDuUM9pJWfM1yirRnwIo089yudG9EecDtIw1YXYHdG/oT4iPOHhBcp1I+5Ddtii3DaiTJpOGvdjEvsJ/Qz1N1clN5g/o9RGXCf6DmVuRL3H6SSZuiC2a/Q71C/s09mI+Q+Uy0bcptznjygfG9Gt8bhBGRoxvMJ8ifpEamWB+Q1Kbm67YSv3+QvKIYi+4tRJpq4Ru4r+gHpshIyHgtKCuBtkhx3KuyDKgscradxfLsR+QT9HXTVX5WfF/BVlHcTNgH6B8hBEPeL0SzIVxPaA/lZS9HpTfp0wP0W5CGI+ym1+hfI+iO6Ax28oKYhhj3mL+lfTSjbMtyhTEB+ORp/+QfkSRL/C6Voapm0SuxX6I+r3RjjDwyuUmyDuj7JDj7JfiDIa42MvjfthIfYj+m/Un81VyRPmjyhlIa4n9B6lJ1G3OH2WTCWJ7Qn9BvVTs0+rEfPfKLuFuJ3kPt+gfEiiO+HxDCWSGJ4xv0R93rSSB8zvUcYsAnmZf6N8SqKfcbqU6tQnsZvRv6D+1wgHPOxRrpK4W8sOFyh3SZQNHu+k2E9J7DfoT1CfNdfl5wnzD5RNEjdr9NcoX5Oo5zj9YWWC2EIPKYZDui4/N5gTZYuYq+zwAuUe0cHjAwrEADPUdWglJ8wTygrxocrL/BblM6JvOL2R6lQbsWvoR9RTEDoeBpRrxH2VHSrKLaKEMT5+lMb9iyT2gb5C/RWuSq4wLygVcb2gV5QZURtOXyVTh9gm+oz6OezT0xHzBuUScbvIfb5D+YjoEo/nKANiWDCPqH+EVnLEfIWSu9vuxSgv81eUQyP6AaetVKcuid2A/i/q1yAUPHQorRF3B9lhj/KuEeWIx7dS7COJ/RH9L9Sn4br8HDF/Q1k34uaA/gLloRH1CaenkqkEsZ3Q38kKbsrvEfMZykUj5pXc5tco7xvRTXh8REmNGO4x71D/Dq3kgvkOZWrEh5XRp48oXxrRr3G6lYZpl8Rujf4d9UcQXuHhEuWmEYL7kEEH2MFvemxx606NzCIyMn4aetmpf9hoqKG/1FS1U8/PCjNQYupRq/tPkhrRcaaC8Sro605dqaWWycYXuaex9pcfAy/v3aou7NQrPzrVOL4bu0iW5vwY+Fedrvudeuc9V0qG8UfY207d8GMjCbvhbXtUuaDx82RlRN8j2jxmw08KG1sdQUMOpq9UCwqtSQkRK/akzDHSCPQ5dOhIBzS2R0NNbA1BCggSg7o8GN9ROaDxPSbEkTx+kXIe62sPDHIcYKSKHInwaTpXDBReVfs1yI3A/DfsFAzJQryC8LadoNFTk6cWq+Tp9rUYP8C596S9lgy2GLll/M8ajqEJlrfw3wzEcGt6HdnyJXkgMNXkAazNCkAF9CUASMstJKceXImN/0iPmu15kO13g2Np/H7yL0D8uTcyXgdIkf7Z4Vi9FSaA8quFOQFEi0Ndbdo9u6zgqATNWW6ZPXR56LlY/w6ldnMEwfvc3f3C/G8DkHTsxHD+hsY/7AFAxhgBAABYidz9gYzXHpL/jq59rA4AwBYA9B7AscdD451eV1z56/cNqCP+an7tuf0cHnYpGg26uDw26RuN4XggSP8LAwOP9OCXf4Cu/l4gfxpfnaXVG1SW+BgHDLYbyaMjER3eFqhyoc+fJ7/eTvsqGmU1raWOgr8NzDv2L1m56R6dPu+ib6HY3D62v4fjvmsGRDxvHWug+iCne1uHeV1E3L+n5f2P6YVmG/6jXRHlwzY5ns45msZNx+xcnr/ldPuIZd2lZ0MaYyEtsl1nA3L7ktxjKE4+P8Qiq9EFELpGio3gYsKUwTztNcVz7nFQocgRPh+sjYpnoUZcSncuv7vwllMh0XU1OToVIrH46ayZE4fflSCBsYB84mlNhfXpTjIIz6VQTt+i93M2c3pz/dcbkjLFFfHC3j55ULnlAdlKTM/i1SvxWQdWKcQZ0onE9uombp8v2FN6fe3wGdun8aZl3MmoT7uoozj3n2N74BZJ2M9OXu3RJSq/8v5C/dmi5vLoRBN1pBf2OMOQnIwhaufLPOm0zpePg/EJBnZ1RqdmBUvb8mE0h2cap6NjvSAKc1EtesHygt2YgT5/Va7MV+mIZyNYKHZyjX1QdnQH6gLj7PADDfZuLUUcRBimAIOJZ3eQmzpIgzWJMe34eWKIAZ10Lc1/pwZKyBVNZ1J3WmY1elvdak24xDMIa9UYhA3DOO6zSTHoj0LHujP+6EM0UlQCLKlMdjORSBnyMat699/bYY9g/Q5YDJ3/c9INWtrEw3XVDND/yuMUFJSjx1MBK5rcaJq1q09fF2auEj4i0foCAUW9HujwIY2JrzNqEW+8ovWkTYvyUXVyNj4upyIHuieV5rioCMJx6LO/CmXZTS8R2kWHxQ6JUmdN223zaHKxflCJCVYeSnDkQEPNM6jejgL2ENf3c9DJRJITqqUZnMr/OjO/swf1unedHyzBXOah35n3VGkAesSqMGMSV45aEhZEyL9ikZT9FFBmujkd0M9fhXDNWE8ZTFwH6058ehYZSaVNA6wVxXGbPnJDGR+Wy6lNVJpIfrfJczgeF+gYGlMvkZ0dYcbZ3MPGAJ5EsoaEVG/cArez8kj5OCk5eTbXKsHikLmZ3rPAcDgUrxdTQUzMbc7AWu5J2/stou8nxzTXmbyG5lDJp1n5O3iEDx1pITEtCKHDBKn6dvaD2pBhhpOXU0sSuq4jJ2yklFKrPSgcpbK2Iw7AuBKUrvOPoNIxoYsMyJ6fwsiSG1XN1ZPhtSMMUYYDWxX2Ymmr3613+HxOWk4UFiMUoHZzCk2OOij72QUn3j6X6mwqf7vCRmHvFjaPS4TPdDq+S63pTkg2xVMKSqw0jxApXU2SzovejQZAmtZKFm/8m9tNN3htXtosYk3XUnL7bdLxcTHeXyF9eZ28rl/VqxiUjYCNhrPDoI/nS7+/i/AU/pGrXgTb/G29zQZf4N81rSP0l8BgfUVLST3CTYpGElV22CNPHa3JufQCf2VUzI/X4XbUTFrHtDC8yzxFg8AzsgpIjQajkdLFbnSAksEM9CPFSHJkcbXNA+nr/acGofhOqQy20BKx/OpFr/9RE8wC5ZKexOQ1tr1Mjdym36Pj15mpJgXNbI+lmWMfl6yQ1LZYX9+ux4nlNKdgwuXzUkw7AacmQuuETg8msIhApsthPpovBKI2SBSHjKx8WY0zQvkafYkHNfGHhYh9AklZ8OfZpzemw4eNvvX3PsxdvPYGQve5fZsNjg/4f8ndgn2gafsSMfyKnu0NcagCKXg4qg2tNezH9n+JM/KtOrIRxRttV/Sz2FKlhRDgu882cc3rny7w/xXKKCEHWDdtkbGKPQB5WQAIkGL45dp/guv2pEUx+bHvfYQcOYtjNRxbZsXzMXS3BD0Wq7ErQ8RhDaRW6bJrDhvzAMna7HgwKElnXzPzofJ92OyXbUA0zQFJqzrqLNVElh9IjRsT0WUedbTgWBE6drJuK02giSSH945asEXr2mEqYdnoxRBoabfDWHWap6zRafwxFkcFBQ+0tgHix9jwKJgREL2bK15A2B1JZSPF3V0A82hSNgfXJrZ2kjzOJEY4QSlmRDNgEQbGAIM9BW+hlirxKZobSl3Orulhok0mKxOroQUPVzLX3JnnfOZx5MYaBE1Yw521SCMOMy2HYBli9iyr4hji9TbOVB/cr5TLdqBHkmf+it40/Lzhu1ayoaHIUPi4tsRxK1nRauD5F+v15zZttoiYWI2w0dQCOYD7LHZGHhv23Y6WWhBMmz+ZvYCW86mekvsO4peWCtqIMuCWV+ICWeZAg8tRVI2JcB+OsOA7rtXjiy8UrlHmNwXrbsaEheKBKfrVm+BkzVjUSGjO14TmL7IiVlvu+N4Y/GYJ3h7GVhKDdkrkF2pB83qym17lLtsDKmasPY1XnkudIkIodzfBXAq89S0heWD5FEBtHq8yAbtOERjB2xswIOmSaRV+LyoMAYcncROL3TrYjWLJIMQqG6M1h1XmyROASB5wtniZoF+Ahr9Yl5AJLTEctjymlcHXcKUT5ITKlGTPtn1sSvA9/nWRv0IAJmEe/6/MLBbyAlhpDLPaDTzVJV5Ai4dOGcUq8zdCwaCQl7VczlUVTussI6yOZWSlHAeURKcfC40bzhxdAcx/fujMfh25ts1xUPh/nyiFjfROVq0UYJzGu/Lu0IchdxdfcSAKRLIcV8S/ol9TeSd1a+RzhYow9jiJBYyPIp3sLbPz0yeIMToEGxq8qG1GOiNFZebLTqaJD06rpYOqwU61A5NtY++AbuGifgr8DTuGLJYn1aUcb4JkZW5dSjFuyMoR2YbsIpY3LzKeEXuX8dpARHpdpvx8qodVcrDapHYwkd87s+igTU/4hwLzw6JiN41h8v3MUesITB8Ld6+ZDnqqmYqaAqGQ2hBPOi2NUo0BP6El66dzrQmgRNXtoEsFJf6Vf+vpf3+8st3f4r/dHZZ9XLiJ+VTd2mD9dWvVgyTQUc+Molln13UXbK3eXNnpGn+De+x1CE5XZwxXqcnt5/6foKyavW3VhXUghNyJtHW0n14LG22Ri5hsVqqjbUrnJZJKQ0/t22G9PxPzIVByD5ZGMCGUxSs0Z23PP1yIg1POtGvTP/NqsBiXOFFrnOp1FWRpvxsoKtyzZUv0cYX5LfalK7ph6FHZlXnnduXfT0wcy4IkTkMaYSRjZ0ORqXBiW2hodP+bjytWVgXa9ux6S/zu9ss2/Qolhcpzvvp1BTNLhCXyvr8eLx00EdjXa48mrmpNO5ZeOjU72ddLPzjjD8r/a/27ap8xfb4+DSDpPDL3HOPKC/XZWOHFSBBqTrrnnib27HuzlepZZ3T4Q7hYPI9vck37OsaLdNI+L6sSYml/r6RvPsYq0n0W9Cs7nPB8qyZODByor91+W93PHkUVmvwTUVp504fnuOt1rr1K3t6HVEAydDbK9d+VXYHL2fXsnRdutxGSnsZnYNU8NGCxqc7U1HCDJdetjbJJwT9BtBH761v9d/HGgAxS8HvL/9P++f//yk3LUvplipdtbkr++De4Gc/03DKq96HRXhFI0Y7mMDInG95/N6D1e1cOPlPN5PO4Ut7LD/d0T2BDc1bOe2CKnVIV5EG5enyK9weT++Xz+NEGMRnVBBCepOgpUhLXEJvy6mEAZdJguQ1+2hm6Jkj5jV7F+tcbfDKR/Bs09+0/M46z4FS6lba8eVk1y8TlqgmqR61broy9AMxFJ8c2vhSOLcpY29DoYaSBqvUAlytPwGcbBPT6tFgx5ka/F4dlvf1cZtjCVh/ZsR1suBcEg+VrgknJgmY9HhrONogUBb4keyxSzY2vmqRFgM5zkRMgO2vUiReYIZPGa79LbyeamGiNbHdTuCF2zia391RxKBpBBwqEW3abAca2c4eYzIZ76evKRbcceSwLOIlccVXnSl2ky0UiQBcnkfRqqbQO2ahGDjsKxpDTAYivhYOg91RUpDMsgjGX27FdzNsGKnqM50FirHBWThAiA/QaTk2hv/v8/pl5F1mzWMjNtqYNgt84IXPhLFLhWZdFKLUeCHdPfe3JMPB7YTC1GE+i49GB1RGBAVE6x4MDdRsfDEonb+CI2051Nj+sCrqCbblH9LyPkNzJma85/YPyzJJM2oUVUJpl2N9LEqohu2NslQmiXfBXZnexx/kQsm9Htk0DYnCPFUkEqDZXtHmRBd1EyucQaVikndPQKANIR2LKv7hcWn+2y+mtQ8nR4PktLrwYaRCFO3AICqBU5VK837r5MYx7rluQa5LnWQEe1KTmBktNrmUI3hSDOM4sWOH6TrC2SGHvCGVtiWVGBa84g5H3uEsTGZ+NS1RT0B+qeNkgcx0+kprthzBTmx8SmvN+P8lQPFy34dDaWNkWdKpqk/ejAoxXzlijfEkgbglIYfkgwhtF3vCgnGLqtQUOK9NQ9UqPFg2zMm9DypbapiJLZ8LqVEdfCEeJIcKiQ0pP0eei8onYuUNGNGhaiGUQMKzJc1FMw3TrYY7dHqJ4KYhP1AAxaXkCCwdLAT8wfdi6vFDxMWasMY6nMBqPU6Pti8eE8375U9Z6ub5YCAVLNeedA6OCCt1HI/bLaG/ZsrOhVQoDzhdjml50JJKQnq2zY0KVU3moQ3RO3pSgRp//8mqca1GXyG2Rutfqbn0j02ubzglRHKcNhkmp2e2PfglkR6GNlHyj13ySGpJjSNNZ4h8GzkMQ9mJKkuaw/OJRQ2dQwNoTaKC5U+TeLMXpTg/No266YobbuSPH9KDhPF2Ck6mzfCUAVSLdiBVclHIyc2WG1JAnrMsmoEKca8Qek4Umg0Wy9ahm3IAE/66Trg6CYvhUuKVAIDzDQK/VtKhyqcJ2Vk5j1bqBEDd8ggj0rVY1Ktd0xPHo7yve5gptU/5a/FlY1I/o+VZ/7BqFbFqYskApDZk+QtFtcoke3QXfz4GdTaoS48VkXVNQfHw6X0YoWXy86mlM4czySfSoGl/i4VcTwUUGTlxaI8Yc5XGWHauWETGgNCQHPjLNck9HBvCYWbkiQe0wfj5klpdNSgy1CsOX8e2+QPg4RdfR3Jz9GzvP6vaP2rlzEK7No2291i321LNYC8WeUffi8Wt518Ls09/bpDctGwUg6fdUoY2XhTYyfWtzZg+TvSb4Ugvp9axQEHtfP5iQg7Tb90eGyOorHCYWlvbISBz2MqizAxGnYGVf6VKWxSi9dx6sJ7MtYDWYHLtokBoq5nBr3pzi3TaHeVpi57s1q0NWSq0cS7CBfV7IzgjfsrifSb748TnfhXi90uMeoro1fCMRx0A1I4VP5+klQRziYN3spjEarKjGvRnzOMJqyL2vn9ATfHk8vluWbNsR4Sz3sU4TRiXorytceKvPyrRAXEtEnRB4utJjfUditD1KtzeW42pvzTACSdshG9BhOCv/t49UNaGzAYgYT12CbYnTEejRQJ8w3JtX2/cjKCBylOvJkauxQ5KKG+F+15oB7xWvTHElVeNEiC1+8wxUCtjHOYN8PLfCEC5x0PgJ03KwHGSVJYE0zaLeiyOCflRqYGTrTm5d25OwTFmHaLgY5plLbl9zNbx3PkN5RXWG/4ICMLmnD4Q+8t1XVGW7r1nHSqcb0bjl6GWx5tOlvskENUjahywu//ANKD6dBXsDpffP7/bImjHMfqy73YfWDAiTyPXb5+zmiYbOjzX2X+wyULh50qYEY0oFROFem3+fm8uCd3c7b3jUeEGymCUObwZrnON8TmZ+DDSJDsG6ZZ+oQyAjLAGkUgwcLekinAexXyrM6l3lHvhLPK/0Jz33KFL0mDn0zO3wF0Ez4ZM5AHsATKdE5h5Fih5tvUrI0DL2PXrrY2Q2ArxLQy9cjLjWm/0FpaQGNIUA8sETcYpSwPtIDMYlLOAflciC+0lAegImh405qGgR5GKTytv8ZsL6dqV22OIvw5SNCBWoaB6oCxFF530DFFmfFl9C48E6lXvNPIH3ASKgkwowuVHlWjHITuX58/Fnux2bl75mYkc7PjVzT/rWfCC4jGFqrgTU7vJLtVb/W1lwJqIHMowAta+VK43QFtsXjLOuP1o7KDXQmkCSKME3uqR4GK1xgFgliJ33HPqVX7g5ibSvCSAJAiV9s2mRWztk4ro+iHgIUZhHTOjEn1m7Yxi+5AOtwxvjGJVAzJ9VPjORubJ0bJXjOTGZaqEJjtCVirku7dAIw1/WcTJvMFHYoeyRx2VShg/kV3Chy+zDxfxVMetXJT8S6cgG/RrHjLraFs7z0PV6m8i3nkxKEtGBJbKQhD0WTUcsEkaZaJzBb/K7XfaTWWqnjGr7wgdGlZU7VZ7RTKpc4e9QjnYRWwfjhh1wyrxviNbS5GY72zmD/C8R2MZSWNaocN4M0sTq5upfge2JBhMnr96IbE1LFq9dqe958pj8AYrxkaGbgRUyq40N7YGO9Fofr4feEEuRY/pZ3tenJqY1Zyq1dfUaxSBE5BnNGuprxUstmBsXxmhEUUyVkihwOGtDvzvyycLfSlbanCwPLEbGgIDlz822s8UZd6+KUZ3nVs5lSDimYRufl+PdOwvdle/DYeQ1H323qStPqXZgIecFfM4sd8s5ahTXlrE7qIv3grKmpNyCUlGih3hxEtqWZ9XBz5NTR/NiIt6XeJN4YHD8KbSHo+gn0iIYvjM3Axj7ZFN09D5aLbvnVhdFMn+WYxtyRDTLmkyiEZ5nPUVEutP3AuTVSx3nlX4+1adjRKeZ1OxnWnzHYGZu6h7tSJJZjhF/R+dyPCCsMqFJyPfgWeJtIcNyS42edOV20LxbG/b32OHp++XEefrNdei6S+X2Prmsa6VgHA8/G8vBjGEm05MU1dpUkLPKacLMwGR7SpmsGBFC7EQnuMqImDF94Vg7Pm/xLCOIs57G5RhbPUWZyhlXj+3crTdrPnjX6OIHZXBrkXf2jrH24Yrh7/IK4XKvWlatu3xQ5fiGKcvrChIIdycbS+CjBFSzrLwFVSjYqwnKaepSEUlmmBp1gumI5JCIA+8dxB7z1P6rt2HSi/iBwZNdaV+OsJLQj+wi0iEgI5rDssiRFRgbERJfjr/9bPkbOYpEkM/2izPTV49GSZ3juN0eFpVaCGJghJTmZk9Ojs/Fh3dLHaea+3sEwYoTfwp4xNZBFf3hd36lMTl5R6v/QyQvV4lHEbVYokekpHqejFowZkKQmVd83delihFxoxJ6xuO6YYrE5EnP/hFaNW6CZG1vnRsL0fyGfnWeY4x7CpLLZUdi/CKdc3U2knGDalXL01AFnCrMJKN9d9vs9cgkWvL8jSJo7GjFj6aaYVpPg8OLmtQhyPi2JMS+jhmNrGmYOuocaFHDTUc8eTAmybGnmRbvUeYbtx5/UlJY+EVXj5odawbSIrAdRQKRnJ6aHNP9O6ibeb4YIbYso2XFtQ/j2WACe0EsKMiqO5QIMFCKAsuxFwBDHiezjDEPv9LtdQ2/0wYxy5p6yJ3RsCCsZu5mRbUeDoZRQihkwlbqNSleM4vYzFsgjE6MqUK9P669gLdBdDoA602Flty15INv0EbHORRf9sw5xpkBeaqiYMY0ROnM0sKUPzsu5sH6lVEJ1Q0SBSnUYHWmVhIUpy0jYm8G5znIqo+zxzloGaeHsO1ouk2+wligkJfAoXfTC8nHllVW85PwICX6Qs4mJgxKOwa9DCQc7MyHWPL+FswL2OVohMmLMG/eC1FDt7+MRa50VknE6pKuGqOizkRxLj9PkF0efGWTKRtpM3Pkzf9r6UbGGuK4KqVXCNa9WoWibVMo+J484hTeOttwS6HvVC/xakuFrkDRDmAsqq+6hMooSVYW2i6fy2Bda0VBNh1QWd1DXBSZxBFvXzvQfg9cGg/W90he12H1b74micQNKS2qhRItxjOijxkviLmo2qqpZ//FFFr4gatHVtjaX07LjRLmD3V0h5+pNjkh9HRVS9N/8NP0jxssOZtpwpbbsk7lm3V1iSX5w7ycP5slmZEgfFY8UmU3uSz/0ZLunwfKTc8Ty4Bs4EPfoPZvbKHN2EUgWHMrpo+MF1qaeZPOlpxUpRlsJ1LXdC/1sCDdjjp7eXIm3fxlpmlPQ2UjLK6vYp1oxp5AzsBQYuT9F3n1jfLJMyW2gsxir2obfJaux1OK9l8OK7C0Kh1wll/DRXEtEJDqyUqVdGOPpERm0bV0jD5pGPGlHCKDszrschMcZMFZNW1otFqjCipgK8uJDiOrDo6EbDbfwZNHKL3dH5XMhbJs09VedLKP+KW3p+lnX+gbKqmcbRHpPGk9BW37qHXuRDZGtGUr5YR4vLAcbKFnKPURbJWGrJsKsiL6nZn7bLUnYMz9iMqXgyqrBtc/trz/rl0kCblofvB6cXRTV0MfmtNGiNnTHAIuPhNmiEc1GduNhYaUqQhMIgHyzuX5wZIOfoqORwF9v2mprelzHqU4XV5WQRpdRQUNHpKvpKSMiUJsask9ueQm6K5IVc3V4aapieDgtLPmXGn1CxsAl+uhUILN2A72w0rSh/9VYghfN2Qs2CFVFfCIalgOVY3jEL2ZWq03SQyq2vzuswP00+TCfeszT6moOTZ8shRCcXDpnPYh/OCWGa9ypfQr1ofSfiWeT/MCKfnm5+ACeMBxyJLk7VCFc55YJxStlBy0i1mUJsh6XHDiLKjkrZUmaMbFULXU2pR6FlJEYHe7Z2mWREzAmeHgtIiS5ZAUnGAZd9aQ2AdEMpHRoV9KmV0iahAeP3whSNA6BcyQ2bYfju3krgiM0D9dGgKO+D0LlWVYbSGxvgmWpk6cOkk+ijwoVUYOQ6FVvKXxQ8Lg8KHyxr4ZM0WCkiyJVJnl05s9rtg5C4oSYBVFlSQwpztQEhZEmVVtNb6mIMmtZCbqJCwyrN95UiwO3EqawxG4zJQ+yicqtIDNPf71kQMI7g8XknFWBbkoZUuybc1hpN+7ZSB8GA4MoWkOpTa1icJDDrq3NJFHxW/3/VyMHqj8yH+1CnRGPSeBJCq5Jh849F+xRgBLyFRzjvcBaXUzXmRIm9Yqu24ezbFodeQqiSjqTByU5uzLNcjJG7yxjwC1S4iYv6UChoRlQ++c33K/fGIn7vbM48VGOEwSMQl8S0NGVhLW7axJgwq79QGOvxLtYoFUEj7R1pBMgr36KpPxfTD7ypKaODvVXdf5ZUDvJHi3J1bWwaMBjZQe0Sgl7TvonIotiy4yHZPSNporJ7XB/ELSK1q/BHCJNVzbXAeQJVfppNEXkJItUBeRXl3bdDbysw9jtl8cqfFFp3AXxlVC2/mJaK1ZbbthMBVetcqIiIv+6ucbP3ZM18PwNoeqw+faoNOwdPfUUbz9Ch67WeWX76hY+OAC/+VGYYnYqXUrFS7mmaF+Rc+5mH2Wq76lEwYMhIKnPhg4ZMdj5iuYKxVLg1gzBwjAgtowQYoCyF/Eq6wOblunFgoq8umv2265dtkYqlkPaSTAuWhywKf/EtgBtWHV2eyISn0wb10yeCviekHXFWfyTGNslYnfkDTX296BVngWqwbsPS3E5I6xpQ2rnokUyOZXkMF+kaPyMs9fa5EaCSLuHimzDG30bfpvSJKzU1w/uIZ+LvhCYKh4aMANiKfUVA71rxoOR5iy4OnvmWqUlx+z0vkLpxTbCS2Qzfk5VcGPxpsr0NRw0cEk2VZPTBHSiwTgvV/2cnaI8Wu/7V2NIKCUQeA4oqVVBRPrl/kahjiEDsldRFowNVncCJA76/bLa9xd5oY7UgPBIElBYc1KV0QLLh+FKsrZHmjPacPWo9sWkYtOC9iuouCwZVduhjDbUish0/Zkgr/vUdhbLwVwnqCgKhtgRUtHQGu55MfDXtgNvcoPf19w3PA0blQnzoUUsMQykPyK2H0G8O39O5S3N+9wUG4qFDHw/ArKtwvbZy9UzN9RfAflFRxRw5AZ9z3JfwMVRJXQhIR7stvfQ94iprEC8ycdcQA7OfmzPWGcV6JEVGSATgGBFHkOtBHKL9r0xQkP3Wd9kIKllM6ok6ppFQCrk4zq2Opk5zud8zVFQeMXjHmF0dpK5S8iZ0GCvgnENQImDMrIVqsvZ0GsbRv7xZg2rEMl/GqwFUlu6+e0cc9XjrOZY3PlwCqVy9d5JdTgRc/samsRl+gvqDPC7+3W2vhqvMR74L0NYQfUaTVp3uLX9dYKNgslDoffLmO13QPKlM7AYXvymr5lVSKOGsJ+FIfPgbyq79eu3lrPbFCUdBpQpo4IGFczrpcUJaBAoJbYgmhOv/5amg3mPGl4MBI6tpD2xxheL4rK2RzIB+gfLj/qtqz1cwh7tHqFNF9bbPF/bxK8bbQOXRNvnAJhyMTDgbdT8jvozmQdxmWRXd4oCqaqecA6DplTrbnP23ha5sv5ygf3j/6bX/SoQmsah0cUxsJxVH53gQmUUDwFSHgDNXI550vV5wHGs7aHdbMBb0QKusx3JGeUeb45+fWMmwyMgSV2US3Os+46PM3h47/oNrtAUgvEOpAMCRfLFtCouhZBOq312JU2b1QLHpHNxwbscf1c4ZSvRmsB6M6YcmH3IMPk00U6geSO3921LwY0j718tUr1LM/11DrAxmaaXMmsxtOlObFlbkI6Bz9KO45BkrtT0XXrTsN4wrWWYLwSNno/znFK61G29UoUTsbXRbjfinC/GX2374b7E1vltt2+m2cEwJutS5vNyHVLn+OBxNY86AeE2zu6PlkVvTo3WuwEkPUmY3t5xzDRkoXic/7iT4GClDffmJ/05DHPjVuc/ZRzbHIejBv4VBU+DUHe6XsEdYZnv5LOn5JaMAbkAwqfBjCt6AOCOimGLmF7oDAngt7diZNvGBNIX007r2lx9sdoHoD5tTzRfVunoE6J3R+GvZjumQFEyV7X5Fxm1QLQgjwjjgn81zg5+1yiRxhPGdPXGM/hupQv9DQ9q1+fN/9KNwyo0qJ/vJ6iPvI7W0/qrND3Br1HpOov5oKvWVM5SnCpvgF2G9JA1vUOKH2H0z931jW0ggxQgE/uv1Zv4alWdrY/pqAOGpCAdi+hCRw8VhfgTis75Wboi03R7OGxIz7iZexFKnJuMujsRqcG6f4XSBwSp0nDXtAZciDdXZQkpBB50B3vS/uurCvpYoLBITD6uS7116M3MQ6OiqOn280xyAynH1scAjLHPWc3/OGuuirG7iaLSgt5TmSm6OgXUhb6GQO3mtD4vGCl0LzWC9A2KDlPqtzjbVjO6MvF8jIxbyiHvp4nB7uEJm83zfv85cEhXkwcrhvsYU8HOdRFkfGOii8V4cHu1Dzv4g79N+LDk4KESQH0S46UMCH2phew8Hrr6Bc+5WsybFRC84TJttnkZZkiSGOKKdL23jjAvN9NLFLg3w81NEEzO03AesfkuZgcg7nmd4WjP3hEpv2rQvNy6x/rEVl6RvOniZgF6V/S7e2LRGhptSBTmIHT6z8Ev7om11cInF5o5xPqZ2bSspMAZY5ok19to2qXUb599TsBxnFglVVP+Niy1XHLMRz387OIvL4Z2cBbJZdvzZNBMLTOHAy6yGqewsmWdnCHgGjuEmPeLelsmL4uiL1mTvbKGxQQPt/7qHkhkpTAzrG0qL+F9br6oeL2POxgScLM5Lbjr7hc65lEDcTxOU4a2RU608ttw2TPBMJO+bhMameV5BnfzazMn8iqgRsQX3r4GnEn47HCsJlxjK7Fjj6A4TXfLsVyPIIPTMrOWCM7TJc17wdco/DMv9VBHJP1AxarlJiOlxog97uoTnLwIai3vjln/qO/euugE0nMIl/yk0z4HERA6kF8HpLf/cPFrF/yXQcNzTZQhC3nmdxc+SUgVrgoC5wuReGmq/hI2E2faiN5UmHShIaiTypp4uyG/W0BwRxLHz2VMQiRptt3Qoi5goPLY8JOvIxL9JKkbednbWm5GVnJ7Cs4n9c5WhB2YocE76wizZ/tiBxn7lttl+VkfNyX1irFHV3ryJyYP8ZEOESNfFCS33EyYTfM0Gl0/TDeaMDljztCyq2mJe1b2xVmo9ZIcVFQbYArKfnydh3AlxatDw9eQWlZSgoiqh8UwEWMiDQvqboqw54jfxF87s1/DMrXHMisZs4y9c80k73x/SXavt0ijsSvsC/IRi4BMx58m6PhcTUxjmAXlFDCNJdis1yWjawSqD2N0p6U34hOiJjat4jRb+eCTNQ7EVzhkr5SB5ndB0GMX1GM6UnxbR050hXSvZ8LtdyyuMUEC+7GpbD6bsY5lC2zo+9QmRqVEKtpSdZa6QLNcirGGZ+h4mfqd5aVPEZxM2GnPSa6nCnKm+uaLazEvCdFB/25qPMYA8qD1XTXD2S6ozsPoWcxoGu5+5WW+eZLy+ky3k9NNi7wmcfnlAUb2UEzkGYc0fKmW1AoIcZsUpGtyigLT/3izzm7i6UdEnUIlG6HmOkPE95sL/KJlleMkZVLFupWh01tLJh1b/benDg9t4w3e6KR7MTFsu/rH5TnvnXVdrHy9tQBpM66gl4SxMOvxhcZYMWy3CHO0FOsyMa2u0Ctt0ecWDziSb3EYOCbtO85k97Ww5bwEu8f05l7B47oJICe4VpBHP5MoB2VsVZIzaas9/yMPyynN1lRacPRoOtPYnPwE3K0BuCvNWNBfBeXcotWittSmo+Cwgx9HIbVYhY9C6LqVZT6NnvRuAguT7tO6bANXS9EgnUC0+/vvSfnUY986/VF1QdEmflWLdseUZSXXO1mEDkqU4QBBHoSkmAsGlwYTEt5/givsDod8cAT1KlkmZxIwu6B1exhnDYtmwE7icvixRh32BckaGaYDK/vlzaKiDDm4Ftwi2wKKcyW4cfe9iSKw+Of89Puj/erS7TOiyngItPJND8XrM0OgZpcT6oKZuE/vOQmyM3S1bS4PVvQkk62ET3X1CIRJeteMD/zLp6+RqMOB0jkIWwd9X5K8Lt6+Zkm5Xf1+pjebT2yWuuIBC9f5ajquGSFJEH3mDhWHRgL3XwTHVSfHum7QZnvo302bboTgG0t7i0y6scbSITXZOQsnCAucLGTJfPOScZlUrcCzMg0ZSxnbyamZ3xaIuNJ8kyWasHWlr9nds48OkNLy5hPLgu/f60tQ7h0qnZdPYTnj2Lb5IChSD1qst4ypO93iNpyZawhxn/msY2pYNvPC0k0HAPyIxxzVl88EYdHvlCK9MaaZGQyDaOnVbAFJZBd7FXP+aAIrObXxqmq6FkWjaPJlbPjJZwNxO0nIiNrj0YALFwJ97FVrl6rZ/Ka7I3xhnYB8N0iyBUsqKDiG4hdYCAbKV1sM+5p9v0ixyceTnbwjoiaLBU3f8A298vfnnNOlEEZJWZK1qZL4pONhEgunbsu2RtSeCAaKXft4aIeLuE8SwzA3Y/j8+fNGpck3kd1UvKrTe0y69f6GOdIlm9kQMiRxNti0dZ19PZMqQGsO+4z7mylDHsbzaMEPijFQnW/xjMEfndxlpuEoXWDwcYjVBnh2BdoH+pSzDgANyWsdCxjOs+ppRsEiXNV5ppk8AkhU+ON2JkyHZXlikYHt1IbTG2nqMXWV87zCKDYRxt/oHzd61NNZ2YPuO/aexqlpyjKdt6Ph8YZyQzoWuAC7cYgRPUtpH8NK8tGTp9d7bEo/cfZq5VUx2pVEiq7yG2Ee/9X6YaE3HUXIsCn2UlOBXx7YwbuntrE+LVwcyeTWPL+TPVrOlFkUCj+lE4ti3kqJ0bCvO9OXBpFIDYsF1jUezTycQv3sOMksRnTHMyaJAfbKWo8wJ+kJwVAfuKMe+3e5XCcKgXHMAXOVID1S5F8MLgNXg6dgQjQNCS22sQ2I4MZv2aU6RC/YcHbd4pW4QaDWiLom70/FBuCqLRxYTLpvOfwNP4pxbv1DpHRA9RJBCJVIUbkReS+qkUDPYZ/zJ1wFiXRrOqJLuUys3WmZ/yrfFanLQoWRio4Ei1FbSBP+JGLTgmAl44smzT3pqwrplmeDGrqRLdXc6RQ7KopkfYsyiuNDK/uS7EXJQSgl/jSvaoCYnb0AuNZJzOfz+Dt5RDrghqycVUc3C+elxFClodNfbJIw3c04f+FKinrA7ICM6NSXkya8m6xZW8ePsMOxBDlIVM6BR/z7XzZPlZIti/sG5/2hrrL3pXRw/P98Rjg8+aQg7BbIDuvQ94e5R/tVRqtSI9sqZ6jMLKLp3EEI/R2qxW4uO5kKkpoZLy2AIN6T3j6LGmsFAlqtZI43z4+7eoeI0MY/xLNj1XeyGirKCJxISUVu1LxkOwKWem0B1svldTnm6KjxVRh4DG6GEBRKWEeHLjk8dakGIXGqw6YP/vNEQizM41M/iQuVloSARRaVwTrHPKHWHL9WVoW8/J3+pJM6YkCSak9xT2Wo/TnRSs+AhvRpIUMDQYsKc7En0GrVmg1PAsz6xxZnfs6z21ZjFRxLDpqc7Up6RYWJdbPYDI2I2bbq0fsRiBkNoc8XJT3KLuq7pD5mP35bXw715Vd3SjC4/dfjFZCJ5VrRwKj1uVyP8Oxd4cphhkTbcO/axsZbI8IK3NtoWA7UalGESqUWTpPYNur1Wa+L/P6S1echObUfmTfaWlAFO88lOaWFsY6T0/EvK/x9+5MGWVt/Rux7RDOYjfXA1Bw8kIg27IaT3x0NnczEJbhyXnsuzW6yQD3uOcK7FON6Y+3ZjguWaaLA7OclV8r8M62VbKTUmZWejXTMvYq2qL82+lQaoXOIwmPrlR7Nj/CeirmNbHYzoLUOych6ZPAAWlcj903zuZxZLXmIWMRfX4vZsZ9NfLcyMRBqiD1PXUGvJCz6CkVFMvNG6+p5FB7Im3d6/ZxhDb21nvOhXHnVNu2MFbs7AP+W41Sda3GY76XG5/pdDYst7qWWMKbrFYV94q9mp/FEJMPPrsdxch/BwQA/QY1Eg1Z1LLBav1ecakNPHFvVy+AMSozD6NXblD/Sl9va0nLNnsTgogkIw4xUIl719G7IxGBxjNWOpSBfmJGDbo/LSMgpQ7ptPVWSKgpQnaS9+uC+OfPrS9cRw4PBYP3piWVf/UDHiDHrHK4YI6nz31DTO5KhZkC3yQ9K7J9qw0WbVNxYfa7UfjaFhAGpapS4M6Wm0zeI4lm4E0vQtUpVDZMocDVKmpVMIEk6m/bP8bL5hwADbyZtgAmsC5I2WS+I9tUmz9W1KKCagfeg0Ony/hWFIlrywQaaNEs66VAEwiqCbUYSMh96Ly+O683Jmj/IT9OJ/iZ+TronRJGinJvifI02o4qEGSJvYtluOMj/2GBa+sXnL12v+PsQcLiDOP5QduIdZkMHFpAP2+8Jh9qNuxi81nFuVzJdezHCX7laEQ+Jx2LhHuSLiWdmXFY9RXzp1kLnF05NZo8adFDnyP0TWVh479JFr3fElez9bBvu+QlSklmYYyPPmSu9AagC7Y+K5DUPa+dnn6KfznmPIVXZk82YZNvXl1a6AeiGcu8e7acXOYzIxxr2sw8L0+FDkjIaManKHXBswwCMk8cUFfU7idktiB/qYriPnWEB2ot8OaTjMoDpfWCwt9/rQZKMP5rArAohRnjeKMaSzcb9Nz7sKDlDFRz5j0bpLjmrWuhSu8udPuXzmcUOcBRJ5SsNtZiqraT9wgT5peb2dnThqA38TI1V/igZUvnWVK27FI3z3GXaT90qjg2rI6IgrUlCtZ/1uKfBPidPc6Gd0b1idsP9HjlhYmaHZlg+uEIn66+86GM9YVFfbW0P9VsdV35fbbbBzicLugpkpeeJtUj0IOhNtaM7Vgjonnid7a6p1uZJTeJqqe5VkaHeNCxedGkMJGhsJOp3rVyE2sMeDtfoe9v0lE0ENM4liWEz3vPtBdkJ7aBPgCY1h/j4HQGwJHfyjP7BVYUcbQhRI2r5rPPtUfSfhKOTfSMv58XZ/tt2pxOOchcWk/Hf2MPt8XLi07xBCodPeua5hePr7b4cCSwRm/d8QuM3pLOy1VvXE89OQ16OU46Y8UYE3W+O1+12ddYVjExmUXfm9ipame+ufXE64hD8nGtfv4UzTTEGm7Xh3WRhtrPNGA+VHsCaz1sq76dD413o16UCi6R6L6Tm0DdvGJChS9kYiaFa8QkF8oYyM0MbXuzwyiiu4mTryrgN38RuaEYaRJJuv9UGT6ilfEw6Kh4KHh1qZm0SQEyY0IX7wjbb+HBWLU4aOAlV0GkFpbQsgNNZskZnmmkptCyHNxAro25F7sfx0qFAGrOhUtfuaf37Nf14FYZe6/Bc9qtHNETDOLla/y0K0neOmtsv7yzK3ozW8sTKAah03CrHSO7eQSg250tuIZEL0n0CqEpIciA9eWBzoqxXlpQHofdZ3WTpPBI6fWoZva4BZJ8czSvh95SXkf3u80KYXSGS1bNcOpfst7iP9+xn6IOQ55akJ5zFZTHVChGEqSoMVJIRItHIu6DEB3CoKojIx2k+9LSY1GNgwcWdfYEExLfAlrycaAgFHiPnVNNsMRAOEZn9ZDrkH8Tf02AqWjS3h967GKzXTDnW5pis70reHI4mPJPtzTjq318OL/9FFxAGtG5gJ+dk1ZtS8dUMSNaEHj5w43aTirQvUFRJELgvVE+v3pHvAcYgIAzX9dfeOrznoMLFM8Ow8wuZtYWkrtEuw00KRpbIv+Zr+VvQ1cwKrXk8Ps70DVykcvvxsV2S7aHHbBdLoN4w90MytX1BgMp96j/e9NvzeQjSX3J+NrJCuQusVdYhuIEfQuctABX0+mJ11VSvKclPwFOjWd2bzsBweilC92mkv4Yt68DqVWPeoL6KoT/68E03xfNiwo6A+IWgzI9En3V54Rqd2gU8fdVJFY9qmdJTXtG8Ss1HRdlKKfdGH4stxRFoE/jw8rammVskQPC3lXVMMt3AJWXnHRVKZJYuGSSkL82b1x75hbviRy3pEqSwJ+0cQ2t7P4zyHVB1qEARwwpbSMfe8soFBpyC6Jhg4RZYBF4EmqEGAhdYXjCWNlos66c5JU5GJuPzowQiLcB+n7yjCBKZ8ZywujWK9f+qW3Dn30nUmzrNoZFJgMlwmqWI4Ptw8n+lC7i4IIP60W046uUQjGhM0uCP0k7YO5wBOcvd/uCnZX5HZABSU+NTRzsY7p8vQJJaAtt6bgysvgxx8MELfHq0gfV0lAbFeyCLZGfn60DZmDTxXm+LH4Niv17gp0h4E0LPyLo+pY4buca/8gPMAuyVIQaXOWQJmPfKTgct2LME7GfDlUPqlrgBBbv9lc+/DzSlR2qGNUUrIminmorGCqpWbgs2yM2bxRL31K8marCKtQ3z+lG12vdmkIYR3CuTp9ZquuqSiGjgjaqWiJhqWCQMMq2o747q95Lh5wvsURKiTFB/poulUxZ+6skzSzbYK1nmPuR/y4ignLBtQzotV9cXo6HfChcAEfP8YBXvELjHdHdxgBVsKdapfH88aNEvtGDXVA6rs1MZ/pvz/yOBWOVf3DM+6jrf1zKwiVtWP9TzvE1b2gjquD8t2L9vyww0obeYsM1tv6XbcyWh8bqBFO8ia5+bObqAPeNPNBL3ecnFx2qQSO7r11iTZKOccVkIpCPJ1TI0NrqHqENRI6VUdM7sZ0yh5hDT3fykHXfxPkMIvLsQJ69OU02Ev/nKh6XYd/d+sX74div2WuoyNl4GcdQemm3fK/LuZ1gGp1L+kh3vNd9yPEUgTLXnldNzO7MSi1tLgK+tY4u2GosLKYkJF9QQqewsQPf/m+7VlOsodQSOUKSXJxreE5JOJ94y7Ble7u4q7aInYU0UwH+Qom9tsZUvH9CknVlHHOcKW6tvq2cb6McON7L9Abts8fs5qm9LRjv7rQ8RkNdgydmUzE1js6jk0Y7mmozKpL6MSlnSaZlSIpnSc6qUJu8Il3T9tF5gFYX07VPJDh7+2CZ2Yak07bO7PVk2CI9CsEE6W93gtIt6luSNiObqMu8looi1Zlsd19Vg63CxyvzPKS+hS+e18PeipaOasYvYsfG3acKPdg6thZpJI0VSseVbUU77eo+45SvqLF3bu5F4W9vWy79hwG5nWRkT0zJPiuL++Q6ycmYDIRy0tNQZIJk4izi2E94rZg7hLClRbSk7iEw4tPPlv8/lMQByzLWKlNPrHCkwyllFZve1AO4kyWlFbICT5etZ4WLM46AVtOWLvzN2yHojLAtV+MJzfVzaoy6wZ++9N4ICUSaawOW73XGKi+8K499qdYLXViBhpHimHMQSAJ+TAcn5AA0ABgmbXmvdKlLT0yMKVAydK2I6C+gW3AtIb9ts55VY8coIXFxF3pRdt4C0C22Ajwj0r8yS66pG82ISoWVJ891UDGudSZXeTe0MRMWBqKfkN8JD+pjEQ+UZAhERUu9W3X/y4dNhAEsm6uiHaB0/tZiHiGED8MRfFPAzW1aIhY/+AvDT6f01mZvDF9RSBQr3ISIHLF0upReEejA8rGOsUL0psF3lSq9pVXpLyLXVzyRwA9gQZv2VsfZRA7bwGjaQKnY3UU+Dm7d5fPbEEOjOvkqli8lVsge469puj7Z1WIpM8sQSR4zWo4TnDQITTCmgApQPe2lqOS+Pq/5gUdd/qvzq5s3rF3PnJVOBjUolivAbEbtQwIYKCnHOlaKZ2UvN70SGTC/RmyKY83f8elXA1OdZarnvMk1fVI3oxq7Jw+u3k+ZXK1LFEQjXtIWVGesNKIueicgZTahe1mpj9JC/5WvKBOn4kFXwcS2TsfTyAEnjuiTM10X6bZ12E37CmZTbBAWy4CTvo/cx/Imqkvc6AW2VoiljMyc3/Nyva07h42Bi8hh3ccfJ11Z38ssJhvHgRHNtNfv3G9stkWnzUWjAczZi6l9dBzAYb204op2ZQowLX8mJ4go/yjzOJSXAwypRPnqUQkzanvXrsXDLGtY/8vCuQ3+PZ+zXflkfsugLj6xh+u44vaCtxmUCoovOGRLES0dlsDgJNDsi2m7H20kIvhcMNh8ps5cTNCcVks7LE7RpTx3pcj17WCSBJfnb14Rb5TYnv82QFRhIqk91++2B8ZDEV4RAgFiWrSRCwvR3wUr1Qxs2gtrjOdZURM72HZfN/T9WU8u/UdWlgrG6XuOBhffIkpElCgnvC5OznVe/ryC06Jh8B8rlE9L2cJJ5Reg0AXQk6fjaZpwISyak4/yrLNnDWFWdJpEtpzWDnZQFhWHf2hSPu/YIwYrhaJMRjQzHzvcqNPTyEPDLyIqYUOA8flxHVPd1vn+gR5r4f5e8Nrs3LVg7AltbjUrI+f8UTZsGDj1q9P3L/oZf2fLwkZv7XyMZbw1L1siCJuX8ehH/nFkrmZ2j+mzB/N5aaJtDzCelKOYQlsPjk9iociQaPhxoCG0z1zNYbzS4BtvweNb5OJFS3plrYjYvML4J/2si8JYdf4uxtROfSA65Npw660vzMci9AfF6b4SnlNffpg56SAquFe/UiYeTSFxCTVju6j6g88yayqryaR6T9/cNhjv+ttiHbdoDDSMNZgg3OTLccjk3MohyhEyGQ6bZSV3bqmXzhSDP6MB88ciZs/mAhscg4Tt/clcBEycuQUY6gx5AwzVBt+QN8AQM0w2wOAb6qtpzI9tiFj26eLwbX0xzPZ7cfpafu6iiipuvv6b5Dna7tWei8GqYxeaOgb5RhwrHhIpsXEbbxHh9trVC2r3vnX09/ogRn6XamN6CZDTEUdxk9cAsdaO5EN2thIv8xFUV2tEC1dSycbc/hCiwYOEd2Pu/fP4Nu6G8eluz8Rdtp2T7pLbT6JYQS3ohZ3wiCqLzb6oZoJVUKeD+gVNcNvr8AHQ9dFflz9MykU/SBHvvr+TX0yplZn3iSmzOoKJb/YOfH8NshPhvL6MIJ+nqiITQ6KekgMw09B9oodeX7JIMYwsLlpA+ZJ6kwMGdXquH11Z01ZhMeV321rttf7ytMjPJJL4eQhhwcgcs6Rlicx8WrQ0HCaGJPj7zvR3OA/9g1Q0pvh6VvGZY/PPq/67KjhoosfNKY3Hmlnin+7NjuWHPY65WWHpBTK5UYH6/oLz2HcrOYMFMr4qSh7yLCxlFVYPYDxzthyBbd7xGkeNHPCnq01AEk7btU9KCaiq3dlA6vg1dhfpyUUT3AO07lrIze7sM+1efwxkTGLATVLPzpxq7I1gNGdQUddWvbnXaR4PEYtCXV3PJcksgfCCKDj2DP7+FwK8C9OIgpHk3SEjuqVmiy9TCQ31g6arzO4MIgsclEguvA/0dOP2IN/QChrmdB3nTbXlmllEvezPYwZsBrljHaIBGGdJKH7qzSO0XEWCxekSLG0b9MfGzS4WazI2j7WXo7Cd9VgRZs8wDbQ1p3+JY5oRUhF+j8W/mjeNdPTRzeOfLFF8DizslQetOxjs/seUk8TPV+WspeeGx9cpYDHZBQe8d3lVTsuzrRjeOSNAIowtysIHQzwxr/PbdxqdiymXiXPfIsnQQDSpDTE3yZXRTLe4d1V4VkJXgNkotuzNOGJKQRe5aqcWNLe+GoBaNmK/Sda8cCPTwzW5Ui7+6hpHUVxl3HDepJZfbVn6NvNTtRPHn96p4W0/k2tD+ZRX1m4MVnqZmcAQbG1hTmOz8Fvdt/V9CMzH2g6Vie6SsGzGNmaxeKix2r7a96YOF6WMHRF7wW+KNvZ46T2NpEhQ4uwRmOurm4n52spkdjf/veub+vjL2GWy2EUFPz1ckWFlBvgc/Dk+JBh/wvpMT1d35ewuq+HmLTm0P9Q1vDK14ecx/b6PYIGJ7r6N7HWpMF9QgWZk36ibhAIBPG7NtQ4KHM9MWYGEZ0kHlPv7VIRP0i6eAYBJ+N767mTpiZ9I4DbN552X9u+x66RWgTgbSYPHhdQhvhc6Kh6Guyv6wpO1jNau6R+1FQVILmwgO2xv7w6+Sz4TuBxxs3KMxoXGC9wQoIPsgY67H7wQa0sRoS+5jO0cKzfNy47qf3eqH4Ah0l+tb/CzOvAhSa2dBuczTdxx9h8D26HAIPcY4dwvadBSTju/pI1U0Vcfb2ZubynG3TXIE3LL8dPGDjhrcD/9da//Lqvc7WZZtViD7HUbip9Xgr48ylj0smoUqgHElFE42JE8ksLjKfLggIdm8BhYOHlc0PcrgHOc47CTk2YHUeaIHA9cmZGQh3PueBwrtSKXMqmlrgpGjLqZRord27pFefpS6r+d/pqc2oqWUcx7cDycmgMZbrUEF9jAw6bjtSzod3jmLNZBw19sBDP4RPAUsrq/QPkRop+v9yOJe6fJl6/TFi27vDCjQacyxprL5qLVsqvSbYhOtedbyCh1324zVosmyxxrIdG1PcpZl3MLBEJP8fheLDoRrFlQHwy4iipCch/QUTBjPlsNppG3BsRXqxKlBo+nhJPXQ186SnMrik6YnLlFJTMycxDLRHivhY6YHJizzX7j3WtzSJ9jOnLM29e5sZuHxmiYnJghql/pgyl1r/T5hjKxFDxRgbZyAcABS8ftoKXlAGc2H9hMbr2K1Bqmi2kWAWyr1QDgxFX5odWwcRcH5g8FIK4MYkyBbnet6/Lpn3erCsNVfSpTruRF9ZeZ2fw4e1ZmsCNozqVOuiCZ0ioO30GuyfQ56HY+fmSf9KlXcwJGfPrHBuXNTlL6TgSay14Sqivll2E6pbeiUt9NE4J5oMFNLnvm6vBtG3JJj/UjOh/7c6ZmwOyDB7B64WaWI6Z+abbwtacAbQw+r4TGzBcyESHHE5vwtBEujmTeDxuDgQXsA7A8o8WFBU0Q5OFYPtZ996UgWYqpC4eMOBRQHguZk0GDVTVH8dpIc35VbS0mVmw9XbcWXAZD2hFPi474cB44o7yXybgJt3wISBsCc8n5ZfXgVUKYb1CK2Rctlpi32vQHkUabyUTCfmOFtyfovycvOpxUeKK2DG322un+bPmQQ+l08BfEV8vItmLDZdsQvlZYlogbqJt6ZGxjTT6YLZttgVl6H6650OZ6MNRu8YONDWIbgZm6drUkvwWNOdSQVoADcgejkv7OqAiRHcpBptMMBtxc8Hc7s/Ia9HIf2K1GeiTW+8NSf8t8Wfr/jcPGp3F9aeRpHSvTBfs/w2Fwm2A+1PCnzysGoherEMy8z7KAdYv/KWYfPd15cg+wP9bHmeh2KUABX1V2rvHAnfTmlbNax2fTHZ4gBt0wypUkCJ/oCHsAh3uIK8krxwdvavu91Bo+iZ/M2x4XggVfFcfzjCq6ZMOF8dtcVhoGW8ef1QRnsasnS0+zI9CfcJVdIqXiRaEcuHO45qpeXuIN+mEPkR38mfKKSNV7RwP1KebpWbPFmPNHT3ggem20MLxxrDXGi+D0mHMCf8BjZkchda+5Mj/rMRk8TS5UT1fDc2mMannS1RufclxKk2Rdfcizgf+inrYai/dHUkb/OdV0TT4SIkb0+Sfzobrvbv+FMVX8gTt99Kgss/thdPqhdqIH64w2f2WTpTF2HZ6O+7+/2Bboxr7ncLb+IjrfvatBupVRPCLrtcRomPhQ/pk6D/xQOxH+AxngqL98+s8h4nLuDXRTsLRHV6kayrOmkMzJHFMYVYObpxdfUFOjTJedR3dLC54tRMbhZLLgj2FpjIvDpvjyDxdLUMrYKWzj/W+jhuC2+/iH9FZKBTsMVx2766BKhXV9uy+/hSvyIAWvtNNZLtbgYYly0ScZNyUg4rQScg3p20atPMqBw0lUVTeKtKNu4QnWpeUwxB+rIVekcl4+YHtXbiVOYaGNuPX79E8RFN2ayz5YaSX4+sVttp6rTPizd8zTLiMP9anQDFeAKV+r16DNIH0VbVBlZZCqbuVvTp5qTku5uIN30t4u5iBHMLyVYUy57jI4k5jPomk75IiHLVFOFyZGmO0xo5zPGRY8jPF33wt9pJ5j1C+pfkR4taZuIItXOgHDa0iwSWUMpp+zF7Qh5740iF1mFrWYqO41jzmjyuOZPy7+yFjaVAYRcSGX6rULRCn0teCIf519ZjiaLE6uOoh2U1XAW6+sLtr2Zurw/1CFsEWv/c2SKS4Twvzh8or93dYt0mkNOtzF97KY6SOABcD/9MoHhQ9U0v5wH0eFWM5zN8nQ0hq9sp9wJHOpO2ObA+X6m4/C97IbOoRgnJSFxBKlZ3ryDrf6TDBxEhJsjLEeXiMvqIK/SwGFPE2wbF9BOm5YsMe3YmRH1HiYF/JzeMzHlTQOTyqNpvwR02zBt0L7O0oIdm9Rbvvl8xvfJjNzWvJrsg0E9Dbk8zTcyLMmQsv2imuej5d4kSq1L0qpH7cNJ7R/vXWHkX7nBSP6xR80mhYGDfqrv/M+9JZ6qy6h/rI8knqvX7a92lfO2DSwyUKb/roLF57JENDpTnBV0dzQsNtV9YIQHsCbFbvZ6kP37kqBMvmyBjGd62j+yu5hRti+sWNj+Y1V4iXX2H7O7JZru4K/icmb8X0rkO/tzCYpuMjkxBjO4WLg1e2gn1qD8uvqCwk1sf/mUW7+p4Ofue2iWYPiP6vC+Bh+qe5j6IVrwD1mkvTtQHHOorwN2iqav5NZd233xyHR0UcMKi1+OVLnDjMuaQsHhAmRiSIVIieb+P/gtKfNNp+hZ53fHj6Ow/nXt2tMuAiIQ/pHt2KMQrWQUJpnLuPPjsP5bizp9QeMPJ1z0pnU6c2M6dIWZODT3cMI5TGGa2tltJUnPcMhsv7cF7CsoCEW8H3y/kaO5kId3f0XD//XZ1bPGtjvx+qob6l9h6n6YuypVchbO8OWClexOwrc8yPHfqtkZr92HM7skDFc3Xyw5mpa7/yUvfqwPEL5vvOvfj1aUpL038Gpu8Km0y5+a4B/iH0uTMc7kYITV7EQpb/TskzqDSuZY+LUSrNAx2CzY1MKLheWU01/FmU6sTLHlY/tjQZ5bjRmrF4Qn5/ZvZANm8H7ufafpT2YoL81z+e5bSwLW3BkHt0WQN/OfCmGNqlkYYUhz6vJp9WLKERefXBvVWhXZ0Na30pwwru+VWEjmPK+yRODCEH8j787uGIO8kLGTsSiI8gUlzRyQnfvOCwU43CMLQH9xY+DqyLhQzzhZ2B7BAH4Z2acVcf0UGg19/zmzUi0phQH9YQOAkfSMy0CreJ1wc4rug/fy6F0uxxmUWXwNYVjNJc49pv4cbtsRh0WV8C3AWYYPiluycPnItQB96hvTbyHI4BJd8Q16QgO8cva+xtFOik7DJSm/x6NXLvbyLXv88gCc4fREdUGznKmVXC5+9NJUK4N+xruMLWtJs+OrF0fs3Z8J13n7CHV2tPplnxWx0N54iRH/tQSnEz4lnybW9JdXPzibi972O6M9qOe+aH3OI8eu2zgFNbsLujRwQS4HWoI+OdjptjIdExSW+dGuCaTWWqPRnOm3PyeH358cYeLVc6mIeX0ceJYZN60joCfsuHl1V/MAtfsbOvx4EsLSa/foKZgFhzHBGryEzQ9XEGk66AYN0fqZuiBL3fL5xf9wOxYeVhzebjqmuf2fN7u+BToUNWrIqTB7giBA1G3sVX+m6569Y0bq4N3pCEMzLQ2zLBVCTwC03WEBx/XpMTTX/dBkJ6rbfviTqE6qt5KLeJaV9FswmOLSNFr971qRNkaj8F6ViGA3HLlJ9+/S4r1CJCrkt8BCKUP2LaXPPCve/n/czbVyrdx92Hg9vk7FmxO/WZJmudZFscXEa4A/ODanNekmwZWt9Ab9u8e7PoFgYJXDH9tarUzewN533ZC22z6Pm68yvzzt3Nfq3uYiWE4pPPgu/JrRnct3eZ+fP+eSfrPFTq7yIN/zpRJOgTDG3LsAwigmgkfkOXQu5iw/50QjIBM56Qk3yntZbr1GBCEkUtgIKUge6yB234Gc/6KlrouzMQf+8+QhXPiLInTNwi9p9W9mllbAMdAjzH6TpurHVX8tHJJVQvW79NMstLS6/ttXlsxhm77tPz1y8s2SCweitPJy4bgt1ja6ziQCb2SJtkLNEeGVYPP+y3zuHagGnTXUV33wRMczJvHZ0d/a+fr0AfK5bGT2nPC8mlVUutKXNNK+EL1g4eXfzFKntpjqVn1OMOOyEONJs+QFrLRXOQp+7F8On3N48NKchMVg4jDW7mBs8uQUnqLYNIdyPqcjfhIo53Fd6TTf5bhHCibYaiEGZ6yjDxxrcxCfN8QrxVBWzwWv3RmunHjLa9rilX9ThpTZSyS/hfXimOMyuONDv/xBKs8Vg9OS+pUMCJvH/2SwtGuwWt98KQVeIr9vkhlUR/ggx/0ijryRAYFRwmKxp3k6kmqnrqH5NSHrXE/1kaFO0nB+det5rV8gN65yht+S7lcUa4zD4DQuURLxCZESIoaoCtmSclC3CWf3UQuEZWf/xDAwCmnm7HGzLnP93Aks0efU3LzSt/w8eG+EDA9Oyw8PUl/qbb3/Q2Xuu9Y2DhKKQIUl6vCBze1Ow8EnFDDT/Liv5ih7Rp80z+EKCVMr+Gu1ytoR7zBmrNb3HYF/P/4XL7ex9fH+G34dReX+IJoawxvKbar9B67MLv1iChBsBg+a+QOkFGoNRn2CDj2T103v7D2DrqwpyR3e1zY/k5+P66rgAKv0xj8nqupe310T1LvO6MRs4vopahuG/tdQFbrBuh0Anka85auJ/Px3xI/T4LghEXcD06pFqN/phad//ruXeT+HuTvOs8ftC9poPVow7u4Vs8gkRz7Q6Uz5v9Budj9TPzRxpiFtIVqx+hzJ9P4EexGmcWLjvW4JsVaw4aEZUtKML21MGjxu4OOQzeiZvBx9HFS9YeTCaoX8UQUNxQdArEvCMu9uWgAL24XvfJnrpyVk+C+WFrFNnkBqVdLANENb1djfwiAsEFQ4E4eJ4JYV9Lr2Vp5yR3MOBxnXah/5IqT5yVQFlwM0G1dwIpMmgTNviglzrqPB5QI8vfTAkm1Bomagq3jlTXss9yFthUWsCXM8UDoU2m+z//mxCTExIsDiuI6b398UlyxNE00wFao2ExAhfnVGaFYMxU3d8QDfgxvlL7WzgupPAH+HxVBA1FHzX8MV4xJ9ccgmvGZm9qdMLVkoHb2bi0zMz7LNCvUKxrny9r2dMd7KMfvz/k+kXrtB6+SRjAzXi4JFjC2ox4Wa3H7y4hB+JCG0Nb3+T29o2nVpTextIZqxznheqUWXT6b/nk+dggto9XQpjKDGGpXjzoszf/t4M7svZNmRVzpGt/qnjKxxJTiKCyRk1sPUtFVshrR6Y36XQaP2FMl5jW9+3ZRkisB1rvLcCNsWe6fbdTMHlYlw6DmJr+uTnsYaMzsR1jdT6UPcDGaIlq/pWgeIGpbloCt/7xXVhAlWVE13TAt23E9PwijOEmzvCirumm7fhineVm3/Tiv+3m/H4IRFMMJkqIBkBSPt8xOzpP0LoB8o579+9Ifb3zY8RH+z2poBLjx4cbHHZ9IdlEfUWdYjL+6/6DAgfm4xvmnuS+//OSpBXu8VMomtNVy7DkDTlYF8ItjO4MtNq4deSGAFI3F9/SH7+mP35OflPeTdia9idXhcrY7PP2QF9xpSJ/7AGSqlMmFYfDcxxflj3y8/nGmtddddgKXED7agbOF2pYU7rP59AYnauIAitdszcd+OONm5ffqp+/KR6rIT32tJMwHel6VDDb6xoHrlBSZw9XP1+vKbHVZTZTV5ds6TbCyl0/zFpsEKtuIDKfT3kmUq51PtvLw/CfYhHmbq4y9szg8qVuV0EXJ8Sq/u1l6JIJ74g6JTNQO5xmXtN4WgEP002xeL4o+GRmtGIL1+0LErCZ2Bsu0C2CSFftVfw0FrfDpoi0TzK6PrgykOH/g21lG2VqPETd4vNnvXak9/U3cGQV0khOLtwzL6EtK9jZzVNqJjd8kv1AZcVZo2p/EbH0w9xlCXDh8MIMmYnvNh6ExQl7v4vARIV6gpX0KcOMvHlItphuhnQwp+PPYJvF68xW0CxkvB4KTsL2UuFPgeeWmdftxzh8cLyPoj7nEwzwEXjty/7nYXj/FfcyCuuHon7mxbprLnreAWse+WL8c7yKIa03YSS3EddGmMW2wNvtdPwhGzF4GzAIOmIrlZ7kAuEGbglpvPOSPyNSXcH2+BCb/j1BuMTCPaMXcNb60wB4UWNfb5qHLUqBlFqF9+dzM214eJIaAfQ9TZIHGoouxbzrHQWgshoLN2aY1K1AlqrDre3xxodNgq+d+u0e5Me3Emqw4Hgz1Z79TpxjAYQHo/ZIaY/ZEMNdPSxpBpgknAix/zg0BhlQSScHqv7kBvAAEmoDh4ghsar8ACtRLvxW2DKl6LPAvWP2gU+RNWJiKZ7OZvEDjkMVcrLket1i61BAI/veCNho81eqe2RyTCdGEBFgXN1/3XpT+/1IQkZ9Fw9rWdjdxZ9jx4jNCItNU/JI7QAypJZywaP3qzwtEFXbRb9OlnrQSTlg8/Xsc8JezhBRa4R/chmQcRaIL26riVvEyYklUYRf83fv8QPuh/gXsVjVjmRFDGAcHv+bADJl7LKRKTzWWcGt5MfQBL04NhN8MXwzgsAB0SJ/eEFq4bLcu1eQeTc93DKeI7hyVqGqMj7k1vjhjasTYVjYmck/2Ol5dHOae7LVPc2HeAakRoKlvnPIRg+ane8a5pr44uokqFAPjr+hH+fnnLAOfcSYijY8cM79LxwyYegJhXvw1/oefgPIYWhgWHo/sQQ9oQinCrHVCM2HFHIWsgEOAGgG2h1z2P8kmoYRBdU71+sl9oMl+dJnF3tKUcGIqrr+Wg/1YEPRnMZrkZZCirN68SINX5f+pgB5ykG21GNX9dhA2oiLU3/ammyxFOhmXftOjbqbEFz0pmyHFKUV/O1JsyC6raIE+pg72eqUSivc58ecLITwnu17Vio5yVmiLe0NUcJfdlMggDnFcmfhKeMEXSH4IYIrt1rRgIbyCaqYFuuikCfW4+lziJ1W9JSl5JUO5e7M8XYpEeSPQG20qesvyXyC1Qu0sxk5CvQpxtcOX4Sz/7SP1t3kFGI6B77PUNy8f/os8FmIACeueLkaCqPopB39yppMEkSx7mCq4BkZ9xKnBap8aQkET9BG6+u8g5CTob5HzZFyCTBntLK5Wq9/qT2isOr7jA9JP7Qqu/QxzkINTAqqw7WfTmdoaAl0DP6tedZ7Wpp9VbgK2Y+/XN7jlu2J/dB3lvc1gCtHne9VRaakD+FHVSLfUmNrWn9Xg8Q6G0Hb97Lqcx0ml+9n0adgxpAMAjR78eMI3+vR/2QSLbKUbhyuxNMWO+US1mFVYB1VVtc1jZ9ZUy16532sIdcUgWDx7erHPMdhKtscKEEAhxuae+CUlsZKFsWzXTjckj6hGUuK/Cy0w29of7NkkK6Zc9zZzD/otSs/9Y8++WoDrrnLtNlXz4n4rqUD3NZ0EaH+zJILbtbeFuB94kejtO8mGO1RFHR12Jp7cwmPk3xDNHNy/zLv2coZVvNS+TlRhUSCu1T1vsCvw5Fk8M1cp8+xB4q8a5sm/EE2uFdJVcjbS4trWEoUhTOYz7exRy6DpWbtCVMlCt1V51k5SsKHe8meeMkAK6CggalPeEuDdgSTh+/3/koWWUNuKyTzx3jD4e8WZX0y2c14QhRPX4fID8b7LZuy/Cde4ZFob0wWDP1+WCJ7cZ6c04qSizi43axCz7sExWMGquZ7ffDHJp+nBuMB7TjB+uY9KjCoon9bCz/sTSeOPkPxGuy/YFYspY4qRENSE5FB/5laenayVDpGKnGC/zjmgMyHUkXWuQo/faRgIcZ2HTzkKJNPNrl/uHt/ksTYCrP1sv6BPR2i3XlnAl7yMMokT9E0qz6DXbc9kQaOlABZw/Ncrtc9MH/PB22BRjv/4eNy7RfrW+Yj24LWGKwYHJd2+gmbYlDJgd3XKALK+GnmCCsIS/1sMObSnWb1p","base64")).toString()),n)},42357:e=>{"use strict";e.exports=require("assert")},64293:e=>{"use strict";e.exports=require("buffer")},63129:e=>{"use strict";e.exports=require("child_process")},27619:e=>{"use strict";e.exports=require("constants")},76417:e=>{"use strict";e.exports=require("crypto")},40881:e=>{"use strict";e.exports=require("dns")},28614:e=>{"use strict";e.exports=require("events")},35747:e=>{"use strict";e.exports=require("fs")},98605:e=>{"use strict";e.exports=require("http")},97565:e=>{"use strict";e.exports=require("http2")},57211:e=>{"use strict";e.exports=require("https")},32282:e=>{"use strict";e.exports=require("module")},11631:e=>{"use strict";e.exports=require("net")},12087:e=>{"use strict";e.exports=require("os")},85622:e=>{"use strict";e.exports=require("path")},71191:e=>{"use strict";e.exports=require("querystring")},51058:e=>{"use strict";e.exports=require("readline")},92413:e=>{"use strict";e.exports=require("stream")},24304:e=>{"use strict";e.exports=require("string_decoder")},4016:e=>{"use strict";e.exports=require("tls")},33867:e=>{"use strict";e.exports=require("tty")},78835:e=>{"use strict";e.exports=require("url")},31669:e=>{"use strict";e.exports=require("util")},68987:e=>{"use strict";e.exports=require("v8")},92184:e=>{"use strict";e.exports=require("vm")},78761:e=>{"use strict";e.exports=require("zlib")}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.c=__webpack_module_cache__,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);__webpack_require__.r(r);var n={};if(2&t&&"object"==typeof e&&e)for(const t in e)n[t]=()=>e[t];return n.default=()=>e,__webpack_require__.d(r,n),r},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(28638)})(); \ No newline at end of file diff --git a/.yarnrc.yml b/.yarnrc.yml deleted file mode 100644 index 804e09927..000000000 --- a/.yarnrc.yml +++ /dev/null @@ -1,21 +0,0 @@ -defaultSemverRangePrefix: "" - -enableGlobalCache: true - -enableTelemetry: false - -httpRetry: 10 - -httpTimeout: 100000 - -nodeLinker: node-modules - -npmRegistryServer: "https://registry.verdaccio.org" - -plugins: - - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs - spec: "@yarnpkg/plugin-workspace-tools" - - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs - spec: "@yarnpkg/plugin-interactive-tools" - -yarnPath: .yarn/releases/yarn-berry.cjs diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 94f9c486c..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,1959 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -### [4.13.2](https://github.com/verdaccio/verdaccio/compare/v4.13.0...v4.13.2) (2022-04-16) - - -### Bug Fixes - -* update async and lodash to latest patches ([df541c4](https://github.com/verdaccio/verdaccio/commit/df541c43c1fac7af064ef6cbf25007d78a812666)) - -### [4.13.1](https://github.com/verdaccio/verdaccio/compare/v4.13.0...v4.13.1) (2022-04-16) - - -### Bug Fixes - -* update async and lodash to latest patches ([df541c4](https://github.com/verdaccio/verdaccio/commit/df541c43c1fac7af064ef6cbf25007d78a812666)) - -## [4.13.0](https://github.com/verdaccio/verdaccio/compare/v4.12.2...v4.13.0) (2022-03-10) - - -### Features - -* update docker base node to 14.x in 4.x branch ([#3046](https://github.com/verdaccio/verdaccio/issues/3046)) ([f40ea10](https://github.com/verdaccio/verdaccio/commit/f40ea10d1f5cc1e5c29a51c7750c27c4ceccd76f)) - -### [4.12.2](https://github.com/verdaccio/verdaccio/compare/v4.12.1...v4.12.2) (2021-06-23) - - -### Bug Fixes - -* update readme and deprecation notice ([d3cd935](https://github.com/verdaccio/verdaccio/commit/d3cd935a4876a665d27545962dcc530762f468b6)) - -### [4.12.1](https://github.com/verdaccio/verdaccio/compare/v4.12.0...v4.12.1) (2021-05-22) - - -### Bug Fixes - -* emit warning for upgrade 5.x and publish on previous ([a760e68](https://github.com/verdaccio/verdaccio/commit/a760e6814d2f1e8e2385f11381ddc7212f6ed380)) -* update docker base 14.17.0 ([6870f99](https://github.com/verdaccio/verdaccio/commit/6870f990c464c9fc219c5550dd77e92651e4a600)) - -## [4.12.0](https://github.com/verdaccio/verdaccio/compare/v4.11.3...v4.12.0) (2021-03-17) - - -### Features - -* handle kill signals nicely ([#2130](https://github.com/verdaccio/verdaccio/issues/2130)) ([7b6fbae](https://github.com/verdaccio/verdaccio/commit/7b6fbae6ae1dad9d18084d951f35687ebead335b)) - -### [4.11.3](https://github.com/verdaccio/verdaccio/compare/v4.11.2...v4.11.3) (2021-03-06) - - -### Bug Fixes - -* update dependencies ([#2115](https://github.com/verdaccio/verdaccio/issues/2115)) ([4206572](https://github.com/verdaccio/verdaccio/commit/420657293b63c5ba4ebe5582396f996ee7de3eec)) - -### [4.11.2](https://github.com/verdaccio/verdaccio/compare/v4.11.1...v4.11.2) (2021-03-04) - - -### Bug Fixes - -* upgrade handlebars from 4.7.6 to 4.7.7 ([#2114](https://github.com/verdaccio/verdaccio/issues/2114)) ([1e6fa60](https://github.com/verdaccio/verdaccio/commit/1e6fa60491f530b5c46bf9892ad7f63c5a7453e9)) - -### [4.11.1](https://github.com/verdaccio/verdaccio/compare/v4.11.0...v4.11.1) (2021-02-25) - - -### Bug Fixes - -* upgrade Node from 14.15 to 14.16 for security fixes ([#2104](https://github.com/verdaccio/verdaccio/issues/2104)) ([156342b](https://github.com/verdaccio/verdaccio/commit/156342b6b92e2b0a5cf6746788e0318c656565c1)) - -## [4.11.0](https://github.com/verdaccio/verdaccio/compare/v4.10.0...v4.11.0) (2021-01-20) - - -### Features - -* enable keep alive ([#2067](https://github.com/verdaccio/verdaccio/issues/2067)) ([4d152ca](https://github.com/verdaccio/verdaccio/commit/4d152ca01bc3af7c345641353a5200e985feeb7f)) -* skip log static content from web ([#2027](https://github.com/verdaccio/verdaccio/issues/2027)) ([39376be](https://github.com/verdaccio/verdaccio/commit/39376be34514f4c7e1d3a0f403a8dad30f7a3f72)), closes [#2026](https://github.com/verdaccio/verdaccio/issues/2026) -* update @verdaccio/ui-theme ([#2026](https://github.com/verdaccio/verdaccio/issues/2026)) ([2ea17ce](https://github.com/verdaccio/verdaccio/commit/2ea17ced2c52782b5dca2444e26d16336f977cf9)) -* update UI theme ([#2065](https://github.com/verdaccio/verdaccio/issues/2065)) ([936aa30](https://github.com/verdaccio/verdaccio/commit/936aa30383d49b41cf5312735bca90ea95cdf5b0)) - - -### Bug Fixes - -* update dependencies ([#2066](https://github.com/verdaccio/verdaccio/issues/2066)) ([f005b37](https://github.com/verdaccio/verdaccio/commit/f005b378169eb43b363ab1e7562af9c948f8b730)) -* update docker base image node 14.15.14 ([#2049](https://github.com/verdaccio/verdaccio/issues/2049)) ([76e035e](https://github.com/verdaccio/verdaccio/commit/76e035e52fc08e9cd4c51160d11dac4c60b54024)) - -## [4.10.0](https://github.com/verdaccio/verdaccio/compare/v4.9.1...v4.10.0) (2020-12-06) - - -### Features - -* enable keep alive on configuration by default ([#2014](https://github.com/verdaccio/verdaccio/issues/2014)) ([9171f25](https://github.com/verdaccio/verdaccio/commit/9171f25b410d45348bd037fbb06e01710541100e)) -* Set bytesin log as optional ([#2013](https://github.com/verdaccio/verdaccio/issues/2013)) ([e2f7bb2](https://github.com/verdaccio/verdaccio/commit/e2f7bb2f2990b91b2c10e5b259125686ec9730e9)) - - -### Bug Fixes - -* doubled request logs in node.js >= 11 ([#2012](https://github.com/verdaccio/verdaccio/issues/2012)) ([1e59b6a](https://github.com/verdaccio/verdaccio/commit/1e59b6aa6fc83cb239a5ea7d2b5389e28a2c1261)) - -### [4.9.1](https://github.com/verdaccio/verdaccio/compare/v4.9.0...v4.9.1) (2020-11-28) - - -### Bug Fixes - -* fix missing readme on npm7 ([#2010](https://github.com/verdaccio/verdaccio/issues/2010)) ([f4a85af](https://github.com/verdaccio/verdaccio/commit/f4a85af20ddd70dc8e028b12e9d5a7d278e45b18)) - -## [4.9.0](https://github.com/verdaccio/verdaccio/compare/v4.8.1...v4.9.0) (2020-11-22) - - -### Features - -* migrate yarn 1 to yarn 2 ([#1962](https://github.com/verdaccio/verdaccio/issues/1962)) ([1ece11c](https://github.com/verdaccio/verdaccio/commit/1ece11cfc0ecf1bdfe9ec545ce73c6a1d41a5fa0)) -* update docker base image to node 14.15.0 ([#1992](https://github.com/verdaccio/verdaccio/issues/1992)) ([f901749](https://github.com/verdaccio/verdaccio/commit/f90174935f77e6f4fe221d0b760e6ae05eb3d9f2)) - - -### Bug Fixes - -* buffer deprecated warnings ([#1993](https://github.com/verdaccio/verdaccio/issues/1993)) ([4feaf24](https://github.com/verdaccio/verdaccio/commit/4feaf241c913ce2054382182f908bb569284e4d6)) -* check author if lastest is not found ([#1994](https://github.com/verdaccio/verdaccio/issues/1994)) ([185babc](https://github.com/verdaccio/verdaccio/commit/185babc53f350949263c79da4733483a4e451fc4)) -* package.json & yarn.lock to reduce vulnerabilities ([#1910](https://github.com/verdaccio/verdaccio/issues/1910)) ([cb5a8a7](https://github.com/verdaccio/verdaccio/commit/cb5a8a7ccd5cf49740bb51648ca36d2c8a142e62)) -* update dependencies ([#1965](https://github.com/verdaccio/verdaccio/issues/1965)) ([1443b73](https://github.com/verdaccio/verdaccio/commit/1443b7343a96ab45df15f9dc45d7e791d9b97fae)) -* update dependencies ([#1991](https://github.com/verdaccio/verdaccio/issues/1991)) ([ef51294](https://github.com/verdaccio/verdaccio/commit/ef51294457fd2b0e346ae5aad9541c230be3756e)) -* update dependencies, docker base and build deps ([#2007](https://github.com/verdaccio/verdaccio/issues/2007)) ([6eef015](https://github.com/verdaccio/verdaccio/commit/6eef0157ba06782e77c5dbb88f90fc07b9607544)) -* **deps:** bump @verdaccio/ui-theme from 1.12.1 to 1.13.1 ([#1961](https://github.com/verdaccio/verdaccio/issues/1961)) ([f7aad33](https://github.com/verdaccio/verdaccio/commit/f7aad33925391c4a47a8560c9ed70217f990ecde)) -* update Dockerfile to Node v12.18.4 ([#1945](https://github.com/verdaccio/verdaccio/issues/1945)) ([b409c01](https://github.com/verdaccio/verdaccio/commit/b409c0111fda547aa6898a2c36f27eaf654cae91)) - -### [4.8.1](https://github.com/verdaccio/verdaccio/compare/v4.8.0...v4.8.1) (2020-08-06) - - -### Bug Fixes - -* package.json & yarn.lock to reduce vulnerabilities ([#1879](https://github.com/verdaccio/verdaccio/issues/1879)) ([7c50d87](https://github.com/verdaccio/verdaccio/commit/7c50d87c52287d29517f3f800f5ce4e5078f94fa)) -* package.json & yarn.lock to reduce vulnerabilities ([#1889](https://github.com/verdaccio/verdaccio/issues/1889)) ([5e94478](https://github.com/verdaccio/verdaccio/commit/5e94478387ca01a660b804dd35e76edbf5ea1ce1)) -* update readme library ([#1892](https://github.com/verdaccio/verdaccio/issues/1892)) ([f75ad87](https://github.com/verdaccio/verdaccio/commit/f75ad876fd6815d848688b7605c2c126e464a929)) -* upgrade docker base image nodejs ([#1895](https://github.com/verdaccio/verdaccio/issues/1895)) ([261eab5](https://github.com/verdaccio/verdaccio/commit/261eab5ca0567ab17fb06aff270214c634fbb74b)) - -## [4.8.0](https://github.com/verdaccio/verdaccio/compare/v4.7.2...v4.8.0) (2020-07-16) - - -### Features - -* **deps:** bump @verdaccio/ui-theme from 1.11.0 to 1.12.0 ([#1872](https://github.com/verdaccio/verdaccio/issues/1872)) ([0348bf6](https://github.com/verdaccio/verdaccio/commit/0348bf6b5da86d80ed1af1572dae734b894156b6)) -* ca certificate is optional for https configuration ([#1853](https://github.com/verdaccio/verdaccio/issues/1853)) ([912482a](https://github.com/verdaccio/verdaccio/commit/912482a5ae7c81aff4dc127cc6d4dc69f4133b70)) - - -### Bug Fixes - -* package.json & yarn.lock to reduce vulnerabilities ([#1876](https://github.com/verdaccio/verdaccio/issues/1876)) ([e374a62](https://github.com/verdaccio/verdaccio/commit/e374a6248be972b1914b08e16cade949ea12b3cb)) -* revert move bodyParse to the upper level ([#1841](https://github.com/verdaccio/verdaccio/issues/1841)) ([#1877](https://github.com/verdaccio/verdaccio/issues/1877)) ([844267c](https://github.com/verdaccio/verdaccio/commit/844267ce257984f07dc552a671623a177febd5b4)) -* update dependencies ([#1878](https://github.com/verdaccio/verdaccio/issues/1878)) ([3c48670](https://github.com/verdaccio/verdaccio/commit/3c4867059a0a929439b8715ca4dd2c38d7e22322)) - -### [4.7.2](https://github.com/verdaccio/verdaccio/compare/v4.7.1...v4.7.2) (2020-06-26) - - -### Bug Fixes - -* package.json & yarn.lock to reduce vulnerabilities ([#1863](https://github.com/verdaccio/verdaccio/issues/1863)) ([b559d75](https://github.com/verdaccio/verdaccio/commit/b559d75f70a4ab961fd92beb6f0cf2493e6b9c7b)) - -### [4.7.1](https://github.com/verdaccio/verdaccio/compare/v4.7.0...v4.7.1) (2020-06-22) - - -### Bug Fixes - -* move search v1 endpoint as experimental ([#1850](https://github.com/verdaccio/verdaccio/issues/1850)) ([0bfdeaa](https://github.com/verdaccio/verdaccio/commit/0bfdeaa2e43c43c93f79b6f443445e8b0bd717f6)) - -## [4.7.0](https://github.com/verdaccio/verdaccio/compare/v4.6.2...v4.7.0) (2020-06-20) - - -### Features - -* npm deprecation support ([#1842](https://github.com/verdaccio/verdaccio/issues/1842)) ([80ade97](https://github.com/verdaccio/verdaccio/commit/80ade9780195d023e61ff5c5e006b6d51122eaad)) -* restore Node 8 support ([#1832](https://github.com/verdaccio/verdaccio/issues/1832)) ([56b677a](https://github.com/verdaccio/verdaccio/commit/56b677a35a4e9d65895ac11ee10cf3ac04e002df)) -* update ui add new languages ([#1849](https://github.com/verdaccio/verdaccio/issues/1849)) ([4d01831](https://github.com/verdaccio/verdaccio/commit/4d0183184299a4d1dda92a248a20e1aad60545e2)) -* update verdaccio plugins and dependencies ([#1838](https://github.com/verdaccio/verdaccio/issues/1838)) ([03c7feb](https://github.com/verdaccio/verdaccio/commit/03c7feb64d4d5790ffa6e1d1828ffb2735311b54)) - - -### Bug Fixes - -* [Snyk] upgrade @verdaccio/streams from 9.4.0 to 9.5.0 ([#1819](https://github.com/verdaccio/verdaccio/issues/1819)) ([1e2159a](https://github.com/verdaccio/verdaccio/commit/1e2159a34516301e0925b6f67c4b6e81316375f1)) -* move bodyParse to the upper level ([#1841](https://github.com/verdaccio/verdaccio/issues/1841)) ([67c31b6](https://github.com/verdaccio/verdaccio/commit/67c31b69cac11436a5dcbc5961748eaab0bae99b)) -* updated nodejs version to fix vulnerability in 12.x https://nodejs.org/en/blog/vulnerability/june-2020-security-releases/ ([#1836](https://github.com/verdaccio/verdaccio/issues/1836)) ([aee69a9](https://github.com/verdaccio/verdaccio/commit/aee69a9453385dc39139f40aa963067e3070fb5c)) -* upgrade mkdirp from 1.0.3 to 1.0.4 ([#1782](https://github.com/verdaccio/verdaccio/issues/1782)) ([50f6c71](https://github.com/verdaccio/verdaccio/commit/50f6c71a375f34ef769a293f862b8603e1a03490)) - -### [4.6.2](https://github.com/verdaccio/verdaccio/compare/v4.6.1...v4.6.2) (2020-05-01) - - -### Bug Fixes - -* avoid access to sidebar without login ([#1794](https://github.com/verdaccio/verdaccio/issues/1794)) ([c2e0e1e](https://github.com/verdaccio/verdaccio/commit/c2e0e1e0bfa1daee45c458215877555244cbb414)) -* update core dependencies ([#1790](https://github.com/verdaccio/verdaccio/issues/1790)) ([f9e7f86](https://github.com/verdaccio/verdaccio/commit/f9e7f8671bec0f29820667cad7ef065a8bfc6a7e)) - -### [4.6.1](https://github.com/verdaccio/verdaccio/compare/v4.6.0...v4.6.1) (2020-04-27) - - -### Bug Fixes - -* improve token validation ([#1784](https://github.com/verdaccio/verdaccio/issues/1784)) ([416d41f](https://github.com/verdaccio/verdaccio/commit/416d41fa08a92422365599c29b78a49b5e34ec3f)) - -## [4.6.0](https://github.com/verdaccio/verdaccio/compare/v4.5.1...v4.6.0) (2020-04-24) - - -### Features - -* add dark mode on and chinese translation for web ([#1765](https://github.com/verdaccio/verdaccio/issues/1765)) ([4a81262](https://github.com/verdaccio/verdaccio/commit/4a812620cf44fd167b97249cb390a34807476c3e)) -* update @verdaccio/ui-theme@1.5.0 ([#1780](https://github.com/verdaccio/verdaccio/issues/1780)) ([656ec55](https://github.com/verdaccio/verdaccio/commit/656ec55897f01bb1588c80be12d31dbfe27ec9ce)) -* update docker node to 12.16.2 ([#1776](https://github.com/verdaccio/verdaccio/issues/1776)) ([61faa33](https://github.com/verdaccio/verdaccio/commit/61faa33de11939c0fc9ff9903b67d466426a65fb)) - - -### Bug Fixes - -* fatal exception and crash when log rotate signal event is called ([#1774](https://github.com/verdaccio/verdaccio/issues/1774)) ([1a9a12e](https://github.com/verdaccio/verdaccio/commit/1a9a12e9183cc2e3829c60841e7116d06b9849c3)), closes [#1709](https://github.com/verdaccio/verdaccio/issues/1709) -* incorrect primary_color crash the ui ([#1771](https://github.com/verdaccio/verdaccio/issues/1771)) ([d689260](https://github.com/verdaccio/verdaccio/commit/d68926050dc7f1f8b6066c3480843082d3a1bd23)) -* upgrade async from 3.1.1 to 3.2.0 ([#1756](https://github.com/verdaccio/verdaccio/issues/1756)) ([3ec8d13](https://github.com/verdaccio/verdaccio/commit/3ec8d13578fee6711b77cbf8034c08f0db682392)) -* upgrade dayjs from 1.8.20 to 1.8.21 ([#1759](https://github.com/verdaccio/verdaccio/issues/1759)) ([ebae410](https://github.com/verdaccio/verdaccio/commit/ebae410c8164ac3e42c73c9d7cec6a8162a74457)) -* upgrade dayjs from 1.8.21 to 1.8.22 ([b2d00e4](https://github.com/verdaccio/verdaccio/commit/b2d00e4330e6dd31251e1e7caf670b5563b4180c)) - -### [4.5.1](https://github.com/verdaccio/verdaccio/compare/v4.5.0...v4.5.1) (2020-03-14) - - -### Bug Fixes - -* update docs to support minimum node v10 ([#1753](https://github.com/verdaccio/verdaccio/issues/1753)) ([17c3324](https://github.com/verdaccio/verdaccio/commit/17c3324e9324ab47afe765f62ecaca2ec3bb5969)) - -## [4.5.0](https://github.com/verdaccio/verdaccio/compare/v4.4.4...v4.5.0) (2020-03-14) - - -### Features - -* i18n on web ([#1750](https://github.com/verdaccio/verdaccio/issues/1750)) ([c493b31](https://github.com/verdaccio/verdaccio/commit/c493b316b1663f189f8249a111b50bbc5facb7a8)) -* add support for new search endpoint([#1732](https://github.com/verdaccio/verdaccio/issues/1732)) ([9ac307a](https://github.com/verdaccio/verdaccio/commit/9ac307adc5cb06be570efaa8c65d9d9895d99491)) - - -### Bug Fixes - -* adding Content-Type to response in GET /-/all ([#1697](https://github.com/verdaccio/verdaccio/issues/1697)) ([#1728](https://github.com/verdaccio/verdaccio/issues/1728)) ([3aaa048](https://github.com/verdaccio/verdaccio/commit/3aaa04829acb49ec40448a42707c98ac07b2f92f)) -* package.json & yarn.lock to reduce vulnerabilities ([#1746](https://github.com/verdaccio/verdaccio/issues/1746)) ([3c49777](https://github.com/verdaccio/verdaccio/commit/3c497778683df1fd021b202e4c3f6b9962c4a7f0)) -* update @verdaccio/readme@9.3.2 ([#1745](https://github.com/verdaccio/verdaccio/issues/1745)) ([9213526](https://github.com/verdaccio/verdaccio/commit/92135265cd5945fde3129d1542d8673a5beb0706)) -* update acorn@7.1.1 ([#1739](https://github.com/verdaccio/verdaccio/issues/1739)) ([1968fa8](https://github.com/verdaccio/verdaccio/commit/1968fa82a2ced8aaffad082929a64c4739d8675e)) -* update dependencies security warnings ([#1748](https://github.com/verdaccio/verdaccio/issues/1748)) ([1e664bd](https://github.com/verdaccio/verdaccio/commit/1e664bdfa54b27eb2566399aebb204c0711a7c67)) -* upgrade dayjs from 1.8.19 to 1.8.20 ([#1721](https://github.com/verdaccio/verdaccio/issues/1721)) ([6849ef9](https://github.com/verdaccio/verdaccio/commit/6849ef969718ec92c88f5bc8f565e70189012ebc)) -* upgrade handlebars from 4.7.2 to 4.7.3 ([#1726](https://github.com/verdaccio/verdaccio/issues/1726)) ([11fed6d](https://github.com/verdaccio/verdaccio/commit/11fed6d3c3c1eb5248f006c97a15f06e254dcd50)) -* upgrade mkdirp from 1.0.0 to 1.0.3 ([#1747](https://github.com/verdaccio/verdaccio/issues/1747)) ([981efa5](https://github.com/verdaccio/verdaccio/commit/981efa557143c68f159ebbbeaa1743b693153771)) -* upgrade semver from 7.1.2 to 7.1.3 ([#1735](https://github.com/verdaccio/verdaccio/issues/1735)) ([64e2543](https://github.com/verdaccio/verdaccio/commit/64e2543d599bbdc35e813148724dbe8ab2f914c4)) - -### [4.4.4](https://github.com/verdaccio/verdaccio/compare/v4.4.3...v4.4.4) (2020-02-26) - - -### Bug Fixes - -* tarball urls for web/package (fix [#1714](https://github.com/verdaccio/verdaccio/issues/1714)) ([#1716](https://github.com/verdaccio/verdaccio/issues/1716)) ([70a93da](https://github.com/verdaccio/verdaccio/commit/70a93da1fc8f16110874409e5fe20fd00adcf68d)) -* upgrade @verdaccio/local-storage from 9.0.0 to 9.3.0 ([#1717](https://github.com/verdaccio/verdaccio/issues/1717)) ([1f3f8cd](https://github.com/verdaccio/verdaccio/commit/1f3f8cd72c28d869f47f16213940017a5a06d2de)) -* upgrade semver from 7.1.1 to 7.1.2 ([#1719](https://github.com/verdaccio/verdaccio/issues/1719)) ([c3e931e](https://github.com/verdaccio/verdaccio/commit/c3e931efa10f7be581ca2450ebb03f302085fe5b)) - -### [4.4.3](https://github.com/verdaccio/verdaccio/compare/v4.4.2...v4.4.3) (2020-02-19) - - -### Bug Fixes - -* update @verdaccio/ui-theme@0.3.13 ([#1710](https://github.com/verdaccio/verdaccio/issues/1710)) ([d94f838](https://github.com/verdaccio/verdaccio/commit/d94f838cd9731b8d97f637bd4aceb6abe159d5fa)) -* upgrade async from 3.1.0 to 3.1.1 ([#1708](https://github.com/verdaccio/verdaccio/issues/1708)) ([a32e431](https://github.com/verdaccio/verdaccio/commit/a32e4318136f3704f1ec572d5343d60b9df14063)) -* upgrade dayjs from 1.8.17 to 1.8.19 ([#1700](https://github.com/verdaccio/verdaccio/issues/1700)) ([5320b13](https://github.com/verdaccio/verdaccio/commit/5320b13473eef583877e59b63d925b513f31a3a5)) -* upgrade handlebars from 4.5.3 to 4.7.2 ([#1699](https://github.com/verdaccio/verdaccio/issues/1699)) ([8c2e58b](https://github.com/verdaccio/verdaccio/commit/8c2e58b6af3c04716431e6d98c6442d39d3373e3)) -* upgrade lockfile-lint from 2.0.1 to 2.2.0 ([#1698](https://github.com/verdaccio/verdaccio/issues/1698)) ([17ddf3e](https://github.com/verdaccio/verdaccio/commit/17ddf3e6266f4821e2b9c379766d56b67f10e6be)) -* use https to resolve mixed content errors ([#1674](https://github.com/verdaccio/verdaccio/issues/1674)) ([fd6c649](https://github.com/verdaccio/verdaccio/commit/fd6c6497fa66a523fac744f214fcea86b653171c)) - -### [4.4.2](https://github.com/verdaccio/verdaccio/compare/v4.4.1...v4.4.2) (2020-01-11) - - -### Bug Fixes - -* use hasProxyTo to find correct uplink for tarballs ([#1644](https://github.com/verdaccio/verdaccio/issues/1644)) ([19d9fc2](https://github.com/verdaccio/verdaccio/commit/19d9fc2fa5b228cda379a870642d08d247d8c515)), closes [#1642](https://github.com/verdaccio/verdaccio/issues/1642) [#1642](https://github.com/verdaccio/verdaccio/issues/1642) -* **deps:** bump @verdaccio/local-storage from 8.5.0 to 9.0.0 ([7b67bea](https://github.com/verdaccio/verdaccio/commit/7b67bea4b8ec5de29ffc04b1f99c9d041c14ac57)), closes [#1663](https://github.com/verdaccio/verdaccio/issues/1663) [#1639](https://github.com/verdaccio/verdaccio/issues/1639) -* **deps:** bump @verdaccio/ui-theme from 0.3.10 to 0.3.11 ([#1657](https://github.com/verdaccio/verdaccio/issues/1657)) ([9a2fd81](https://github.com/verdaccio/verdaccio/commit/9a2fd8162640a7ef9901a57ccea50649b6ed29bc)) -* **deps:** bump @verdaccio/ui-theme from 0.3.11 to 0.3.12 ([#1657](https://github.com/verdaccio/verdaccio/issues/1657)) ([#1665](https://github.com/verdaccio/verdaccio/issues/1665)) ([aac6709](https://github.com/verdaccio/verdaccio/commit/aac6709ac21cf4b7fd6073ee1c499080d881a910)) -* updated combine url fix method ([#1647](https://github.com/verdaccio/verdaccio/issues/1647)) ([4f43347](https://github.com/verdaccio/verdaccio/commit/4f43347b509446c93f6e6255a863775d35ed7a13)) - -### [4.4.1](https://github.com/verdaccio/verdaccio/compare/v4.4.0...v4.4.1) (2020-01-03) - - -### Bug Fixes - -* prevent issue with leading hyphen in package name - fixes [#1429](https://github.com/verdaccio/verdaccio/issues/1429) ([#1636](https://github.com/verdaccio/verdaccio/issues/1636)) ([f89bf27](https://github.com/verdaccio/verdaccio/commit/f89bf27f5a8704bbaa48024ad7b5a4647a2d5813)) -* warning due ui dependecy ([#1638](https://github.com/verdaccio/verdaccio/issues/1638)) ([fbc87fc](https://github.com/verdaccio/verdaccio/commit/fbc87fc26e7d2bcbe3410500eb08f6cee4d74120)) - -## [4.4.0](https://github.com/verdaccio/verdaccio/compare/v4.3.5...v4.4.0) (2019-12-15) - - -### Bug Fixes - -* search api will not set magic date header when return array ([#1598](https://github.com/verdaccio/verdaccio/issues/1598)) ([158de3f](https://github.com/verdaccio/verdaccio/commit/158de3f)) - - -### Features - -* bumb up docker to node 12 ([#1622](https://github.com/verdaccio/verdaccio/issues/1622)) ([287ed3f](https://github.com/verdaccio/verdaccio/commit/287ed3f)) -* update @verdaccio/ui-theme@0.3.9 ([#1623](https://github.com/verdaccio/verdaccio/issues/1623)) ([1b4a5dc](https://github.com/verdaccio/verdaccio/commit/1b4a5dc)) - -### [4.3.5](https://github.com/verdaccio/verdaccio/compare/v4.3.4...v4.3.5) (2019-11-21) - - -### Bug Fixes - -* changed the exit code for info flag ([#1537](https://github.com/verdaccio/verdaccio/issues/1537)) ([cbea2ed](https://github.com/verdaccio/verdaccio/commit/cbea2ed)) -* package.json to reduce vulnerabilities ([#1552](https://github.com/verdaccio/verdaccio/issues/1552)) ([cd8228b](https://github.com/verdaccio/verdaccio/commit/cd8228b)) -* package.json to reduce vulnerabilities ([#1577](https://github.com/verdaccio/verdaccio/issues/1577)) ([e459881](https://github.com/verdaccio/verdaccio/commit/e459881)) -* package.json to reduce vulnerabilities ([#1583](https://github.com/verdaccio/verdaccio/issues/1583)) ([2f3ba93](https://github.com/verdaccio/verdaccio/commit/2f3ba93)) - -### [4.3.4](https://github.com/verdaccio/verdaccio/compare/v4.3.3...v4.3.4) (2019-10-23) - - -### Bug Fixes - -* minor grammatical tweak ([#1513](https://github.com/verdaccio/verdaccio/issues/1513)) ([35f816b](https://github.com/verdaccio/verdaccio/commit/35f816b)) -* minor typos, formatting, and docs ([#1512](https://github.com/verdaccio/verdaccio/issues/1512)) ([549f474](https://github.com/verdaccio/verdaccio/commit/549f474)) -* security vulnerability at readme in dompurify dep ([#1532](https://github.com/verdaccio/verdaccio/issues/1532)) ([2ac7770](https://github.com/verdaccio/verdaccio/commit/2ac7770)) - -### [4.3.3](https://github.com/verdaccio/verdaccio/compare/v4.3.2...v4.3.3) (2019-10-03) - - -### Bug Fixes - -* allow add to request agentOptions ([#1506](https://github.com/verdaccio/verdaccio/issues/1506)) ([65d6a93](https://github.com/verdaccio/verdaccio/commit/65d6a93)) - -### [4.3.2](https://github.com/verdaccio/verdaccio/compare/v4.3.1...v4.3.2) (2019-10-02) - - -### Bug Fixes - -* comment out experiments from configuration files ([#1505](https://github.com/verdaccio/verdaccio/issues/1505)) ([3438b75](https://github.com/verdaccio/verdaccio/commit/3438b75)) -* fixing the lint issues ([#1503](https://github.com/verdaccio/verdaccio/issues/1503)) ([02aee3a](https://github.com/verdaccio/verdaccio/commit/02aee3a)) -* fixing typos in comments ([#1504](https://github.com/verdaccio/verdaccio/issues/1504)) ([72314e4](https://github.com/verdaccio/verdaccio/commit/72314e4)) - -### [4.3.1](https://github.com/verdaccio/verdaccio/compare/v4.3.0...v4.3.1) (2019-10-01) - - -### Bug Fixes - -* remove jwt from default config ([#1499](https://github.com/verdaccio/verdaccio/issues/1499)) ([e9616f9](https://github.com/verdaccio/verdaccio/commit/e9616f9)) -* remove jwt from docker config ([#1500](https://github.com/verdaccio/verdaccio/issues/1500)) ([bc6b084](https://github.com/verdaccio/verdaccio/commit/bc6b084)) - -## [4.3.0](https://github.com/verdaccio/verdaccio/compare/v4.2.2...v4.3.0) (2019-09-30) - - -### Bug Fixes - -* package.json to reduce vulnerabilities ([#1474](https://github.com/verdaccio/verdaccio/issues/1474)) ([b1cd070](https://github.com/verdaccio/verdaccio/commit/b1cd070)) - - -### Features - -* browse web package version ([#1457](https://github.com/verdaccio/verdaccio/issues/1457)) ([d5303f4](https://github.com/verdaccio/verdaccio/commit/d5303f4)) -* ensure every log file has at least one record ([#1414](https://github.com/verdaccio/verdaccio/issues/1414)) ([962d5d5](https://github.com/verdaccio/verdaccio/commit/962d5d5)) -* npm token command support ([#1427](https://github.com/verdaccio/verdaccio/issues/1427)) ([dbf2017](https://github.com/verdaccio/verdaccio/commit/dbf2017)) -* **docker:** Node.js update to 10.16.3 ([#1473](https://github.com/verdaccio/verdaccio/issues/1473)) ([e081a58](https://github.com/verdaccio/verdaccio/commit/e081a58)) - -### [4.2.2](https://github.com/verdaccio/verdaccio/compare/v4.2.1...v4.2.2) (2019-08-25) - - -### Bug Fixes - -* mkdir failed and ec2 infinitely re-launch ([342d284](https://github.com/verdaccio/verdaccio/commit/342d284)) -* update @verdaccio/ui-theme@0.2.3 ([#1451](https://github.com/verdaccio/verdaccio/issues/1451)) -* use test + mkdir for strict dir check ([9006146](https://github.com/verdaccio/verdaccio/commit/9006146)) - -### [4.2.1](https://github.com/verdaccio/verdaccio/compare/v4.2.0...v4.2.1) (2019-08-10) - - -### Bug Fixes - -* fixed user creation endpoint to properly import groups ([50e115f](https://github.com/verdaccio/verdaccio/commit/50e115f)) -* remove stub type definition for handlebars ([de8dc43](https://github.com/verdaccio/verdaccio/commit/de8dc43)) -* unpublish and add or remove star collision ([#1434](https://github.com/verdaccio/verdaccio/issues/1434)) ([c264f94](https://github.com/verdaccio/verdaccio/commit/c264f94)) -* **deps:** add missing prod dependency ([849f5bc](https://github.com/verdaccio/verdaccio/commit/849f5bc)) - - - -## [4.2.0](https://github.com/verdaccio/verdaccio/compare/v4.1.0...v4.2.0) (2019-07-29) - - -### Bug Fixes - -* **security:** add secrets baseline ([2b218ce](https://github.com/verdaccio/verdaccio/commit/2b218ce)) -* allows pkg names that start with dash ([e319435](https://github.com/verdaccio/verdaccio/commit/e319435)), closes [/github.com/rlidwka/sinopia/commit/9f662a69e19a15dd90f568fc3a3ebf65b33cbd80#diff-50e3aa130a4f97a42ee2cf111c7b1d9](https://github.com/verdaccio/verdaccio/issues/diff-50e3aa130a4f97a42ee2cf111c7b1d9) -* upgrade to 1.0.2 which solves the docker issue ([aa8f1d3](https://github.com/verdaccio/verdaccio/commit/aa8f1d3)) - - -### Build System - -* **deps:** bump lodash.template from 4.4.0 to 4.5.0 ([#1384](https://github.com/verdaccio/verdaccio/issues/1384)) ([b453681](https://github.com/verdaccio/verdaccio/commit/b453681)) -* fix semver missing type on build with docker ([12b60f6](https://github.com/verdaccio/verdaccio/commit/12b60f6)) -* update issue templates for use info new flag ([#1377](https://github.com/verdaccio/verdaccio/issues/1377)) ([495bb0a](https://github.com/verdaccio/verdaccio/commit/495bb0a)) - - -### Features - -* add new prop to audit middleware ([d93e76b](https://github.com/verdaccio/verdaccio/commit/d93e76b)) -* convert project to typescript ([#1374](https://github.com/verdaccio/verdaccio/issues/1374)) ([66f4197](https://github.com/verdaccio/verdaccio/commit/66f4197)) -* docker image bump to node.js 10.16 ([802c796](https://github.com/verdaccio/verdaccio/commit/802c796)) -* plugins can throw http status codes ([3c53997](https://github.com/verdaccio/verdaccio/commit/3c53997)) -* prevent secrets from leaking to source control ([9ef6808](https://github.com/verdaccio/verdaccio/commit/9ef6808)) -* update to @verdaccio/ui-theme@0.2.2 ([9dd1c8f](https://github.com/verdaccio/verdaccio/commit/9dd1c8f)) - - -### Tests - -* add unit test for parser logger strings ([3beb57f](https://github.com/verdaccio/verdaccio/commit/3beb57f)) - - - -## [4.1.0](https://github.com/verdaccio/verdaccio/compare/v4.0.4...v4.1.0) (2019-07-08) - - -### Features - -* parse YAML/JSON/JS config file ([#1258](https://github.com/verdaccio/verdaccio/issues/1258)) ([95d134b](https://github.com/verdaccio/verdaccio/commit/95d134b)) -* plugin support to filter packages ([b9ffac5](https://github.com/verdaccio/verdaccio/commit/b9ffac5)), closes [#818](https://github.com/verdaccio/verdaccio/issues/818) -* **chore:** Included provision to show up local environment information ([#1365](https://github.com/verdaccio/verdaccio/issues/1365)) ([eb6bf51](https://github.com/verdaccio/verdaccio/commit/eb6bf51)), closes [#1364](https://github.com/verdaccio/verdaccio/issues/1364) - - -### Tests - -* increase usage of constants ([2f3ec2c](https://github.com/verdaccio/verdaccio/commit/2f3ec2c)) -* fix broken test for validate parameters ([4bf6b3b](https://github.com/verdaccio/verdaccio/commit/4bf6b3b)) -* relocate api spec test ([8786a37](https://github.com/verdaccio/verdaccio/commit/8786a37)) -* relocate helpers ([d052bce](https://github.com/verdaccio/verdaccio/commit/d052bce)) -* relocate notification test ([596c727](https://github.com/verdaccio/verdaccio/commit/596c727)) -* relocate plugin storage ([e7400ce](https://github.com/verdaccio/verdaccio/commit/e7400ce)) -* relocate spec test ([b4c42c1](https://github.com/verdaccio/verdaccio/commit/b4c42c1)) -* relocate test ([3929633](https://github.com/verdaccio/verdaccio/commit/3929633)) -* relocate unit test ([ca2e23c](https://github.com/verdaccio/verdaccio/commit/ca2e23c)) -* relocate unit test cli, proxy, utils ([b1eb7c6](https://github.com/verdaccio/verdaccio/commit/b1eb7c6)) - - - -## [4.0.4](https://github.com/verdaccio/verdaccio/compare/v4.0.3...v4.0.4) (2019-06-20) - - -### Bug Fixes - -* correctly check the keepAliveTimeout value, fixes [#1352](https://github.com/verdaccio/verdaccio/issues/1352) ([#1353](https://github.com/verdaccio/verdaccio/issues/1353)) ([a92bd5f](https://github.com/verdaccio/verdaccio/commit/a92bd5f)) - - - -## [4.0.3](https://github.com/verdaccio/verdaccio/compare/v4.0.2...v4.0.3) (2019-06-14) - - -### Bug Fixes - -* **api:** return 503 to npm/yarn on uplink connection timeout ([#1331](https://github.com/verdaccio/verdaccio/issues/1331)) ([eb7a8e3](https://github.com/verdaccio/verdaccio/commit/eb7a8e3)), closes [#1328](https://github.com/verdaccio/verdaccio/issues/1328) [#720](https://github.com/verdaccio/verdaccio/issues/720) [#1328](https://github.com/verdaccio/verdaccio/issues/1328) [#720](https://github.com/verdaccio/verdaccio/issues/720) - - - -## [4.0.2](https://github.com/verdaccio/verdaccio/compare/v4.0.1...v4.0.2) (2019-06-13) - - -### Bug Fixes - -* correctly check if the proxy setting evaluates to false ([#1336](https://github.com/verdaccio/verdaccio/issues/1336)) ([df834f4](https://github.com/verdaccio/verdaccio/commit/df834f4)) -* update dependencies ([e581634](https://github.com/verdaccio/verdaccio/commit/e581634)), closes [#1339](https://github.com/verdaccio/verdaccio/issues/1339) -* update security policy details ([#1342](https://github.com/verdaccio/verdaccio/issues/1342)) ([ddcd89d](https://github.com/verdaccio/verdaccio/commit/ddcd89d)) -* **api:** force authenticate on login ([#1347](https://github.com/verdaccio/verdaccio/issues/1347)) ([85c1bd1](https://github.com/verdaccio/verdaccio/commit/85c1bd1)) -* **ui:** failed to load all packages after login ([192fb77](https://github.com/verdaccio/verdaccio/commit/192fb77)) - - - -## [4.0.1](https://github.com/verdaccio/verdaccio/compare/v4.0.0...v4.0.1) (2019-05-28) - - -### Bug Fixes - -* **web:** fix sidebar tarball protocol ([#1326](https://github.com/verdaccio/verdaccio/issues/1326)) ([de04463](https://github.com/verdaccio/verdaccio/commit/de04463)), closes [#1320](https://github.com/verdaccio/verdaccio/issues/1320) - - - -# [4.0.0](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.8...v4.0.0) (2019-05-26) - - -### Bug Fixes - -* add missing pkg version and name on start up ([8cf3966](https://github.com/verdaccio/verdaccio/commit/8cf3966)) -* update @verdaccio/ui-theme:0.1.7 ([8e48eea](https://github.com/verdaccio/verdaccio/commit/8e48eea)) -* warning text is hard to read when running under root ([3ac038f](https://github.com/verdaccio/verdaccio/commit/3ac038f)) - - -### Features - -* create security policy ([#1322](https://github.com/verdaccio/verdaccio/issues/1322)) ([0e9f23d](https://github.com/verdaccio/verdaccio/commit/0e9f23d)) -* prepare release v4 ([#1307](https://github.com/verdaccio/verdaccio/issues/1307)) ([b9506d6](https://github.com/verdaccio/verdaccio/commit/b9506d6)) -* update readme v4 ([#1312](https://github.com/verdaccio/verdaccio/issues/1312)) ([7686417](https://github.com/verdaccio/verdaccio/commit/7686417)) - - - -# [4.0.0-beta.10](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.9...v4.0.0-beta.10) (2019-05-20) - - -### Bug Fixes - -* add missing pkg version and name on start up ([8cf3966](https://github.com/verdaccio/verdaccio/commit/8cf3966)) - - - -# [4.0.0-beta.9](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.8...v4.0.0-beta.9) (2019-05-20) - - -### Bug Fixes - -* update @verdaccio/ui-theme:0.1.7 ([8e48eea](https://github.com/verdaccio/verdaccio/commit/8e48eea)) - - -### Features - -* update readme v4 ([#1312](https://github.com/verdaccio/verdaccio/issues/1312)) ([7686417](https://github.com/verdaccio/verdaccio/commit/7686417)) - - - -# [4.0.0-beta.8](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.7...v4.0.0-beta.8) (2019-05-07) - - -### Bug Fixes - -* update lock file ([3c69132](https://github.com/verdaccio/verdaccio/commit/3c69132)) - - - -# [4.0.0-beta.7](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.6...v4.0.0-beta.7) (2019-05-07) - - - -# [4.0.0-beta.6](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.5...v4.0.0-beta.6) (2019-05-07) - - -### Bug Fixes - -* routing is aware of reverse proxy directory [#1297](https://github.com/verdaccio/verdaccio/issues/1297) ([01f8da6](https://github.com/verdaccio/verdaccio/commit/01f8da6)) - - - -# [4.0.0-beta.5](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.4...v4.0.0-beta.5) (2019-04-30) - - -### Bug Fixes - -* remove unused dependencies [#1292](https://github.com/verdaccio/verdaccio/issues/1292) ([f48b23f](https://github.com/verdaccio/verdaccio/commit/f48b23f)) - - -### Features - -* add some security headers for web UI ([#1295](https://github.com/verdaccio/verdaccio/issues/1295)) [@juanpicado](https://github.com/juanpicado) ([615db0a](https://github.com/verdaccio/verdaccio/commit/615db0a)) - - - -# [4.0.0-beta.4](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.3...v4.0.0-beta.4) (2019-04-29) - - -### Features - -* replace chalk with kleur ([#1289](https://github.com/verdaccio/verdaccio/issues/1289)) @DanielRuf ([ff71640](https://github.com/verdaccio/verdaccio/commit/ff71640)) - - - -# [4.0.0-beta.3](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.2...v4.0.0-beta.3) (2019-04-28) - - -### Bug Fixes - -* logo field in configuration cannot use the local file ([56c70d4](https://github.com/verdaccio/verdaccio/commit/56c70d4)) -* **ui:** version rendering issue ([40679aa](https://github.com/verdaccio/verdaccio/commit/40679aa)) - - - -# [4.0.0-beta.2](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.1...v4.0.0-beta.2) (2019-04-26) - - -### Features - -* accept web.primary_color as config option and inject into webui ([#1282](https://github.com/verdaccio/verdaccio/issues/1282)) ([9f8a054](https://github.com/verdaccio/verdaccio/commit/9f8a054)) - - - -# [4.0.0-beta.1](https://github.com/verdaccio/verdaccio/compare/v4.0.0-beta.0...v4.0.0-beta.1) (2019-04-16) - - -### Bug Fixes - -* all static files are captured by the router ([86a6e5e](https://github.com/verdaccio/verdaccio/commit/86a6e5e)) - - - -# [4.0.0-beta.0](https://github.com/verdaccio/verdaccio/compare/v4.0.0-alpha.7...v4.0.0-beta.0) (2019-04-15) - - -### Bug Fixes - -* package.json to reduce vulnerabilities ([#1276](https://github.com/verdaccio/verdaccio/issues/1276)) ([fbe9409](https://github.com/verdaccio/verdaccio/commit/fbe9409)) -* update @verdaccio/ui-theme@0.0.13 ([8760e18](https://github.com/verdaccio/verdaccio/commit/8760e18)) -* update docker node to latest lts version ([a5be22b](https://github.com/verdaccio/verdaccio/commit/a5be22b)) - - - -# [4.0.0-alpha.7](https://github.com/verdaccio/verdaccio/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2019-04-06) - - -### Bug Fixes - -* package.json to reduce vulnerabilities ([d99053e](https://github.com/verdaccio/verdaccio/commit/d99053e)) - - -### Features - -* theme as plugin ([#1252](https://github.com/verdaccio/verdaccio/issues/1252)) ([c3c6202](https://github.com/verdaccio/verdaccio/commit/c3c6202)) - - - - -# [4.0.0-alpha.6](https://github.com/verdaccio/verdaccio/compare/v4.0.0-alpha.5...v4.0.0-alpha.6) (2019-03-30) - - -### Bug Fixes - -* add new enpoind that allow download tarballs according the standard ([87203f2](https://github.com/verdaccio/verdaccio/commit/87203f2)) -* add not found if package is missing ([4da21c1](https://github.com/verdaccio/verdaccio/commit/4da21c1)) -* husky commitlint not work, replace invalid test ([84be869](https://github.com/verdaccio/verdaccio/commit/84be869)) -* potential issue on sign new jwt tokens ([265849e](https://github.com/verdaccio/verdaccio/commit/265849e)), closes [/github.com/auth0/node-jsonwebtoken/issues/326#issuecomment-288124020](https://github.com//github.com/auth0/node-jsonwebtoken/issues/326/issues/issuecomment-288124020) - - -### Features - -* add star and unstar api for 4.x ([1ab7c50](https://github.com/verdaccio/verdaccio/commit/1ab7c50)) -* add stars api ([75c0e1e](https://github.com/verdaccio/verdaccio/commit/75c0e1e)) -* engines and npm upgraded to v8 and v5 ([89b0efe](https://github.com/verdaccio/verdaccio/commit/89b0efe)) - - - - -# [4.0.0-alpha.5](https://github.com/verdaccio/verdaccio/compare/v3.11.6...v4.0.0-alpha.5) (2019-03-04) - - -### Bug Fixes - -* [#1191](https://github.com/verdaccio/verdaccio/issues/1191) overrides existing package to 0 bytes file ([783fbce](https://github.com/verdaccio/verdaccio/commit/783fbce)) -* applied jsx-max-depth ([d940da4](https://github.com/verdaccio/verdaccio/commit/d940da4)) -* applied prefer-const ([4962e36](https://github.com/verdaccio/verdaccio/commit/4962e36)) -* applied valid-describe ([2b48958](https://github.com/verdaccio/verdaccio/commit/2b48958)) -* applied valid-describe ([3bda0cf](https://github.com/verdaccio/verdaccio/commit/3bda0cf)) -* applied valid-expect-in-promise ([c7034e7](https://github.com/verdaccio/verdaccio/commit/c7034e7)) -* broken home page ([4f41fc9](https://github.com/verdaccio/verdaccio/commit/4f41fc9)) -* click on logo break ui ([#1071](https://github.com/verdaccio/verdaccio/issues/1071)) ([5b34dc8](https://github.com/verdaccio/verdaccio/commit/5b34dc8)) -* fixed container size ([039a94d](https://github.com/verdaccio/verdaccio/commit/039a94d)) -* issue on refactor router ([19b0f47](https://github.com/verdaccio/verdaccio/commit/19b0f47)) -* logo on header ([158666f](https://github.com/verdaccio/verdaccio/commit/158666f)) -* remove online fonts ([29c6e56](https://github.com/verdaccio/verdaccio/commit/29c6e56)) -* remove unused dependency ([3ed7a86](https://github.com/verdaccio/verdaccio/commit/3ed7a86)) -* update markup@6.0.1 ([009bb98](https://github.com/verdaccio/verdaccio/commit/009bb98)) -* v4 compatible helpers ([7279662](https://github.com/verdaccio/verdaccio/commit/7279662)) - - -### Features - -* ability to restrict unpublish action to certain users [#492](https://github.com/verdaccio/verdaccio/issues/492) ([ef50325](https://github.com/verdaccio/verdaccio/commit/ef50325)) -* add dependencies navigation ([adfcbc2](https://github.com/verdaccio/verdaccio/commit/adfcbc2)) -* add dist-tags on ui ([4f4720d](https://github.com/verdaccio/verdaccio/commit/4f4720d)) -* add support for profile cli command [#392](https://github.com/verdaccio/verdaccio/issues/392) (change password) ([#1034](https://github.com/verdaccio/verdaccio/issues/1034)) ([f1416ed](https://github.com/verdaccio/verdaccio/commit/f1416ed)) -* added uplinks component ([6c32769](https://github.com/verdaccio/verdaccio/commit/6c32769)) -* added versions. wip ([5573ff5](https://github.com/verdaccio/verdaccio/commit/5573ff5)) -* allow apiJWTmiddleware to be managed by Auth plugin ([049917a](https://github.com/verdaccio/verdaccio/commit/049917a)) -* allow disable gravatar [#1172](https://github.com/verdaccio/verdaccio/issues/1172) ([c338f46](https://github.com/verdaccio/verdaccio/commit/c338f46)) -* allow order packages via on web [#1163](https://github.com/verdaccio/verdaccio/issues/1163) ([49c6f03](https://github.com/verdaccio/verdaccio/commit/49c6f03)) -* disable node9 on circleci ([9e4e8be](https://github.com/verdaccio/verdaccio/commit/9e4e8be)) -* endpoints change password on ui ([#1068](https://github.com/verdaccio/verdaccio/issues/1068)) ([712db31](https://github.com/verdaccio/verdaccio/commit/712db31)) -* migrate react router from hash to history api [#1013](https://github.com/verdaccio/verdaccio/issues/1013) ([1a456fb](https://github.com/verdaccio/verdaccio/commit/1a456fb)) -* not found page ([#1208](https://github.com/verdaccio/verdaccio/issues/1208)) ([752b870](https://github.com/verdaccio/verdaccio/commit/752b870)) -* package version gets sent to plugins ([3943863](https://github.com/verdaccio/verdaccio/commit/3943863)) -* register info selector ([6d96007](https://github.com/verdaccio/verdaccio/commit/6d96007)) -* stop hit proxies on search web UI ([#1126](https://github.com/verdaccio/verdaccio/issues/1126)) ([2362310](https://github.com/verdaccio/verdaccio/commit/2362310)) -* update verdaccio author ([9efd1e2](https://github.com/verdaccio/verdaccio/commit/9efd1e2)) -* use verdaccio babel preset ([d37fe5c](https://github.com/verdaccio/verdaccio/commit/d37fe5c)) -* use verdaccio babel preset ([c3af3cb](https://github.com/verdaccio/verdaccio/commit/c3af3cb)) - - - - -# [4.0.0-alpha.1](https://github.com/verdaccio/verdaccio/compare/v4.0.0-alpha.0...v4.0.0-alpha.1) (2018-09-27) - - - - -# [4.0.0-alpha.0](https://github.com/verdaccio/verdaccio/compare/v3.8.2...v4.0.0-alpha.0) (2018-09-27) - - -### Bug Fixes - -* fix docker python issue [#883](https://github.com/verdaccio/verdaccio/issues/883) ([611aeb4](https://github.com/verdaccio/verdaccio/commit/611aeb4)) -* load package list undefined ([#993](https://github.com/verdaccio/verdaccio/issues/993)) ([4431c47](https://github.com/verdaccio/verdaccio/commit/4431c47)) -* Make systemd unit more production-like ([#929](https://github.com/verdaccio/verdaccio/issues/929)) ([ffc9410](https://github.com/verdaccio/verdaccio/commit/ffc9410)) - - -### Features - -* add support for jwt on api ([#896](https://github.com/verdaccio/verdaccio/issues/896)) ([a68d247](https://github.com/verdaccio/verdaccio/commit/a68d247)), closes [#168](https://github.com/verdaccio/verdaccio/issues/168) -* add support for multiple protocol on protocol header ([#1014](https://github.com/verdaccio/verdaccio/issues/1014)) ([40e2b10](https://github.com/verdaccio/verdaccio/commit/40e2b10)) -* added prettier ([#921](https://github.com/verdaccio/verdaccio/issues/921)) ([43bd622](https://github.com/verdaccio/verdaccio/commit/43bd622)) -* check for minimum node.js version on start ([#968](https://github.com/verdaccio/verdaccio/issues/968)) ([ba9dc35](https://github.com/verdaccio/verdaccio/commit/ba9dc35)) -* rename database file name ([#954](https://github.com/verdaccio/verdaccio/issues/954)) ([dd72120](https://github.com/verdaccio/verdaccio/commit/dd72120)) -* replaced element-react by Material-UI ([#950](https://github.com/verdaccio/verdaccio/issues/950)) ([#985](https://github.com/verdaccio/verdaccio/issues/985)) ([3639557](https://github.com/verdaccio/verdaccio/commit/3639557)) -* replaced lunr by lunr-mutable ([#915](https://github.com/verdaccio/verdaccio/issues/915)) ([1602840](https://github.com/verdaccio/verdaccio/commit/1602840)) -* verdaccio update notification on CLI ([#988](https://github.com/verdaccio/verdaccio/issues/988)) ([#998](https://github.com/verdaccio/verdaccio/issues/998)) ([bc04703](https://github.com/verdaccio/verdaccio/commit/bc04703)) - - - - -# [4.0.0-alpha.4](https://github.com/verdaccio/verdaccio/compare/v3.10.1...v4.0.0-alpha.4) (2019-01-09) - - -### Bug Fixes - -* applied jsx-max-depth ([d940da4](https://github.com/verdaccio/verdaccio/commit/d940da4)) -* applied prefer-const ([4962e36](https://github.com/verdaccio/verdaccio/commit/4962e36)) -* applied valid-describe ([3bda0cf](https://github.com/verdaccio/verdaccio/commit/3bda0cf)) -* applied valid-describe ([2b48958](https://github.com/verdaccio/verdaccio/commit/2b48958)) -* applied valid-expect-in-promise ([c7034e7](https://github.com/verdaccio/verdaccio/commit/c7034e7)) -* broken home page ([4f41fc9](https://github.com/verdaccio/verdaccio/commit/4f41fc9)) -* click on logo break ui ([#1071](https://github.com/verdaccio/verdaccio/issues/1071)) ([5b34dc8](https://github.com/verdaccio/verdaccio/commit/5b34dc8)) -* issue on refactor router ([19b0f47](https://github.com/verdaccio/verdaccio/commit/19b0f47)) - - -### Features - -* add support for profile cli command [#392](https://github.com/verdaccio/verdaccio/issues/392) (change password) ([#1034](https://github.com/verdaccio/verdaccio/issues/1034)) ([f1416ed](https://github.com/verdaccio/verdaccio/commit/f1416ed)) -* endpoints change password on ui ([#1068](https://github.com/verdaccio/verdaccio/issues/1068)) ([712db31](https://github.com/verdaccio/verdaccio/commit/712db31)) -* stop hit proxies on search web UI ([#1126](https://github.com/verdaccio/verdaccio/issues/1126)) ([2362310](https://github.com/verdaccio/verdaccio/commit/2362310)) - - -# [4.0.0-alpha.3](https://github.com/verdaccio/verdaccio/compare/v3.8.3...v4.0.0-alpha.3) (2018-10-12) - - -### Bug Fixes - -* click on logo break ui ([#1071](https://github.com/verdaccio/verdaccio/issues/1071)) ([5b34dc8](https://github.com/verdaccio/verdaccio/commit/5b34dc8)) - - - - -# [4.0.0-alpha.2](https://github.com/verdaccio/verdaccio/compare/v3.8.3...v4.0.0-alpha.2) (2018-10-12) - - -### Bug Fixes - -* click on logo when using url_prefix was not working ([#996](https://github.com/verdaccio/verdaccio/issues/996)) ([3ac9646](https://github.com/verdaccio/verdaccio/commit/3ac9646)) - - - - -# [4.0.0-alpha.1](https://github.com/verdaccio/verdaccio/compare/v4.0.0-alpha.0...v4.0.0-alpha.1) (2018-09-27) - - -### Bug Fixes - -* fix docker python issue [#883](https://github.com/verdaccio/verdaccio/issues/883) ([611aeb4](https://github.com/verdaccio/verdaccio/commit/611aeb4)) -* load package list undefined ([#993](https://github.com/verdaccio/verdaccio/issues/993)) ([4431c47](https://github.com/verdaccio/verdaccio/commit/4431c47)) -* Make systemd unit more production-like ([#929](https://github.com/verdaccio/verdaccio/issues/929)) ([ffc9410](https://github.com/verdaccio/verdaccio/commit/ffc9410)) - - -### Features - -* add support for jwt on api ([#896](https://github.com/verdaccio/verdaccio/issues/896)) ([a68d247](https://github.com/verdaccio/verdaccio/commit/a68d247)), closes [#168](https://github.com/verdaccio/verdaccio/issues/168) -* add support for multiple protocol on protocol header ([#1014](https://github.com/verdaccio/verdaccio/issues/1014)) ([40e2b10](https://github.com/verdaccio/verdaccio/commit/40e2b10)) -* added prettier ([#921](https://github.com/verdaccio/verdaccio/issues/921)) ([43bd622](https://github.com/verdaccio/verdaccio/commit/43bd622)) -* check for minimum node.js version on start ([#968](https://github.com/verdaccio/verdaccio/issues/968)) ([ba9dc35](https://github.com/verdaccio/verdaccio/commit/ba9dc35)) -* rename database file name ([#954](https://github.com/verdaccio/verdaccio/issues/954)) ([dd72120](https://github.com/verdaccio/verdaccio/commit/dd72120)) -* replaced element-react by Material-UI ([#950](https://github.com/verdaccio/verdaccio/issues/950)) ([#985](https://github.com/verdaccio/verdaccio/issues/985)) ([3639557](https://github.com/verdaccio/verdaccio/commit/3639557)) -* replaced lunr by lunr-mutable ([#915](https://github.com/verdaccio/verdaccio/issues/915)) ([1602840](https://github.com/verdaccio/verdaccio/commit/1602840)) -* verdaccio update notification on CLI ([#988](https://github.com/verdaccio/verdaccio/issues/988)) ([#998](https://github.com/verdaccio/verdaccio/issues/998)) ([bc04703](https://github.com/verdaccio/verdaccio/commit/bc04703)) - - - -## [3.11.6](https://github.com/verdaccio/verdaccio/compare/v3.11.5...v3.11.6) (2019-02-25) - - -### Bug Fixes - -* overrides existing package to zero bytes file [#1191](https://github.com/verdaccio/verdaccio/issues/1191) ([d470cfe](https://github.com/verdaccio/verdaccio/commit/d470cfe)) -* remove unused dependency ([e943d91](https://github.com/verdaccio/verdaccio/commit/e943d91)) - - - - -## [3.11.5](https://github.com/verdaccio/verdaccio/compare/v3.11.4...v3.11.5) (2019-02-21) - - -### Bug Fixes - -* debugging with all ports ([c7789f1](https://github.com/verdaccio/verdaccio/commit/c7789f1)) -* package.json to reduce vulnerabilities ([5fdf678](https://github.com/verdaccio/verdaccio/commit/5fdf678)) - - - -## [3.11.4](https://github.com/verdaccio/verdaccio/compare/v3.11.3...v3.11.4) (2019-02-11) - - -### Bug Fixes - -* update dependencies due to security vulnerabilities ([f6f014a](https://github.com/verdaccio/verdaccio/commit/f6f014a)) - - - - -## [3.11.3](https://github.com/verdaccio/verdaccio/compare/v3.11.2...v3.11.3) (2019-02-07) - - -### Bug Fixes - -* server keepAliveTimeout is in milliseconds, config value in seconds. ([7f79c77](https://github.com/verdaccio/verdaccio/commit/7f79c77)) - - - - -## [3.11.2](https://github.com/verdaccio/verdaccio/compare/v3.11.1...v3.11.2) (2019-02-05) - - -### Bug Fixes - -* lodash vulnerability ([c35486d](https://github.com/verdaccio/verdaccio/commit/c35486d)) - - - - -## [3.11.1](https://github.com/verdaccio/verdaccio/compare/v3.11.0...v3.11.1) (2019-01-31) - - -### Bug Fixes - -* don’t make change if `time` fields match ([#1167](https://github.com/verdaccio/verdaccio/issues/1167)) ([e62ef8d](https://github.com/verdaccio/verdaccio/commit/e62ef8d)) -* don’t packages that have no uplinks after reading ([#1204](https://github.com/verdaccio/verdaccio/issues/1204)) ([95686be](https://github.com/verdaccio/verdaccio/commit/95686be)) - - - - -# [3.11.0](https://github.com/verdaccio/verdaccio/compare/v3.10.2...v3.11.0) (2019-01-27) - - -### Features - -* introduce server keepAliveTimeout into config files ([a359055](https://github.com/verdaccio/verdaccio/commit/a359055)) - - - - -## [3.10.2](https://github.com/verdaccio/verdaccio/compare/v3.10.1...v3.10.2) (2019-01-22) - - -### Bug Fixes - -* add logic to catch clause ([#1183](https://github.com/verdaccio/verdaccio/issues/1183)) ([056d396](https://github.com/verdaccio/verdaccio/commit/056d396)) -* adds _id to normalise metadata ([#1194](https://github.com/verdaccio/verdaccio/issues/1194)) ([e2fa581](https://github.com/verdaccio/verdaccio/commit/e2fa581)) -* remove some unneeded checks ([#1182](https://github.com/verdaccio/verdaccio/issues/1182)) ([ab56d75](https://github.com/verdaccio/verdaccio/commit/ab56d75)) -* remove unused object ([#1185](https://github.com/verdaccio/verdaccio/issues/1185)) ([e9b3907](https://github.com/verdaccio/verdaccio/commit/e9b3907)) -* remove unused parameters from processBody method invocation ([#1184](https://github.com/verdaccio/verdaccio/issues/1184)) ([064f7cf](https://github.com/verdaccio/verdaccio/commit/064f7cf)) -* remove use of comma separator ([#1186](https://github.com/verdaccio/verdaccio/issues/1186)) ([f20fefa](https://github.com/verdaccio/verdaccio/commit/f20fefa)) -* remove useless assignment to local variable emailCopy ([#1181](https://github.com/verdaccio/verdaccio/issues/1181)) ([13b8347](https://github.com/verdaccio/verdaccio/commit/13b8347)) - - - -## [3.10.1](https://github.com/verdaccio/verdaccio/compare/v3.10.0...v3.10.1) (2018-12-20) - - -### Bug Fixes - -* remove useless secureProtocol option ([#1158](https://github.com/verdaccio/verdaccio/issues/1158)) ([c99266d](https://github.com/verdaccio/verdaccio/commit/c99266d)) - - - - -# [3.10.0](https://github.com/verdaccio/verdaccio/compare/v3.9.0...v3.10.0) (2018-12-06) - - -### Bug Fixes - -* update docker node to 10.14.1 ([#1148](https://github.com/verdaccio/verdaccio/issues/1148)) ([68165ca](https://github.com/verdaccio/verdaccio/commit/68165ca)) - - -### Features - -* allows package.json as package name ([#1149](https://github.com/verdaccio/verdaccio/issues/1149)) ([6554973](https://github.com/verdaccio/verdaccio/commit/6554973)) - - - - -# [3.9.0](https://github.com/verdaccio/verdaccio/compare/v3.8.6...v3.9.0) (2018-12-04) - - -### Bug Fixes - -* update node within Dockerfile ([#1139](https://github.com/verdaccio/verdaccio/issues/1139)) ([24e9121](https://github.com/verdaccio/verdaccio/commit/24e9121)) - - -### Features - -* display package peer deps ([#1144](https://github.com/verdaccio/verdaccio/issues/1144)) ([9b52b1d](https://github.com/verdaccio/verdaccio/commit/9b52b1d)) - - - - -## [3.8.6](https://github.com/verdaccio/verdaccio/compare/v3.8.5...v3.8.6) (2018-11-15) - - -### Bug Fixes - -* answer with 401 instead of 403 when no credentials were sent ([#1109](https://github.com/verdaccio/verdaccio/issues/1109)) ([4e34551](https://github.com/verdaccio/verdaccio/commit/4e34551)), closes [#1105](https://github.com/verdaccio/verdaccio/issues/1105) - - - - -## [3.8.5](https://github.com/verdaccio/verdaccio/compare/v3.8.4...v3.8.5) (2018-10-18) - - -### Bug Fixes - -* word wrap longer description ([#1076](https://github.com/verdaccio/verdaccio/issues/1076)) ([67c0b8c](https://github.com/verdaccio/verdaccio/commit/67c0b8c)) - - - - -## [3.8.4](https://github.com/verdaccio/verdaccio/compare/v3.8.3...v3.8.4) (2018-10-13) - - -### Bug Fixes - -* click on logo break ui ([#1073](https://github.com/verdaccio/verdaccio/issues/1073)) ([9a3c8bc](https://github.com/verdaccio/verdaccio/commit/9a3c8bc)) -* click on logo when using url_prefix was not working ([#996](https://github.com/verdaccio/verdaccio/issues/996)) ([3ac9646](https://github.com/verdaccio/verdaccio/commit/3ac9646)) - - - - -## [3.8.3](https://github.com/verdaccio/verdaccio/compare/v3.8.2...v3.8.3) (2018-10-07) - - -### Bug Fixes - -* don't exit if using https and pfx is enabled ([#1061](https://github.com/verdaccio/verdaccio/issues/1061)) ([#1062](https://github.com/verdaccio/verdaccio/issues/1062)) ([315a3b2](https://github.com/verdaccio/verdaccio/commit/315a3b2)) - - - - -## [3.8.2](https://github.com/verdaccio/verdaccio/compare/v3.8.1...v3.8.2) (2018-09-27) - - -### Bug Fixes - -* normalize contributors field [#1022](https://github.com/verdaccio/verdaccio/issues/1022) ([#1024](https://github.com/verdaccio/verdaccio/issues/1024)) ([4deefe7](https://github.com/verdaccio/verdaccio/commit/4deefe7)) - - - - -## [3.8.1](https://github.com/verdaccio/verdaccio/compare/v3.8.0...v3.8.1) (2018-09-10) - - -### Bug Fixes - -* support localTimeZone for logger `pretty-timestamped` format ([#984](https://github.com/verdaccio/verdaccio/issues/984)) ([df237fa](https://github.com/verdaccio/verdaccio/commit/df237fa)) - - - - -# [3.8.0](https://github.com/verdaccio/verdaccio/compare/v3.7.1...v3.8.0) (2018-09-05) - - -### Bug Fixes - -* missing properties for default matcher [#981](https://github.com/verdaccio/verdaccio/issues/981) ([#982](https://github.com/verdaccio/verdaccio/issues/982)) ([3ca20d0](https://github.com/verdaccio/verdaccio/commit/3ca20d0)) - - -### Features - -* exposed rotating-file log for json logging ([#948](https://github.com/verdaccio/verdaccio/issues/948)) ([5ca0ca5](https://github.com/verdaccio/verdaccio/commit/5ca0ca5)) - - - - -## [3.7.1](https://github.com/verdaccio/verdaccio/compare/v3.7.0...v3.7.1) (2018-08-28) - - -### Bug Fixes - -* login modal validation ([#958](https://github.com/verdaccio/verdaccio/issues/958)) ([9f78c31](https://github.com/verdaccio/verdaccio/commit/9f78c31)) -* ui change details issue in props update ([#959](https://github.com/verdaccio/verdaccio/issues/959)) ([#960](https://github.com/verdaccio/verdaccio/issues/960)) ([431e760](https://github.com/verdaccio/verdaccio/commit/431e760)) - - - - -# [3.7.0](https://github.com/verdaccio/verdaccio/compare/v3.6.0...v3.7.0) (2018-08-25) - - -### Bug Fixes - -* bugs related to logging with type json ([#893](https://github.com/verdaccio/verdaccio/issues/893)) ([cd231ba](https://github.com/verdaccio/verdaccio/commit/cd231ba)) -* login without reload ([#678](https://github.com/verdaccio/verdaccio/issues/678)) ([#679](https://github.com/verdaccio/verdaccio/issues/679)) ([#914](https://github.com/verdaccio/verdaccio/issues/914)) ([9cd3ccb](https://github.com/verdaccio/verdaccio/commit/9cd3ccb)) -* path to static directory could be changed ([#942](https://github.com/verdaccio/verdaccio/issues/942)) ([5557ce5](https://github.com/verdaccio/verdaccio/commit/5557ce5)) -* removes asciidoctor.js support ([#884](https://github.com/verdaccio/verdaccio/issues/884)) ([#947](https://github.com/verdaccio/verdaccio/issues/947)) ([cf05938](https://github.com/verdaccio/verdaccio/commit/cf05938)) - - -### Features - -* update logos & add new page for logos on website ([#941](https://github.com/verdaccio/verdaccio/issues/941)) ([652003f](https://github.com/verdaccio/verdaccio/commit/652003f)) - - - - -# [3.6.0](https://github.com/verdaccio/verdaccio/compare/v3.5.1...v3.6.0) (2018-08-13) - - -### Bug Fixes - -* abort the stream to prevent overwriting existing tarbal ([2e5a409](https://github.com/verdaccio/verdaccio/commit/2e5a409)) -* **webui:** search crash on ' ' as a value [#898](https://github.com/verdaccio/verdaccio/issues/898) ([#902](https://github.com/verdaccio/verdaccio/issues/902)) ([fd67698](https://github.com/verdaccio/verdaccio/commit/fd67698)) - - -### Features - -* **translations:** enable Chinese Simplified on website ([88b29e0](https://github.com/verdaccio/verdaccio/commit/88b29e0)) - - - - -## [3.5.1](https://github.com/verdaccio/verdaccio/compare/v3.5.0...v3.5.1) (2018-08-02) - - -### Bug Fixes - -* remove version page ([8a0e8ab](https://github.com/verdaccio/verdaccio/commit/8a0e8ab)) - - - - -# [3.5.0](https://github.com/verdaccio/verdaccio/compare/v3.4.1...v3.5.0) (2018-08-02) - - -### Bug Fixes - -* fix docker python issue [#883](https://github.com/verdaccio/verdaccio/issues/883) ([ec744ea](https://github.com/verdaccio/verdaccio/commit/ec744ea)) -* unpublish version does not remove it from timeline ([61e62bd](https://github.com/verdaccio/verdaccio/commit/61e62bd)) - - -### Features - -* adds gravatar support for maintainers ([4df6b3b](https://github.com/verdaccio/verdaccio/commit/4df6b3b)) -* adds option to set scope in webui instructions header ([f9e9383](https://github.com/verdaccio/verdaccio/commit/f9e9383)), closes [#593](https://github.com/verdaccio/verdaccio/issues/593) - - - -## [3.4.1](https://github.com/verdaccio/verdaccio/compare/v3.4.0...v3.4.1) (2018-07-27) - - -### Bug Fixes - -* solves dependency bug for one dependency ([#857](https://github.com/verdaccio/verdaccio/issues/857)) ([f9c9c44](https://github.com/verdaccio/verdaccio/commit/f9c9c44)) - - - - -# [3.4.0](https://github.com/verdaccio/verdaccio/compare/v3.3.0...v3.4.0) (2018-07-27) - - -### Bug Fixes - -* Authentication Plugins / plugin[method] is not a function ([0a3870e](https://github.com/verdaccio/verdaccio/commit/0a3870e)) - - -### Features - -* adds base64 support in webui token ([#840](https://github.com/verdaccio/verdaccio/issues/840)) ([4a7a94a](https://github.com/verdaccio/verdaccio/commit/4a7a94a)) - - - - -# [3.3.0](https://github.com/verdaccio/verdaccio/compare/v3.2.0...v3.3.0) (2018-07-22) - - -### Bug Fixes - -* add RemoteUser type for auth ([2f4dbe8](https://github.com/verdaccio/verdaccio/commit/2f4dbe8)) -* adds webpack banner plugin to tag bundles with version ([#784](https://github.com/verdaccio/verdaccio/issues/784)) ([dac28d3](https://github.com/verdaccio/verdaccio/commit/dac28d3)) -* dynamic date generation for component test ([e5ea0c2](https://github.com/verdaccio/verdaccio/commit/e5ea0c2)) -* ignores http_proxy and https_proxy ([d04dc8d](https://github.com/verdaccio/verdaccio/commit/d04dc8d)) -* improves regex for ascii and test ([#461](https://github.com/verdaccio/verdaccio/issues/461)) ([be3968f](https://github.com/verdaccio/verdaccio/commit/be3968f)) -* license field alignment on web ui ([#761](https://github.com/verdaccio/verdaccio/issues/761)) ([9fa523a](https://github.com/verdaccio/verdaccio/commit/9fa523a)) -* open external tabs in new tabs ([25e8e60](https://github.com/verdaccio/verdaccio/commit/25e8e60)) -* package.json to reduce vulnerabilities ([389e306](https://github.com/verdaccio/verdaccio/commit/389e306)) -* solve seo issue [#760](https://github.com/verdaccio/verdaccio/issues/760) ([62d3033](https://github.com/verdaccio/verdaccio/commit/62d3033)) -* wrong auth plugin signature ([5c2c414](https://github.com/verdaccio/verdaccio/commit/5c2c414)) - - -### Features - -* adds support for ascii-doc preview in readme ([#464](https://github.com/verdaccio/verdaccio/issues/464)) ([29bb57a](https://github.com/verdaccio/verdaccio/commit/29bb57a)) -* adds support for external plugin directory ([#532](https://github.com/verdaccio/verdaccio/issues/532)) ([11dcf79](https://github.com/verdaccio/verdaccio/commit/11dcf79)) -* capitalises logged in username ([#752](https://github.com/verdaccio/verdaccio/issues/752)) ([0e21e35](https://github.com/verdaccio/verdaccio/commit/0e21e35)) - - - - -# [3.2.0](https://github.com/verdaccio/verdaccio/compare/v3.1.2...v3.2.0) (2018-06-15) - - -### Bug Fixes - -* allowing to allow replace static enpoint in case of reverse proxy ([90803c7](https://github.com/verdaccio/verdaccio/commit/90803c7)) -* fixed linebreaks lint issue ([9e3ab09](https://github.com/verdaccio/verdaccio/commit/9e3ab09)) -* normalize package was broken [#758](https://github.com/verdaccio/verdaccio/issues/758) ([3717ad4](https://github.com/verdaccio/verdaccio/commit/3717ad4)) - - -### Features - -* Add basic package infos and resource links to sidebar. ([7bd3a4f](https://github.com/verdaccio/verdaccio/commit/7bd3a4f)) -* add published package support to template ([4245636](https://github.com/verdaccio/verdaccio/commit/4245636)) -* added information about package publisher for notifications ([1ca5298](https://github.com/verdaccio/verdaccio/commit/1ca5298)) - - - - -## [3.1.2](https://github.com/verdaccio/verdaccio/compare/v3.1.1...v3.1.2) (2018-06-11) - - -### Bug Fixes - -* configure fetch to send cookies ([98ac855](https://github.com/verdaccio/verdaccio/commit/98ac855)) -* search implementation depends now of each plugin ([8f0508f](https://github.com/verdaccio/verdaccio/commit/8f0508f)) - - - - -## [3.1.1](https://github.com/verdaccio/verdaccio/compare/v3.1.0...v3.1.1) (2018-06-07) - - -### Bug Fixes - -* migration issue with old storage [#740](https://github.com/verdaccio/verdaccio/issues/740) ([e977d50](https://github.com/verdaccio/verdaccio/commit/e977d50)) - - - - -# [3.1.0](https://github.com/verdaccio/verdaccio/compare/v3.0.2...v3.1.0) (2018-06-05) - - -### Bug Fixes - -* groups are not array were not handled ([a62688f](https://github.com/verdaccio/verdaccio/commit/a62688f)) -* improve bundle size ([a79d87b](https://github.com/verdaccio/verdaccio/commit/a79d87b)) - - -### Features - -* add published date and license on ui ([ecbe616](https://github.com/verdaccio/verdaccio/commit/ecbe616)) -* using code splitting on routers ([0af6f5a](https://github.com/verdaccio/verdaccio/commit/0af6f5a)) - - - - -## [3.0.2](https://github.com/verdaccio/verdaccio/compare/v3.0.1...v3.0.2) (2018-05-31) - - -### Bug Fixes - -* enable audit by default ([8df186c](https://github.com/verdaccio/verdaccio/commit/8df186c)) -* skip problematic unit test ([c920fa3](https://github.com/verdaccio/verdaccio/commit/c920fa3)) - - - - -## [3.0.1](https://github.com/verdaccio/verdaccio/compare/v3.0.0...v3.0.1) (2018-05-31) - - -### Bug Fixes - -* ui fails to render whether time is missing ([f575b48](https://github.com/verdaccio/verdaccio/commit/f575b48)) - - - - -# [3.0.0](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.12...v3.0.0) (2018-05-30) - - -### Bug Fixes - -* favicon refers to .png while only .ico exists [#681](https://github.com/verdaccio/verdaccio/issues/681) ([11e6f9f](https://github.com/verdaccio/verdaccio/commit/11e6f9f)) -* web-ui css were not being minimized ([3168a76](https://github.com/verdaccio/verdaccio/commit/3168a76)) - - -### Features - -* new verdaccio skin to webui ([b8b2612](https://github.com/verdaccio/verdaccio/commit/b8b2612)) - - - - -# [3.0.0-beta.12](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.11...v3.0.0-beta.12) (2018-05-23) - - -### Features - -* add node 10 support for test and docker ([cee2564](https://github.com/verdaccio/verdaccio/commit/cee2564)) -* support for npm audit fix [#689](https://github.com/verdaccio/verdaccio/issues/689) ([f9f180d](https://github.com/verdaccio/verdaccio/commit/f9f180d)) - - - - -# [3.0.0-beta.11](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.10...v3.0.0-beta.11) (2018-05-20) - - -### Bug Fixes - -* **docs:** clarify usage of uplink auth property ([01f7969](https://github.com/verdaccio/verdaccio/commit/01f7969)) -* remove useless warning ignoring tag ([0aeac06](https://github.com/verdaccio/verdaccio/commit/0aeac06)) - - - - -# [3.0.0-beta.10](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.9...v3.0.0-beta.10) (2018-05-14) - - -### Bug Fixes - -* avoid issues with missing token [#693](https://github.com/verdaccio/verdaccio/issues/693) ([08f6a64](https://github.com/verdaccio/verdaccio/commit/08f6a64)) - - -### Features - -* return latest dis-tag readme whether main metadata readme is emtpy ([e75376b](https://github.com/verdaccio/verdaccio/commit/e75376b)) - - - - -# [3.0.0-beta.9](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.8...v3.0.0-beta.9) (2018-05-13) - - -### Bug Fixes - -* update dependencies [#691](https://github.com/verdaccio/verdaccio/issues/691) ([d07bfc5](https://github.com/verdaccio/verdaccio/commit/d07bfc5)) -* vulnerabilities dependencies ([d4722d6](https://github.com/verdaccio/verdaccio/commit/d4722d6)) -* vulnerabilities with lodash ([bcf128e](https://github.com/verdaccio/verdaccio/commit/bcf128e)) - - - - -# [3.0.0-beta.8](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2018-05-09) - - -### Bug Fixes - -* allow do not include storage if uses a storage plugin ([4332ffc](https://github.com/verdaccio/verdaccio/commit/4332ffc)) -* disable autocomplete on search so it doesn't default to username ([2e41d9f](https://github.com/verdaccio/verdaccio/commit/2e41d9f)) -* make enter key submit the login modal form ([f89b498](https://github.com/verdaccio/verdaccio/commit/f89b498)) - - - - -# [3.0.0-beta.7](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.6...v3.0.0-beta.7) (2018-04-30) - - -### Bug Fixes - -* beta header ([102fa22](https://github.com/verdaccio/verdaccio/commit/102fa22)) -* enforce maximum amount of users for new users only ([4d19d7d](https://github.com/verdaccio/verdaccio/commit/4d19d7d)) -* package command build:webui breaks on non-unix platforms ([4ec81d4](https://github.com/verdaccio/verdaccio/commit/4ec81d4)) -* restore plugin loader ([3c1c3ca](https://github.com/verdaccio/verdaccio/commit/3c1c3ca)) -* should fix flow performance issues ([453891b](https://github.com/verdaccio/verdaccio/commit/453891b)) -* update memory plugin ([a7aa77a](https://github.com/verdaccio/verdaccio/commit/a7aa77a)) -* update memory plugin for e2e ([df418a8](https://github.com/verdaccio/verdaccio/commit/df418a8)) -* update memory storage plugin ([a75b7bd](https://github.com/verdaccio/verdaccio/commit/a75b7bd)) -* update types ([4d5e8aa](https://github.com/verdaccio/verdaccio/commit/4d5e8aa)) -* update uplinks auth header ([3f6eeb4](https://github.com/verdaccio/verdaccio/commit/3f6eeb4)), closes [#670](https://github.com/verdaccio/verdaccio/issues/670) -* upgrade webpack to v4. fixes [[#544](https://github.com/verdaccio/verdaccio/issues/544)] ([b1c631c](https://github.com/verdaccio/verdaccio/commit/b1c631c)) - - - - -# [3.0.0-beta.6](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.5...v3.0.0-beta.6) (2018-04-03) - - -### Bug Fixes - -* api login use case when user already exist ([6491db4](https://github.com/verdaccio/verdaccio/commit/6491db4)) - - -### Features - -* update verdaccio-htpasswd plugin ([3a9c994](https://github.com/verdaccio/verdaccio/commit/3a9c994)) - - - - -# [3.0.0-beta.5](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.4...v3.0.0-beta.5) (2018-03-26) - - -### Bug Fixes - -* adds debounce to search api call ([aa60e1d](https://github.com/verdaccio/verdaccio/commit/aa60e1d)) -* **test:** replaces LocaleString with date-nfs/format ([0d3cf84](https://github.com/verdaccio/verdaccio/commit/0d3cf84)) -* correct linter errors and warnings ([5c5af27](https://github.com/verdaccio/verdaccio/commit/5c5af27)) -* display logo ([cbf4b9c](https://github.com/verdaccio/verdaccio/commit/cbf4b9c)) -* login with fetch ([f338ee4](https://github.com/verdaccio/verdaccio/commit/f338ee4)) -* unit test and better error handling ([2022a30](https://github.com/verdaccio/verdaccio/commit/2022a30)) - - -### Features - -* remove web logout endpoint ([badc707](https://github.com/verdaccio/verdaccio/commit/badc707)) - - - - -# [3.0.0-beta.4](https://github.com/verdaccio/verdaccio/compare/v3.0.0-beta.2...v3.0.0-beta.4) (2018-03-18) - - -### Bug Fixes - -* add teardown for unit test ([036120b](https://github.com/verdaccio/verdaccio/commit/036120b)) - - -### Features - -* add strict_ssl_option, fixes [#587](https://github.com/verdaccio/verdaccio/issues/587) ([f0fef44](https://github.com/verdaccio/verdaccio/commit/f0fef44)) - - -# [3.0.0-alpha.0](https://github.com/verdaccio/verdaccio/compare/v3.0.0-0...v3.0.0-alpha.0) (2018-01-07) - - - -## [2.7.2](https://github.com/verdaccio/verdaccio/compare/v2.7.1...v2.7.2) (2018-01-05) - - -### Bug Fixes - -* marked dependency to latest ([75bf2a8](https://github.com/verdaccio/verdaccio/commit/75bf2a8)) - - - - -## [2.7.1](https://github.com/verdaccio/verdaccio/compare/v2.7.0...v2.7.1) (2017-12-20) - - -### Bug Fixes - -* notification for multiple endpoints ([b605d1e](https://github.com/verdaccio/verdaccio/commit/b605d1e)) - - - - -# [2.7.0](https://github.com/verdaccio/verdaccio/compare/v2.6.6...v2.7.0) (2017-12-05) - - -### Features - -* Add middleware plugins from fl4re/sinopia ([374a5e8](https://github.com/verdaccio/verdaccio/commit/374a5e8)) -* Log-rotation used to require a full restart of the application ([baa4763](https://github.com/verdaccio/verdaccio/commit/baa4763) -* Add Kubernetes instructions ([ef1bd34](https://github.com/verdaccio/verdaccio/commit/ef1bd34) -* Match shell title with web title ([ddcc493](https://github.com/verdaccio/verdaccio/commit/ddcc493) - - - -## [2.6.6](https://github.com/verdaccio/verdaccio/compare/v2.6.5...v2.6.6) (2017-11-08) - - -### Bug Fixes - -* :bug: incorrect logo url with slash at the end of `url_prefix` ([859eccb](https://github.com/verdaccio/verdaccio/commit/859eccb)) - - - - -## [2.6.5](https://github.com/verdaccio/verdaccio/compare/v2.6.4...v2.6.5) (2017-11-05) - - -### Bug Fixes - -* upgrade node to fix long standing socket timeout issue ([bcc13ac](https://github.com/verdaccio/verdaccio/commit/bcc13ac)) - - - - -## [2.6.4](https://github.com/verdaccio/verdaccio/compare/v2.6.3...v2.6.4) (2017-10-31) - - -### Bug Fixes - -* :bug: incorrect resource and registry url while install on sub directory ([67e97a1](https://github.com/verdaccio/verdaccio/commit/67e97a1)) - - - - -## [2.6.3](https://github.com/verdaccio/verdaccio/compare/v2.6.2...v2.6.3) (2017-10-21) - - -### Bug Fixes - -* Check if socket exists before removing ([e916a0f](https://github.com/verdaccio/verdaccio/commit/e916a0f)) - - - - -## [2.6.2](https://github.com/verdaccio/verdaccio/compare/v2.6.1...v2.6.2) (2017-10-21) - - -### Bug Fixes - -* Remove unix socket before listen ([d42a41e](https://github.com/verdaccio/verdaccio/commit/d42a41e)) - - - - -## [2.6.1](https://github.com/verdaccio/verdaccio/compare/v2.6.0...v2.6.1) (2017-10-19) - - - - -# [2.6.0](https://github.com/verdaccio/verdaccio/compare/v2.5.1...v2.6.0) (2017-10-18) - - -### Bug Fixes - -* plugin loader with logs ([d6ed202](https://github.com/verdaccio/verdaccio/commit/d6ed202)) - - -### Features - -* add pfx support for https ([c84d567](https://github.com/verdaccio/verdaccio/commit/c84d567)) - - - - -## [2.5.1](https://github.com/verdaccio/verdaccio/compare/v2.5.0...v2.5.1) (2017-10-01) - - -### Bug Fixes - -* fix docker build failure due breaking changes in yarn ([c62e90f](https://github.com/verdaccio/verdaccio/commit/c62e90f)) - - - - -# [2.5.0](https://github.com/verdaccio/verdaccio/compare/v2.3.6...v2.5.0) (2017-10-01) - - -### Bug Fixes - -* :bug: check error code to prevent data loss ([5d73dca](https://github.com/verdaccio/verdaccio/commit/5d73dca)) fix [#329](https://github.com/verdaccio/verdaccio/issues/329) -* Fix [#334](https://github.com/verdaccio/verdaccio/issues/334) UI failure on IE 11, add suppor for old browsers. ([f1f15be](https://github.com/verdaccio/verdaccio/commit/f1f15be)) - - -### Features - -* header authorization uplink ([7baf7cb](https://github.com/verdaccio/verdaccio/commit/7baf7cb)) - - - -# [2.4.0](https://github.com/verdaccio/verdaccio/compare/v2.3.6...v2.4.0) (2017-09-23) - - -### Bug Fixes - -* :bug: check error code to prevent data loss ([5d73dca](https://github.com/verdaccio/verdaccio/commit/5d73dca)) -* :bug: check error code to prevent data loss ([93aae05](https://github.com/verdaccio/verdaccio/commit/93aae05)) -* :bug: Package metadata cache not work ([4d6a447](https://github.com/verdaccio/verdaccio/commit/4d6a447)) -* Fixed bug with Maximum call stack size exceeded on packages web API ([#326](https://github.com/verdaccio/verdaccio/pull/326)) -* fix: :bug: Package metadata cache does not work ([#317](https://github.com/verdaccio/verdaccio/pull/317)) -* Debug log color in terminal is too dark ([#311](https://github.com/verdaccio/verdaccio/pull/311)) -* docs: Add new sections to documentation ([#308](https://github.com/verdaccio/verdaccio/pull/308)) -* Remove from web section not longer valid properties ([#307](https://github.com/verdaccio/verdaccio/pull/307)) ([#309](https://github.com/verdaccio/verdaccio/pull/309)) -* Fix possible data loss upstream ([#306](https://github.com/verdaccio/verdaccio/pull/306)) ([#300](https://github.com/verdaccio/verdaccio/pull/300)) - - -### Features - -* Update node alpine version to 8.4.0 ([3f96ce3](https://github.com/verdaccio/verdaccio/commit/3f96ce3)) - - - - -## [2.3.6](https://github.com/verdaccio/verdaccio/compare/v2.3.5...v2.3.6) (2017-08-17) - - -### Bug Fixes - -* link was broken ([a9481cc](https://github.com/verdaccio/verdaccio/commit/a9481cc)) -* Correct accept header set for registry requests ([#295](https://github.com/verdaccio/verdaccio/pull/295)) -* Update SSL documentation ([#296](https://github.com/verdaccio/verdaccio/pull/296)) -* Fix auth process to check against username also and not just groups ([#293](https://github.com/verdaccio/verdaccio/pull/293)) - - - - -## [2.3.5](https://github.com/verdaccio/verdaccio/compare/v2.3.4...v2.3.5) (2017-08-14) - - -### Bug Fixes - -* configuration files inconsistencies, add unit test ([644c098](https://github.com/verdaccio/verdaccio/commit/644c098)) -* Remove accept header that seems cause issues [#285](https://github.com/verdaccio/verdaccio/issues/285) [#289](https://github.com/verdaccio/verdaccio/issues/289) and npm search fails ([fab8391](https://github.com/verdaccio/verdaccio/commit/fab8391)) - - - - -## [2.3.4](https://github.com/verdaccio/verdaccio/compare/v2.3.3...v2.3.4) (2017-07-29) - - -### Bug Fixes - -* Docker image fails due lock file localhost references ([901a7be](https://github.com/verdaccio/verdaccio/commit/901a7be)) - - - - -## [2.3.3](https://github.com/verdaccio/verdaccio/compare/v2.3.2...v2.3.3) (2017-07-29) - - -### Bug Fixes - -* refactor [#268](https://github.com/verdaccio/verdaccio/issues/268) in a better way, amended to elegant way ([94fb6ad](https://github.com/verdaccio/verdaccio/commit/94fb6ad)) - - - - -## [2.3.2](https://github.com/verdaccio/verdaccio/compare/v2.3.0...v2.3.2) (2017-07-28) - - -### Bug Fixes - -* :bug: detail page can't handle scoped package ([1c9fbfc](https://github.com/verdaccio/verdaccio/commit/1c9fbfc)) -* [#268](https://github.com/verdaccio/verdaccio/issues/268) remove the accept header that avoids request with some regiestries ([e7dcf3c](https://github.com/verdaccio/verdaccio/commit/e7dcf3c)) -* [#78](https://github.com/verdaccio/verdaccio/issues/78) add new setting to allow publish when uplinks are offline ([430425c](https://github.com/verdaccio/verdaccio/commit/430425c)) -* broken link ([9fb0e14](https://github.com/verdaccio/verdaccio/commit/9fb0e14)) -* lint warning ([d0afe78](https://github.com/verdaccio/verdaccio/commit/d0afe78)) -* Param web.title from config.yaml does not work on docker image [#265](https://github.com/verdaccio/verdaccio/issues/265) ([b1a396d](https://github.com/verdaccio/verdaccio/commit/b1a396d)) -* undefined check ([ff96d2e](https://github.com/verdaccio/verdaccio/commit/ff96d2e)) - - - -## 2.3.1 (July 25, 2017) - -- bug: Detail page can't handle scoped package - [#261](https://github.com/verdaccio/verdaccio/pull/261) -- bug: can't publish a private package to verdaccio while offline - [#223](https://github.com/verdaccio/verdaccio/pull/223) -- refactor: use light version of syntax highlighter - [#260](https://github.com/verdaccio/verdaccio/pull/260) - -## 2.3.0 (July 22, 2017) - -- feature: Refactor User Interface - [#220](https://github.com/verdaccio/verdaccio/pull/220) - -## 2.2.7 (July 18, 2017) - -- bug: fix running behind of loadbalancer with TLS termination - [#254](https://github.com/verdaccio/verdaccio/pull/254) - - -## 2.2.6 (July 13, 2017) - -- build: update node version due security update announcement - [#251](https://github.com/verdaccio/verdaccio/pull/251) - -## 2.2.5 (July 4, 2017) - -- Fixed adding the verdaccio user into the group - [#241](https://github.com/verdaccio/verdaccio/pull/241) - -## 2.2.3 (July 4, 2017) - -- Updated Dockerfile & added proper signal handling - [#239](https://github.com/verdaccio/verdaccio/pull/239) - -## 2.2.2 (July 2, 2017) - -- Improve Docker Build - [#181](https://github.com/verdaccio/verdaccio/pull/181) -- Bugfix #73 `npm-latest` support - [#228](https://github.com/verdaccio/verdaccio/pull/228) -- Add [documentation](https://github.com/verdaccio/verdaccio/tree/master/wiki) - [#229](https://github.com/verdaccio/verdaccio/pull/229) - -## 2.2.1 (June 17, 2017) - -- config section moved up, some keywords added - [#211](https://github.com/verdaccio/verdaccio/pull/211) -- docs: update docs with behind reverse proxy - [#214](https://github.com/verdaccio/verdaccio/pull/214) -- Add remote ip to request log - [#216](https://github.com/verdaccio/verdaccio/pull/216) - -## 2.2.0 (June 8, 2017) -- Allow url_prefix to be only the path - ([@BartDubois ]((https://github.com/BartDubois))) in [#197](https://github.com/verdaccio/verdaccio/pull/197) -- Apache reverse proxy configuration - ([@mysiar ]((https://github.com/mysiar))) in [#198](https://github.com/verdaccio/verdaccio/pull/198) -- don't blindly clobber local dist-tags - ([@rmg ]((https://github.com/rmg))) in [#206](https://github.com/verdaccio/verdaccio/pull/206) -- Adds cache option to uplinks - ([@silkentrance ]((https://github.com/silkentrance))) in [#132](https://github.com/verdaccio/verdaccio/pull/132) - -## 2.1.7 (May 14, 2017) -- Fixed publish fail in YARN - ([@W1U02]((https://github.com/W1U02)) in [#183](https://github.com/verdaccio/verdaccio/pull/183) - -## 2.1.6 (May 12, 2017) -- Fix https certificates safety check - ([@juanpicado]((https://github.com/juanpicado))) in [#189](https://github.com/verdaccio/verdaccio/pull/189) -- Fix upstream search not work with gzip - ([@Meeeeow](https://github.com/Meeeeow) in [#170](https://github.com/verdaccio/verdaccio/pull/170)) -- Add additional requirement to output message - ([@marnel ](https://github.com/marnel) in [#184](https://github.com/verdaccio/verdaccio/pull/184)) -- Implement npm ping endpoint - ([@juanpicado]((https://github.com/juanpicado))) in [#179](https://github.com/verdaccio/verdaccio/pull/179) -- Add support for multiple notification endpoints to existing webhook - ([@ryan-codingintrigue]((https://github.com/ryan-codingintrigue))) -in [#108](https://github.com/verdaccio/verdaccio/pull/108) - - - -## 2.1.5 (April 22, 2017) -- fix upstream search - ([@Meeeeow](https://github.com/Meeeeow) in [#166](https://github.com/verdaccio/verdaccio/pull/166)) -- Fix search feature - ([@Meeeeow](https://github.com/Meeeeow) in [#163](https://github.com/verdaccio/verdaccio/pull/163)) -- add docs about run behind proxy - ([@Meeeeow](https://github.com/Meeeeow) in [#160](https://github.com/verdaccio/verdaccio/pull/160)) - -## 2.1.4 (April 13, 2017) -- Added Nexus Repository OSS as similar existing software - ([@nedelenbos030](https://github.com/nedelenbos) in [#147](https://github.com/verdaccio/verdaccio/pull/147)) -- Increase verbose on notify request - ([@juanpicado](https://github.com/juanpicado) in [#153](https://github.com/verdaccio/verdaccio/pull/153)) -- Add fallback support to previous config files - ([@juanpicado](https://github.com/juanpicado) in [#155](https://github.com/verdaccio/verdaccio/pull/155)) -- Allows retrieval of all local package contents via http://server/-/search/* - ([@Verikon](https://github.com/Verikon) in [#152](https://github.com/verdaccio/verdaccio/pull/155)) - -## 2.1.3 (March 29, 2017) -- [GH-83] create systemd service - ([@030](https://github.com/030) in [#89](https://github.com/verdaccio/verdaccio/pull/89)) -- optional scope in the readme package name. - ([@psychocode](https://github.com/psychocode) in [#136](https://github.com/verdaccio/verdaccio/pull/136)) -- Added docker image for rpi - ([@danielo515](https://github.com/danielo515) in [#137](https://github.com/verdaccio/verdaccio/pull/137)) -- Allow configuring a tagline that is displayed on the webpage between. ([@jachstet-sea](https://github.com/jachstet-sea) in [#143](https://github.com/verdaccio/verdaccio/pull/143)) - -## 2.1.2 (March 9, 2017) -- Contribute guidelines - ([@juanpicado](https://github.com/juanpicado) in [#133](https://github.com/verdaccio/verdaccio/pull/133)) -- fix(plugin-loader): plugins verdaccio-* overwrite by sinopia- ([@Alexandre-io](https://github.com/Alexandre-io) in [#129](https://github.com/verdaccio/verdaccio/pull/129)) - -## 2.1.1 (February 7, 2017) - -- [GH-86] updated readme to point to new chef cookbook ([@kgrubb](https://github.com/kgrubb) in [#117](https://github.com/verdaccio/verdaccio/pull/117)) -- [GH-88] rename to Verdaccio instead of Sinopia ([@kgrubb](https://github.com/kgrubb) in [#93](https://github.com/verdaccio/verdaccio/pull/93)) -- Unit testing coverage ([@juanpicado](https://github.com/juanpicado) in [#116](https://github.com/verdaccio/verdaccio/issues/116)) -- Allow htpasswd-created users to log in [@imsnif](https://github.com/imsnif) in [#112](https://github.com/verdaccio/verdaccio/issues/112)) -- remove travis io.js support ([@juanpicado](https://github.com/juanpicado) in [#115](https://github.com/verdaccio/verdaccio/issues/115)) -- rename clean up ([@juanpicado](https://github.com/juanpicado) in [#114](https://github.com/verdaccio/verdaccio/issues/114)) -- _npmUser / author not showing up ([@juanpicado](https://github.com/juanpicado) in [#65](https://github.com/verdaccio/verdaccio/issues/65)) -- Docs: correct config attribute `proxy_access` ([@robertgroh](https://github.com/robertgroh) in [#96](https://github.com/verdaccio/verdaccio/pull/96)) -- Problem with docker.yaml ([@josedepaz](https://github.com/josedepaz) in [#72](https://github.com/verdaccio/verdaccio/pull/72)) -- Prevent logging of user and password ([@tlvince](https://github.com/tlvince) in [#94](https://github.com/verdaccio/verdaccio/pull/94)) -- Updated README.md to reflect the availability of the docker image ([@jmwilkinson](https://github.com/jmwilkinson)) in [#71](https://github.com/verdaccio/verdaccio/pull/71)) - -## 2.1.0 (October 11, 2016) - -- Use __dirname to resolve local plugins ([@aledbf](https://github.com/aledbf) in [#25](https://github.com/verdaccio/verdaccio/pull/25)) -- Fix npm cli logout ([@plitex](https://github.com/plitex) in [#47](https://github.com/verdaccio/verdaccio/pull/47)) -- Add log format: pretty-timestamped ([@jachstet-sea](https://github.com/jachstet-sea) in [#68](https://github.com/verdaccio/verdaccio/pull/68)) -- Allow adding/overriding HTTP headers of uplinks via config ([@jachstet-sea](https://github.com/jachstet-sea) in [#67](https://github.com/verdaccio/verdaccio/pull/67)) -- Update Dockerfile to fix failed start ([@denisbabineau](https://github.com/denisbabineau) in [#62](https://github.com/verdaccio/verdaccio/pull/62)) -- Update the configs to fully support proxying scoped packages ([@ChadKillingsworth](https://github.com/ChadKillingsworth) in [#60](https://github.com/verdaccio/verdaccio/pull/60)) -- Prevent the server from crashing if a repo is accessed that the user does not have access to ([@crowebird](https://github.com/crowebird) in [#58](https://github.com/verdaccio/verdaccio/pull/58)) -- Hook system, for integration into things like slack -- Register entry partial even if custom template is provided ([@plitex](https://github.com/plitex) in [#46](https://github.com/verdaccio/verdaccio/pull/46)) -- Rename process to verdaccio ([@juanpicado](https://github.com/juanpicado) in [#57](https://github.com/verdaccio/verdaccio/pull/57)) - - -## 7 Jun 2015, version 1.4.0 - -- avoid sending X-Forwarded-For through proxies (issues [#19](https://github.com/rlidwka/sinopia/issues/19), [#254](https://github.com/rlidwka/sinopia/issues/254)) -- fix multiple issues in search (issues [#239](https://github.com/rlidwka/sinopia/issues/239), [#253](https://github.com/rlidwka/sinopia/pull/253)) -- fix "maximum stack trace exceeded" errors in auth (issue [#258](https://github.com/rlidwka/sinopia/issues/258)) - -## 10 May 2015, version 1.3.0 - -- add dist-tags endpoints (issue [#211](https://github.com/rlidwka/sinopia/issues/211)) - -## 22 Apr 2015, version 1.2.2 - -- fix access control regression in `1.2.1` (issue [#238](https://github.com/rlidwka/sinopia/issues/238)) -- add a possibility to bind on unix sockets (issue [#237](https://github.com/rlidwka/sinopia/issues/237)) - -## 11 Apr 2015, version 1.2.1 - -- added more precise authorization control to auth plugins (issue [#207](https://github.com/rlidwka/sinopia/pull/207)) - -## 29 Mar 2015, version 1.1.0 - -- add a possibility to listen on multiple ports (issue [#172](https://github.com/rlidwka/sinopia/issues/172)) -- added https support (issues [#71](https://github.com/rlidwka/sinopia/issues/71), [#166](https://github.com/rlidwka/sinopia/issues/166)) -- added an option to use a custom template for web UI (issue [#208](https://github.com/rlidwka/sinopia/pull/208)) -- remove "from" and "resolved" fields from shrinkwrap (issue [#204](https://github.com/rlidwka/sinopia/issues/204)) -- fix hanging when rendering readme (issue [#206](https://github.com/rlidwka/sinopia/issues/206)) -- fix logger-related crash when using sinopia as a library -- all requests to uplinks should now have proper headers - -## 12 Feb 2015, version 1.0.1 - -- fixed issue with `max_users` option (issue [#184](https://github.com/rlidwka/sinopia/issues/184)) -- fixed issue with not being able to disable the web interface (issue [#195](https://github.com/rlidwka/sinopia/pull/195)) -- fixed 500 error while logging in with npm (issue [#200](https://github.com/rlidwka/sinopia/pull/200)) - -## 26 Jan 2015, version 1.0.0 - -- switch markdown parser from `remarkable` to `markdown-it` -- update `npm-shrinkwrap.json` -- now downloading tarballs from upstream using the same protocol as for metadata (issue [#166](https://github.com/rlidwka/sinopia/issues/166)) - -## 22 Dec 2014, version 1.0.0-beta.2 - -- fix windows behavior when `$HOME` isn't set (issue [#177](https://github.com/rlidwka/sinopia/issues/177)) -- fix sanitization for highlighted code blocks in readme (issue [render-readme/#1](https://github.com/rlidwka/render-readme/issues/1)) - -## 15 Dec 2014, version 1.0.0-beta - -- Markdown rendering is now a lot safer (switched to remarkable+sanitizer). -- Header in web interface is now static instead of fixed. -- `GET /-/all?local` now returns list of all local packages (issue [#179](https://github.com/rlidwka/sinopia/pull/179)) - -## 5 Dec 2014, version 1.0.0-alpha.3 - -- Fixed an issue with scoped packages in tarballs - -## 25 Nov 2014, version 1.0.0-alpha - -- Config file is now created in `$XDG_CONFIG_HOME` instead of current directory. - - It is printed to stdout each time sinopia starts, so you hopefully won't have any trouble locating it. - - The change is made so sinopia will pick up the same config no matter which directory it is started from. - -- Default config file is now a lot shorter, and it is very permissive by default. You could use sinopia without modifying it on your own computer, but definitely should change it on production. - -- Added auth tokens. For now, auth token is just a username+password encrypted for security reasons, so it isn't much different from basic auth, but allows to avoid "always-auth" npm setting. - -- Added scoped packages. - - Please note that default `*` mask won't apply to them. You have to use masks like `@scope/*` to match scoped packages, or `**` to match everything. - -- Enabled web interface by default. Wow, it looks almost ready now! - -- All dependencies are bundled now, so uncompatible changes in 3rd party stuff in the future won't ruin the day. - -## 1 Nov 2014, version 0.13.2 - -- fix `EPERM`-related crashes on windows (issue [#67](https://github.com/rlidwka/sinopia/issues/67)) - -## 22 Oct 2014, version 0.13.0 - -- web interface: - - web page layout improved (issue [#141](https://github.com/rlidwka/sinopia/pull/141)) - - latest version is now displayed correctly (issues [#120](https://github.com/rlidwka/sinopia/issues/120), [#123](https://github.com/rlidwka/sinopia/issues/123), [#143](https://github.com/rlidwka/sinopia/pull/143)) - - fixed web interface working behind reverse proxy (issues [#145](https://github.com/rlidwka/sinopia/issues/145), [#147](https://github.com/rlidwka/sinopia/issues/147)) - -## 2 Oct 2014, version 0.12.1 - -- web interface: - - update markdown CSS (issue [#137](https://github.com/rlidwka/sinopia/pull/137)) - - jquery is now served locally (issue [#133](https://github.com/rlidwka/sinopia/pull/133)) - -- bugfixes: - - fix "offset out of bounds" issues (issue [sinopia-htpasswd/#2](https://github.com/rlidwka/sinopia-htpasswd/issues/2)) - - "max_users" in htpasswd plugin now work correctly (issue [sinopia-htpasswd/#3](https://github.com/rlidwka/sinopia-htpasswd/issues/3)) - - fix `ENOTDIR, open '.sinopia-db.json'` error in npm search (issue [#122](https://github.com/rlidwka/sinopia/issues/122)) - -## 25 Sep 2014, version 0.12.0 - -- set process title to `sinopia` - -- web interface bugfixes: - - save README data for each package (issue [#100](https://github.com/rlidwka/sinopia/issues/100)) - - fix crashes related to READMEs (issue [#128](https://github.com/rlidwka/sinopia/issues/128)) - -## 18 Sep 2014, version 0.11.3 - -- fix 500 error in adduser function in sinopia-htpasswd (issue [#121](https://github.com/rlidwka/sinopia/issues/121)) -- fix fd leak in authenticate function in sinopia-htpasswd (issue [#116](https://github.com/rlidwka/sinopia/issues/116)) - -## 15 Sep 2014, version 0.11.1 - -- mark crypt3 as optional (issue [#119](https://github.com/rlidwka/sinopia/issues/119)) - -## 15 Sep 2014, version 0.11.0 - -- Added auth plugins (issue [#99](https://github.com/rlidwka/sinopia/pull/99)) - - Now you can create your own auth plugin based on [sinopia-htpasswd](https://github.com/rlidwka/sinopia-htpasswd) package. - -- WIP: web interface (issue [#73](https://github.com/rlidwka/sinopia/pull/73)) - - It is disabled by default, and not ready for production yet. Use at your own risk. We will enable it in the next major release. - -- Some modules are now bundled by default, so users won't have to install stuff from git. We'll see what issues it causes, maybe all modules will be bundled in the future like in npm. - -## 14 Sep 2014, version 0.10.x - -*A bunch of development releases that are broken in various ways. Please use 0.11.x instead.* - -## 7 Sep 2014, version 0.9.3 - -- fix several bugs that could cause "can't set headers" exception - -## 3 Sep 2014, version 0.9.2 - -- allow "pretty" format for logging into files (issue [#88](https://github.com/rlidwka/sinopia/pull/88)) -- remove outdated user existence check (issue [#115](https://github.com/rlidwka/sinopia/pull/115)) - -## 11 Aug 2014, version 0.9.1 - -- filter falsey _npmUser values (issue [#95](https://github.com/rlidwka/sinopia/pull/95)) -- option not to cache third-party files (issue [#85](https://github.com/rlidwka/sinopia/issues/85)) - -## 26 Jul 2014, version 0.9.0 - -- new features: - - add search functionality (issue [#65](https://github.com/rlidwka/sinopia/pull/65)) - - allow users to authenticate using .htpasswd (issue [#44](https://github.com/rlidwka/sinopia/issues/44)) - - allow user registration with "npm adduser" (issue [#44](https://github.com/rlidwka/sinopia/issues/44)) - -- bugfixes: - - avoid crashing when res.socket is null (issue [#89](https://github.com/rlidwka/sinopia/issues/89)) - -## 20 Jun 2014, version 0.8.2 - -- allow '@' in package/tarball names (issue [#75](https://github.com/rlidwka/sinopia/issues/75)) -- other minor fixes (issues [#77](https://github.com/rlidwka/sinopia/issues/77), [#80](https://github.com/rlidwka/sinopia/issues/80)) - -## 14 Apr 2014, version 0.8.1 - -- "latest" tag is now always present in any package (issue [#63](https://github.com/rlidwka/sinopia/issues/63)) -- tags created with new npm versions (>= 1.3.19) can now be published correctly - -## 1 Apr 2014, version 0.8.0 - -- use gzip compression whenever possible (issue [#54](https://github.com/rlidwka/sinopia/issues/54)) -- set `ignore_latest_tag` to false, it should now be more compatible with npm registry -- make `fs-ext` optional (issue [#61](https://github.com/rlidwka/sinopia/issues/61)) - -## 29 Mar 2014, version 0.7.1 - -- added `ignore_latest_tag` config param (issues [#55](https://github.com/rlidwka/sinopia/issues/55), [#59](https://github.com/rlidwka/sinopia/issues/59)) -- reverted PR [#56](https://github.com/rlidwka/sinopia/issues/56) (see discussion in [#57](https://github.com/rlidwka/sinopia/issues/57)) - -## 13 Mar 2014, version 0.7.0 - -- config changes: - - breaking change: all time intervals are now specified in *seconds* instead of *milliseconds* for the sake of consistency. Change `timeout` if you have one! - - all time intervals now can be specified in [nginx notation](http://wiki.nginx.org/ConfigNotation), for example `1m 30s` will specify a 90 seconds timeout - - added `maxage` option to avoid asking public registry for the same data too often (issue [#47](https://github.com/rlidwka/sinopia/issues/47)) - - added `max_fails` and `fail_timeout` options to reduce amount of requests to public registry when it's down (issue [#7](https://github.com/rlidwka/sinopia/issues/7)) - -- bug fixes: - - fix crash when headers are sent twice (issue [#52](https://github.com/rlidwka/sinopia/issues/52)) - - all tarballs are returned with `Content-Length`, which allows [yapm](https://github.com/rlidwka/yapm) to estimate download time - - when connection to public registry is interrupted when downloading a tarball, we no longer save incomplete tarball to the disk - -- other changes: - - 404 errors are returned in couchdb-like manner (issue [#56](https://github.com/rlidwka/sinopia/issues/56)) - -## 5 Mar 2014, version 0.6.7 - -- pin down express@3 version, since sinopia doesn't yet work with express@4 - -## 28 Feb 2014, version 0.6.5 - -- old SSL keys for npm are removed, solves `SELF_SIGNED_CERT_IN_CHAIN` error - -## 3 Feb 2014, version 0.6.3 - -- validate tags and versions (issue [#40](https://github.com/rlidwka/sinopia/issues/40)) -- don't crash when process.getuid doesn't exist (issue [#41](https://github.com/rlidwka/sinopia/issues/41)) - -## 18 Jan 2014, version 0.6.2 - -- adding config param to specify upload limits (issue [#39](https://github.com/rlidwka/sinopia/issues/39)) -- making loose semver versions work (issue [#38](https://github.com/rlidwka/sinopia/issues/38)) - -## 13 Jan 2014, version 0.6.1 - -- support setting different storage paths for different packages (issue [#35](https://github.com/rlidwka/sinopia/issues/35)) - -## 30 Dec 2013, version 0.6.0 - -- tag support (issue [#8](https://github.com/rlidwka/sinopia/issues/8)) -- adding support for npm 1.3.19+ behaviour (issue [#31](https://github.com/rlidwka/sinopia/issues/31)) -- removing all support for proxying publish requests to uplink (too complex) - -## 26 Dec 2013, version 0.5.9 - -- fixing bug with bad Accept header (issue [#32](https://github.com/rlidwka/sinopia/issues/32)) - -## 20 Dec 2013, version 0.5.8 - -- fixed a warning from js-yaml -- don't color multiline strings in logs output -- better error messages in various cases -- test format changed - -## 15 Dec 2013, version 0.5.7 - -- try to fetch package from uplinks if user requested a tarball we don't know about (issue [#29](https://github.com/rlidwka/sinopia/issues/29)) -- security fix: set express.js to production mode so we won't return stack traces to the user in case of errors - -## 11 Dec 2013, version 0.5.6 - -- fixing a few crashes related to tags - -## 8 Dec 2013, version 0.5.4 - -- latest tag always shows highest version available (issue [#8](https://github.com/rlidwka/sinopia/issues/8)) -- added a configurable timeout for requests to uplinks (issue [#18](https://github.com/rlidwka/sinopia/issues/18)) -- users with bad authentication header are considered not logged in (issue [#17](https://github.com/rlidwka/sinopia/issues/17)) - -## 24 Nov 2013, version 0.5.3 - -- added proxy support for requests to uplinks (issue [#13](https://github.com/rlidwka/sinopia/issues/13)) -- changed license from default BSD to WTFPL - -## 26 Oct 2013, version 0.5.2 - -- server now supports unpublishing local packages -- added fs-ext dependency (flock) -- fixed a few face conditions - -## 20 Oct 2013, version 0.5.1 - -- fixed a few errors related to logging - -## 12 Oct 2013, version 0.5.0 - -- using bunyan as a log engine -- pretty-formatting colored logs to stdout by default -- ask user before creating any config files - -## 5 Oct 2013, version 0.4.3 - -- basic tags support for npm (read-only) -- npm star/unstar calls now return proper error - -## 29 Sep 2013, version 0.4.2 - -## 28 Sep 2013, version 0.4.1 - -- using mocha for tests now -- making use of streams2 api, doesn't work on 0.8 anymore -- basic support for uploading packages to other registries - -## 27 Sep 2013, version 0.4.0 - -- basic test suite -- storage path in config is now relative to config file location, not cwd -- proper cleanup for temporary files - -## 12 Jul 2013, version 0.3.2 - -## 4 Jul 2013, version 0.3.1 - -- using ETag header for all json output, based on md5 - -## 20 Jun 2013, version 0.3.0 - -- compression for http responses -- requests for files to uplinks are now streams (no buffering) -- tarballs are now cached locally - -## 19 Jun 2013, version 0.2.0 - -- config file changed, packages is now specified with minimatch -- ability to retrieve all packages from another registry (i.e. npmjs) - -## 14 Jun 2013, version 0.1.1 - -- config is now autogenerated -- tarballs are now read/written from fs using streams (no buffering) - -## 9 Jun 2013, version 0.1.0 - -- first npm version -- ability to publish packages and retrieve them locally -- basic authentication/access control - -## 22 May 2013, version 0.0.0 - -- first commits - diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 71c2e4bf7..000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at verdaccio.npm@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 90e674f04..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,194 +0,0 @@ -# Contributing to Verdaccio - -> ⚠️ If you intend to file a PR with a new feature, please use the 5.x branch for it 🥰 . master branch is available only for **bug fixing** and dependencies updates. - -We are happy that you wish to contribute to this project. For that reason, we -present you with this guide. - -Additional information is available on the -[wiki](https://github.com/verdaccio/verdaccio/wiki). - -## Contents - -- [Contents](#contents) -- [How Do I Contribute?](#how-do-i-contribute) -- [Development](#development) -- [Reporting Bugs](#reporting-bugs) - - [Issue Search](#issue-search) - - [Check Website For Solution](#check-website-for-solution) - - [Chat](#chat) - - [Check If It's Been Fixed](#check-if-its-been-fixed) -- [Request Features](#request-features) - - [Submitting a Pull Request](#submitting-a-pull-request) - - [Make Changes and Commit](#make-changes-and-commit) -- [Update Tests](#update-tests) -- [Develop Plugins](#develop-plugins) - -## How Do I Contribute? - -There are different ways to contribute, each with a different level -of involvement and technical knowledge required, such as: - -* [Reporting Bugs](#reporting-bugs) -* [Request Features](#request-features) -* [Develop Plugins](#develop-plugins) -* [Improve Documentation](http://www.verdaccio.org/docs/en/installation.html) - -**Please read this document carefully. It will help maintainers and readers -in solving your issue(s), evaluating your feature request, etc.** - -## Development - -Development guides can be found on the [wiki](https://github.com/verdaccio/verdaccio/wiki): - -* [Building the project](https://github.com/verdaccio/verdaccio/wiki/Build-Source-Code) -* [Running, debugging, and testing](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests) - -## Reporting Bugs - -We welcome clear, detailed bug reports. - -**Bugs are considered features that are not working as described in -documentation.** - -If you've found a bug in Verdaccio **that isn't a security risk**, please file -a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues). - -**NOTE: Verdaccio still does not support all npm commands. Some were not -considered important and others have not been requested yet.** - -### Issue Search - -Search to see if it has already been reported via -the issue search. - -Additionally, we have labelled questions for easy follow-up as [questions](https://github.com/verdaccio/verdaccio/labels/question). - -If so, up-vote it (using GitHub reactions) or add additional helpful details to -the existing issue to show that it's affecting multiple people. - -### Check Website For Solution - -Some of the most popular topics can be found in our website(http://www.verdaccio.org/docs/en/installation.html) - -### Chat - -Questions can be asked via [Discord](http://chat.verdaccio.org/) - -**Please use the `#questions#` and `#development` channels.** - -### Check If It's Been Fixed - -Check if the issue has been fixed — try to reproduce it using the latest -`master` or development branch in the repository. - -## Request Features - -New feature requests are welcome. Analyse whether the idea fits within scope of -the project. Then, detail your request, ensuring context and use case is provided. - -**Please provide:** - -* A detailed description the advantages of your request -* Whether or not it's compatible with `npm` and `yarn` -* A potential implementation or design -* Whatever else you have in your mind 🤓 - -### Submitting a Pull Request - -The following are the steps you should follow when creating a pull request. -Subsequent pull requests only need to follow step 3 and beyond. - -1. Fork the repository on GitHub -2. Clone the forked repository to your machine -3. Make your changes and commit them to your local repository -4. Rebase and push your commits to your GitHub remote fork/repository -5. Issue a Pull Request to the official repository -6. Your Pull Request is reviewed by a committer and merged into the repository - -**NOTE**: While there are other ways to accomplish the steps using other tools, -the examples here will assume most actions will be performed via `git` on -command line. - -For more information on maintaining a fork, please see the GitHub Help article -titled [Fork a Repo](https://help.github.com/articles/fork-a-repo/), and -information on [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing). - -### Make Changes and Commit - -#### Before Commit - -Before committing, **you must ensure there are no linting errors and -all tests pass.** - -To do this, run all tests (including e2e): - -```bash -yarn test:all -``` - -Then, and only then, you can create your pull request. - -#### Commit Guidelines - -We follow the [conventional commit messages](https://conventionalcommits.org/) -convention in order to automate CHANGELOG generation and to automate -semantic versioning. - -For example: - -* `feat: A new feature` -* `fix: A bug fix` - -A commit of the type feat introduces a new feature to the codebase -(this correlates with MINOR in semantic versioning). - -e.g.: - -``` -feat: xxxxxxxxxx -``` - -A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning). - -e.g.: - -``` -fix: xxxxxxxxxx -``` - -Commits types such as as `docs:`,`style:`,`refactor:`,`perf:`,`test:` -and `chore:` are valid but have no effect on versioning. **It would be great if you use them.** - -All commits message are going to be validated when they are created using husky hooks. - -**PRs that do not follow the commit message guidelines will not be merged.** - -## Update Tests - -**Any change in source code must include test updates**. - -If you need help with how testing works, please [refer to the following guide](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests). - -**If you are introducing new features, you MUST include new tests. PRs for -features without tests will not be merged.** - -Things excluded from tests: -* Documentation -* Website -* Build -* Deployment -* Assets -* Flow types - -## Develop Plugins - -Plugins are add-ons that extend the functionality of the application. - -If you want to develop your own plugin: - -1. Check whether there is a legacy Sinopia plugin for the feature that you need - via [npmjs](https://www.npmjs.com/search?q=sinopia) -2. Keep in mind the [life-cycle to load a plugin](https://verdaccio.org/docs/en/dev-plugins) -3. You are free to host your plugin in your repository or ours (just ask) -4. Provide a detailed description of your plugin to help users understand it diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md deleted file mode 100644 index 07065388a..000000000 --- a/CONTRIBUTORS.md +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Juan Picado

📖 💻 🚇 📋 📝 🚧

Sergio Herrera

🚇 🚧

Daniel Ruf

🛡️ 🚇 🚧

Priscila Oliveira

🎨 💻 🚧

Ayush Sharma

🚇 💻 🎨

Trent Earl

💻

jmwilkinson

💻

Roger Meier

🔌

James George

💻

AvailCat

💻 🚇 🚧

Lucius Gaitán

💻

Ramon Henrique Ornelas

💻

UnitedMarsupials-zz

💻

Ryan Graham

💻

coolsp

💻

Ashish Surana

💻

Wang Yifei

💻

Liran Tal

💻

Breno Rodrigues

💻

jachstet-sea

💻

Patrik Votoček

💻

jess

💻

toolsofraj

💻

Jian-Chen Chen (jesse)

🌍 💻
- - - - diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index df4d2c4d5..000000000 --- a/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -FROM --platform=${BUILDPLATFORM:-linux/amd64} node:14-alpine as builder - -ENV NODE_ENV=production \ - VERDACCIO_BUILD_REGISTRY=https://registry.verdaccio.org - -RUN apk --no-cache add openssl ca-certificates wget && \ - apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python2 && \ - wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \ - wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \ - apk add glibc-2.25-r0.apk - -WORKDIR /opt/verdaccio-build -COPY . . - -RUN yarn config set npmRegistryServer $VERDACCIO_BUILD_REGISTRY && \ - yarn config set enableProgressBars false && \ - yarn config set enableTelemetry false && \ - yarn install && \ - yarn lint && \ - yarn code:docker-build && \ - yarn cache clean && \ - yarn workspaces focus --production - - - -FROM node:14-alpine -LABEL maintainer="https://github.com/verdaccio/verdaccio" - -ENV VERDACCIO_APPDIR=/opt/verdaccio \ - VERDACCIO_USER_NAME=verdaccio \ - VERDACCIO_USER_UID=10001 \ - VERDACCIO_PORT=4873 \ - VERDACCIO_PROTOCOL=http -ENV PATH=$VERDACCIO_APPDIR/docker-bin:$PATH \ - HOME=$VERDACCIO_APPDIR - -WORKDIR $VERDACCIO_APPDIR - -RUN apk --no-cache add openssl dumb-init - -RUN mkdir -p /verdaccio/storage /verdaccio/plugins /verdaccio/conf - -COPY --from=builder /opt/verdaccio-build . - -ADD conf/docker.yaml /verdaccio/conf/config.yaml - -RUN adduser -u $VERDACCIO_USER_UID -S -D -h $VERDACCIO_APPDIR -g "$VERDACCIO_USER_NAME user" -s /sbin/nologin $VERDACCIO_USER_NAME && \ - chmod -R +x $VERDACCIO_APPDIR/bin $VERDACCIO_APPDIR/docker-bin && \ - chown -R $VERDACCIO_USER_UID:root /verdaccio/storage && \ - chmod -R g=u /verdaccio/storage /etc/passwd - -USER $VERDACCIO_USER_UID - -EXPOSE $VERDACCIO_PORT - -VOLUME /verdaccio/storage - -ENTRYPOINT ["uid_entrypoint"] - -CMD $VERDACCIO_APPDIR/bin/verdaccio --config /verdaccio/conf/config.yaml --listen $VERDACCIO_PROTOCOL://0.0.0.0:$VERDACCIO_PORT diff --git a/LICENSE b/LICENSE deleted file mode 100644 index a969d7d06..000000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Verdaccio community - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index b0c50bf83..059e184aa 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,6 @@ ![verdaccio logo](https://cdn.verdaccio.dev/readme/verdaccio@2x.png) -# Version 4 -**⚠️⚠️ Verdaccio 4.x is deprecated and won't longer receive security support, please upgrade to 5.x or higher ⚠️⚠** +> Verdaccio 4.x is deprecated and is not longer receive any support, please upgrade to the latest version. -[Please read the migration guidelines](https://verdaccio.org/blog/2021/04/14/verdaccio-5-migration-guide). - -## Open Collective Sponsors - -Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/verdaccio#sponsor)] - -[![sponsor](https://opencollective.com/verdaccio/sponsor/0/avatar.svg)](https://opencollective.com/verdaccio/sponsor/0/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/1/avatar.svg)](https://opencollective.com/verdaccio/sponsor/1/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/2/avatar.svg)](https://opencollective.com/verdaccio/sponsor/2/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/3/avatar.svg)](https://opencollective.com/verdaccio/sponsor/3/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/4/avatar.svg)](https://opencollective.com/verdaccio/sponsor/4/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/5/avatar.svg)](https://opencollective.com/verdaccio/sponsor/5/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/6/avatar.svg)](https://opencollective.com/verdaccio/sponsor/6/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/7/avatar.svg)](https://opencollective.com/verdaccio/sponsor/7/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/8/avatar.svg)](https://opencollective.com/verdaccio/sponsor/8/website) -[![sponsor](https://opencollective.com/verdaccio/sponsor/9/avatar.svg)](https://opencollective.com/verdaccio/sponsor/9/website) - -## Open Collective Backers - -Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio#backer)] - -[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio#backers) - -## Special Thanks - -Thanks to the following companies to help us to achieve our goals providing free open source licenses. - -[![jetbrain](assets/thanks/jetbrains/logo.png)](https://www.jetbrains.com/) -[![crowdin](assets/thanks/crowdin/logo.png)](https://crowdin.com/) -[![browserstack](https://cdn.verdaccio.dev/readme/browserstack_logo.png)](https://www.browserstack.com/) -[![balsamiq](assets/thanks/balsamiq/logo.jpg)](https://balsamiq.com/) - -### License - -Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE) - -The Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is -[Creative Commons licensed](https://creativecommons.org/licenses/by/4.0/). +- [Migration 5.x guidelines](https://verdaccio.org/blog/2021/04/14/verdaccio-5-migration-guide) diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index c4cb30e69..000000000 --- a/SECURITY.md +++ /dev/null @@ -1,75 +0,0 @@ -# Security Policy - -## Supported versions - -The following table describes the versions of this project that are currently supported with security updates: - -| Version | Supported | -| ------- | --------- | -| 2.x | :x: | -| 3.x | :x: | -| 4.x | :x: | - -## Responsible disclosure security policy - -A responsible disclosure policy helps protect users of the project from publicly disclosed security vulnerabilities without a fix by employing a process where vulnerabilities are first triaged in a private manner, and only publicly disclosed after a reasonable time period that allows patching the vulnerability and provides an upgrade path for users. - -When contacting us directly via email, we will do our best efforts to respond in a reasonable time to resolve the issue. When contacting a security program their disclosure policy will provide details on timeframe, processes and paid bounties. - -We kindly ask you to refrain from malicious acts that put our users, the project, or any of the project’s team members at risk. - -## Reporting a security issue - -> Please do not use the provided email address to report issues which are not related to security vulnerabilities - -At Verdaccio, we consider the security of our systems a top priority. But no matter how much effort we put into system security, there can still be vulnerabilities present. - -If you discover a security vulnerability, please use one of the following means of communications to report it to us: - -- Report the security issue to the Node.js Security WG through the [HackerOne program](https://hackerone.com/nodejs-ecosystem) for ecosystem modules on npm, or to [Snyk Security Team](https://snyk.io/vulnerability-disclosure). They will help triage the security issue and work with all involved parties to remediate and release a fix. - -Note that time-frame and processes are subject to each program’s own policy. - -- Report the security issue to the project maintainers directly at verdaccio@pm.me. If the report contains highly sensitive information, please be advised to encrypt your findings using our [PGP key](https://verdaccio.nyc3.digitaloceanspaces.com/gpg/publickey.verdaccio@pm.me.asc) which is also available in this document. - -Your efforts to responsibly disclose your findings are sincerely appreciated and will be taken into account to acknowledge your contributions. - -## PGP key - -The following is this project’s PGP key which should be used to encrypt any sensitive information shared on unsecured medium such as e-mails: - -``` ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: OpenPGP.js v4.5.1 -Comment: https://openpgpjs.org - -xsBNBFzm3asBCACxnJDv1r6dxiM2e8iqS6B7fxY2I3X1Rc+3m8mhXOwVwRG4 -AOrQ417oSzsVLf4iocg+DWrtxzY79odTLJEovVt79rxwqIIl4y96tH+29kLB -ao7eaYZacfstonVkBAmxBLaYv1x7cqWuukm6sBCOxapW1X9BcbR3vOghDziY -/1AwNjupAOPvKNMtghjrdh3w0iMfZS1hw28zjM1oCeezEil+CTjgQDN+69qS -UFG/BInJ7CVn9TvhU85inSwpxVa576fkhvFoNUrGvFvYRWtXRJndbRdBodVj -C9At/Gb2IeNf7xqXH2KloZ1yaVNVSzLX4jqrMWeF+9Z12SjUyL6G9TwDABEB -AAHNIXZlcmRhY2Npb0BwbS5tZSA8dmVyZGFjY2lvQHBtLm1lPsLAdQQQAQgA -HwUCXObdqwYLCQcIAwIEFQgKAgMWAgECGQECGwMCHgEACgkQpSvoGbwFJYhn -2wf+JF+yLQXh1EFMih6lpbx243hvglgOWmcigYVRh5mSfULcdW2pmkPQXqhE -DW73qqwN9G9piiPnGMw7sKoB7XJVuFKyvHOYKtem5UQVRvs2rTxnSc5qFcUJ -0w3Tw/pZ9B3fYAEYti2B/GsSOzaECfBKCFOg15xXGAdwfgff5FsorN1Gb6MG -eCO9c8faSF/+fQUCfokwMDVzxXQFZEMx3q/rHVJ/Fm+XelZ+00c9fdyiuPW5 -dM9gATle7lz0iPtxaUDGLW8QZ/7b6O8IJ1kle0tL4AE++bXsVWxNdzhlNohH -Hn09sIdFnG4ySTz4YJjiDd70ZdQjOGEGvutymEIN1xcNq87ATQRc5t2rAQgA -yX2ZhUCtrz7lzK0992yveB+duVF//yo9Pei2ra9Z3GNmA+oWlRH1FTWpAmVH -uDdUchTnxAwaKntabt3Mb1AgEZwrdiG4LuHFbdx2ls93BJ5lXdp7vB6pVf3N -IrhHKyQ/Y5L5kMSj/GjrhO19zmj6mPPEgb3M3ZIZjQUF4pro0pExuAPA9Wxe -awn5+0BUYFs4mZQDtTdiVuz5tWA0fNtt1aBfOPA97tmn18y4b1b0iQIJQpep -BVVnFLeAZOevDcBJFbmQOdAjufWSSgpzX+FZ3rx6RVwwKxUiVQyUuwSQkKh5 -RufZ5zE0y7Fe/YlWXbKoj4zNJqYtjPSPngQRWf7UpwARAQABwsBfBBgBCAAJ -BQJc5t2rAhsMAAoJEKUr6Bm8BSWIoYQH+QDw0Z84tZK4N1lh49hYyohs6vNU -9kG69nKLQA5NymPtTxh8YOJhdJL697FkvKI4OGEO2FXUmcJS3CBJ2nBVKMq2 -1biDRKC4OhIU2RgFhS6bHy6VOn24EYs77T+zX8YXpz8ulYVln2b0QZCubN0Z -L50tEC8HnuVMVN+/pqITdD3FjzwGZgHdW8qkKgD6qhObHCl8/cW2buCsaIAY -eZWVPgPY1S1U0V608qYNtUCkrmUW5Sl6YLvz7JTvTsaym5mzyFXF3ErAURgI -/v4XaWmRgNGIxbIxsFGuEs+KIKBQDJmtvJCVpBNS5IYnFf5h/LA5cfkwMKJt -wXhyE0b/iDs60ZM= -=QWXs ------END PGP PUBLIC KEY BLOCK----- -``` diff --git a/assets/bitmap/banner-background/verdaccio-banner.png b/assets/bitmap/banner-background/verdaccio-banner.png deleted file mode 100644 index 2f7d27afc..000000000 Binary files a/assets/bitmap/banner-background/verdaccio-banner.png and /dev/null differ diff --git a/assets/bitmap/banner-background/verdaccio-banner@2x.png b/assets/bitmap/banner-background/verdaccio-banner@2x.png deleted file mode 100644 index 338c9b223..000000000 Binary files a/assets/bitmap/banner-background/verdaccio-banner@2x.png and /dev/null differ diff --git a/assets/bitmap/banner-background/verdaccio-banner@3x.png b/assets/bitmap/banner-background/verdaccio-banner@3x.png deleted file mode 100644 index 2985954e2..000000000 Binary files a/assets/bitmap/banner-background/verdaccio-banner@3x.png and /dev/null differ diff --git a/assets/bitmap/banner-background/verdaccio.png b/assets/bitmap/banner-background/verdaccio.png deleted file mode 100644 index 0ceee5faf..000000000 Binary files a/assets/bitmap/banner-background/verdaccio.png and /dev/null differ diff --git a/assets/bitmap/banner-background/verdaccio@2x.png b/assets/bitmap/banner-background/verdaccio@2x.png deleted file mode 100644 index 462f73920..000000000 Binary files a/assets/bitmap/banner-background/verdaccio@2x.png and /dev/null differ diff --git a/assets/bitmap/banner-background/verdaccio@3x.png b/assets/bitmap/banner-background/verdaccio@3x.png deleted file mode 100644 index 404c10519..000000000 Binary files a/assets/bitmap/banner-background/verdaccio@3x.png and /dev/null differ diff --git a/assets/bitmap/banner-transparent-background/verdaccio.png b/assets/bitmap/banner-transparent-background/verdaccio.png deleted file mode 100644 index 0455cf854..000000000 Binary files a/assets/bitmap/banner-transparent-background/verdaccio.png and /dev/null differ diff --git a/assets/bitmap/banner-transparent-background/verdaccio@2x.png b/assets/bitmap/banner-transparent-background/verdaccio@2x.png deleted file mode 100644 index 86986e179..000000000 Binary files a/assets/bitmap/banner-transparent-background/verdaccio@2x.png and /dev/null differ diff --git a/assets/bitmap/banner-transparent-background/verdaccio@3x.png b/assets/bitmap/banner-transparent-background/verdaccio@3x.png deleted file mode 100644 index c7f53983d..000000000 Binary files a/assets/bitmap/banner-transparent-background/verdaccio@3x.png and /dev/null differ diff --git a/assets/bitmap/logo-background-title/verdaccio-tiny-text.png b/assets/bitmap/logo-background-title/verdaccio-tiny-text.png deleted file mode 100644 index 8ed02d52b..000000000 Binary files a/assets/bitmap/logo-background-title/verdaccio-tiny-text.png and /dev/null differ diff --git a/assets/bitmap/logo-background-title/verdaccio-tiny-text@2x.png b/assets/bitmap/logo-background-title/verdaccio-tiny-text@2x.png deleted file mode 100644 index 655a12657..000000000 Binary files a/assets/bitmap/logo-background-title/verdaccio-tiny-text@2x.png and /dev/null differ diff --git a/assets/bitmap/logo-background-title/verdaccio-tiny-text@3x.png b/assets/bitmap/logo-background-title/verdaccio-tiny-text@3x.png deleted file mode 100644 index 83ccec527..000000000 Binary files a/assets/bitmap/logo-background-title/verdaccio-tiny-text@3x.png and /dev/null differ diff --git a/assets/bitmap/logo-background/verdaccio-tiny.png b/assets/bitmap/logo-background/verdaccio-tiny.png deleted file mode 100644 index 669ba454b..000000000 Binary files a/assets/bitmap/logo-background/verdaccio-tiny.png and /dev/null differ diff --git a/assets/bitmap/logo-background/verdaccio-tiny@2x.png b/assets/bitmap/logo-background/verdaccio-tiny@2x.png deleted file mode 100644 index 035304439..000000000 Binary files a/assets/bitmap/logo-background/verdaccio-tiny@2x.png and /dev/null differ diff --git a/assets/bitmap/logo-background/verdaccio-tiny@3x.png b/assets/bitmap/logo-background/verdaccio-tiny@3x.png deleted file mode 100644 index 47bd693aa..000000000 Binary files a/assets/bitmap/logo-background/verdaccio-tiny@3x.png and /dev/null differ diff --git a/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text.png b/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text.png deleted file mode 100644 index a6c9c5176..000000000 Binary files a/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text.png and /dev/null differ diff --git a/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text@2x.png b/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text@2x.png deleted file mode 100644 index 4546cb4c4..000000000 Binary files a/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text@2x.png and /dev/null differ diff --git a/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text@3x.png b/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text@3x.png deleted file mode 100644 index 71df3b015..000000000 Binary files a/assets/bitmap/logo-black-white-title/verdaccio-blackwhite-text@3x.png and /dev/null differ diff --git a/assets/bitmap/logo-black-white/verdaccio-blackwhite.png b/assets/bitmap/logo-black-white/verdaccio-blackwhite.png deleted file mode 100644 index 8a46f2323..000000000 Binary files a/assets/bitmap/logo-black-white/verdaccio-blackwhite.png and /dev/null differ diff --git a/assets/bitmap/logo-black-white/verdaccio-blackwhite@2x.png b/assets/bitmap/logo-black-white/verdaccio-blackwhite@2x.png deleted file mode 100644 index cfe1ecd17..000000000 Binary files a/assets/bitmap/logo-black-white/verdaccio-blackwhite@2x.png and /dev/null differ diff --git a/assets/bitmap/logo-black-white/verdaccio-blackwhite@3x.png b/assets/bitmap/logo-black-white/verdaccio-blackwhite@3x.png deleted file mode 100644 index 49de9376b..000000000 Binary files a/assets/bitmap/logo-black-white/verdaccio-blackwhite@3x.png and /dev/null differ diff --git a/assets/bitmap/logo-name-bakground/logo-small-header-bottom.png b/assets/bitmap/logo-name-bakground/logo-small-header-bottom.png deleted file mode 100644 index 7835d3bc0..000000000 Binary files a/assets/bitmap/logo-name-bakground/logo-small-header-bottom.png and /dev/null differ diff --git a/assets/bitmap/logo-name-bakground/logo-small-header-bottom@2x.png b/assets/bitmap/logo-name-bakground/logo-small-header-bottom@2x.png deleted file mode 100644 index 6a2245486..000000000 Binary files a/assets/bitmap/logo-name-bakground/logo-small-header-bottom@2x.png and /dev/null differ diff --git a/assets/bitmap/logo-name-bakground/logo-small-header-bottom@3x.png b/assets/bitmap/logo-name-bakground/logo-small-header-bottom@3x.png deleted file mode 100644 index b8fd3a79e..000000000 Binary files a/assets/bitmap/logo-name-bakground/logo-small-header-bottom@3x.png and /dev/null differ diff --git a/assets/bitmap/logo-transparent/logo-twitter-white-background.png b/assets/bitmap/logo-transparent/logo-twitter-white-background.png deleted file mode 100644 index 0e31e2653..000000000 Binary files a/assets/bitmap/logo-transparent/logo-twitter-white-background.png and /dev/null differ diff --git a/assets/bitmap/logo-transparent/logo-twitter.png b/assets/bitmap/logo-transparent/logo-twitter.png deleted file mode 100644 index 441340767..000000000 Binary files a/assets/bitmap/logo-transparent/logo-twitter.png and /dev/null differ diff --git a/assets/bitmap/social-banner/verdaccio.github.io.png b/assets/bitmap/social-banner/verdaccio.github.io.png deleted file mode 100644 index 050a21736..000000000 Binary files a/assets/bitmap/social-banner/verdaccio.github.io.png and /dev/null differ diff --git a/assets/bitmap/social-banner/verdaccio.github.io@2x.png b/assets/bitmap/social-banner/verdaccio.github.io@2x.png deleted file mode 100644 index 9be993a99..000000000 Binary files a/assets/bitmap/social-banner/verdaccio.github.io@2x.png and /dev/null differ diff --git a/assets/bitmap/social-banner/verdaccio.github.io@3x.png b/assets/bitmap/social-banner/verdaccio.github.io@3x.png deleted file mode 100644 index 2a7b149d3..000000000 Binary files a/assets/bitmap/social-banner/verdaccio.github.io@3x.png and /dev/null differ diff --git a/assets/bitmap/twitter/github-template.png b/assets/bitmap/twitter/github-template.png deleted file mode 100644 index c9584f4fa..000000000 Binary files a/assets/bitmap/twitter/github-template.png and /dev/null differ diff --git a/assets/bitmap/twitter/twitter-header.png b/assets/bitmap/twitter/twitter-header.png deleted file mode 100644 index 91a708085..000000000 Binary files a/assets/bitmap/twitter/twitter-header.png and /dev/null differ diff --git a/assets/bitmap/twitter/twitter-social-banner-tittle-light.png b/assets/bitmap/twitter/twitter-social-banner-tittle-light.png deleted file mode 100644 index bea5c7cc4..000000000 Binary files a/assets/bitmap/twitter/twitter-social-banner-tittle-light.png and /dev/null differ diff --git a/assets/bitmap/twitter/twitter-social-banner-tittle.png b/assets/bitmap/twitter/twitter-social-banner-tittle.png deleted file mode 100644 index 6cf94450c..000000000 Binary files a/assets/bitmap/twitter/twitter-social-banner-tittle.png and /dev/null differ diff --git a/assets/bitmap/twitter/twitter-social-banner.png b/assets/bitmap/twitter/twitter-social-banner.png deleted file mode 100644 index 6cd93fba5..000000000 Binary files a/assets/bitmap/twitter/twitter-social-banner.png and /dev/null differ diff --git a/assets/bitmap/verdaccio@2x.png b/assets/bitmap/verdaccio@2x.png deleted file mode 100644 index 462f73920..000000000 Binary files a/assets/bitmap/verdaccio@2x.png and /dev/null differ diff --git a/assets/fonts/Apache License.txt b/assets/fonts/Apache License.txt deleted file mode 100755 index 989e2c59e..000000000 --- a/assets/fonts/Apache License.txt +++ /dev/null @@ -1,201 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/assets/fonts/OpenSans-Bold.ttf b/assets/fonts/OpenSans-Bold.ttf deleted file mode 100755 index fd79d43be..000000000 Binary files a/assets/fonts/OpenSans-Bold.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-BoldItalic.ttf b/assets/fonts/OpenSans-BoldItalic.ttf deleted file mode 100755 index 9bc800958..000000000 Binary files a/assets/fonts/OpenSans-BoldItalic.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-ExtraBold.ttf b/assets/fonts/OpenSans-ExtraBold.ttf deleted file mode 100755 index 21f6f84a0..000000000 Binary files a/assets/fonts/OpenSans-ExtraBold.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-ExtraBoldItalic.ttf b/assets/fonts/OpenSans-ExtraBoldItalic.ttf deleted file mode 100755 index 31cb68834..000000000 Binary files a/assets/fonts/OpenSans-ExtraBoldItalic.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-Italic.ttf b/assets/fonts/OpenSans-Italic.ttf deleted file mode 100755 index c90da48ff..000000000 Binary files a/assets/fonts/OpenSans-Italic.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-Light.ttf b/assets/fonts/OpenSans-Light.ttf deleted file mode 100755 index 0d381897d..000000000 Binary files a/assets/fonts/OpenSans-Light.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-LightItalic.ttf b/assets/fonts/OpenSans-LightItalic.ttf deleted file mode 100755 index 68299c4bc..000000000 Binary files a/assets/fonts/OpenSans-LightItalic.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-Regular.ttf b/assets/fonts/OpenSans-Regular.ttf deleted file mode 100755 index db433349b..000000000 Binary files a/assets/fonts/OpenSans-Regular.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-Semibold.ttf b/assets/fonts/OpenSans-Semibold.ttf deleted file mode 100755 index 1a7679e39..000000000 Binary files a/assets/fonts/OpenSans-Semibold.ttf and /dev/null differ diff --git a/assets/fonts/OpenSans-SemiboldItalic.ttf b/assets/fonts/OpenSans-SemiboldItalic.ttf deleted file mode 100755 index 59b6d16b0..000000000 Binary files a/assets/fonts/OpenSans-SemiboldItalic.ttf and /dev/null differ diff --git a/assets/gif/verdaccio_big_30.gif b/assets/gif/verdaccio_big_30.gif deleted file mode 100644 index 564d78c8b..000000000 Binary files a/assets/gif/verdaccio_big_30.gif and /dev/null differ diff --git a/assets/svg/Logo-Full.svg b/assets/svg/Logo-Full.svg deleted file mode 100644 index 3b9e61392..000000000 --- a/assets/svg/Logo-Full.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - Logo-Full - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - Verdaccio - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/logo-banner.svg b/assets/svg/logo-banner.svg deleted file mode 100644 index 850a8c09d..000000000 --- a/assets/svg/logo-banner.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - verdaccio-banner - Created with Sketch. - - - - - - - - - Verdaccio - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/logo-blackwhite.svg b/assets/svg/logo-blackwhite.svg deleted file mode 100644 index 91b6a120e..000000000 --- a/assets/svg/logo-blackwhite.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - Logo-Black - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/logo-small-title.svg b/assets/svg/logo-small-title.svg deleted file mode 100644 index a407db277..000000000 --- a/assets/svg/logo-small-title.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - logo-small-header-bottom - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - Verdaccio - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/logo-small.svg b/assets/svg/logo-small.svg deleted file mode 100644 index b9bda62e5..000000000 --- a/assets/svg/logo-small.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - Logo - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/social-background.svg b/assets/svg/social-background.svg deleted file mode 100644 index 3af393a99..000000000 --- a/assets/svg/social-background.svg +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lightweight private npm proxy registry - - - - - - - - - - - - - - - - - - - - - Verdaccio - - - - - - - - \ No newline at end of file diff --git a/assets/svg/social-no-text.svg b/assets/svg/social-no-text.svg deleted file mode 100644 index 34199646a..000000000 --- a/assets/svg/social-no-text.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/verdaccio-banner-background.svg b/assets/svg/verdaccio-banner-background.svg deleted file mode 100644 index 629f055bc..000000000 --- a/assets/svg/verdaccio-banner-background.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - verdaccio - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - Verdaccio - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/verdaccio-blackwhite-text.svg b/assets/svg/verdaccio-blackwhite-text.svg deleted file mode 100644 index 6a2fabb6b..000000000 --- a/assets/svg/verdaccio-blackwhite-text.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - Verdaccio - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/verdaccio-blackwhite.svg b/assets/svg/verdaccio-blackwhite.svg deleted file mode 100644 index 9d50c6933..000000000 --- a/assets/svg/verdaccio-blackwhite.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - verdaccio-blackwhite - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/verdaccio-green-no-bg.svg b/assets/svg/verdaccio-green-no-bg.svg deleted file mode 100644 index bc03ed19e..000000000 --- a/assets/svg/verdaccio-green-no-bg.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/svg/verdaccio-tiny-text.svg b/assets/svg/verdaccio-tiny-text.svg deleted file mode 100644 index 4cf661d95..000000000 --- a/assets/svg/verdaccio-tiny-text.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - Verdaccio - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/thanks/balsamiq/logo.jpg b/assets/thanks/balsamiq/logo.jpg deleted file mode 100644 index c9080e590..000000000 Binary files a/assets/thanks/balsamiq/logo.jpg and /dev/null differ diff --git a/assets/thanks/crowdin/logo.png b/assets/thanks/crowdin/logo.png deleted file mode 100644 index 7ad3b2dc2..000000000 Binary files a/assets/thanks/crowdin/logo.png and /dev/null differ diff --git a/assets/thanks/jetbrains/logo.png b/assets/thanks/jetbrains/logo.png deleted file mode 100644 index 1ced6f3ab..000000000 Binary files a/assets/thanks/jetbrains/logo.png and /dev/null differ diff --git a/assets/verdaccio-logo.sketch b/assets/verdaccio-logo.sketch deleted file mode 100644 index f3776c63c..000000000 Binary files a/assets/verdaccio-logo.sketch and /dev/null differ diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e785b9b9c..000000000 --- a/babel.config.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - presets: [ - [ - '@babel/env', - { - targets: { - node: '8' - }, - }, - ], - '@babel/typescript', - ], - plugins: [ - 'babel-plugin-dynamic-import-node', - '@babel/proposal-class-properties', - '@babel/proposal-object-rest-spread', - '@babel/plugin-proposal-optional-chaining', - '@babel/plugin-proposal-nullish-coalescing-operator', - '@babel/syntax-dynamic-import', - ], - ignore: ['**/*.d.ts'], -}; diff --git a/bin/verdaccio b/bin/verdaccio deleted file mode 100755 index b6e051fb8..000000000 --- a/bin/verdaccio +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node - -require('../build/lib/cli'); diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index 631140424..000000000 --- a/codecov.yml +++ /dev/null @@ -1,29 +0,0 @@ -codecov: - require_ci_to_pass: yes - -coverage: - precision: 2 - round: down - range: "80...85" - - status: - project: - default: - target: auto - threshold: 1% - base: auto - patch: no - changes: no - -parsers: - gcov: - branch_detection: - conditional: yes - loop: yes - method: no - macro: no - -comment: - layout: "diff,flags,tree" - behavior: default - require_changes: no \ No newline at end of file diff --git a/conf/README.md b/conf/README.md deleted file mode 100644 index 4be65ec55..000000000 --- a/conf/README.md +++ /dev/null @@ -1,9 +0,0 @@ -## Looking 👀 for Documentation? - -This directory host the default configuration file, but you can find more here: - -* [https://verdaccio.org/docs/en/installation](https://verdaccio.org/docs/en/installation) -* [Chat with us](http://chat.verdaccio.org) <- You need a Discord account -* [Follow us on Twitter](https://twitter.com/verdaccio_npm) - -Enjoy Verdaccio ! diff --git a/conf/default.yaml b/conf/default.yaml deleted file mode 100644 index 5c60919ed..000000000 --- a/conf/default.yaml +++ /dev/null @@ -1,88 +0,0 @@ -# -# This is the default config file. It allows all users to do anything, -# so don't use it on production systems. -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: ./storage -# path to a directory with plugins to include -plugins: ./plugins - -web: - title: Verdaccio - # comment out to disable gravatar support - # gravatar: false - # by default packages are ordercer ascendant (asc|desc) - # sort_packages: asc - # convert your UI to the dark side - # darkMode: true - -# translate your registry, api i18n not available yet -# i18n: -# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations -# web: en-US - -auth: - htpasswd: - file: ./htpasswd - # Maximum amount of users allowed to register, defaults to "+inf". - # You can set this to -1 to disable registration. - # max_users: 1000 - -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@*/*': - # scoped packages - access: $all - publish: $authenticated - unpublish: $authenticated - proxy: npmjs - - '**': - # allow all users (including non-authenticated users) to read and - # publish all packages - # - # you can specify usernames/groupnames (depending on your auth plugin) - # and three keywords: "$all", "$anonymous", "$authenticated" - access: $all - - # allow all known users to publish/publish packages - # (anyone can register by default, remember?) - publish: $authenticated - unpublish: $authenticated - - # if package is not available locally, proxy requests to 'npmjs' registry - proxy: npmjs - -# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections. -# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout. -# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough. -server: - keepAliveTimeout: 60 - -middlewares: - audit: - enabled: true - -# log settings -logs: - - { type: stdout, format: pretty, level: http } - #- {type: file, path: verdaccio.log, level: info} -#experiments: -# # support for npm token command -# token: false -# # support for the new v1 search endpoint, functional by incomplete read more on ticket 1732 -# search: false -# # disable writing body size to logs, read more on ticket 1912 -# bytesin_off: false - -# This affect the web and api (not developed yet) -#i18n: -#web: en-US diff --git a/conf/docker.yaml b/conf/docker.yaml deleted file mode 100644 index 95b4569a5..000000000 --- a/conf/docker.yaml +++ /dev/null @@ -1,85 +0,0 @@ -# -# This is the config file used for the docker images. -# It allows all users to do anything, so don't use it on production systems. -# -# Do not configure host and port under `listen` in this file -# as it will be ignored when using docker. -# see https://verdaccio.org/docs/en/docker#docker-and-custom-port-configuration -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: /verdaccio/storage/data -# path to a directory with plugins to include -plugins: /verdaccio/plugins - -web: - # WebUI is enabled as default, if you want disable it, just uncomment this line - #enable: false - title: Verdaccio - # comment out to disable gravatar support - # gravatar: false - # by default packages are ordercer ascendant (asc|desc) - # sort_packages: asc - # darkMode: true - -# translate your registry, api i18n not available yet -# i18n: -# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations -# web: en-US - -auth: - htpasswd: - file: /verdaccio/storage/htpasswd - # Maximum amount of users allowed to register, defaults to "+infinity". - # You can set this to -1 to disable registration. - # max_users: 1000 - -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@*/*': - # scoped packages - access: $all - publish: $authenticated - unpublish: $authenticated - proxy: npmjs - - '**': - # allow all users (including non-authenticated users) to read and - # publish all packages - # - # you can specify usernames/groupnames (depending on your auth plugin) - # and three keywords: "$all", "$anonymous", "$authenticated" - access: $all - - # allow all known users to publish/publish packages - # (anyone can register by default, remember?) - publish: $authenticated - unpublish: $authenticated - - # if package is not available locally, proxy requests to 'npmjs' registry - proxy: npmjs - -middlewares: - audit: - enabled: true - -# log settings -logs: - - { type: stdout, format: pretty, level: http } - #- {type: file, path: verdaccio.log, level: info} -#experiments: -# # support for npm token command -# token: false -# # support for the new v1 search endpoint, functional by incomplete read more on ticket 1732 -# search: false - -# This affect the web and api (not developed yet) -#i18n: -#web: en-US diff --git a/conf/full.yaml b/conf/full.yaml deleted file mode 100644 index fd45178be..000000000 --- a/conf/full.yaml +++ /dev/null @@ -1,10 +0,0 @@ -## This file is deprecated and the content does not exist anymore -## we highly recommend either visit -## https://verdaccio.org/docs/en/configuration -## or read the local file -## https://github.com/verdaccio/website/tree/master/docs/config.md - -## contribute with translations - -## You can contribute translating documentation through the crowdin platform -## https://crowdin.com/project/verdaccio diff --git a/contrib/aws/cloudformation-ec2-efs.yaml b/contrib/aws/cloudformation-ec2-efs.yaml deleted file mode 100644 index 7921cb140..000000000 --- a/contrib/aws/cloudformation-ec2-efs.yaml +++ /dev/null @@ -1,338 +0,0 @@ -# Instructions: -# 1. Check all "TODO" comments and make changes if required for your environment -# 2. Provide values for all required parameters and any optional parameters desired - -AWSTemplateFormatVersion: '2010-09-09' -Description: Verdaccio - NPM cache / private registry -Parameters: - # REQUIRED PARAMETERS - Ami: - Type: AWS::EC2::Image::Id - Description: > - Amazon Linux 2 AMI ID for the proxy instances. Find it with - 'aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' - Ec2KeyPair: - Type: String - Description: EC2 Key Pair to use for the proxy instances. - HttpsCertificateArn: - Type: String - Description: ACM certificate ARN to use - DnsHostedZoneName: - Type: String - Description: > - The route 53 hosted zone name to create the `npm.` record in. Do not - include the trailing dot! - Vpc: - Type: AWS::EC2::VPC::Id - Description: VPC to create this stack inside - AsgSubnets: - Type: List - Description: > - Subnets the auto scaling group should span. - LbSubnets: - Type: List - Description: > - Subnets the load balancer should span. - VerdaccioConfigUrl: - Type: String - Description: URL the ASG instances can download Verdaccio's config.yaml from. - # TODO: if you aren't using htpasswd authentication, remove this parameter - # and the associated user data reference. - VerdaccioHtpasswdUrl: - Type: String - Description: URL the ASG instances can download Verdaccio's htpasswd from. - - # OPTIONAL PARAMETERS - DockerImage: - Type: String - Default: verdaccio/verdaccio:3 - AsgMinSize: - Type: String - Default: '1' - AsgMaxSize: - Type: String - Default: '1' - AsgInstanceType: - Type: String - Default: t3.nano - DnsName: - Type: String - Default: npm - Description: The Route 53 record created is $DnsName.$DnsHostedZoneName - -Resources: - Asg: - Type: AWS::AutoScaling::AutoScalingGroup - DependsOn: - - EfsMountA - - EfsMountB - - EfsMountC - Properties: - DesiredCapacity: - Ref: AsgMaxSize - HealthCheckGracePeriod: 60 - HealthCheckType: ELB - LaunchConfigurationName: - Ref: Lc - MaxSize: - Ref: AsgMinSize - MinSize: - Ref: AsgMaxSize - Tags: - - Key: Name - Value: - Ref: AWS::StackName - PropagateAtLaunch: true - TargetGroupARNs: - - Ref: Tg - VPCZoneIdentifier: - Ref: AsgSubnets - - # TODO: you may want to add target tracking scaling policy. By default the ASG - # does not automatically scale. - - AsgSg: - Type: AWS::EC2::SecurityGroup - Properties: - GroupDescription: Used by instances in the Auto Scaling Group. - SecurityGroupIngress: - - FromPort: 22 - ToPort: 22 - IpProtocol: tcp - # TODO: you may want to restrict this further - CidrIp: 0.0.0.0/0 - SecurityGroupEgress: - - FromPort: 0 - ToPort: 65535 - IpProtocol: tcp - CidrIp: 0.0.0.0/0 - Tags: - - Key: Name - Value: - Fn::Sub: ${AWS::StackName} ASG - VpcId: - Ref: Vpc - AsgSgHttpIngress: - Type: AWS::EC2::SecurityGroupIngress - Properties: - GroupId: - Ref: AsgSg - FromPort: 4873 - ToPort: 4873 - IpProtocol: tcp - SourceSecurityGroupId: - Ref: LbSg - - Lc: - Type: AWS::AutoScaling::LaunchConfiguration - Properties: - ImageId: - Ref: Ami - InstanceType: - Ref: AsgInstanceType - KeyName: - Ref: Ec2KeyPair - SecurityGroups: - - Ref: AsgSg - UserData: - Fn::Base64: - # Since this uses Fn::Sub, don't use the ${var} form for any bash - # variables. Just use $var. - Fn::Sub: | - #!/bin/bash - set -eu - - start_time=$(date +%s) - - IMAGE="${DockerImage}" - BASE="/verdaccio" - - # Mount EFS first - yum -y install amazon-efs-utils - mkdir /verdaccio - echo "${Efs}:/ "$BASE" efs tls,_netdev" >> /etc/fstab - mount -a -t efs defaults - - # Create/update the config & password files. - [[ -d "$BASE/conf" ]] || mkdir "$BASE/conf" - curl -o "$BASE/conf/htpasswd" "${VerdaccioHtpasswdUrl}" - curl -o "$BASE/conf/config.yaml" "${VerdaccioConfigUrl}" - - amazon-linux-extras install docker - systemctl start docker - - # Download the image - docker pull "$IMAGE" - - # Update permissions on the cache directory. - target_uid=$(docker run "$IMAGE" id -u) - target_gid=$(docker run "$IMAGE" id -g) - chown "$target_uid:$target_gid" "$BASE" - - docker run --detach \ - -p 4873:4873 \ - --mount "type=bind,src=$BASE,dst=/verdaccio" \ - "$IMAGE" - - echo "Finished user-data script in $(( $(date +%s) - start_time)) secs" - - Tg: - Type: AWS::ElasticLoadBalancingV2::TargetGroup - Properties: - HealthCheckIntervalSeconds: 5 - HealthCheckPort: '4873' - HealthCheckProtocol: 'HTTP' - HealthCheckTimeoutSeconds: 2 - Port: 4873 - Protocol: 'HTTP' - TargetGroupAttributes: - - Key: deregistration_delay.timeout_seconds - Value: '10' - VpcId: - Ref: Vpc - - Lb: - Type: AWS::ElasticLoadBalancingV2::LoadBalancer - Properties: - SecurityGroups: - - Ref: LbSg - Subnets: - Ref: LbSubnets - Tags: - - Key: Name - Value: - Fn::Sub: ${AWS::StackName} ALB - - LbSg: - Type: AWS::EC2::SecurityGroup - Properties: - GroupDescription: - Fn::Sub: Allow HTTPS connections to the ${AWS::StackName} load balancer - SecurityGroupIngress: - # TODO: You may want to restrict the allowed IPs - - FromPort: 443 - ToPort: 443 - IpProtocol: tcp - CidrIp: 0.0.0.0/0 - Tags: - - Key: Name - Value: - Fn::Sub: ${AWS::StackName} LB - VpcId: - Ref: Vpc - LbSgHttpEgress: - Type: AWS::EC2::SecurityGroupEgress - Properties: - GroupId: - Ref: LbSg - FromPort: 4873 - ToPort: 4873 - IpProtocol: tcp - DestinationSecurityGroupId: - Ref: AsgSg - - LbListener: - Type: AWS::ElasticLoadBalancingV2::Listener - Properties: - Certificates: - - CertificateArn: - Ref: HttpsCertificateArn - DefaultActions: - - TargetGroupArn: - Ref: Tg - Type: forward - LoadBalancerArn: - Ref: Lb - Port: 443 - Protocol: HTTPS - SslPolicy: ELBSecurityPolicy-TLS-1-2-2017-01 - - Dns: - Type: AWS::Route53::RecordSet - Properties: - AliasTarget: - DNSName: - Fn::GetAtt: - - Lb - - DNSName - HostedZoneId: - Fn::GetAtt: - - Lb - - CanonicalHostedZoneID - HostedZoneName: - Fn::Sub: ${DnsHostedZoneName}. - Name: - Fn::Sub: ${DnsName}.${DnsHostedZoneName}. - Type: A - - Efs: - Type: AWS::EFS::FileSystem - Properties: - FileSystemTags: - - Key: Name - Value: - Ref: AWS::StackName - - EfsSg: - Type: AWS::EC2::SecurityGroup - Properties: - GroupDescription: - Fn::Sub: Allow connections from the ${AWS::StackName} ASG - Tags: - - Key: Name - Value: - Fn::Sub: ${AWS::StackName} EFS - VpcId: - Ref: Vpc - EfsSgFsIngress: - Type: AWS::EC2::SecurityGroupIngress - Properties: - GroupId: - Ref: EfsSg - FromPort: 2049 - ToPort: 2049 - IpProtocol: tcp - SourceSecurityGroupId: - Ref: AsgSg - - # TODO: if you have more / less than three subnets for AsgSubnets, add/delete - # entries here as appropriate. Also update the DependsOn section of Asg - # resource. - EfsMountA: - Type: AWS::EFS::MountTarget - Properties: - FileSystemId: - Ref: Efs - SecurityGroups: - - Ref: EfsSg - SubnetId: - Fn::Select: - - 0 - - Ref: AsgSubnets - EfsMountB: - Type: AWS::EFS::MountTarget - Properties: - FileSystemId: - Ref: Efs - SecurityGroups: - - Ref: EfsSg - SubnetId: - Fn::Select: - - 1 - - Ref: AsgSubnets - EfsMountC: - Type: AWS::EFS::MountTarget - Properties: - FileSystemId: - Ref: Efs - SecurityGroups: - - Ref: EfsSg - SubnetId: - Fn::Select: - - 2 - - Ref: AsgSubnets - -Outputs: - Hostname: - Value: - Ref: Dns diff --git a/crowdin.yaml b/crowdin.yaml deleted file mode 100644 index e69de29bb..000000000 diff --git a/debug/bootstrap.js b/debug/bootstrap.js deleted file mode 100644 index 4ac9630fe..000000000 --- a/debug/bootstrap.js +++ /dev/null @@ -1,6 +0,0 @@ -// this file aims to help local debugging with hot transpilation -// it requires BABEL_ENV=registry set as env variable -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -require('../src/lib/cli'); diff --git a/docker-bin/uid_entrypoint b/docker-bin/uid_entrypoint deleted file mode 100644 index f00dcacca..000000000 --- a/docker-bin/uid_entrypoint +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -if ! whoami &> /dev/null; then - if [ -w /etc/passwd ]; then - echo "${VERDACCIO_USER_NAME:-default}:x:$(id -u):0:${VERDACCIO_USER_NAME:-default} user:${HOME}:/sbin/nologin" >> /etc/passwd - fi -fi - -exec /usr/bin/dumb-init -- "$@" diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index cea2958b9..000000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,14 +0,0 @@ -version: '2.1' -services: - verdaccio: - build: . - container_name: verdaccio - environment: - - VERDACCIO_PORT - ports: - - $VERDACCIO_PORT:$VERDACCIO_PORT - volumes: - - verdaccio-storage:/verdaccio/storage -volumes: - verdaccio: - driver: local diff --git a/docker-examples/README.md b/docker-examples/README.md deleted file mode 100644 index b287afdc8..000000000 --- a/docker-examples/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# Docker + Kubernetes Examples - -This folder aims to create a collection of Docker and Kubernetes examples. - -For more information about the **Helm** Chart, please check it [owns repo](https://github.com/verdaccio/charts). - -> Feel free to contribute whether you consider any use case is relevant for the public in general. - -## Examples - -The following examples aim to be demonstrative and can be either improved or updated. - -### Verdaccio 4 - -#### Proxies - -- [Docker + Apache + Verdaccio](v4/apache-verdaccio/README.md) -- [Docker + Nginx + Verdaccio](v4/reverse_proxy/nginx/README.md) -- [Docker + https-portal Example](v4/https-portal-example/README.md) - -#### Plugins - -- [Docker + Uplinks Multi Registry](v4/multi-registry-uplink/README.md) -- [Docker + Local Storage](v4/docker-local-storage-volume/readme.md) -- [Docker + External Plugins](v4/docker-plugin-external/README.md) - -#### Auth - -- [Docker + LDAP (OpenLDAP) Server + Verdaccio 4](v4/ldap-verdaccio/readme.md) by **@kopax** -- [Docker + Gitlab](gitlab-verdaccio/README.md) -- [Docker + Active Directory](https://github.com/Mateus-Oli/verdaccio-ad-docker) - -#### Storage - -- [Docker + AWS S3 Plugin(localstack) + Verdaccio 4](v4/amazon-s3-docker-example/v4/README.md) -- [Docker + Minio](https://github.com/barolab/verdaccio-minio/tree/master/example) - -### Kubernetes - -- Kubernetes (minikube) + Verdaccio (Basic Configuration) -- Kubernetes Helm and Verdaccio Chart (Basic Tutorial) - -### External - -- [ - Verdaccio examples for Google Cloud and K8s setups. https://github.com/papezt/verdaccio-examples](https://github.com/papezt/verdaccio-examples) - -### Articles - -- [https://medium.com/@tompape/kubernetes-private-npm-registry-fb5f450fa611](https://medium.com/@tompape/kubernetes-private-npm-registry-fb5f450fa611) -- [Déployer Verdaccio sur rancher avec un helm](https://tommygingras.com/deployer-verdaccio-sur-rancher-avec-un-helm/) diff --git a/docker-examples/v4/amazon-s3-docker-example/README.md b/docker-examples/v4/amazon-s3-docker-example/README.md deleted file mode 100644 index 385d34e20..000000000 --- a/docker-examples/v4/amazon-s3-docker-example/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Amazon S3 Bucket (Localstack) and Verdaccio 4.x - -Verdaccio running with [Localstack](https://github.com/localstack/localstack) provides an easy-to-use test/mocking framework for developing cloud applications (AWS S3 in our example). - -## Usage - -``` -docker-compose up --force-recreate --build --always-recreate-deps -``` - -## Articles - -- [How to fake AWS locally with LocalStack](https://dev.to/goodidea/how-to-fake-aws-locally-with-localstack-27me) diff --git a/docker-examples/v4/amazon-s3-docker-example/conf/config.yaml b/docker-examples/v4/amazon-s3-docker-example/conf/config.yaml deleted file mode 100644 index 87c032a6e..000000000 --- a/docker-examples/v4/amazon-s3-docker-example/conf/config.yaml +++ /dev/null @@ -1,29 +0,0 @@ -storage: /verdaccio/storage - -store: - aws-s3-storage: - bucket: localstack.s3.plugin.test - keyPrefix: docker-test-prefix - region: eu-west-2 - endpoint: http://localstack-s3:4572 - -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@*/*': - # scoped packages - access: $all - publish: $all - proxy: npmjs - '**': - access: $all - publish: $all - proxy: npmjs - -logs: - - { type: stdout, format: pretty, level: trace } - -listen: - - 0.0.0.0:4873 diff --git a/docker-examples/v4/amazon-s3-docker-example/docker-compose.yaml b/docker-examples/v4/amazon-s3-docker-example/docker-compose.yaml deleted file mode 100644 index 7be0bdadb..000000000 --- a/docker-examples/v4/amazon-s3-docker-example/docker-compose.yaml +++ /dev/null @@ -1,58 +0,0 @@ -version: '2.1' - -services: - aws-resources: - build: localStack-resources/ - environment: - - AWS_ACCESS_KEY_ID=foobar - - AWS_SECRET_ACCESS_KEY=foobar - - AWS_DEFAULT_REGION=eu-west-2 - - AWS_S3_ENDPOINT=http://localstack-s3:4572 - depends_on: - localstack-s3: - condition: service_healthy - links: - - localstack-s3 - localstack-s3: - image: localstack/localstack:latest - container_name: localstack-s3-1 - environment: - - DEBUG=0 - - SERVICES=s3 - - DEFAULT_REGION=eu-west-2 - - DATA_DIR=/tmp/localstack/data - ports: - - '4572:4572' - - '9999:8080' - healthcheck: - test: ['CMD', 'curl', '-f', 'http://localhost:4572'] - interval: 15s - timeout: 10s - retries: 4 - volumes: - - localstack-data:/tmp/localstack - verdaccio: - container_name: verdaccio-s3-plugin - build: s3Plugin/ - environment: - - AWS_ACCESS_KEY_ID=foobar - - AWS_SECRET_ACCESS_KEY=foobar - - AWS_DEFAULT_REGION=eu-west-2 - - AWS_S3_ENDPOINT=http://localstack-s3:4572 - - AWS_S3_PATH_STYLE=true - ports: - - '4874:4873' - volumes: - - './conf:/verdaccio/conf' - depends_on: - localstack-s3: - condition: service_healthy - links: - - localstack-s3 -volumes: - verdaccio: - driver: local - aws-resources: - driver: local - localstack-data: - name: localstack-data diff --git a/docker-examples/v4/amazon-s3-docker-example/localStack-resources/Dockerfile b/docker-examples/v4/amazon-s3-docker-example/localStack-resources/Dockerfile deleted file mode 100644 index 77e39e6c0..000000000 --- a/docker-examples/v4/amazon-s3-docker-example/localStack-resources/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM python:2.7 - -ENV AWS_ACCESS_KEY_ID='[something]' -ENV AWS_SECRET_ACCESS_KEY='[something]' -ENV AWS_S3_ENDPOINT='http://localstack-s3:4572' - -RUN pip install awscli -COPY entry.sh /entry.sh -RUN chmod +x /entry.sh -ENTRYPOINT ["/entry.sh"] \ No newline at end of file diff --git a/docker-examples/v4/amazon-s3-docker-example/localStack-resources/entry.sh b/docker-examples/v4/amazon-s3-docker-example/localStack-resources/entry.sh deleted file mode 100644 index 695c1df1b..000000000 --- a/docker-examples/v4/amazon-s3-docker-example/localStack-resources/entry.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -aws --endpoint-url http://localstack-s3:4572 s3 mb s3://localstack.s3.plugin.test --region eu-west-2 \ No newline at end of file diff --git a/docker-examples/v4/amazon-s3-docker-example/s3Plugin/Dockerfile b/docker-examples/v4/amazon-s3-docker-example/s3Plugin/Dockerfile deleted file mode 100644 index 2e2ace753..000000000 --- a/docker-examples/v4/amazon-s3-docker-example/s3Plugin/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM verdaccio/verdaccio:4 - -USER root - -ENV NODE_ENV=production - -## perhaps all of this is not fully required -RUN apk --no-cache add openssl ca-certificates wget && \ - apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python && \ - wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \ - wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \ - apk add glibc-2.25-r0.apk - -RUN npm i && npm install verdaccio-aws-s3-storage -USER verdaccio diff --git a/docker-examples/v4/apache-verdaccio/README.md b/docker-examples/v4/apache-verdaccio/README.md deleted file mode 100644 index c7428b3e3..000000000 --- a/docker-examples/v4/apache-verdaccio/README.md +++ /dev/null @@ -1,93 +0,0 @@ -# Verdaccio and Apache2 - -Running `verdaccio` via reverse proxy is a common practice. This configuration provides a quick way to run the application through **apache2** as reverse proxy. - -To run the containers, run the following command in this folder, it should start the containers in detach mode. - -```bash - docker-compose up -d -``` - -To recreate the nginx image you can force the build. - -```bash - docker-compose up --build -d - - Building apacheproxy -Step 1/5 : FROM eboraas/apache - ---> 1ba66e3f5580 -Step 2/5 : MAINTAINER Juan Picado - ---> Using cache - ---> 4317b29c20ec -Step 3/5 : RUN a2enmod proxy - ---> Using cache - ---> b9334b33e2f1 -Step 4/5 : COPY ./conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf - ---> Using cache - ---> 6d464388db8f -Step 5/5 : COPY ./conf/env.load /etc/apache2/mods-enabled/env.load - ---> Using cache - ---> 66740b6ffb97 -Successfully built 66740b6ffb97 -Recreating verdaccio -Recreating apacheverdaccio_apacheproxy_1 -``` - -To force recreate the images. - -```bash -docker-compose up --build --force-recreate -d -``` - -To stop all containers - -```bash -docker-compose stop -``` - -To display container logs - -```bash -$> docker-compose logs -Attaching to apacheverdaccio_apacheproxy_1, verdaccio -verdaccio | warn --- config file - /verdaccio/conf/config.yaml -verdaccio | warn --- http address - http://0.0.0.0:4873/ - verdaccio/2.1.7 -verdaccio | http <-- 304, user: undefined, req: 'GET /', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/jquery.min.js', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.css', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.js', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/logo', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/fontello.woff?10872183', bytes: 0/0 -verdaccio | http <-- 200, user: undefined, req: 'GET /-/static/favicon.png', bytes: 0/315 -``` - -To access the apache logs - -```bash -&> docker exec -it {ID} /bin/bash - -root@da8ee3cb484c:~# tail -f /var/log/apache2/verdaccio-access.log -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /xmlhttprequest-ssl HTTP/1.1" 200 2616 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /yeast HTTP/1.1" 200 2706 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /has-cors HTTP/1.1" 200 1347 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /parsejson HTTP/1.1" 200 1234 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /better-assert HTTP/1.1" 200 2462 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /callsite HTTP/1.1" 200 1369 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /dot-access HTTP/1.1" 200 1477 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /skipper-disk HTTP/1.1" 200 3801 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /native-or-bluebird HTTP/1.1" 200 2257 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /foreachasync HTTP/1.1" 200 2742 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64" -tail: unrecognized file system type 0x794c7630 for '/var/log/apache2/verdaccio-access.log'. please report this to bug-coreutils@gnu.org. reverting to polling -``` - -### Display Information - -To display the containers running - -```bash -&> docker-compose ps - Name Command State Ports ----------------------------------------------------------------------------------------------------- -apacheverdaccio_apacheproxy_1 /usr/sbin/apache2ctl -D FO ... Up 443/tcp, 0.0.0.0:80->80/tcp -verdaccio /usr/src/app/bin/verdaccio ... Up 0.0.0.0:4873->4873/tcp -``` diff --git a/docker-examples/v4/apache-verdaccio/apache_proxy/Dockerfile b/docker-examples/v4/apache-verdaccio/apache_proxy/Dockerfile deleted file mode 100644 index 62ad91c9b..000000000 --- a/docker-examples/v4/apache-verdaccio/apache_proxy/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM eboraas/apache -MAINTAINER Juan Picado -# http://pierrecaserta.com/apache-proxy-one-docker-server-many-domains/ -RUN a2enmod proxy -COPY ./conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf -COPY ./conf/env.load /etc/apache2/mods-enabled/env.load \ No newline at end of file diff --git a/docker-examples/v4/apache-verdaccio/apache_proxy/conf/000-default.conf b/docker-examples/v4/apache-verdaccio/apache_proxy/conf/000-default.conf deleted file mode 100644 index 4e322102f..000000000 --- a/docker-examples/v4/apache-verdaccio/apache_proxy/conf/000-default.conf +++ /dev/null @@ -1,17 +0,0 @@ -ServerName localhost:80 -ServerAdmin admin@localhost - - - ServerName localhost - - Allow from localhost - - SSLProxyEngine On - ProxyRequests Off - ProxyPreserveHost On - AllowEncodedSlashes NoDecode - ProxyPass / http://verdaccio:4873/ nocanon - ProxyPassReverse / http://verdaccio:4873/ - CustomLog /var/log/apache2/verdaccio-access.log combined - ErrorLog /var/log/apache2/verdaccio-error.log - \ No newline at end of file diff --git a/docker-examples/v4/apache-verdaccio/apache_proxy/conf/env.load b/docker-examples/v4/apache-verdaccio/apache_proxy/conf/env.load deleted file mode 100644 index 163d75e89..000000000 --- a/docker-examples/v4/apache-verdaccio/apache_proxy/conf/env.load +++ /dev/null @@ -1,4 +0,0 @@ -LoadModule env_module /usr/lib/apache2/modules/mod_env.so -LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so -LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so -LoadModule socache_shmcb_module /usr/lib/apache2/modules/mod_socache_shmcb.so \ No newline at end of file diff --git a/docker-examples/v4/apache-verdaccio/docker-compose.yaml b/docker-examples/v4/apache-verdaccio/docker-compose.yaml deleted file mode 100644 index 29a49fc47..000000000 --- a/docker-examples/v4/apache-verdaccio/docker-compose.yaml +++ /dev/null @@ -1,23 +0,0 @@ -version: '2' - -services: - verdaccio: - image: verdaccio/verdaccio:latest - container_name: verdaccio - ports: - - '4873:4873' - volumes: - - verdaccio:/verdaccio - - apacheproxy: - build: apache_proxy/ - links: - - verdaccio - ports: - - '80:80' - volumes_from: - - verdaccio - -volumes: - verdaccio: - driver: local diff --git a/docker-examples/v4/docker-local-storage-volume/conf/config.yaml b/docker-examples/v4/docker-local-storage-volume/conf/config.yaml deleted file mode 100644 index 6e5652bc8..000000000 --- a/docker-examples/v4/docker-local-storage-volume/conf/config.yaml +++ /dev/null @@ -1,71 +0,0 @@ -# -# This is the config file used for the docker images. -# It allows all users to do anything, so don't use it on production systems. -# -# Do not configure host and port under `listen` in this file -# as it will be ignored when using docker. -# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: /verdaccio/storage - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd - # Maximum amount of users allowed to register, defaults to "+inf". - # You can set this to -1 to disable registration. - #max_users: 1000 -security: - api: - jwt: - sign: - expiresIn: 60d - notBefore: 1 - web: - sign: - expiresIn: 7d - -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@jota/*': - access: $all - publish: $all - - '@*/*': - # scoped packages - access: $all - publish: $all - proxy: npmjs - - '**': - # allow all users (including non-authenticated users) to read and - # publish all packages - # - # you can specify usernames/groupnames (depending on your auth plugin) - # and three keywords: "$all", "$anonymous", "$authenticated" - access: $all - - # allow all known users to publish packages - # (anyone can register by default, remember?) - publish: $all - - # if package is not available locally, proxy requests to 'npmjs' registry - proxy: npmjs - -# To use `npm audit` uncomment the following section -middlewares: - audit: - enabled: true - -# log settings -logs: - - { type: stdout, format: pretty, level: trace } - #- {type: file, path: verdaccio.log, level: info} diff --git a/docker-examples/v4/docker-local-storage-volume/conf/htpasswd b/docker-examples/v4/docker-local-storage-volume/conf/htpasswd deleted file mode 100644 index 6464e408d..000000000 --- a/docker-examples/v4/docker-local-storage-volume/conf/htpasswd +++ /dev/null @@ -1 +0,0 @@ -jpicado:$6vkdNgRX2npc:autocreated 2017-07-11T18:48:38.003Z diff --git a/docker-examples/v4/docker-local-storage-volume/docker-compose.yaml b/docker-examples/v4/docker-local-storage-volume/docker-compose.yaml deleted file mode 100644 index 03b424979..000000000 --- a/docker-examples/v4/docker-local-storage-volume/docker-compose.yaml +++ /dev/null @@ -1,13 +0,0 @@ -version: '2.1' -services: - verdaccio: - image: verdaccio/verdaccio:4 - container_name: verdaccio-docker-local-storage-vol - ports: - - '4873:4873' - volumes: - - './storage:/verdaccio/storage' - - './conf:/verdaccio/conf' -volumes: - verdaccio: - driver: local diff --git a/docker-examples/v4/docker-local-storage-volume/readme.md b/docker-examples/v4/docker-local-storage-volume/readme.md deleted file mode 100644 index c5118617b..000000000 --- a/docker-examples/v4/docker-local-storage-volume/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# Verdaccio and simple local storage - -This example shows a simple configuration for `verdaccio` plus the default local storage with the minimum configuration required using `docker-compose`. - -Contains - -- conf: Configuration file and default user httpasswd -- storage: A published default package with 2 versions. - -```bash -$> docker-compose up -``` - -## Login - -If you want to login into the Verdaccio instance created via these Docker Examples, please try: - -Username: jpicado -Password: jpicado - -## Running in Dokku - -If you use Dokku, an open-source alternative for Heroku, you can run this example using the following steps: - -1. Create a new application `dokku apps:create verdaccio` -2. Pull the verdaccio image `docker pull verdaccio/verdaccio:` -3. Tag the docker image for the app: `docker tag verdaccio/verdaccio:4 dokku/verdaccio:v1` -4. Create the directories for persistent storage `mkdir -p /var/lib/dokku/data/storage/verdaccio/storage`, `mkdir -p /var/lib/dokku/data/storage/verdaccio/storage` -5. Mount the volumes: `dokku storage:mount verdaccio /var/lib/dokku/data/storage/verdaccio/storage:/verdaccio/storage` and `dokku storage:mount verdaccio /var/lib/dokku/data/storage/verdaccio/conf:/verdaccio/conf` -6. Deploy the docker image `dokku tags:deploy verdaccio v1` -7. Enjoy the application diff --git a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan-1/package.json b/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan-1/package.json deleted file mode 100644 index ee1f5cf84..000000000 --- a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan-1/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "@jota/pk1-juan-1", - "versions": { - "1.0.0": { - "name": "@jota/pk1-juan-1", - "version": "1.0.0", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "angular": "^1.6.8", - "angular2": "^2.0.0-beta.21", - "babel-core": "^6.26.0", - "babel-env": "^2.4.1", - "jquery": "^3.2.1", - "react": "^16.2.0", - "test_npm_18": "^1.0.1", - "typescript": "^2.6.2", - "verdaccio": "^2.7.2", - "verdaccio-memory": "0.0.3", - "webpack": "^3.10.0" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan-1@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-aKXCuBayXFdSVt4+94B7lqvsPsM0KIsIcXvc7Ghkir3OsE6FQl2bXBBWe6deNuTwJihsFvDbCDiMq+0TIUENBQ==", - "shasum": "faf627d746ce7c670aed088b761960716e68e186", - "tarball": "http://0.0.0.0:4873/@jota/pk1-juan-1/-/@jota/pk1-juan-1-1.0.0.tgz" - } - } - }, - "dist-tags": { - "latest": "1.0.0" - }, - "time": { - "modified": "2018-01-17T18:32:18.049Z", - "created": "2018-01-17T18:32:18.049Z", - "1.0.0": "2018-01-17T18:32:18.049Z" - }, - "_distfiles": {}, - "_attachments": { - "pk1-juan-1-1.0.0.tgz": { - "shasum": "faf627d746ce7c670aed088b761960716e68e186", - "version": "1.0.0" - } - }, - "_uplinks": {}, - "_rev": "3-5cf06458deec6f04", - "readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)" -} diff --git a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan-1/pk1-juan-1-1.0.0.tgz b/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan-1/pk1-juan-1-1.0.0.tgz deleted file mode 100644 index d670e65db..000000000 Binary files a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan-1/pk1-juan-1-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/package.json b/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/package.json deleted file mode 100644 index 50af3e253..000000000 --- a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "name": "@jota/pk1-juan", - "versions": { - "1.0.0": { - "name": "@jota/pk1-juan", - "version": "1.0.0", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "angular": "^1.6.8", - "angular2": "^2.0.0-beta.21", - "babel-core": "^6.26.0", - "babel-env": "^2.4.1", - "jquery": "^3.2.1", - "react": "^16.2.0", - "test_npm_18": "^1.0.1", - "typescript": "^2.6.2", - "verdaccio": "^2.7.2", - "verdaccio-memory": "0.0.3", - "webpack": "^3.10.0" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-JC4y+iHrUpD+li3Pf9z2oFxw2Mtbqi6vgnIDBB3H/P/t0gAuCKK/LJ86kV7TRyvQwVvyJk1qI61iOVLiMwjZ8Q==", - "shasum": "95a21c648054c7144a23995a519930255f35b6c2", - "tarball": "http://0.0.0.0:4873/@jota/pk1-juan/-/@jota/pk1-juan-1.0.0.tgz" - } - }, - "1.0.1": { - "name": "@jota/pk1-juan", - "version": "1.0.1", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "angular": "^1.6.8", - "angular2": "^2.0.0-beta.21", - "babel-core": "^6.26.0", - "babel-env": "^2.4.1", - "jquery": "^3.2.1", - "react": "^16.2.0", - "test_npm_18": "^1.0.1", - "typescript": "^2.6.2", - "verdaccio": "^2.7.2", - "verdaccio-memory": "0.0.3", - "webpack": "^3.10.0" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-copZNn2mMX8S3W9czxd3GXKj8vKu1v7JrUD9zOtriP8v9AvZOHIt6nW8+1114cumNGukFxjBO+2VlZC793ynTA==", - "shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "tarball": "http://0.0.0.0:4873/@jota/pk1-juan/-/@jota/pk1-juan-1.0.1.tgz" - } - } - }, - "dist-tags": { - "latest": "1.0.0", - "beta2": "1.0.1" - }, - "time": { - "modified": "2018-01-17T18:49:09.087Z", - "created": "2018-01-17T18:27:39.952Z", - "1.0.0": "2018-01-17T18:27:39.952Z", - "1.0.1": "2018-01-17T18:49:09.087Z" - }, - "_distfiles": {}, - "_attachments": { - "pk1-juan-1.0.0.tgz": { - "shasum": "95a21c648054c7144a23995a519930255f35b6c2", - "version": "1.0.0" - }, - "pk1-juan-1.0.1.tgz": { - "shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "version": "1.0.1" - } - }, - "_uplinks": {}, - "_rev": "18-5118c5019a188840", - "readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)" -} diff --git a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz b/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz deleted file mode 100644 index cb8e0afd7..000000000 Binary files a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/pk1-juan-1.0.1.tgz b/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/pk1-juan-1.0.1.tgz deleted file mode 100644 index cf64a4b77..000000000 Binary files a/docker-examples/v4/docker-local-storage-volume/storage/@jota/pk1-juan/pk1-juan-1.0.1.tgz and /dev/null differ diff --git a/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/npm_test_pkg1-1.0.0.tgz b/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/npm_test_pkg1-1.0.0.tgz deleted file mode 100644 index 38ccedd48..000000000 Binary files a/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/npm_test_pkg1-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/npm_test_pkg1-1.0.1.tgz b/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/npm_test_pkg1-1.0.1.tgz deleted file mode 100644 index 9eee8efef..000000000 Binary files a/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/npm_test_pkg1-1.0.1.tgz and /dev/null differ diff --git a/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/package.json b/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/package.json deleted file mode 100644 index a7aeb62ed..000000000 --- a/docker-examples/v4/docker-local-storage-volume/storage/npm_test_pkg1/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "npm_test_pkg1", - "versions": { - "1.0.0": { - "name": "npm_test_pkg1", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "_id": "npm_test_pkg1@1.0.0", - "_npmVersion": "5.1.0", - "_nodeVersion": "4.6.1", - "_npmUser": {}, - "dist": { - "integrity": "sha512-qq8u/xKpYFCfmANLg5ohY4ZBkzM7NsKjIpYH+eSXji69aceMQvltRXx0O1qo7yAIORiCFsMTGLlkDCQtbhByxg==", - "shasum": "d058de16fdf8bde775ef2898e682faacc3eaa67f", - "tarball": "http://localhost:4873/npm_test_pkg1/-/npm_test_pkg1-1.0.0.tgz" - } - }, - "1.0.1": { - "name": "npm_test_pkg1", - "version": "1.0.1", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "_id": "npm_test_pkg1@1.0.1", - "_npmVersion": "5.1.0", - "_nodeVersion": "4.6.1", - "_npmUser": {}, - "dist": { - "integrity": "sha512-0YLdKRIAbZJoLpOFqXZE/JldTnGRKjIX999xV4PMJ+sUO6pWiLO8NbG4wuT5738Re3D5WTRa743y9uPvgrTD0A==", - "shasum": "1f6251ce59e375a6328958202ec07eb7de38dae6", - "tarball": "http://localhost:4873/npm_test_pkg1/-/npm_test_pkg1-1.0.1.tgz" - } - } - }, - "dist-tags": { - "latest": "1.0.1" - }, - "time": { - "modified": "2017-07-11T18:52:35.061Z", - "created": "2017-07-11T18:49:27.417Z", - "1.0.0": "2017-07-11T18:49:27.417Z", - "1.0.1": "2017-07-11T18:52:35.061Z" - }, - "_distfiles": {}, - "_attachments": { - "npm_test_pkg1-1.0.0.tgz": { - "shasum": "d058de16fdf8bde775ef2898e682faacc3eaa67f", - "version": "1.0.0" - }, - "npm_test_pkg1-1.0.1.tgz": { - "shasum": "1f6251ce59e375a6328958202ec07eb7de38dae6", - "version": "1.0.1" - } - }, - "_uplinks": {}, - "_rev": "11-382567c9979db3fd", - "readme": "ERROR: No README data found!" -} diff --git a/docker-examples/v4/docker-local-storage-volume/storage/pk1-juan/package.json b/docker-examples/v4/docker-local-storage-volume/storage/pk1-juan/package.json deleted file mode 100644 index 64b07b40a..000000000 --- a/docker-examples/v4/docker-local-storage-volume/storage/pk1-juan/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "pk1-juan", - "versions": { - "1.0.0": { - "name": "pk1-juan", - "version": "1.0.0", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "angular": "^1.6.8", - "angular2": "^2.0.0-beta.21", - "babel-core": "^6.26.0", - "babel-env": "^2.4.1", - "jquery": "^3.2.1", - "react": "^16.2.0", - "test_npm_18": "^1.0.1", - "typescript": "^2.6.2", - "verdaccio": "^2.7.2", - "verdaccio-memory": "0.0.3", - "webpack": "^3.10.0" - }, - "readmeFilename": "README.md", - "_id": "pk1-juan@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-K3ifqa0DEndma1RPhM83TBVISIY3wq2JdTL0GafvJno6z6JvFBp4iQgyrKn7Yjkd0J/LZ9IJvhNWsGQZuoXMPQ==", - "shasum": "5d670df046b9bc4bc1714efe8873a614c522e41d", - "tarball": "http://0.0.0.0:4873/pk1-juan/-/pk1-juan-1.0.0.tgz" - } - } - }, - "dist-tags": { - "latest": "1.0.0" - }, - "time": { - "modified": "2018-01-17T18:27:09.087Z", - "created": "2018-01-17T18:27:09.087Z", - "1.0.0": "2018-01-17T18:27:09.087Z" - }, - "_distfiles": {}, - "_attachments": { - "pk1-juan-1.0.0.tgz": { - "shasum": "5d670df046b9bc4bc1714efe8873a614c522e41d", - "version": "1.0.0" - } - }, - "_uplinks": {}, - "_rev": "5-e7a0e845b8b0cdc8", - "readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)" -} diff --git a/docker-examples/v4/docker-local-storage-volume/storage/pk1-juan/pk1-juan-1.0.0.tgz b/docker-examples/v4/docker-local-storage-volume/storage/pk1-juan/pk1-juan-1.0.0.tgz deleted file mode 100644 index a739e279d..000000000 Binary files a/docker-examples/v4/docker-local-storage-volume/storage/pk1-juan/pk1-juan-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/docker-plugin-external/README.md b/docker-examples/v4/docker-plugin-external/README.md deleted file mode 100644 index 135bf7e18..000000000 --- a/docker-examples/v4/docker-plugin-external/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# Verdaccio loading external plugins - -This example aims to show how to set up external plugins without the need to create a custom Docker Image. - -This example uses the folder `plugins/` as entry point to locate external plugins. - -``` -plugins: /verdaccio/plugins -``` - -at the same time we define the plugin we want to load `verdaccio-memory`. - -``` -store: - memory: - limit: 1000 -``` - -### Prerequisites - -- verdaccio `>3.3.0` - -### Example - -To run the containers, run the following command in this folder, it should start the containers in detach mode. - -```bash -$> docker-compose up -d - -Recreating verdaccio-3-docker-plugin-external ... done -Attaching to verdaccio-3-docker-plugin-external -verdaccio-3-docker-plugin-external | warn --- config file - /verdaccio/conf/config.yaml -verdaccio-3-docker-plugin-external | warn --- Plugin successfully loaded: memory -verdaccio-3-docker-plugin-external | warn --- Plugin successfully loaded: htpasswd -verdaccio-3-docker-plugin-external | warn --- Plugin successfully loaded: audit -verdaccio-3-docker-plugin-external | warn --- http address - http://0.0.0.0:4873/ - verdaccio/3.2.0 -``` - -To stop all containers - -```bash -docker-compose stop -``` diff --git a/docker-examples/v4/docker-plugin-external/conf/config.yaml b/docker-examples/v4/docker-plugin-external/conf/config.yaml deleted file mode 100644 index 2c4910c2b..000000000 --- a/docker-examples/v4/docker-plugin-external/conf/config.yaml +++ /dev/null @@ -1,31 +0,0 @@ -plugins: /verdaccio/plugins - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd - -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -store: - memory: - limit: 1000 - -middlewares: - audit: - enabled: true - -packages: - '@*/*': - access: $all - publish: $all - proxy: npmjs - - '**': - access: $all - publish: $all - proxy: npmjs - -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/docker-examples/v4/docker-plugin-external/docker-compose.yml b/docker-examples/v4/docker-plugin-external/docker-compose.yml deleted file mode 100644 index e461a5c2b..000000000 --- a/docker-examples/v4/docker-plugin-external/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '2' - -services: - verdaccio: - image: verdaccio/verdaccio:latest - container_name: verdaccio-3-docker-plugin-external - ports: - - '4873:4873' - volumes: - - './storage:/verdaccio/storage' - - './conf:/verdaccio/conf' - - './plugins:/verdaccio/plugins' diff --git a/docker-examples/v4/docker-plugin-external/plugins/.eslintrc b/docker-examples/v4/docker-plugin-external/plugins/.eslintrc deleted file mode 100644 index 010393ec7..000000000 --- a/docker-examples/v4/docker-plugin-external/plugins/.eslintrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rules": { - "max-len": 0, - "@typescript-eslint/prefer-optional-chain": 0, - "@typescript-eslint/no-unused-vars": 0, - "@typescript-eslint/explicit-member-accessibility": 0 - } -} diff --git a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/index.js b/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/index.js deleted file mode 100644 index 7144ba061..000000000 --- a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true, -}); -exports.LocalMemory = undefined; - -let _localMemory = require('./local-memory'); - -let _localMemory2 = _interopRequireDefault(_localMemory); - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; -} - -exports.LocalMemory = _localMemory2.default; -exports.default = _localMemory2.default; diff --git a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/local-memory.js b/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/local-memory.js deleted file mode 100644 index cffa40882..000000000 --- a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/local-memory.js +++ /dev/null @@ -1,96 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true, -}); - -let _memoryHandler = require('./memory-handler'); - -let _memoryHandler2 = _interopRequireDefault(_memoryHandler); - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; -} - -const DEFAULT_LIMIT = 1000; - -class LocalMemory { - constructor(config, options) { - this.config = config; - this.limit = config.limit || DEFAULT_LIMIT; - this.logger = options.logger; - this.data = this._createEmtpyDatabase(); - } - - getSecret() { - return Promise.resolve(this.data.secret); - } - - setSecret(secret) { - return new Promise((resolve, reject) => { - this.data.secret = secret; - resolve(null); - }); - } - - add(name, cb) { - const list = this.data.list; - - if (list.length < this.limit) { - if (list.indexOf(name) === -1) { - list.push(name); - } - cb(null); - } else { - this.logger.info( - { limit: this.limit }, - 'Storage memory has reached limit of @{limit} packages' - ); - cb(new Error('Storage memory has reached limit of limit packages')); - } - } - - search(onPackage, onEnd, validateName) { - // TODO: pending to implement - onEnd(); - } - - remove(name, cb) { - const list = this.data.list; - - const item = list.indexOf(name); - - if (item !== -1) { - list.splice(item, 1); - } - - cb(null); - } - - get(cb) { - cb(null, this.data.list); - } - - sync() { - // nothing to do - } - - getPackageStorage(packageInfo) { - // eslint-disable-next-line new-cap - return new _memoryHandler2.default(packageInfo, this.data.files, this.logger); - } - - _createEmtpyDatabase() { - const list = []; - const files = {}; - const emptyDatabase = { - list, - files, - secret: '', - }; - - return emptyDatabase; - } -} - -exports.default = LocalMemory; diff --git a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/memory-handler.js b/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/memory-handler.js deleted file mode 100644 index f597aa887..000000000 --- a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/memory-handler.js +++ /dev/null @@ -1,182 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true, -}); -exports.fileExist = exports.noSuchFile = undefined; - -let _httpErrors = require('http-errors'); - -let _httpErrors2 = _interopRequireDefault(_httpErrors); - -let _memoryFs = require('memory-fs'); - -let _memoryFs2 = _interopRequireDefault(_memoryFs); - -let _streams = require('@verdaccio/streams'); - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; -} - -// $FlowFixMe -const noSuchFile = (exports.noSuchFile = 'ENOENT'); - -const fileExist = (exports.fileExist = 'EEXISTS'); - -const fSError = function fSError(message, code = 404) { - const err = (0, _httpErrors2.default)(code, message); - // $FlowFixMe - err.code = message; - - return err; -}; - -const noPackageFoundError = function noPackageFoundError(message = 'no such package') { - const err = (0, _httpErrors2.default)(404, message); - // $FlowFixMe - err.code = noSuchFile; - return err; -}; - -// eslint-disable-next-line new-cap -const fs = new _memoryFs2.default(); - -class MemoryHandler { - constructor(packageName, data, logger) { - // this is not need it - this.data = data; - this.name = packageName; - this.logger = logger; - } - - updatePackage(pkgFileName, updateHandler, onWrite, transformPackage, onEnd) { - let json = this._getStorage(pkgFileName); - - try { - json = JSON.parse(json); - } catch (err) { - return onEnd(err); - } - - updateHandler(json, (err) => { - if (err) { - return onEnd(err); - } - try { - onWrite(pkgFileName, transformPackage(json), onEnd); - } catch (err) { - return onEnd(fSError('error on parse', 500)); - } - }); - } - - deletePackage(pkgName, callback) { - delete this.data[pkgName]; - callback(null); - } - - removePackage(callback) { - callback(null); - } - - createPackage(name, value, cb) { - this.savePackage(name, value, cb); - } - - savePackage(name, value, cb) { - try { - const json = JSON.stringify(value, null, '\t'); - - this.data[name] = json; - } catch (err) { - cb(fSError(err.message, 500)); - } - - cb(null); - } - - readPackage(name, cb) { - const json = this._getStorage(name); - const isJson = typeof json === 'undefined'; - - try { - cb(isJson ? noPackageFoundError() : null, JSON.parse(json)); - } catch (err) { - cb(noPackageFoundError()); - } - } - - writeTarball(name) { - const uploadStream = new _streams.UploadTarball(); - const temporalName = `/${name}`; - - process.nextTick(function () { - fs.exists(temporalName, function (exists) { - if (exists) { - return uploadStream.emit('error', fSError(fileExist)); - } - - try { - const file = fs.createWriteStream(temporalName); - - uploadStream.pipe(file); - - uploadStream.done = function () { - const onEnd = function onEnd() { - uploadStream.emit('success'); - }; - - uploadStream.on('end', onEnd); - }; - - uploadStream.abort = function () { - uploadStream.emit('error', fSError('transmision aborted', 400)); - file.end(); - }; - - uploadStream.emit('open'); - } catch (err) { - uploadStream.emit('error', err); - } - }); - }); - - return uploadStream; - } - - readTarball(name) { - const pathName = `/${name}`; - - const readTarballStream = new _streams.ReadTarball(); - - process.nextTick(function () { - fs.exists(pathName, function (exists) { - if (!exists) { - readTarballStream.emit('error', noPackageFoundError()); - } else { - const readStream = fs.createReadStream(pathName); - - readTarballStream.emit('content-length', fs.data[name].length); - readTarballStream.emit('open'); - readStream.pipe(readTarballStream); - readStream.on('error', (error) => { - readTarballStream.emit('error', error); - }); - - readTarballStream.abort = function () { - readStream.destroy(fSError('read has been aborted', 400)); - }; - } - }); - }); - - return readTarballStream; - } - - _getStorage(name = '') { - return this.data[name]; - } -} - -exports.default = MemoryHandler; diff --git a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/types.js b/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/types.js deleted file mode 100644 index ad9a93a7c..000000000 --- a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/lib/types.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; diff --git a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/package.json b/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/package.json deleted file mode 100644 index 88a190fba..000000000 --- a/docker-examples/v4/docker-plugin-external/plugins/verdaccio-memory/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "verdaccio-memory", - "version": "1.0.3", - "description": "storage implementation in memory", - "main": "lib/index.js", - "scripts": { - "release": "standard-version -a -s", - "pretest": "npm run lint", - "test": "jest", - "precommit": "lint-staged", - "format": "prettier --single-quote --trailing-comma none --write \"{src,test}/**/*.js\"", - "lint": "npm run flow && eslint .", - "flow": "flow", - "prepublish": "npm run build", - "commitmsg": "commitlint -e $GIT_PARAMS", - "build": "babel src/ --out-dir lib/ --copy-files --ignore ___tests___" - }, - "dependencies": { - "@verdaccio/streams": "^1.0.0", - "http-errors": "1.6.3", - "memory-fs": "^0.4.1" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@commitlint/travis-cli": "7.0.0", - "@verdaccio/types": "3.3.0", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-preset-env": "1.7.0", - "babel-preset-flow": "6.23.0", - "cross-env": "5.2.0", - "eslint": "5.1.0", - "eslint-config-google": "0.9.1", - "eslint-config-prettier": "2.9.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-jest": "21.17.0", - "eslint-plugin-prettier": "2.6.2", - "flow-bin": "0.76.0", - "flow-runtime": "0.17.0", - "husky": "0.14.3", - "jest": "23.4.1", - "lint-staged": "7.2.0", - "prettier": "1.13.7", - "rmdir-sync": "1.0.1", - "standard-version": "4.3.0" - }, - "keywords": [ - "verdaccio", - "plugin", - "storage" - ], - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "lint-staged": { - "*.js": [ - "npm run format", - "npm run lint", - "git add" - ] - }, - "author": "Juan Picado ", - "private": false, - "license": "MIT" -} diff --git a/docker-examples/v4/gitlab-verdaccio/README.md b/docker-examples/v4/gitlab-verdaccio/README.md deleted file mode 100644 index ad4ba2d10..000000000 --- a/docker-examples/v4/gitlab-verdaccio/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Verdaccio and Gitlab Authentication - -The [verdaccio-gitlab](https://github.com/bufferoverflow/verdaccio-gitlab) plugin can be used to authenticate users against gitlab. - -## Running with the provided verdaccio-gitlab docker image - -If the only extra plugin you require is verdaccio-gitlab, [you can use the image provided by the plugin project](https://hub.docker.com/r/bufferoverflow/verdaccio-gitlab/). It takes care of the whole plugin setup and is based on the [official verdaccio docker image](https://hub.docker.com/r/verdaccio/verdaccio/). - -More information about the configuration required can be found in the [verdaccio-gitlab readme](https://github.com/bufferoverflow/verdaccio-gitlab/blob/master/README.md). - -https://hub.docker.com/r/bufferoverflow/verdaccio-gitlab/ - -## Building your own docker image - -There's a [sample docker-compose file in the verdaccio-gitlab repo](https://github.com/bufferoverflow/verdaccio-gitlab/blob/master/docker-compose.yml) that shows how to build & start both gitlab and verdaccio with support for the gitlab plugin, but this is generic enough to be used with any other extra plugins. - -You can also extend the [official verdaccio-gitlab image Dockerfile](https://github.com/bufferoverflow/verdaccio-gitlab/blob/master/Dockerfile). diff --git a/docker-examples/v4/https-portal-example/README.md b/docker-examples/v4/https-portal-example/README.md deleted file mode 100644 index 9585aba6b..000000000 --- a/docker-examples/v4/https-portal-example/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Verdaccio and https-portal Example - -Run `verdaccio` under fully automated HTTPS server powered by Nginx, Let's Encrypt was never so easy. Using [https-portal](https://github.com/SteveLTN/https-portal) all is builtin and no need for extra configuration. - -## Prerequisites - -In order to make it work, this is just a local setup, so you must update your `host` file. - -On Mac - -``` -➜ sudo vi /etc/hosts - -## -# Host Database -# -# localhost is used to configure the loopback interface -# when the system is booting. Do not change this entry. -## -127.0.0.1 localhost -127.0.0.1 example.com -``` - -## Usage - -To run the containers, run the followingcommands in this folder, it should start the containers in detach mode. - -```bash - docker-compose up -d -``` - -To recreate the nginx image you can force the build. - -```bash - docker-compose up --build -d -``` - -To force recreate the images. - -```bash -docker-compose up --build --force-recreate -d -``` - -To stop all containers - -```bash -docker-compose stop -``` - -From your Javascript project - -```bash -npm publish --registry https://example.com -``` - -## NPM and self-signed certificates - -Be aware of disabling strict SSL in `./npmrc`config file as explained [here](https://stackoverflow.com/questions/9626990/receiving-error-error-ssl-error-self-signed-cert-in-chain-while-using-npm). - -```bash -npm config set strict-ssl false -``` - -## Login - -If you want to login into the Verdaccio instance created via these Docker Examples, please try: - -Username: jpicado -Password: jpicado diff --git a/docker-examples/v4/https-portal-example/conf/config.yaml b/docker-examples/v4/https-portal-example/conf/config.yaml deleted file mode 100644 index 6d4856689..000000000 --- a/docker-examples/v4/https-portal-example/conf/config.yaml +++ /dev/null @@ -1,28 +0,0 @@ -plugins: /verdaccio/plugins -storage: /verdaccio/storage - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd - -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -middlewares: - audit: - enabled: true - -packages: - '@*/*': - access: $all - publish: $all - proxy: npmjs - - '**': - access: $all - publish: $all - proxy: npmjs - -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/docker-examples/v4/https-portal-example/conf/htpasswd b/docker-examples/v4/https-portal-example/conf/htpasswd deleted file mode 100644 index f27631dbc..000000000 --- a/docker-examples/v4/https-portal-example/conf/htpasswd +++ /dev/null @@ -1 +0,0 @@ -jpicado:$6vkdNgRX2npc:autocreated 2018-09-22T10:24:17.535Z diff --git a/docker-examples/v4/https-portal-example/docker-compose.yml b/docker-examples/v4/https-portal-example/docker-compose.yml deleted file mode 100644 index 8f80c705a..000000000 --- a/docker-examples/v4/https-portal-example/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '2' - -services: - verdaccio: - image: verdaccio/verdaccio:4 - container_name: verdaccio-https - ports: - - '4873:4873' - volumes: - - './storage:/verdaccio/storage' - - './conf:/verdaccio/conf' - https-portal: - image: steveltn/https-portal:1 - ports: - - '80:80' - - '443:443' - links: - - verdaccio:verdaccio - environment: - DOMAINS: 'example.com -> http://verdaccio:4873' - STAGE: local - FORCE_RENEW: 'true' diff --git a/docker-examples/v4/https-portal-example/storage/@scope/example/example-1.0.0.tgz b/docker-examples/v4/https-portal-example/storage/@scope/example/example-1.0.0.tgz deleted file mode 100644 index d72a319bc..000000000 Binary files a/docker-examples/v4/https-portal-example/storage/@scope/example/example-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/https-portal-example/storage/@scope/example/package.json b/docker-examples/v4/https-portal-example/storage/@scope/example/package.json deleted file mode 100644 index d6b48ab1a..000000000 --- a/docker-examples/v4/https-portal-example/storage/@scope/example/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "@scope/example", - "versions": { - "1.0.0": { - "name": "@scope/example", - "version": "1.0.0", - "description": "exampled scoped module", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - "example" - ], - "author": { - "name": "Juan Picado" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.3.1" - }, - "_id": "@scope/example@1.0.0", - "_npmVersion": "6.3.0", - "_nodeVersion": "10.1.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-UrpRhmCAwyGF2pWWd+fGDN8tFsVcCoLmK/qHaVAamphR+E4ZUjGf6N5GGgneFwbSeZ0FQrDYtUTPKrysxGIihQ==", - "shasum": "4c36e40e65049b32cd49599f65cb50b81b9d8810", - "tarball": "http://example.com/@scope/example/-/@scope/example-1.0.0.tgz" - } - } - }, - "time": { - "modified": "2018-09-22T10:27:32.723Z", - "created": "2018-09-22T10:27:32.723Z", - "1.0.0": "2018-09-22T10:27:32.723Z" - }, - "dist-tags": { - "latest": "1.0.0" - }, - "_uplinks": {}, - "_distfiles": {}, - "_attachments": { - "example-1.0.0.tgz": { - "shasum": "4c36e40e65049b32cd49599f65cb50b81b9d8810", - "version": "1.0.0" - } - }, - "_rev": "7-24f17006c03f69b9", - "readme": "ERROR: No README data found!" -} diff --git a/docker-examples/v4/https-portal-example/storage/jquery/package.json b/docker-examples/v4/https-portal-example/storage/jquery/package.json deleted file mode 100644 index 57a210a14..000000000 --- a/docker-examples/v4/https-portal-example/storage/jquery/package.json +++ /dev/null @@ -1,4914 +0,0 @@ -{ - "name": "jquery", - "versions": { - "1.5.1": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": "=0.1.20", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.5.1", - "_id": "jquery@1.5.1", - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "0.3.15", - "_nodeVersion": "v0.4.2", - "directories": { - "lib": "./lib" - }, - "files": [ - "" - ], - "_defaultsLoaded": true, - "dist": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz" - }, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.6.2", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.2/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.2", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.15", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "01757a4c5beea29e8ae697527c3131abbe997a28", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz" - }, - "scripts": {}, - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "url": "http://jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": ".", - "main": "./node-jquery.js", - "version": "1.6.3", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.3/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.3", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.22", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz" - }, - "scripts": {}, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": "0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.3.0" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "_id": "jquery@1.7.2", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.12", - "_nodeVersion": "v0.6.14", - "_defaultsLoaded": true, - "dist": { - "shasum": "a93746763aca75a34df4c16395b0826310d0eaf2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.7.3", - "dist": { - "shasum": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.2", - "dist": { - "shasum": "46790ae07c6de38124eda90bbf7336b43df93305", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1", - "contextify": "~0.1.3" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.3", - "dist": { - "shasum": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "2.1.0-beta2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta2", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "~0.4.10", - "grunt": "~0.4.1", - "grunt-bower-task": "~0.3.2", - "grunt-cli": "~0.1.11", - "grunt-compare-size": "~0.4.0", - "grunt-contrib-jshint": "~0.7.0", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-watch": "~0.5.3", - "grunt-git-authors": "~1.2.0", - "grunt-jscs-checker": "~0.2.3", - "grunt-jsonlint": "~1.0.1", - "gzip-js": "0.3.2", - "load-grunt-tasks": "~0.2.0", - "testswarm": "~1.1.0", - "requirejs": "~2.1.9", - "which": "~1.0.5" - }, - "_id": "jquery@2.1.0-beta2", - "dist": { - "shasum": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "rwaldron", - "email": "waldron.rick@gmail.com" - }, - { - "name": "jquery", - "email": "npm@jquery.com" - } - ], - "directories": {} - }, - "2.1.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-beta3", - "dist": { - "shasum": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-beta3", - "dist": { - "shasum": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-rc1", - "dist": { - "shasum": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "dave.methvin@gmail.com" - } - ], - "directories": {} - }, - "2.1.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-rc1", - "dist": { - "shasum": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - } - ], - "directories": {} - }, - "1.11.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0", - "dist": { - "shasum": "c67ceee19b403650d682adcf39d5c9009814d949", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0", - "dist": { - "shasum": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-beta1", - "dist": { - "shasum": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-beta1", - "dist": { - "shasum": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc1", - "_shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz" - }, - "directories": {} - }, - "1.11.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc1", - "_shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz" - }, - "directories": {} - }, - "2.1.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc2", - "dist": { - "shasum": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc2", - "dist": { - "shasum": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1", - "dist": { - "shasum": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1", - "dist": { - "shasum": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.9.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.9.1", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "scripts": { - "test": "grunt" - }, - "dependencies": {}, - "devDependencies": { - "grunt-compare-size": "~0.3.0", - "grunt-git-authors": "~1.1.0", - "grunt-update-submodules": "~0.2.0", - "grunt-contrib-watch": "~0.1.1", - "grunt-contrib-jshint": "~0.1.1", - "grunt-contrib-uglify": "~0.1.1", - "grunt": "~0.4.0", - "testswarm": "0.2.2" - }, - "keywords": [], - "gitHead": "d71f6a53927ad02d728503385d15539b73d21ac8", - "_id": "jquery@1.9.1", - "_shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "_from": ".", - "_npmVersion": "1.5.0-alpha-1", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz" - }, - "directories": {} - }, - "2.1.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "a04f5ff9795fd6292117563623db44cf3f875868", - "_id": "jquery@2.1.2", - "_shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz" - }, - "directories": {} - }, - "1.11.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "9690801db01709bfbff5f977d07fb7cc14472908", - "_id": "jquery@1.11.2", - "_shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz" - }, - "directories": {} - }, - "2.1.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0", - "_id": "jquery@2.1.3", - "_shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "_from": ".", - "_npmVersion": "2.1.14", - "_nodeVersion": "0.11.14", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz" - }, - "directories": {} - }, - "2.1.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "7751e69b615c6eca6f783a81e292a55725af6b85", - "_id": "jquery@2.1.4", - "_shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" - }, - "directories": {} - }, - "1.11.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "1472290917f17af05e98007136096784f9051fab", - "_id": "jquery@1.11.3", - "_shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz" - }, - "directories": {} - }, - "3.0.0-alpha1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-alpha1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-alpha1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.7.0", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs-checker": "0.8.1", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.0", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "jsdomVersions": { - "node": "3.1.2", - "iojs": "5.3.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2c92869b752bb8e0fe74c3183f40f3f58b7b906d", - "_id": "jquery@3.0.0-alpha1", - "_shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz" - }, - "directories": {} - }, - "1.12.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "efbdc6e3f0fa3d3cd4d3d8bfa37990b707f7c2e1", - "_id": "jquery@1.12.0", - "_shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz" - }, - "directories": {} - }, - "2.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6fc01e29bdad0964f62ef56d01297039cdcadbe5", - "_id": "jquery@2.2.0", - "_shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz" - }, - "directories": {} - }, - "3.0.0-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-beta1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.3.0", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2ef761afd9addf78193f5191ece03bb20c9182c2", - "_id": "jquery@3.0.0-beta1", - "_shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz" - }, - "directories": {} - }, - "1.12.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "56ead6ffbf8560c521e7e94518d35db42b19f5f3", - "_id": "jquery@1.12.1", - "_shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.1.tgz_1456168080336_0.4474994211923331" - }, - "directories": {} - }, - "2.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "788eaba2f83e7b7445c7a83a50c81c0704423874", - "_id": "jquery@2.2.1", - "_shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.1.tgz_1456168325917_0.42471840139478445" - }, - "directories": {} - }, - "1.12.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "a9b5f8ac96f6aa7bfc7b0795cb16d65c4f15b64e", - "_id": "jquery@1.12.2", - "_shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.2.tgz_1458236759160_0.3557943068444729" - }, - "directories": {} - }, - "2.2.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "086d381cd2f3b4b8b0af85ecb2c9593a61e5b4bd", - "_id": "jquery@2.2.2", - "_shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.2.tgz_1458237146417_0.4190880397800356" - }, - "directories": {} - }, - "1.12.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "3a43d7e563314bf32970b773dd31ecf2b90813dd", - "_id": "jquery@1.12.3", - "_shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.3.tgz_1459884094815_0.5328964435029775" - }, - "directories": {} - }, - "2.2.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "af22a351b2ea5801ffb1695abb3bb34d5bed9198", - "_id": "jquery@2.2.3", - "_shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.3.tgz_1459884434885_0.992488760035485" - }, - "directories": {} - }, - "1.12.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "5e89585e0121e72ff47de177c5ef604f3089a53d", - "_id": "jquery@1.12.4", - "_shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.4.tgz_1463764744844_0.4810373710934073" - }, - "directories": {} - }, - "2.2.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "c0185ab7c75aab88762c5aae780b9d83b80eda72", - "_id": "jquery@2.2.4", - "_shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.4.tgz_1463765166836_0.5834389675874263" - }, - "directories": {} - }, - "3.0.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-rc1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "e503a93188dc4b5b42e2340f805f2d90b404bc50", - "_id": "jquery@3.0.0-rc1", - "_shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0-rc1.tgz_1463771627380_0.12211154378019273" - }, - "directories": {} - }, - "3.0.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "0078f86be166a8747819d5d1516776a662cb69df", - "_id": "jquery@3.0.0", - "_shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0.tgz_1465497191024_0.9057256667874753" - }, - "directories": {} - }, - "3.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "0.1.6", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "18.1.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6f02bc382c0529d3b4f68f6b2ad21876642dbbfe", - "_id": "jquery@3.1.0", - "_shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "_from": ".", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.0.tgz_1467927964329_0.882518710102886" - }, - "directories": {} - }, - "3.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|(Refs? [^#])" - }, - "gitHead": "1b30f3ad466ebf2714d47eda34dbd7fdf6849fe3", - "_id": "jquery@3.1.1", - "_shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.1.tgz_1474583566957_0.15473420196212828" - }, - "directories": {} - }, - "3.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "a81259fff4ea0c7b4cd98f04050c829640395a31", - "_id": "jquery@3.2.0", - "_shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "_from": ".", - "_npmVersion": "4.1.2", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.0.tgz_1489699855733_0.5328386940527707" - }, - "directories": {} - }, - "3.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", - "_id": "jquery@3.2.1", - "_shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "_from": ".", - "_npmVersion": "4.4.4", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.1.tgz_1490036530067_0.19497186387889087" - }, - "directories": {} - }, - "3.3.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": { - "archiver": "1.3.0", - "chalk": "1.1.3", - "npm": "4.4.1", - "shelljs": "0.7.7" - }, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9a8a1c63930edc9fb6fab9e75b3eee578762b8a5", - "_id": "jquery@3.3.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-1SmQFTqu24RtvnvLN/D1RFIsOBGqLQYsGJgZxejd69Rw9ACBJvSgppA+A+wBcXgASwRSoX1aDN1I5ZNIrFC6Xw==", - "shasum": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.0.tgz_1516388631205_0.827812286792323" - }, - "directories": {} - }, - "3.3.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9e8ec3d10fad04748176144f108d7355662ae75e", - "_id": "jquery@3.3.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.1.tgz_1516469230473_0.5458589680492878" - }, - "directories": {} - } - }, - "time": { - "modified": "2018-08-12T22:42:52.654Z", - "created": "2011-03-19T07:19:56.392Z", - "1.5.1": "2011-03-19T07:19:56.956Z", - "1.6.2": "2011-07-06T16:13:21.519Z", - "1.6.3": "2011-09-12T19:05:34.373Z", - "1.7.2": "2012-05-01T11:14:09.090Z", - "1.7.3": "2012-07-01T16:11:53.194Z", - "1.8.2": "2012-11-11T22:43:58.910Z", - "1.8.3": "2012-12-01T00:03:02.297Z", - "2.1.0-beta2": "2013-11-15T16:34:48.859Z", - "2.1.0-beta3": "2013-12-20T22:53:28.426Z", - "1.11.0-beta3": "2014-01-06T19:57:22.387Z", - "2.1.0-rc1": "2014-01-17T22:47:16.391Z", - "1.11.0-pre": "2014-01-16T20:38:42.912Z", - "1.11.0-rc1": "2014-01-16T21:08:36.924Z", - "1.11.0": "2014-01-23T21:07:07.184Z", - "2.1.0": "2014-01-23T21:12:47.772Z", - "2.1.1-beta1": "2014-03-24T17:05:07.581Z", - "1.11.1-beta1": "2014-03-24T17:25:14.236Z", - "2.1.1-rc1": "2014-04-18T15:29:41.423Z", - "1.11.1-rc1": "2014-04-18T15:40:23.931Z", - "2.1.1-rc2": "2014-04-21T20:52:06.866Z", - "1.11.1-rc2": "2014-04-21T21:12:52.817Z", - "2.1.1": "2014-05-01T17:15:20.164Z", - "1.11.1": "2014-05-01T18:05:32.863Z", - "1.9.1": "2014-07-17T22:01:17.886Z", - "2.1.2": "2014-12-17T14:14:28.184Z", - "1.11.2": "2014-12-17T16:07:07.647Z", - "2.1.3": "2014-12-18T15:18:38.205Z", - "2.1.4": "2015-04-28T16:17:13.648Z", - "1.11.3": "2015-04-28T16:22:06.378Z", - "3.0.0-alpha1": "2015-07-13T19:26:37.913Z", - "1.12.0": "2016-01-08T19:58:05.265Z", - "2.2.0": "2016-01-08T20:03:43.280Z", - "3.0.0-beta1": "2016-01-14T23:09:43.368Z", - "1.12.1": "2016-02-22T19:08:05.212Z", - "2.2.1": "2016-02-22T19:12:09.116Z", - "1.12.2": "2016-03-17T17:45:59.810Z", - "2.2.2": "2016-03-17T17:52:26.967Z", - "1.12.3": "2016-04-05T19:21:37.716Z", - "2.2.3": "2016-04-05T19:27:17.929Z", - "1.12.4": "2016-05-20T17:19:07.375Z", - "2.2.4": "2016-05-20T17:26:07.921Z", - "3.0.0-rc1": "2016-05-20T19:13:48.387Z", - "3.0.0": "2016-06-09T18:33:13.420Z", - "3.1.0": "2016-07-07T21:46:05.554Z", - "3.1.1": "2016-09-22T22:32:49.360Z", - "3.2.0": "2017-03-16T21:30:56.342Z", - "3.2.1": "2017-03-20T19:02:13.508Z", - "3.3.0": "2018-01-19T19:03:52.616Z", - "3.3.1": "2018-01-20T17:27:11.928Z" - }, - "dist-tags": { - "beta": "3.3.1", - "latest": "3.3.1" - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"f8c44c36454da20858d8d0456169f0e9\"", - "fetched": 1537612064113 - } - }, - "_distfiles": { - "jquery-1.5.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz", - "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "registry": "npmjs" - }, - "jquery-1.6.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz", - "sha": "01757a4c5beea29e8ae697527c3131abbe997a28", - "registry": "npmjs" - }, - "jquery-1.6.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz", - "sha": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "registry": "npmjs" - }, - "jquery-1.7.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz", - "sha": "a93746763aca75a34df4c16395b0826310d0eaf2", - "registry": "npmjs" - }, - "jquery-1.7.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz", - "sha": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "registry": "npmjs" - }, - "jquery-1.8.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz", - "sha": "46790ae07c6de38124eda90bbf7336b43df93305", - "registry": "npmjs" - }, - "jquery-1.8.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz", - "sha": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "registry": "npmjs" - }, - "jquery-2.1.0-beta2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz", - "sha": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "registry": "npmjs" - }, - "jquery-2.1.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz", - "sha": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "registry": "npmjs" - }, - "jquery-1.11.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz", - "sha": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "registry": "npmjs" - }, - "jquery-1.11.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz", - "sha": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "registry": "npmjs" - }, - "jquery-2.1.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz", - "sha": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "registry": "npmjs" - }, - "jquery-1.11.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz", - "sha": "c67ceee19b403650d682adcf39d5c9009814d949", - "registry": "npmjs" - }, - "jquery-2.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz", - "sha": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "registry": "npmjs" - }, - "jquery-2.1.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz", - "sha": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "registry": "npmjs" - }, - "jquery-1.11.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz", - "sha": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "registry": "npmjs" - }, - "jquery-2.1.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz", - "sha": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "registry": "npmjs" - }, - "jquery-1.11.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz", - "sha": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "registry": "npmjs" - }, - "jquery-2.1.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz", - "sha": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "registry": "npmjs" - }, - "jquery-1.11.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz", - "sha": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "registry": "npmjs" - }, - "jquery-2.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz", - "sha": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "registry": "npmjs" - }, - "jquery-1.11.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz", - "sha": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "registry": "npmjs" - }, - "jquery-1.9.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz", - "sha": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "registry": "npmjs" - }, - "jquery-2.1.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz", - "sha": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "registry": "npmjs" - }, - "jquery-1.11.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz", - "sha": "30ab26857211c37caa83da0f6903155fe49bb72d", - "registry": "npmjs" - }, - "jquery-2.1.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz", - "sha": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "registry": "npmjs" - }, - "jquery-2.1.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", - "sha": "228bde698a0c61431dc2630a6a154f15890d2317", - "registry": "npmjs" - }, - "jquery-1.11.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz", - "sha": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "registry": "npmjs" - }, - "jquery-3.0.0-alpha1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz", - "sha": "3493d672266e21c2dffb2714f935448edebe3c62", - "registry": "npmjs" - }, - "jquery-1.12.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz", - "sha": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "registry": "npmjs" - }, - "jquery-2.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz", - "sha": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "registry": "npmjs" - }, - "jquery-3.0.0-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz", - "sha": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "registry": "npmjs" - }, - "jquery-1.12.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz", - "sha": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "registry": "npmjs" - }, - "jquery-2.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz", - "sha": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "registry": "npmjs" - }, - "jquery-1.12.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz", - "sha": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "registry": "npmjs" - }, - "jquery-2.2.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz", - "sha": "3e302dc61eb329a21e9efac937d731f061134c59", - "registry": "npmjs" - }, - "jquery-1.12.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz", - "sha": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "registry": "npmjs" - }, - "jquery-2.2.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz", - "sha": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "registry": "npmjs" - }, - "jquery-1.12.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz", - "sha": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "registry": "npmjs" - }, - "jquery-2.2.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", - "sha": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "registry": "npmjs" - }, - "jquery-3.0.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz", - "sha": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "registry": "npmjs" - }, - "jquery-3.0.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz", - "sha": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "registry": "npmjs" - }, - "jquery-3.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz", - "sha": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "registry": "npmjs" - }, - "jquery-3.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz", - "sha": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "registry": "npmjs" - }, - "jquery-3.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz", - "sha": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "registry": "npmjs" - }, - "jquery-3.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "sha": "5c4d9de652af6cd0a770154a631bba12b015c787", - "registry": "npmjs" - }, - "jquery-3.3.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz", - "sha": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "registry": "npmjs" - }, - "jquery-3.3.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "sha": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "registry": "npmjs" - } - }, - "_attachments": {}, - "_rev": "2-f6a5986b8c99804a", - "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" -} diff --git a/docker-examples/v4/kubernetes-example/deployment.yaml b/docker-examples/v4/kubernetes-example/deployment.yaml deleted file mode 100644 index 4c57672a2..000000000 --- a/docker-examples/v4/kubernetes-example/deployment.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: verdaccio-deployment -spec: - replicas: 1 - template: - metadata: - labels: - app: verdaccio - spec: - containers: - - name: verdaccio - image: verdaccio/verdaccio - imagePullPolicy: Always - ports: - - containerPort: 4873 -# vim: set ts=2 expandtab!: diff --git a/docker-examples/v4/kubernetes-example/readme.md b/docker-examples/v4/kubernetes-example/readme.md deleted file mode 100644 index 214f2cdf2..000000000 --- a/docker-examples/v4/kubernetes-example/readme.md +++ /dev/null @@ -1,61 +0,0 @@ -# Kubernetes Example - -This example will use the latest `verdaccio` tag. If you want you set a different that, update the `deployment.yaml` file. - -⚠️ There is newer Kubernetes example here that is woth to check out https://github.com/verdaccio/docker-examples/tree/master/kubernetes-helm-example - -- Install Minikube - -https://github.com/kubernetes/minikube - -```bash -$> brew cask install minikube -``` - -- Run it - -```bash -$> minikube start -``` - -- Deploy - -```bash -$> kubectl create -f deployment.yaml -deployment "verdaccio-deployment" created -``` - -- Check whether the deployment was successful - -```bash -$> kubectl get deployments -NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE -verdaccio-deployment 1 1 1 1 19m -``` - -- Deploy the service - -```bash -$> kubectl create -f service.yaml -``` - -- Check the service - -```bash -kubectl get services -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -kubernetes 10.0.0.1 443/TCP 11h -verdaccio 10.0.0.160 4873:30061/TCP 20m -``` - -- Browse the service - -```bash -http://192.168.99.100:30061/ -``` - -You can see the dashboard in action - -``` -http://192.168.99.100:30000/#!/service?namespace=default -``` diff --git a/docker-examples/v4/kubernetes-example/service.yaml b/docker-examples/v4/kubernetes-example/service.yaml deleted file mode 100644 index a2fe2b6cd..000000000 --- a/docker-examples/v4/kubernetes-example/service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: verdaccio - labels: - app: verdaccio -spec: - selector: - app: verdaccio - ports: - - port: 4873 - protocol: TCP - nodePort: 30061 - type: LoadBalancer diff --git a/docker-examples/v4/kubernetes-helm-example/README.md b/docker-examples/v4/kubernetes-helm-example/README.md deleted file mode 100644 index 304a9fd94..000000000 --- a/docker-examples/v4/kubernetes-helm-example/README.md +++ /dev/null @@ -1,181 +0,0 @@ -# Kubernetes using Helm - -## Prerequisites - -- Kubernetes cluster running -- Read Verdaccio Helm [readme](https://github.com/kubernetes/charts/blob/master/stable/verdaccio/README.md). - -#### Install Helm - -``` -brew install kubernetes-helm -``` - -Initialize `helm`. - -``` -➜ helm init --service-account default -Creating /Users/user/.helm -Creating /Users/user/.helm/repository -Creating /Users/user/.helm/repository/cache -Creating /Users/user/.helm/repository/local -Creating /Users/user/.helm/plugins -Creating /Users/user/.helm/starters -Creating /Users/user/.helm/cache/archive -Creating /Users/user/.helm/repository/repositories.yaml -Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com -Adding local repo with URL: http://127.0.0.1:8879/charts -$HELM_HOME has been configured at /Users/user/.helm. - -Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. - -Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy. -For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation -Happy Helming! -``` - -Let's update the helm repo - -``` -➜ helm repo update -Hang tight while we grab the latest from your chart repositories... -...Skip local chart repository -...Successfully got an update from the "stable" chart repository -Update Complete. ⎈ Happy Helming!⎈ -``` - -Let's install verdaccio - -``` -➜ helm install stable/verdaccio -NAME: joking-porcupine -LAST DEPLOYED: Tue May 1 17:15:22 2018 -NAMESPACE: default -STATUS: DEPLOYED - -RESOURCES: -==> v1/Pod(related) -NAME READY STATUS RESTARTS AGE -joking-porcupine-verdaccio-594ff959b4-rr4nq 0/1 ContainerCreating 0 0s - -==> v1/ConfigMap -NAME DATA AGE -joking-porcupine-verdaccio 1 0s - -==> v1/PersistentVolumeClaim -NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE -joking-porcupine-verdaccio Bound pvc-78008a6a-4d52-11e8-86f2-080027bd643e 8Gi RWO standard 0s - -==> v1/Service -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -joking-porcupine-verdaccio ClusterIP 10.100.245.159 4873/TCP 0s - -==> v1beta1/Deployment -NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE -joking-porcupine-verdaccio 1 1 1 0 0s - -NOTES: -1. Get the application URL by running these commands: - export POD_NAME=$(kubectl get pods --namespace default -l "app=verdaccio,release=vested-lobster" -o jsonpath="{.items[0].metadata.name}") - kubectl port-forward $POD_NAME 8080:4873 - echo "Visit http://127.0.0.1:8080 to use your application" - -``` - -![alt verdaccio](media/kubernetes_dashboard.png 'verdaccio app') - -Then, follow the notes. - -We export the application - -``` -export POD_NAME=$(kubectl get pods --namespace default -l "app=verdaccio,release=veering-gorilla" -o jsonpath="{.items[0].metadata.name}") -``` - -and we expose the port - -``` -➜ kubectl port-forward $POD_NAME 8080:4873 -Forwarding from 127.0.0.1:8080 -> 4873 -Forwarding from [::1]:8080 -> 4873 -``` - -Verdaccio is up and running. - -``` -http://127.0.0.1:8080/#/ -``` - -### Publishing a Package - -Let's log in. - -``` -➜ npm adduser --registry http://127.0.0.1:8080 -Username: user -Password: *** -Email: (this IS public) user@domain.com -Logged in as user on http://127.0.0.1:8080/. -``` - -and now we can publish - -``` -➜ npm publish --registry http://127.0.0.1:8080 -+ @kubernetes/hellonode-example@1.0.0 -``` - -![alt verdaccio](media/kubernetes_verdaccio.png 'verdaccio app') - -### Scale - -Check the pod name (if you do not include --name) on install helm, kubernetes generate a random name. - -``` -➜ kubectl get pods -NAME READY STATUS RESTARTS AGE -veering-gorilla-verdaccio-666d9488bc-n9p27 1/1 Running 0 11m -``` - -Let's scale - -``` -➜ kubectl scale deployment veering-gorilla-verdaccio --replicas=3 -deployment.extensions "veering-gorilla-verdaccio" scaled -``` - -![alt verdaccio](media/kubernetes_scale.png 'verdaccio scaled') - -## Problems - -I had this issue trying to install verdaccio helm, to solve it I just run a command and all works perfectly. - -### [Registered user can't login](https://github.com/verdaccio/verdaccio/issues/943) - -If you are facing this issue please read the following link https://github.com/verdaccio/verdaccio/issues/943#issuecomment-427670085 - -### Connection refused - -``` -➜ helm install stable/verdaccio -Error: Get http://localhost:8080/api/v1/namespaces/kube-system/configmaps?labelSelector=OWNER%!D(MISSING)TILLER: dial tcp 127.0.0.1:8080: connect: connection refused -``` - -Run the following script to solve it. - -``` -kubectl -n kube-system patch deployment tiller-deploy -p '{"spec": {"template": {"spec": {"automountServiceAccountToken": true}}}}' -``` - -#### Tiller pod is missing - -``` -➜ helm install stable/verdaccio -Error: could not find a ready tiller pod -``` - -Run this to fix it. - -``` -helm init --upgrade -``` diff --git a/docker-examples/v4/kubernetes-helm-example/media/kubernetes_dashboard.png b/docker-examples/v4/kubernetes-helm-example/media/kubernetes_dashboard.png deleted file mode 100644 index e620f6084..000000000 Binary files a/docker-examples/v4/kubernetes-helm-example/media/kubernetes_dashboard.png and /dev/null differ diff --git a/docker-examples/v4/kubernetes-helm-example/media/kubernetes_scale.png b/docker-examples/v4/kubernetes-helm-example/media/kubernetes_scale.png deleted file mode 100644 index e9611ad79..000000000 Binary files a/docker-examples/v4/kubernetes-helm-example/media/kubernetes_scale.png and /dev/null differ diff --git a/docker-examples/v4/kubernetes-helm-example/media/kubernetes_verdaccio.png b/docker-examples/v4/kubernetes-helm-example/media/kubernetes_verdaccio.png deleted file mode 100644 index ec5ed4ce2..000000000 Binary files a/docker-examples/v4/kubernetes-helm-example/media/kubernetes_verdaccio.png and /dev/null differ diff --git a/docker-examples/v4/ldap-verdaccio/conf/config.yaml b/docker-examples/v4/ldap-verdaccio/conf/config.yaml deleted file mode 100644 index 9c259422f..000000000 --- a/docker-examples/v4/ldap-verdaccio/conf/config.yaml +++ /dev/null @@ -1,78 +0,0 @@ -# -# This is the config file used for the docker images. -# It allows all users to do anything, so don't use it on production systems. -# -# Do not configure host and port under `listen` in this file -# as it will be ignored when using docker. -# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: /verdaccio/storage - -auth: - ldap: - type: ldap - client_options: - url: 'ldap://openldap:389' - # Only required if you need auth to bind - adminDn: 'cn=admin,dc=example,dc=org' - adminPassword: 'admin' - # Search base for users - searchBase: 'ou=People,dc=example,dc=org' - searchFilter: '(cn={{username}})' - # If you are using groups, this is also needed - groupDnProperty: 'cn' - groupSearchBase: 'ou=Groups,dc=example,dc=org' - # If you have memberOf support on your ldap - searchAttributes: ['*', 'memberOf'] - # Else, if you don't (use one or the other): - # groupSearchFilter: '(memberUid={{dn}})' - # - # Optional, default false. - # If true, then up to 100 credentials at a time will be cached for 5 minutes. - cache: false - # Optional - reconnect: true - -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@scope/*': - # scoped packages - access: marpontes zach leonardo - publish: $authenticated - proxy: npmjs - '@*/*': - # scoped packages - access: $all - publish: $authenticated - proxy: npmjs - '**': - # allow all users (including non-authenticated users) to read and - # publish all packages - # - # you can specify usernames/groupnames (depending on your auth plugin) - # and three keywords: "$all", "$anonymous", "$authenticated" - access: $all - - # allow all known users to publish packages - # (anyone can register by default, remember?) - publish: $authenticated - - # if package is not available locally, proxy requests to 'npmjs' registry - proxy: npmjs - -# log settings -logs: - - { type: stdout, format: pretty, level: trace } - #- {type: file, path: verdaccio.log, level: info} - -listen: - - 0.0.0.0:4873 diff --git a/docker-examples/v4/ldap-verdaccio/docker-compose.yaml b/docker-examples/v4/ldap-verdaccio/docker-compose.yaml deleted file mode 100644 index c9e24b058..000000000 --- a/docker-examples/v4/ldap-verdaccio/docker-compose.yaml +++ /dev/null @@ -1,48 +0,0 @@ -version: '2' - -services: - verdaccio: - container_name: verdaccio-ldap-1 - build: verdaccio-ldap/ - ports: - - '4873:4873' - volumes: - - './storage:/verdaccio/storage' - - './conf:/verdaccio/conf' - openldap: - image: osixia/openldap - container_name: openldap - hostname: openldap - environment: - LDAP_ORGANISATION: 'LDAP Verdaccio Auth' - LDAP_SSL_HELPER_PREFIX: 'ldap' - LDAP_TLS_VERIFY_CLIENT: 'never' - LDAP_LOG_LEVEL: 256 - LDAP_ADMIN_PASSWORD: 'admin' - ports: - - '389:389' - links: - - verdaccio - openldap-seed: - image: osixia/openldap - volumes: - - ./docker/ldap/ldif_files:/ldif_files - links: - - openldap - entrypoint: sh -c '/ldif_files/addAll.sh' - openldap-admin: - image: osixia/phpldapadmin - container_name: openldap-admin - hostname: openldap-admin - environment: - PHPLDAPADMIN_HTTPS=false: - PHPLDAPADMIN_LDAP_HOSTS: 'openldap' - ports: - - '8080:80' - links: - - 'openldap:openldap' - depends_on: - - openldap -volumes: - verdaccio: - driver: local diff --git a/docker-examples/v4/ldap-verdaccio/docker/ldap/ldif_files/addAll.sh b/docker-examples/v4/ldap-verdaccio/docker/ldap/ldif_files/addAll.sh deleted file mode 100755 index f235d76ba..000000000 --- a/docker-examples/v4/ldap-verdaccio/docker/ldap/ldif_files/addAll.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -sleep 5 -ldapsearch -v -h openldap -x -D "cn=admin,dc=example,dc=org" -w admin -b "dc=example,dc=org" -s sub -ldapadd -v -h openldap -c -D "cn=admin,dc=example,dc=org" -w admin -f /ldif_files/people.ldif \ No newline at end of file diff --git a/docker-examples/v4/ldap-verdaccio/docker/ldap/ldif_files/people.ldif b/docker-examples/v4/ldap-verdaccio/docker/ldap/ldif_files/people.ldif deleted file mode 100644 index 475c99321..000000000 --- a/docker-examples/v4/ldap-verdaccio/docker/ldap/ldif_files/people.ldif +++ /dev/null @@ -1,69 +0,0 @@ -# --- OUs ------------------------------------- - -dn: ou=Groups,dc=example,dc=org -objectClass: organizationalunit -objectClass: top -ou: Groups - -dn: ou=People,dc=example,dc=org -objectClass: organizationalunit -objectClass: top -ou: People - - -# --- People ---------------------------------- - -dn: cn=marpontes,ou=People,dc=example,dc=org -objectClass: person -objectClass: inetOrgPerson -objectClass: organizationalPerson -objectClass: top -cn: marpontes -userpassword: pass -givenname: Marcello -sn: Pontes -mail: marcello@oncase.com.br -uid: 1001 - -dn: cn=zach,ou=People,dc=example,dc=org -objectClass: person -objectClass: inetOrgPerson -objectClass: organizationalPerson -objectClass: top -cn: zach -userpassword: pass -givenname: Zachary -sn: Zeus -mail: zach@oncase.com.br -uid: 1002 - -dn: cn=leonardo,ou=People,dc=example,dc=org -objectClass: person -objectClass: inetOrgPerson -objectClass: organizationalPerson -objectClass: top -cn: leonardo -userpassword: pass -givenname: Leonardo -sn: Luiz -mail: zach@oncase.com.br -uid: 1003 - - -# --- Groups ---------------------------------- - -dn: cn=Administrator,ou=Groups,dc=example,dc=org -objectClass: groupofuniquenames -objectClass: top -ou: Groups -cn: Administrator -uniquemember: cn=marpontes, ou=People, dc=example,dc=org - -dn: cn=Developers,ou=Groups,dc=example,dc=org -objectClass: groupofuniquenames -objectClass: top -ou: Groups -cn: Administrator -uniquemember: cn=marpontes, ou=People, dc=example,dc=org -uniquemember: cn=zach, ou=People, dc=example,dc=org -uniquemember: cn=leonardo, ou=People, dc=example,dc=org \ No newline at end of file diff --git a/docker-examples/v4/ldap-verdaccio/readme.md b/docker-examples/v4/ldap-verdaccio/readme.md deleted file mode 100644 index 3dc376094..000000000 --- a/docker-examples/v4/ldap-verdaccio/readme.md +++ /dev/null @@ -1,86 +0,0 @@ -# Verdaccio and OpenLDAP Server - -Running `verdaccio` with the plugin [https://github.com/Alexandre-io/verdaccio-ldap](https://github.com/Alexandre-io/verdaccio-ldap). - -## Introduction - -This example is based on: - -- **OpenLDAP** (ldap://localhost:389) -- **phpLDAP Admin** (http://localhost:8080/) -- **Verdaccio** (http://localhost:4873/) - -It provides a published package named `@scope/example` that only authenticated users can access. - -``` -packages: - '@scope/*': - access: marpontes zach leonardo - publish: $authenticated - proxy: npmjs - '@*/*': - access: $all - publish: $authenticated - proxy: npmjs - '**': - access: $all - publish: $authenticated - proxy: npmjs -``` - -## Usage - -To run the containers, run the following command in this folder, it should starts the containers in detach mode. - -```bash -➜ docker-compose up --force-recreate --build - -Building verdaccio -Step 1/4 : FROM verdaccio/verdaccio:4.2.2 - ---> 0d58a1eae16d -Step 2/4 : USER root - ---> Using cache - ---> fb3300bf15cc -Step 3/4 : RUN npm i && npm i verdaccio-ldap - ---> Using cache - ---> 97701fa53b43 -Step 4/4 : USER verdaccio - ---> Using cache - ---> fd5ddaa03d8f -Successfully built fd5ddaa03d8f -Successfully tagged ldap-verdaccio_verdaccio:latest -Recreating verdaccio-ldap-1 ... done -Recreating openldap ... done -Recreating ldap-verdaccio_openldap-seed_1 ... done -Recreating openldap-admin ... done -Attaching to verdaccio-ldap-1, openldap, ldap-verdaccio_openldap-seed_1, openldap-admin -verdaccio-ldap-1 | warn --- config file - /verdaccio/conf/config.yaml -verdaccio-ldap-1 | warn --- Plugin successfully loaded: verdaccio-ldap -verdaccio-ldap-1 | warn --- http address - http://0.0.0.0:4873/ - verdaccio/4.2.2 -openldap | *** CONTAINER_LOG_LEVEL = 3 (info) -openldap | *** Search service in CONTAINER_SERVICE_DIR = /container/service : -openldap | *** link /container/service/:ssl-tools/startup.sh to /container/run/startup/:ssl-tools -openldap | *** link /container/service/slapd/startup.sh to /container/run/startup/slapd -openldap | *** link /container/service/slapd/process.sh to /container/run/process/slapd/run -openldap | *** Set environment for startup files -openldap | *** Environment files will be proccessed in this order : -openldap | Caution: previously defined variables will not be overriden. -openldap | /container/environment/99-default/default.yaml -openldap | /container/environment/99-default/default.startup.yaml -``` - -To stop all containers - -```bash -docker-compose stop -``` - -## Credentials - -You can find the complete list of users in the `people.ldif` file. However here a brief list of credentials. - -``` -marpontes: pass -zach: pass -leonardo: pass -``` diff --git a/docker-examples/v4/ldap-verdaccio/storage/@scope/example/example-1.0.0.tgz b/docker-examples/v4/ldap-verdaccio/storage/@scope/example/example-1.0.0.tgz deleted file mode 100644 index d72a319bc..000000000 Binary files a/docker-examples/v4/ldap-verdaccio/storage/@scope/example/example-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/ldap-verdaccio/storage/@scope/example/package.json b/docker-examples/v4/ldap-verdaccio/storage/@scope/example/package.json deleted file mode 100644 index f74da0f2c..000000000 --- a/docker-examples/v4/ldap-verdaccio/storage/@scope/example/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "@scope/example", - "versions": { - "1.0.0": { - "name": "@scope/example", - "version": "1.0.0", - "description": "exampled scoped module", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - "example" - ], - "author": { - "name": "Juan Picado" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.3.1" - }, - "_id": "@scope/example@1.0.0", - "_npmVersion": "6.3.0", - "_nodeVersion": "10.1.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-UrpRhmCAwyGF2pWWd+fGDN8tFsVcCoLmK/qHaVAamphR+E4ZUjGf6N5GGgneFwbSeZ0FQrDYtUTPKrysxGIihQ==", - "shasum": "4c36e40e65049b32cd49599f65cb50b81b9d8810", - "tarball": "http://localhost:4873/@scope/example/-/@scope/example-1.0.0.tgz" - } - } - }, - "time": { - "modified": "2018-09-22T17:08:29.339Z", - "created": "2018-09-22T17:08:29.339Z", - "1.0.0": "2018-09-22T17:08:29.339Z" - }, - "dist-tags": { - "latest": "1.0.0" - }, - "_uplinks": {}, - "_distfiles": {}, - "_attachments": { - "example-1.0.0.tgz": { - "shasum": "4c36e40e65049b32cd49599f65cb50b81b9d8810", - "version": "1.0.0" - } - }, - "_rev": "9-664a1a1732f461c8", - "readme": "ERROR: No README data found!" -} diff --git a/docker-examples/v4/ldap-verdaccio/verdaccio-ldap/Dockerfile b/docker-examples/v4/ldap-verdaccio/verdaccio-ldap/Dockerfile deleted file mode 100644 index 5ab1d1933..000000000 --- a/docker-examples/v4/ldap-verdaccio/verdaccio-ldap/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM verdaccio/verdaccio:4.2.2 -USER root -RUN npm i && npm i verdaccio-ldap -USER verdaccio \ No newline at end of file diff --git a/docker-examples/v4/multi-registry-uplink/.gitignore b/docker-examples/v4/multi-registry-uplink/.gitignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/docker-examples/v4/multi-registry-uplink/README.md b/docker-examples/v4/multi-registry-uplink/README.md deleted file mode 100644 index e64d0dfb1..000000000 --- a/docker-examples/v4/multi-registry-uplink/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Verdaccio Uplinks - -## Context - -This is an experiment for the **uplinks** feature. - -https://verdaccio.org/docs/en/uplinks - -Furthermore, this experiment also proves the oldest Verdaccio (2.x) still is able to communicate with the latest development version (4.x). - -## Objective - -We have 3 registries: - -- Server 1 (verdaccio@4.x) -- Server 2 (verdaccio@2.x) -- Server 3 (verdaccio@3.x) - -The servers have no authentication in order to simplify the configuration. The server 3 and server 1 are chained with server 2 which is the unique that contains the dependency `@jota/pk1-juan`. - -The request will go through `server 1 --> server 3 --> server 2` and should retrieve the tarball to the local project executing the following: - -``` - npm install @jota/pk1-juan --registry http://localhost:4873 -``` - -The result is a successful installation of the package. - -## Usage - -To force recreate the images. - -```bash -docker-compose up --build --force-recreate -d -``` - -To stop all containers - -```bash -docker-compose stop -``` diff --git a/docker-examples/v4/multi-registry-uplink/docker-compose.yaml b/docker-examples/v4/multi-registry-uplink/docker-compose.yaml deleted file mode 100644 index 293439eb7..000000000 --- a/docker-examples/v4/multi-registry-uplink/docker-compose.yaml +++ /dev/null @@ -1,41 +0,0 @@ -version: '3' -services: - verdaccio: - image: verdaccio/verdaccio:4 - container_name: verdaccio-multi-1 - ports: - - '4873:4873' - volumes: - - './server1/storage:/verdaccio/storage' - - './server1/conf:/verdaccio/conf' - links: - - verdaccio3:verdaccio3 - depends_on: - - verdaccio3 - verdaccio2: - image: verdaccio/verdaccio:2 - container_name: verdaccio-multi-2 - ports: - - '4874:4873' - volumes: - - './server2/storage:/verdaccio/storage' - - './server2/conf:/verdaccio/conf' - verdaccio3: - image: verdaccio/verdaccio:3 - container_name: verdaccio-multi-3 - ports: - - '4875:4873' - links: - - verdaccio2:verdaccio2 - volumes: - - './server3/storage:/verdaccio/storage' - - './server3/conf:/verdaccio/conf' - depends_on: - - verdaccio2 -volumes: - verdaccio: - driver: local - verdaccio2: - driver: local - verdaccio3: - driver: local diff --git a/docker-examples/v4/multi-registry-uplink/server1/conf/config.yaml b/docker-examples/v4/multi-registry-uplink/server1/conf/config.yaml deleted file mode 100644 index e7d857d7f..000000000 --- a/docker-examples/v4/multi-registry-uplink/server1/conf/config.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# -# This is the config file used for the docker images. -# It allows all users to do anything, so don't use it on production systems. -# -# Do not configure host and port under `listen` in this file -# as it will be ignored when using docker. -# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: /verdaccio/storage - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd -security: - api: - jwt: - sign: - expiresIn: 60d - notBefore: 1 - web: - sign: - expiresIn: 7d - -# a list of other known repositories we can talk to -uplinks: - server3: - url: http://verdaccio3:4873/ - max_fails: 100 - timeout: 100s - -packages: - '@jota/*': - access: $all - publish: $all - proxy: server3 - '@*/*': - access: $all - publish: $all - proxy: server3 - '**': - access: $all - publish: $all - proxy: server3 - -middlewares: - audit: - enabled: true - -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/docker-examples/v4/multi-registry-uplink/server1/conf/htpasswd b/docker-examples/v4/multi-registry-uplink/server1/conf/htpasswd deleted file mode 100644 index e69de29bb..000000000 diff --git a/docker-examples/v4/multi-registry-uplink/server1/storage/.gitkeep b/docker-examples/v4/multi-registry-uplink/server1/storage/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/docker-examples/v4/multi-registry-uplink/server1/storage/@jota/pk1-juan/package.json b/docker-examples/v4/multi-registry-uplink/server1/storage/@jota/pk1-juan/package.json deleted file mode 100644 index e02791589..000000000 --- a/docker-examples/v4/multi-registry-uplink/server1/storage/@jota/pk1-juan/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "@jota/pk1-juan", - "versions": { - "1.0.0": { - "name": "@jota/pk1-juan", - "version": "1.0.0", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.2.1" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-JC4y+iHrUpD+li3Pf9z2oFxw2Mtbqi6vgnIDBB3H/P/t0gAuCKK/LJ86kV7TRyvQwVvyJk1qI61iOVLiMwjZ8Q==", - "shasum": "95a21c648054c7144a23995a519930255f35b6c2", - "tarball": "http://verdaccio3:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.0.tgz" - } - }, - "1.0.1": { - "name": "@jota/pk1-juan", - "version": "1.0.1", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.2.1" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-copZNn2mMX8S3W9czxd3GXKj8vKu1v7JrUD9zOtriP8v9AvZOHIt6nW8+1114cumNGukFxjBO+2VlZC793ynTA==", - "shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "tarball": "http://verdaccio3:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.1.tgz" - } - } - }, - "time": { - "modified": "2018-01-17T18:49:09.087Z", - "created": "2018-01-17T18:27:39.952Z", - "1.0.0": "2018-01-17T18:27:39.952Z", - "1.0.1": "2018-01-17T18:49:09.087Z" - }, - "dist-tags": { - "latest": "1.0.0", - "beta2": "1.0.1" - }, - "_uplinks": { - "server3": { - "etag": "\"3ad640b1f8542d53fd0806e5e8462af7\"", - "fetched": 1549659258060 - } - }, - "_distfiles": { - "pk1-juan-1.0.0.tgz": { - "url": "http://verdaccio3:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.0.tgz", - "sha": "95a21c648054c7144a23995a519930255f35b6c2", - "registry": "server3" - }, - "pk1-juan-1.0.1.tgz": { - "url": "http://verdaccio3:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.1.tgz", - "sha": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "registry": "server3" - } - }, - "_attachments": { - "pk1-juan-1.0.0.tgz": { - "shasum": "95a21c648054c7144a23995a519930255f35b6c2" - } - }, - "_rev": "3-0c63867229e7ec25", - "readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)" -} diff --git a/docker-examples/v4/multi-registry-uplink/server1/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz b/docker-examples/v4/multi-registry-uplink/server1/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz deleted file mode 100644 index cb8e0afd7..000000000 Binary files a/docker-examples/v4/multi-registry-uplink/server1/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/multi-registry-uplink/server1/storage/jquery/jquery-3.3.1.tgz b/docker-examples/v4/multi-registry-uplink/server1/storage/jquery/jquery-3.3.1.tgz deleted file mode 100644 index 2241e568c..000000000 Binary files a/docker-examples/v4/multi-registry-uplink/server1/storage/jquery/jquery-3.3.1.tgz and /dev/null differ diff --git a/docker-examples/v4/multi-registry-uplink/server1/storage/jquery/package.json b/docker-examples/v4/multi-registry-uplink/server1/storage/jquery/package.json deleted file mode 100644 index 0a7fab688..000000000 --- a/docker-examples/v4/multi-registry-uplink/server1/storage/jquery/package.json +++ /dev/null @@ -1,4918 +0,0 @@ -{ - "name": "jquery", - "versions": { - "1.5.1": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": "=0.1.20", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.5.1", - "_id": "jquery@1.5.1", - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "0.3.15", - "_nodeVersion": "v0.4.2", - "directories": { - "lib": "./lib" - }, - "files": [ - "" - ], - "_defaultsLoaded": true, - "dist": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.5.1.tgz" - }, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.6.2", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.2/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.2", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.15", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "01757a4c5beea29e8ae697527c3131abbe997a28", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.6.2.tgz" - }, - "scripts": {}, - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "url": "http://jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": ".", - "main": "./node-jquery.js", - "version": "1.6.3", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.3/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.3", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.22", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.6.3.tgz" - }, - "scripts": {}, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": "0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.3.0" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "_id": "jquery@1.7.2", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.12", - "_nodeVersion": "v0.6.14", - "_defaultsLoaded": true, - "dist": { - "shasum": "a93746763aca75a34df4c16395b0826310d0eaf2", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.7.2.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.7.3", - "dist": { - "shasum": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.7.3.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.2", - "dist": { - "shasum": "46790ae07c6de38124eda90bbf7336b43df93305", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.8.2.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1", - "contextify": "~0.1.3" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.3", - "dist": { - "shasum": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.8.3.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "2.1.0-beta2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta2", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "~0.4.10", - "grunt": "~0.4.1", - "grunt-bower-task": "~0.3.2", - "grunt-cli": "~0.1.11", - "grunt-compare-size": "~0.4.0", - "grunt-contrib-jshint": "~0.7.0", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-watch": "~0.5.3", - "grunt-git-authors": "~1.2.0", - "grunt-jscs-checker": "~0.2.3", - "grunt-jsonlint": "~1.0.1", - "gzip-js": "0.3.2", - "load-grunt-tasks": "~0.2.0", - "testswarm": "~1.1.0", - "requirejs": "~2.1.9", - "which": "~1.0.5" - }, - "_id": "jquery@2.1.0-beta2", - "dist": { - "shasum": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.0-beta2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "rwaldron", - "email": "waldron.rick@gmail.com" - }, - { - "name": "jquery", - "email": "npm@jquery.com" - } - ], - "directories": {} - }, - "2.1.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-beta3", - "dist": { - "shasum": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-beta3", - "dist": { - "shasum": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-rc1", - "dist": { - "shasum": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "dave.methvin@gmail.com" - } - ], - "directories": {} - }, - "2.1.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-rc1", - "dist": { - "shasum": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - } - ], - "directories": {} - }, - "1.11.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0", - "dist": { - "shasum": "c67ceee19b403650d682adcf39d5c9009814d949", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0", - "dist": { - "shasum": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-beta1", - "dist": { - "shasum": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-beta1", - "dist": { - "shasum": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc1", - "_shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.1-rc1.tgz" - }, - "directories": {} - }, - "1.11.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc1", - "_shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.1-rc1.tgz" - }, - "directories": {} - }, - "2.1.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc2", - "dist": { - "shasum": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc2", - "dist": { - "shasum": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1", - "dist": { - "shasum": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1", - "dist": { - "shasum": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.9.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.9.1", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "scripts": { - "test": "grunt" - }, - "dependencies": {}, - "devDependencies": { - "grunt-compare-size": "~0.3.0", - "grunt-git-authors": "~1.1.0", - "grunt-update-submodules": "~0.2.0", - "grunt-contrib-watch": "~0.1.1", - "grunt-contrib-jshint": "~0.1.1", - "grunt-contrib-uglify": "~0.1.1", - "grunt": "~0.4.0", - "testswarm": "0.2.2" - }, - "keywords": [], - "gitHead": "d71f6a53927ad02d728503385d15539b73d21ac8", - "_id": "jquery@1.9.1", - "_shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "_from": ".", - "_npmVersion": "1.5.0-alpha-1", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.9.1.tgz" - }, - "directories": {} - }, - "2.1.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "a04f5ff9795fd6292117563623db44cf3f875868", - "_id": "jquery@2.1.2", - "_shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.2.tgz" - }, - "directories": {} - }, - "1.11.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "9690801db01709bfbff5f977d07fb7cc14472908", - "_id": "jquery@1.11.2", - "_shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.2.tgz" - }, - "directories": {} - }, - "2.1.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0", - "_id": "jquery@2.1.3", - "_shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "_from": ".", - "_npmVersion": "2.1.14", - "_nodeVersion": "0.11.14", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.3.tgz" - }, - "directories": {} - }, - "2.1.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "7751e69b615c6eca6f783a81e292a55725af6b85", - "_id": "jquery@2.1.4", - "_shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.1.4.tgz" - }, - "directories": {} - }, - "1.11.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "1472290917f17af05e98007136096784f9051fab", - "_id": "jquery@1.11.3", - "_shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.11.3.tgz" - }, - "directories": {} - }, - "3.0.0-alpha1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-alpha1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-alpha1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.7.0", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs-checker": "0.8.1", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.0", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "jsdomVersions": { - "node": "3.1.2", - "iojs": "5.3.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2c92869b752bb8e0fe74c3183f40f3f58b7b906d", - "_id": "jquery@3.0.0-alpha1", - "_shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.0.0-alpha1.tgz" - }, - "directories": {} - }, - "1.12.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "efbdc6e3f0fa3d3cd4d3d8bfa37990b707f7c2e1", - "_id": "jquery@1.12.0", - "_shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.12.0.tgz" - }, - "directories": {} - }, - "2.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6fc01e29bdad0964f62ef56d01297039cdcadbe5", - "_id": "jquery@2.2.0", - "_shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.2.0.tgz" - }, - "directories": {} - }, - "3.0.0-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-beta1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.3.0", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2ef761afd9addf78193f5191ece03bb20c9182c2", - "_id": "jquery@3.0.0-beta1", - "_shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.0.0-beta1.tgz" - }, - "directories": {} - }, - "1.12.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "56ead6ffbf8560c521e7e94518d35db42b19f5f3", - "_id": "jquery@1.12.1", - "_shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.12.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.1.tgz_1456168080336_0.4474994211923331" - }, - "directories": {} - }, - "2.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "788eaba2f83e7b7445c7a83a50c81c0704423874", - "_id": "jquery@2.2.1", - "_shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.2.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.1.tgz_1456168325917_0.42471840139478445" - }, - "directories": {} - }, - "1.12.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "a9b5f8ac96f6aa7bfc7b0795cb16d65c4f15b64e", - "_id": "jquery@1.12.2", - "_shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.12.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.2.tgz_1458236759160_0.3557943068444729" - }, - "directories": {} - }, - "2.2.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "086d381cd2f3b4b8b0af85ecb2c9593a61e5b4bd", - "_id": "jquery@2.2.2", - "_shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.2.tgz_1458237146417_0.4190880397800356" - }, - "directories": {} - }, - "1.12.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "3a43d7e563314bf32970b773dd31ecf2b90813dd", - "_id": "jquery@1.12.3", - "_shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.12.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.3.tgz_1459884094815_0.5328964435029775" - }, - "directories": {} - }, - "2.2.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "af22a351b2ea5801ffb1695abb3bb34d5bed9198", - "_id": "jquery@2.2.3", - "_shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.3.tgz_1459884434885_0.992488760035485" - }, - "directories": {} - }, - "1.12.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "5e89585e0121e72ff47de177c5ef604f3089a53d", - "_id": "jquery@1.12.4", - "_shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-1.12.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.4.tgz_1463764744844_0.4810373710934073" - }, - "directories": {} - }, - "2.2.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "c0185ab7c75aab88762c5aae780b9d83b80eda72", - "_id": "jquery@2.2.4", - "_shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-2.2.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.4.tgz_1463765166836_0.5834389675874263" - }, - "directories": {} - }, - "3.0.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-rc1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "e503a93188dc4b5b42e2340f805f2d90b404bc50", - "_id": "jquery@3.0.0-rc1", - "_shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.0.0-rc1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0-rc1.tgz_1463771627380_0.12211154378019273" - }, - "directories": {} - }, - "3.0.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "0078f86be166a8747819d5d1516776a662cb69df", - "_id": "jquery@3.0.0", - "_shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0.tgz_1465497191024_0.9057256667874753" - }, - "directories": {} - }, - "3.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "0.1.6", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "18.1.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6f02bc382c0529d3b4f68f6b2ad21876642dbbfe", - "_id": "jquery@3.1.0", - "_shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "_from": ".", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.1.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.0.tgz_1467927964329_0.882518710102886" - }, - "directories": {} - }, - "3.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|(Refs? [^#])" - }, - "gitHead": "1b30f3ad466ebf2714d47eda34dbd7fdf6849fe3", - "_id": "jquery@3.1.1", - "_shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.1.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.1.tgz_1474583566957_0.15473420196212828" - }, - "directories": {} - }, - "3.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "a81259fff4ea0c7b4cd98f04050c829640395a31", - "_id": "jquery@3.2.0", - "_shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "_from": ".", - "_npmVersion": "4.1.2", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.2.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.0.tgz_1489699855733_0.5328386940527707" - }, - "directories": {} - }, - "3.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", - "_id": "jquery@3.2.1", - "_shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "_from": ".", - "_npmVersion": "4.4.4", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.2.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.1.tgz_1490036530067_0.19497186387889087" - }, - "directories": {} - }, - "3.3.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": { - "archiver": "1.3.0", - "chalk": "1.1.3", - "npm": "4.4.1", - "shelljs": "0.7.7" - }, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9a8a1c63930edc9fb6fab9e75b3eee578762b8a5", - "_id": "jquery@3.3.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-1SmQFTqu24RtvnvLN/D1RFIsOBGqLQYsGJgZxejd69Rw9ACBJvSgppA+A+wBcXgASwRSoX1aDN1I5ZNIrFC6Xw==", - "shasum": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.3.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.0.tgz_1516388631205_0.827812286792323" - }, - "directories": {} - }, - "3.3.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9e8ec3d10fad04748176144f108d7355662ae75e", - "_id": "jquery@3.3.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "tarball": "http://verdaccio3:4873/jquery/-/jquery-3.3.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.1.tgz_1516469230473_0.5458589680492878" - }, - "directories": {} - } - }, - "time": { - "modified": "2019-01-04T06:22:45.629Z", - "created": "2011-03-19T07:19:56.392Z", - "1.5.1": "2011-03-19T07:19:56.956Z", - "1.6.2": "2011-07-06T16:13:21.519Z", - "1.6.3": "2011-09-12T19:05:34.373Z", - "1.7.2": "2012-05-01T11:14:09.090Z", - "1.7.3": "2012-07-01T16:11:53.194Z", - "1.8.2": "2012-11-11T22:43:58.910Z", - "1.8.3": "2012-12-01T00:03:02.297Z", - "2.1.0-beta2": "2013-11-15T16:34:48.859Z", - "2.1.0-beta3": "2013-12-20T22:53:28.426Z", - "1.11.0-beta3": "2014-01-06T19:57:22.387Z", - "2.1.0-rc1": "2014-01-17T22:47:16.391Z", - "1.11.0-pre": "2014-01-16T20:38:42.912Z", - "1.11.0-rc1": "2014-01-16T21:08:36.924Z", - "1.11.0": "2014-01-23T21:07:07.184Z", - "2.1.0": "2014-01-23T21:12:47.772Z", - "2.1.1-beta1": "2014-03-24T17:05:07.581Z", - "1.11.1-beta1": "2014-03-24T17:25:14.236Z", - "2.1.1-rc1": "2014-04-18T15:29:41.423Z", - "1.11.1-rc1": "2014-04-18T15:40:23.931Z", - "2.1.1-rc2": "2014-04-21T20:52:06.866Z", - "1.11.1-rc2": "2014-04-21T21:12:52.817Z", - "2.1.1": "2014-05-01T17:15:20.164Z", - "1.11.1": "2014-05-01T18:05:32.863Z", - "1.9.1": "2014-07-17T22:01:17.886Z", - "2.1.2": "2014-12-17T14:14:28.184Z", - "1.11.2": "2014-12-17T16:07:07.647Z", - "2.1.3": "2014-12-18T15:18:38.205Z", - "2.1.4": "2015-04-28T16:17:13.648Z", - "1.11.3": "2015-04-28T16:22:06.378Z", - "3.0.0-alpha1": "2015-07-13T19:26:37.913Z", - "1.12.0": "2016-01-08T19:58:05.265Z", - "2.2.0": "2016-01-08T20:03:43.280Z", - "3.0.0-beta1": "2016-01-14T23:09:43.368Z", - "1.12.1": "2016-02-22T19:08:05.212Z", - "2.2.1": "2016-02-22T19:12:09.116Z", - "1.12.2": "2016-03-17T17:45:59.810Z", - "2.2.2": "2016-03-17T17:52:26.967Z", - "1.12.3": "2016-04-05T19:21:37.716Z", - "2.2.3": "2016-04-05T19:27:17.929Z", - "1.12.4": "2016-05-20T17:19:07.375Z", - "2.2.4": "2016-05-20T17:26:07.921Z", - "3.0.0-rc1": "2016-05-20T19:13:48.387Z", - "3.0.0": "2016-06-09T18:33:13.420Z", - "3.1.0": "2016-07-07T21:46:05.554Z", - "3.1.1": "2016-09-22T22:32:49.360Z", - "3.2.0": "2017-03-16T21:30:56.342Z", - "3.2.1": "2017-03-20T19:02:13.508Z", - "3.3.0": "2018-01-19T19:03:52.616Z", - "3.3.1": "2018-01-20T17:27:11.928Z" - }, - "dist-tags": { - "beta": "3.3.1", - "latest": "3.3.1" - }, - "_uplinks": { - "server3": { - "etag": "\"b3d03e3f60950266b0347109cda18912\"", - "fetched": 1549659258511 - } - }, - "_distfiles": { - "jquery-1.5.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.5.1.tgz", - "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "registry": "server3" - }, - "jquery-1.6.2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.6.2.tgz", - "sha": "01757a4c5beea29e8ae697527c3131abbe997a28", - "registry": "server3" - }, - "jquery-1.6.3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.6.3.tgz", - "sha": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "registry": "server3" - }, - "jquery-1.7.2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.7.2.tgz", - "sha": "a93746763aca75a34df4c16395b0826310d0eaf2", - "registry": "server3" - }, - "jquery-1.7.3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.7.3.tgz", - "sha": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "registry": "server3" - }, - "jquery-1.8.2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.8.2.tgz", - "sha": "46790ae07c6de38124eda90bbf7336b43df93305", - "registry": "server3" - }, - "jquery-1.8.3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.8.3.tgz", - "sha": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "registry": "server3" - }, - "jquery-2.1.0-beta2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.0-beta2.tgz", - "sha": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "registry": "server3" - }, - "jquery-2.1.0-beta3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.0-beta3.tgz", - "sha": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "registry": "server3" - }, - "jquery-1.11.0-beta3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.0-beta3.tgz", - "sha": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "registry": "server3" - }, - "jquery-1.11.0-rc1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.0-rc1.tgz", - "sha": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "registry": "server3" - }, - "jquery-2.1.0-rc1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.0-rc1.tgz", - "sha": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "registry": "server3" - }, - "jquery-1.11.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.0.tgz", - "sha": "c67ceee19b403650d682adcf39d5c9009814d949", - "registry": "server3" - }, - "jquery-2.1.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.0.tgz", - "sha": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "registry": "server3" - }, - "jquery-2.1.1-beta1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.1-beta1.tgz", - "sha": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "registry": "server3" - }, - "jquery-1.11.1-beta1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.1-beta1.tgz", - "sha": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "registry": "server3" - }, - "jquery-2.1.1-rc1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.1-rc1.tgz", - "sha": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "registry": "server3" - }, - "jquery-1.11.1-rc1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.1-rc1.tgz", - "sha": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "registry": "server3" - }, - "jquery-2.1.1-rc2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.1-rc2.tgz", - "sha": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "registry": "server3" - }, - "jquery-1.11.1-rc2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.1-rc2.tgz", - "sha": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "registry": "server3" - }, - "jquery-2.1.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.1.tgz", - "sha": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "registry": "server3" - }, - "jquery-1.11.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.1.tgz", - "sha": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "registry": "server3" - }, - "jquery-1.9.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.9.1.tgz", - "sha": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "registry": "server3" - }, - "jquery-2.1.2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.2.tgz", - "sha": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "registry": "server3" - }, - "jquery-1.11.2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.2.tgz", - "sha": "30ab26857211c37caa83da0f6903155fe49bb72d", - "registry": "server3" - }, - "jquery-2.1.3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.3.tgz", - "sha": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "registry": "server3" - }, - "jquery-2.1.4.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.1.4.tgz", - "sha": "228bde698a0c61431dc2630a6a154f15890d2317", - "registry": "server3" - }, - "jquery-1.11.3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.11.3.tgz", - "sha": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "registry": "server3" - }, - "jquery-3.0.0-alpha1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.0.0-alpha1.tgz", - "sha": "3493d672266e21c2dffb2714f935448edebe3c62", - "registry": "server3" - }, - "jquery-1.12.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.12.0.tgz", - "sha": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "registry": "server3" - }, - "jquery-2.2.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.2.0.tgz", - "sha": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "registry": "server3" - }, - "jquery-3.0.0-beta1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.0.0-beta1.tgz", - "sha": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "registry": "server3" - }, - "jquery-1.12.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.12.1.tgz", - "sha": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "registry": "server3" - }, - "jquery-2.2.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.2.1.tgz", - "sha": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "registry": "server3" - }, - "jquery-1.12.2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.12.2.tgz", - "sha": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "registry": "server3" - }, - "jquery-2.2.2.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.2.2.tgz", - "sha": "3e302dc61eb329a21e9efac937d731f061134c59", - "registry": "server3" - }, - "jquery-1.12.3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.12.3.tgz", - "sha": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "registry": "server3" - }, - "jquery-2.2.3.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.2.3.tgz", - "sha": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "registry": "server3" - }, - "jquery-1.12.4.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-1.12.4.tgz", - "sha": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "registry": "server3" - }, - "jquery-2.2.4.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-2.2.4.tgz", - "sha": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "registry": "server3" - }, - "jquery-3.0.0-rc1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.0.0-rc1.tgz", - "sha": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "registry": "server3" - }, - "jquery-3.0.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.0.0.tgz", - "sha": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "registry": "server3" - }, - "jquery-3.1.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.1.0.tgz", - "sha": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "registry": "server3" - }, - "jquery-3.1.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.1.1.tgz", - "sha": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "registry": "server3" - }, - "jquery-3.2.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.2.0.tgz", - "sha": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "registry": "server3" - }, - "jquery-3.2.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.2.1.tgz", - "sha": "5c4d9de652af6cd0a770154a631bba12b015c787", - "registry": "server3" - }, - "jquery-3.3.0.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.3.0.tgz", - "sha": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "registry": "server3" - }, - "jquery-3.3.1.tgz": { - "url": "http://verdaccio3:4873/jquery/-/jquery-3.3.1.tgz", - "sha": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "registry": "server3" - } - }, - "_attachments": { - "jquery-3.3.1.tgz": { - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca" - } - }, - "_rev": "3-cc53cd46004142d1", - "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" -} diff --git a/docker-examples/v4/multi-registry-uplink/server2/conf/config.yaml b/docker-examples/v4/multi-registry-uplink/server2/conf/config.yaml deleted file mode 100644 index 25692cf95..000000000 --- a/docker-examples/v4/multi-registry-uplink/server2/conf/config.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# -# This is the config file used for the docker images. -# It allows all users to do anything, so don't use it on production systems. -# -# Do not configure host and port under `listen` in this file -# as it will be ignored when using docker. -# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: /verdaccio/storage - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd - sign: - expiresIn: 7d - -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@jota/*': - access: $all - publish: $all - - '@*/*': - # scoped packages - access: $all - publish: $all - proxy: npmjs - - '**': - # allow all users (including non-authenticated users) to read and - # publish all packages - # - # you can specify usernames/groupnames (depending on your auth plugin) - # and three keywords: "$all", "$anonymous", "$authenticated" - access: $all - - # allow all known users to publish packages - # (anyone can register by default, remember?) - publish: $all - - # if package is not available locally, proxy requests to 'npmjs' registry - proxy: npmjs - -# log settings -logs: - - { type: stdout, format: pretty, level: trace } - #- {type: file, path: verdaccio.log, level: info} diff --git a/docker-examples/v4/multi-registry-uplink/server2/conf/htpasswd b/docker-examples/v4/multi-registry-uplink/server2/conf/htpasswd deleted file mode 100644 index e69de29bb..000000000 diff --git a/docker-examples/v4/multi-registry-uplink/server2/storage/@jota/pk1-juan/package.json b/docker-examples/v4/multi-registry-uplink/server2/storage/@jota/pk1-juan/package.json deleted file mode 100644 index dcedb82a7..000000000 --- a/docker-examples/v4/multi-registry-uplink/server2/storage/@jota/pk1-juan/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "@jota/pk1-juan", - "versions": { - "1.0.0": { - "name": "@jota/pk1-juan", - "version": "1.0.0", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.2.1" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-JC4y+iHrUpD+li3Pf9z2oFxw2Mtbqi6vgnIDBB3H/P/t0gAuCKK/LJ86kV7TRyvQwVvyJk1qI61iOVLiMwjZ8Q==", - "shasum": "95a21c648054c7144a23995a519930255f35b6c2", - "tarball": "http://0.0.0.0:4873/@jota/pk1-juan/-/@jota/pk1-juan-1.0.0.tgz" - } - }, - "1.0.1": { - "name": "@jota/pk1-juan", - "version": "1.0.1", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.2.1" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-copZNn2mMX8S3W9czxd3GXKj8vKu1v7JrUD9zOtriP8v9AvZOHIt6nW8+1114cumNGukFxjBO+2VlZC793ynTA==", - "shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "tarball": "http://0.0.0.0:4873/@jota/pk1-juan/-/@jota/pk1-juan-1.0.1.tgz" - } - } - }, - "dist-tags": { - "latest": "1.0.0", - "beta2": "1.0.1" - }, - "time": { - "modified": "2018-01-17T18:49:09.087Z", - "created": "2018-01-17T18:27:39.952Z", - "1.0.0": "2018-01-17T18:27:39.952Z", - "1.0.1": "2018-01-17T18:49:09.087Z" - }, - "_distfiles": {}, - "_attachments": { - "pk1-juan-1.0.0.tgz": { - "shasum": "95a21c648054c7144a23995a519930255f35b6c2", - "version": "1.0.0" - }, - "pk1-juan-1.0.1.tgz": { - "shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "version": "1.0.1" - } - }, - "_uplinks": {}, - "_rev": "20-62a9d1d0a27eb84e", - "readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)" -} diff --git a/docker-examples/v4/multi-registry-uplink/server2/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz b/docker-examples/v4/multi-registry-uplink/server2/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz deleted file mode 100644 index cb8e0afd7..000000000 Binary files a/docker-examples/v4/multi-registry-uplink/server2/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/multi-registry-uplink/server2/storage/jquery/jquery-3.3.1.tgz b/docker-examples/v4/multi-registry-uplink/server2/storage/jquery/jquery-3.3.1.tgz deleted file mode 100644 index 2241e568c..000000000 Binary files a/docker-examples/v4/multi-registry-uplink/server2/storage/jquery/jquery-3.3.1.tgz and /dev/null differ diff --git a/docker-examples/v4/multi-registry-uplink/server2/storage/jquery/package.json b/docker-examples/v4/multi-registry-uplink/server2/storage/jquery/package.json deleted file mode 100644 index c98933e05..000000000 --- a/docker-examples/v4/multi-registry-uplink/server2/storage/jquery/package.json +++ /dev/null @@ -1,4918 +0,0 @@ -{ - "name": "jquery", - "versions": { - "1.5.1": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": "=0.1.20", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.5.1", - "_id": "jquery@1.5.1", - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "0.3.15", - "_nodeVersion": "v0.4.2", - "directories": { - "lib": "./lib" - }, - "files": [ - "" - ], - "_defaultsLoaded": true, - "dist": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz" - }, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.6.2", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.2/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.2", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.15", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "01757a4c5beea29e8ae697527c3131abbe997a28", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz" - }, - "scripts": {}, - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "url": "http://jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": ".", - "main": "./node-jquery.js", - "version": "1.6.3", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.3/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.3", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.22", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz" - }, - "scripts": {}, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": "0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.3.0" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "_id": "jquery@1.7.2", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.12", - "_nodeVersion": "v0.6.14", - "_defaultsLoaded": true, - "dist": { - "shasum": "a93746763aca75a34df4c16395b0826310d0eaf2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.7.3", - "dist": { - "shasum": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.2", - "dist": { - "shasum": "46790ae07c6de38124eda90bbf7336b43df93305", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1", - "contextify": "~0.1.3" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.3", - "dist": { - "shasum": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "2.1.0-beta2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta2", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "~0.4.10", - "grunt": "~0.4.1", - "grunt-bower-task": "~0.3.2", - "grunt-cli": "~0.1.11", - "grunt-compare-size": "~0.4.0", - "grunt-contrib-jshint": "~0.7.0", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-watch": "~0.5.3", - "grunt-git-authors": "~1.2.0", - "grunt-jscs-checker": "~0.2.3", - "grunt-jsonlint": "~1.0.1", - "gzip-js": "0.3.2", - "load-grunt-tasks": "~0.2.0", - "testswarm": "~1.1.0", - "requirejs": "~2.1.9", - "which": "~1.0.5" - }, - "_id": "jquery@2.1.0-beta2", - "dist": { - "shasum": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "rwaldron", - "email": "waldron.rick@gmail.com" - }, - { - "name": "jquery", - "email": "npm@jquery.com" - } - ], - "directories": {} - }, - "2.1.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-beta3", - "dist": { - "shasum": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-beta3", - "dist": { - "shasum": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-rc1", - "dist": { - "shasum": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "dave.methvin@gmail.com" - } - ], - "directories": {} - }, - "2.1.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-rc1", - "dist": { - "shasum": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - } - ], - "directories": {} - }, - "1.11.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0", - "dist": { - "shasum": "c67ceee19b403650d682adcf39d5c9009814d949", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0", - "dist": { - "shasum": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-beta1", - "dist": { - "shasum": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-beta1", - "dist": { - "shasum": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc1", - "_shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz" - }, - "directories": {} - }, - "1.11.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc1", - "_shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz" - }, - "directories": {} - }, - "2.1.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc2", - "dist": { - "shasum": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc2", - "dist": { - "shasum": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1", - "dist": { - "shasum": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1", - "dist": { - "shasum": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.9.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.9.1", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "scripts": { - "test": "grunt" - }, - "dependencies": {}, - "devDependencies": { - "grunt-compare-size": "~0.3.0", - "grunt-git-authors": "~1.1.0", - "grunt-update-submodules": "~0.2.0", - "grunt-contrib-watch": "~0.1.1", - "grunt-contrib-jshint": "~0.1.1", - "grunt-contrib-uglify": "~0.1.1", - "grunt": "~0.4.0", - "testswarm": "0.2.2" - }, - "keywords": [], - "gitHead": "d71f6a53927ad02d728503385d15539b73d21ac8", - "_id": "jquery@1.9.1", - "_shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "_from": ".", - "_npmVersion": "1.5.0-alpha-1", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz" - }, - "directories": {} - }, - "2.1.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "a04f5ff9795fd6292117563623db44cf3f875868", - "_id": "jquery@2.1.2", - "_shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz" - }, - "directories": {} - }, - "1.11.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "9690801db01709bfbff5f977d07fb7cc14472908", - "_id": "jquery@1.11.2", - "_shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz" - }, - "directories": {} - }, - "2.1.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0", - "_id": "jquery@2.1.3", - "_shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "_from": ".", - "_npmVersion": "2.1.14", - "_nodeVersion": "0.11.14", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz" - }, - "directories": {} - }, - "2.1.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "7751e69b615c6eca6f783a81e292a55725af6b85", - "_id": "jquery@2.1.4", - "_shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" - }, - "directories": {} - }, - "1.11.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "1472290917f17af05e98007136096784f9051fab", - "_id": "jquery@1.11.3", - "_shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz" - }, - "directories": {} - }, - "3.0.0-alpha1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-alpha1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-alpha1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.7.0", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs-checker": "0.8.1", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.0", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "jsdomVersions": { - "node": "3.1.2", - "iojs": "5.3.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2c92869b752bb8e0fe74c3183f40f3f58b7b906d", - "_id": "jquery@3.0.0-alpha1", - "_shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz" - }, - "directories": {} - }, - "1.12.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "efbdc6e3f0fa3d3cd4d3d8bfa37990b707f7c2e1", - "_id": "jquery@1.12.0", - "_shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz" - }, - "directories": {} - }, - "2.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6fc01e29bdad0964f62ef56d01297039cdcadbe5", - "_id": "jquery@2.2.0", - "_shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz" - }, - "directories": {} - }, - "3.0.0-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-beta1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.3.0", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2ef761afd9addf78193f5191ece03bb20c9182c2", - "_id": "jquery@3.0.0-beta1", - "_shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz" - }, - "directories": {} - }, - "1.12.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "56ead6ffbf8560c521e7e94518d35db42b19f5f3", - "_id": "jquery@1.12.1", - "_shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.1.tgz_1456168080336_0.4474994211923331" - }, - "directories": {} - }, - "2.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "788eaba2f83e7b7445c7a83a50c81c0704423874", - "_id": "jquery@2.2.1", - "_shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.1.tgz_1456168325917_0.42471840139478445" - }, - "directories": {} - }, - "1.12.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "a9b5f8ac96f6aa7bfc7b0795cb16d65c4f15b64e", - "_id": "jquery@1.12.2", - "_shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.2.tgz_1458236759160_0.3557943068444729" - }, - "directories": {} - }, - "2.2.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "086d381cd2f3b4b8b0af85ecb2c9593a61e5b4bd", - "_id": "jquery@2.2.2", - "_shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.2.tgz_1458237146417_0.4190880397800356" - }, - "directories": {} - }, - "1.12.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "3a43d7e563314bf32970b773dd31ecf2b90813dd", - "_id": "jquery@1.12.3", - "_shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.3.tgz_1459884094815_0.5328964435029775" - }, - "directories": {} - }, - "2.2.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "af22a351b2ea5801ffb1695abb3bb34d5bed9198", - "_id": "jquery@2.2.3", - "_shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.3.tgz_1459884434885_0.992488760035485" - }, - "directories": {} - }, - "1.12.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "5e89585e0121e72ff47de177c5ef604f3089a53d", - "_id": "jquery@1.12.4", - "_shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.4.tgz_1463764744844_0.4810373710934073" - }, - "directories": {} - }, - "2.2.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "c0185ab7c75aab88762c5aae780b9d83b80eda72", - "_id": "jquery@2.2.4", - "_shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.4.tgz_1463765166836_0.5834389675874263" - }, - "directories": {} - }, - "3.0.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-rc1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "e503a93188dc4b5b42e2340f805f2d90b404bc50", - "_id": "jquery@3.0.0-rc1", - "_shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0-rc1.tgz_1463771627380_0.12211154378019273" - }, - "directories": {} - }, - "3.0.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "0078f86be166a8747819d5d1516776a662cb69df", - "_id": "jquery@3.0.0", - "_shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0.tgz_1465497191024_0.9057256667874753" - }, - "directories": {} - }, - "3.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "0.1.6", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "18.1.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6f02bc382c0529d3b4f68f6b2ad21876642dbbfe", - "_id": "jquery@3.1.0", - "_shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "_from": ".", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.0.tgz_1467927964329_0.882518710102886" - }, - "directories": {} - }, - "3.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|(Refs? [^#])" - }, - "gitHead": "1b30f3ad466ebf2714d47eda34dbd7fdf6849fe3", - "_id": "jquery@3.1.1", - "_shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.1.tgz_1474583566957_0.15473420196212828" - }, - "directories": {} - }, - "3.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "a81259fff4ea0c7b4cd98f04050c829640395a31", - "_id": "jquery@3.2.0", - "_shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "_from": ".", - "_npmVersion": "4.1.2", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.0.tgz_1489699855733_0.5328386940527707" - }, - "directories": {} - }, - "3.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", - "_id": "jquery@3.2.1", - "_shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "_from": ".", - "_npmVersion": "4.4.4", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.1.tgz_1490036530067_0.19497186387889087" - }, - "directories": {} - }, - "3.3.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": { - "archiver": "1.3.0", - "chalk": "1.1.3", - "npm": "4.4.1", - "shelljs": "0.7.7" - }, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9a8a1c63930edc9fb6fab9e75b3eee578762b8a5", - "_id": "jquery@3.3.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-1SmQFTqu24RtvnvLN/D1RFIsOBGqLQYsGJgZxejd69Rw9ACBJvSgppA+A+wBcXgASwRSoX1aDN1I5ZNIrFC6Xw==", - "shasum": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.0.tgz_1516388631205_0.827812286792323" - }, - "directories": {} - }, - "3.3.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9e8ec3d10fad04748176144f108d7355662ae75e", - "_id": "jquery@3.3.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.1.tgz_1516469230473_0.5458589680492878" - }, - "directories": {} - } - }, - "dist-tags": { - "beta": "3.3.1", - "latest": "3.3.1" - }, - "time": { - "modified": "2019-01-04T06:22:45.629Z", - "created": "2011-03-19T07:19:56.392Z", - "1.5.1": "2011-03-19T07:19:56.956Z", - "1.6.2": "2011-07-06T16:13:21.519Z", - "1.6.3": "2011-09-12T19:05:34.373Z", - "1.7.2": "2012-05-01T11:14:09.090Z", - "1.7.3": "2012-07-01T16:11:53.194Z", - "1.8.2": "2012-11-11T22:43:58.910Z", - "1.8.3": "2012-12-01T00:03:02.297Z", - "2.1.0-beta2": "2013-11-15T16:34:48.859Z", - "2.1.0-beta3": "2013-12-20T22:53:28.426Z", - "1.11.0-beta3": "2014-01-06T19:57:22.387Z", - "2.1.0-rc1": "2014-01-17T22:47:16.391Z", - "1.11.0-pre": "2014-01-16T20:38:42.912Z", - "1.11.0-rc1": "2014-01-16T21:08:36.924Z", - "1.11.0": "2014-01-23T21:07:07.184Z", - "2.1.0": "2014-01-23T21:12:47.772Z", - "2.1.1-beta1": "2014-03-24T17:05:07.581Z", - "1.11.1-beta1": "2014-03-24T17:25:14.236Z", - "2.1.1-rc1": "2014-04-18T15:29:41.423Z", - "1.11.1-rc1": "2014-04-18T15:40:23.931Z", - "2.1.1-rc2": "2014-04-21T20:52:06.866Z", - "1.11.1-rc2": "2014-04-21T21:12:52.817Z", - "2.1.1": "2014-05-01T17:15:20.164Z", - "1.11.1": "2014-05-01T18:05:32.863Z", - "1.9.1": "2014-07-17T22:01:17.886Z", - "2.1.2": "2014-12-17T14:14:28.184Z", - "1.11.2": "2014-12-17T16:07:07.647Z", - "2.1.3": "2014-12-18T15:18:38.205Z", - "2.1.4": "2015-04-28T16:17:13.648Z", - "1.11.3": "2015-04-28T16:22:06.378Z", - "3.0.0-alpha1": "2015-07-13T19:26:37.913Z", - "1.12.0": "2016-01-08T19:58:05.265Z", - "2.2.0": "2016-01-08T20:03:43.280Z", - "3.0.0-beta1": "2016-01-14T23:09:43.368Z", - "1.12.1": "2016-02-22T19:08:05.212Z", - "2.2.1": "2016-02-22T19:12:09.116Z", - "1.12.2": "2016-03-17T17:45:59.810Z", - "2.2.2": "2016-03-17T17:52:26.967Z", - "1.12.3": "2016-04-05T19:21:37.716Z", - "2.2.3": "2016-04-05T19:27:17.929Z", - "1.12.4": "2016-05-20T17:19:07.375Z", - "2.2.4": "2016-05-20T17:26:07.921Z", - "3.0.0-rc1": "2016-05-20T19:13:48.387Z", - "3.0.0": "2016-06-09T18:33:13.420Z", - "3.1.0": "2016-07-07T21:46:05.554Z", - "3.1.1": "2016-09-22T22:32:49.360Z", - "3.2.0": "2017-03-16T21:30:56.342Z", - "3.2.1": "2017-03-20T19:02:13.508Z", - "3.3.0": "2018-01-19T19:03:52.616Z", - "3.3.1": "2018-01-20T17:27:11.928Z" - }, - "_distfiles": { - "jquery-1.5.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz", - "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "registry": "npmjs" - }, - "jquery-1.6.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz", - "sha": "01757a4c5beea29e8ae697527c3131abbe997a28", - "registry": "npmjs" - }, - "jquery-1.6.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz", - "sha": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "registry": "npmjs" - }, - "jquery-1.7.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz", - "sha": "a93746763aca75a34df4c16395b0826310d0eaf2", - "registry": "npmjs" - }, - "jquery-1.7.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz", - "sha": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "registry": "npmjs" - }, - "jquery-1.8.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz", - "sha": "46790ae07c6de38124eda90bbf7336b43df93305", - "registry": "npmjs" - }, - "jquery-1.8.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz", - "sha": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "registry": "npmjs" - }, - "jquery-2.1.0-beta2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz", - "sha": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "registry": "npmjs" - }, - "jquery-2.1.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz", - "sha": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "registry": "npmjs" - }, - "jquery-1.11.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz", - "sha": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "registry": "npmjs" - }, - "jquery-1.11.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz", - "sha": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "registry": "npmjs" - }, - "jquery-2.1.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz", - "sha": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "registry": "npmjs" - }, - "jquery-1.11.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz", - "sha": "c67ceee19b403650d682adcf39d5c9009814d949", - "registry": "npmjs" - }, - "jquery-2.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz", - "sha": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "registry": "npmjs" - }, - "jquery-2.1.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz", - "sha": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "registry": "npmjs" - }, - "jquery-1.11.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz", - "sha": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "registry": "npmjs" - }, - "jquery-2.1.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz", - "sha": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "registry": "npmjs" - }, - "jquery-1.11.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz", - "sha": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "registry": "npmjs" - }, - "jquery-2.1.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz", - "sha": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "registry": "npmjs" - }, - "jquery-1.11.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz", - "sha": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "registry": "npmjs" - }, - "jquery-2.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz", - "sha": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "registry": "npmjs" - }, - "jquery-1.11.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz", - "sha": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "registry": "npmjs" - }, - "jquery-1.9.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz", - "sha": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "registry": "npmjs" - }, - "jquery-2.1.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz", - "sha": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "registry": "npmjs" - }, - "jquery-1.11.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz", - "sha": "30ab26857211c37caa83da0f6903155fe49bb72d", - "registry": "npmjs" - }, - "jquery-2.1.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz", - "sha": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "registry": "npmjs" - }, - "jquery-2.1.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", - "sha": "228bde698a0c61431dc2630a6a154f15890d2317", - "registry": "npmjs" - }, - "jquery-1.11.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz", - "sha": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "registry": "npmjs" - }, - "jquery-3.0.0-alpha1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz", - "sha": "3493d672266e21c2dffb2714f935448edebe3c62", - "registry": "npmjs" - }, - "jquery-1.12.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz", - "sha": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "registry": "npmjs" - }, - "jquery-2.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz", - "sha": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "registry": "npmjs" - }, - "jquery-3.0.0-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz", - "sha": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "registry": "npmjs" - }, - "jquery-1.12.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz", - "sha": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "registry": "npmjs" - }, - "jquery-2.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz", - "sha": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "registry": "npmjs" - }, - "jquery-1.12.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz", - "sha": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "registry": "npmjs" - }, - "jquery-2.2.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz", - "sha": "3e302dc61eb329a21e9efac937d731f061134c59", - "registry": "npmjs" - }, - "jquery-1.12.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz", - "sha": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "registry": "npmjs" - }, - "jquery-2.2.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz", - "sha": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "registry": "npmjs" - }, - "jquery-1.12.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz", - "sha": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "registry": "npmjs" - }, - "jquery-2.2.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", - "sha": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "registry": "npmjs" - }, - "jquery-3.0.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz", - "sha": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "registry": "npmjs" - }, - "jquery-3.0.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz", - "sha": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "registry": "npmjs" - }, - "jquery-3.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz", - "sha": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "registry": "npmjs" - }, - "jquery-3.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz", - "sha": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "registry": "npmjs" - }, - "jquery-3.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz", - "sha": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "registry": "npmjs" - }, - "jquery-3.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "sha": "5c4d9de652af6cd0a770154a631bba12b015c787", - "registry": "npmjs" - }, - "jquery-3.3.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz", - "sha": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "registry": "npmjs" - }, - "jquery-3.3.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "sha": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "registry": "npmjs" - } - }, - "_attachments": { - "jquery-3.3.1.tgz": { - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca" - } - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"84b5189a35c6ce943c9b73f4d8e82a38\"", - "fetched": 1549659258419 - } - }, - "_rev": "3-193adc466520ee85", - "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```\n" -} diff --git a/docker-examples/v4/multi-registry-uplink/server3/conf/config.yaml b/docker-examples/v4/multi-registry-uplink/server3/conf/config.yaml deleted file mode 100644 index a95b171e2..000000000 --- a/docker-examples/v4/multi-registry-uplink/server3/conf/config.yaml +++ /dev/null @@ -1,53 +0,0 @@ -# -# This is the config file used for the docker images. -# It allows all users to do anything, so don't use it on production systems. -# -# Do not configure host and port under `listen` in this file -# as it will be ignored when using docker. -# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: /verdaccio/storage - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd -security: - api: - jwt: - sign: - expiresIn: 60d - notBefore: 1 - web: - sign: - expiresIn: 7d - -# a list of other known repositories we can talk to -uplinks: - server2: - url: http://verdaccio2:4873/ - -packages: - '@jota/*': - access: $all - publish: $all - proxy: server2 - '@*/*': - access: $all - publish: $all - proxy: server2 - '**': - access: $all - publish: $all - proxy: server2 - -middlewares: - audit: - enabled: true - -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/docker-examples/v4/multi-registry-uplink/server3/conf/htpasswd b/docker-examples/v4/multi-registry-uplink/server3/conf/htpasswd deleted file mode 100644 index e69de29bb..000000000 diff --git a/docker-examples/v4/multi-registry-uplink/server3/storage/.gitkeep b/docker-examples/v4/multi-registry-uplink/server3/storage/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/docker-examples/v4/multi-registry-uplink/server3/storage/@jota/pk1-juan/package.json b/docker-examples/v4/multi-registry-uplink/server3/storage/@jota/pk1-juan/package.json deleted file mode 100644 index 37c742d4d..000000000 --- a/docker-examples/v4/multi-registry-uplink/server3/storage/@jota/pk1-juan/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "@jota/pk1-juan", - "versions": { - "1.0.0": { - "name": "@jota/pk1-juan", - "version": "1.0.0", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.2.1" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-JC4y+iHrUpD+li3Pf9z2oFxw2Mtbqi6vgnIDBB3H/P/t0gAuCKK/LJ86kV7TRyvQwVvyJk1qI61iOVLiMwjZ8Q==", - "shasum": "95a21c648054c7144a23995a519930255f35b6c2", - "tarball": "http://verdaccio2:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.0.tgz" - } - }, - "1.0.1": { - "name": "@jota/pk1-juan", - "version": "1.0.1", - "description": "Simple React Webpack Babel Starter Kit", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": { - "name": "Juan Picado", - "email": "juan@jotadeveloper.com" - }, - "license": "ISC", - "dependencies": { - "jquery": "^3.2.1" - }, - "readmeFilename": "README.md", - "_id": "@jota/pk1-juan@1.0.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": {}, - "dist": { - "integrity": "sha512-copZNn2mMX8S3W9czxd3GXKj8vKu1v7JrUD9zOtriP8v9AvZOHIt6nW8+1114cumNGukFxjBO+2VlZC793ynTA==", - "shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "tarball": "http://verdaccio2:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.1.tgz" - } - } - }, - "time": { - "modified": "2018-01-17T18:49:09.087Z", - "created": "2018-01-17T18:27:39.952Z", - "1.0.0": "2018-01-17T18:27:39.952Z", - "1.0.1": "2018-01-17T18:49:09.087Z" - }, - "dist-tags": { - "latest": "1.0.0", - "beta2": "1.0.1" - }, - "_uplinks": { - "server2": { - "etag": "\"4e442b596e437876e8a8719282df3389\"", - "fetched": 1549659258012 - } - }, - "_distfiles": { - "pk1-juan-1.0.0.tgz": { - "url": "http://verdaccio2:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.0.tgz", - "sha": "95a21c648054c7144a23995a519930255f35b6c2", - "registry": "server2" - }, - "pk1-juan-1.0.1.tgz": { - "url": "http://verdaccio2:4873/@jota%2fpk1-juan/-/pk1-juan-1.0.1.tgz", - "sha": "ed59869c54d1bec7bc19732c4c23c97633ea30e2", - "registry": "server2" - } - }, - "_attachments": { - "pk1-juan-1.0.0.tgz": { - "shasum": "95a21c648054c7144a23995a519930255f35b6c2" - } - }, - "_rev": "4-e9be49402b9052ce", - "readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)" -} diff --git a/docker-examples/v4/multi-registry-uplink/server3/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz b/docker-examples/v4/multi-registry-uplink/server3/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz deleted file mode 100644 index cb8e0afd7..000000000 Binary files a/docker-examples/v4/multi-registry-uplink/server3/storage/@jota/pk1-juan/pk1-juan-1.0.0.tgz and /dev/null differ diff --git a/docker-examples/v4/multi-registry-uplink/server3/storage/jquery/package.json b/docker-examples/v4/multi-registry-uplink/server3/storage/jquery/package.json deleted file mode 100644 index aa6449832..000000000 --- a/docker-examples/v4/multi-registry-uplink/server3/storage/jquery/package.json +++ /dev/null @@ -1,4914 +0,0 @@ -{ - "name": "jquery", - "versions": { - "1.5.1": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": "=0.1.20", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.5.1", - "_id": "jquery@1.5.1", - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "0.3.15", - "_nodeVersion": "v0.4.2", - "directories": { - "lib": "./lib" - }, - "files": [ - "" - ], - "_defaultsLoaded": true, - "dist": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.5.1.tgz" - }, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.6.2", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.2/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.2", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.15", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "01757a4c5beea29e8ae697527c3131abbe997a28", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.6.2.tgz" - }, - "scripts": {}, - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "url": "http://jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": ".", - "main": "./node-jquery.js", - "version": "1.6.3", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.3/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.3", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.22", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.6.3.tgz" - }, - "scripts": {}, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": "0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.3.0" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "_id": "jquery@1.7.2", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.12", - "_nodeVersion": "v0.6.14", - "_defaultsLoaded": true, - "dist": { - "shasum": "a93746763aca75a34df4c16395b0826310d0eaf2", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.7.2.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.7.3", - "dist": { - "shasum": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.7.3.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.2", - "dist": { - "shasum": "46790ae07c6de38124eda90bbf7336b43df93305", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.8.2.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1", - "contextify": "~0.1.3" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.3", - "dist": { - "shasum": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.8.3.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "2.1.0-beta2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta2", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "~0.4.10", - "grunt": "~0.4.1", - "grunt-bower-task": "~0.3.2", - "grunt-cli": "~0.1.11", - "grunt-compare-size": "~0.4.0", - "grunt-contrib-jshint": "~0.7.0", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-watch": "~0.5.3", - "grunt-git-authors": "~1.2.0", - "grunt-jscs-checker": "~0.2.3", - "grunt-jsonlint": "~1.0.1", - "gzip-js": "0.3.2", - "load-grunt-tasks": "~0.2.0", - "testswarm": "~1.1.0", - "requirejs": "~2.1.9", - "which": "~1.0.5" - }, - "_id": "jquery@2.1.0-beta2", - "dist": { - "shasum": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.0-beta2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "rwaldron", - "email": "waldron.rick@gmail.com" - }, - { - "name": "jquery", - "email": "npm@jquery.com" - } - ], - "directories": {} - }, - "2.1.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-beta3", - "dist": { - "shasum": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-beta3", - "dist": { - "shasum": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-rc1", - "dist": { - "shasum": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "dave.methvin@gmail.com" - } - ], - "directories": {} - }, - "2.1.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-rc1", - "dist": { - "shasum": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - } - ], - "directories": {} - }, - "1.11.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0", - "dist": { - "shasum": "c67ceee19b403650d682adcf39d5c9009814d949", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0", - "dist": { - "shasum": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-beta1", - "dist": { - "shasum": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-beta1", - "dist": { - "shasum": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc1", - "_shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.1-rc1.tgz" - }, - "directories": {} - }, - "1.11.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc1", - "_shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.1-rc1.tgz" - }, - "directories": {} - }, - "2.1.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc2", - "dist": { - "shasum": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc2", - "dist": { - "shasum": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1", - "dist": { - "shasum": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1", - "dist": { - "shasum": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.9.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.9.1", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "scripts": { - "test": "grunt" - }, - "dependencies": {}, - "devDependencies": { - "grunt-compare-size": "~0.3.0", - "grunt-git-authors": "~1.1.0", - "grunt-update-submodules": "~0.2.0", - "grunt-contrib-watch": "~0.1.1", - "grunt-contrib-jshint": "~0.1.1", - "grunt-contrib-uglify": "~0.1.1", - "grunt": "~0.4.0", - "testswarm": "0.2.2" - }, - "keywords": [], - "gitHead": "d71f6a53927ad02d728503385d15539b73d21ac8", - "_id": "jquery@1.9.1", - "_shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "_from": ".", - "_npmVersion": "1.5.0-alpha-1", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.9.1.tgz" - }, - "directories": {} - }, - "2.1.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "a04f5ff9795fd6292117563623db44cf3f875868", - "_id": "jquery@2.1.2", - "_shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.2.tgz" - }, - "directories": {} - }, - "1.11.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "9690801db01709bfbff5f977d07fb7cc14472908", - "_id": "jquery@1.11.2", - "_shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.2.tgz" - }, - "directories": {} - }, - "2.1.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0", - "_id": "jquery@2.1.3", - "_shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "_from": ".", - "_npmVersion": "2.1.14", - "_nodeVersion": "0.11.14", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.3.tgz" - }, - "directories": {} - }, - "2.1.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "7751e69b615c6eca6f783a81e292a55725af6b85", - "_id": "jquery@2.1.4", - "_shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.1.4.tgz" - }, - "directories": {} - }, - "1.11.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "1472290917f17af05e98007136096784f9051fab", - "_id": "jquery@1.11.3", - "_shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.11.3.tgz" - }, - "directories": {} - }, - "3.0.0-alpha1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-alpha1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-alpha1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.7.0", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs-checker": "0.8.1", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.0", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "jsdomVersions": { - "node": "3.1.2", - "iojs": "5.3.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2c92869b752bb8e0fe74c3183f40f3f58b7b906d", - "_id": "jquery@3.0.0-alpha1", - "_shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.0.0-alpha1.tgz" - }, - "directories": {} - }, - "1.12.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "efbdc6e3f0fa3d3cd4d3d8bfa37990b707f7c2e1", - "_id": "jquery@1.12.0", - "_shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.12.0.tgz" - }, - "directories": {} - }, - "2.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6fc01e29bdad0964f62ef56d01297039cdcadbe5", - "_id": "jquery@2.2.0", - "_shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.2.0.tgz" - }, - "directories": {} - }, - "3.0.0-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-beta1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.3.0", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2ef761afd9addf78193f5191ece03bb20c9182c2", - "_id": "jquery@3.0.0-beta1", - "_shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.0.0-beta1.tgz" - }, - "directories": {} - }, - "1.12.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "56ead6ffbf8560c521e7e94518d35db42b19f5f3", - "_id": "jquery@1.12.1", - "_shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.12.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.1.tgz_1456168080336_0.4474994211923331" - }, - "directories": {} - }, - "2.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "788eaba2f83e7b7445c7a83a50c81c0704423874", - "_id": "jquery@2.2.1", - "_shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.2.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.1.tgz_1456168325917_0.42471840139478445" - }, - "directories": {} - }, - "1.12.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "a9b5f8ac96f6aa7bfc7b0795cb16d65c4f15b64e", - "_id": "jquery@1.12.2", - "_shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.12.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.2.tgz_1458236759160_0.3557943068444729" - }, - "directories": {} - }, - "2.2.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "086d381cd2f3b4b8b0af85ecb2c9593a61e5b4bd", - "_id": "jquery@2.2.2", - "_shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.2.tgz_1458237146417_0.4190880397800356" - }, - "directories": {} - }, - "1.12.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "3a43d7e563314bf32970b773dd31ecf2b90813dd", - "_id": "jquery@1.12.3", - "_shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.12.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.3.tgz_1459884094815_0.5328964435029775" - }, - "directories": {} - }, - "2.2.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "af22a351b2ea5801ffb1695abb3bb34d5bed9198", - "_id": "jquery@2.2.3", - "_shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.3.tgz_1459884434885_0.992488760035485" - }, - "directories": {} - }, - "1.12.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "5e89585e0121e72ff47de177c5ef604f3089a53d", - "_id": "jquery@1.12.4", - "_shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-1.12.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.4.tgz_1463764744844_0.4810373710934073" - }, - "directories": {} - }, - "2.2.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "c0185ab7c75aab88762c5aae780b9d83b80eda72", - "_id": "jquery@2.2.4", - "_shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-2.2.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.4.tgz_1463765166836_0.5834389675874263" - }, - "directories": {} - }, - "3.0.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-rc1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "e503a93188dc4b5b42e2340f805f2d90b404bc50", - "_id": "jquery@3.0.0-rc1", - "_shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.0.0-rc1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0-rc1.tgz_1463771627380_0.12211154378019273" - }, - "directories": {} - }, - "3.0.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "0078f86be166a8747819d5d1516776a662cb69df", - "_id": "jquery@3.0.0", - "_shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0.tgz_1465497191024_0.9057256667874753" - }, - "directories": {} - }, - "3.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "0.1.6", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "18.1.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6f02bc382c0529d3b4f68f6b2ad21876642dbbfe", - "_id": "jquery@3.1.0", - "_shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "_from": ".", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.1.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.0.tgz_1467927964329_0.882518710102886" - }, - "directories": {} - }, - "3.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|(Refs? [^#])" - }, - "gitHead": "1b30f3ad466ebf2714d47eda34dbd7fdf6849fe3", - "_id": "jquery@3.1.1", - "_shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.1.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.1.tgz_1474583566957_0.15473420196212828" - }, - "directories": {} - }, - "3.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "a81259fff4ea0c7b4cd98f04050c829640395a31", - "_id": "jquery@3.2.0", - "_shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "_from": ".", - "_npmVersion": "4.1.2", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.2.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.0.tgz_1489699855733_0.5328386940527707" - }, - "directories": {} - }, - "3.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", - "_id": "jquery@3.2.1", - "_shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "_from": ".", - "_npmVersion": "4.4.4", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.2.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.1.tgz_1490036530067_0.19497186387889087" - }, - "directories": {} - }, - "3.3.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": { - "archiver": "1.3.0", - "chalk": "1.1.3", - "npm": "4.4.1", - "shelljs": "0.7.7" - }, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9a8a1c63930edc9fb6fab9e75b3eee578762b8a5", - "_id": "jquery@3.3.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-1SmQFTqu24RtvnvLN/D1RFIsOBGqLQYsGJgZxejd69Rw9ACBJvSgppA+A+wBcXgASwRSoX1aDN1I5ZNIrFC6Xw==", - "shasum": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.3.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.0.tgz_1516388631205_0.827812286792323" - }, - "directories": {} - }, - "3.3.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9e8ec3d10fad04748176144f108d7355662ae75e", - "_id": "jquery@3.3.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "tarball": "http://verdaccio2:4873/jquery/-/jquery-3.3.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.1.tgz_1516469230473_0.5458589680492878" - }, - "directories": {} - } - }, - "time": { - "modified": "2019-01-04T06:22:45.629Z", - "created": "2011-03-19T07:19:56.392Z", - "1.5.1": "2011-03-19T07:19:56.956Z", - "1.6.2": "2011-07-06T16:13:21.519Z", - "1.6.3": "2011-09-12T19:05:34.373Z", - "1.7.2": "2012-05-01T11:14:09.090Z", - "1.7.3": "2012-07-01T16:11:53.194Z", - "1.8.2": "2012-11-11T22:43:58.910Z", - "1.8.3": "2012-12-01T00:03:02.297Z", - "2.1.0-beta2": "2013-11-15T16:34:48.859Z", - "2.1.0-beta3": "2013-12-20T22:53:28.426Z", - "1.11.0-beta3": "2014-01-06T19:57:22.387Z", - "2.1.0-rc1": "2014-01-17T22:47:16.391Z", - "1.11.0-pre": "2014-01-16T20:38:42.912Z", - "1.11.0-rc1": "2014-01-16T21:08:36.924Z", - "1.11.0": "2014-01-23T21:07:07.184Z", - "2.1.0": "2014-01-23T21:12:47.772Z", - "2.1.1-beta1": "2014-03-24T17:05:07.581Z", - "1.11.1-beta1": "2014-03-24T17:25:14.236Z", - "2.1.1-rc1": "2014-04-18T15:29:41.423Z", - "1.11.1-rc1": "2014-04-18T15:40:23.931Z", - "2.1.1-rc2": "2014-04-21T20:52:06.866Z", - "1.11.1-rc2": "2014-04-21T21:12:52.817Z", - "2.1.1": "2014-05-01T17:15:20.164Z", - "1.11.1": "2014-05-01T18:05:32.863Z", - "1.9.1": "2014-07-17T22:01:17.886Z", - "2.1.2": "2014-12-17T14:14:28.184Z", - "1.11.2": "2014-12-17T16:07:07.647Z", - "2.1.3": "2014-12-18T15:18:38.205Z", - "2.1.4": "2015-04-28T16:17:13.648Z", - "1.11.3": "2015-04-28T16:22:06.378Z", - "3.0.0-alpha1": "2015-07-13T19:26:37.913Z", - "1.12.0": "2016-01-08T19:58:05.265Z", - "2.2.0": "2016-01-08T20:03:43.280Z", - "3.0.0-beta1": "2016-01-14T23:09:43.368Z", - "1.12.1": "2016-02-22T19:08:05.212Z", - "2.2.1": "2016-02-22T19:12:09.116Z", - "1.12.2": "2016-03-17T17:45:59.810Z", - "2.2.2": "2016-03-17T17:52:26.967Z", - "1.12.3": "2016-04-05T19:21:37.716Z", - "2.2.3": "2016-04-05T19:27:17.929Z", - "1.12.4": "2016-05-20T17:19:07.375Z", - "2.2.4": "2016-05-20T17:26:07.921Z", - "3.0.0-rc1": "2016-05-20T19:13:48.387Z", - "3.0.0": "2016-06-09T18:33:13.420Z", - "3.1.0": "2016-07-07T21:46:05.554Z", - "3.1.1": "2016-09-22T22:32:49.360Z", - "3.2.0": "2017-03-16T21:30:56.342Z", - "3.2.1": "2017-03-20T19:02:13.508Z", - "3.3.0": "2018-01-19T19:03:52.616Z", - "3.3.1": "2018-01-20T17:27:11.928Z" - }, - "dist-tags": { - "beta": "3.3.1", - "latest": "3.3.1" - }, - "_uplinks": { - "server2": { - "etag": "\"986b4bf313682d23ede34b1bec79b83e\"", - "fetched": 1549659258468 - } - }, - "_distfiles": { - "jquery-1.5.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.5.1.tgz", - "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "registry": "server2" - }, - "jquery-1.6.2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.6.2.tgz", - "sha": "01757a4c5beea29e8ae697527c3131abbe997a28", - "registry": "server2" - }, - "jquery-1.6.3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.6.3.tgz", - "sha": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "registry": "server2" - }, - "jquery-1.7.2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.7.2.tgz", - "sha": "a93746763aca75a34df4c16395b0826310d0eaf2", - "registry": "server2" - }, - "jquery-1.7.3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.7.3.tgz", - "sha": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "registry": "server2" - }, - "jquery-1.8.2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.8.2.tgz", - "sha": "46790ae07c6de38124eda90bbf7336b43df93305", - "registry": "server2" - }, - "jquery-1.8.3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.8.3.tgz", - "sha": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "registry": "server2" - }, - "jquery-2.1.0-beta2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.0-beta2.tgz", - "sha": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "registry": "server2" - }, - "jquery-2.1.0-beta3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.0-beta3.tgz", - "sha": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "registry": "server2" - }, - "jquery-1.11.0-beta3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.0-beta3.tgz", - "sha": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "registry": "server2" - }, - "jquery-1.11.0-rc1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.0-rc1.tgz", - "sha": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "registry": "server2" - }, - "jquery-2.1.0-rc1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.0-rc1.tgz", - "sha": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "registry": "server2" - }, - "jquery-1.11.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.0.tgz", - "sha": "c67ceee19b403650d682adcf39d5c9009814d949", - "registry": "server2" - }, - "jquery-2.1.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.0.tgz", - "sha": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "registry": "server2" - }, - "jquery-2.1.1-beta1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.1-beta1.tgz", - "sha": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "registry": "server2" - }, - "jquery-1.11.1-beta1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.1-beta1.tgz", - "sha": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "registry": "server2" - }, - "jquery-2.1.1-rc1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.1-rc1.tgz", - "sha": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "registry": "server2" - }, - "jquery-1.11.1-rc1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.1-rc1.tgz", - "sha": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "registry": "server2" - }, - "jquery-2.1.1-rc2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.1-rc2.tgz", - "sha": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "registry": "server2" - }, - "jquery-1.11.1-rc2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.1-rc2.tgz", - "sha": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "registry": "server2" - }, - "jquery-2.1.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.1.tgz", - "sha": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "registry": "server2" - }, - "jquery-1.11.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.1.tgz", - "sha": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "registry": "server2" - }, - "jquery-1.9.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.9.1.tgz", - "sha": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "registry": "server2" - }, - "jquery-2.1.2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.2.tgz", - "sha": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "registry": "server2" - }, - "jquery-1.11.2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.2.tgz", - "sha": "30ab26857211c37caa83da0f6903155fe49bb72d", - "registry": "server2" - }, - "jquery-2.1.3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.3.tgz", - "sha": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "registry": "server2" - }, - "jquery-2.1.4.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.1.4.tgz", - "sha": "228bde698a0c61431dc2630a6a154f15890d2317", - "registry": "server2" - }, - "jquery-1.11.3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.11.3.tgz", - "sha": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "registry": "server2" - }, - "jquery-3.0.0-alpha1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.0.0-alpha1.tgz", - "sha": "3493d672266e21c2dffb2714f935448edebe3c62", - "registry": "server2" - }, - "jquery-1.12.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.12.0.tgz", - "sha": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "registry": "server2" - }, - "jquery-2.2.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.2.0.tgz", - "sha": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "registry": "server2" - }, - "jquery-3.0.0-beta1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.0.0-beta1.tgz", - "sha": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "registry": "server2" - }, - "jquery-1.12.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.12.1.tgz", - "sha": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "registry": "server2" - }, - "jquery-2.2.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.2.1.tgz", - "sha": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "registry": "server2" - }, - "jquery-1.12.2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.12.2.tgz", - "sha": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "registry": "server2" - }, - "jquery-2.2.2.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.2.2.tgz", - "sha": "3e302dc61eb329a21e9efac937d731f061134c59", - "registry": "server2" - }, - "jquery-1.12.3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.12.3.tgz", - "sha": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "registry": "server2" - }, - "jquery-2.2.3.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.2.3.tgz", - "sha": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "registry": "server2" - }, - "jquery-1.12.4.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-1.12.4.tgz", - "sha": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "registry": "server2" - }, - "jquery-2.2.4.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-2.2.4.tgz", - "sha": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "registry": "server2" - }, - "jquery-3.0.0-rc1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.0.0-rc1.tgz", - "sha": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "registry": "server2" - }, - "jquery-3.0.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.0.0.tgz", - "sha": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "registry": "server2" - }, - "jquery-3.1.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.1.0.tgz", - "sha": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "registry": "server2" - }, - "jquery-3.1.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.1.1.tgz", - "sha": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "registry": "server2" - }, - "jquery-3.2.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.2.0.tgz", - "sha": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "registry": "server2" - }, - "jquery-3.2.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.2.1.tgz", - "sha": "5c4d9de652af6cd0a770154a631bba12b015c787", - "registry": "server2" - }, - "jquery-3.3.0.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.3.0.tgz", - "sha": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "registry": "server2" - }, - "jquery-3.3.1.tgz": { - "url": "http://verdaccio2:4873/jquery/-/jquery-3.3.1.tgz", - "sha": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "registry": "server2" - } - }, - "_attachments": {}, - "_rev": "1-b97a46b8ef9d0df3", - "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.3.1](https://blog.jquery.com/2017/03/20/jquery-3.3.1-now-available/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" -} diff --git a/docker-examples/v4/plugins/docker-extend/Dockerfile b/docker-examples/v4/plugins/docker-extend/Dockerfile deleted file mode 100644 index 022424c6c..000000000 --- a/docker-examples/v4/plugins/docker-extend/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM verdaccio/verdaccio - -USER root - -ENV NODE_ENV=production - -RUN npm i && npm install verdaccio-aws-s3-storage - -USER verdaccio - diff --git a/docker-examples/v4/plugins/docker-extend/README.md b/docker-examples/v4/plugins/docker-extend/README.md deleted file mode 100644 index 86f9a5dfe..000000000 --- a/docker-examples/v4/plugins/docker-extend/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# How to extend an Verdaccio Docker image? - -Depends of your version the approach is different, please check each version. diff --git a/docker-examples/v4/reverse_proxy/nginx/README.md b/docker-examples/v4/reverse_proxy/nginx/README.md deleted file mode 100644 index be26c235d..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Verdaccio and Nginx - -Running `verdaccio` via reverse proxy is a common practice. This configuration provides a quick way to run the application behind **nginx**. - -This folder provides the following examples: - -- root_path: Using reverse proxy with `/` as a path. -- relative_path: Using `/verdaccio/` as a subdirectory. It includes also SSL examples with reverse proxy. - -To run the containers, run the following commands in this folder. The containers should start in detach mode. - -```bash - docker-compose up -d -``` - -To recreate the nginx image you can force the build. - -```bash - docker-compose up --build -d -``` - -To force recreate the images. - -```bash -docker-compose up --build --force-recreate -d -``` - -To stop all containers - -```bash -docker-compose stop -``` - -To display container logs - -```bash -$> docker-compose logs -Attaching to nginxverdaccio_nginx_1, verdaccio -verdaccio | warn --- config file - /verdaccio/conf/config.yaml -verdaccio | warn --- http address - http://0.0.0.0:4873/ - verdaccio/2.1.7 -verdaccio | http <-- 304, user: undefined, req: 'GET /', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/jquery.min.js', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.css', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.js', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/logo', bytes: 0/0 -verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/fontello.woff?10872183', bytes: 0/0 -verdaccio | http <-- 200, user: undefined, req: 'GET /-/static/favicon.png', bytes: 0/315 -``` - -### Display Information - -To display the containers running - -```bash -&> docker-compose ps - Name Command State Ports ----------------------------------------------------------------------------------------- -nginxverdaccio_nginx_1 /usr/sbin/nginx Up 0.0.0.0:80->80/tcp -verdaccio /usr/src/app/bin/verdaccio ... Up 0.0.0.0:4873->4873/tcp -``` diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/README.md b/docker-examples/v4/reverse_proxy/nginx/relative_path/README.md deleted file mode 100644 index 0d2e44f9e..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Nginx Relative Path - -This example runs two verdaccio versions: - -- Running `verdaccio:4.x` http://localhost/verdaccio/ -- Running the latest `verdaccio:3` http://localhost/verdacciov3/ - -Note: we should add more sort of configurations here. - -**Nginx HTTP Example** - -```bash -docker-compose up --build --force-recreate -``` - -open the browser - -``` -http://localhost/verdaccio/ -``` - -**Nginx SSL Example** - -```bash -docker-compose -f docker-compose_ssl.yml up --build --force-recreate -``` - -open the browser - -``` -https://localhost/verdaccio/ -``` diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v3/config.yaml b/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v3/config.yaml deleted file mode 100644 index 3d0ed1b67..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v3/config.yaml +++ /dev/null @@ -1,49 +0,0 @@ -storage: /verdaccio/storage - -web: - enable: true - title: VerdaccioV3 Relative Path - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd -security: - api: - jwt: - sign: - expiresIn: 60d - notBefore: 1 - web: - sign: - expiresIn: 7d - -## IMPORTANT -## -url_prefix: /verdacciov3/ - -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@jota/*': - access: $all - publish: $all - - '@*/*': - # scoped packages - access: $all - publish: $all - proxy: npmjs - - '**': - access: $all - publish: $all - proxy: npmjs - -middlewares: - audit: - enabled: true - -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v3/htpasswd b/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v3/htpasswd deleted file mode 100644 index be190b2ea..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v3/htpasswd +++ /dev/null @@ -1 +0,0 @@ -test:$6FrCaT/v0dwE:autocreated 2019-05-01T09:29:55.707Z diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4/config.yaml b/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4/config.yaml deleted file mode 100644 index 6b02fd54b..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4/config.yaml +++ /dev/null @@ -1,50 +0,0 @@ -storage: /verdaccio/storage - -web: - enable: true - title: VerdaccioV4 Relative Path - primary_color: red - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd -security: - api: - jwt: - sign: - expiresIn: 60d - notBefore: 1 - web: - sign: - expiresIn: 7d - -## IMPORTANT -## -url_prefix: /verdaccio - -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@jota/*': - access: $all - publish: $all - - '@*/*': - # scoped packages - access: $all - publish: $all - proxy: npmjs - - '**': - access: $all - publish: $all - proxy: npmjs - -middlewares: - audit: - enabled: true - -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4/htpasswd b/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4/htpasswd deleted file mode 100644 index bbbf7c639..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4/htpasswd +++ /dev/null @@ -1,2 +0,0 @@ -jpicado:$6vkdNgRX2npc:autocreated 2017-07-11T18:48:38.003Z -test:$6FrCaT/v0dwE:autocreated 2019-05-06T22:06:54.513Z diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4_root/config.yaml b/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4_root/config.yaml deleted file mode 100644 index a990a9cc8..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4_root/config.yaml +++ /dev/null @@ -1,46 +0,0 @@ -storage: /verdaccio/storage - -web: - enable: true - title: VerdaccioV4 Relative Path - primary_color: red - -auth: - htpasswd: - file: /verdaccio/conf/htpasswd -security: - api: - jwt: - sign: - expiresIn: 60d - notBefore: 1 - web: - sign: - expiresIn: 7d - -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - '@jota/*': - access: $all - publish: $all - - '@*/*': - # scoped packages - access: $all - publish: $all - proxy: npmjs - - '**': - access: $all - publish: $all - proxy: npmjs - -middlewares: - audit: - enabled: true - -logs: - - { type: stdout, format: pretty, level: trace } diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4_root/htpasswd b/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4_root/htpasswd deleted file mode 100644 index 6464e408d..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/conf/v4_root/htpasswd +++ /dev/null @@ -1 +0,0 @@ -jpicado:$6vkdNgRX2npc:autocreated 2017-07-11T18:48:38.003Z diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/docker-compose.yml b/docker-examples/v4/reverse_proxy/nginx/relative_path/docker-compose.yml deleted file mode 100644 index b90ebd1fe..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/docker-compose.yml +++ /dev/null @@ -1,56 +0,0 @@ -version: '3.1' - -services: - nginx: - build: - context: '' - dockerfile: nginx/Dockerfile - ports: - - '80:80' - networks: - - node-network - container_name: 'nginx' - depends_on: - - verdaccio - - verdaccio3 - - verdaccio-root - verdaccio: - image: verdaccio/verdaccio:4 - container_name: 'verdaccio_relative_path_v4' - networks: - - node-network - environment: - - VERDACCIO_PORT=4873 - ports: - - '4873:4873' - volumes: - - './storage:/verdaccio/storage' - - './conf/v4:/verdaccio/conf' - verdaccio-root: - image: verdaccio/verdaccio:4 - container_name: 'verdaccio_relative_path_v4_root' - networks: - - node-network - environment: - - VERDACCIO_PORT=8000 - ports: - - '8000:8000' - volumes: - - './storage:/verdaccio/storage' - - './conf/v4_root:/verdaccio/conf' - verdaccio3: - image: verdaccio/verdaccio:3 - container_name: 'verdaccio_relative_path_latest_v3' - networks: - - node-network - ports: - - '7771:7771' - environment: - - PORT=7771 - volumes: - - './storage:/verdaccio/storage' - - './conf/v3:/verdaccio/conf' - -networks: - node-network: - driver: bridge diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/docker-compose_ssl.yml b/docker-examples/v4/reverse_proxy/nginx/relative_path/docker-compose_ssl.yml deleted file mode 100644 index 19981fcfe..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/docker-compose_ssl.yml +++ /dev/null @@ -1,46 +0,0 @@ -version: '3.1' - -services: - nginx: - build: - context: './nginx_ssl' - dockerfile: Dockerfile - ports: - - '443:443' - - '80:80' - environment: - - REMOTE_URL=http://verdaccio_relative_path_v4:4873/ - networks: - - node-network - container_name: 'nginx_ssl' - depends_on: - - verdaccio - - verdaccio-root - verdaccio: - image: verdaccio/verdaccio:4 - container_name: 'verdaccio_relative_path_v4' - networks: - - node-network - environment: - - VERDACCIO_PORT=4873 - ports: - - '4873:4873' - volumes: - - './storage:/verdaccio/storage' - - './conf/v4:/verdaccio/conf' - verdaccio-root: - image: verdaccio/verdaccio:4 - container_name: 'verdaccio_relative_path_v4_root' - networks: - - node-network - environment: - - VERDACCIO_PORT=8000 - ports: - - '8000:8000' - volumes: - - './storage:/verdaccio/storage' - - './conf/v4_root:/verdaccio/conf' - -networks: - node-network: - driver: bridge diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx/Dockerfile b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx/Dockerfile deleted file mode 100644 index 71edc0215..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM nginx:1.14.2-alpine -COPY nginx/default.conf /etc/nginx/conf.d/default.conf diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx/default.conf b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx/default.conf deleted file mode 100644 index dca1a3ef3..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx/default.conf +++ /dev/null @@ -1,49 +0,0 @@ -upstream verdaccio_v4 { - server verdaccio_relative_path_v4:4873; - keepalive 8; -} - -upstream verdaccio_v4_root { - server verdaccio_relative_path_v4_root:8000; - keepalive 8; -} - -upstream verdaccio_v3 { - server verdaccio_relative_path_latest_v3:7771; - keepalive 8; -} - - -server { - listen 80 default_server; - access_log /var/log/nginx/verdaccio.log; - charset utf-8; - - location / { - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - proxy_set_header X-NginX-Proxy true; - proxy_pass http://verdaccio_v4_root; - proxy_redirect off; - } - - location ~ ^/verdaccio/(.*)$ { - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - proxy_set_header X-NginX-Proxy true; - proxy_pass http://verdaccio_v4/$1; - proxy_redirect off; - } - - location ~ ^/verdacciov3/(.*)$ { - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - proxy_set_header X-NginX-Proxy true; - - proxy_pass http://verdaccio_v3/$1; - proxy_redirect off; - } -} diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/Dockerfile b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/Dockerfile deleted file mode 100755 index 1105526a1..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM nginx - -COPY cert.crt /etc/nginx/cert.crt -COPY cert.key /etc/nginx/cert.key -COPY nginx-default.conf /etc/nginx/conf.d/default.conf -COPY run.sh /run.sh - -ENV REMOTE_URL="http://localhost:8080/" - -CMD ["/run.sh"] diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/README.md b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/README.md deleted file mode 100755 index 269d83ff3..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/README.md +++ /dev/null @@ -1,5 +0,0 @@ -Example taken from: - -[https://github.com/foxylion/docker-nginx-self-signed-https](https://github.com/foxylion/docker-nginx-self-signed-https) - -by [@foxylion](https://github.com/foxylion) diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/cert.crt b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/cert.crt deleted file mode 100755 index 34231a321..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/cert.crt +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIJAPVnhyCGRxmMMA0GCSqGSIb3DQEBCwUAMG4xCzAJBgNV -BAYTAlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxCzAJBgNVBAoMAlhYMQsw -CQYDVQQLDAJYWDESMBAGA1UEAwwJbG9jYWxob3N0MRcwFQYJKoZIhvcNAQkBFghY -WEBYWC5YWDAeFw0xNzExMjQxNDI0MzVaFw0xODExMjQxNDI0MzVaMG4xCzAJBgNV -BAYTAlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxCzAJBgNVBAoMAlhYMQsw -CQYDVQQLDAJYWDESMBAGA1UEAwwJbG9jYWxob3N0MRcwFQYJKoZIhvcNAQkBFghY -WEBYWC5YWDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANTsFvryPfKK -4CSP58DEVJRDdlsurNz7Z3jbE9RwLmPbyhp+oVZ8gouufLrYxIFxKR0b+JrSbrSh -klvyAov1KcbKSl5W/k4uewgksLV5oWUIM2d6cII+esVNPeRGY6lG3T9nMrjBFC3/ -r6HIQpsMiJbfZ0XkHhMFciJ0oVQ+/Y+IeJ2JyjBaXw+3CbCGmTO+4mNVxtHyzz4d -o6mHPASHn+utts+W2/+3/4bSYkJo+/KPxWeF2jyPasv6Kpif+/dJ44gOM+uecBPy -AJx6CCKfGUU9X5EGBynOroFqEY2m7Ndx1uWipfSuULWf9x/LSugC35DfNl+1hXGq -lLJHKI8h+c0CAwEAAaNQME4wHQYDVR0OBBYEFEOBWTm2wyyS3ETaI32FhbTDQ3Hc -MB8GA1UdIwQYMBaAFEOBWTm2wyyS3ETaI32FhbTDQ3HcMAwGA1UdEwQFMAMBAf8w -DQYJKoZIhvcNAQELBQADggEBAGva7AiwB2qSy+Mm1T6m3FkLzUabFStRwkj2TQsz -03E4P2G7j7s9rYdL6hz58kV9UwrWLYeceNioFTn7CxLdn12kHyYC21EO66fuLLaa -nb94GRVJ0IcZOVp+2WgihKM2/WW5WOqhD1NqZp+HUnJkiOCqdgrGj7lfzx1q45wG -NXGplOcGudxb1rLdA8U/kNmGZjCNQsNCdUxUdbqXjeb2piRBbtOnZqOXa2EN9h1/ -C89RVuaQt8cQ/bK5QAIeDF/8eyY6B5j00wEa7DSgyRAwJtDU1X2LU6U+04LpU4Iw -sUDO17n2GlI9mPqg0j8EawbbQC70j8rgclDjUE9erf0K7m8= ------END CERTIFICATE----- diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/cert.key b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/cert.key deleted file mode 100755 index 5599c8545..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/cert.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDU7Bb68j3yiuAk -j+fAxFSUQ3ZbLqzc+2d42xPUcC5j28oafqFWfIKLrny62MSBcSkdG/ia0m60oZJb -8gKL9SnGykpeVv5OLnsIJLC1eaFlCDNnenCCPnrFTT3kRmOpRt0/ZzK4wRQt/6+h -yEKbDIiW32dF5B4TBXIidKFUPv2PiHidicowWl8PtwmwhpkzvuJjVcbR8s8+HaOp -hzwEh5/rrbbPltv/t/+G0mJCaPvyj8Vnhdo8j2rL+iqYn/v3SeOIDjPrnnAT8gCc -egginxlFPV+RBgcpzq6BahGNpuzXcdbloqX0rlC1n/cfy0roAt+Q3zZftYVxqpSy -RyiPIfnNAgMBAAECggEANohVBmaeiQ0ahSK6N3vRMbvph0b4DQzynlh1xrYIm5jC -NXDzP2RaRw4kcfJsub5SylrMnFKC+g5bnuLn1hKvZXOQAoODVGDBL/+9pm0Fcgvc -pocMY78+0GONE3cXtVYp+kAjFICW+4T95ZCVxoI6RXHoUFUxgqulZL+8RghwBp90 -r9X6OWb7e0cq4Msupm7qVTCh9u8X1jTBQ4gE/tny8oiTUW6YCvQlKld0NK1geB1x -BnF4osiOTRe8+6B++kTCf9mon9c6V0Bl1lN5y3znNN1eRMvvDSy554bPy1flo7vo -Z52xluItJwRxNn+brhvFUKqDuMl5D/YX9SGOOJ+PPQKBgQDt7usOECPcsc9Mc0F7 -Ol4a3+KQHcp5M8Byc77b87k4gWxNROSOGhOobRRIBsgULkPC32EQ+XhoAcef+VjS -UKU0Rbor7oI5tnl2GuRMGocEzRvU5wa3IjU49ffnYAJty/6Y3wPzmA/sLj0m3Tzo -JTF761UjNQPZwi4wSRgp6jUIGwKBgQDlFv4eP+M4rovgMmUEU50iSkG0Sv8B6FAs -47V8UFSbWuOZ64vVDKNBa6KE3vNDKa0pQfaGyo18I0g2iK7RwkiNc7X8WBLcPEWZ -Vcb3FjjE38XckDA2QKy8cjGF6jwVU1K5OKD3Ujxid4fHuE1Zib04Uzp8Ss+oZlYY -rsTxtUN0NwKBgQCSRvdFjxCtJre+VYFlZA3k0c21Mkt/VhyzgItPKDiwD4lou7kT -z95UBrOYUGsDVSodjT1ctTKcJrP2mtJLgn7+cvuw9JIlLxTfUksWqpxljD/XFS1g -u2wjF70QB0uW+voMO9dvFAZ9+jNoSE2gnvUcLSMLYRV789B3qQhtBGsUDwKBgQCm -RU/fCKOUKitfZ3Ql9cHgd2DEyIHZEpHOYt8AARXHQ+pZdrogwXFkNAjawy5wGrmR -bkzNfAnAhaMN4Zpwp8Ac2lTFd+8IZb5mEfm8sCY3zeo/sW8skThN9du3xFAjcjxi -LpW1q7wkA3lLHZsWV4A8dzvFpk6dfNkURRSwEc2JdQKBgH1n8Io2gnrQd1Yhh5rH -pajY9Pdzp+mv9PW8G1Y7Z57RKxAorYfszmR5Qj2oZ3+0lqJ5+K7K4PffH3CkiCBz -i9HBnq/NczJggQ9BTifIdyznWkuAqZAjup5V+g7+CIhpa+XaeGzB4BpTsXrJFiy0 -ZTYk/5J1N3d6rURRlybaoRGj ------END PRIVATE KEY----- diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/nginx-default.conf b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/nginx-default.conf deleted file mode 100755 index 485aedf47..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/nginx-default.conf +++ /dev/null @@ -1,40 +0,0 @@ - - - -server { - listen 80; - return 302 https://$host$request_uri; -} - -server { - listen 443 ssl http2; - server_name localhost; - - ssl_certificate /etc/nginx/cert.crt; - ssl_certificate_key /etc/nginx/cert.key; - - ssl on; - ssl_session_cache builtin:1000 shared:SSL:10m; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; - ssl_prefer_server_ciphers on; - - location / { - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_pass XX_REMOTE_URL_XX; - proxy_read_timeout 600; - proxy_redirect off; - } - - location ~ ^/verdaccio/(.*)$ { - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - proxy_set_header X-NginX-Proxy true; - proxy_pass XX_REMOTE_URL_XX$1; - proxy_redirect off; - } -} diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/run.sh b/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/run.sh deleted file mode 100755 index 3763e8fb2..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/nginx_ssl/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -sed -i -e "s|XX_REMOTE_URL_XX|$REMOTE_URL|g" /etc/nginx/conf.d/default.conf - -exec nginx -g "daemon off;" diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/@verdaccio/streams/package.json b/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/@verdaccio/streams/package.json deleted file mode 100644 index 89eba05d5..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/@verdaccio/streams/package.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "name": "@verdaccio/streams", - "versions": { - "0.0.1": { - "name": "@verdaccio/streams", - "version": "0.0.1", - "description": "helper to delay streams", - "main": "lib/index.js", - "scripts": { - "test": "npm run lint && mocha --require babel-polyfill --compilers js:babel-core/register ./test/**/*.spec.js", - "lint": "eslint .", - "build": "babel src/ --out-dir lib/ --copy-files", - "cover": "cross-env NODE_ENV=test nyc npm t" - }, - "devDependencies": { - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-plugin-istanbul": "4.1.4", - "babel-polyfill": "6.23.0", - "babel-preset-es2015": "6.24.1", - "cross-env": "5.0.1", - "eslint": "4.1.1", - "eslint-config-google": "0.9.1", - "mocha": "3.4.2", - "nyc": "11.0.3" - }, - "nyc": { - "include": [ - "src/**/*.js" - ], - "all": true, - "cache": true, - "sourceMap": false, - "instrument": false, - "report-dir": "./tests-report", - "reporter": [ - "text", - "html" - ] - }, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "keywords": [ - "streams" - ], - "author": { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - "private": false, - "license": "MIT", - "_id": "@verdaccio/streams@0.0.1", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-yd+dzUsnF2fUMKc1PAYLOf/Gbmo1iB4wubMyN1JRlcAi/8x7BxvVgmLqETWKuln1PIaFyObXEIrseDlnMK8GWQ==", - "shasum": "a7aa16359468944c9e9523879b282ab37ae97453", - "tarball": "https://registry.npmjs.org/@verdaccio/streams/-/streams-0.0.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/streams-0.0.1.tgz_1501651723428_0.8668429288081825" - }, - "directories": {} - }, - "0.0.2": { - "name": "@verdaccio/streams", - "version": "0.0.2", - "description": "helper to delay streams", - "main": "lib/index.js", - "scripts": { - "test": "npm run lint && mocha --require babel-polyfill --compilers js:babel-core/register ./test/**/*.spec.js", - "lint": "eslint .", - "build": "babel src/ --out-dir lib/ --copy-files", - "cover": "cross-env NODE_ENV=test nyc npm t" - }, - "devDependencies": { - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-plugin-istanbul": "4.1.4", - "babel-polyfill": "6.23.0", - "babel-preset-es2015": "6.24.1", - "cross-env": "5.0.1", - "eslint": "4.1.1", - "eslint-config-google": "0.9.1", - "mocha": "3.4.2", - "nyc": "11.0.3" - }, - "nyc": { - "include": [ - "src/**/*.js" - ], - "all": true, - "cache": true, - "sourceMap": false, - "instrument": false, - "report-dir": "./tests-report", - "reporter": [ - "text", - "html" - ] - }, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "keywords": [ - "streams" - ], - "author": { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - "private": false, - "license": "MIT", - "gitHead": "b1ffceaa7b29d6b298fd9bc6a00d44580e93f4a4", - "_id": "@verdaccio/streams@0.0.2", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-f7JGBUyRF2Quj5SlcoRezDsG5WwRXgPnvYSOnn8VdQKgHz0zakib5cfSHlxnYfYjcRunYNXjeNi4uoj7clqGXg==", - "shasum": "72cd65449e657b462a1ca094f663cad9ea872427", - "tarball": "https://registry.npmjs.org/@verdaccio/streams/-/streams-0.0.2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/streams-0.0.2.tgz_1501652013575_0.10508887306787074" - }, - "directories": {} - }, - "1.0.0": { - "name": "@verdaccio/streams", - "version": "1.0.0", - "description": "helper to delay streams", - "main": "lib/index.js", - "scripts": { - "precommit": "lint-staged", - "test": "npm run lint && jest", - "lint": "eslint .", - "prepublish": "npm run build", - "build": "babel src/ --out-dir lib/ --copy-files", - "cover": "cross-env NODE_ENV=test nyc npm t" - }, - "devDependencies": { - "@verdaccio/types": "0.2.0", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-jest": "21.2.0", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-istanbul": "4.1.4", - "babel-polyfill": "6.23.0", - "babel-preset-env": "1.6.1", - "babel-preset-flow": "6.23.0", - "cross-env": "5.0.1", - "eslint": "4.1.1", - "eslint-config-google": "0.9.1", - "eslint-plugin-flowtype": "2.41.0", - "eslint-plugin-jest": "21.2.0", - "flow-bin": "0.52.0", - "flow-runtime": "0.13.0", - "husky": "0.14.3", - "jest": "21.2.1", - "lint-staged": "6.0.0", - "prettier": "1.10.2" - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "keywords": [ - "streams", - "verdaccio" - ], - "author": { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - "private": false, - "license": "MIT", - "gitHead": "7b092ad32f5ef9fc73435e6dcdcef175d2beabd1", - "_id": "@verdaccio/streams@1.0.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-AjEo5LXk4Yf0SaXSc3y4i1t+wxY552O7WrVJPtnC6H7nUsSrygg/ODCG1RSKelskOq6b5p/LyXnsTkmCFXyjDQ==", - "shasum": "d5d24c6747208728b9fd16b908e3932c3fb1f864", - "tarball": "https://registry.npmjs.org/@verdaccio/streams/-/streams-1.0.0.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/streams-1.0.0.tgz_1516085334631_0.36997545626945794" - }, - "directories": {} - }, - "2.0.0-beta.0": { - "name": "@verdaccio/streams", - "version": "2.0.0-beta.0", - "description": "stream extension for verdaccio", - "main": "lib/index.js", - "scripts": { - "release": "standard-version -a -s", - "precommit": "lint-staged", - "test": "jest", - "lint": "eslint .", - "type-check": "tsc --noEmit", - "type-check:watch": "npm run type-check -- --watch", - "build": "npm run build:types && npm run build:js", - "build:types": "tsc --emitDeclarationOnly", - "build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline" - }, - "devDependencies": { - "@types/node": "^10.12.18", - "@verdaccio/babel-preset": "0.0.3", - "@verdaccio/types": "4.1.4", - "cross-env": "5.1.3", - "eslint": "4.16.0", - "eslint-config-google": "0.9.1", - "eslint-plugin-jest": "21.7.0", - "eslint-plugin-verdaccio": "0.0.5", - "husky": "0.14.3", - "jest": "^24.0.0", - "lint-staged": "6.0.1", - "prettier": "1.10.2", - "standard-version": "4.4.0", - "typescript": "^3.2.4" - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=4" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "keywords": [ - "streams", - "verdaccio" - ], - "author": { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - "private": false, - "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "efef34571762eddd19ca4efb7fb72c4c83e63a47", - "_id": "@verdaccio/streams@2.0.0-beta.0", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-EdVF6RP0abRNT0RfgLCsqLNv7FOpm+BpzMZoaQuQGHSBQRj7OTM8ft5mpbJ40rYVXKv6D8xyU0vUnoRl09ah6g==", - "shasum": "af8c7e673a3c368deacc8024c6f5671aa2ec32ac", - "tarball": "https://registry.npmjs.org/@verdaccio/streams/-/streams-2.0.0-beta.0.tgz", - "fileCount": 23, - "unpackedSize": 74662, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcTYsXCRA9TVsSAnZWagAAfJoP/jC9U/o0jJ8XWGOEtwm3\nbijAl2xt28DIIPjtFE4CEW8Zw5y1gHGufcrTsZXaf2+OETvA1nmilslGa3fq\nqpCHaeJy4dhm9MBL//8NwWib6ZLps3AMqFJPU43AIfCGnGDKSpWSsM3llhMY\nB+XmdzFI+2uD/+qUbAvzx/jC/a+kwsJ71xlyTnYYkbAjvhzw/GAv2mknEuiO\nUcg99fkS/KNOcBurHUic4WPn/4v2glT4IUhp5HMqx616/IsnsHSixUEtknTT\nYftBFCjg7pcEIooBLgYNcbdYvp3VxFfjubB1K9dI5zxeZxB6RGrE6RbdAdIo\nIrUsbXZbY5z6PJu+pIhL9bPG9l+n3pFuV5hMB3CYXnvJOYU6JevHmdKFjcBY\nX+TiG/J0b/hzTbNolYUsyyLSRxcMclc5yE0aH9gbr6IBFhEaP2VoHPNsp0fk\n5xJiGQxRZyJh2n2w36lsI7EnHnpZ2FxYElNIUfXmqAP/qCP7xGnqiguyILkJ\nqvtLw3mRDaEXsqlimgsVFm0oY2k6woLAJnhQzZfLmR2uF7HFe8k780mFbw2v\nTkMquuSnXr3XfbOozVyrslqvfoabKPUDa8KPluqrKYFe/HRw/4J1Z3fWlZYm\nS+jgxI/OlNRHpTUJFfY2INsl81xJaHbqVbawvpdca9rI/vEvShTTbYOLJ4zi\nF5UM\r\n=P+T3\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/streams_2.0.0-beta.0_1548585750644_0.035497590305001436" - }, - "_hasShrinkwrap": false - }, - "2.0.0": { - "name": "@verdaccio/streams", - "version": "2.0.0", - "description": "stream extension for verdaccio", - "main": "lib/index.js", - "scripts": { - "release": "standard-version -a -s", - "precommit": "lint-staged", - "test": "jest", - "lint": "npm run type-check && eslint .", - "type-check": "tsc --noEmit", - "type-check:watch": "npm run type-check -- --watch", - "build": "npm run build:types && npm run build:js", - "build:types": "tsc --emitDeclarationOnly", - "build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline" - }, - "devDependencies": { - "@types/node": "11.12.1", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "cross-env": "5.2.0", - "eslint": "5.15.3", - "eslint-config-google": "0.12.0", - "eslint-plugin-jest": "22.4.1", - "eslint-plugin-verdaccio": "0.0.5", - "husky": "0.14.3", - "jest": "24.5.0", - "lint-staged": "6.0.1", - "prettier": "1.16.4", - "standard-version": "5.0.2", - "typescript": "3.2.4" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "keywords": [ - "streams", - "verdaccio" - ], - "author": { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - "private": false, - "license": "MIT", - "gitHead": "6e829ae0b78ae96260d8bd701fe37e48f9be7499", - "_id": "@verdaccio/streams@2.0.0", - "_nodeVersion": "10.15.0", - "_npmVersion": "6.9.0", - "dist": { - "integrity": "sha512-QW1LsYir3wNnqhSznbJlt0iqkcgve0LpXI8RkoTTBPrq3M6ei3Ys4iw+JQKFve3gmYw9O+w8lBiOLc1qvvsoVQ==", - "shasum": "27f51d0cb19d5e49248860942092646e9a357967", - "tarball": "https://registry.npmjs.org/@verdaccio/streams/-/streams-2.0.0.tgz", - "fileCount": 32, - "unpackedSize": 107117, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnn9kCRA9TVsSAnZWagAAfMgP/0fAa6IPhuGr6XvzJoL/\nCUW5vM2oJOX8H3a6JU+E0DHNQK9DUiMnUY6cFQlQs7MdHMcAYzBXrvqT9L9t\n1qLixPPmT6lzaxP+MXe6WO0JIU7BtQqqBLvt/5IsCGxjcXY8+ig4qTRJUYB4\niXmY50+7bqg58zR+rvvUle/JqerpULe2GIgJa4eU2PdL7hMBXG3Ezp7XnfM5\nwf5Hp3ZZal+ffd0cstS7RCpb9w8p+LDKt1pIymbhAsWZ4F5Up4rnY2y4YH5C\neNMOl0bwr2tXfmwuYTqQULoy6LDt2VA5QPDGYrnWDqoYkCww/yQ/Us8DB03A\nGHmYs0t/4PB2BmhTqqVjCc30ZIjP5OVUSGj49LrVm4gKP1VStLAXTpYvBo+V\nVS/w+wAmpOtRwc/2Bgn++UeFuZdNpPRikBY/Sm2Eh59b1vb0+Jj+SitSN/Ji\nSW47Ic/UoTnPF6vbLM//o3Y+vN9E/7UKus7CG2rAfPAdv8Xo0nmK193AVa9U\nJztXh77Px9K/MbkhBtXmz1KHjwxdlS+eItjoVqLlCXsrMV9GGtJxlZcfbXxv\nL2XOndx5IlvH21SawbCGl/rSxhCLGNQfcfVRvpCvb3ZKvK7Wg3spdhOnuIq8\nL9z0NoDg+qCySAfimQpn+N6HgtdqBsT7lD9IkmKQtNikTli23agS4C5DJAaH\nxjq4\r\n=pnc2\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "priscila.oliveira@eversports.com", - "name": "priscila.oliveira" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/streams_2.0.0_1553891171706_0.06073180722635918" - }, - "_hasShrinkwrap": false - } - }, - "time": { - "modified": "2019-03-29T20:43:31.740Z", - "created": "2017-08-02T05:28:44.403Z", - "0.0.1": "2017-08-02T05:28:44.403Z", - "0.0.2": "2017-08-02T05:33:34.992Z", - "1.0.0": "2018-01-16T06:48:55.628Z", - "2.0.0-beta.0": "2019-01-27T10:42:30.753Z", - "2.0.0": "2019-03-29T20:26:11.831Z" - }, - "users": {}, - "dist-tags": { - "latest": "2.0.0", - "beta": "2.0.0-beta.0" - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"1f54a75719265604f7f4d96145248784\"", - "fetched": 1557180449427 - } - }, - "_distfiles": { - "streams-0.0.1.tgz": { - "url": "https://registry.npmjs.org/@verdaccio/streams/-/streams-0.0.1.tgz", - "sha": "a7aa16359468944c9e9523879b282ab37ae97453", - "registry": "npmjs" - }, - "streams-0.0.2.tgz": { - "url": "https://registry.npmjs.org/@verdaccio/streams/-/streams-0.0.2.tgz", - "sha": "72cd65449e657b462a1ca094f663cad9ea872427", - "registry": "npmjs" - }, - "streams-1.0.0.tgz": { - "url": "https://registry.npmjs.org/@verdaccio/streams/-/streams-1.0.0.tgz", - "sha": "d5d24c6747208728b9fd16b908e3932c3fb1f864", - "registry": "npmjs" - }, - "streams-2.0.0-beta.0.tgz": { - "url": "https://registry.npmjs.org/@verdaccio/streams/-/streams-2.0.0-beta.0.tgz", - "sha": "af8c7e673a3c368deacc8024c6f5671aa2ec32ac", - "registry": "npmjs" - }, - "streams-2.0.0.tgz": { - "url": "https://registry.npmjs.org/@verdaccio/streams/-/streams-2.0.0.tgz", - "sha": "27f51d0cb19d5e49248860942092646e9a357967", - "registry": "npmjs" - } - }, - "_attachments": {}, - "_rev": "1-652710d9893726ec", - "_id": "@verdaccio/streams", - "readme": "# Streams\n\n[![CircleCI](https://circleci.com/gh/verdaccio/streams.svg?style=svg)](https://circleci.com/gh/ayusharma/@verdaccio/streams)\n[![codecov](https://codecov.io/gh/verdaccio/streams/branch/master/graph/badge.svg)](https://codecov.io/gh/verdaccio/streams)\n[![verdaccio (latest)](https://img.shields.io/npm/v/@verdaccio/streams/latest.svg)](https://www.npmjs.com/package/@verdaccio/streams)\n[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)\n[![discord](https://img.shields.io/discord/388674437219745793.svg)](http://chat.verdaccio.org/)\n![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)\n[![node](https://img.shields.io/node/v/@verdaccio/streams/latest.svg)](https://www.npmjs.com/package/@verdaccio/streams)\n\n\nThis project provides an extension of `PassThrough` stream.\n\n## Detail\n\nIt provides 2 additional methods `abort()` and `done()`. Those implementations are widely use in the verdaccio core for handle `tarballs`.\n\n## License\n\nMIT (http://www.opensource.org/licenses/mit-license.php)" -} diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/jquery/package.json b/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/jquery/package.json deleted file mode 100644 index 849efc84a..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/jquery/package.json +++ /dev/null @@ -1,5234 +0,0 @@ -{ - "name": "jquery", - "versions": { - "1.5.1": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": "=0.1.20", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.5.1", - "_id": "jquery@1.5.1", - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "0.3.15", - "_nodeVersion": "v0.4.2", - "directories": { - "lib": "./lib" - }, - "files": [ - "" - ], - "_defaultsLoaded": true, - "dist": { - "shasum": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz" - }, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library", - "url": "jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": "lib", - "main": "./dist/node-jquery.js", - "version": "1.6.2", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.2/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.2", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.15", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "01757a4c5beea29e8ae697527c3131abbe997a28", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz" - }, - "scripts": {}, - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.6.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "url": "http://jquery.com", - "keywords": [ - "util", - "dom", - "jquery" - ], - "author": { - "name": "John Resig", - "email": "jeresig@gmail.com" - }, - "contributors": [], - "dependencies": { - "jsdom": ">=0.2.0", - "htmlparser": ">= 1.7.3" - }, - "lib": ".", - "main": "./node-jquery.js", - "version": "1.6.3", - "_npmJsonOpts": { - "file": "/Users/coolaj86/.npm/jquery/1.6.3/package/package.json", - "wscript": false, - "contributors": false, - "serverjs": false - }, - "_id": "jquery@1.6.3", - "devDependencies": {}, - "engines": { - "node": "*" - }, - "_engineSupported": true, - "_npmVersion": "1.0.22", - "_nodeVersion": "v0.4.8", - "_defaultsLoaded": true, - "dist": { - "shasum": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz" - }, - "scripts": {}, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": "0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.3.0" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "_id": "jquery@1.7.2", - "optionalDependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.1.12", - "_nodeVersion": "v0.6.14", - "_defaultsLoaded": true, - "dist": { - "shasum": "a93746763aca75a34df4c16395b0826310d0eaf2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.7.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.7.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.7.3", - "dist": { - "shasum": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.2": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.2", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.2", - "dist": { - "shasum": "46790ae07c6de38124eda90bbf7336b43df93305", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "1.8.3": { - "name": "jquery", - "description": "jQuery: The Write Less, Do More, JavaScript Library (packaged for Node.JS)", - "version": "1.8.3", - "url": "http://jquery.com", - "homepage": "https://github.com/coolaj86/node-jquery", - "author": { - "name": "James Morrin", - "email": "treasonx@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/coolaj86/node-jquery.git" - }, - "bugs": { - "url": "https://github.com/coolaj86/node-jquery/issues" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/coolaj86/node-jquery/blob/master/LICENSE-MIT" - } - ], - "main": "lib/node-jquery", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "test": "grunt test" - }, - "dependencies": { - "jsdom": "~0.2.14", - "htmlparser": "1.7.6", - "xmlhttprequest": "~1.4.2", - "location": "0.0.1", - "navigator": "~1.0.1", - "contextify": "~0.1.3" - }, - "devDependencies": { - "grunt": "~0.3.8", - "nodeunit": "~0.7.4" - }, - "keywords": [ - "util", - "dom", - "jquery" - ], - "_id": "jquery@1.8.3", - "dist": { - "shasum": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "treasonx", - "email": "treasonx@gmail.com" - }, - "maintainers": [ - { - "name": "coolaj86", - "email": "coolaj86@gmail.com" - }, - { - "name": "treasonx", - "email": "treasonx@gmail.com" - } - ], - "directories": {}, - "deprecated": "Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0." - }, - "2.1.0-beta2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta2", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "~0.4.10", - "grunt": "~0.4.1", - "grunt-bower-task": "~0.3.2", - "grunt-cli": "~0.1.11", - "grunt-compare-size": "~0.4.0", - "grunt-contrib-jshint": "~0.7.0", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-watch": "~0.5.3", - "grunt-git-authors": "~1.2.0", - "grunt-jscs-checker": "~0.2.3", - "grunt-jsonlint": "~1.0.1", - "gzip-js": "0.3.2", - "load-grunt-tasks": "~0.2.0", - "testswarm": "~1.1.0", - "requirejs": "~2.1.9", - "which": "~1.0.5" - }, - "_id": "jquery@2.1.0-beta2", - "dist": { - "shasum": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.11", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "rwaldron", - "email": "waldron.rick@gmail.com" - }, - { - "name": "jquery", - "email": "npm@jquery.com" - } - ], - "directories": {} - }, - "2.1.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-beta3", - "dist": { - "shasum": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-beta3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-beta3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-beta3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.4.1", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-beta3", - "dist": { - "shasum": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "1.11.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0-rc1", - "dist": { - "shasum": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.23", - "_npmUser": { - "name": "jquery", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "dave.methvin@gmail.com" - } - ], - "directories": {} - }, - "2.1.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0-rc1", - "dist": { - "shasum": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.14", - "_npmUser": { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - } - ], - "directories": {} - }, - "1.11.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.0", - "dist": { - "shasum": "c67ceee19b403650d682adcf39d5c9009814d949", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.0/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "archiver": "0.4.10", - "gzip-js": "0.3.2", - "testswarm": "1.1.0", - "load-grunt-tasks": "0.2.0", - "requirejs": "2.1.9", - "shelljs": "0.2.6", - "grunt": "0.4.2", - "grunt-cli": "0.1.11", - "grunt-contrib-jshint": "0.7.2", - "grunt-contrib-uglify": "0.2.7", - "grunt-contrib-watch": "0.5.3", - "grunt-bowercopy": "0.5.0", - "grunt-compare-size": "0.4.0", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.2.6", - "grunt-jsonlint": "1.0.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.0", - "dist": { - "shasum": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { - "name": "jquery", - "email": "npm@jquery.org" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.org" - } - ], - "directories": {} - }, - "2.1.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-beta1", - "dist": { - "shasum": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-beta1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-beta1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.3.2", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-beta1", - "dist": { - "shasum": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz" - }, - "_from": ".", - "_npmVersion": "1.4.6", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "jquery", - "email": "npm@jquery.com" - }, - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc1", - "_shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz" - }, - "directories": {} - }, - "1.11.1-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc1", - "_shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "_from": ".", - "_npmVersion": "1.4.7", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "dist": { - "shasum": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz" - }, - "directories": {} - }, - "2.1.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1-rc2", - "dist": { - "shasum": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1-rc2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1-rc2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1-rc2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1-rc2", - "dist": { - "shasum": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "2.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@2.1.1", - "dist": { - "shasum": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.11.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.1/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "_id": "jquery@1.11.1", - "dist": { - "shasum": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz" - }, - "_from": ".", - "_npmVersion": "1.2.25", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - } - ], - "directories": {} - }, - "1.9.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.9.1", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/master/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt" - } - ], - "scripts": { - "test": "grunt" - }, - "dependencies": {}, - "devDependencies": { - "grunt-compare-size": "~0.3.0", - "grunt-git-authors": "~1.1.0", - "grunt-update-submodules": "~0.2.0", - "grunt-contrib-watch": "~0.1.1", - "grunt-contrib-jshint": "~0.1.1", - "grunt-contrib-uglify": "~0.1.1", - "grunt": "~0.4.0", - "testswarm": "0.2.2" - }, - "keywords": [], - "gitHead": "d71f6a53927ad02d728503385d15539b73d21ac8", - "_id": "jquery@1.9.1", - "_shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "_from": ".", - "_npmVersion": "1.5.0-alpha-1", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz" - }, - "directories": {} - }, - "2.1.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "1.7.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "a04f5ff9795fd6292117563623db44cf3f875868", - "_id": "jquery@2.1.2", - "_shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz" - }, - "directories": {} - }, - "1.11.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.2/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "9690801db01709bfbff5f977d07fb7cc14472908", - "_id": "jquery@1.11.2", - "_shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "_from": ".", - "_npmVersion": "1.4.28", - "_npmUser": { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "30ab26857211c37caa83da0f6903155fe49bb72d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz" - }, - "directories": {} - }, - "2.1.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0", - "_id": "jquery@2.1.3", - "_shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "_from": ".", - "_npmVersion": "2.1.14", - "_nodeVersion": "0.11.14", - "_npmUser": { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz" - }, - "directories": {} - }, - "2.1.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.1.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.1.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/2.1.4/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "jsdom": "1.5.0", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "7751e69b615c6eca6f783a81e292a55725af6b85", - "_id": "jquery@2.1.4", - "_shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "228bde698a0c61431dc2630a6a154f15890d2317", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" - }, - "directories": {} - }, - "1.11.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.11.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.11.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "http://bugs.jquery.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jquery/jquery/blob/1.11.3/MIT-LICENSE.txt" - } - ], - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "grunt": "0.4.2", - "grunt-bowercopy": "0.7.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.8.0", - "grunt-contrib-uglify": "0.3.2", - "grunt-contrib-watch": "0.5.3", - "grunt-git-authors": "1.2.0", - "grunt-jscs-checker": "0.4.1", - "grunt-jsonlint": "1.0.4", - "gzip-js": "0.3.2", - "load-grunt-tasks": "0.3.0", - "requirejs": "2.1.10", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt" - }, - "gitHead": "1472290917f17af05e98007136096784f9051fab", - "_id": "jquery@1.11.3", - "_shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "_from": ".", - "_npmVersion": "2.7.4", - "_nodeVersion": "0.12.2", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz" - }, - "directories": {} - }, - "3.0.0-alpha1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-alpha1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-alpha1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.7.0", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs-checker": "0.8.1", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.0", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "jsdomVersions": { - "node": "3.1.2", - "iojs": "5.3.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2c92869b752bb8e0fe74c3183f40f3f58b7b906d", - "_id": "jquery@3.0.0-alpha1", - "_shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "_from": ".", - "_npmVersion": "2.11.3", - "_nodeVersion": "0.12.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3493d672266e21c2dffb2714f935448edebe3c62", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz" - }, - "directories": {} - }, - "1.12.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "efbdc6e3f0fa3d3cd4d3d8bfa37990b707f7c2e1", - "_id": "jquery@1.12.0", - "_shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz" - }, - "directories": {} - }, - "2.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.0", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6fc01e29bdad0964f62ef56d01297039cdcadbe5", - "_id": "jquery@2.2.0", - "_shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz" - }, - "directories": {} - }, - "3.0.0-beta1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-beta1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-beta1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "native-promise-only": "0.7.8-a", - "promises-aplus-tests": "2.1.0", - "q": "1.1.2", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.3.0", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "2ef761afd9addf78193f5191ece03bb20c9182c2", - "_id": "jquery@3.0.0-beta1", - "_shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "_from": ".", - "_npmVersion": "3.3.12", - "_nodeVersion": "5.2.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz" - }, - "directories": {} - }, - "1.12.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "56ead6ffbf8560c521e7e94518d35db42b19f5f3", - "_id": "jquery@1.12.1", - "_shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.1.tgz_1456168080336_0.4474994211923331" - }, - "directories": {} - }, - "2.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.1", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "788eaba2f83e7b7445c7a83a50c81c0704423874", - "_id": "jquery@2.2.1", - "_shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "_from": ".", - "_npmVersion": "2.14.19", - "_nodeVersion": "0.10.42", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "dist": { - "shasum": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz" - }, - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.1.tgz_1456168325917_0.42471840139478445" - }, - "directories": {} - }, - "1.12.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "a9b5f8ac96f6aa7bfc7b0795cb16d65c4f15b64e", - "_id": "jquery@1.12.2", - "_shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.2.tgz_1458236759160_0.3557943068444729" - }, - "directories": {} - }, - "2.2.2": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.2", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.2/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "086d381cd2f3b4b8b0af85ecb2c9593a61e5b4bd", - "_id": "jquery@2.2.2", - "_shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "3e302dc61eb329a21e9efac937d731f061134c59", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.2.tgz_1458237146417_0.4190880397800356" - }, - "directories": {} - }, - "1.12.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "3a43d7e563314bf32970b773dd31ecf2b90813dd", - "_id": "jquery@1.12.3", - "_shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.3.tgz_1459884094815_0.5328964435029775" - }, - "directories": {} - }, - "2.2.3": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.3", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.3/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "af22a351b2ea5801ffb1695abb3bb34d5bed9198", - "_id": "jquery@2.2.3", - "_shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "_from": ".", - "_npmVersion": "3.7.3", - "_nodeVersion": "5.8.0", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.3.tgz_1459884434885_0.992488760035485" - }, - "directories": {} - }, - "1.12.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "1.12.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/1.12-stable/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "npm": "2.1.12", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.12.2", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "5e89585e0121e72ff47de177c5ef604f3089a53d", - "_id": "jquery@1.12.4", - "_shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-1.12.4.tgz_1463764744844_0.4810373710934073" - }, - "directories": {} - }, - "2.2.4": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "2.2.4", - "main": "dist/jquery.js", - "homepage": "http://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/2.2.4/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "commitplease": "2.0.0", - "core-js": "0.9.17", - "grunt": "0.4.5", - "grunt-babel": "5.0.1", - "grunt-cli": "0.1.13", - "grunt-compare-size": "0.4.0", - "grunt-contrib-jshint": "0.11.2", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-git-authors": "2.0.1", - "grunt-jscs": "2.1.0", - "grunt-jsonlint": "1.0.4", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "jsdom": "5.6.1", - "load-grunt-tasks": "1.0.0", - "qunitjs": "1.17.1", - "qunit-assert-step": "1.0.3", - "requirejs": "2.1.17", - "sinon": "1.10.3", - "sizzle": "2.2.1", - "strip-json-comments": "1.0.3", - "testswarm": "1.1.0", - "win-spawn": "2.0.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "c0185ab7c75aab88762c5aae780b9d83b80eda72", - "_id": "jquery@2.2.4", - "_shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-2.2.4.tgz_1463765166836_0.5834389675874263" - }, - "directories": {} - }, - "3.0.0-rc1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0-rc1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0-rc1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "e503a93188dc4b5b42e2340f805f2d90b404bc50", - "_id": "jquery@3.0.0-rc1", - "_shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0-rc1.tgz_1463771627380_0.12211154378019273" - }, - "directories": {} - }, - "3.0.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.0.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.0.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-jshint": "1.0.0", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jscs": "2.8.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "0078f86be166a8747819d5d1516776a662cb69df", - "_id": "jquery@3.0.0", - "_shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "_from": ".", - "_npmVersion": "2.15.1", - "_nodeVersion": "0.10.45", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.0.0.tgz_1465497191024_0.9057256667874753" - }, - "directories": {} - }, - "3.1.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.3.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "0.1.6", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "18.1.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.1", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.0", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test", - "precommit": "grunt precommit_lint" - }, - "commitplease": { - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ] - }, - "gitHead": "6f02bc382c0529d3b4f68f6b2ad21876642dbbfe", - "_id": "jquery@3.1.0", - "_shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "_from": ".", - "_npmVersion": "2.15.8", - "_nodeVersion": "4.4.7", - "_npmUser": { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - }, - "dist": { - "shasum": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.0.tgz_1467927964329_0.882518710102886" - }, - "directories": {} - }, - "3.1.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.1.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "jQuery Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.1.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|(Refs? [^#])" - }, - "gitHead": "1b30f3ad466ebf2714d47eda34dbd7fdf6849fe3", - "_id": "jquery@3.1.1", - "_shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.6.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "m_gol", - "email": "m.goleb@gmail.com" - }, - { - "name": "timmywil", - "email": "timmywillisn@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.1.1.tgz_1474583566957_0.15473420196212828" - }, - "directories": {} - }, - "3.2.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "a81259fff4ea0c7b4cd98f04050c829640395a31", - "_id": "jquery@3.2.0", - "_shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "_from": ".", - "_npmVersion": "4.1.2", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.0.tgz_1489699855733_0.5328386940527707" - }, - "directories": {} - }, - "3.2.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.2.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.2.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-preset-es2015": "6.6.0", - "commitplease": "2.6.1", - "core-js": "2.2.2", - "cross-spawn": "2.2.3", - "eslint-config-jquery": "1.0.0", - "grunt": "1.0.1", - "grunt-babel": "6.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "1.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "19.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.0.7", - "grunt-newer": "1.2.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.11.4", - "insight": "0.8.1", - "jsdom": "5.6.1", - "load-grunt-tasks": "3.5.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.4.1", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "requirejs": "2.2.0", - "sinon": "1.17.3", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test": "grunt && grunt test:slow", - "precommit": "grunt lint:newer", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "77d2a51d0520d2ee44173afdf4e40a9201f5964e", - "_id": "jquery@3.2.1", - "_shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "_from": ".", - "_npmVersion": "4.4.4", - "_nodeVersion": "7.7.3", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "shasum": "5c4d9de652af6cd0a770154a631bba12b015c787", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jquery-3.2.1.tgz_1490036530067_0.19497186387889087" - }, - "directories": {} - }, - "3.3.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": { - "archiver": "1.3.0", - "chalk": "1.1.3", - "npm": "4.4.1", - "shelljs": "0.7.7" - }, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9a8a1c63930edc9fb6fab9e75b3eee578762b8a5", - "_id": "jquery@3.3.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-1SmQFTqu24RtvnvLN/D1RFIsOBGqLQYsGJgZxejd69Rw9ACBJvSgppA+A+wBcXgASwRSoX1aDN1I5ZNIrFC6Xw==", - "shasum": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.0.tgz_1516388631205_0.827812286792323" - }, - "directories": {} - }, - "3.3.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.3.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.3.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "babel-core": "7.0.0-beta.0", - "babel-plugin-transform-es2015-for-of": "7.0.0-beta.0", - "commitplease": "2.7.10", - "core-js": "2.4.1", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.1", - "grunt-babel": "7.0.0", - "grunt-cli": "1.2.0", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.0.1", - "grunt-contrib-watch": "1.0.0", - "grunt-eslint": "20.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "2.0.0", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "0.14.3", - "insight": "0.8.4", - "jsdom": "5.6.1", - "karma": "1.7.0", - "karma-browserstack-launcher": "1.3.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.0.1", - "karma-qunit": "1.2.1", - "load-grunt-tasks": "3.5.2", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.0", - "qunit-assert-step": "1.0.3", - "qunitjs": "1.23.1", - "raw-body": "2.2.0", - "requirejs": "2.3.3", - "sinon": "2.3.7", - "sizzle": "2.3.3", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.3.4" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless", - "precommit": "grunt lint:newer qunit_fixture", - "commitmsg": "node node_modules/commitplease" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "gitHead": "9e8ec3d10fad04748176144f108d7355662ae75e", - "_id": "jquery@3.3.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", - "shasum": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery-3.3.1.tgz_1516469230473_0.5458589680492878" - }, - "directories": {} - }, - "3.4.0": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.4.0", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.4.0/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "@babel/core": "7.3.3", - "@babel/plugin-transform-for-of": "7.2.0", - "commitplease": "3.2.0", - "core-js": "2.6.5", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.3", - "grunt-babel": "8.0.0", - "grunt-cli": "1.3.2", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.4.0", - "grunt-contrib-watch": "1.1.0", - "grunt-eslint": "21.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "3.0.1", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "1.3.1", - "insight": "0.10.1", - "jsdom": "13.2.0", - "karma": "4.0.1", - "karma-browserstack-launcher": "1.4.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.1.0", - "karma-ie-launcher": "1.0.0", - "karma-jsdom-launcher": "7.1.0", - "karma-qunit": "3.0.0", - "load-grunt-tasks": "4.0.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.1", - "qunit": "2.9.2", - "raw-body": "2.3.3", - "requirejs": "2.3.6", - "sinon": "2.3.7", - "sizzle": "2.3.4", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.4.7" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "husky": { - "hooks": { - "commit-msg": "node node_modules/commitplease", - "pre-commit": "grunt lint:newer qunit_fixture" - } - }, - "gitHead": "180c5c33e477463ed93a9d5f7ac7cad7c9809f1c", - "_id": "jquery@3.4.0", - "_npmVersion": "6.4.1", - "_nodeVersion": "8.15.1", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-ggRCXln9zEqv6OqAGXFEcshF5dSBvCkzj6Gm2gzuR5fWawaX8t7cxKVkkygKODrDAzKdoYw3l/e3pm3vlT4IbQ==", - "shasum": "8de513fa0fa4b2c7d2e48a530e26f0596936efdf", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.4.0.tgz", - "fileCount": 125, - "unpackedSize": 1293692, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcrkmiCRA9TVsSAnZWagAA0FYP/3PRUJ9bvMXsEo01m0m0\n4/24H91hGidu20i5V2JNBhtlNttTH3NLlPYKGHO3wHFEA8iAKuiYyo/V5UlQ\nv4jUKqcFCtaz2pgdBICbAt0cNc1ZbRxXTL1ZI1HublxTkyx/d0kP0l001vYA\nIeLarSNrx4749LDHOeprO6TPoFeB+aCusWbLexcNs/Tel9Frn0oufEiDTjCI\nHAJHfjGDW8IZBw0fQaem7CxaUPiVFRUZghxYpM5ThGbGtxIsAiN9EQDpDmVC\nq855FOu7FsLviN20mJpJmq9ZuiGF9DoUA5QJIQ9INZBfd/uQ6TWRcqBqVtwH\nIgdfAVAACPBF+Zax3dy4cAOU+UHGqs/nStZ7wmewexsDdXb3PzkDvUxluzmL\nocg6y7gpp39Ev7qV+SNg7ZccgW/2rWHfy/l/Aofb0TFV53FCc3DEc9avzUkS\nPZE2jCTu3mUR1vpqr31R+AVo2ZMhTfcrGw2WwP1IDqc+Nt+7ySBiWVQHnT4a\nIjHALqztNKEkqFvxgm4VUkPgqqpFF4msCg5a8jwjJPiGKJgllv1clVwlFk77\nKQHztESClmebfruOidrX0qmBpixrraC2T401gZT9bV4qfqu6Td3q00TBkZjI\nKsiBfs6hq3Py3MOJt3S2xwx8smuhB7Q05e5TMficC0QMURF14U4Yi6WGJ5or\nBJa5\r\n=w1RE\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery_3.4.0_1554925986191_0.6962955867267493" - }, - "_hasShrinkwrap": false - }, - "3.4.1": { - "name": "jquery", - "title": "jQuery", - "description": "JavaScript library for DOM operations", - "version": "3.4.1", - "main": "dist/jquery.js", - "homepage": "https://jquery.com", - "author": { - "name": "JS Foundation and other contributors", - "url": "https://github.com/jquery/jquery/blob/3.4.1/AUTHORS.txt" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jquery/jquery.git" - }, - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ], - "bugs": { - "url": "https://github.com/jquery/jquery/issues" - }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "@babel/core": "7.3.3", - "@babel/plugin-transform-for-of": "7.2.0", - "commitplease": "3.2.0", - "core-js": "2.6.5", - "eslint-config-jquery": "1.0.1", - "grunt": "1.0.3", - "grunt-babel": "8.0.0", - "grunt-cli": "1.3.2", - "grunt-compare-size": "0.4.2", - "grunt-contrib-uglify": "3.4.0", - "grunt-contrib-watch": "1.1.0", - "grunt-eslint": "21.0.0", - "grunt-git-authors": "3.2.0", - "grunt-jsonlint": "1.1.0", - "grunt-karma": "3.0.1", - "grunt-newer": "1.3.0", - "grunt-npmcopy": "0.1.0", - "gzip-js": "0.3.2", - "husky": "1.3.1", - "insight": "0.10.1", - "jsdom": "13.2.0", - "karma": "4.0.1", - "karma-browserstack-launcher": "1.4.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.1.0", - "karma-ie-launcher": "1.0.0", - "karma-jsdom-launcher": "7.1.0", - "karma-qunit": "3.0.0", - "load-grunt-tasks": "4.0.0", - "native-promise-only": "0.8.1", - "promises-aplus-tests": "2.1.2", - "q": "1.5.1", - "qunit": "2.9.2", - "raw-body": "2.3.3", - "requirejs": "2.3.6", - "sinon": "2.3.7", - "sizzle": "2.3.4", - "strip-json-comments": "2.0.1", - "testswarm": "1.1.0", - "uglify-js": "3.4.7" - }, - "scripts": { - "build": "npm install && grunt", - "start": "grunt watch", - "test:browserless": "grunt && grunt test:slow", - "test:browser": "grunt && grunt karma:main", - "test": "grunt && grunt test:slow && grunt karma:main", - "jenkins": "npm run test:browserless" - }, - "commitplease": { - "nohook": true, - "components": [ - "Docs", - "Tests", - "Build", - "Support", - "Release", - "Core", - "Ajax", - "Attributes", - "Callbacks", - "CSS", - "Data", - "Deferred", - "Deprecated", - "Dimensions", - "Effects", - "Event", - "Manipulation", - "Offset", - "Queue", - "Selector", - "Serialize", - "Traversing", - "Wrap" - ], - "markerPattern": "^((clos|fix|resolv)(e[sd]|ing))|^(refs?)", - "ticketPattern": "^((Closes|Fixes) ([a-zA-Z]{2,}-)[0-9]+)|^(Refs? [^#])" - }, - "husky": { - "hooks": { - "commit-msg": "node node_modules/commitplease", - "pre-commit": "grunt lint:newer qunit_fixture" - } - }, - "gitHead": "15bc73803f76bc53b654b9fdbbbc096f56d7c03d", - "_id": "jquery@3.4.1", - "_npmVersion": "6.4.1", - "_nodeVersion": "8.16.0", - "_npmUser": { - "name": "timmywil", - "email": "4timmywil@gmail.com" - }, - "dist": { - "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==", - "shasum": "714f1f8d9dde4bdfa55764ba37ef214630d80ef2", - "tarball": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", - "fileCount": 125, - "unpackedSize": 1295318, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyg1rCRA9TVsSAnZWagAAeOEP/2+ykv0pLlPLU8YLeOoS\nUTBRx0TwY8fcGwZfsxB2JERZfrQQM7l1l3aS7Rb5XYmL4rlHrnGq571H2ogF\ntuEPsLjSGbM+3eM6Y1MRCTXn4cp3KXVKU+oBuFrA6gSQkhPB9nYjaf0jUl5L\nVYMjB6CiqB5Pxy0j3hCrT7iMkoxY6b+V/3rN7HqRj1pL1N71QLrVyYv9AiHU\nuXaKlsI4xWg1RDrt4+Ef8xe4n5bwfWxn8hNIBwlldvexknA+FGz/LY42FOl7\n9alWTyfJMmK15ggMD02W8iCLTaUxC4Hz16ZeoGnnOZkPaZCSZEpAHCJSh5BV\n9J7GGhpiEtlQRQQbhRYl2nAb5Z02APUIJ7tQt1JYAtb1WJNJgOjDITvFqpxj\nbOc47BP+7pcWF4rqWviIjWts4mU3w0Yl+ZUaTSB6lOjBSH/ONC4CspyfKlQg\nu1Kcrk8skTT4fDNQcXLTDdXXCssqrU8nRtzKarLjuBvd0Cs0ZPSZqEJQG6OA\nJ7zdqnqwzfRrfbQwWi7OozkjSrnS2mLwFTxiuAsO86AgzwKYZQrMwEV89LXQ\n8cRPhH1jvPgh2RcLraKTuQsSZ2o/h+mrq8lhIDNBVJXmUZKNRSW9GNoD8QEY\na52Ygcu8lCFbtJ1gUvHwOzHaRmNqZb7dwMGV5zbTMSFViGSN1qabM8jNOwl4\nCp1s\r\n=n88a\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "dmethvin", - "email": "dave.methvin@gmail.com" - }, - { - "name": "mgol", - "email": "m.goleb@gmail.com" - }, - { - "name": "scott.gonzalez", - "email": "scott.gonzalez@gmail.com" - }, - { - "name": "timmywil", - "email": "4timmywil@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/jquery_3.4.1_1556745578228_0.09546423386966585" - }, - "_hasShrinkwrap": false - } - }, - "time": { - "modified": "2019-05-01T21:19:44.206Z", - "created": "2011-03-19T07:19:56.392Z", - "1.5.1": "2011-03-19T07:19:56.956Z", - "1.6.2": "2011-07-06T16:13:21.519Z", - "1.6.3": "2011-09-12T19:05:34.373Z", - "1.7.2": "2012-05-01T11:14:09.090Z", - "1.7.3": "2012-07-01T16:11:53.194Z", - "1.8.2": "2012-11-11T22:43:58.910Z", - "1.8.3": "2012-12-01T00:03:02.297Z", - "2.1.0-beta2": "2013-11-15T16:34:48.859Z", - "2.1.0-beta3": "2013-12-20T22:53:28.426Z", - "1.11.0-beta3": "2014-01-06T19:57:22.387Z", - "2.1.0-rc1": "2014-01-17T22:47:16.391Z", - "1.11.0-pre": "2014-01-16T20:38:42.912Z", - "1.11.0-rc1": "2014-01-16T21:08:36.924Z", - "1.11.0": "2014-01-23T21:07:07.184Z", - "2.1.0": "2014-01-23T21:12:47.772Z", - "2.1.1-beta1": "2014-03-24T17:05:07.581Z", - "1.11.1-beta1": "2014-03-24T17:25:14.236Z", - "2.1.1-rc1": "2014-04-18T15:29:41.423Z", - "1.11.1-rc1": "2014-04-18T15:40:23.931Z", - "2.1.1-rc2": "2014-04-21T20:52:06.866Z", - "1.11.1-rc2": "2014-04-21T21:12:52.817Z", - "2.1.1": "2014-05-01T17:15:20.164Z", - "1.11.1": "2014-05-01T18:05:32.863Z", - "1.9.1": "2014-07-17T22:01:17.886Z", - "2.1.2": "2014-12-17T14:14:28.184Z", - "1.11.2": "2014-12-17T16:07:07.647Z", - "2.1.3": "2014-12-18T15:18:38.205Z", - "2.1.4": "2015-04-28T16:17:13.648Z", - "1.11.3": "2015-04-28T16:22:06.378Z", - "3.0.0-alpha1": "2015-07-13T19:26:37.913Z", - "1.12.0": "2016-01-08T19:58:05.265Z", - "2.2.0": "2016-01-08T20:03:43.280Z", - "3.0.0-beta1": "2016-01-14T23:09:43.368Z", - "1.12.1": "2016-02-22T19:08:05.212Z", - "2.2.1": "2016-02-22T19:12:09.116Z", - "1.12.2": "2016-03-17T17:45:59.810Z", - "2.2.2": "2016-03-17T17:52:26.967Z", - "1.12.3": "2016-04-05T19:21:37.716Z", - "2.2.3": "2016-04-05T19:27:17.929Z", - "1.12.4": "2016-05-20T17:19:07.375Z", - "2.2.4": "2016-05-20T17:26:07.921Z", - "3.0.0-rc1": "2016-05-20T19:13:48.387Z", - "3.0.0": "2016-06-09T18:33:13.420Z", - "3.1.0": "2016-07-07T21:46:05.554Z", - "3.1.1": "2016-09-22T22:32:49.360Z", - "3.2.0": "2017-03-16T21:30:56.342Z", - "3.2.1": "2017-03-20T19:02:13.508Z", - "3.3.0": "2018-01-19T19:03:52.616Z", - "3.3.1": "2018-01-20T17:27:11.928Z", - "3.4.0": "2019-04-10T19:53:06.430Z", - "3.4.1": "2019-05-01T21:19:38.408Z" - }, - "users": {}, - "dist-tags": { - "beta": "3.4.1", - "latest": "3.4.1" - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"0be2553cde98de8408c133381517a6c3\"", - "fetched": 1557180431708 - } - }, - "_distfiles": { - "jquery-1.5.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.5.1.tgz", - "sha": "2ae2d661e906c1a01e044a71bb5b2743942183e5", - "registry": "npmjs" - }, - "jquery-1.6.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.2.tgz", - "sha": "01757a4c5beea29e8ae697527c3131abbe997a28", - "registry": "npmjs" - }, - "jquery-1.6.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.6.3.tgz", - "sha": "e1f732fa7e718a6adb3ec20ae0eb2a64fd95ef01", - "registry": "npmjs" - }, - "jquery-1.7.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.2.tgz", - "sha": "a93746763aca75a34df4c16395b0826310d0eaf2", - "registry": "npmjs" - }, - "jquery-1.7.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.7.3.tgz", - "sha": "e3d00a71612ac7e9b554b438e0987d0272ddba94", - "registry": "npmjs" - }, - "jquery-1.8.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.2.tgz", - "sha": "46790ae07c6de38124eda90bbf7336b43df93305", - "registry": "npmjs" - }, - "jquery-1.8.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.8.3.tgz", - "sha": "cfa2941c05a83d966f21347f759a6d15281c60cc", - "registry": "npmjs" - }, - "jquery-2.1.0-beta2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta2.tgz", - "sha": "e0fbbe2beb45b4d8f808362c7c99ef5bfee7d8c6", - "registry": "npmjs" - }, - "jquery-2.1.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-beta3.tgz", - "sha": "5a89b624d8fa625fe5fa83a12a9acb1ef8a11d02", - "registry": "npmjs" - }, - "jquery-1.11.0-beta3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-beta3.tgz", - "sha": "0464a6aba9f35f6c83a203caa23ab420909ce852", - "registry": "npmjs" - }, - "jquery-1.11.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0-rc1.tgz", - "sha": "c2f6a4877374647b20b080c478d8dbcdfb4960ee", - "registry": "npmjs" - }, - "jquery-2.1.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0-rc1.tgz", - "sha": "8c9f5d9a055c2fedb3f5269617ae649497d6a3b0", - "registry": "npmjs" - }, - "jquery-1.11.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.0.tgz", - "sha": "c67ceee19b403650d682adcf39d5c9009814d949", - "registry": "npmjs" - }, - "jquery-2.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.0.tgz", - "sha": "1c9a8c971d2b53dae10d72e16cbb5a1df16a4ace", - "registry": "npmjs" - }, - "jquery-2.1.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-beta1.tgz", - "sha": "6306c8ea1d104775f3ef8f5c26f0a32acd710a11", - "registry": "npmjs" - }, - "jquery-1.11.1-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-beta1.tgz", - "sha": "c7eacde5e1ae06e029f1cd1b2dd444953a33e843", - "registry": "npmjs" - }, - "jquery-2.1.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc1.tgz", - "sha": "95c494fdbbd0cefc305260e11ad46ae49a387c3d", - "registry": "npmjs" - }, - "jquery-1.11.1-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc1.tgz", - "sha": "666a7df02488b48732d96e8ab9bdd34f61dd4238", - "registry": "npmjs" - }, - "jquery-2.1.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1-rc2.tgz", - "sha": "99833e415efa7ac8a4efecc5df6894b2f938a598", - "registry": "npmjs" - }, - "jquery-1.11.1-rc2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1-rc2.tgz", - "sha": "a4ef3edde0864d8524c5e72f59c459fd7a9ebd17", - "registry": "npmjs" - }, - "jquery-2.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.1.tgz", - "sha": "828fc60f50f7ee5983363ef4eb01c5f70af4bd5b", - "registry": "npmjs" - }, - "jquery-1.11.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.1.tgz", - "sha": "b6ec928590112ebed69e1e49cbfd0025ccd60ddb", - "registry": "npmjs" - }, - "jquery-1.9.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.9.1.tgz", - "sha": "e4cd4835faaefbade535857613c0fc3ff2adaf34", - "registry": "npmjs" - }, - "jquery-2.1.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.2.tgz", - "sha": "b68f154cb2ea4731924883e9fe20ec199d1dc1e2", - "registry": "npmjs" - }, - "jquery-1.11.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.2.tgz", - "sha": "30ab26857211c37caa83da0f6903155fe49bb72d", - "registry": "npmjs" - }, - "jquery-2.1.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.3.tgz", - "sha": "6ec55204673d505d39432c5bf5cfad10e1dbad2e", - "registry": "npmjs" - }, - "jquery-2.1.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", - "sha": "228bde698a0c61431dc2630a6a154f15890d2317", - "registry": "npmjs" - }, - "jquery-1.11.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.11.3.tgz", - "sha": "dd8b74278b27102d29df63eae28308a8cfa1b583", - "registry": "npmjs" - }, - "jquery-3.0.0-alpha1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-alpha1.tgz", - "sha": "3493d672266e21c2dffb2714f935448edebe3c62", - "registry": "npmjs" - }, - "jquery-1.12.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.0.tgz", - "sha": "44653be4e3e4628b106bf2141dfd10fbca6021ef", - "registry": "npmjs" - }, - "jquery-2.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz", - "sha": "d0e84ebbf199da51bf7ec39307f19b35754e9cba", - "registry": "npmjs" - }, - "jquery-3.0.0-beta1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-beta1.tgz", - "sha": "d2a4e368e2eed7050bf66abbbb54db2ea345349d", - "registry": "npmjs" - }, - "jquery-1.12.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.1.tgz", - "sha": "9cc34ce4780d4ceb90c44328f071064f01960c18", - "registry": "npmjs" - }, - "jquery-2.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz", - "sha": "3c3e16854ad3d2ac44ac65021b17426d22ad803f", - "registry": "npmjs" - }, - "jquery-1.12.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.2.tgz", - "sha": "b8a8b45937312a19eebbcf5a0589b0311c8220bb", - "registry": "npmjs" - }, - "jquery-2.2.2.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.2.tgz", - "sha": "3e302dc61eb329a21e9efac937d731f061134c59", - "registry": "npmjs" - }, - "jquery-1.12.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.3.tgz", - "sha": "1298b88b908e7c7f7501eb8c1a61f1ac8337b531", - "registry": "npmjs" - }, - "jquery-2.2.3.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz", - "sha": "45e07e4190334de36c9e1a64b43b1f1373d91758", - "registry": "npmjs" - }, - "jquery-1.12.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-1.12.4.tgz", - "sha": "01e1dfba290fe73deba77ceeacb0f9ba2fec9e0c", - "registry": "npmjs" - }, - "jquery-2.2.4.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", - "sha": "2c89d6889b5eac522a7eea32c14521559c6cbf02", - "registry": "npmjs" - }, - "jquery-3.0.0-rc1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0-rc1.tgz", - "sha": "d69fc540b0a56be13e8aecde5a8766ade7a44f8e", - "registry": "npmjs" - }, - "jquery-3.0.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz", - "sha": "95a2a9541291a9f819e016f85ba247116d03e4ab", - "registry": "npmjs" - }, - "jquery-3.1.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz", - "sha": "129f6f1ae94b18f09010b008d0d6011e40613d7f", - "registry": "npmjs" - }, - "jquery-3.1.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz", - "sha": "347c1c21c7e004115e0a4da32cece041fad3c8a3", - "registry": "npmjs" - }, - "jquery-3.2.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz", - "sha": "3bdbba66e1eee0785532dddadb0e0d2521ca584b", - "registry": "npmjs" - }, - "jquery-3.2.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "sha": "5c4d9de652af6cd0a770154a631bba12b015c787", - "registry": "npmjs" - }, - "jquery-3.3.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.0.tgz", - "sha": "06004bc2d0204ce92822a794ee8efb50283bb9ff", - "registry": "npmjs" - }, - "jquery-3.3.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "sha": "958ce29e81c9790f31be7792df5d4d95fc57fbca", - "registry": "npmjs" - }, - "jquery-3.4.0.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.4.0.tgz", - "sha": "8de513fa0fa4b2c7d2e48a530e26f0596936efdf", - "registry": "npmjs" - }, - "jquery-3.4.1.tgz": { - "url": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", - "sha": "714f1f8d9dde4bdfa55764ba37ef214630d80ef2", - "registry": "npmjs" - } - }, - "_attachments": {}, - "_rev": "1-74fe52516ee13cc9", - "_id": "jquery", - "readme": "# jQuery\n\n> jQuery is a fast, small, and feature-rich JavaScript library.\n\nFor information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/).\nFor source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery).\n\nIf upgrading, please see the [blog post for 3.4.1](https://blog.jquery.com/2019/05/01/jquery-3-4-1-triggering-focus-events-in-ie-and-finding-root-elements-in-ios-10/). This includes notable differences from the previous version and a more readable changelog.\n\n## Including jQuery\n\nBelow are some of the most common ways to include jQuery.\n\n### Browser\n\n#### Script tag\n\n```html\n\n```\n\n#### Babel\n\n[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively.\n\n```js\nimport $ from \"jquery\";\n```\n\n#### Browserify/Webpack\n\nThere are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this...\n\n```js\nvar $ = require(\"jquery\");\n```\n\n#### AMD (Asynchronous Module Definition)\n\nAMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html).\n\n```js\ndefine([\"jquery\"], function($) {\n\n});\n```\n\n### Node\n\nTo include jQuery in [Node](nodejs.org), first install with npm.\n\n```sh\nnpm install jquery\n```\n\nFor jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes.\n\n```js\nrequire(\"jsdom\").env(\"\", function(err, window) {\n\tif (err) {\n\t\tconsole.error(err);\n\t\treturn;\n\t}\n\n\tvar $ = require(\"jquery\")(window);\n});\n```" -} diff --git a/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/verdaccio/package.json b/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/verdaccio/package.json deleted file mode 100644 index 3ed63833b..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/relative_path/storage/verdaccio/package.json +++ /dev/null @@ -1,66732 +0,0 @@ -{ - "name": "verdaccio", - "versions": { - "1.4.0": { - "name": "verdaccio", - "version": "1.4.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "sinopia": "./bin/sinopia" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "async": "^2.0.0-rc.3", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "rimraf": "^2.5.2", - "bluebird": "^3.3.5", - "mocha": "^2.4.5", - "eslint": "^2.9.0", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "grunt": "^1.0.1", - "grunt-cli": "^1.2.0", - "grunt-browserify": "^5.0.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "unopinionate": "^0.0.4", - "onclick": "^0.1.0", - "transition-complete": "^0.0.2" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test-travis": "eslint . && mocha -R spec ./test/functional ./test/unit", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "gitHead": "cafbb5f76b7f8884e737dc22daec433b8fb7e84f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@1.4.0", - "_shasum": "7967ade7ba27d301420fdf955ce6a6a85f51f757", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.3.0", - "_npmUser": { - "name": "lonelyclick", - "email": "670891929@qq.com" - }, - "dist": { - "shasum": "7967ade7ba27d301420fdf955ce6a6a85f51f757", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-1.4.0.tgz" - }, - "maintainers": [ - { - "name": "lonelyclick", - "email": "670891929@qq.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/verdaccio-1.4.0.tgz_1469710119396_0.22394915926270187" - }, - "deprecated": "Unknown status of this version", - "directories": {} - }, - "2.0.0": { - "name": "verdaccio", - "version": "2.0.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "rimraf": "^2.5.2", - "bluebird": "^3.3.5", - "mocha": "^2.4.5", - "eslint": "^2.9.0", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "grunt": "^1.0.1", - "grunt-cli": "^1.2.0", - "grunt-browserify": "^5.0.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "unopinionate": "^0.0.4", - "onclick": "^0.1.0", - "transition-complete": "^0.0.2" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test-travis": "eslint . && mocha -R spec ./test/functional ./test/unit", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "gitHead": "f89ca4423aed95d3fa201c9adc2d0d31f603cd54", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.0.0", - "_shasum": "d37fc8f7e98c47d0a681df86036bc1ac3ab5ccdd", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "5.12.0", - "_npmUser": { - "name": "trentearl", - "email": "trent@trentearl.com" - }, - "dist": { - "shasum": "d37fc8f7e98c47d0a681df86036bc1ac3ab5ccdd", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.0.0.tgz" - }, - "maintainers": [ - { - "name": "lonelyclick", - "email": "670891929@qq.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.0.0.tgz_1472251001514_0.8049740565475076" - }, - "directories": {} - }, - "2.0.1": { - "name": "verdaccio", - "version": "2.0.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "rimraf": "^2.5.2", - "bluebird": "^3.3.5", - "mocha": "^2.4.5", - "eslint": "^2.9.0", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "grunt": "^1.0.1", - "grunt-cli": "^1.2.0", - "grunt-browserify": "^5.0.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "unopinionate": "^0.0.4", - "onclick": "^0.1.0", - "transition-complete": "^0.0.2" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test-travis": "eslint . && mocha -R spec ./test/functional ./test/unit", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "gitHead": "d42a5ad1c5c85261adb59684bce6b0f063dd0747", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.0.1", - "_shasum": "bc458f655717be790e452205352f346aef66d124", - "_from": ".", - "_npmVersion": "3.8.6", - "_nodeVersion": "5.12.0", - "_npmUser": { - "name": "trentearl", - "email": "trent@trentearl.com" - }, - "dist": { - "shasum": "bc458f655717be790e452205352f346aef66d124", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.0.1.tgz" - }, - "maintainers": [ - { - "name": "lonelyclick", - "email": "670891929@qq.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.0.1.tgz_1472477180467_0.9442687362898141" - }, - "directories": {} - }, - "2.1.0": { - "name": "verdaccio", - "version": "2.1.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "rimraf": "^2.5.2", - "bluebird": "^3.3.5", - "mocha": "^2.4.5", - "eslint": "^2.9.0", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "grunt": "^1.0.1", - "grunt-cli": "^1.2.0", - "grunt-browserify": "^5.0.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "unopinionate": "^0.0.4", - "onclick": "^0.1.0", - "transition-complete": "^0.0.2" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test-travis": "eslint . && mocha -R spec ./test/functional ./test/unit", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "gitHead": "047fbb22f8da3e1372f76ae9131d673e033aeb4b", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.0", - "_shasum": "ea282741d00afb6a0f983f648832b3cd67bb7711", - "_from": ".", - "_npmVersion": "3.10.3", - "_nodeVersion": "6.7.0", - "_npmUser": { - "name": "trentearl", - "email": "trent@trentearl.com" - }, - "dist": { - "shasum": "ea282741d00afb6a0f983f648832b3cd67bb7711", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.0.tgz" - }, - "maintainers": [ - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.0.tgz_1476233282307_0.9733383152633905" - }, - "directories": {} - }, - "2.1.1": { - "name": "verdaccio", - "version": "2.1.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "bluebird": "^3.3.5", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "eslint": "^2.9.0", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^2.4.5", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test:coverage": "nyc --reporter=html --reporter=text mocha -R spec ./test/functional ./test/unit", - "test-travis": "eslint . && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "gitHead": "0b7dc598b2fee3f4e9c28a55213bb2a83047060c", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.1", - "_shasum": "8b113cbb9fc747ee4d76a924ef6b066e5e900172", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "7.0.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "shasum": "8b113cbb9fc747ee4d76a924ef6b066e5e900172", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.1.tgz_1486449800221_0.6993984614964575" - }, - "directories": {} - }, - "2.1.2": { - "name": "verdaccio", - "version": "2.1.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "bluebird": "^3.3.5", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "eslint": "^2.9.0", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^2.4.5", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test:coverage": "nyc --reporter=html --reporter=text mocha -R spec ./test/functional ./test/unit", - "test-travis": "eslint . && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "gitHead": "9e3ec11c70f69430ae666a9d8a07e938175be76f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.2", - "_shasum": "ac31c2f394af09fd51b8d27ffc9674c314bda4c2", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "7.0.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "shasum": "ac31c2f394af09fd51b8d27ffc9674c314bda4c2", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.2.tgz_1489040725581_0.5829181782901287" - }, - "directories": {} - }, - "2.1.3": { - "name": "verdaccio", - "version": "2.1.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "bluebird": "^3.3.5", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "eslint": "^2.9.0", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^2.4.5", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test:coverage": "nyc --reporter=html --reporter=text mocha -R spec ./test/functional ./test/unit", - "test-travis": "eslint . && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "gitHead": "3bd1e82b54c232b03e7eb35661fae649ecd9c684", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.3", - "_shasum": "0058e46b1b6a89ed5246e32ed24a2353e6292480", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "7.0.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "shasum": "0058e46b1b6a89ed5246e32ed24a2353e6292480", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.3.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.3.tgz_1490817816210_0.4599343703594059" - }, - "directories": {} - }, - "2.1.4": { - "name": "verdaccio", - "version": "2.1.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "symbol": "^0.2.1", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "bluebird": "^3.3.5", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "eslint": "^2.9.0", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^2.4.5", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test:coverage": "nyc --reporter=html --reporter=text mocha -R spec ./test/functional ./test/unit", - "test-travis": "eslint . && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=0.10" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "e3af9f023c84a4a5056d5235eb6405549bba385c", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.4", - "_shasum": "350ac2c4d1652984ef7bb51b55fe83818b4bbd39", - "_from": ".", - "_npmVersion": "3.10.8", - "_nodeVersion": "7.0.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "shasum": "350ac2c4d1652984ef7bb51b55fe83818b4bbd39", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.4.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.4.tgz_1492114119056_0.250107143772766" - }, - "directories": {} - }, - "2.1.5": { - "name": "verdaccio", - "version": "2.1.5", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "es6-shim": "^0.35.0", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.0", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "bluebird": "^3.3.5", - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "eslint": "^2.9.0", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^2.4.5", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "eslint . && mocha ./test/functional ./test/unit", - "test:coverage": "nyc --reporter=html --reporter=text mocha -R spec ./test/functional ./test/unit", - "test-travis": "eslint . && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "896f0830006b7598d342907f68bf5eadd010bbc4", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.5", - "_shasum": "652f28737929109b0605a4eacdc03383c2c30f40", - "_from": ".", - "_npmVersion": "2.14.7", - "_nodeVersion": "4.2.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "shasum": "652f28737929109b0605a4eacdc03383c2c30f40", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.5.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.5.tgz_1492852058177_0.3695373407099396" - }, - "directories": {} - }, - "2.1.6": { - "name": "verdaccio", - "version": "2.1.6", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "coveralls": "^2.13.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "3fd63e5348df6bc205f9f66ebaa9c822cdc3ea71", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.6", - "_shasum": "376aec5fede26c7487e45116b2ddf671d6595bc6", - "_from": ".", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.6.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "shasum": "376aec5fede26c7487e45116b2ddf671d6595bc6", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.6.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.6.tgz_1494575014685_0.6413021814078093" - }, - "directories": {} - }, - "2.1.7": { - "name": "verdaccio", - "version": "2.1.7", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "coveralls": "^2.13.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "83979b346838dd3f770a1761c08379aa9be1a804", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.1.7", - "_shasum": "c1ca28242e225298f61baff0a6fad8409cff4785", - "_from": ".", - "_npmVersion": "2.15.9", - "_nodeVersion": "4.6.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "shasum": "c1ca28242e225298f61baff0a6fad8409cff4785", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.7.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "trentearl", - "email": "trent@trentearl.com" - } - ], - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/verdaccio-2.1.7.tgz_1494769811659_0.48401122353971004" - }, - "directories": {} - }, - "2.2.0": { - "name": "verdaccio", - "version": "2.2.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codacy-coverage": "^2.0.2", - "codecov": "^2.2.0", - "coveralls": "^2.13.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:coveralls": "nyc report --reporter=text-lcov | coveralls", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "coverage:codacy": "nyc report --reporter=lcov && cat coverage/lcov.info | codacy-coverage", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "ce465f0b03b2f94cdfb9cbced5fa4633613383f8", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.2.0", - "_npmVersion": "5.0.3", - "_nodeVersion": "4.6.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-yplbdCRYer+P7lgfOwkuFB/95R40aeUjvhaSQna3rKJoxEXDjHimy/7ePljKeMR+sjbku6wh8HNqgEzS79uvbw==", - "shasum": "d338539779919e7256517512fb1c4ea2054ad95f", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.0.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.2.0.tgz_1496948572117_0.4698629309423268" - }, - "directories": {} - }, - "2.2.1": { - "name": "verdaccio", - "version": "2.2.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lodash": "^4.17.4", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codacy-coverage": "^2.0.2", - "codecov": "^2.2.0", - "coveralls": "^2.13.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:coveralls": "nyc report --reporter=text-lcov | coveralls", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "coverage:codacy": "nyc report --reporter=lcov && cat coverage/lcov.info | codacy-coverage", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "da4c04a22e6baf7ee9a4112375e5b1e40dfc0a37", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.2.1", - "_npmVersion": "5.0.3", - "_nodeVersion": "7.10.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-ybd4Rhhwino2VMjFA/GVltHekqiIWrbkiFsPotfrdmLgbwLPbKA2w+s+DtLTLNKY8r/ZHuI9DSS49t7Zw7WFTA==", - "shasum": "4638e10bc3d77d2b36465801a1af9703b88dd027", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.2.1.tgz_1497716592711_0.979263519635424" - }, - "directories": {} - }, - "2.2.2": { - "name": "verdaccio", - "version": "2.2.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lodash": "^4.17.4", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codacy-coverage": "^2.0.2", - "codecov": "^2.2.0", - "coveralls": "^2.13.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:coveralls": "nyc report --reporter=text-lcov | coveralls", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "coverage:codacy": "nyc report --reporter=lcov && cat coverage/lcov.info | codacy-coverage", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "4ea5ec7194b5d9162d4f852a0794e674111bdbf7", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.2.2", - "_npmVersion": "5.0.3", - "_nodeVersion": "4.6.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-ZSTw69vxR/rgGGscUgpkWjTRQBMSoCezIhKL1LEw93t4QqduxB1ZZ2wNdUwzhEZgjrarpEqsuwM3eWK+FxPWYw==", - "shasum": "795a8662b0552f76ed5f70c5f656c740509217bb", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.2.2.tgz_1499001191638_0.240435371408239" - }, - "directories": {} - }, - "2.2.3": { - "name": "verdaccio", - "version": "2.2.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lodash": "^4.17.4", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codecov": "^2.2.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:html": "nyc report --reporter=html", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "7a5fe2afac1317dd28714a26f8da41c72e73bdc7", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.2.3", - "_npmVersion": "5.0.3", - "_nodeVersion": "4.6.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-HG929HlQvyilwwLFK2uKTCvaPvsC8QqXChxQtA68NF/cllDCQG+paA2oQiJDySFfKMnLz2EuRqo82wOp5etzZA==", - "shasum": "dfd4f402d8b09b67e156de860a72722230aef59b", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.3.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.2.3.tgz_1499201037774_0.7560341416392475" - }, - "directories": {} - }, - "2.2.5": { - "name": "verdaccio", - "version": "2.2.5", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lodash": "^4.17.4", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codecov": "^2.2.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:html": "nyc report --reporter=html", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "87bdc7013f3408b597e38770cd26733ed1ef0d32", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.2.5", - "_npmVersion": "5.0.3", - "_nodeVersion": "8.0.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-jwTSG0AP70Q86syQjQhmJRr/txoG2hQ6qEUuiXQQqAEp+qQ5Wq/H0/zOw9sPDh0+f8pWf1jBUfHqYdO113cvvg==", - "shasum": "ae5525bcf6815beb8f7f3d82cb5a6ef87edae45b", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.5.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.2.5.tgz_1499276049494_0.40815204405225813" - }, - "directories": {} - }, - "2.2.6": { - "name": "verdaccio", - "version": "2.2.6", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lodash": "^4.17.4", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codecov": "^2.2.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:html": "nyc report --reporter=html", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "e2180cf507254c37fcf8f3f8536ddb8befac70db", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.2.6", - "_npmVersion": "5.2.0", - "_nodeVersion": "4.6.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-6tfgcU+EPJJ8VI4CrQPN4yN1X1GjYAlCn6H4ANpEAIL1hDyK4qp8jqlZGW0UbtB4mIxy03lll/6Xy4pvqyvCqw==", - "shasum": "5bc990ba5bb9c723dfa63ab98bbd874881204119", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.6.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.2.6.tgz_1499922292154_0.5947225673589855" - }, - "directories": {} - }, - "2.3.0-beta": { - "name": "verdaccio", - "version": "2.3.0-beta", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "github-markdown-css": "2.8.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "pretest:ci": "npm run lint && npm run build:webui", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "test-travis": "npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint:css && npm run lint", - "build:webui": "npm run pre:webpack && rimraf static/* && webpack --config tools/webpack.prod.config.babel.js --debug", - "dev:webui": "babel-node tools/dev.server.js", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "build-docker": "docker build -t verdaccio . --no-cache", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "f35e92f0d5fc5bb020cbc28fb878584aa223f614", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.0-beta", - "_npmVersion": "5.2.0", - "_nodeVersion": "8.1.3", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-enR6LntsgVPizB0tYy8IFJQbwmbMUGGcC1R8UJslnGMlhGOS2/0zfj2gAZ7Ck+xFzjeDyYauxvXo7tmaQ9TEzg==", - "shasum": "8c60a7b1bc75ed76d0d2fcbe20898d57c2c4a180", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.0-beta.tgz_1500161489856_0.42835263488814235" - }, - "directories": {} - }, - "2.2.7-r": { - "name": "verdaccio", - "version": "2.2.7-r", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lodash": "^4.17.4", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codecov": "^2.2.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "npm run lint && mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:html": "nyc report --reporter=html", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "0e6a274a0dc1ac8f51e76a90b84e40188cfd3a2a", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.2.7-r", - "_npmVersion": "5.2.0", - "_nodeVersion": "8.1.3", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-RJnb0W8LTp6zQAEXbC2N4c4wJPViEoFC2KXqrYAzf8uJBq2TJsuQwsyYfU5nebr257AL/DkReFxeYJ+7vJrmVQ==", - "shasum": "0776171c6750a62c79d0177ee068cf38eaa958f0", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.7-r.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.2.7-r.tgz_1500407087368_0.10351758589968085" - }, - "directories": {} - }, - "2.3.0-beta-1": { - "name": "verdaccio", - "version": "2.3.0-beta-1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "f783ec3df3fc684bf1393182eea71d5236ea3970", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.0-beta-1", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-txtIuWemZmfLJqZGSdIAMZW4FLDaiGewIMe5+yTx8UWPRO4aauTHqG++cGLxxSlRefuDS+d8G1xEcIZr5kIDXQ==", - "shasum": "5fcf6252bd1edd2ab3b364597649c17283f9c2ad", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.0-beta-1.tgz_1500740863252_0.037776755867525935" - }, - "directories": {} - }, - "2.3.0-beta-2": { - "name": "verdaccio", - "version": "2.3.0-beta-2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "19490ffc51304360bca460adf5de022f564dbc89", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.0-beta-2", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-EKl9ISe7mgljT5HztyX5sZRnNsqiglXWzHq6VTXkWErQFeJ1qXspc4sFy5E6TdYqgHImPPDDJTj2o+7A5PBWaQ==", - "shasum": "7fd71f4740370c6cb52b3c499a4a19647c8bb140", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.0-beta-2.tgz_1500743528196_0.2094688278157264" - }, - "directories": {} - }, - "2.3.0-beta-3": { - "name": "verdaccio", - "version": "2.3.0-beta-3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "3a187945dc7f83fd58036d3c99e4ff4eaa6b8dec", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.0-beta-3", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-mRHsTLEyYToZccS/p6OsBQRJc9IKnSpohJ+o2Bxu7RfieVmLQYjFl7xNuF9rHsiKp5vQ3f9KrNyx0kAll3+j+g==", - "shasum": "2f9e0829e3975c5e412940fbc281f6fada7c343c", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-3.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.0-beta-3.tgz_1500744903662_0.48793593933805823" - }, - "directories": {} - }, - "2.3.0-beta-4": { - "name": "verdaccio", - "version": "2.3.0-beta-4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "acb6c8ca25701c145a71a00bce6738afb2eeef63", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.0-beta-4", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-3nxJ3vs+WQDesciPLxOfWZM5O4nfX/mlAh61+5dHHajchqdgvBsOq/FpWANjqVNtqF4rssIvExrzXJcAkZJ0Fg==", - "shasum": "cd1c50075ca6160610d36bc302c4ec91f9bf846c", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-4.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.0-beta-4.tgz_1500747760946_0.39161587809212506" - }, - "directories": {} - }, - "2.3.0": { - "name": "verdaccio", - "version": "2.3.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "d8244e5f490d4615c97da1b7d7eb05d59778715e", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.0", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-To9Lv+lUWPXyiHexlj0s/2ny9yuuCxFGbHk+EbmI2//YGT2LJHCkyD7N6sv4gdAXKl3+Ri4urZeTG1buVcb+ZA==", - "shasum": "9876f5e3085ff03a8a20f725156047d96fb03950", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.0.tgz_1500764915804_0.1449925061315298" - }, - "directories": {} - }, - "2.3.1-pre": { - "name": "verdaccio", - "version": "2.3.1-pre", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "672589b55315ac0582bf5e127379a8e871c5a8d6", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.1-pre", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-AvbqwJoEUVSbcxNK2+48NAW9qwRM06xJQmuM1CJqqKY/FtS4BdE3dmzh+qkZzMZ4ruwBwOmXQFpcXLjE1idcTA==", - "shasum": "017766caf06dee62648a62aba93fbafb189c3c83", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.1-pre.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.1-pre.tgz_1500875439034_0.36244493909180164" - }, - "directories": {} - }, - "2.3.1": { - "name": "verdaccio", - "version": "2.3.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "95401ce6de542f776b562b2c2300c988f52526ae", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.1", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-d8G++5aMVz5deZZbylas2PecfQQ/RDDoLUOf2CRN3R4IBWDbfDptUuuaXPWmMBUYvUZH1vsxxMQo84HmSGtR8Q==", - "shasum": "b1f58d73d615324c001385d48c668bf4ab38ddec", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.1.tgz_1500960265951_0.844995440216735" - }, - "directories": {} - }, - "2.3.2": { - "name": "verdaccio", - "version": "2.3.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "c20bf97b5b795d1d3581c8069d301967d4f9be17", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.2", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-wIFmysA8gcX0BpRDSguVCik07Nn7MQQxbztxcPxVAeom/FBFJPIdd2DBXfW5onQ3Hm5OUD8xiWIXlEzW/R9cEw==", - "shasum": "e4b4c29784d5d8ee5a6a94f44ac8fb7cf027960a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.2.tgz_1501283134736_0.37323086452670395" - }, - "directories": {} - }, - "2.3.3": { - "name": "verdaccio", - "version": "2.3.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "fd0e9190f25467f6aebee0258b4c9109c136a5f8", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.3", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-p3WtBZARORp5u9avojPfF35fw3SR15ZYVMVnzJNBN+JAWp0zYovrNChzuhSRwZBvWSDVmVhqHbMXMT4cRA775w==", - "shasum": "bc6fe5551c0c3e9b3a52094f432d37542fda1e95", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.3.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.3.tgz_1501322728523_0.39970922633074224" - }, - "directories": {} - }, - "2.3.4": { - "name": "verdaccio", - "version": "2.3.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "14bbd9372232e22aa6fa260b09d5c5fbd36ee329", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.4", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-cGVBFDZLTyONtq7LlTsy3A7H6f7ZZ1KYIbl7B0BoobylleTBBl4708wT7Em1/pxJoqpg6h/3d4MFUA+M4MIIOQ==", - "shasum": "d1986d162abc8c244496730e3130bad85ab33dcc", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.4.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.4.tgz_1501323522384_0.9306730227544904" - }, - "directories": {} - }, - "2.3.5": { - "name": "verdaccio", - "version": "2.3.5", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "@verdaccio/streams": "^0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "0feccf9b4a97f7a3b5161da3df6a66b599ea9c98", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.5", - "_npmVersion": "5.0.3", - "_nodeVersion": "7.10.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-HpLkXY1r+8IIPgD7wsnrVXrwDoruwLmjVbu71AGLadbC893hiRjc1gEZTQsiOCXWPTPVMH0nZrMYqNGthcEl8Q==", - "shasum": "cee063a9aeaae8f467ea28888694b82aa3dc45cf", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.5.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.5.tgz_1502691777392_0.21728313132189214" - }, - "directories": {} - }, - "2.3.6": { - "name": "verdaccio", - "version": "2.3.6", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "@verdaccio/streams": "^0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "15bd1383be1ed7f7fa7aa8b2df3828045a130125", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.3.6", - "_npmVersion": "5.3.0", - "_nodeVersion": "8.2.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-GpP/kjCOtBR4iVejhn89vmtIVQ5T4x/i9VR/ALruztEBWzwY5rRzH/UUpSGNzuMUL5dhwkcyJbWpxU4vLu0OVQ==", - "shasum": "7165e74cd3c1bc6a459dc9a061c8a7f902d42c80", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.6.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.3.6.tgz_1502944243219_0.6123665247578174" - }, - "directories": {} - }, - "2.4.0": { - "name": "verdaccio", - "version": "2.4.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "@verdaccio/streams": "^0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "e1d596365d44b7e9fa0b54b222367d0933efe968", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.4.0", - "_npmVersion": "5.4.0", - "_nodeVersion": "8.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-QwBWrpESaeyFyAXQ0gHMuIUEV/C1X8VTi+knGhbLXNqUc8gRNn378QEzHv7ahCsICg0VW7ONgSkjIK+JjMcq5g==", - "shasum": "fc1b900fc8eaec6e9b41553ff0a71d1226cef56b", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.4.0.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.4.0.tgz_1506153681129_0.4362227136734873" - }, - "directories": {} - }, - "2.4.1-beta": { - "name": "verdaccio", - "version": "2.4.1-beta", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "@verdaccio/streams": "^0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "dbd2a5c8b845c4fbdf62831334c6673833e704cd", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.4.1-beta", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-T7eB8zn/1tCamZgURbTWt2A3DpRRxD7XV8In+s2XrAucggfbuaJMZLwfOhZnayNUFn/j5XLRm5pKHI604prCTg==", - "shasum": "0b3f0514529c14f37ca79ecede69db65a85dd061", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.4.1-beta.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.4.1-beta.tgz_1506848232653_0.4545626495964825" - }, - "directories": {} - }, - "2.5.0": { - "name": "verdaccio", - "version": "2.5.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "@verdaccio/streams": "^0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "e1c98921d546240a0c290bd9738ffd5c16888975", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.5.0", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-xQKUFa/J0zLEgBq1uFeqv0MZNrob2HTuf3WSuCOpDotsIjleKU46H3L4bcxr2gEZUDhie/g7tMw+k+Uh7Sk2mQ==", - "shasum": "70363dad6e7fbf779cbcbd4d202961455d1f5701", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.5.0.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.5.0.tgz_1506861064836_0.12001644377596676" - }, - "directories": {} - }, - "2.5.1": { - "name": "verdaccio", - "version": "2.5.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "^0.0.3", - "@verdaccio/streams": "^0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "fb8f4cc4c291768cbcf1fb94a726043e4957bca9", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.5.1", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-rAApGfcwOdTvCnysCeO5SmgFazVuj8X7kuHK1qwAxmkYT4VQGM0jQUF8G+p32CRNrSrIQP7qpVSRMiux1lSNHg==", - "shasum": "e8e8fb46f84a7bdbffc53b9091263cc41d63d8e4", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.5.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.5.1.tgz_1506864724684_0.9754918594844639" - }, - "directories": {} - }, - "2.6.0": { - "name": "verdaccio", - "version": "2.6.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "e844ffa387f514a1d07476522fa2d9b32422ebae", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.6.0", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-7+mls5LDKbAoeXV+v5kdgB/0m8y3k9g+W+F8Ls7wqWIDlWadoNXiCQWzF+N4mHIz1UUw6ZUoBdVXFrS8u9nzng==", - "shasum": "814142f4a439641030df2c1d6c8f46b4d943b2f4", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.0.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.6.0.tgz_1508358151380_0.8518954876344651" - }, - "directories": {} - }, - "2.6.1": { - "name": "verdaccio", - "version": "2.6.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "bad85b70baf9cafdfd8c09e097f4ac45b686ddd9", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.6.1", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-hoPM0rKSzKS7ocANQyxX37XpS9e4bFadzB9mn3VMeg7yZJNmYaYxMSTYe8L1/niuqLVkmlTiCP0sIstBozeMAw==", - "shasum": "869aafb27dcefc59d88dff5f2a295ccd8680cd9c", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.6.1.tgz_1508433982490_0.5727456612512469" - }, - "directories": {} - }, - "2.6.2": { - "name": "verdaccio", - "version": "2.6.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "0dfba81fb36d21a6658e836076e9cef4cdd7526a", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.6.2", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-L4qudeXXdHFvJvlXZif1kaEhGWbmhU5+nNeUJfh9z/3F1Dt2P+v+cDkEVJKfPlUrteS91VJeX3iu8/AZWve2vA==", - "shasum": "d0934ca5b27d379bbdb6cbd0cab8915b67ade8ff", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.6.2.tgz_1508575034547_0.1392003227956593" - }, - "directories": {} - }, - "2.6.3": { - "name": "verdaccio", - "version": "2.6.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "3a718b9fc226a49078adb53f86d816f76a08c6ae", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.6.3", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-1UX2Cnss/zNElBu1+mQN/BGKTFJtlEirvNneM9jTqG6gsujLqhp2DNvHERllBScyoktLf+DheirHGu4CZzmzog==", - "shasum": "3ae0bcbb4c17d50e48e5be51bddf2dedcdeef754", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.3.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.6.3.tgz_1508601844052_0.9168278656434268" - }, - "directories": {} - }, - "2.6.4": { - "name": "verdaccio", - "version": "2.6.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "6a8077a88389588e70429e95e18dce578d41ce8d", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.6.4", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.8.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-irfWRQ7x3HUX1GCncFWZQ71Q+mbpUMjfNEVBib7F1Oi7NZhmv+YcusogI5OPVTXJJMl3rBwZXSZAKZTGxDey6Q==", - "shasum": "71043772b3bd06421d7950361c89516464680bad", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.4.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.6.4.tgz_1509472021932_0.12771691312082112" - }, - "directories": {} - }, - "2.6.5": { - "name": "verdaccio", - "version": "2.6.5", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "dce43c06827d64a880979c5eb4684d6ee49a59d2", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.6.5", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-AB7xDZULxeZ7luZP4+9dtbtK4T24Yf0SUxzjimm9yCQPEWf602FHsMEpv5aryu9u6TyDC3fMhuqQrVFICZrQHw==", - "shasum": "ae9f6a68e1114f3dbbeb6859d64787f898a9a778", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.5.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.6.5.tgz_1509872969691_0.38379195146262646" - }, - "directories": {} - }, - "2.6.6": { - "name": "verdaccio", - "version": "2.6.6", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "45d43c7cc3f561dcb6cd33ab15e1ac9ad6442c5f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.6.6", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.1", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-FXJl/ZQoj/hxWXnt5x71TCa7s8M2KKdW/h4opT6iIJ6HjxjhgVHUQHzv1CuGMedtvBFcfNht4DbXzZWS1UOPzw==", - "shasum": "f01ba2fcf638b5863f69a6c142798bc41216789f", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.6.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.6.6.tgz_1510181231714_0.10205422574654222" - }, - "directories": {} - }, - "2.7.0": { - "name": "verdaccio", - "version": "2.7.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "78e6e0d6d70da2e7ab1078df4d1748a746fae9f7", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.7.0", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.2", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-/2Df5eamSdVh2EnxQJYlbR1RBI48RrXrTmEq4dcaI//OgRTL+khoBm7wCCPyYYUnP9PdS6akYoIslg2VAMUQjw==", - "shasum": "97fb5b0fe92ea57f116e7c75c45451de23022d9d", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.0.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.7.0.tgz_1512516304686_0.2725191612262279" - }, - "directories": {} - }, - "2.7.1": { - "name": "verdaccio", - "version": "2.7.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.6", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "e903afcb1296c80a1f01a6b52e8ea50b7ed6656f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.7.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.9.3", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-TrgS5O76vOsY5jd3sl3G5PRXTsRjInvAwSxVFw77nguR6NQfUf+1yBH6LAQzmzcf1DxPm7PWp/nD3kfHCm7FsQ==", - "shasum": "174cc66fb656c4379eb1f5f512e8c6528a0efab8", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.7.1.tgz_1513754931365_0.7537062847986817" - }, - "directories": {} - }, - "2.7.2": { - "name": "verdaccio", - "version": "2.7.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "1.6.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.15.3", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "2834b14e235cd35b7d461eb36d7dd62fde580d51", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.7.2", - "_npmVersion": "5.6.0", - "_nodeVersion": "8.9.4", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-ATuaPlBqdbIghLDy7YBxYPFQ2O1st/27WvXB8uUCm3xgW6F+2THSLPXHsD9Bi7VEY0eJitDgGsUWqaL9hBl8IA==", - "shasum": "ab9c84aa43ddd630096bca0862bbca44c764986b", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.7.2.tgz_1515156259760_0.4261377640068531" - }, - "directories": {} - }, - "3.0.0-alpha.1": { - "name": "verdaccio", - "version": "3.0.0-alpha.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.0", - "@verdaccio/streams": "0.0.2", - "@verdaccio/types": "0.1.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.0.3", - "babel-jest": "^21.2.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "^6.26.0", - "babel-runtime": "6.26.0", - "codecov": "2.2.0", - "cross-env": "5.1.1", - "css-loader": "0.28.7", - "element-react": "1.4.3", - "element-theme-default": "1.4.12", - "enzyme": "^3.2.0", - "enzyme-adapter-react-16": "^1.1.0", - "eslint": "4.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.39.1", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-react": "7.5.1", - "eslint-plugin-jest": "^21.2.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.5", - "flow-bin": "0.52.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.2", - "github-markdown-css": "2.9.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "^3.0.0", - "in-publish": "2.0.0", - "jest": "^21.2.1", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.2.0", - "style-loader": "0.19.0", - "stylelint": "8.3.1", - "stylelint-config-recommended-scss": "^2.0.0", - "stylelint-scss": "^2.1.0", - "stylelint-webpack-plugin": "0.9.0", - "url-loader": "0.6.2", - "webpack": "3.9.1", - "webpack-dev-server": "2.9.5", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "greenkeeper": { - "ignore": [ - "lunr", - "flow-bin", - "jest" - ] - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "6ce4f79a304da6fd209b975893520fc21bd6d7be", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.1", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-+hb46CeZVWZLPfuuuqYZ//njZi3jgGTFpxE1rPpdDp9PmR6qoAL+FMpLLyA7HHTTDNFj/V5Eldzc8o+Z7+2Osw==", - "shasum": "6aac5044a7c31985fe5d8fea15a6f8d67fc9709f", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.1.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.1.tgz_1515348028126_0.5103025811258703" - }, - "directories": {} - }, - "3.0.0-alpha.2": { - "name": "verdaccio", - "version": "3.0.0-alpha.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.0", - "@verdaccio/streams": "0.0.2", - "@verdaccio/types": "0.1.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.0.3", - "babel-jest": "^21.2.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "^6.26.0", - "babel-runtime": "6.26.0", - "codecov": "2.2.0", - "cross-env": "5.1.1", - "css-loader": "0.28.7", - "element-react": "1.4.3", - "element-theme-default": "1.4.12", - "enzyme": "^3.2.0", - "enzyme-adapter-react-16": "^1.1.0", - "eslint": "4.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.39.1", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-react": "7.5.1", - "eslint-plugin-jest": "^21.2.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.5", - "flow-bin": "0.52.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.2", - "github-markdown-css": "2.9.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "^3.0.0", - "in-publish": "2.0.0", - "jest": "^21.2.1", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.2.0", - "style-loader": "0.19.0", - "stylelint": "8.3.1", - "stylelint-config-recommended-scss": "^2.0.0", - "stylelint-scss": "^2.1.0", - "stylelint-webpack-plugin": "0.9.0", - "url-loader": "0.6.2", - "webpack": "3.9.1", - "webpack-dev-server": "2.9.5", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "greenkeeper": { - "ignore": [ - "lunr", - "flow-bin", - "jest" - ] - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "324027b42afcf072f1c619fce42469cd1d0ec163", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.2", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-gwIAYbEzjtZRzjrDzyBUtK/B9uX/V/2+2ZSAq33Cubn7pJ8nqox9J6c7L0x+ofUkPwrTESx1VHyKvlojPRV4Rw==", - "shasum": "7dce0c76127925123030625d797688e284e75c11", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.2.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.2.tgz_1515349297928_0.8855553497560322" - }, - "directories": {} - }, - "3.0.0-alpha.3": { - "name": "verdaccio", - "version": "3.0.0-alpha.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.0", - "@verdaccio/streams": "0.0.2", - "@verdaccio/types": "0.1.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.0.3", - "babel-jest": "^21.2.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "^6.26.0", - "babel-runtime": "6.26.0", - "codecov": "2.2.0", - "cross-env": "5.1.1", - "css-loader": "0.28.7", - "element-react": "1.4.3", - "element-theme-default": "1.4.12", - "enzyme": "^3.2.0", - "enzyme-adapter-react-16": "^1.1.0", - "eslint": "4.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.39.1", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-react": "7.5.1", - "eslint-plugin-jest": "^21.2.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.5", - "flow-bin": "0.52.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.2", - "github-markdown-css": "2.9.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "^3.0.0", - "in-publish": "2.0.0", - "jest": "^21.2.1", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.2.0", - "style-loader": "0.19.0", - "stylelint": "8.3.1", - "stylelint-config-recommended-scss": "^2.0.0", - "stylelint-scss": "^2.1.0", - "stylelint-webpack-plugin": "0.9.0", - "url-loader": "0.6.2", - "webpack": "3.9.1", - "webpack-dev-server": "2.9.5", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "greenkeeper": { - "ignore": [ - "lunr", - "flow-bin", - "jest" - ] - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "8d537b28a4c4f2c0f483e2e49a5d258b16a3b497", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.3", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-PRklMcYPMzANrTt7LFQFQxNZ55xa6zwtjOlU/9fJfchwaA4bbhsVj3XQbmMBtNIfDQduLiA6mmB38jwGHQqbNA==", - "shasum": "5fcb51ae0c488506c6af4aad70a544853d49e09a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.3.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.3.tgz_1515350717870_0.7194148392882198" - }, - "directories": {} - }, - "3.0.0-alpha.4": { - "name": "verdaccio", - "version": "3.0.0-alpha.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.0", - "@verdaccio/streams": "0.0.2", - "@verdaccio/types": "0.1.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.0.3", - "babel-jest": "^21.2.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "^6.26.0", - "babel-runtime": "6.26.0", - "codecov": "2.2.0", - "cross-env": "5.1.1", - "css-loader": "0.28.7", - "element-react": "1.4.3", - "element-theme-default": "1.4.12", - "enzyme": "^3.2.0", - "enzyme-adapter-react-16": "^1.1.0", - "eslint": "4.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.39.1", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-react": "7.5.1", - "eslint-plugin-jest": "^21.2.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.5", - "flow-bin": "0.52.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.2", - "github-markdown-css": "2.9.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "^3.0.0", - "in-publish": "2.0.0", - "jest": "^21.2.1", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.2.0", - "style-loader": "0.19.0", - "stylelint": "8.3.1", - "stylelint-config-recommended-scss": "^2.0.0", - "stylelint-scss": "^2.1.0", - "stylelint-webpack-plugin": "0.9.0", - "url-loader": "0.6.2", - "webpack": "3.9.1", - "webpack-dev-server": "2.9.5", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "greenkeeper": { - "ignore": [ - "lunr", - "flow-bin", - "jest" - ] - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "MIT", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "415e31b1f85cd7ac7e4683435669bfa65d2580d4", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.4", - "_npmVersion": "5.5.1", - "_nodeVersion": "9.3.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-Gzu+PL6darhoc7XZom3sQ2ZYRJt9hoN9x0fbdzt3O08KRARpGDbkxmwU2xcT46S6L+SlMYI8TViSGuTp139Hyg==", - "shasum": "4ac2a260fd18e3792da21f5eb307622f803bd918", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.4.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.4.tgz_1515448662972_0.7630476308986545" - }, - "directories": {} - }, - "3.0.0-alpha.7": { - "name": "verdaccio", - "version": "3.0.0-alpha.7", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.2", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@verdaccio/types": "0.1.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.0.3", - "babel-jest": "^21.2.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "^6.26.0", - "babel-runtime": "6.26.0", - "codecov": "2.2.0", - "cross-env": "5.1.1", - "css-loader": "0.28.7", - "element-react": "1.4.3", - "element-theme-default": "1.4.12", - "enzyme": "^3.2.0", - "enzyme-adapter-react-16": "^1.1.0", - "eslint": "4.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.39.1", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "^21.2.0", - "eslint-plugin-react": "7.5.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.5", - "flow-bin": "0.52.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.2", - "github-markdown-css": "2.9.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "^3.0.0", - "in-publish": "2.0.0", - "jest": "^21.2.1", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.2.0", - "style-loader": "0.19.0", - "stylelint": "8.3.1", - "stylelint-config-recommended-scss": "^2.0.0", - "stylelint-scss": "^2.1.0", - "stylelint-webpack-plugin": "0.9.0", - "url-loader": "0.6.2", - "webpack": "3.9.1", - "webpack-dev-server": "2.9.5", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "MIT", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "39859c174a68fb4bf8747efdcb8ab8a8fcfb1c44", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.7", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-oU5cmX3ZFzt2AxKIOUolCEhP1APgZY5WmD2WirBzCeGenPtLSX14/8KHMHnFE3+ou7B+SCSD9hpuib1dJpH/ow==", - "shasum": "af594dcd824fc5e742b5249fe3103d175afb6e5a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.7.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.7.tgz_1515870907053_0.45501983701251447" - }, - "directories": {} - }, - "2.7.3": { - "name": "verdaccio", - "version": "2.7.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "^1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "^4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "58b77391f44319e5679b891ce1db8b9c35e119ad", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.7.3", - "_npmVersion": "5.6.0", - "_nodeVersion": "8.9.4", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-KCEJPNndzEWMpRnikSAD1hy7NvSVLgpzzt+Sdz5rQol4nWrVr9WpwtU0HwwJDiZekESeyLHKXTgzvO7YMqoUKQ==", - "shasum": "94ae13fc2e3517d1c541bb35236b8cb50ba327c1", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.3.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.7.3.tgz_1515953061315_0.1960457016248256" - }, - "directories": {} - }, - "3.0.0-alpha.8": { - "name": "verdaccio", - "version": "3.0.0-alpha.8", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.2", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@verdaccio/types": "0.2.0", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.8", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.15.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.41.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.6.2", - "eslint-plugin-react": "7.5.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.63.1", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.1", - "jest-environment-jsdom": "22.1.0", - "jest-environment-jsdom-global": "1.0.2", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.14", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.19.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "url-loader": "0.6.2", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.0", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "MIT", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "695fe50d2c485b9a48ad9ad2caa99ab7cfb835e8", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.8", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-AKlnI7skPqHRPOqnGA/RO0B9tAhFHw8NHm7kgVEFfVbcNG0/zIDYQjpJsZoj689CIs9N8pJFj/9UJCKEy6G/5Q==", - "shasum": "e62fe2925dc3216eff163e4d50f275ed34d8d09b", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.8.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.8.tgz_1516091047069_0.5265207753982395" - }, - "directories": {} - }, - "3.0.0-alpha.9": { - "name": "verdaccio", - "version": "3.0.0-alpha.9", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@verdaccio/types": "0.2.0", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.8", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.15.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.41.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.6.2", - "eslint-plugin-react": "7.5.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.63.1", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.1", - "jest-environment-jsdom": "22.1.0", - "jest-environment-jsdom-global": "1.0.3", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.14", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.19.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "url-loader": "0.6.2", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.0", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "MIT", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "d3186896d0c6b90a29a56b5a596531039c59cdce", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.9", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-Ls+MH5667Pj5ts7puYGiGwG8TIktW1SECfz8g/zfuQHiKxvG55Z4c0+8ly+I3Zty5ajsNI36e9R90VLD3MzXqg==", - "shasum": "cbede2d33604a84201076ea01fb02e02733f3639", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.9.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.9.tgz_1516175322136_0.7325513169635087" - }, - "directories": {} - }, - "3.0.0-alpha.10": { - "name": "verdaccio", - "version": "3.0.0-alpha.10", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@verdaccio/types": "0.2.0", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.8", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.15.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.41.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.6.2", - "eslint-plugin-react": "7.5.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.63.1", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.1", - "jest-environment-jsdom": "22.1.0", - "jest-environment-jsdom-global": "1.0.3", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.14", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.19.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "url-loader": "0.6.2", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.0", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "MIT", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "b1115fed54b3b484b8a382420a6b2fec89b37ef5", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.10", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-gpRhha7QIh3Kz6OKI12SUlO+TmYmiKcQcYnfG+O6x+CVIw6npN2bffCyclxrUHWsWRIGrtYdixn2S/HqPDV4fQ==", - "shasum": "23649503c2abdab84f8fe97335616275005bd915", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.10.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.10.tgz_1516257380526_0.08490396686829627" - }, - "directories": {} - }, - "3.0.0-alpha.11": { - "name": "verdaccio", - "version": "3.0.0-alpha.11", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.0", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@commitlint/cli": "6.0.2", - "@commitlint/config-conventional": "6.0.2", - "@commitlint/travis-cli": "6.0.2", - "@verdaccio/types": "0.2.0", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.9", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.15.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.41.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.7.0", - "eslint-plugin-react": "7.5.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.63.1", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.14.3", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.4", - "jest-environment-jsdom": "22.1.4", - "jest-environment-jsdom-global": "1.0.3", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.3.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.17", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.19.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "supertest": "^3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "^0.0.3", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "8e646eb03ff3a3fbde97e92b8ed9714a9a5f7b7d", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.11", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-Rewu4VoW7JuBryWadjmMHrrOVi2FF0SO1z453X3frEaG+hQsRi/LQIWXW1EZKqqpc4EC3BH5hxNp2ryoajLZ6Q==", - "shasum": "80f79165aa3d60404a3f51141add1937e322ea3f", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.11.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.11.tgz_1517169146822_0.15834202407859266" - }, - "directories": {} - }, - "2.7.4": { - "name": "verdaccio", - "version": "2.7.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.3", - "@verdaccio/streams": "0.0.2", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.0.1", - "commander": "^2.11.0", - "compression": "^1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "^4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.5", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^7.4.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.9", - "mime": "^1.3.6", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "axios": "0.16.2", - "babel-cli": "6.24.1", - "babel-core": "6.25.0", - "babel-eslint": "7.2.3", - "babel-loader": "7.1.1", - "babel-plugin-flow-runtime": "0.11.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "^6.26.0", - "babel-preset-env": "1.5.2", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-runtime": "6.23.0", - "codacy-coverage": "2.0.2", - "codecov": "2.2.0", - "coveralls": "2.13.1", - "css-loader": "0.28.4", - "element-react": "1.0.16", - "element-theme-default": "1.3.7", - "eslint": "4.2.0", - "eslint-config-google": "0.8.0", - "eslint-loader": "1.8.0", - "eslint-plugin-babel": "4.1.1", - "eslint-plugin-flowtype": "2.35.0", - "eslint-plugin-import": "2.6.1", - "eslint-plugin-react": "7.1.0", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "flow-runtime": "0.13.0", - "friendly-errors-webpack-plugin": "1.6.1", - "fs-extra": "4.0.1", - "github-markdown-css": "2.8.0", - "html-webpack-plugin": "2.29.0", - "in-publish": "2.0.0", - "localstorage-memory": "1.0.2", - "mocha": "3.4.2", - "mocha-lcov-reporter": "1.3.0", - "node-sass": "4.5.3", - "normalize.css": "7.0.0", - "nyc": "11.0.3", - "ora": "1.3.0", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "react-hot-loader": "3.0.0-beta.7", - "react-router-dom": "4.1.1", - "react-syntax-highlighter": "5.6.2", - "rimraf": "2.6.1", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.1", - "standard-version": "4.2.0", - "style-loader": "0.18.2", - "stylelint": "7.13.0", - "stylelint-config-standard": "16.0.0", - "stylelint-webpack-plugin": "0.8.0", - "url-loader": "0.5.8", - "webpack": "3.2.0", - "webpack-dev-server": "2.5.0", - "webpack-merge": "4.1.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui || not-in-publish", - "test": "mocha ./test/functional ./test/unit --reporter=spec --full-trace", - "pre:ci": "npm run build:webui", - "test:ci": "npm run test:coverage", - "test:only": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc npm t", - "coverage:html": "nyc report --reporter=html", - "coverage:publish": "nyc report --reporter=lcov | codecov", - "lint": "eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "pre:webpack": "npm run lint && rimraf static/*", - "dev:webui": "babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "jest": { - "snapshotSerializers": [ - "jest-serializer-enzyme" - ] - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "968d36ae63d50a09b733d3208f5289d12a2fc6b5", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@2.7.4", - "_npmVersion": "5.6.0", - "_nodeVersion": "8.9.4", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-vWS03rqT2GFuyxT8N0hQfIBQ8JFM2JTa9ZJq28BXC5nF6L18MBfTV7vtqiW7Aq+PiUo2GRF3h/5zxLsxw5x4fw==", - "shasum": "ecf285d65ddad2e533b3d9aac06b8f643465d76d", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.4.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-2.7.4.tgz_1517170965837_0.8677997896447778" - }, - "directories": {} - }, - "3.0.0-alpha.12": { - "name": "verdaccio", - "version": "3.0.0-alpha.12", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.1", - "lockfile": "^1.0.1", - "lodash": "4.17.4", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "^2.72.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@commitlint/cli": "^6.1.0", - "@commitlint/config-conventional": "^6.1.0", - "@commitlint/travis-cli": "^6.1.0", - "@verdaccio/types": "0.3.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.15.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.9", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "^4.17.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "^2.42.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.7.0", - "eslint-plugin-react": "^7.6.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "^0.64.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.14.3", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.4", - "jest-environment-jsdom": "22.1.4", - "jest-environment-jsdom-global": "1.0.3", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "^1.4.0", - "prop-types": "15.6.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.17", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "^0.20.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "^0.0.4", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "a96ac10e3b934e66d7b8a38306604189ae27b136", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.12", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-slpiWVnInjQTH7lKylk5cU7/4LtATQzpas0EoL9SgBx174C5Juk6qV+jyfJ4mOxIEQlzklOqAmw5P6/Dc/4CTA==", - "shasum": "eb3b4eae4b76fc40b43a99f816d6461dbeb44b42", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.12.tgz" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio-3.0.0-alpha.12.tgz_1517755178587_0.9628969749901444" - }, - "directories": {} - }, - "3.0.0-alpha.13": { - "name": "verdaccio", - "version": "3.0.0-alpha.13", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.1", - "lockfile": "^1.0.1", - "lodash": "4.17.5", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "2.83.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@commitlint/cli": "6.1.0", - "@commitlint/config-conventional": "6.1.0", - "@commitlint/travis-cli": "6.1.0", - "@verdaccio/types": "0.3.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.9", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.17.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.42.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.8.0", - "eslint-plugin-react": "7.6.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.64.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.14.3", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.4", - "jest-environment-jsdom": "22.1.4", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.2.0", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.4.0", - "prop-types": "15.6.0", - "puppeteer": "1.0.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.17", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.3", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "yarn run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "7f03b5f2c5bb0c9e240ed9a5fba582beeeccf9a0", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-alpha.13", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.4.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-LFyfLdvBNUZNl5q3XQk60GfvlB/kjScm5oaQlP1Vkn29m8+lX+quZhyEaun6pXFASNUWhAiWh3DaHXu9xTFAqw==", - "shasum": "98475c87027b689ee1d90d89e0cd0cbc203f51ff", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.13.tgz", - "fileCount": 261, - "unpackedSize": 2446796 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-alpha.13_1518801329364_0.08087019992539135" - }, - "_hasShrinkwrap": false - }, - "3.0.0-test.1": { - "name": "verdaccio", - "version": "3.0.0-test.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.1", - "lockfile": "^1.0.1", - "lodash": "4.17.5", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "opencollective": "^1.0.3", - "pkginfo": "^0.4.0", - "request": "2.83.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "@commitlint/cli": "6.1.0", - "@commitlint/config-conventional": "6.1.0", - "@commitlint/travis-cli": "6.1.0", - "@verdaccio/types": "0.3.1", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.9", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.17.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.42.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.8.0", - "eslint-plugin-react": "7.6.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.64.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.14.3", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.4", - "jest-environment-jsdom": "22.1.4", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.2.0", - "localstorage-memory": "1.0.2", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.4.0", - "prop-types": "15.6.0", - "puppeteer": "1.0.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.17", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.3", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi .", - "postinstall": "opencollective postinstall" - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "yarn run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "660440e6bcf4d6aae177d11aca2c23b316d49f26", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-test.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.4.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-xJS5AOVWFsKqho+rwa/pygF3Ghd+um/Zkrh6ZVUkR0xhzltLmv/g/20l3e38SL+/NnZPNGo14ghVQmh6o7lydQ==", - "shasum": "2606e20ffa5fe6e900c7d9528e94861b1ed287e7", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-test.1.tgz", - "fileCount": 261, - "unpackedSize": 2449469 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-test.1_1518855171922_0.2249473398300752" - }, - "_hasShrinkwrap": false, - "deprecated": "this" - }, - "3.0.0-beta.0": { - "name": "verdaccio", - "version": "3.0.0-beta.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.1", - "lockfile": "^1.0.1", - "lodash": "4.17.5", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "2.83.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0", - "verdaccio-htpasswd": "0.1.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.0", - "@commitlint/config-conventional": "6.1.0", - "@commitlint/travis-cli": "6.1.0", - "@verdaccio/types": "1.0.3", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.9", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.17.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.42.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.8.0", - "eslint-plugin-react": "7.6.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.64.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.14.3", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.4", - "jest-environment-jsdom": "22.1.4", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.2.0", - "localstorage-memory": "1.0.2", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.4.0", - "prop-types": "15.6.0", - "puppeteer": "1.0.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.17", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.3", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "yarn run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "1399b5ceae83fed6513d922c2da212555a3cd999", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.4.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-pq8+v/uND3q4T3EyA9JQYGR+UFkE2uOuoFq33FBjEYCoq1cNI8WLOiiBh2NFks1YVaWOfv1khk4QF5zt8s7xPw==", - "shasum": "7405f7e8ee943e9670b46c3ffeb88a147d9fbda0", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.0.tgz", - "fileCount": 261, - "unpackedSize": 2470575 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.0_1519507376001_0.7452417166283622" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.1": { - "name": "verdaccio", - "version": "3.0.0-beta.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compression": "1.7.1", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.1.1", - "lockfile": "^1.0.1", - "lodash": "4.17.5", - "lunr": "^0.7.0", - "marked": "0.3.12", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "2.83.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0", - "verdaccio-htpasswd": "0.1.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.0", - "@commitlint/config-conventional": "6.1.0", - "@commitlint/travis-cli": "6.1.0", - "@verdaccio/types": "1.0.3", - "axios": "0.17.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.1", - "babel-jest": "22.1.0", - "babel-loader": "7.1.2", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.9", - "element-react": "1.4.5", - "element-theme-default": "1.4.12", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.17.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "1.9.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.42.0", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jest": "21.8.0", - "eslint-plugin-react": "7.6.1", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "flow-bin": "0.64.0", - "flow-runtime": "0.16.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.14.3", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.1.4", - "jest-environment-jsdom": "22.1.4", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.2.0", - "localstorage-memory": "1.0.2", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "7.0.0", - "ora": "1.4.0", - "prop-types": "15.6.0", - "puppeteer": "1.0.0", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0-beta.17", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.1", - "stylelint": "8.4.0", - "stylelint-config-recommended-scss": "3.0.0", - "stylelint-scss": "2.2.0", - "stylelint-webpack-plugin": "0.10.1", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.3", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.1" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint .", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "yarn run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "e9fc7b3f382889a24fa21dc6c27540011773aad2", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.4.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-Re5iaGF2aUGUXV9hw59mSeMfu3KYmcUWxrlgr23BuVfPX8hkrfz3sDuxHolFNBiSPRAoa7CLp6DUB9y8zbTFQA==", - "shasum": "86a020c414d636fc2f662923c347e390729178ff", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.1.tgz", - "fileCount": 261, - "unpackedSize": 2470571 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.1_1519507558087_0.24501697277085266" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.2": { - "name": "verdaccio", - "version": "3.0.0-beta.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.3.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.6.0", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^2.3.2", - "commander": "^2.12.2", - "compression": "1.7.2", - "cookies": "^0.7.0", - "cors": "^2.8.3", - "express": "4.16.2", - "global": "^4.3.2", - "handlebars": "4.0.11", - "http-errors": "^1.4.0", - "js-string-escape": "1.0.1", - "js-yaml": "^3.6.0", - "jsonwebtoken": "^8.2.0", - "lockfile": "^1.0.1", - "lodash": "4.17.5", - "lunr": "^0.7.0", - "marked": "0.3.17", - "mime": "^2.0.3", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "request": "2.83.0", - "semver": "^5.5.0", - "unix-crypt-td-js": "^1.0.0", - "verdaccio-htpasswd": "0.1.4" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.0.0", - "axios": "0.18.0", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.1", - "babel-loader": "7.1.3", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.3", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.12.2", - "eslint-plugin-react": "7.7.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "flow-bin": "0.66.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.1", - "localstorage-memory": "1.0.2", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.2", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.4.0", - "stylelint-webpack-plugin": "0.10.3", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.3", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.2" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "dacf6bc9d93b9ba62eef3ece3e0e150db0f805cc", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.2", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.4.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-t/2M4HN24acf0+5nRw1i6x9vsDDuJB2cvY1giHz3D2JxWJhLbTj6/hxLU3l+E5gkmstnzLeDUKcvRDk65OtM+A==", - "shasum": "3a5135c49f1a918464e4bcddacd5b0a3b50e16d4", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.2.tgz", - "fileCount": 263, - "unpackedSize": 2477514 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.2_1520183275822_0.9504122708738241" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.4": { - "name": "verdaccio", - "version": "3.0.0-beta.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.3.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.3.2", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "express": "4.16.2", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.0", - "lockfile": "1.0.3", - "lodash": "4.17.5", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.83.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.1.4" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.0.2", - "axios": "0.18.0", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.1", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "flow-bin": "0.67.1", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.1", - "localstorage-memory": "1.0.2", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.3", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.3", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.2" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "768ce6a8821edeaea8ffa52a9a385604b0c20ad1", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.4", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.4.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-uFANz73MCGXubjSlVJTB/YLaVJJqSeFGkUdY/9JyW5U2WSDZ6dZqsH33pImZm5OOuysq2QnyEhnR4D0UlELAfA==", - "shasum": "154e6e57850a99d04963ceb5e43b8004a6057809", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.4.tgz", - "fileCount": 275, - "unpackedSize": 2869306 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.4_1521386920020_0.9613534795929355" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.5": { - "name": "verdaccio", - "version": "3.0.0-beta.5", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "0.3.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.3.2", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.2", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.0", - "lockfile": "1.0.3", - "lodash": "4.17.5", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.83.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.1.4" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.0.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.1", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "flow-bin": "0.67.1", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.1", - "localstorage-memory": "1.0.2", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.3", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.6", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "179d14f74a3f09b2caec46667d8a462b7395e8ef", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.5", - "_npmVersion": "5.7.1", - "_nodeVersion": "9.4.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-RoHczPoB3hIxX0uRjj1Vvpqnp/9FEhCalqL9xd1K8WtRIxLvEM9CM81Oj99bBVprFSq6/sHSjP6mKDk6T0BkJA==", - "shasum": "c37cad0456f43b91ee1e996c73eea5ebec194f38", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.5.tgz", - "fileCount": 276, - "unpackedSize": 2872695 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.5_1522091788682_0.4296987431010175" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.6": { - "name": "verdaccio", - "version": "3.0.0-beta.6", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "^0.3.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.3.2", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.2", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.0", - "lockfile": "1.0.3", - "lodash": "4.17.5", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.83.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.2.0" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.0.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.1", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "flow-bin": "0.67.1", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.6.1", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "2.30.1", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.1", - "localstorage-memory": "1.0.2", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.3", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "0.0.6", - "webpack": "3.10.0", - "webpack-dev-server": "2.11.1", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=registry jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "71ac920efb21a3c15d74b164ef37c84b91b6c563", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.6", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-g3VNWc7mDXGhtHqHBHs4oDm6MLDDJBZq1L1wOMXwmbSrF1Xqfs+irWH/AsNs8t1kQ66lo6AhOqFKLy9o3EMlAQ==", - "shasum": "38c5819e6ff9d749562ead888dfae527213a3692", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.6.tgz", - "fileCount": 276, - "unpackedSize": 2529102 - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.6_1522784227203_0.17299505923928393" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.7": { - "name": "verdaccio", - "version": "3.0.0-beta.7", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "1.0.2", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.3.2", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.2", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.0", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.83.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.1", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.1", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.6.0", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.3", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "8f2493df4c897ddfdae70a1a1aaff741da52b3ec", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.7", - "_npmVersion": "5.8.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-IJUTNvHi8Nv3GJNPGxYpRbuQkMqiFyD5k0XwflBdCb6dPaPnOpuwlc6Bs0wnfio57szuW4qKCiW3strTi3NghQ==", - "shasum": "c7a9e1622705ee37411ea7a19a6272056fc5b1be", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.7.tgz", - "fileCount": 280, - "unpackedSize": 2944566, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5vW2CRA9TVsSAnZWagAA5u0P/0ZJ3ZC81bC4jOIymtBD\nqrH9Tqh/ArBhNrzLLa7o2GiALJIGMpG9TUp2lMeM2aA++9s4UUF76is14Sv7\npRlmrmmk9rZ1GYGFEvLCw2fm58FJ2+Dz2cM0a2qQOJ7cbkS1z1iWE92a327V\nunSlX3YQQ3+NgTyY/yEVOf8II1G9wQ5NrYdqQzYR0kxSkh10j2KFFte6lqBu\nzpbum9IiWcAQs+URDQg3qHHc2C0eQARWnyonhZqqI1O/ZsyCzlEMGw3K7QRx\nVpNnDJ3VPqxyz4p5k/srF0W4+8ikQPpFKqKpNPzN0rdwLRumOOKZgcZtDBAw\nkBoLs5fss5B8ty1otMDOM68zaEN8liADIv3Z3Cvge/fO4PPZbysAnCMlhQCO\nRudFV9IBLpuzQqS3m88e21ZjF0uW/qi5McSrN2ts7pxpp3HkP0dKXfvh5/yl\nOQD6U5Y6sv8HIGlkAIA4NPwTWvyZ46yLTp5tdTcjhiS7mfLM0JBoHo6J6/c/\nlNPS8ENmShSm+8PYYcE/mlnVm/Kgeey+Qc5N5oK1Zp7Z0CNvl8N0dN6koEP5\n8bSe74KswMDklWhcbcKsKyKsiTdbPn+nwMPZBCK8rw0aPFzOkxaiXrLsbdD5\nEPe9rAc+Wb0eIqk69mxOcxAjab5tY1t485CEfzZqu95ID/EnSUEQdLrhHz6s\npefV\r\n=gC1q\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.7_1525085621610_0.04969176611364379" - }, - "_hasShrinkwrap": false - }, - "0.1.7": { - "name": "verdaccio", - "version": "0.1.7", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "JSONStream": "^1.1.1", - "apache-md5": "^1.1.2", - "async": "^2.0.1", - "body-parser": "^1.15.0", - "bunyan": "^1.8.0", - "chalk": "^1.1.3", - "commander": "^2.9.0", - "compression": "^1.6.1", - "cookies": "^0.6.1", - "express": "^4.13.4", - "handlebars": "^4.0.5", - "highlight.js": "^9.3.0", - "http-errors": "^1.4.0", - "jju": "^1.3.0", - "js-yaml": "^3.6.0", - "lockfile": "^1.0.1", - "lunr": "^0.7.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "pkginfo": "^0.4.0", - "readable-stream": "^2.1.2", - "render-readme": "^1.3.1", - "request": "^2.72.0", - "semver": "^5.1.0", - "unix-crypt-td-js": "^1.0.0" - }, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-handlebars": "^1.0.0", - "codacy-coverage": "^2.0.2", - "codecov": "^2.2.0", - "coveralls": "^2.13.0", - "eslint": "^3.19.0", - "eslint-config-google": "^0.7.1", - "grunt": "^1.0.1", - "grunt-browserify": "^5.0.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-less": "^1.3.0", - "grunt-contrib-watch": "^1.0.0", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^10.1.2", - "onclick": "^0.1.0", - "rimraf": "^2.5.2", - "transition-complete": "^0.0.2", - "unopinionate": "^0.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "modules", - "proxy", - "server" - ], - "scripts": { - "test": "mocha ./test/functional ./test/unit", - "test:coverage": "nyc mocha -R spec ./test/functional ./test/unit", - "coverage:coveralls": "nyc report --reporter=text-lcov | coveralls", - "coverage:codecov": "nyc report --reporter=lcov | codecov", - "coverage:codacy": "nyc report --reporter=lcov && cat coverage/lcov.info | codacy-coverage", - "test-travis": "npm run lint && npm run test:coverage", - "test-only": "mocha ./test/functional ./test/unit", - "lint": "eslint .", - "build-docker": "docker build -t verdaccio .", - "build-docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=4.6.1", - "npm": ">=2.15.9" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "license": "WTFPL", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "gitHead": "aa81c3f18dbd45cf13d9b5b32f2c4ac28f3dbe32", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@0.1.7", - "_npmVersion": "6.0.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-NirqZlCD0ePDtNTLRG6qRoA0gdmAFgEFv5ap0UF37t8kcK/ANHrp4ccYC/vuTfSzVC0wX+Ez02qhnKlvAfMp1A==", - "shasum": "b3564ee0e396ea7f46d9ba4f1e2ba3f35a7076ad", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-0.1.7.tgz", - "fileCount": 131, - "unpackedSize": 972237, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8hSECRA9TVsSAnZWagAASwUQAILNNBExFYajcsX+iarE\nPnUyRJJ23Xb08JzgrxgyZAdkvR4x0dbSmSHKPNSB978c96TtM5KJwBm8vycQ\nE7Kh35doPGSMNk2AUwPo9/rF7Oafz5jQkd/Y862s3VQAp2TcraNg2WTZhLir\n2fJpuJJPCNgOcPBCWQYWXHwRiDMoDDrERuBMJfyHarzqId1SD5lyO/lAiqOE\n6nysziflomTUlEtDz9x4fSTUR+ROttTUMzfPHbu5zliDlAvMU2aLKt0HOO+q\n6XN/9c9qgHjCkUPwox/mGLRVSz4DKe9x7TAEsWpvNQyfPOtsvScb4oJxFXP2\nlTXZeL3EXb0dp87gzr2nZ2ZhgEov/LtqMoHWxhU59U0UCgZyvfAXLmao/UAh\nmnkpz2GNTy2EpZ6hkUP6p24Yc8y4m+YgBwojLXim865F+7DsYJsypFfOszFh\nkKAB0xUpfTzdo2CIvrLzZEBj1+gTtyw/7uixO4YJd8cpYtqCbiR1tj1bsY5g\nQTwIZILqGYzJeqYaHr4wP/lEchyIDgGjb3lyUTKFbO7CY5rhF02WwwBKvrOy\n/l6UA3hMZexqOJy6PI9dHEG84/XBTsxrxbc+qSSdz4qARAVsGz9tqyQnw/MG\n7Y8nvquKrSwQC1nAzwILFKk66LvkrZVX17DhU7S29bJtAbtUSkOKQgK8qaRP\n9j9O\r\n=bxD9\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_0.1.7_1525814402858_0.4235303346461927" - }, - "_hasShrinkwrap": false, - "deprecated": "this" - }, - "3.0.0-beta.8": { - "name": "verdaccio", - "version": "3.0.0-beta.8", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.5", - "@verdaccio/local-storage": "1.0.2", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.3.2", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.2", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.0", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.83.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.1", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.0", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.1", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.7.2", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.6.0", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.3", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "d48b9a38d0e26b6037728f20d438b353a317823f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.8", - "_npmVersion": "6.0.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-ciRtQEnw5qQdJE4T6EDKmUwxXh1ESvuct8fQxx58fmV3AEOIhVNmyVuuRsp0P1E4Z9VCLCADq21UhsBdDglUDw==", - "shasum": "08afbb595f12947cfe1c82bd9e110e88da505ef4", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.8.tgz", - "fileCount": 282, - "unpackedSize": 2948534, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8oHMCRA9TVsSAnZWagAAJpoQAIr9HwzHGkjYgzNQe52A\nD1zswSSfanHYf/oijKuNtMQzMZ4c3VhR3kB/EUx+bxq44BMw/DR1PJE5FE+G\nchWFGcye7xoJcQ/DaFCA2zswi+03LVSlx00Q6fU4x3c7+PZ6c/MTt/2DCzb7\noFU0LDOlHT0IfFscHMMILMAkowbki/JC1SIlc0rrjPynNIqCwS94aC/gPyRz\n9IEayWjP+ZRzHluc4UL24+bzvpAas7dlT2pD8eJk+Idxq2MxiQILLW8U3in2\n42c1i90DfzqXDHawAXv6/2Z6hEy7pLDTcjOXYL5eWMGWkeIbjybvnaPHWCNS\nZlk/15LHQIuthSIt5Up6idFC76x/ZuP4XdI0RsZVIuSYw/PqNMFDG4ZHfkI4\nTk2rqjWy0OwediFDTe0+t6LQ0KKcced8QpBGJPzBKRMVWAndPbj2Z+qcnJJP\nagduez/eGNsigiKH77sO/mv3i10a5gb62a44eM8bR7+TI3PPc6gTfPxjNe44\nPuL2iSJyOroU1iQ3TSvgRC/7W3t0diqAQ4fCFZGBzQEnOXPHrTwlFZJZgZ83\nXSBwfq3pZlRbVbaotGgKglVYS8IWHxmNdhWb8c1l8rtkCp6au/uuiHQoDKQc\nTUgrOqLzTu1Jt3Q8iJ2QFO11DdhN/Oe1GT5GQM9g/XiInnPC65Zoi2gStbhH\nlCEO\r\n=K1hp\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.8_1525842379481_0.6468551661186142" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.9": { - "name": "verdaccio", - "version": "3.0.0-beta.9", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.8.3", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "0fb7c7810a78416173d86fae079dd334bc3ff5cc", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.9", - "_npmVersion": "6.0.1", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-DpOXKRp5KAoDoOn1HfDnPZmeiX8kKrz9RxtzGUcecdzLRAFAPIC1MROqiL5T8eCCwT4YHM5W+IwBuvsEn8ankA==", - "shasum": "e47862f9e71fc278f953fbe04b2d45717c76df9a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.9.tgz", - "fileCount": 282, - "unpackedSize": 2951036, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+LT2CRA9TVsSAnZWagAAbg8P/22Ra72Ctezr8S0MbbgM\nt/TCA5FDdhwSkhfpytuQmY+Tm80B91lpnwIwBBFtiE8JmSwIV8fNXFKrGXFX\nWF4ShFFKxgskYlQO4Y27/eALvnFe+aV7GB2v1Ipjmv16qjPAR5yClsuT7DlR\naUV9gmIRAegwojdNV+iKeXRFgA8Tm2D4836ocC7jbct/oS+ELvOnO2vWq1Z/\nCly2UpHxspJ8Bg85Ho82FUoJKb0h9mZzjdVaqVOt957si3azZFHclmtVvslh\naCF8vbkVcexpSJ6hYq6fZ4R6jV7F8pfvmSLHhbdcv+KmtuATEXTMlx+ufcUI\nIQ5VMHsy6exQMVcWngYFWT5XUCBOLUMOYTnpnoEMPPIUGBfG/ewjbBFhRvDg\nLce1SPhZE4MzEjo+dQQ/gqtnpehNLCJrWwqqAynU6zpVlyPZ3pF1vFt7gboX\n3b2qRnuuhvySXj6n7dKvuKxzd0UImO/pcRbCb+YFL7ghf6fPi5UJtIvkN5me\ncwlJ7l6/ZS9LzIRGO4jGyVqFz39Xx2jbqlkxgc1w1JoZl1jk1BrqJITOs739\nbTxQ5nQqXNBH+lRa9EJH8dXtY46NAHX+loyiLOByOZMXBd3urWrVZG0oeZrX\nDmV1v/ANJ8JNALIQU52Mfh7ZqoyflKKMT+8+GCr43SWXVin7IjVQAwXDdato\nqiCG\r\n=IIRR\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.9_1526248693288_0.3041121457464149" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.10": { - "name": "verdaccio", - "version": "3.0.0-beta.10", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.8.3", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "089b7895b132c825bca21557f426976d71fff041", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.10", - "_npmVersion": "6.0.1", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-KyMlfQoryqT6OkawECj4VZ/Q8F7CVArQyFpCPVdtXUzAmdGjSIB9SSQkChiEZcEblcim8Y3nnmoGqp2qTUYt2w==", - "shasum": "40be1c27b09aef4fb5abb52118b2efcec7ddbc97", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.10.tgz", - "fileCount": 58, - "unpackedSize": 1811640, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa+ei1CRA9TVsSAnZWagAAN+cP/0J2gQTgwzk6MF0B2SR2\nmo5RMtiKmF73E4Ys7qHDCw/cW0F9eB5nFrvhLiGOQdSoM1L8ade36iQfeErx\nuc4y9X08bqpBHTDwy0bnaiNjq0jxMQiyVSeZ28gng7HgK95Ren+uhntx27Yp\nWexCT5gKEG0A1IAZkZz65ARAvb8rr1xvCqoABG4btrVbq0fciZb7W6I12uJj\nKXT3H2FBZbEPrTgxw/ZjV5rgWc0aQXSThb4ftrGufV2s+8CZISSZKNUnTdhU\nOxroi/EsHY282l58zyt7zbDOWUKscNdmLKGwHRXmn5x/V2SEvagZpEHrgFMI\nzgcunff7Imqy3GRBSjpn6ZAfP33atv9tSsdVlkxn1qUsUGsd9N0MQAD9MHZW\nwuQnf98JTKx0r1kPQbHMRTVppz2W3xcAWFOcHcN1dGCOYfSSulHYhfTNeUOm\nDKXtK5F03FBilprc8ALJqJUeCuWN5Ur9V3APARsbpTKxIADFKiO12b6YGic3\n+GZwwRwnk7i6b/CT+Yj9a+88tY15QkV0w7caEvuXWRQ61gjMO5zKucym9Eb2\n8W6c8MtQ8Pmd59nkyyGufnIqVfbuSm3DFkShSIVVZ0UHeFvBr3IMaQ7ULdF8\n5VyvK08NTpkUxCSNV3DBAdiLBrNElH7Kl0EiN4nFpd6jsBqu2C7CcYBa+99P\nLwV8\r\n=DYLw\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.10_1526327476372_0.06339780740344736" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.11": { - "name": "verdaccio", - "version": "3.0.0-beta.11", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.8.3", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "456f4b958e44ce4d396300d59a3555df3a5f5ba1", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.11", - "_npmVersion": "6.0.1", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-8e3NTROQiIdWMmdVtTkkPX7U3ua20MQ3BSzXAqHnC1lA1n6QsR5hZxR104xvfwVY1lL9IDn3z8XU8Lfou1CWuA==", - "shasum": "bd6e13e471ba05df52acd4b3ce3318d7d0a9da73", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.11.tgz", - "fileCount": 58, - "unpackedSize": 1811630, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbAS0FCRA9TVsSAnZWagAAAToP/iGg3BNtZVmO+jyyCNJN\nr7ICh6CNCGgOgD+MH9kD9OvG6I71ODTP6ge4LsWbQPe9Oh7sOhFwmAc3OnKH\n7ZzME+HFwMVG2VS4+NgFQzu6GWKAqb6VRqgFP59ACxajs7IO0WxCSNfOPqz7\n8MVO3YwPEqc4zYm5hlhO/ehi45KmRnC3l6pJRIB1cVM+Qbe8AvJvmWZ/SS+F\n4aFAqOenqZ3+X8NSPUTF4E4iGyeU5+3fwJ1tVsqjrnYXda2SiioRAUGO6Hvs\nJiclfwMjmgUkwYTOK1Q9oyxaNKIiziBBqdNFUt6WLSYBnSawL15w8ak/ITUA\nvH1JsQ8uCiDaGcWaFxXQYHDCDgqXh8xdjvlqJY3gZo1l8vCQtpAkz6Aem2mR\n7EBJ/Poqomm5+yMbcoGQWVLtYGfZKC3/g3jckvpQO70I5KWqg32/AqIdI6Wt\nmAFy3TnMixDGWe0CCOLV3yELvt7+tvmEMCkws6s/augik9Htuujk/nrIF5S7\nJf9jd2ywB/lNk/ad5OA+0wtXE5u/aiuQjLEKl3FTM7g8o+zUGh4GQD5sNhR6\nvY85mc1FRswE74RQVFdOSuv8ojhlAtget+X9NJGhooDOdUHqZnJ3WkE+7DbX\nP2doQGI8gV2fzPotxTjX5zpYzY/XxdEEz+17n9YZhiihgWZPGomiWPRW6RYg\n6JoC\r\n=0cYl\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.11_1526803716388_0.03956702430920278" - }, - "_hasShrinkwrap": false - }, - "3.0.0-beta.12": { - "name": "verdaccio", - "version": "3.0.0-beta.12", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.8.3", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "lozieraj@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "c35469e0b2daf2d5f09d6cdbfcad28cbf7021f31", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0-beta.12", - "_npmVersion": "6.0.1", - "_nodeVersion": "10.1.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-EQFolkRIa0NiKgsQeimVzEZ0hkaiVo3r22vdbmtVk+yMddCJTz+dkCjKpbV+jVDwlvPi9WI6LTheVMPG3CmK9g==", - "shasum": "3f2f4a8ef36189a01246357bbed2d3c066adb5b4", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.12.tgz", - "fileCount": 58, - "unpackedSize": 1814068, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBcohCRA9TVsSAnZWagAAsjAQAIxXHZ2xO85hzYGF9Nd3\nSgp3+KZ1d0H5trL3TzH+7Lqdp5NsP7pAXvoEc9MueE63ntHHvVEQanL9kfi1\nTIehb0qN4T0khTTFNacqeTdyOIP/Fw5lzIVPVvj3RdfuSL06O3KKAY6f7dUV\nG5zM79t2l/rDm1YvHPslTRdLdMKQ8CId5GlEPT0fbQvs5AelWY/whTRZ+Hzv\n3F3mKxkkr7onpib38bN3IFZBhyJE93rveMcY5mOSu3oVyABNaQCRakG4ezUO\nlJONpSaoevzU1y/rlU7YAPC6dJMcipSqF6mJEPvsRZG5UpYkrULaiCLvySSc\nt5G829/MNaPgl/qC2XMmT30MaaJxT/4G3zC7pwO847XY1CU3hiZlvvypalrM\nJtCqmNjVIfDejXg56It1meM6F0NVfiilx05l/JuKxJjbuTCWLUWCiRwyGIH/\nYk2nflSohFJLnnxmHOhyIPkpmRDZ+JH+JCpjySmLzZMOXVxZq7dL1AThN7mK\nFezTJ+enG3UaBq5/Ps9wPPzt2RBO/HaHOdoeK25vdUNop78MVPokqZbAPS0k\n8SmwLjfMhdFPrTyRU5iXZiYamfq2oq8gd0VwTmoRmNVY4PiUW0vHvd4VXh0v\nk3pQnS5slOqNwShIAfG66EHY08jOFSChUi7zFLQzeja9gjxbXpG6q1Kq4M45\ngx0I\r\n=XzQ8\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0-beta.12_1527106079943_0.7448555809934494" - }, - "_hasShrinkwrap": false - }, - "3.0.0": { - "name": "verdaccio", - "version": "3.0.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.8.3", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "bd665ad999f47c18deb2f468b2644cb0a6877110", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.0", - "_npmVersion": "6.0.1", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-nKQHpjylzbAUqmpkqgCpok/GiBMyIY38ymF+Y8VV7w26Ra7EYxcjkFvsFK2goZYWSughkfSsHXyzy64FJuFReg==", - "shasum": "93a4ee9f6ef68040e6976ff09d6e3022ba4f43d5", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0.tgz", - "fileCount": 59, - "unpackedSize": 1806451, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDx1rCRA9TVsSAnZWagAAfSQP/0+Yy1h0PTlQd6DBOc4m\nIdcTK+UwnfqWpXCAznfMZIHJWnraxMAAtSuwdC6RtT0Y0VFFAyMs4UP6usw5\nBiJl2FoQl+Gt5ZqJgJ5MuSa/wAdLZUwulsE1dnAaLCoSI3OMQo0J6DO+vLnu\ntnHWaFi2rpC/mTPIGqOV96VZ5cQHnmzjMoDOG1Oqhr0oKaBKUf7z7Yz/UzSX\nkKF4TQZcBQ6IJxW5l+Q5suXtLM94TfmNHZ1UuQ1QImlhUH7gUWhdw70WqGaG\n0Jqr7aMtj46N+9oXeevJrPSiAA0mqwyN+o32/E6bTqR0FtUayrzJNF/R6nG/\nHcY0DkNpQeM4oLNhgHKUN03hBCXC/T8ryOsvv5D1ZRnz+umOc6sct86PpRxs\nBHPuhO+3bAfOGzXXItenpzenRiMe4ymsc7nmuGFKy4gPUKXJBf2KLQRwMwuI\nVXkADBdHAfQXzGEQyh352co2MFm4sw0VaE5OBCH8aym9q72qpiR7fng+b9Q8\nSbz0REZ3JBcB41yD4Gu1Pcm+RKIFjJ36a4X3OfKh4FehWdz7DTvOiu9xddu3\nMz+ztCeA24HkSUBLwVn0njJyh40dV6fyr/pksr+XEceKDPEMuaq2f1rciVvX\nLy3txGsnjTZO2VPCl2HOJLrsXsKSxs0M56FFXhppx8+H0VrK9/lp7K0YE0Tw\nzjp4\r\n=W9kD\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.0_1527717226896_0.8360757324920225" - }, - "_hasShrinkwrap": false - }, - "3.0.1": { - "name": "verdaccio", - "version": "3.0.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.8.3", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "145355760e2e36b2a03d2263f8d3bc1b0270925c", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.1", - "_npmVersion": "6.0.1", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-MZO6tpZsbkif+hvqh2jyiG9opU12qfu5RghVcUaCKgxMVJjV1WUf9oLMBYs0aET/S2mV1rLKL91TCID3YjK/qg==", - "shasum": "ac7d5da8429f75df1ba0495ea5c3937dcc939977", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.1.tgz", - "fileCount": 59, - "unpackedSize": 1806711, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbD6JNCRA9TVsSAnZWagAAmrcP+wZv7NGQB4ssQQqxx6jn\n3kptWZwmP6o3i8kovBQuSjfCJ5fY5jCjeHvElekjNZE2BCXqHdGXqbJdSJWW\nd8Eh7MtDTXzgyemFPvrsDJKDklF/uLbpK1/iz5R9seuK2Nwfwj0uvQ+ezefC\nduJFe2zWkvt861+owzUBVt+sczUMEtm1OGDfeQ29BOJGnh6AwqVqKNlCi1vL\n+L1ef12vAGmq4adQ2ia7MvZIQa1XnXlPb0xsorY+zXjTYHRM9wbMAsIUEGcw\nQU0mmOLrmIL0cfu+hioNcW4nGzgGRL7+S045x3mbvjA0wMVMVBVfOfWIVil2\npkI7zKreFo5MdGJOjDYjwpiAFcaP2Ej7PG4myLHaNtf7PqE3V4DNCpXleB2c\nDvGjDTaVsIls+891VkGxXvwlfawfuaDQ7qfzTpf/yESpY/itu+Tyk+2r2ecV\nznNx/GcZvapWtMYnJwwmrUnqGM7zSn9l+leAxuv8kalHkhHg8EVtNgQYEyiS\n7059iTODDwcNEothMMCJEkSbMdYNdF/EOt+hiWg8c1at8IbdnICM8wSxhXSc\nOzN6k7As8Aujk64r6d+Le3fe3iuyZqkekgv0xIuD+mxBLLj8e/DMA1qnMI3k\nh2Wy24yXqQC+0ApWaMXo3W0mmm23hhPoNUbTeaVsCsRnmmM8e2r/kGKtmQxW\nmUFZ\r\n=gOqX\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.1_1527751243406_0.4004223920188046" - }, - "_hasShrinkwrap": false - }, - "3.0.2": { - "name": "verdaccio", - "version": "3.0.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.0.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.8.3", - "webpack-cli": "2.0.15", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "9d65ea4e442dd983a1acac91e585f9fe07674416", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.0.2", - "_npmVersion": "6.0.1", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-cw5WaBUvhKnK4XWIGwWhFKcUbV9hYjfpBbTk9keOx5BH+0nv8jhL4H6FPhme8TbitB6Sum0R2ApSwlCMKiF78w==", - "shasum": "f9d81e2db637e03a8d75a43252157559cbd5fc20", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.2.tgz", - "fileCount": 59, - "unpackedSize": 1807014, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbD7gqCRA9TVsSAnZWagAAElgQAIPGsCe1RGJmGMutnJGk\nb55dRvM+em/wL2lwVsOqeRm4+fIfwy4oaZurFFiFNlO73xzMSeyHMdKm1zSp\nmgRWDj4Frl8oMK+QTcXAbsNnDAygbR09zmgdp0gGpiVbEWmxR2PRSMVqbP6f\nVKl21XmmUJtiHV3bw4aET2qjxdXThDZHL6vQ0jynDYz4glkc1VG54soPB0F/\nsq8OfYUKw4S1Wtw3boJfR/tvznKqXEn7Pz+Qkn2QKpNV+os4QKBQhwSIaeOa\nVPK1YXfMl7VJjzQ5xoCf6cqngoA18xrIq8IO1PCrGCIjeEornFiCt0vQql7u\nON46vdThvYhV5aTqXa8qFuVzf/IjkoHDegEd5N8HtIFR4Z7Mh3NGlyZEC4bC\nTJ+L3htQi9OVmwLXA7dmFac+b6y1P7gNBNTomQaeQBm3Ewyq0f6buwgSDo8g\nGBSX/C31zf7a0Ft6k8rmbZ3hbfoODZdrKnRWYYLF45QyiUD0jMwCBTLcRDp6\ndQQbcCXx+oK9eRConI4vv1zfUSQnuTWigCj+Lcg42duu9FXFMrQNUEw/4HCc\nz0emVOL44i8slyj78HQu3RGHJF8VOk79Q57WK/BaZUeLM2LxpDCq1o+hgKGQ\n0kqOKiY7Nhg9yTvOcQx0AAafMq03hKNPGpz+th3OUntNq5zB9ZZ0fJ2PtT1+\nlc/D\r\n=57FW\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.0.2_1527756841013_0.2049855678608805" - }, - "_hasShrinkwrap": false - }, - "3.1.0": { - "name": "verdaccio", - "version": "3.1.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.10.2", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.0.1", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "28239df877e6768b01e2954fac8f9dacb4b8336e", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.1.0", - "_npmVersion": "6.1.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-InhScKCAbR5M2lACodIAEnyi+s9R5qZjCYpbn3KrQCulyZh/03/BDeNOK7Vrd0OZ+GfJFtcscxtMg6PRg2lkvQ==", - "shasum": "b85849f91bc5d135fcacda8b7aaed80145fa3b10", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.1.0.tgz", - "fileCount": 71, - "unpackedSize": 1739850, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFv7pCRA9TVsSAnZWagAAYPEQAJyllqXkO3yhpSG5x7cE\nWfCdRInMv6PTqzTcZyEqp80EnBIsY/0xbY7Uoofo3J37cPgFwWyguyGIQxS9\nOmGAwDdcst8nDgZFWLhplAm9y9lhMoqfrS9nzFHkk4jG18+81gyYCzR1ZTXr\ncJf7iPeutRPIFAGBGVb3516ex50XdG0xdV/MbdAH7roaZCpt+Jr6v0X81rUv\ny0bz/u566Mpfm7rHL6g4wz3aazrQf7BGf+oLGGncFV4lVQfpVk+x6zIEi3R8\nudogaIkzodoTjG5e3UId9EKb1F4t+23yG72JGLndL/IEnzF4hS/chiu4TUj7\n8Selbg/l4inTM9jJ5uYNbDx3aPTbSk80aXyk3O8pMM24NZhPOhY1PqIY2vhw\nWqh1y/LfWCqk7vSPyZ3EeJkwDtMaRNIsSZ1Ws+DijUagZLBWCBKbTbOC4aWQ\nC3qy55FjAiPju+OC3OR8L2OASUDCR+N0KE+NkF3EBdv9bd94sEUDaxe8/SPX\nsQoSM35a6ND7gdL1RXJ2WYRE0xKFoSSim3MXbaIAkGjmDbt/5bjWZKM1Sr7+\nfx6IwwbJDcBFzmU3xRmQnyDAyzctIY8NsVm2mlifXro/C47aW2ZQ23Acu+7B\nLfJ8fesvpj6twYY/PXa7zEkhDOcXReWs+dpxDjDeIlagB2eS/n4s7EOfMGFh\njIBQ\r\n=BdN4\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.1.0_1528233703540_0.9402485237785689" - }, - "_hasShrinkwrap": false - }, - "3.1.1": { - "name": "verdaccio", - "version": "3.1.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.0.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "2.1.1", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.10.2", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.0.1", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "3060ff8280df49835c62e3681a6bd1140f4b1db3", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.1.1", - "_npmVersion": "6.1.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-c1XUghepWOsSGjGY2NQhQm0Npu6oc8QncS63iV9uye5MPoJsZ6w6VM5f5KKWJFLvcaYEuIlwX4SlZzcfTKY+ow==", - "shasum": "00fc2ff394262c83f8d7729ed3793f6f4b143530", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.1.1.tgz", - "fileCount": 71, - "unpackedSize": 1740655, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGMitCRA9TVsSAnZWagAANRIP+wd1hHF1KPptlGwzaOkT\nDvlnZyDM4hXfuHJ+YnW+/63SxFNudG2vJZcImFoqDnRO9nUlmKVvu06skITn\n/jM7y5j8A8K26ZmuXac9Avgc6bHpnmLGCj7RQMLAzzrsJeTIKoqFSDUhrek9\ncLqdGr/g/wMFLxUej1TnpRiKl+pkA03iS8scLmPXSWqUh94oJjTsLC+WHDea\nBuW6iUqJcaN3ycI1xBaiMleb80mU0DbS41Z77WUFNk6+EmR+3vVTpEG+02B+\nCGeTdVXDNCJuGDu580+rSW0MTkOXnVygLoLyKyg4ww6ih6jNeocszOKDB+F7\nTb+3SbkFq1doPvp3Rx/rAi/wpirwD6sRXWtnWmFJ+vGb0Cs38edXcZmtGeSu\nhu1moMdeWKPHMcefRW5RiUxoeHwjqA/dlCkm8FZGX1vyzsDp2I96ZklyxrEv\nr011+NldwdsNiUNLI6nwv2NGzUDQfRL+h3feDOdBZi/EOTJpj8cpLiTPrdfl\n1dUkNlK66Qy93YyXDB4Giq2yY1X1VeNijaGVKAkYkQy486d1iJJ1uvcv3gfR\nE8pl3Tv1JL8+U3RiX44j4mAJcDuO191r1RD9c3lge3wk8hyGXOAdYQfw7irp\n5dsO5fuO/5KKhFEG1YO0pRFyIEWREfKXP1zZ04qYkuzeCxPBnOexMFYOSh++\nkhmA\r\n=jB7O\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.1.1_1528350891763_0.5138431854341154" - }, - "_hasShrinkwrap": false - }, - "3.1.2": { - "name": "verdaccio", - "version": "3.1.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.2", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "3.0.0", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.10.2", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.0.1", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "0923c4419a4fccdae30f7f14e5214e6c4283e27d", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.1.2", - "_npmVersion": "6.1.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-XgRptCZjCQDhMLE30oMadx0AdYSI0lPIgwU8pPdhF1MKW7PXxZ6UuKH8MWAMxOogtbZbpuTU3WRLsvs76Vw6rw==", - "shasum": "0c00b006b77077009fbd12347c9b5affaf5781d5", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.1.2.tgz", - "fileCount": 72, - "unpackedSize": 1739094, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHr2CCRA9TVsSAnZWagAAObkP/32DMOXNw4BAm8rWlPdY\nlqB1pc/e3AYv6rOtViOjCHZo/avbQNu5SevohIjvTWPYM+tn+seUdXLIH4D4\nn5y5mAnntIE/FEjMoxcIbNO3GQsV0ljHhAYxWcw5Dtk08fuXexBxcGA9Wkl4\n/h+uWEauydqII3BVpqEp0cJWDzms6+o7WcgaFrDYxZ8YwHxoNMrF/i95hU2u\nT8rEmry6fn2dWJYM/wfyxuyWzYHNja53eV+YPrBrykdM2UswPkg29Nktyhzu\neNGIUdp5vts7l84g5D9nt85O65TzL9dKEzLE9cv/nThYcyDhFL+zN7ReldlB\nmIdi482yCJlZ98hH8mxXjI6aOtSu0V1gRgpNiHMybvNAeVgAsoPm3faN9mXv\nwTKBeQ2fmWefHkwQjZJhlaKIV+9ehmZwiNSwG7n5fEtbt4ftt3MURiZ7UYVx\nHyGHqjMoDKtt9+V8Nthp+dZ96+TWHOuDLKjdz4opz2SlbQHx1yetRwQG4tHO\n7tLkUjAfD4PYDl+JtTx99dPNcm0XdPYlIcT4Ho4SRIAlcq+jteyGigsQHdv4\nab15dVpinv4tmiKanKZ5cDKYLorC3mEAXYACYEZJKDKMD8SFnNx70paxW+5Z\nsYmDNjTCaRy6r/b21P/LA7lfonFDFtrtUs7KbzIouKy1TuOctWFBPj8+8j9H\npda2\r\n=eKJp\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.1.2_1528741249032_0.20954986759894245" - }, - "_hasShrinkwrap": false - }, - "3.2.0": { - "name": "verdaccio", - "version": "3.2.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.2", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.85.0", - "semver": "5.5.0", - "verdaccio-audit": "0.1.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@commitlint/travis-cli": "6.1.3", - "@verdaccio/types": "3.0.0", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "22.4.3", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "4.18.2", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.46.1", - "eslint-plugin-import": "2.9.0", - "eslint-plugin-jest": "21.14.0", - "eslint-plugin-react": "7.7.0", - "file-loader": "1.1.11", - "flow-bin": "0.69.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "22.4.3", - "jest-environment-jsdom": "22.4.3", - "jest-environment-jsdom-global": "1.0.3", - "jest-environment-node": "22.4.3", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.10.2", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.0.1", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --maxWorkers 2", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest '(/test/unit.*\\.spec|/test/webui/.*\\.spec)\\.js' --maxWorkers 2", - "test:func": "cross-env NODE_ENV=test BABEL_ENV=test jest '(/test/functional.*\\.func)\\.js' --maxWorkers 2", - "test:e2e": "cross-env BABEL_ENV=testE2E jest --config ./jest.e2e.config.js --maxWorkers 2", - "test:all": "npm run test && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "07eece71acf1aa604a75c810ca1954d60396aad1", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.2.0", - "_npmVersion": "6.1.0", - "_nodeVersion": "9.9.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-ZObdhhMT10mY30I0GNPMZNrS5Cog7ZvceNrmrthRUegYGOxn1FyWxcoYJRd/JwimDGKKoscSI+dk6bgsvfBZ3A==", - "shasum": "4202e0f7068524fcf363f1feb50ae4066666f29a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.2.0.tgz", - "fileCount": 72, - "unpackedSize": 1746866, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbIz+1CRA9TVsSAnZWagAALqAQAIXvkmWTmhO5HD7zTfC9\nkIXBwTUQ6OImjhAvt6gsWHlx8fiDNBUBZ8uxrg5Lpm6YLAO8lbKK23rKMnwN\n71gHiDNj9Y97lyOIRrHe0/AVEY7MOOIivIBxxtYB/mxugdMRYG9xzM26uo/k\ngiybcqDELJt+UIVyB7o3+5/wgmqBU/yUXxxuZZo1f+quhlB+Bk07Fp2QS6P6\nOiayK++33544Kt50ltnJlb+Xy84/VF5Ub0RMtblUBR+UhpNPYXudZMFRRckS\nOCPmuBB+gZaRwIiJrijzek180Rlbc2yw6pu8iyAEzqXcqpGX0c5T4S1IQU6p\n0uFz3HM2OQm8prpgKGb/jIcAaBZZ7US9it9k1Qhkz5xeCy8etrdW+dmGZt7K\nD3pFUz5nFjiQSZ8ldz8rNXlhciNxjOvzjedywL9hdYjuKuwfebMmixkgiBNF\nh0LHBdbqDeqRxLH8A/GhG51A0rx6lLj/Ei1PMijCzno1I+nWn20R/1fmku8n\n4LnQxLKmNVzHmD9+SkwUDjcRDDBjYHhTcHDPKkww0KfLN/4XNjfr3Xt7gYOC\naNPszqNWJ2p8vDjSygRJKEfFIbqrB8ihhhdcT0CCh3offqOl3XzZpGMqeZPv\niTj8Zj9iRaTJDt8LS712ml6+Tyi28ESyP8Bu9VnusxBpcBr1K91QjQiKHo0n\nMmti\r\n=3D/q\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.2.0_1529036723909_0.9962992282625163" - }, - "_hasShrinkwrap": false - }, - "3.3.0": { - "name": "verdaccio", - "version": "3.3.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "asciidoctor.js": "1.5.6", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "23.2.0", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.0.1", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.49.3", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.17.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.76.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.2.0", - "jest-environment-jsdom": "23.2.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.2.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.10.2", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.0.1", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "ffd35c0a025b2eccc7514d43a5ec0a58c0eb9b3f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.3.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-FsjyZMPX4tywo594VKZtyhSiqo8/xc13k6FnClTw4HCljkwJfGIUFfkT4hE6huD1kNo+lvgtIglnMHHn5KledQ==", - "shasum": "bc114176aea8108b958ccfba81ced9a2799198bf", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.3.0.tgz", - "fileCount": 74, - "unpackedSize": 1764173, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVOd0CRA9TVsSAnZWagAA28oP+gJZgI0vjh0bVVdqAqOV\nzF5c3sJK5nhcsW9NH7xtGufxKFtXNjLd22bIEG6ih+O9pmXq+w/P+TP+puC6\nd+vsnC8wZIxh5IOjE0RAFflWf7A+rmyirIRax6n8pTMSj11ihFkpvO4dPzV/\ni5Eu280lWskavkH3Giuj06ZANtUPr1Rkxlio9Cx+WrIGPuZL2sgHjT/pVRDx\nBLsuIsedIGR3aUW+7z1E2MeUDVFoHlb5yfqYm+0D6k/pzTPMbUotasPMQifp\nPKGMEY01sslGjcoGZGKYlCk53V7BEyRYerA0QV0X5a+m8L/jckhvHlXNgEDJ\nfmS2+/8HoC2MmBfm8IYvCoEHQtVUPCW5nd+SxuXqHhjvhO3b4XfDbVmJwvRX\n2GshDdo+73sFYW/llQxvGtIZd2z76UcGsWnRqZUY9M7CjdrvuinOs+fsv+Cq\n6i/qIFdALxK5dWUkJpr7CVCHMMyx+C/zE0CrgGlL/mDSfbHf1wpZHZt+UNea\nq/bes/QAAFsi6fE+ce2erOThUpdXIACob2wU12e01/FBwyaA2mHKzQDUyS2Z\nDke0s8ue3BxA5iSZEWBjzHrV7KyGbikzqpWZW8V3jCluUnW103P2yjYQGEFv\nNay/MhG0erBlgwiWGqhzhIfVRzCCSS+fNGkHg2NBJAiWSWA1TnIOq+XowlYQ\n8rk5\r\n=YjDW\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.3.0_1532290932281_0.6458243750982251" - }, - "_hasShrinkwrap": false - }, - "3.4.0": { - "name": "verdaccio", - "version": "3.4.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "asciidoctor.js": "1.5.6", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "23.2.0", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.0.1", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.49.3", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.17.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.76.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.2.0", - "jest-environment-jsdom": "23.2.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.2.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.10.2", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.0.1", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "8627aac21dca51c20569c34e31cfdbc209373271", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.4.0", - "_npmVersion": "6.0.1", - "_nodeVersion": "10.1.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-9eVRFFMNbPt/qMxL5fier+5+ftLD6tphVLjnKY0UqUt7l+3axtD+rj0tjI9eEBfa3LEZ3FCctqkubfxZUQmOrA==", - "shasum": "a8f722dbb86492f9a4877c7b33413e0e8ecc4f56", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.4.0.tgz", - "fileCount": 75, - "unpackedSize": 1792816, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWvt0CRA9TVsSAnZWagAALiEQAJkHdfSMCVtVqEP67jgi\nALX2V+LCPReJ40XjNDu0P02+sD4GI1P58eFMWg9xpiezLo9IsM+tGLn6gRy5\nq7OMypvlt+UhGV917SLS8jWPETPtANHBCWCiDBJDqx35rIsIM0JfDMQJDnTk\ncKW3gwoQLCbO0GQa8HwdhADmMfAeISj6MADBa9PHDiIPHMW16MgdvAt6u+Eu\nYykXptWCqoFGrKjOTkIAre2stwbjhintQ5PPTD3gAB0E4SkdLE8iZSgrY+o0\nwQlfLQcID0WF0BFbEAswECCJT0Y6V0zV+FuBc34MxOxehcqIJSs6DA/lx916\nP7HWtR6ueecAmTqqXRTlcXumLraFVJwXTLh4Z3BW++4bh0xzIQpGovGdOK8M\noCfC/lgTAMiU+tAvF6nu9WMQeZkeuRZs/n1iGX608JOksQFCDcqliEjX7WN+\nqL91X939RkMWyJwtGJ9zDsWxW6/k7Wq6HoBut91QHxxNq2VAPHaN8Guih7wF\nKgKM+gOuSFi/KCNK4bAkkc8m+XDx2v/0X/FwRa5cNqxZ1+/Hz4oWSnlrsikA\nlk7hTatP+xP4mOgLz72AEo4mQ8vbyHP5e2QsiJItN+BLpCDKwn+xq7rqt5ku\neR9LsXwfhuEezTImTZTPhcVCdeMEkjpaYhxiaux/V1RRq5e1cjX28oupWwVh\n2CWC\r\n=zWGa\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.4.0_1532689268108_0.16403310392256865" - }, - "_hasShrinkwrap": false - }, - "3.4.1": { - "name": "verdaccio", - "version": "3.4.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.2", - "asciidoctor.js": "1.5.6", - "async": "2.6.0", - "body-parser": "1.18.2", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.15.0", - "compression": "1.7.2", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.2", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.11.0", - "jsonwebtoken": "8.2.1", - "lockfile": "1.0.3", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.3.17", - "mime": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "6.1.3", - "@commitlint/config-conventional": "6.1.3", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "8.2.2", - "babel-jest": "23.2.0", - "babel-loader": "7.1.4", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.6.1", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "codecov": "3.0.2", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.0.1", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.0.0", - "eslint-plugin-babel": "4.1.2", - "eslint-plugin-flowtype": "2.49.3", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.17.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.76.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.2.0", - "jest-environment-jsdom": "23.2.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.2.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.0", - "node-mocks-http": "1.6.7", - "node-sass": "4.9.0", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "4.0.1", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.3.0", - "style-loader": "0.20.3", - "stylelint": "9.1.1", - "stylelint-config-recommended-scss": "3.1.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.4", - "supertest": "3.0.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.1", - "webpack": "4.10.2", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.0.1", - "webpack-dev-server": "3.1.4", - "webpack-merge": "4.1.2", - "whatwg-fetch": "2.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "da2a8ff5efddd973b62e44145987dcf3f7bc6351", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.4.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-+1FHJXpoCleQbk8PDOp7UZsgJ/KsCPSsQrsKWHC5Jif/9yQFsn6/bD6j2DAwFgI3Y+Ia3sRj0Q7nNrU7FvfSIw==", - "shasum": "8de25e2c13f4f0b8adab7bfb4c973297c9d15898", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.4.1.tgz", - "fileCount": 74, - "unpackedSize": 1790997, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbW40cCRA9TVsSAnZWagAAKyUP/3fL6xeNXg/PvHtq076v\ndDeBYQKHDNUMSsaVg10/oBNS2FwpIZeNIbHZTmyh1mG5VQthgughASikTVUC\ntAdnxA3Xx+bzjTGDpjWG/l70Y0sideeVQmWl+CQeR9ZgHYOtxJNjE10hUxh8\ninazigMkPux3LapFAIAGPhetVbJFWK14xUtNIrqKMEd44FZJxGyJgEowgm1P\n8/XmVPUJ+KVWrqoCPKiViDdNt7cO17sqInvw7l++KGvSNoXjWmbHjJVwsMxe\n+Z3ljzNXJNTBzdd0qykk8q6DmrX9uXmRWTED1tFRCg6NSNHTmTIq1xW845J4\nJaY/bmcOTdbRAIYVKigbbPY+mPlcqOpTBajkk4zsvlRg1TnhFbacKXPDSVZ7\nnfrA8lKcKAUc2D76nqJ0h+GtTirtg0dZrfO96XwSOwnLxI6WAeqAqFZKTeJn\n++n4D+qVZ4zlUqYb0WrynkXSsxwyzy8LVLWfVpLxiCfh0PxN5xfCQYAiTy1c\nJTyjm+1TlWInD4bEApNGSoWV1lfH4TDilEYTr7njzS82g4V+12rkCtELNf/2\nwWw3wCd8hr4SE28wGGmRMR66+4wWDZlg9Xet0UuHIkIqu4k+6G1tiME56CET\nFwMc/YoLCs/n6O3q4Aa/xoGMC4DR4WDRVyhiCTBgxbKNMSzpuLkmMDXlCU/j\ntrWF\r\n=et2l\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.4.1_1532726556416_0.9670568442928644" - }, - "_hasShrinkwrap": false - }, - "3.5.0": { - "name": "verdaccio", - "version": "3.5.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "asciidoctor.js": "1.5.6", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "cross-env": "5.1.4", - "codecov": "3.0.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "8a0e8ab32dafd8f15bd46b074b8edad05c8db95a", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.5.0", - "_npmVersion": "6.0.1", - "_nodeVersion": "10.1.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-MoybYP9egL5KcuhtpKT5K78zuJRf+/UhRY1vwQPEjrzmvruVSJe5YuogLI551U1lYrn2R8dsbw1667qmkte2hw==", - "shasum": "efaf91153c36e3173f7d1a668ad24c92f4969cc9", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.5.0.tgz", - "fileCount": 75, - "unpackedSize": 1834965, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYpn5CRA9TVsSAnZWagAA170P/1d3wsxk2JL/af9e76uV\nzy+okwViPp89M+9P17HOUzbpBEt9aMN2LiuNhWTO1cxZnmJYNk/0ExFcwkNY\nobN4xkItMaVfZcatOSwplXOvEyigdpK6vLRcq9v/HdOiNBkcnK67WjT9UQ9G\nJEzB153EpFD2a4P9aG3DytUcpWCdIpOEvvurf1qvvlWWuE1OoMWJmizAtvO5\n/qOvCFQnToo/8uNcnkogOBUvRD30KvnO4g2ZcD2MzsiTNgIRCE1v/p23grEN\nGn2+Tn89R08Rljy8ZKVBtk4VA2/rLBw+o+yvfbOICQchfiHlsQIs32hDBBDe\nD2aVHpYczi2G/dOKwOle3hyMz5F6I1wUZCKf0ToiTrcXEx08ZBkbiQMvln6n\n/tuqyBgOcSoYzYLoYbM6gphEpxyTaMtyGktaE8vUd0QFfdqsIqRbf7IMQrZs\nGhSP1OIvngBKbZD9t1hMfZBAAs71HQCTXg9FznyT4Js6A3N8v2+v1+//hYPt\njsyeJcNWZ76yt3P2dSseJngYqwtRDlx1FWkpjS1va5GxhB3/CEv3SOJi+Wth\nba0/yiZAjsxY8byIXwzdfAX1X8oJlYO+ioVO8O5lGjtAzariPXKOypJX9pal\nmqpsmWH1U5umAE+TLkh+4YXMoaPFS6iLVx0p06Gh274L5E7tK/ydf+Kzxi97\njmj2\r\n=ZolG\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.5.0_1533188600700_0.28479876814374205" - }, - "_hasShrinkwrap": false - }, - "3.5.1": { - "name": "verdaccio", - "version": "3.5.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "asciidoctor.js": "1.5.6", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "cross-env": "5.1.4", - "codecov": "3.0.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "598251556b522b2148652fc40a7242824b61bb39", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.5.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-shCedQ4/vHOSFwMKlSq17RxaOxBH2umo+iPn6C67uolmlVrXx/TSQRpdGgt9L8WwJM5D81Yz5srWg5K9WW2rBw==", - "shasum": "0a82feebb10b55916fbbeb50ac7f031367daf3cd", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.5.1.tgz", - "fileCount": 74, - "unpackedSize": 1833025, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYpvOCRA9TVsSAnZWagAAO6AP/jY1qjSfItRuJ5w0sXuo\n6bzyY24DWFfrK1OMptvkodahWr/CHVPebcbIEUVOTf+ZUIqSWeoFdQJZCLY+\nuX0sMf3/SYBAuebqh6aXZ1YC2NdcJ+voD3G2OF3fLZNcjG76Y4JZxvqWiRGx\naKsmOcNpXjYQfE1wqz3PsKRKZZU636YdF9/mFq+HqmZe1n51dn4Xz6S6/+Zq\nRebrV8lzBRX47makXhlvtVVXPHxxZUxjRUquRBkzwUAXBmDo802s+qGz+9Xb\n9pFa+FGSEXVEF8loDJJ7F6ZynF1/EEjR7P9A8WH+MVwEW/i6Gx3vC4XEBMYW\nQZGr4GCbTlr6hE/QstlvHKxKrlfOBivBPWY29Js9QJVqUXZkpvIWBbhF4V4+\n4NNdG1vUblbcw9XKqRv+2OOVn7RkfEd0iKWd744i6tE1gI5BPVU9xowZY0g5\nFuVtgYpRRLIUcddkUN8vLqpGgVm08/59G3vSj49IlTVbKn4iatR32iFVL2VW\nFiVTvH55NW8S5M56YmAIdTEou1dnAF/PaPO1X9GT9vzHtCOLQEPs78ByFqao\nZuz933XubHIm0kkT1elw7eEbAHd0hhlGIGZFW43lu08kdolUsmsNXFOnfLdL\nlYd2vmIi4QD8CHhDGLRy6BoyANQEuKEqTSYwwnhmUBJcW65kZF6bPtoXdkCt\nmFm3\r\n=+P6X\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.5.1_1533189069805_0.07981028009922353" - }, - "_hasShrinkwrap": false - }, - "3.6.0": { - "name": "verdaccio", - "version": "3.6.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "asciidoctor.js": "1.5.6", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "cross-env": "5.1.4", - "codecov": "3.0.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "0ebdf1e93b206ee1fd8343829528c72fcc639f90", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.6.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-z7wGb8xcC8df7sDjms3YE0M85jx+q5MM1QE8bPYK3KOghbiw44raPZ7999DFmbDQZQbIAwtrqm+5FxD7ldOlgA==", - "shasum": "7e59a0bc808084b9828f105a1267c732d90ebdd8", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.6.0.tgz", - "fileCount": 74, - "unpackedSize": 1833684, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcV0ECRA9TVsSAnZWagAAopMP/i365MMlKGZgEr8sw20F\nAQU8QbgqoKuck/DJuS7IkU9a3WtFRaYH9vNgmHN+rL4W06qNs1rGPB1xAz5s\nRdCavK+y3jbIApGNHXMcUh991MsZsNYKf1wGwHjwNWYnmrn074gh3rpR9rrH\nZln/7EuXVaxKccvCuvNOnoG06NdQFQoL1qg9HyAtgE4D6OrJ3MzBWa0ohBp1\nRg9nUIC1c28BJHKZpn+AMT6/grMpRoLcxB8yazfFW/HnSGMLhdvC+YfCiTEd\nquH7QD2KzU3SuKY1OuKOsSbayBp9+6q4hAQnwbsVTmVO58/910lsYZDax/pE\n8D6q7+j2P1PzallmCPN0hIkykvUQP3kXss7xjjm1HiBHDNT2ZQhMvF3AMyYr\n0XpTmLYPHpa9WSpTI3x8B7WMFdMJVog73nyLMWhEYXoS5uCvkk1cBIxkbbea\nOiB7cjGXPzaDy3EAj66c2dDEhTbVi89EriJ53yoAqzrO0J/eAt6HsnhjC6e0\nbwUovwx9qnxaHXPsJF5XJAQdeQ24SDrC7Z5fh5uzikAT1Wlc9nne7Ay6O4yg\nFhVJpNm32q1g0aV94p9LyhFdapKnm3Pi2gph1AuD/6/Xq7hw8wduuz1tvLOY\nPSbaZKqaOBrOkhYcsdy5bfodAcQ1PWcJII9qLgiALaE2vff3TXfuAcNRxNed\nlRA7\r\n=KfUo\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.6.0_1534156036127_0.2736091318542775" - }, - "_hasShrinkwrap": false - }, - "3.7.0": { - "name": "verdaccio", - "version": "3.7.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "9e1d223904fd5b6cfadc60bdaec1c1fbb732a803", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.7.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-+6TGd0p5g4edeT+aF6+Lk9E+A0tXuGL+fn0mhfvpRlvsy1hEsV2ZuR2RhSus+eD45m3002ocr+DXF7hKcbizrQ==", - "shasum": "dc0fc21c16ce4a6e52974bef47d2c8c25d9d315a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.7.0.tgz", - "fileCount": 74, - "unpackedSize": 1842205, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgWxyCRA9TVsSAnZWagAAJwUQAIKmEzZHHJ8ddOLi5zV9\nHQYGR53a8DgOYlmLW+7vrayKmi5MT3mdf9CUYl8F55NGxtP4k3YLECuIhpLZ\nXk5M3LZ6nz27Lrblwq84lIl0iqaIYgxhL2oDi944KrGEYz4e87BLfFq3hwsB\np10nBcW3w7Ikw03FJSNwgflM0owtHx/7dFxFB74x3sWmYwKLw8DvM4gMaQ8m\nesFV46ruT2u3KKMt+N1zRSQet5LdEfblDneT/Qm0kVHS7hNYqAGFW6XonW8Z\n7zgTUGyihYmwTGnbRSLPB0z6wVqqL+f493ZSqQqISeDSDuaIuvj4AEyvlkv7\nKBy7pmUnG3YHO+R2FtVjS2JtbPCAvGP97banM5fcVB0eYAyeDDlbFVDPJqMg\nPLsd28ykKt+JEo3xfsTnXLZo8+0wMdCXJXxc6wk0s/akkP0hRXCQNYlCAeym\nwe6A78crTb+nsUlJOI1yChzPNaOTWjwvKnayPV6WROBEzp5uhWhN3fziBHuc\n2xhJFu43Hp/KnWXbZbquD26OmwZZPLsaZeGOe96pjVDAvlEHB/6RscZ5E5u2\n/Rba7Sm9GFFzpbVGmgAZ8EgME6bce3uySWqpTqF3SCoGqLKbu+c09DjNuSAw\nikDlqcTC6ahmh0F4vrOd6j0Jn/vprBGBkL0+dxHgLrZ1bBJxXclxbDOX1eea\ng2nq\r\n=FrTH\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.7.0_1535208561524_0.5901247334822881" - }, - "_hasShrinkwrap": false - }, - "3.7.1": { - "name": "verdaccio", - "version": "3.7.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "20dac14eeda65402e337b764915bb259f9d4dd8a", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.7.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-ylhKoI1YGQ6Xm3zQkfJLz1r2l3UZKCgVcStr9mgwLOVG7JsjHJur4w3NgFFqCk0Wb79EteMiw6RoSsv580+q0A==", - "shasum": "a2181fe1e093c3c7401c27acb77453029472f040", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.7.1.tgz", - "fileCount": 74, - "unpackedSize": 1842556, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhWdqCRA9TVsSAnZWagAAxz0P/2JpPIT+nJoc56lk7gMS\nGTgb7svP4/76dPmnD63ixKz1v0DXRhBJEobn9Vjjo9E5LyXEm17LaBBAuNKn\nVwzg7PWZv3cFZ7qgzx8eRUoy1ef8MwuiWc5I16OynCmoSnuyrOWKz8l+G6YQ\nhbKp0BfNrY9NEmrgzFEZ4sMS2vapxpHQ19tJA3Fk6ML1Rb5ZlnEg15UIPLFz\nqwYkfqdVnfpn5kVt+9hqBayjeizAjvDzUMEUf5xq0A8cpQUkLjZQBU8J+2nl\nWmxePn4OYhrqPpptektUZmobKFFu32JVcaG9NyBY9IeuQquIBVatLTOr/MjD\niz7zMwi26zSvtUWmKsQuk5OHzYTuSpVodmeqUvFoWs98n0Tc/4BMOt64loKl\nQMEVC8JBSbch0k1N9iqQjQkLN0Dksd50fevbnJsW6RZW58f9zTRwXWNBtWK+\nEmrs9WzG4nxfhYHztgLhS6u07O55wHPT5JOZyJAOX4Qk4+Imm2m5i7pMXBdO\nZQabunkOUc3ApR90V3PsJNMk38r7lAcVvzAolivr+a4ndEAWq7CH2mPiiZoL\nR7xoCVbUeC2yxL0Res6odhEoLDh92gYZR7Gp6V6CcjpL9cLOo4ts41++P9RB\nj9Y7TcFZuj/pP7R9NIij7t+K18NcYJtFh4DbFmRE7xgP2JkdMbQ31FtZaAo6\nsYoS\r\n=1iWH\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.7.1_1535469417470_0.34442437526972314" - }, - "_hasShrinkwrap": false - }, - "3.8.0": { - "name": "verdaccio", - "version": "3.8.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "7b1c7afa7eaac1e31be24f4a2ada57b8e67d4494", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.8.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-fiZR9mw56lJjESIiZk1hk/u4XTX2Yh1hNniDGsJVX2W7op+kKl9Q7K0BUNGCqImylAc03Pz4+WdYHkhpfD3wIA==", - "shasum": "a06f46d90c55b3df5a8102aee10c0f2f802eabc7", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.0.tgz", - "fileCount": 74, - "unpackedSize": 1844508, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkD1jCRA9TVsSAnZWagAADmsP/iyaDNXnytrtUIrnex4A\nIenWzDB5i/32J1wzGTtZC9RSm+FcE4VowpSrQnA8uJusqDYjv6l5vNJGcxuB\n96Qpt/itMpwArEiyPCfJ+8Ogl3pRPPoNnXFUwlBIylmAl4Y/ZL+UymZsVmj8\nP1moPv+ud1hyqN6dqPa8LWRhgZQ6i1Q12/Uavc+WrHYOEqom07WQwZbb/TIZ\nPe7Qvf1aoGqEA3UKf1Xqp9ga5BCAbYOulZkQBHp0q2LvQMSftZElEiRuVdqG\nEGa7eq/6cBWeSYf0Rladha2FNJ0XVT+qkQbEMqoY9cctufSoUao2NGQT2LfC\nMH0qQncqgNlNsQ1aAJ6r4v6yGQS7m9NIAoHWN6oriwb00InmKdJrHvsRfCwW\n6HPPgxILJV2h3gU/wRS4SnFtkpORx6ULNI39Rvn2r4+qQprc1pYVwtB2JP7O\nv7PVlCK/wbP5XPu6acxJ5IOpUiOb+g8lR77qZQKrSt/OSuqW2kP/30ccRJ++\n1A/ZxpGicJA36x7Hvl2So9O3pEq5fFS8z/+QT7fgL/2yFxo4a0kQJXbUBVEb\nGQFrmIRZ3a1JFt/EyC0tOBgmHjQgeL0ULgygdYluDN7ILts/mO7VZjfVUw2l\nLHBouEwCIJqNmUMzKvUVjjmd/yLGpvtpgo6CNMxxcO0o26XIn6LvBRdn+VFg\nlMoJ\r\n=xY2W\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.8.0_1536179553845_0.46511889127363304" - }, - "_hasShrinkwrap": false - }, - "3.8.1": { - "name": "verdaccio", - "version": "3.8.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "b374e67fc2581fe5956c81f7583259898044f993", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.8.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-fvYBoatochulO7U1RSyg8Sc39XjdcsNn2aOCvJDWKVbuH7kOsaP7sR0Q5cd2YY6ygowC8IcHxG+QY1a/FOVShg==", - "shasum": "9e34abda9abf3913082633aba34f9eef1cf45420", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.1.tgz", - "fileCount": 74, - "unpackedSize": 1844887, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJblg2hCRA9TVsSAnZWagAAAEAP/RyYq8PmK2vhMK0FsvJm\naUclquF2lm42OWpunqy/fq+fspNO79KrZRdYh63NfKZ+ocFSMRywiGhWZtTn\nCZo81bc1rVkmLUu9at0Fny6iu5+QZwg8OEljsf3RGhYLBkfKrFEo1IyMuwam\ne9nAwCfmNC8cb7tqIH3kRZaTVpPomNQyrT5V0xs0pD2VTdkj3Zdit4tDIKDV\nuWvBzVHW5nfI3VEHdCPhEg+WgvVvrYrMkmg3JZ+f5CIG0k5Qh7TmiwE3vk0v\n3r+RXGz4p2UZ9XmjYO4vScnJLfl0823kUsXpzH5sNzTA4xY6eKfKBBRfE/U+\nH8eFqEJiSto9MWMQ1SFbO0VQq9iz2P5VdSL6ol49Cqf1x0JMu1r4g3GUlQtV\n0F2uLFBfnBzVRZwy/qyJtG4uMYS+EIec7FqMrd8+ETVAvyP7XsE7u/GB1SCY\nwKIc6k19HOv5R9xMLXdapdXKNAGUZGV46P1XpW8ebgIgtlljlQ1lmRf+l+o9\nEiZ1skOIO9+59q9vditJ6jceiUag+Cvx3+BzOpXFoufnWrptoEIgCYAxqQN4\nWmEJ4HSPjCnNMMrY8yOaFW+ScAJqXenhn8/YjD0KD9OSnOu4qtOwr5AvIiVm\nVwJpMvzjPlF1lsGOLdGO/aygJs+rQZh57g0poJzPvWuDWNDkeLQkb9e3W0lo\nsqW6\r\n=20oM\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.8.1_1536560544992_0.11465701038540543" - }, - "_hasShrinkwrap": false - }, - "3.8.2": { - "name": "verdaccio", - "version": "3.8.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "2acd55a036d2117b37c62e5175e36e5c80bffe09", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.8.2", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-UJUCOc11DteoXobp1XTirBF5b3iER3ID3UwE/Ore2ndhnJZamCojBz8E8xGkRGXSRkUXO5gfGn3EKgDGvWDHlg==", - "shasum": "655c3c95e8fac068ed4e1c6ecee8c6dcc9ddd5ab", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.2.tgz", - "fileCount": 74, - "unpackedSize": 1846028, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrNxgCRA9TVsSAnZWagAAMMcQAJ5E1PghnffyNRv84xrW\nCHbme0WsTDfSksR48iRoVT4jXYOd07/SWKjfqR4Kze2zFkKMXhfLGLJ7dVrm\n//cJ+toqUz9JgyMPwsOyPLfaT6PBG1wm++oM56ymWcm17mgXJfFYbZ36/ryV\n9pXDDp1sgSwFz9vEMHpJkFMsIrVmzUsfCTy1QAIClj6Xhh7TvKQtkpXNXqLD\nAGTWzfMNRDYzCTxXvONNcy7SDswre3LVPoP4LlZ1gaF3jcAg9GwOtroKnEXG\nNzwge2eOUnU3mZCJx+LgONWzuJVlh7lHCnTgePKUZSPeuyHGmM6HJs1cnKym\n1XIspF363hg/QWuUHbwc+QznFDXepDLP//VtrU1hlHuSCL3tVR4WJqhCJpwC\novDKvH4FY+WqZrgHKJj5Bigg1EtK0zflo607jJc8tV/B0hfnJlXnOeYzhQlg\n6uoB4ymHQYJxvgY3khWBSrhXGnITfrI8GvrwiM6XSXChGGv8/NVdAe0REpyB\nh6UFyFuvs1/28TVKC+lY4qov4cmJhK5dyQwaAWuzSlM6cJOCQQnBUg7uKIfl\nP/1JaKmLisnc6SSUbmGlxa6YQesQNRq1x66z9Vva+okws5OeMmR4jTO/n9fy\nLQ0E7uLRXsbaWp9COvIbJgHVTWnHUWI5sFCMqtN6G3qSBNqGCKMcfIAh4KT9\n1SNo\r\n=/A57\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.8.2_1538055263706_0.5544949900113607" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.0": { - "name": "verdaccio", - "version": "4.0.0-alpha.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.2.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.4", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.18.0", - "compression": "1.7.3", - "cookies": "0.7.2", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.12", - "http-errors": "1.7.1", - "js-base64": "2.4.9", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.1", - "marked": "0.5.1", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.5.1", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2", - "verror": "1.10.0" - }, - "devDependencies": { - "@commitlint/cli": "7.1.2", - "@commitlint/config-conventional": "7.1.2", - "@material-ui/core": "3.1.0", - "@material-ui/icons": "3.0.1", - "@verdaccio/types": "3.7.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "10.0.0", - "babel-jest": "23.6.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.1.0", - "babel-plugin-emotion": "9.2.10", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.1.0", - "cross-env": "5.2.0", - "css-loader": "1.0.0", - "element-theme-default": "1.4.13", - "emotion": "9.2.8", - "enzyme": "3.6.0", - "enzyme-adapter-react-16": "1.5.0", - "eslint": "5.6.0", - "eslint-config-google": "0.10.0", - "eslint-config-prettier": "3.1.0", - "eslint-loader": "2.1.1", - "eslint-plugin-babel": "5.2.0", - "eslint-plugin-flowtype": "2.50.1", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-jest": "21.22.1", - "eslint-plugin-prettier": "2.6.2", - "eslint-plugin-react": "7.11.1", - "file-loader": "2.0.0", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.6.0", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "lint-staged": "7.3.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.3", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.3", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.1", - "ora": "1.4.0", - "prettier": "1.14.3", - "prop-types": "15.6.2", - "puppeteer": "1.8.0", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-emotion": "9.2.8", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "7.1.0", - "source-map-loader": "0.2.4", - "standard-version": "4.4.0", - "style-loader": "0.23.0", - "stylelint": "9.5.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "3.3.1", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.3.0", - "url-loader": "1.1.1", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.20.2", - "webpack-bundle-analyzer": "3.0.2", - "webpack-cli": "3.1.1", - "webpack-dev-server": "3.1.9", - "webpack-merge": "4.1.4", - "whatwg-fetch": "3.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*.js": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "3bedabc3d42ff888aa48dcce627e872125ce2771", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.0", - "_npmVersion": "6.3.0", - "_nodeVersion": "10.1.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-gnLaU3iSvPPTX16bjcaEDSEsqBPoLpTuNHzFla4nouy0YrtfQ/alaCDvs84mA0mu2kdUndfP/CUxZI/QVr6UDg==", - "shasum": "d311a350e1cedbb357a07c85157ad97bbcf5d35e", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.0.tgz", - "fileCount": 79, - "unpackedSize": 1637220, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrQwJCRA9TVsSAnZWagAAwL0P/RuELBLjsItpKlfhw68T\nGsVhGosp/CXCEaE4/rKltoOH1w+NvhnHMI05Pil0mNTPC0Rh7Er/ZVNUlXCN\ndxSvLvK6hiqKGgOHVf6I71NrpIOoV0KQFZmEc2XaD/wkO2aaHLdPt2aRxuFn\nNDgcArfG64MH6grTd/hQpXr04A8KF259/JmEVazWhqgx+FgqZ3bCHikusyHO\n9IpgHyRO4hKqOKQ5hB0sF8Yw9EX9QDJlEQV+5NZFA+b85XjCyY725WM3dHdK\nRAs0HYZxLLy1Z8ZpGsAAQtWPT0WoCAPuVg3A3FiGdiL1fUSCTMUZjV0CYdya\nrUJMy6byScxX7ADuyGBMfHaT2UyD00d2wqlN8PpXSmR9HgYBQj0Hmq5t1Bda\nM96hQZFyYp34HH1ggSOMgR071SEuhkmk/zdFZ62BNwZjoXGdYGlyOkdWkmdL\nloIK21L3cvoXkN5b7tzmGbllaagHYMrsEQ10W8peWjd6zluCNkT5LsGPKLT2\n3/lhff4+lBldOyok+7yBCRkz3gKcYMYWfKIp4R0ZBmakfvVWRYcErjywrmBv\niu6C2/8Sp5IqrQG9a+jPczr2AEdSVmwMmlvn2/g/v8H1h0TjEvEF3Wjimtgw\n4ihkcawCU+O7Au+XEfUBTAW/VS/VGLmN2XrwdVdcc23ox5tPjg1AkWxnPxoT\ndGwx\r\n=qpJq\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.0_1538067464428_0.09401834573603218" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.1": { - "name": "verdaccio", - "version": "4.0.0-alpha.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.2.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.4", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.18.0", - "compression": "1.7.3", - "cookies": "0.7.2", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.12", - "http-errors": "1.7.1", - "js-base64": "2.4.9", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.1", - "marked": "0.5.1", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.5.1", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2", - "verror": "1.10.0" - }, - "devDependencies": { - "@commitlint/cli": "7.1.2", - "@commitlint/config-conventional": "7.1.2", - "@material-ui/core": "3.1.0", - "@material-ui/icons": "3.0.1", - "@verdaccio/types": "3.7.2", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "10.0.0", - "babel-jest": "23.6.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.1.0", - "babel-plugin-emotion": "9.2.10", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.1.0", - "cross-env": "5.2.0", - "css-loader": "0.28.10", - "element-theme-default": "1.4.13", - "emotion": "9.2.8", - "enzyme": "3.6.0", - "enzyme-adapter-react-16": "1.5.0", - "eslint": "5.6.0", - "eslint-config-google": "0.10.0", - "eslint-config-prettier": "3.1.0", - "eslint-loader": "2.1.1", - "eslint-plugin-babel": "5.2.0", - "eslint-plugin-flowtype": "2.50.1", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-jest": "21.22.1", - "eslint-plugin-prettier": "2.6.2", - "eslint-plugin-react": "7.11.1", - "file-loader": "2.0.0", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.6.0", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "lint-staged": "7.3.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.3", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.3", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.1", - "ora": "1.4.0", - "prettier": "1.14.3", - "prop-types": "15.6.2", - "puppeteer": "1.8.0", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-emotion": "9.2.8", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "7.1.0", - "source-map-loader": "0.2.4", - "standard-version": "4.4.0", - "style-loader": "0.23.0", - "stylelint": "9.5.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "3.3.1", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.3.0", - "url-loader": "1.1.1", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.20.2", - "webpack-bundle-analyzer": "3.0.2", - "webpack-cli": "3.1.1", - "webpack-dev-server": "3.1.9", - "webpack-merge": "4.1.4", - "whatwg-fetch": "3.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*.js": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "353860d0ba5d6842ed9a4c2e00d89be02db5d551", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.1", - "_npmVersion": "6.3.0", - "_nodeVersion": "10.1.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-d2Mv/n07g1Rnp4bzNV8nC8Uz4+ACEb9zdj2lZl749P8zkYVsKWZ4rX/rBBXtY5lxl4V+zpODRfIOuq2K4EGBCA==", - "shasum": "4113a54e16e5e31268300c7184c9c577f5a6423f", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.1.tgz", - "fileCount": 79, - "unpackedSize": 1660271, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrScDCRA9TVsSAnZWagAAbiUP/iVelSVyotASBIrKxIqp\nsaF6y06pGyvhrzk4OQ9J4cm7otr8DOHVVl5P/YHmTBtug3rTWePIK4q1a6jA\nTGK0PIytPtPfw2ODPaD9OvCZmfFSoH3PfHkAx8KAEAWHQ4dkJv2ABlwb/SmL\ndEc0CPlAThxAClJAYwi3wf/oz/9WqG4rvgU4V9kJl1SpPBpc8I+biayFSugx\np77fhjK4fy07i8EoP9uVpUSqmyz+aOHQkHcJ5M9CwA2/H6q/4pHo8UoirsI+\nOVh8piTE7ZE9QY7V8QWdWtHltSwyz5k8QoW6qlVPF08CtRG8PhMiP4Si5H/I\nireQ2eZGtH6jzZlk5zz5lDuVeXJ5WQDuK+m1Bmka2rEgtThlv1nqXuGucHxq\nOrutjpv14/wJXcLhvybr9YTJKhD1yI2zt9Bd1FhgAokwMDWhNL2CKyYdqA95\nDfB8fpaq5Z582h73F6br+6PfOgjwCwGM/XM2/dg5K85BlG8MMZmlQzq/pMLC\nM5XV2SQH2zWeZjG1iMkad82EXJh6sGOYkLqholt1r6O9Pd5I1suWmm+cC+Ge\noUx/Ez91qvqc/IiglYtCkZ1qt2/yk2PSYkSM58goBiifsI/zl9cvQ+IxNhcT\nypUsbOqvsC0vGtou+vWcUp7RN65U58LP3olOU87nOsJQAFHCjV5wV15wyFnQ\nfthg\r\n=4vOQ\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.1_1538074370786_0.17401794576899254" - }, - "_hasShrinkwrap": false - }, - "3.8.3": { - "name": "verdaccio", - "version": "3.8.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "2095cdae337c4647679f3003d07d58d7740de4af", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.8.3", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-FxmQbPXJZdHTJRBwUeV0m8mFhe19Y4vXLsKRPS/igVgVvw8lBvhEa0qTg4zeNwMeEFOlRfRyZeasp2vwNfCc+Q==", - "shasum": "4a909f00ec924f859377b8835061329f44c1604c", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.3.tgz", - "fileCount": 74, - "unpackedSize": 1846377, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbulPxCRA9TVsSAnZWagAAbRAQAIS/e33aIe9GqdBsv2cF\nRRI+jD5YduFHdcb/fCPIKXzzqQ1W7vcWQiz1uDbt7OAHHCpQi4UHLt/Sunmo\ns1WYlTg7P7qmXYg3beK+UQsA3/KTdOVRIkUVX3RmMnTbHRMYPv4Y7FCKU5Y/\nqrj23q8Y1bescwcSIPlAvwR/dCrxvs/HQ4d6ENQYZKqP6vtFynSOMlpSCiPA\nGwq2IQm5YqEGagx1S21E8zweSl2fhnaCOZTu46lUJtOafraLRJOHFToCkh8R\n69rR8CGJT0NL9V/3WLU+70qMy49uO3dQ6n9gy+HWjL942B9s1L9uZ7Y/qsFS\n1WkBtE5EM7c/kDjiTBd4G58tjTuKIcoY4oGBeyuqvQYFKSu1wakpXZ3ROgCw\nD3LRfbwahCjc0zjJatH0WXZ+HPW0ZAoH2+OdAwf7sRa/ODxWWzjb4toW0Iv9\nyhsn4q4zy2f/B8/1w18QGCXxXC9Ej9OYln+RllHoshOxh06Xn7+zaPQyAnLF\nFiBXTsQXlx9qZKO0kgEA+VLUwbLvLV9MbaJTZkTn0PJNVg7Bb9QgXzE+7KzV\nnDMOm1W5uPJ70tfO/i22Dom2wDKgcU2rj1DoiA4X8/2HAdNsnhIq4ANClKIZ\n7ztzL4YJ3Mcg21YwtIqFbY1USRDriAulpwLLSNnDv6PyfU5j2GoDNVJWpinp\nl4vf\r\n=viUg\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.8.3_1538937840068_0.5274009867112999" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.2": { - "name": "verdaccio", - "version": "4.0.0-alpha.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.2.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.4", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.18.0", - "compression": "1.7.3", - "cookies": "0.7.2", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.12", - "http-errors": "1.7.1", - "js-base64": "2.4.9", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.1", - "marked": "0.5.1", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.5.1", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "1.0.1", - "verror": "1.10.0" - }, - "devDependencies": { - "@commitlint/cli": "7.1.2", - "@commitlint/config-conventional": "7.1.2", - "@material-ui/core": "3.1.0", - "@material-ui/icons": "3.0.1", - "@verdaccio/types": "4.0.0", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "10.0.0", - "babel-jest": "23.6.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.1.0", - "babel-plugin-emotion": "9.2.10", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.1.0", - "cross-env": "5.2.0", - "css-loader": "0.28.10", - "element-theme-default": "1.4.13", - "emotion": "9.2.8", - "enzyme": "3.6.0", - "enzyme-adapter-react-16": "1.5.0", - "eslint": "5.6.0", - "eslint-config-google": "0.10.0", - "eslint-config-prettier": "3.1.0", - "eslint-loader": "2.1.1", - "eslint-plugin-babel": "5.2.1", - "eslint-plugin-flowtype": "2.50.1", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-jest": "21.22.1", - "eslint-plugin-prettier": "2.6.2", - "eslint-plugin-react": "7.11.1", - "file-loader": "2.0.0", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.6.0", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "lint-staged": "7.3.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.3", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.3", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.1", - "ora": "1.4.0", - "prettier": "1.14.3", - "prop-types": "15.6.2", - "puppeteer": "1.8.0", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-emotion": "9.2.8", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "7.1.0", - "source-map-loader": "0.2.4", - "standard-version": "4.4.0", - "style-loader": "0.23.0", - "stylelint": "9.5.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "3.3.1", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.3.0", - "url-loader": "1.1.1", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.20.2", - "webpack-bundle-analyzer": "3.0.2", - "webpack-cli": "3.1.1", - "webpack-dev-server": "3.1.9", - "webpack-merge": "4.1.4", - "whatwg-fetch": "3.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*.js": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.90 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "8281b8ddc74b2838187381bedac2da2ff082930f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.2", - "_npmVersion": "6.4.1", - "_nodeVersion": "8.11.2", - "_npmUser": { - "name": "ayusharma", - "email": "ayush.aceit@gmail.com" - }, - "dist": { - "integrity": "sha512-eGulIoFqPJxkZCpziJZRzx+w9hQKrD22jHW4TqbR4YScEUv0r0p012UZzDxNHwv4xnc3W7FIK6qXhhQtZESOsw==", - "shasum": "e759599a84ecd111d31d7e5b8c816d93fd8c4f54", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.2.tgz", - "fileCount": 78, - "unpackedSize": 1683690, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwLHMCRA9TVsSAnZWagAAMRUQAJGA/QaBvHZFfvEvfvX7\nclBWM4MSoJm/QrgWfwXUvZoeoSOkdfiEZBArvB5QPdsiN9WWLlKWDO3K8I72\nung1GnLwLgpkcW4vZiBwXZFMOVU/ADFcoqwDUE06twiJQ8vliAa8yAiUAeli\nn4pvEnbkVF8PLK+Osdqnt0O8cVFEZBMVDkOFAbWZeDYvLVtCg4JEwQjNAy+n\n/Sq9a23pJQVgAtjmoG7tge+HLkzq+Xh8J/chZQ30b6wGSedUbimkzKWW2jO5\nkm25osgeczt1Jex5Sn5m14iK0TptXnqlJDOYdVNyuMgzcDYmIeosuUHCe4S3\navTPW9yeT1VJ1tTy+MXz7K+wCvKhVEiBY9PU2Ja4BRazvIopq11HO4suSNh5\n76dVwrOAZVAtoO1kDzi9D/AoP7HFQ22yvnLBAydJgPRt3pjnmE3pxgPaK5SG\nZt918/5MspF/0rgGREU4G+RD7KhSmib/zqCWlL14QgspflzAVlQZMKfs0tMU\nec5Ukyyw5pRd7LE29EBO6AlPLHRShIpmy0rPV0dc7QDKJnBm+18go6jiXACC\n/N0b9030cv3+860UwYpO+AuKFgJ7YyjOPiyz4hZ7+YcTbDGLpPTt6GoWIl2A\nXDn5qFxTqZ+NXhs40BYUSlXBxTyFdQWRnsW48K/u2UJ9hr6U11IjzmFUW9u0\nM2fl\r\n=qnkl\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.2_1539355083984_0.4543111030860536" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.3": { - "name": "verdaccio", - "version": "4.0.0-alpha.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.2.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.4", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.18.0", - "compression": "1.7.3", - "cookies": "0.7.2", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.12", - "http-errors": "1.7.1", - "js-base64": "2.4.9", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.1", - "marked": "0.5.1", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.5.1", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "1.0.1", - "verror": "1.10.0" - }, - "devDependencies": { - "@commitlint/cli": "7.1.2", - "@commitlint/config-conventional": "7.1.2", - "@material-ui/core": "3.1.0", - "@material-ui/icons": "3.0.1", - "@verdaccio/types": "4.0.0", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "10.0.0", - "babel-jest": "23.6.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.1.0", - "babel-plugin-emotion": "9.2.10", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.1.0", - "cross-env": "5.2.0", - "css-loader": "0.28.10", - "element-theme-default": "1.4.13", - "emotion": "9.2.8", - "enzyme": "3.6.0", - "enzyme-adapter-react-16": "1.5.0", - "eslint": "5.6.0", - "eslint-config-google": "0.10.0", - "eslint-config-prettier": "3.1.0", - "eslint-loader": "2.1.1", - "eslint-plugin-babel": "5.2.1", - "eslint-plugin-flowtype": "2.50.1", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-jest": "21.22.1", - "eslint-plugin-prettier": "2.6.2", - "eslint-plugin-react": "7.11.1", - "file-loader": "2.0.0", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.6.0", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "lint-staged": "7.3.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.3", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.3", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.1", - "ora": "1.4.0", - "prettier": "1.14.3", - "prop-types": "15.6.2", - "puppeteer": "1.8.0", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-emotion": "9.2.8", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "7.1.0", - "source-map-loader": "0.2.4", - "standard-version": "4.4.0", - "style-loader": "0.23.0", - "stylelint": "9.5.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "3.3.1", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.3.0", - "url-loader": "1.1.1", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.20.2", - "webpack-bundle-analyzer": "3.0.2", - "webpack-cli": "3.1.1", - "webpack-dev-server": "3.1.9", - "webpack-merge": "4.1.4", - "whatwg-fetch": "3.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*.js": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.90 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "be7934923a9c2cda806494abebe7cf71c6457081", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.3", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-0QNXktDFCtG3SU9nvMOFUUyCp7Zi0DtnG9r1MFaswo9JXFsdyerxnfe5Kj+Pt9L3jEqGLkJmASADwYPsAg3p4w==", - "shasum": "35f620f52ac3fcb5f39faa5b8da02f1070f8ec8a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.3.tgz", - "fileCount": 78, - "unpackedSize": 1682077, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwO2+CRA9TVsSAnZWagAAuyUP/2kI866dJEuGaDpntvc1\n/EV6aAJKieNve8CnWnFTbGecjzLjMWAbSsvk3RGHUApqS9R+dFYO2glbZ3PZ\nC/GQkjsqNDtHaiCAqh6f4UHAt3uAVxcbqFzBgenU+0zkurH8w9NvwTEcUH96\nqSuxUG4IrsGsAmwYultOxBWYetZLurGu9jc18q8XlRVgUjiJOhwlfmq2aESZ\n+8zF0E2vTO9ZRIuJPQKUCB92F2i+uJai4bTwnRgWGu08zTI6/JOdcfAj1H/Z\nJ6EcKBv8QnTfrnxC4/2OIy+bIrij7+PZ4h71bDg55n/cDu40D1ZZo8q5tcBB\nDc/8fz+yi2wzvqdb60j7gj+ny4zyvzQ9sqHzD9ccL+ept4VXYQ3l2TBd0f1n\nvJM34WmMcTPiNX2Xty3bYeOMV61AYDCRjidFnzs5XDeRnrVNIE7qsoai4OQP\nedC12VFIkUMdoMHTaGpS4TF+RYh1uZ9FsLzE8mhohl29DsFVjPUj2JfVJ5fd\nBwfwXJsY8epE0t+sM3bkwZDH2minULZ8kK5hzQpgUrimLBrCFYvdC3Nx7+T4\nNKRfH5eTOP1zlT6EE1GcQPKqvyH2bh2U8AcMV50ou9yLDZ/fiehLR02Uk/77\nCzlyKZmsFvYKRde6GqNWCDIx4VzEVMZ5QoZEnApDy0/JxWAUoy6teJy/07kQ\nmRpz\r\n=eJl2\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.3_1539370429201_0.654469983697586" - }, - "_hasShrinkwrap": false - }, - "3.8.4": { - "name": "verdaccio", - "version": "3.8.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "0.2.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "f077d78d18b480a97f482a59bcacc991932270cb", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.8.4", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-+9koJsxjtVqn06Bznv2LLhOsKxSi9Jf0UvZ0yXvmg3pa09MJ438k3j76csET3xlpGzJOlI692msrikb8um5LCg==", - "shasum": "b87c01870102421363d738560b2865027804ce42", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.4.tgz", - "fileCount": 74, - "unpackedSize": 1846843, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbwbPTCRA9TVsSAnZWagAAtCMP+QDEDjVEaQgmk1OEJRT+\nzRBFaLb4/cSSPDfWn6rrfMEjZdEaPo2IF4XNX2hDHBHFBrYmEzDd4zbxyoRW\n1FmcpoWcu0a34MCtn4yqAcGFD9GtJry34c9XBovZAdYt3HB8oCbqpEUY5HJs\npTqSB3wpsSQBW9GeAjzs636moEaQc23qODrmTlIRTz+qh3h9Z4S1xfQ7lINF\nW8z0WaKhadKfmkdv7RzBi0Kq1Q6gxJtLUCeyJnzgY5TpzqxqLLy3YBh5htwD\nRFCljJiJV/5A4OY2N66yfETdZu0/Q25HUO7p2O5nhWL/akQp0/jhrf0szQzN\n9i8gYdnL8yu9P743mwzSvzlat1ictWOxpjXZODzQzB3TgHTgp2GG9b8POlGh\nlPuHIRpvJ8SjYnoLKVsTc03IUrdWZno/g8sjvJ1Xr9VXKNn9OQCQo7LYTOma\nWnLu7RL8bznHfwNU2vEW6NR3mRzMXpRqvMUJxp4AOs/erECbPAnZeunKJLUO\nqc1H2AhKmGfTq4WPqhXdRKiIc27UwX7NgBK8OcKmSr3Z7CvAv26wySHbn4D4\nezrZQTcrXyc6lgzOWFl3GAnE7vuVoeO7hOrflbr0N6lgHUvoZCyzwppbRHa/\nRfqMNtEOEqX4qPkIsoJVmkL9986cfEp/flr9LokulXrFyTwUjiv1MIgZwApR\nufed\r\n=XxRa\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.8.4_1539421138620_0.23948238934950017" - }, - "_hasShrinkwrap": false - }, - "3.8.5": { - "name": "verdaccio", - "version": "3.8.5", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "bc78a5d761a7053bc57188fbb75588ac8f17c77a", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.8.5", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-0m89hk6vrURLJGcxIntkNqDuqmI+6VNnMyTHfXn8vOti2MJXNc+19bfmz9qU9w8tfEURaRmf4GsgNfrRyzBcpA==", - "shasum": "2478f28b4bf75afc32e59880e75c4e21def917d6", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.5.tgz", - "fileCount": 74, - "unpackedSize": 1846810, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyN+LCRA9TVsSAnZWagAAsHEP/2DkKEox3EPJmT1EGyza\ncpnIa9ath9blLG2s/14se59S7amUgmjVl77ySghnQU/kiFXRblFXsJcULfgf\nX6oqH7W4ZN0EMumBwTwjgGjfZ0mSOFA5Ah/ptAajIuol0ybvMiw9xGEOiUOV\nnASSf0LeBUled9/wgF/AvVA/vLOqfHo16y9P6bz3crhIs035MnkrMClGMRjG\n2xVrtC9qz+mmCDxwSHAc9zdx4lALQ/9RImPNVLhL4A+966iG4EcLo+th8hcH\nJChQDoPKc6nEfrEfc4GK374pHNn9/5p/81Qnb9ZhiB7A3I1iloiNcWGpxxyF\nsYsEceQrKn62X8Dq8eCoJP9VQLBgHOFRG5JBpFJmTQfL+Rp2KBltk8qkOVz5\niiSWKn/yskb4zmiftfPIUyWilF4ZkHZOtl7w9t9ewNMH4/eFPvEbqXMfm4W6\nAbgiyI4yfzWrY4PriumqjZLwOo4fdLBDoTS7W+NiEuf6w8tqrniMy18H98Kg\nfv98ROP5gnqRx6+KAtQLLluj0GcGQor7po/In8j+6c17esmV0rH2dM0HGUlE\n6Nb1xZXddT90fRCCdGbIHt1h876+a6zmYFr35M1hfmKGoHaeid3RxZjHSG2T\nelQZ+2+6rP6kM9SESpekU19JaS/B6+Mlx47k46H4UOSfR341lsB6yXa+/3FS\n+pWj\r\n=ABEj\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.8.5_1539891082275_0.922201474163556" - }, - "_hasShrinkwrap": false - }, - "3.8.6": { - "name": "verdaccio", - "version": "3.8.6", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "ee878c66cec27e1bf390746dac5a3dffbc55aaf0", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.8.6", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-k6h4cQCn4Twg2doNUDXPsV6ggESLXiTrbxMxVFlbtMvmxbP+oFT7cb8nUfFlJe/nCXeoZCpqmbrrPdO5Au05AQ==", - "shasum": "6d2c87944f86d3431897140aa37bda327c5a3539", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.6.tgz", - "fileCount": 74, - "unpackedSize": 1847868, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7cmLCRA9TVsSAnZWagAAAgoP/1p95KgAKTNt4n1Mr50N\nWmthWlqf08rLetePseNNnu7L7Exe4iTaBVk68vgAS97BCTg3wQgjuYdGUr3M\ntlc/h8IJfm1wBfJc8JMDY1cu4ilIgyZ6+kYcLdvCABrJgGkYZJNYCQQGhYJ2\nodtrjgN+q+7dbTXt/JgeQwVXGXAKcp5TKwOosoFLoHSuKYXu3YnNMovEASDZ\nxLs7AgROO6PIePFcWCJPoAwU2KwxP29ly51WKZ2ilclOqMygBS8men//QdJI\nSDf99rqq7+yUoXA9eDcz8V/5Ig/zrsK36YLT+n0kxlLHm2TrWNqQVVBvEh99\nCPWd9lU2l/4GpXLC9JWFvkV+325o9MDR6JyMn4vQgvvh2LA2tknBfDiXR83B\nOhiunfDJmAzl8Dt7e++8CrY3ta13YexQss6usMsUFyIPdy96ijkTQKCsrqP5\ngo0YvVFAAtYNudxZvNm7biXo8ueCMCK+3YDsCfipfzPTyNU2DNHjq5hRYLeE\nInpApgde8qrKdUjbCH7xVJdjPROb6pxDxPJsx9WTcqbtiqkUbRSnpm3WFZv+\nXfhzTPNZgxNoGyDdZ5aA/jwRIZlqqCVVZa/J3nqGQw1TdCrOTxIwKaJuIlPM\nrI+MgbvwVXKW1XOPP8TSkSmyabAqY5zlZ5oGDCTyjIG81YtoAAnJL3xVDOat\nSnE9\r\n=3R8W\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.8.6_1542310282941_0.5559671696896464" - }, - "_hasShrinkwrap": false - }, - "3.9.0": { - "name": "verdaccio", - "version": "3.9.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "9d3b7ba32ce931aa72340198bac42c305f927ac4", - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.9.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-TQ9O5cjNp76r9Wg29ugCV8L8WAOrHwOSU9yhfjh9WWZY0OwxGk83e2ym6yZduqtAboIBW5QBtnj/SVg/VCi9Vg==", - "shasum": "a6d7c25525a014dff0d91ec22fe4c61edbcdaac0", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.9.0.tgz", - "fileCount": 74, - "unpackedSize": 1849583, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBsWzCRA9TVsSAnZWagAAy/gP/1x8jz6rvBsw0vwvW22i\nYmgCgCPdqi6Z946040VHxkObv0GduB3J5RFm0QEnF9tHziq2xpm/mWx+sruA\nuXF+mvBDhqjBO6AZELqwt5BKQhOhIUwfXcBcch+P5D46Gyjy3b11IdDn79R3\niF5evw2NKr73vumMkPdZrklWXzoITpgCaUv7yUpAOZLeUADX7FgMWHnedBUK\nCSN6rGmyTF2U77eS2lSBWYBTMtl2rkitOi3Az5bPQ1IMCUexxfWV1KycJffj\nTpBlLbGBR8c/9kCEbivtSzhEuWT/oD0/a7mOqjA/FoJX0QLgQ4mmq5v4aJa9\nvGc5I35p2t+b4MCkHuDV6KxpbLyeQJFcJ7Q9CA1IK7+o0jM+Hc7AFadJBAyX\n85GfRtA9xO7pwERBul+5/vbBIcB+DkzJMHEzaH+2FtwFls2mDF5jXWj5bJih\nFoLmLCVURSMsPyeY2+hKBjJhHX+Gv47Nk4g7Zw7etU0YgB6LI0SFwaLPR5NW\n7JYtQ3AXRFYeJTfDkJZlWixf3s1jI/AMwTuRYFLLimP3J8jusxrmNWVv+1Hz\na5X4t6LJo66VzsxnIFuVqIwT3Ni2z5e7Q++GfS4dtV6epkMdp+eHt/2UNr/b\nmG1xuke0YzSpCy2IgLAyG97wjUikm9sipvXuia6jCfRnKjFZr75mR7DYAuBu\nZVoX\r\n=l0x1\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.9.0_1543947699061_0.2866514396183337" - }, - "_hasShrinkwrap": false - }, - "3.10.0": { - "name": "verdaccio", - "version": "3.10.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "0e252fc4d7eba11472560682ed313ac16948197f", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.10.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-LZuP8ZfcChRsi5jVM4URlDfstr79Fzbq4W9EIbazF8IsFpM5cHFDEZrv7Fbx6hn5Aq0NWB51UuJIf5YbmMacNQ==", - "shasum": "6c71e1fc73489e2f6f0a4b4b2ea3dddf8861cefc", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.10.0.tgz", - "fileCount": 74, - "unpackedSize": 1850008, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCNL/CRA9TVsSAnZWagAAoWsP/2kx3Zg+JfXuQPwiCUmQ\nRZHl4+SuZXH8uq8DOOhrItJTxv9z7lxnfe0eipyd5OXIX4BbtSur74LyI74x\ntUw/HzrHH/yfgjMhrYyjUNx5UAbKwjNpDHnjadPeDmkh92go65OXJ92HnLo4\nYkgURB4kaadxvHk33/D3TRAkFYBRMB9wqKCEI49VgqE6CKH5UsddkM72aSfc\n23yualcD1fHgX65XQLv1TNFUfnBgFxMKrmb01GWEOtV+R+ERQEmIVj8BMO6F\nIWhy0YOkCr1EdH/HDappXavOC7y3EZm+9gmALmmj4Z4VBuSure/MooVF5Syb\n2FkzgpFq2LbexQZq+QyBEfFL84GLA72O4SPHXz52D6HRhB+lXbHDcQhDXMGR\nGN8X9BLkL2UpyV0UyeogIHNBXY2YPKM9j9WxU8kFqhA3v8+cRyPQxLN0EbrF\nNl3SBsxwtFb+2oNllam7jQkyI6dZrVAPxk/WM/wXMZ1wcK0i1IbxYD1BPot3\ndRFj+JBEZXn+Xyp0eqF8+tDPmxdwgfbJrXWniwu9AUvNYUB79RvOJDh6jrle\nMTAGYCIfnQkFz7c8CJlGWzCwNWMUarxNL4Hx0euQvFvu7Eacbf0TBRfBpVno\n2xFfz0/Zmibtdlcksa8aKhd5WOKI31CxMqHYEUIZOV6Wa6iO2UhtE6IvlQGC\nr+Xs\r\n=f9cN\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.10.0_1544082174414_0.7332993323424684" - }, - "_hasShrinkwrap": false - }, - "3.10.1": { - "name": "verdaccio", - "version": "3.10.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "305d6d84ced9291ad5d40f131b7c30cab17238e5", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.10.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-+vP2a0aDDPU90dU0Mj/wH8GLsuUl53ZY8XP/TXTTnXSRz73TRZkj8o6782r+S/OCv98z+TgrrbCGqVSLivna8A==", - "shasum": "35a4997685c3a92518959f3b7d48487a164d6289", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.10.1.tgz", - "fileCount": 74, - "unpackedSize": 1850270, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcHA6VCRA9TVsSAnZWagAAIe0P/iU2eyzfYQ7C6ubXEzJz\nnzCyaHBqzVZKXhAq3suEXgr6tYtbQ35oIsb0AfD3nehT8AlrjbyThwD6rLIf\ndbQs2Dt19nkz4d01sAARflsXb296UJbf/Exs6Mq2huBFSGl9jPOyMnDylodb\ng6/gaLKqBDOYlDMNrm3Dq1M0pNMFhXAIF5R4DgrX/GxXWcd59fpEfGsXf8uw\nUwiIqzEWdVXOnQ05NNxmX3eAkCHN8Q6cappURo4+44jF1yZ8y4PQk3uq2YEe\nWf9YLX1BoXuPELVWkm4YylNbODxBaAe+V8r0NNG9XgNvOx35lAZfD5OxhrRP\nqmZOJq8jOTsfPbT+PX5HBtRjF7VEZFSJW9TQ6xeH1cdxn7MKd2fgOtuGCBkM\nY3vsl8Cr/V/AMaIglOYbSVxqxIk9uyMYCUTFnH/JVTfwWnVqzdPDlLqlqYjK\n1D3920Sf7DyQpBdqkZFx/QTWjeKA0wqsnIJ78mb/7zxZXsoepJTJtkwIyZEs\nSKhi/kOfVNwREZ/vMCY69UadgAuTVBGNPe/Go8S9j0TCUUNPXKkD1vXtMzm5\nTP+QfdVK+LGUtwn2j2LiRok0Hn1rtv2Rcor6ow4Rf1kD/SHGbVyfO1jkf5xu\nzcuc0SPCGPwHOdZAsAViH1FxxTcOGQf3MMye1jjIa7qBq9TFMzK8sjaBfU94\nWoUY\r\n=yt77\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.10.1_1545342612610_0.2255591215215358" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.4": { - "name": "verdaccio", - "version": "4.0.0-alpha.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.2.0", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.4", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.18.0", - "compression": "1.7.3", - "cookies": "0.7.2", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.12", - "http-errors": "1.7.1", - "js-base64": "2.4.9", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.1", - "marked": "0.5.1", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.5.1", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "1.0.1", - "verror": "1.10.0" - }, - "devDependencies": { - "@babel/cli": "7.2.3", - "@babel/core": "7.2.2", - "@babel/node": "7.2.2", - "@babel/plugin-proposal-class-properties": "7.2.3", - "@babel/plugin-proposal-decorators": "7.2.3", - "@babel/plugin-proposal-export-namespace-from": "7.2.0", - "@babel/plugin-proposal-function-sent": "7.2.0", - "@babel/plugin-proposal-json-strings": "7.2.0", - "@babel/plugin-proposal-numeric-separator": "7.2.0", - "@babel/plugin-proposal-object-rest-spread": "7.2.0", - "@babel/plugin-proposal-throw-expressions": "7.2.0", - "@babel/plugin-syntax-dynamic-import": "7.2.0", - "@babel/plugin-syntax-import-meta": "7.2.0", - "@babel/plugin-transform-async-to-generator": "7.2.0", - "@babel/plugin-transform-classes": "7.2.2", - "@babel/plugin-transform-runtime": "7.2.0", - "@babel/polyfill": "7.2.3", - "@babel/preset-env": "7.2.3", - "@babel/preset-flow": "7.0.0", - "@babel/preset-react": "7.0.0", - "@babel/register": "7.0.0", - "@babel/runtime": "^7.2.0", - "@commitlint/cli": "7.2.1", - "@commitlint/config-conventional": "7.1.2", - "@material-ui/core": "3.1.0", - "@material-ui/icons": "3.0.1", - "@verdaccio/types": "4.0.0", - "autosuggest-highlight": "3.1.1", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "10.0.1", - "babel-jest": "23.6.0", - "babel-loader": "8.0.4", - "babel-plugin-dynamic-import-node": "2.2.0", - "babel-plugin-emotion": "9.2.10", - "babel-plugin-flow-runtime": "0.17.0", - "bundlesize": "0.17.0", - "codecov": "3.1.0", - "cross-env": "5.2.0", - "css-loader": "0.28.10", - "emotion": "9.2.12", - "enzyme": "3.6.0", - "enzyme-adapter-react-16": "1.5.0", - "eslint": "5.10.0", - "eslint-config-google": "0.11.0", - "eslint-config-prettier": "3.3.0", - "eslint-loader": "2.1.1", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.2.0", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-jest": "22.1.2", - "eslint-plugin-jsx-a11y": "6.1.2", - "eslint-plugin-prettier": "3.0.0", - "eslint-plugin-react": "7.11.1", - "eslint-plugin-verdaccio": "0.0.5", - "file-loader": "2.0.0", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.6.0", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "lint-staged": "7.3.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.3", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.3", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.1", - "ora": "1.4.0", - "prettier": "1.14.3", - "prop-types": "15.6.2", - "puppeteer": "1.8.0", - "react": "16.4.2", - "react-autosuggest": "9.4.2", - "react-dom": "16.4.2", - "react-emotion": "9.2.12", - "react-hot-loader": "4.2.0", - "react-router": "4.3.1", - "react-router-dom": "4.2.2", - "rimraf": "2.6.2", - "sass-loader": "7.1.0", - "source-map-loader": "0.2.4", - "standard-version": "4.4.0", - "style-loader": "0.23.0", - "stylelint": "9.9.0", - "stylelint-config-recommended": "2.1.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-config-styled-components": "0.1.1", - "stylelint-processor-styled-components": "1.5.1", - "stylelint-scss": "3.3.1", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.3.0", - "url-loader": "1.1.1", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.20.2", - "webpack-bundle-analyzer": "3.0.2", - "webpack-cli": "3.1.1", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.4", - "whatwg-fetch": "3.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js && npm run lint:css", - "lint:js": "eslint .", - "lint:css": "stylelint 'src/webui/**/styles.js'", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged && commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.90 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "readmeFilename": "README.md", - "gitHead": "777eb9dd43cf0e1eb094091e7bedbd129108cc93", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.4", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.0", - "_npmUser": { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - "dist": { - "integrity": "sha512-FGJU/iEcnHYh4IGprelBOB4YXNms0zmnvIRpDeb99subuJOWW35+TjsYlSPvkQltzm9vcdE4ByME9HR+rELJHQ==", - "shasum": "d73ffc4c0bfccb865a86cd76c1d78e3e41b30e9a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.4.tgz", - "fileCount": 201, - "unpackedSize": 1844144, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNn5mCRA9TVsSAnZWagAAbesP/iNDw+0awtata+uiQUBi\nu3PREMcK5Yz1pN21I6BzomVjhCX+i/dVygGNVQquTjuZ1+6/ErVyusIaQDdC\niHMQgfzb1F2tsvytEorGtXSqOLtSU/XpWsEVNpqvD9LwkZrW/9mzDpUNE1Y6\nvdc9QKBwpP5WmYXja5r84pTIAoQYepEpXH/8wkIsKd1vKxQlNYkTLgLja6GD\n4qUXOOjm2vrIoUNGLJvyjUgvY9+9OQbqfb7K3YUz2y+i13oSoRw4f/xirmLu\nzwL8LAacgGC4njtRpWP5f6tPUgkFedhxhonAyUzfJ26pgNF/6a++hJaKyo8f\nOevviSYGulrJXhBuNKIESlrMTixxrpGFXVhENWc2Z5u7GrVxdmFbwdeqNWKc\nB+5tN1S48IsV0FKniFYwMbI3nlLSudvvgg56w7u1Xx5qUA1sevL7zuhCyEa1\nlhSn8SHfWOP4Rrg3XF3/zXMFDt8EAKJZiCtBo+WCP6gYcwaH8jqrsqJbt7U/\nifARN0zKLw+4jN6cEFUlosb3ozyN7nfOQmmIhCQIAHD34Xz88T06QsuEu1/g\nCtOjSFaIj/J/AEs/D77vjK9WYzZwdPt//dVB96I7V/L87y6D6e6T68hk1nM/\ngEPeP9xMxBX0HAuhgt2SVdxIwmj04N7Wi9GLKFcqpk2y30knDg1u0J6bZnx+\nJskf\r\n=ansV\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.4_1547075174021_0.40579181295146083" - }, - "_hasShrinkwrap": false - }, - "3.10.2": { - "name": "verdaccio", - "version": "3.10.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "2c229cc319099cba360f62a9ffc019ad190be281", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.10.2", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-V6ig7iHWweV8W35R8Jl3GjZyxuvkbT8Sv3O0GCrUrsMFQVYSLuynkvkOXQ4JvJN45Iw47FrBU+M1kXwb7Cel6w==", - "shasum": "66fe48130c9442223a6f93cfc06f3ae57766fed4", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.10.2.tgz", - "fileCount": 74, - "unpackedSize": 1860155, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRraZCRA9TVsSAnZWagAANTsP/0T+njo4rbjOHcCS26td\nL3l1tVn0ppwMb4L74mtAqmsMKPrRPWa5PEystw0N02eISqkkRgtJ/vziBHnN\nHj2qB71Zef7Dq81P4l4NIrWSZX9s+uHgH6ciDHmC1Ho2NatOgDbfeQiuYF6E\nI7D5N1CmNLUmr1VeDjgM/V1p6XKynSgzgzgKV9JaxWKl/XZSuXYFF/Qs82Ri\n9lF9I6W2ljR28KdH4s85cl8EZ6/JoOWTiFHvRDrGldTJL6iFFA3XAxQdoCEB\nt1HaHpVDo8Mvt5uYWl5+NO6eBQqW1+AND5G1MiqXMZAL+XJ6uGKoGc9B88l5\n7iH9KlQS62TLBXSoZSo/u3TT5kXbuZlU+EzpNwqZMfPQTC+1QEMs7TEwilm3\nzib+u0lon+f0wz3LjqyjbWwrX1zZhJ1hfPTLRoGR1pYhnv3ihp+P0KMSYpuO\nqGQeEG/6wnsO+S2qqx1SfFu/OcF0RV7sPEvx2jtdtjserd7fiqAjESnbhAhb\nvLlgpF4Oe2q28H55wHP9+skHpMzi48AVGEmdyh19/EaWkJ/+vLkJE08b6ELw\n/h0NG+zf9JvrtKpyzm+RVW/N0Pi0yIRfxjKnWMcMnFyt9iXIWdE1rTu8mMGS\nxWgHMFY+gli42cPv6dPvAewgtLPPzsUTwlbY5rJoquyieofz/u6ok1YARO6A\nArUB\r\n=hS0N\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.10.2_1548138136526_0.4103995010657209" - }, - "_hasShrinkwrap": false - }, - "3.11.0": { - "name": "verdaccio", - "version": "3.11.0", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "23b02c01fccfbf0b34af02f1281cc13a407d0395", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.11.0", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-RWWaOCguj5tTYmzr4fZfOoebpKeAoqoOgietKyi1XZKZ0boxhbjJfJJwKYjc8xCmndcTQ3OwlnJYRYWXKpzAbg==", - "shasum": "65e85f88b6b432be646da84ac79eb43b02ebb85a", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.0.tgz", - "fileCount": 74, - "unpackedSize": 1861485, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcTX3zCRA9TVsSAnZWagAAamgP/iWYwBhG/sLFeCTOIMAl\nV9zlWtlij3Vc1XWphSmD8h1j2P36xWIxOjdiv30vMuIJDQuchDL1J7mkh4IN\nTPj3lJuFZMnhH6DSE3WxxvSMq81xfyMGEWp3Ox0khhcoKcOjdJg+yYhFQ/OB\nHE+bhVqYWyPtCG0mc8Ifh7isnfnylP0v6k8B+wDLdCM/kkSnbI6QDVR5zJbf\nq9GGTOKwx+p6dm1bcq1m/Q4fhlY5Vkxu2xArTwh4vmRSmTJ8b1El4sakt3OA\n9lDzQZu3Lqr7tw/tyI1Z9KoFSs7bHrhxABM94QscpbBRkLrn1eBXmx6buQhn\nRzvGLZOpVUzwXbTNdI+REopMM5rVhNlGa211Wt2vq7fJwkT5hi1f9a2g0at4\ntEBjinBPJNH3WV+5SfNMGsAK435FBPNo2QU4+jl3lAakFnEKedyuyWE4uJAR\nHVcEui5lv8jXF9kZiPc5oW7wwVhBJPAoq81z+j3OSMglmx9rCQIel24fWqFT\nFgj/tle/w+Lt7IhK+uHE7YkoxnkbfcmdQBB0DJ2X5PToWctdOVumFIorUTwv\nznWUb2Xn6QJ2U3AAI50yiO5cdsYxGQBsUQVpFM0MUaaVdM9Hq6zydvmsvbhh\nufjMFFRNEUSfiIrVZdr6rNu4NpRPdAkI/qY3XR6tpP88gM+hbvtfoJw+JbtQ\nhNNU\r\n=jN8e\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.11.0_1548582386734_0.14359094695747987" - }, - "_hasShrinkwrap": false - }, - "3.11.1": { - "name": "verdaccio", - "version": "3.11.1", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.7", - "@verdaccio/local-storage": "1.1.3", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.3", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.1", - "commander": "2.16.0", - "compression": "1.7.3", - "cookies": "0.7.1", - "cors": "2.8.4", - "date-fns": "1.29.0", - "express": "4.16.3", - "global": "4.3.2", - "handlebars": "4.0.11", - "http-errors": "1.6.3", - "js-base64": "2.4.8", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.0", - "jsonwebtoken": "8.3.0", - "lockfile": "1.0.4", - "lodash": "4.17.10", - "lunr": "0.7.0", - "marked": "0.4.0", - "mime": "2.3.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.87.0", - "semver": "5.5.0", - "verdaccio-audit": "1.0.0", - "verdaccio-htpasswd": "0.2.2" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "ad4dc37e390c7ffaf79998265a9943e9ae16af0e", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.11.1", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-T4BUNNuKICuzLfg0DrWw8izyrr3Z4kBMt9nUmOteQViFNCwwFXTymdpG9BZV4IBI0bTLYGHVlK4Jy6wedLUbzA==", - "shasum": "435d5caed6981b4593f7f5db6c053d6a644eb319", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.1.tgz", - "fileCount": 74, - "unpackedSize": 1862130, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcU0WGCRA9TVsSAnZWagAAzP8P/2K1gGkC8GnXQ/fog0HL\ndryEqPdGqOYk7rGg1WsAL+JRI+carKRQ7BoiUrCyBe97jnIEngTWoLe9H/bG\n6TprjvdldPCFv6JQ9uyF2oaAXEBv9EiWcJIvoo4E7FnpHma69RRn6TQyzoO9\nWV+isixPyJK8vZ+9h/PUywyB5CPR5JhZGdFFfPtKBw8BMfN6TtmOLWMNB5bT\nc1ZjWCgUyi+XebWaLsdxRmusrjU0vR+Yz5kp5DYOzyra532XCu51FnsIRM3j\nLkyIR37DC0Qf/l/1vL9wu19Ll6noXY8AHBGiwzM5tS0rS5isVRXZjfu8f2HR\nkvkzkYoG7ilXcfqfGKH5sIHyVU2xQDYgPpfF4uq3fkUjx1L93dJgyCUfvcn0\nNMxpexBCsgqvScbbhtrP6lggWd8ltS+2+YtexmYmNJ0p0hwJbumCqiyM+dEx\nkBM5Ol56MJ9QMe8rR754pIimsMuNSiLFkRi3iFqY7NRwD1c3xRDgbZRr1v2n\n0N6TStaRNEwhEKgXevbSkqlOtsGe7ARN+3REFk8xidXt4iQQh5ulG/UIXc3J\nEljsm3xylnPkHt0Dsy4CPZLp9+scy9CaNJoJGDOIETNOccarKjvoeKipk5ih\nJMjs4qtdPBAlDp+Z0ufVjLeeLTp52vdqliD03LZaxzTUUGvFlx+y4XV3udPg\nKoBF\r\n=Via2\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.11.1_1548961157248_0.27900535213082067" - }, - "_hasShrinkwrap": false - }, - "3.11.2": { - "name": "verdaccio", - "version": "3.11.2", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.8", - "@verdaccio/local-storage": "1.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.5", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.19.0", - "compression": "1.7.3", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.29.0", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.0.12", - "http-errors": "1.7.1", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.1", - "jsonwebtoken": "8.4.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr": "0.7.0", - "marked": "0.6.0", - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.6.0", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "0.2.3" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "1c0b07a46e83561cd2e5f7fbd94197229291bf96", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.11.2", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-w68s7fRJcN0+6BRxVqbh+ftZraMKGfH92F5Y1QQp3PTnvLp3z6vL4EPBdBaaWkLT9HV/FrL2mEO0DlSeX3uKfg==", - "shasum": "3c95230df38f4f1fe863ba40d507ad92200964c7", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.2.tgz", - "fileCount": 74, - "unpackedSize": 1850070, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWS2YCRA9TVsSAnZWagAA0l4P/AiivPRh67uarWh45DUI\n7JcIHpNWng7yIDFgKeVKMxkpcnXG67uNzwxTsUEEz454vPgNtDeJ6ul5Wb0E\nA+bElSGN9KdnK9143sHq0mEsZH237rPnFQiclL9bCnmy2vf3dzGtdQHVNbxT\nbVoxnFnu6jM8k5njpYzEU/A6DCjJ7iGrl3AAwL0wI9wsN9Lh+T+HnbLf+inS\n3jGv4xoI0l348qZKYHPH5M0n+POHfqD5SVaykJLvchln0/s4mIDYZNFFFwT/\nIKse7VabC47r2plrSUwfASrOriEuLTrbl09Fqc5ZWprB1zz9ps3ji1UI7Pfd\n6+e7GgiqhIsQw6MCUxSkV+krhYmxaLsRxTAphyex9Rivn2ztz/FeyihCYMt7\noAecyrS19OhFg4zWRe29xKOMfWMyUVg5iiJkBwIL3mtcrq8YV3ZbYiEEYCOb\n52FQesmOY1hoEKbpf0+Yy55HOWME64qKM9UjvJF+2+ylFAFDVSSIq5bzPknW\nnZdR5ELp21NPKrKqumUlvwgpf6cN/koA76uZukxw3pgbV6ao6un0AX6cMbAn\nqu29GAoF71+F/xEge28A9fsEJKrpalZNzHust4BaiHKiL2fgMASm89fCfOdc\nKVXQK1Fc6AmIHLCj57wtdXnLCSSilcfugtFLI2TEP0DMGVJ2JOYP8Q3Pw6tY\nPUrv\r\n=1DK6\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.11.2_1549348247984_0.1506553884257844" - }, - "_hasShrinkwrap": false - }, - "3.11.3": { - "name": "verdaccio", - "version": "3.11.3", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.8", - "@verdaccio/local-storage": "1.1.4", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.5", - "async": "2.6.1", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.19.0", - "compression": "1.7.3", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.29.0", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.0.12", - "http-errors": "1.7.1", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.1", - "jsonwebtoken": "8.4.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr": "0.7.0", - "marked": "0.6.0", - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.6.0", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "0.2.3" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "c4b1e1550ce90e5c2b86459f4ba966b230f833da", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.11.3", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-qvMVm5sEs+Oh3jvpk6qKgfagtnzXhDBcTyYQsQrOsa9pOXWnLMMWy4vT8IKD0VjDt7qxoLJNdDYunCx4BzU7mA==", - "shasum": "cfca870418d5d2ebe490b45685c7853d2b4fd7c2", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.3.tgz", - "fileCount": 74, - "unpackedSize": 1850348, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXHTvCRA9TVsSAnZWagAAqdAQAJA9N4FyETW7ueNTO8Hj\nMTzt/hEHMX2T2sL3Ys8xnRmccc0vB+31/fA6Sw7vUYM6PXeJpV5SxChwqdFV\ne8MMz98d/Mq2nm1vcD96O5A6kIihfys4PKJoR7C/BhnM21J8/o6ZjrwvZ/2L\nrizpdso1i1Q4ldtUtFD7lAHBa1hxmEgT/If19DJKjtzgr6iPF9NGpWynnuVp\nGpfAtSW4ygvbEOD2MJYHuB5MMh2x/sYlOCB9gbr71bgPL9KjjFYkH9r11Qyq\nlOM4sOvR8+fDHNHy+ufhM762Hpw7irX0SfgOuAqlzFkFNLdDQRMOe0yR2Pqu\ncdAa8fFpHufIU0XBKFvuwOWxPRNoLoiBrhHAXu+CKVZHikP3y1Koh5t7E/xC\n5G+5yMJhxsjg3k3DA4Zw9ivPEqozyHH0n0FcmuU/rHdb5w0fAtJltcFUGGwn\n/jxj5nQvzhsEHKd6HcJ2IYDtaRpsf8SVi9A6Nd30sKHHMTybratgKuDEtMNs\n6PyoQVNheM5fVdJaZZnDjBWrRn3AgMIQNv7dJKcC/8ZGPrORXGVaIW1bG8ba\nesXMeHeqxNn8zrU5o9Q1eGlOXYAxF04Xeh24PwYLndxpAhcquuFwXOfsLo5/\n4EvZm7haVQ+NFY37oRt4VerqM70RnWee256WMPvRdbvJRMDUCyUj+psfx51o\nzpv9\r\n=gds9\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.11.3_1549563118891_0.6177307586480185" - }, - "_hasShrinkwrap": false - }, - "3.11.4": { - "name": "verdaccio", - "version": "3.11.4", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.8", - "@verdaccio/local-storage": "1.1.6", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.19.0", - "compression": "1.7.3", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.29.0", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.0", - "http-errors": "1.7.1", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.1", - "jsonwebtoken": "8.4.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr": "0.7.0", - "marked": "0.6.0", - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.6.0", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "0.2.3" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "12d153344b5a95c0fb5b147528ec6db408aaf3c2", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.11.4", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-kr8Fkm/HaPes2EqsHEA1xI0EYNOyEVGxh23IRrFX5tJ5g9yGwnXEiKC71nPl4N0ctNPH3YX39YSuisoM6lDsEA==", - "shasum": "0516460afcc208239f892f2d635fdae872a0ff41", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.4.tgz", - "fileCount": 74, - "unpackedSize": 1850438, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYRYbCRA9TVsSAnZWagAAoAEP/0ljPL+OU7ZvFtHq6RBG\n1RfovIQzGyYwZO70C5TOliFX2tgity7pZsYJjcDDC/T0wNDv2qzJhIKKucUM\ncyAj6aIJ2/zeJljL5OY1C6sjy3xJA8ddaYVQMG1A260TDCd2O/EtMASpiZBF\n4GucX9zjKwTneu+vqGpQDM1w6FWLb5Mg/xh3OS+l9O4Rmnuo/sBC88L1cV4p\nW26PQeW1etUI4uClPkvCFFof8kScKQD3wDTchrhhnrO2AA/NNYLU+mvwKr/H\nbXrSW7RD6bnGtu/Z5JM5Cmn699XIRKp6AXgfR/40XbWksvaE7uC7ruogTnMT\nK0z1cMpdKlOnVTF8cr3EfQsD1tJUdb/3cRBUbOL6WvJe+lAdqajVSXY3j4RW\npeRoBpp2itR18Dvcu1M2TZRwJSR+cw77UULdi7w0xC+rowVhVT/x+toHWawl\nNATlF13VniKOwhS3cWvwuhH5L32Sf1iisP0MwxwnX+uvfJ+u8BEymE/C1Tcz\nFQUWt4dlR42LVscZDzUNf12xhCFyofSUE3hNZxMq63aJGUYdMJYlU9IPcICW\npowsfvxSRFAyI7SLn81CFEhJ3i6tIZ1U5v1vr4bc4oWUYyfmY1RTOPQ/zywl\nRW6g+wcNF3c3oNVfG1xecYFNENs+uqhPxJLQy2iPjl1+EWsAFqeB9DfYCFU3\nXZyO\r\n=v/XD\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.11.4_1549866522660_0.5971320792938564" - }, - "_hasShrinkwrap": false - }, - "3.11.5": { - "name": "verdaccio", - "version": "3.11.5", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/file-locking": "0.0.8", - "@verdaccio/local-storage": "1.1.6", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.19.0", - "compression": "1.7.3", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.29.0", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.0", - "http-errors": "1.7.1", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.1", - "jsonwebtoken": "8.4.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr": "0.7.0", - "marked": "0.6.1", - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.6.0", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "0.2.3" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "098ab9057635719152bfb526cd823bea23e64c33", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.11.5", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-raWP8k+bXYHN3Yfrgu/J6B6vbJb76rmbpJpj+bfB/h/95eZEUczkB3i7hCYDeaIiGUBOnaYt+G+UVdSzJ9dfhQ==", - "shasum": "813853959efbaf28d13f4972156dc4c52897fa57", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.5.tgz", - "fileCount": 74, - "unpackedSize": 1850701, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbj9uCRA9TVsSAnZWagAAYH0P/jubwUwmPfXZ9VbmcflT\nwypg4IBCkDRfStF+mcmBZbXb/ibNiZAyREWnX3r6wVr46HIW4gZS4NPlmawL\nfszfjPchBYpS8MK5yN8fxfREfzCCqko6cky790Tz0v4jzNn8mL+hVKr62cGH\nNoayOrDaZvDE5bbsoByIoVtdnGqfeyw5Jo7lWF9HD8znqU4IC6ShQxTGQSvr\nrjHL7vKvkI+eHIvGYkullT/q6lfCqlboG5vC7DZJkqixdpOfSgsg+4q+iDQy\npliOVOqADb8f1ugepyOj56lci7Qv9Dg46DufPL4TgVEhmmvGEJL7xoQ8M92m\nK7lyJW5u18h2C8AXW+va3TH6bE2wOxOnwegnHrMrNdMbLCzXjdHorWkICGw6\nM67y4LnwnJJFPiRnH9JnkCpbVeYcXGQXVomyiHfuKEMcigPyJXI1Z5RtrVnC\nVEUyNDMzYISjoQRkG/Fi3YADYI3rWnvCRvrTe4rTrT4wZF/I6cOCTs6rSTG6\nj0LAEpNUWxViUX2wFhRmDbOJyE546nVrivpEyYyond8R1VVPc/+Ecn+6qTL6\n576Jf3XkzcbwL7HsuVwJ2zjUWyHAwQsQxc9OPGH0UXAaRZlzDo3Yg7Qfe+Bf\ntXjQUxV2wGyKKWIHGAGqC5dnXI/nqPjU9nY6Wtak3Nxt92ZINNxYk484IQ8M\n2aqC\r\n=fQx2\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.11.5_1550729069833_0.7321479644623474" - }, - "_hasShrinkwrap": false - }, - "3.11.6": { - "name": "verdaccio", - "version": "3.11.6", - "description": "Private npm repository server", - "author": { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "1.1.7", - "@verdaccio/streams": "1.0.0", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.19.0", - "compression": "1.7.3", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.29.0", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.0", - "http-errors": "1.7.1", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.1", - "jsonwebtoken": "8.4.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr": "0.7.0", - "marked": "0.6.1", - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.6.0", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "0.2.3" - }, - "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "@verdaccio/types": "3.4.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-jest": "23.4.0", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-flow-runtime": "0.17.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators-legacy": "1.3.5", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-runtime": "6.23.0", - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-es2015-node4": "2.1.1", - "babel-preset-flow": "6.23.0", - "babel-preset-react": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "babel-preset-stage-3": "6.24.1", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "bundlesize": "0.17.0", - "codecov": "3.0.4", - "cross-env": "5.1.4", - "css-loader": "0.28.10", - "element-react": "1.4.8", - "element-theme-default": "1.4.13", - "enzyme": "3.3.0", - "enzyme-adapter-react-16": "1.1.1", - "eslint": "5.2.0", - "eslint-config-google": "0.9.1", - "eslint-loader": "2.1.0", - "eslint-plugin-babel": "5.1.0", - "eslint-plugin-flowtype": "2.50.0", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-jest": "21.18.0", - "eslint-plugin-react": "7.10.0", - "file-loader": "1.1.11", - "flow-bin": "0.77.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "23.4.1", - "jest-environment-jsdom": "23.4.0", - "jest-environment-jsdom-global": "1.1.0", - "jest-environment-node": "23.4.0", - "localstorage-memory": "1.0.2", - "mini-css-extract-plugin": "0.4.1", - "node-mocks-http": "1.7.0", - "node-sass": "4.9.2", - "normalize.css": "8.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "1.4.0", - "prop-types": "15.6.1", - "puppeteer": "1.1.1", - "react": "16.4.2", - "react-dom": "16.4.2", - "react-hot-loader": "4.2.0", - "react-router-dom": "4.2.2", - "react-syntax-highlighter": "5.8.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.7", - "source-map-loader": "0.2.3", - "standard-version": "4.4.0", - "style-loader": "0.21.0", - "stylelint": "9.4.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-scss": "2.5.0", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.1.0", - "url-loader": "0.6.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "1.0.3", - "webpack": "4.16.3", - "webpack-bundle-analyzer": "2.13.1", - "webpack-cli": "3.1.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.3", - "whatwg-fetch": "2.0.4" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC jest --config ./jest.config.js --maxWorkers 2", - "test:functional": "cross-env NODE_ENV=testOldEnv jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index*", - "test:e2e": "cross-env BABEL_ENV=testOldEnv jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "commitmsg": "commitlint -e $GIT_PARAMS", - "coverage:publish": "codecov", - "lint": "npm run flow && eslint . && npm run lint:css", - "lint:css": "stylelint 'src/**/*.scss' --syntax scss", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.50 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "bca4f09b645d4507912d081e12ad98d489188943", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@3.11.6", - "_npmVersion": "5.6.0", - "_nodeVersion": "9.11.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-oZwfzRyp8yO+tTr0lfMz/HDL2PcRFRcrL2KsQdgh9RuiLa2th/l6HsA3NdVc5TC4o6FxugiNPgQfLvbu3nwg8w==", - "shasum": "dd43237ad27364048fbc812620e2b26aef241950", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.6.tgz", - "fileCount": 74, - "unpackedSize": 1851142, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdDiiCRA9TVsSAnZWagAAkrQQAKC8azzMpoQJrhBEGpwI\nXKEGo+eBwzSkSGZZzKWoa8rIgpv9SYFjeUxYqRePYuu7zW6jPPRTL2xd8lha\nSjWsGTH0Ycs2+X2YvcwiIg5Tu65RodDCwGFnhtcRWS6vwUFinbyZK7ag1E5Q\nne9KA41rV8dI1Qh5zCDX8EOB6V5Q5cVFnKJIGsCZa2fpno27R1/2TuUovLOk\nCXdwwOp0EKMK/w+gLOAXghErDHzTqqNBdyhIBukTk4fnwY84GQzdXnnguu1T\nX81TH9kOp1Bbsvx2pwJ/vAKuckAxF2cA9DTPWW8cl3ihbquGLE8wYCDYNLLS\ne5cvZFc+ZY5oK4oxtBv5s4dGiig6m6kXEbRpceUbWujE8D7PS8s8m5AAKRuK\nwaJR0NppHLtD+r9QDMxFLca9I6rdaSJMC+GFUFsWwWWC1foSkvhzOw57Ax17\nNHqFdFujTozU2DQMEuh6zMo5aqeRzhjks10lbO3DkIIjgEoRSvXR94oZ+ack\nAOA7CZRLbsD6Lf57Wq85ykjjpECZp3hIhsfpeUKPH9/Q65U/I6WDdTWlRqJb\njBGY8zhgTZWyJoc4fVj4YKYs54vRZ9M5QEOA0jIgk6HTZtqjxgBgf7025BCe\nf7w2MGhFWlNgprIfgawaOLUv1+gRX6aFiqfhqbDcx8tH15e9dnPb86HKweFF\nwbEH\r\n=YZ3+\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_3.11.6_1551120545656_0.520508231612913" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.5": { - "name": "verdaccio", - "version": "4.0.0-alpha.5", - "description": "Private npm repository server", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.0.0-beta.3", - "@verdaccio/streams": "2.0.0-beta.0", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.19.0", - "compression": "1.7.3", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.30.1", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.0", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.2", - "jsonwebtoken": "8.5.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.1", - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.6.0", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "2.0.0-beta.1", - "verror": "1.10.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@material-ui/core": "3.9.0", - "@material-ui/icons": "3.0.2", - "@verdaccio/babel-preset": "0.0.4", - "@verdaccio/types": "4.1.4", - "autosuggest-highlight": "3.1.1", - "bundlesize": "0.17.1", - "codecov": "3.2.0", - "cross-env": "5.2.0", - "css-loader": "0.28.10", - "emotion": "9.2.12", - "enzyme": "3.9.0", - "enzyme-adapter-react-16": "1.10.0", - "eslint": "5.14.1", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.1.0", - "eslint-loader": "2.1.2", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.4.2", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jest": "22.3.0", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-react": "7.11.1", - "eslint-plugin-verdaccio": "0.0.5", - "file-loader": "2.0.0", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "24.1.0", - "jest-environment-jsdom": "24.0.0", - "jest-environment-jsdom-global": "1.1.1", - "jest-environment-node": "24.0.0", - "lint-staged": "7.3.0", - "localstorage-memory": "1.0.3", - "mini-css-extract-plugin": "0.5.0", - "node-mocks-http": "1.7.3", - "node-sass": "4.11.0", - "normalize.css": "8.0.1", - "optimize-css-assets-webpack-plugin": "5.0.1", - "ora": "1.4.0", - "prettier": "1.14.3", - "prop-types": "15.7.2", - "puppeteer": "1.8.0", - "react": "16.8.3", - "react-autosuggest": "9.4.2", - "react-dom": "16.8.3", - "react-emotion": "9.2.12", - "react-hot-loader": "4.7.1", - "react-router": "4.3.1", - "react-router-dom": "4.3.1", - "resolve-url-loader": "3.0.1", - "rimraf": "2.6.3", - "sass-loader": "7.1.0", - "source-map-loader": "0.2.4", - "standard-version": "4.4.0", - "style-loader": "0.23.1", - "stylelint": "9.10.1", - "stylelint-config-recommended": "2.1.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-config-styled-components": "0.1.1", - "stylelint-processor-styled-components": "1.5.2", - "stylelint-scss": "3.5.4", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.4.2", - "typeface-roboto": "0.0.54", - "url-loader": "1.1.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0-beta.0", - "webpack": "4.20.2", - "webpack-bundle-analyzer": "3.0.4", - "webpack-cli": "3.2.3", - "webpack-dev-server": "3.2.1", - "webpack-merge": "4.2.1", - "whatwg-fetch": "3.0.0", - "xss": "1.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js && npm run lint:css", - "lint:js": "eslint .", - "lint:css": "stylelint 'src/webui/**/styles.js'", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=6.12.0", - "npm": ">=3" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged && commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.90 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "contributors": [ - { - "name": "030", - "email": "chocolatey030@gmail.com" - }, - { - "name": "Aaron Lozier", - "email": "aaron@potenzainnovations.com" - }, - { - "name": "Adam Szmyd", - "email": "szmydadam@gmail.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Alex Kocharin", - "email": "rlidwka@kocharin.ru" - }, - { - "name": "Alex Vernacchia", - "email": "avernacchia@exacttarget.com" - }, - { - "name": "Alexander Makarenko", - "email": "estliberitas@gmail.com" - }, - { - "name": "Alexander Remishevsky", - "email": "aremishevsky@chegg.com" - }, - { - "name": "Alexandre-io", - "email": "Alexandre-io@users.noreply.github.com" - }, - { - "name": "Amir Mohsen Abdolrazaghi", - "email": "amirmohsen@users.noreply.github.com" - }, - { - "name": "Anmol", - "email": "anmol@i0157.local" - }, - { - "name": "Aram Drevekenin", - "email": "grimsniffer@gmail.com" - }, - { - "name": "Ayush Sharma", - "email": "ayush.sharma@innovaccer.com" - }, - { - "name": "Bart Dubois", - "email": "dubcio@o2.pl" - }, - { - "name": "Barthélemy Vessemont", - "email": "bvessemont@gmail.com" - }, - { - "name": "Bo Chen", - "email": "bochen2014@yahoo.com" - }, - { - "name": "Bogdan Alexandru Marginean", - "email": "bogdanmarginean@ymail.com" - }, - { - "name": "Brandon Nicholls", - "email": "brandon.nicholls@gmail.com" - }, - { - "name": "Bren Norris", - "email": "bnorris@enterrasolutions.com" - }, - { - "name": "Breno", - "email": "breno@inspr.com" - }, - { - "name": "Breno Rodrigues", - "email": "brenorodrigues@me.com" - }, - { - "name": "Brett Trotter", - "email": "brett.trotter@webfilings.com" - }, - { - "name": "Brian Muenzenmeyer", - "email": "brian.muenzenmeyer@gmail.com" - }, - { - "name": "Brian Peacock", - "email": "bpeacock@fastfig.com" - }, - { - "name": "Carlos Galarza", - "email": "carloslfu@gmail.com" - }, - { - "name": "Cedric Darne", - "email": "cdarne@hibernum.com" - }, - { - "name": "Chad Killingsworth", - "email": "chad.killingsworth@banno.com" - }, - { - "name": "Chomba Ng'ang'a", - "email": "choeringa@gmail.com" - }, - { - "name": "Chris Breneman", - "email": "crispy@cluenet.org" - }, - { - "name": "Christian Bewernitz", - "email": "coder@karfau.de" - }, - { - "name": "Christoph Rohrer", - "email": "crohrer@users.noreply.github.com" - }, - { - "name": "Christopher Kelley", - "email": "000@cranlabs.io" - }, - { - "name": "Cody Droz", - "email": "cody-geest@uiowa.edu" - }, - { - "name": "Conor Hastings", - "email": "hastings.conorm@gmail.com" - }, - { - "name": "Corey Jewett", - "email": "coreyjewett@users.noreply.github.com" - }, - { - "name": "Daniel Rodríguez Rivero", - "email": "rdanielo@gmail.com" - }, - { - "name": "David Broadhurst", - "email": "david@union25.com" - }, - { - "name": "David Rubin", - "email": "davidrub@gmail.com" - }, - { - "name": "Denis Babineau", - "email": "denis.babineau@gmail.com" - }, - { - "name": "Emmanuel Narh", - "email": "narhe@advisory.com" - }, - { - "name": "Etienne Tremel", - "email": "etienne.tremel@container-solutions.com" - }, - { - "name": "Fabio Poloni", - "email": "fabio@APP-roved.com" - }, - { - "name": "Facundo Chambó", - "email": "fchambo@despegar.com" - }, - { - "name": "Geoffroy Empain", - "email": "empaingeo@hotmail.com" - }, - { - "name": "Guilherme Bernal", - "email": "dev@lbguilherme.com" - }, - { - "name": "Gustavo Cruz", - "email": "gecruz.dev@gmail.com" - }, - { - "name": "Håkan Canberger", - "email": "hakan.canberger@thomascook.se" - }, - { - "name": "Idan Gozlan", - "email": "idangozlan@gmail.com" - }, - { - "name": "J. Russell Smyth", - "email": "jrussell.smyth@gmail.com" - }, - { - "name": "Jakub Jirutka", - "email": "jakub@jirutka.cz" - }, - { - "name": "James Newell", - "email": "j.newell@nib.com.au" - }, - { - "name": "Jan", - "email": "king-jan1999@hotmail.de" - }, - { - "name": "Jan Vansteenkiste", - "email": "jan@vstone.eu" - }, - { - "name": "Jannis Achstetter", - "email": "jannis.achstetter@schneider-electric.com" - }, - { - "name": "Jeff Mixon", - "email": "jeff@altdroid.com" - }, - { - "name": "Jeremy Moritz", - "email": "jeremy@jeremymoritz.com" - }, - { - "name": "Jess", - "email": "jessachandler@gmail.com" - }, - { - "name": "John Case", - "email": "john.case@ge.com" - }, - { - "name": "John Gozde", - "email": "johng@pandell.com" - }, - { - "name": "Jon de la Motte", - "email": "jondlm@gmail.com" - }, - { - "name": "Joseph Gentle", - "email": "me@josephg.com" - }, - { - "name": "José De Paz", - "email": "josedepaz@users.noreply.github.com" - }, - { - "name": "Juan Carlos Picado", - "email": "juan@encuestame.org" - }, - { - "name": "Juan Carlos Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Juan Picado @jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "Jérôme Tamarelle", - "email": "jerome@tamarelle.net" - }, - { - "name": "Kalman Speier", - "email": "kalman.speier@gmail.com" - }, - { - "name": "Karl Wiggisser", - "email": "karl@onebytezero.com" - }, - { - "name": "Keyvan Fatehi", - "email": "keyvanfatehi@gmail.com" - }, - { - "name": "Kody J. Peterson", - "email": "kodypeterson@users.noreply.github.com" - }, - { - "name": "Konstantin Baierer", - "email": "unixprog@gmail.com" - }, - { - "name": "Lucius Gaitán", - "email": "lucius@luciusgaitan.com" - }, - { - "name": "Madison Grubb", - "email": "madison.grubb@itential.com" - }, - { - "name": "Manuel de Brito Fontes", - "email": "aledbf@gmail.com" - }, - { - "name": "Mark Doeswijk", - "email": "mark.doeswijk@marviq.com" - }, - { - "name": "Mathieu Savy", - "email": "mathieu.savy@gmail.com" - }, - { - "name": "Meeeeow", - "email": "Meeeeow@users.noreply.github.com" - }, - { - "name": "Meeeeow", - "email": "i@aka.mn" - }, - { - "name": "Meeeeow", - "email": "me@async.sh" - }, - { - "name": "Metaa", - "email": "metaa@users.noreply.github.com" - }, - { - "name": "Michael Arnel", - "email": "michael.arnel@gmail.com" - }, - { - "name": "Michael Crowe", - "email": "michael@developrise.com" - }, - { - "name": "Miguel Mejias", - "email": "miguelangelmejias@dorna.com" - }, - { - "name": "Mikhail T", - "email": "Mikhail.Teterin@Refinery29.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "Miroslav Pokorný", - "email": "m.pokorny@gmc.net" - }, - { - "name": "Nate Ziarek", - "email": "natez@OSX12-L-NATEZ.local" - }, - { - "name": "Nicholas Farley", - "email": "ohcrap524@gmail.com" - }, - { - "name": "Nick", - "email": "nick.edelenbos@trimm.nl" - }, - { - "name": "Nicolas Bazille", - "email": "oltodo@msn.com" - }, - { - "name": "Noah Prail", - "email": "nprail@filiosoft.com" - }, - { - "name": "Oleg Korobenko", - "email": "oleg.korobenko@gmail.com" - }, - { - "name": "Oliver Maskery", - "email": "omaskery@googlemail.com" - }, - { - "name": "Patrik Votocek", - "email": "patrik@votocek.cz" - }, - { - "name": "Piotr Synowiec", - "email": "psynowiec@gmail.com" - }, - { - "name": "Rafael Cesar", - "email": "rafa.cesar@gmail.com" - }, - { - "name": "Rafael Pinheiro", - "email": "moriarty.pinheiro@gmail.com" - }, - { - "name": "Ramon Henrique Ornelas", - "email": "ramon.ornela@gmail.com" - }, - { - "name": "Renovate Bot", - "email": "bot@renovateapp.com" - }, - { - "name": "Robert Ewald", - "email": "r3wald@gmail.com" - }, - { - "name": "Robert Groh", - "email": "robert.groh@medesso.de" - }, - { - "name": "Robin Persson", - "email": "rprssn@gmail.com" - }, - { - "name": "RodrigoBalest", - "email": "r.balest@gmail.com" - }, - { - "name": "Roger Meier", - "email": "roger@bufferoverflow.ch" - }, - { - "name": "Romain Lai-King", - "email": "romain.laiking@opentrust.com" - }, - { - "name": "Ryan Graham", - "email": "r.m.graham@gmail.com" - }, - { - "name": "Ryan Graham", - "email": "ryan@codingintrigue.co.uk" - }, - { - "name": "Sam Day", - "email": "sday@atlassian.com" - }, - { - "name": "Tarun Garg", - "email": "tarun1793@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Tom McKenzie", - "email": "tom@chillidonut.com" - }, - { - "name": "Tom Vincent", - "email": "git@tlvince.com" - }, - { - "name": "Trent Earl", - "email": "trent@trentearl.com" - }, - { - "name": "Waldemar Reusch", - "email": "lordvlad@users.noreply.github.com" - }, - { - "name": "Wilfredo Porta", - "email": "wporta@gmail.com" - }, - { - "name": "Willi Pasternak", - "email": "willi.pasternak@gmail.com" - }, - { - "name": "Yannick Croissant", - "email": "yannick.croissant@gmail.com" - }, - { - "name": "Yannick Galatol", - "email": "ygalatol@teads.tv" - }, - { - "name": "Yuuki Tada", - "email": "yuuki.tada@jp.fujitsu.com" - }, - { - "name": "cklein", - "email": "trancesilken@gmail.com" - }, - { - "name": "danielo515", - "email": "rdanielo@gmail.com" - }, - { - "name": "firegrind", - "email": "firegrind@gmail.com" - }, - { - "name": "jharris4", - "email": "harris.jb@gmail.com" - }, - { - "name": "jjaakola", - "email": "jjaakola@users.noreply.github.com" - }, - { - "name": "jmwilkinson", - "email": "j.wilkinson@f5.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado19@gmail.com" - }, - { - "name": "jotadeveloper", - "email": "juanpicado@users.noreply.github.com" - }, - { - "name": "karl wiggisser", - "email": "karl.wiggisser@dachenstein.at" - }, - { - "name": "karl wiggisser", - "email": "karl@dachenstein.at" - }, - { - "name": "markpeterfejes", - "email": "fejes.mark@gmail.com" - }, - { - "name": "maxlaverse", - "email": "max@laverse.net" - }, - { - "name": "osher", - "email": "osher.filter@gmail.com" - }, - { - "name": "renovate[bot]", - "email": "renovate[bot]@users.noreply.github.com" - }, - { - "name": "robi-wan", - "email": "robi-wan@users.noreply.github.com" - }, - { - "name": "saheba", - "email": "saheba@users.noreply.github.com" - }, - { - "name": "snyk-bot", - "email": "snyk-bot@snyk.io" - }, - { - "name": "steve-p-com", - "email": "github@steve-p.com" - }, - { - "name": "trent.earl", - "email": "trent.earl@malauzai.com" - }, - { - "name": "verdacciobot", - "email": "35213902+verdacciobot@users.noreply.github.com" - }, - { - "name": "丸子", - "email": "princeb4d@gmail.com" - } - ], - "gitHead": "9c01aa407264b082d922c21a32e98e0ee707cd4b", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.5", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.2", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-3Is3BB0FQjMXOGQHEWX+nRaIvLoAni3acT5NXVD57zLxPNKcXJ12R/ySE4jy7k9UDbF1++MIIpxNZRT/JE8aUw==", - "shasum": "cb9307c6b91c7f9483062e6cea87a08b0fa1b3c0", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.5.tgz", - "fileCount": 260, - "unpackedSize": 2587072, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfbHRCRA9TVsSAnZWagAA9OcP/01OIP5zCORw9fdUJurb\nGlSI4Z+e9f5RpxteMroSEzZHeHER3punNMaSNwJINvrIGEM8fw1zwJ21j/gm\noR0mHjk4HU7fQz4bi+xruwREe6sauJyAa0omoH/aBN52burJgyvJlPvv5UUf\n2p4M312S3mRJElbll/XwAe3fORkP7NZB2l8gfd5FP76wkCnKZeuGbf+V7Pa1\nxU/EnvnPnvcSIRCtOfc9upmwtuBFfWDeZnj7ez6dJB705SI+FCr8cVT8w0u1\n0HhTsM1t2PhPcmITZMzfXKQecLjl7JT41PODpOKgYpXIEDVGEeCVojElyKD6\n7udP77P1p3chTNgcpGZyZSeNQRAIQtBYOwAY9x0rZx5/I94PJQq/CQNqYXJ8\nt3DzhTLCpHyihswJxEwHnAXDzVZx+xEfjgTWK+8UHoX5kxYCPU2UwO64a1Bv\n0JiUarOrd7e98BoLn/fg/x1g4/VjX0G11BgJ3NmLjab7EA4vjlJ1DaKtDT00\nmB1TOJf5Tm6QFvmVVPix1bJmlzsLlETWxOBS2SbTIFEicHjvs77tqabsfA0S\ng+HpxmPUe9fpX/L++Qj84i966fbqldw7vUNcXvXydSPbc0RXfxkotfpjmo0g\nve5Axn3EBkAnRo06qprwH+foRStObxJnXL/26nVkTPYv+97kGOxQn7KcaO0r\n836F\r\n=TnPX\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.5_1551741392932_0.39764779825093943" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.6": { - "name": "verdaccio", - "version": "4.0.0-alpha.6", - "description": "Private npm repository server", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.19.0", - "compression": "1.7.3", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.30.1", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.0", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.12.2", - "jsonwebtoken": "8.5.0", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.1", - "mime": "2.4.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "5.6.0", - "verdaccio-audit": "1.1.0", - "verdaccio-htpasswd": "2.0.0-beta.1", - "verror": "1.10.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@material-ui/core": "3.9.0", - "@material-ui/icons": "3.0.2", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "autosuggest-highlight": "3.1.1", - "bundlesize": "0.17.1", - "codecov": "3.2.0", - "cross-env": "5.2.0", - "css-loader": "0.28.10", - "emotion": "9.2.12", - "enzyme": "3.9.0", - "enzyme-adapter-react-16": "1.10.0", - "eslint": "5.14.1", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.1.0", - "eslint-loader": "2.1.2", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.4.2", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jest": "22.3.0", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-react": "7.11.1", - "eslint-plugin-verdaccio": "0.0.5", - "file-loader": "2.0.0", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "friendly-errors-webpack-plugin": "1.7.0", - "github-markdown-css": "2.10.0", - "html-webpack-plugin": "3.2.0", - "husky": "0.15.0-rc.8", - "identity-obj-proxy": "3.0.0", - "in-publish": "2.0.0", - "jest": "24.1.0", - "jest-environment-jsdom": "24.0.0", - "jest-environment-jsdom-global": "1.1.1", - "jest-environment-node": "24.0.0", - "lint-staged": "7.3.0", - "localstorage-memory": "1.0.3", - "mini-css-extract-plugin": "0.5.0", - "node-mocks-http": "1.7.3", - "node-sass": "4.11.0", - "normalize.css": "8.0.1", - "optimize-css-assets-webpack-plugin": "5.0.1", - "ora": "1.4.0", - "prettier": "1.14.3", - "prop-types": "15.7.2", - "puppeteer": "1.8.0", - "react": "16.8.3", - "react-autosuggest": "9.4.2", - "react-dom": "16.8.3", - "react-emotion": "9.2.12", - "react-hot-loader": "4.7.1", - "react-router": "4.3.1", - "react-router-dom": "4.3.1", - "resolve-url-loader": "3.0.1", - "rimraf": "2.6.3", - "sass-loader": "7.1.0", - "source-map-loader": "0.2.4", - "standard-version": "4.4.0", - "style-loader": "0.23.1", - "stylelint": "9.10.1", - "stylelint-config-recommended": "2.1.0", - "stylelint-config-recommended-scss": "3.2.0", - "stylelint-config-styled-components": "0.1.1", - "stylelint-processor-styled-components": "1.5.2", - "stylelint-scss": "3.5.4", - "stylelint-webpack-plugin": "0.10.5", - "supertest": "3.4.2", - "typeface-roboto": "0.0.54", - "url-loader": "1.1.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0", - "webpack": "4.20.2", - "webpack-bundle-analyzer": "3.0.4", - "webpack-cli": "3.2.3", - "webpack-dev-server": "3.2.1", - "webpack-merge": "4.2.1", - "whatwg-fetch": "3.0.0", - "xss": "1.0.3" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run build:webui && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:size": "bundlesize", - "test:all": "npm run build:webui && npm run test && npm run test:functional && npm run test:e2e && npm run test:size", - "pre:ci": "npm run lint && npm run build:webui", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js && npm run lint:css", - "lint:js": "eslint .", - "lint:css": "stylelint 'src/webui/**/styles.js'", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --ignore src/webui/ --copy-files", - "pre:webpack": "rimraf static/*", - "dev:webui": "cross-env BABEL_ENV=ui babel-node tools/dev.server.js", - "build:webui": "npm run pre:webpack && cross-env BABEL_ENV=ui webpack --config tools/webpack.prod.config.babel.js", - "build:docker": "docker build -t verdaccio . --no-cache", - "build:docker:rpi": "docker build -f Dockerfile.rpi -t verdaccio:rpi ." - }, - "engines": { - "node": ">=8.15.0", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "bundlesize": [ - { - "path": "./static/vendor*.js", - "maxSize": "200 kB" - }, - { - "path": "./static/[0-9].*.js", - "maxSize": "20 kB" - }, - { - "path": "./static/[1-9].*.css", - "maxSize": "5 kB" - }, - { - "path": "./static/0.*.css", - "maxSize": "45 kB" - }, - { - "path": "./build/**/*.js", - "maxSize": "5.90 kB" - } - ], - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "c61f3f4e7cfdee8fcda4542c4c3ba9386fcae180", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.6", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-tIOMX5PgnEotic72+23/k65bhl0hw+yyFntGTKgiR7BwbxUe+HqqVvb6DteDqulKIuVipvOUbIA/r+h6MNm2Kg==", - "shasum": "ccbdf7769d734d404f8b1fa617528f346cd97453", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.6.tgz", - "fileCount": 261, - "unpackedSize": 2577702, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnzLSCRA9TVsSAnZWagAAUkAP/j28yNyGuDRDqiNe/4KG\nV59TfXzzpZtypNng7E6huB4YoANpcEElVv2T4bbhxqWjiZzJOhfXJ+dhchd3\ngpaTYHMPUOExGpe4/r2C8dFRWUA633PqDwGOhDDglLKC8H3TtlkCg+rIkQSf\nWuN0NpOKvBPLCEjBQdrDov6l480c2xwPpsSxdIv32QErB0rGW7/YFwMVKoq0\nbofOxhnCwIOiVRzlj7TBHWVGdw0A8c6qIN6XXpzuDLvh9az8vDqSs9fpFieZ\nTUORh649vJc5CJPJpb/kavH6zxA8t6PklinXMaRhD6ur52YPAjwu9xz12LGq\ntwKtxkv7Kk0tx1XZG0KSmJyzeJwMnk2c9tMoAePXULcJq7m9rVagoHj2Jxen\novTZswwE4D04r+V1fM9AA0/mm6y8J0V7E2RbqPnQz9aYFL8iW/EaYHCVq3Qw\ntzDO6WE6xNr1JzQ+zPn9pTYnm1senk2T5tsBfPFW3Oto4gUKncfKTw345k36\n0Q2kb1+qEKi52fHWNwxy7vKf66Wq7eJJ+TNu4c27CVJpbiO5tzbQMcpXM5L1\nuToSk+oNpPeWQZT8YM28+Y0380mjf5/uHwJAAFg+47zU4M+IJkHy+TeU/hxO\nseywNVOmjWaQXGqpSCmbKeCHhghKVQEBp9SozO4mgU39aly3HyvC3F9snHdF\n09Sz\r\n=uk5D\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.6_1553937105511_0.5836431097820207" - }, - "_hasShrinkwrap": false - }, - "4.0.0-alpha.7": { - "name": "verdaccio", - "version": "4.0.0-alpha.7", - "description": "npm private proxy registry server", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "@verdaccio/ui-theme": "0.0.4", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.20.0", - "compression": "1.7.4", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.30.1", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.1", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.2", - "mime": "2.4.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "6.0.0", - "verdaccio-audit": "1.2.0", - "verdaccio-htpasswd": "2.0.0-beta.1" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "codecov": "3.3.0", - "cross-env": "5.2.0", - "eslint": "5.16.0", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.1.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.5.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jest": "22.4.1", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-verdaccio": "0.0.5", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "husky": "0.15.0-rc.8", - "in-publish": "2.0.0", - "jest": "24.7.1", - "jest-environment-node": "24.7.1", - "lint-staged": "7.3.0", - "prettier": "1.16.4", - "puppeteer": "1.8.0", - "rimraf": "2.6.3", - "standard-version": "5.0.2", - "supertest": "4.0.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:all": "npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js", - "lint:js": "eslint .", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --copy-files", - "build:docker": "docker build -t verdaccio . --no-cache" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "41c3ecd84a0f0b5965fb69980a4e64d6bf792ff6", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-alpha.7", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-3WjtsZbE6qsuetdczZXbQPZq1sSGOeLhdXvkiW8RIu6nxa7MdgTcuijPzNtp6DekVAjyTN6QW8YCWl1FbNu+wg==", - "shasum": "2fda3d341b326c94d3e6b134cdd8311dd8fcb7ea", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.7.tgz", - "fileCount": 61, - "unpackedSize": 667043, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqKPPCRA9TVsSAnZWagAAz4EP/2fZnz4IBLoDu7sr+qGp\neeWHSEWxGLDrWHvZnjj24GW+Hb87KKjxEvVnuAzIdLvbPN0XJ5DH/OLIeDck\nEIU2Lqyql/FTc/HI06T6OPXqDyQLggzcg1Gx9b5T9NZGJpabQ07aXtHmNC8A\n7BT5sKKHnKtXY7pH6IqbALwlxRRLplF52CC2VmfjtPdKfOuEl3j3gS88igSc\ncwGaOlM3u9sm73g5XR32e81AtO0sY8xz44tNFI4jKsSSlbCpX5+5hCK2dpeX\n39bvhb1vMDkpjmlSz8440hdmAPGvqmmemikfguM/7S4eqCD+x/sLc3Sny4dl\nvno0szcd6o5Lf1yl4rnXPcbQgMp2q4XeZfab/heLOK3e7Ov4zLWSEtK+vmP3\nNil53u/NoIMnetlZuo6Cpzr4WZ5stEtFXBLHRuzqKLDwJRihig7cN2Bj4HwP\nvCtz2oMFES2gLyv8MteuWODeDaJ/xi+VyOVIM4kxSVLOf3PgttnWVuAWXDMx\nrJRlrgTxMoWNN6rEfKasv7tJj6DLKqQdjLMJvWJmbpc1zv8MlqXrBEcuO3st\n4oCVnFEm7WOHrhWb0P4NhE7dqCI07eeieYwwD85tKZXuQ3FKMDcg6hUAka5A\n6zbUQWwJzwO5bwHcunjafnKT8vhkFBMj7Y/nLQl3L1gMrRDefkV/LQIW4C8m\nZBNv\r\n=1O5D\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-alpha.7_1554555854908_0.6834713457699315" - }, - "_hasShrinkwrap": false - }, - "4.0.0-beta.0": { - "name": "verdaccio", - "version": "4.0.0-beta.0", - "description": "A lightweight private npm proxy registry", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "@verdaccio/ui-theme": "0.0.13", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.20.0", - "compression": "1.7.4", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.30.1", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.2", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.2", - "mime": "2.4.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "6.0.0", - "verdaccio-audit": "1.2.0", - "verdaccio-htpasswd": "2.0.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "codecov": "3.3.0", - "cross-env": "5.2.0", - "eslint": "5.16.0", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.1.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.5.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jest": "22.4.1", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-verdaccio": "0.0.5", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "husky": "0.15.0-rc.8", - "in-publish": "2.0.0", - "jest": "24.7.1", - "jest-environment-node": "24.7.1", - "lint-staged": "7.3.0", - "prettier": "1.16.4", - "puppeteer": "1.8.0", - "rimraf": "2.6.3", - "standard-version": "5.0.2", - "supertest": "4.0.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:all": "npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js", - "lint:js": "eslint .", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --copy-files", - "build:docker": "docker build -t verdaccio . --no-cache" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "372cd36497d7037672aa9efccabe3cf877775c3d", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-beta.0", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-tg+KhvvIUt28eS0KfbdFk248W5pDm8S7SRDRxaxm7lZ7U0g0eHsX8tyQd9gZwTqViGH680YEATEw9CucIXVRrw==", - "shasum": "049d6ae1a20c7c2ad216799182df64c2508cfcab", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.0.tgz", - "fileCount": 61, - "unpackedSize": 667283, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctNtECRA9TVsSAnZWagAAjkwP/iHrUjISVkZrq1QredZK\nKalEbF+Eybvgdr0zwMRStz0AmQMpjx8Pg5O0e9Z9VAD59YIR45TmgIgVr2Zv\n/+4mUHX6oMnTqEEtYaJ7+BNJxwIPGV+c/gNR2KVSiFXx09gdUF6Sd7ap0VMb\nb8l4Hhqvsg4TzXVmiGLlPLWIXp+XkT1mHfEuxQZTBXgl6xRFuwHggIeffdQN\nrzNu/bHq8gJJnjssarLMXwiwumo3IM2ryElyJvWmqJQroBhxP2pDGGTfMutu\nXLYR1YNK3MtVqS745mDx9g3+zooynlgI0n5lOatkvK6qByfRg44+6+dzC1jH\nmDj4laOerSo4/r2eh2/Eyua+IKCzPGTENvdhgxkzI6E7NmX6oPxjxquXkdsb\nFVfe++tdHtlEeIOJLJ1feJMppthTUyUsei+BwDN1nOfHEXINeQLv305Llqwo\nmq0C5g/9DG4ZNuf1YnwT8cUEBmrjyLcEFh/pBtQxrUY2jesbxxnytL7oqzIH\neRPpbOgmW+F3uvYq3ogQ1qH1wf5wfs5XWtUAwPd/Pu5F1x2fgAKg/+ii6/R6\nhlqTNckG8O8rXxfR76khsc3TXfDZBNfbLlqTsn6vkJAHOnzEr+xl3q0CmtZg\nJViWFOr2STYPIei/lFfBOF6MUw99epM4X/9ObMfDPOTtUWSTxrLcFBDJRHOS\nUYcI\r\n=bNev\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-beta.0_1555356483496_0.603067817724322" - }, - "_hasShrinkwrap": false - }, - "4.0.0-beta.1": { - "name": "verdaccio", - "version": "4.0.0-beta.1", - "description": "A lightweight private npm proxy registry", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "@verdaccio/ui-theme": "0.0.13", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.20.0", - "compression": "1.7.4", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.30.1", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.2", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.2", - "mime": "2.4.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "6.0.0", - "verdaccio-audit": "1.2.0", - "verdaccio-htpasswd": "2.0.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "codecov": "3.3.0", - "cross-env": "5.2.0", - "eslint": "5.16.0", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.1.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.5.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jest": "22.4.1", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-verdaccio": "0.0.5", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "husky": "0.15.0-rc.8", - "in-publish": "2.0.0", - "jest": "24.7.1", - "jest-environment-node": "24.7.1", - "lint-staged": "7.3.0", - "prettier": "1.16.4", - "puppeteer": "1.8.0", - "rimraf": "2.6.3", - "standard-version": "5.0.2", - "supertest": "4.0.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:all": "npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js", - "lint:js": "eslint .", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --copy-files", - "build:docker": "docker build -t verdaccio . --no-cache" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "313882ca6959abd4e619f2a20a8dec1f7039c5df", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-beta.1", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-wOUqxGKy+YPPSceuYGeWzvY0w1tenMzSJZx10HOV1Y7SZjliTVbn2nztA0YuDnr8c8s/TneB1N3W1wlufyqDIA==", - "shasum": "0ce6a3b906e3c7b6896f17923ace979a254215e5", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.1.tgz", - "fileCount": 61, - "unpackedSize": 667541, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctg2zCRA9TVsSAnZWagAAIKsP/iBdK+t6yNAbuDOF7cyo\na30puYftfIOwCtX43KfCXwVLtCUaT32n9NL/pfOXUdt1uls/BnqhwoZOV03v\nWGlcFYLFPPhT7ThBwq/A/qiSHkPurb1KiHaMVV84+hdV/UcAu/0OGMtSkwtU\nZ4ITRY6J6Np7tFREFUZsqeRCkNWzus3Yaslqt+qjXchgLFcZkA5PqjIxSuHb\nG9ePw/wmihq9hwNjZO50/C4JGCpP+21qj/Dq3FYRKb0r1XMyqtTtg4bNcsxS\nqAx/Djfwjrc9SGjViaMJjK0GnkEL9d2O3R00+YkJO6Beg9NmWU8SaSedEawQ\nrvOX8eqtNXRGLP8lD65OuwSSXLs/yVurnh1quML6NNADlLx2KFWOYy5I1E2B\nu16pt/SvB4gRGmvEf2Mch7i4cXAkraa2GxGuUcEm8ydRtpGWUwSAjHsUvG6c\n2M0M3mZq/wvWAYyC7EPvppl61lLZkglmI6Ln0k/MjtoFEI8+U0pkLFnFTf0p\n4c/f5VC3vXLsBYM/JItrrtgqa+cqbVpirrX2JCHBUZaKHfjrBt90+hU6gAIM\ne0UnlQh5UKi0RBphbvnQnHtpSsV92DEq+jwXdsANBSI019bDOuqbZP38pQqp\nWuY0+JotrdFxSbDPz0bBFOJaWPvGpvTjeFwHxlnTV4B9Kr71sJ9X8H6QWWun\nuazc\r\n=/o/I\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-beta.1_1555434930813_0.7910468589838953" - }, - "_hasShrinkwrap": false - }, - "4.0.0-beta.2": { - "name": "verdaccio", - "version": "4.0.0-beta.2", - "description": "A lightweight private npm proxy registry", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "@verdaccio/ui-theme": "0.1.0", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.18.3", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.20.0", - "compression": "1.7.4", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.30.1", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.2", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.2", - "mime": "2.4.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "6.0.0", - "verdaccio-audit": "1.2.0", - "verdaccio-htpasswd": "2.0.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "codecov": "3.3.0", - "cross-env": "5.2.0", - "eslint": "5.16.0", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.1.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.5.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jest": "22.4.1", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-verdaccio": "0.0.5", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "husky": "0.15.0-rc.8", - "in-publish": "2.0.0", - "jest": "24.7.1", - "jest-environment-node": "24.7.1", - "lint-staged": "7.3.0", - "prettier": "1.16.4", - "puppeteer": "1.8.0", - "rimraf": "2.6.3", - "standard-version": "5.0.2", - "supertest": "4.0.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:all": "npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js", - "lint:js": "eslint .", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --copy-files", - "build:docker": "docker build -t verdaccio . --no-cache" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "a2d706244fb5e032e1c776746a16fd5601cc11ff", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-beta.2", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-8jHy9RO7ddAlHQKsRtnyqQp33uWczR4wsJjl5nU1XijrlO/JlfTFNFgmtibHYgLqc9HtSTUjRB6pjB5Cbsn12g==", - "shasum": "0b9c531462fe003f1282ab777bb0db9ecf27bc00", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.2.tgz", - "fileCount": 61, - "unpackedSize": 670559, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwpKLCRA9TVsSAnZWagAAr/4P/idVaVrAnA+PEfOHpd11\nZAQlu95uhjzSZgN7CR3sKb/oD/4OrDqeetSAbmWluiHf8C99sDPfZNtDSZr1\n7OqzerSzFXQrGUorAPPDfwabRCajhvhj6axEaY0MjdVev3MWMp92f31jy4Ty\n5kYclazDCebYZQMaBYYW1VSmAJls/lvvQLl0GLwfOEajKI5LcUBARmva9EZJ\nfZprGTXRjU3lG9gjiqKfKuq254mYymu8mJIEh1XF5XTX28AXl29JcqRpVrgN\n6zLsB78U7oeuNwhd+pni9nOZHIPsY86eyCkq6jFzqpXWDULfqSQRNk3u9Jxn\nwLs84HzMdQOyNayk4srWwlgSIKP5JO72g6CalrnbFpZ3+7hMpvnRYC9CuVWe\nCcO0sB12KEbY/cNqda4swV/8BTpkptiYlzDxRwR2V8nVnzUQEfabO4b/B50F\nJRIoDAg1BWTj6lAKMjzvbhrfOgv7FOsXK5I9X48YExfgWI53Z8AHhBe/49xx\nb03YRUsEljVgQx+Ld1utJwPpLyqQE3JkCcAguoHj0YqCa7xbXDWKDa0CPMa0\nrF1RxGOEdDHoc4dCi8V+QdjqaqHAhIvF5WAW9SAnxWUfr7wqpSAeILV0B8eS\nCqgRXfVsV8idHDTfmeGDhalAEy+Ut8eLCmWSd0oND8oVsXDACKJ7/hsWkEWe\n+4TS\r\n=FSXn\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-beta.2_1556255370518_0.9685358754966165" - }, - "_hasShrinkwrap": false - }, - "4.0.0-beta.3": { - "name": "verdaccio", - "version": "4.0.0-beta.3", - "description": "A lightweight private npm proxy registry", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "@verdaccio/ui-theme": "0.1.2", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.19.0", - "bunyan": "1.8.12", - "chalk": "2.4.2", - "commander": "2.20.0", - "compression": "1.7.4", - "cookies": "0.7.3", - "cors": "2.8.5", - "date-fns": "1.30.1", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.2", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.2", - "mime": "2.4.2", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "6.0.0", - "verdaccio-audit": "1.2.0", - "verdaccio-htpasswd": "2.0.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "codecov": "3.3.0", - "cross-env": "5.2.0", - "eslint": "5.16.0", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.2.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.6.1", - "eslint-plugin-import": "2.17.2", - "eslint-plugin-jest": "22.5.1", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-verdaccio": "0.0.5", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "husky": "0.15.0-rc.8", - "in-publish": "2.0.0", - "jest": "24.7.1", - "jest-environment-node": "24.7.1", - "lint-staged": "7.3.0", - "prettier": "1.17.0", - "puppeteer": "1.8.0", - "rimraf": "2.6.3", - "standard-version": "5.0.2", - "supertest": "4.0.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:all": "npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js", - "lint:js": "eslint .", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --copy-files", - "build:docker": "docker build -t verdaccio . --no-cache" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "e6690aadbe2c742481c773eaa9b4c3b2908d8e50", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-beta.3", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-hrOpD3NkhtFWpsnS+AfMLJFpkZpJNgm76RHbf4yeIePabM6j0qA9ccGKj6O1UArszf0R+BFPSdP3OcPkmX9H4w==", - "shasum": "5e2a2a5565ff5066e35c235d92b726f93ace828f", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.3.tgz", - "fileCount": 61, - "unpackedSize": 673410, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxazVCRA9TVsSAnZWagAAqWUQAKLvQVLqCGnwuzCbV2zq\n0UZHOjvoq/6zAjsgcAhPwqY58s15s831JuZiwygRAfKi5iAQkQbGCek3yKlw\nUdj37OiVC+nRYCuFqiIa4yXTIVezCuO2AAreVHz1QYT8lG05eSxraBUVAXjH\ngLARezHr6ysVAReNzLZrbVlCLjk+aj5XwqFHsLTVddh77vKK6Rktl5GxRYBP\nOoTYRNtufI7W+8HzDCBMsZpp7ZVBXkwrR+uHBB6LTf4s7smh5jVHbfAxVQFh\ngpkiM4RdHa7nI4GDXYI4/tVKMBYmofwlQkyqbkrYFYTj4WWqnnVo02K4ce9k\nafkAuJooYEQmdx2Bow91KXCAqUCxq4yCB4WlzaYi9UihE+9fKKVTkVyYZuoc\nKEUXyPR4MgxTX5sJiryUvxNJm9dEWKc0zRXyh4qZFjTYmqaJTEGOfKDvrOqs\nfwYM0twTH+rVwxaY+wO4q0xDERYep4bRljMG1eRH4gid3ICrEuo138+Ce/ZP\nVNMH+nwCIkWN4d5Kf6+3xsBvkW9ENq9c4QI9CFdVeRrpyCGI8Jja43l2KG5R\n226fbV8cC25yFiz8RohEVBqMGRs9SOQQtJs76b+nbahKWtxCbfykFfScRd7V\nqvF8zjqH0cMU/6YOads0kSlmtCAIX5HFxMwNEzlUq/4tD951c5LAzwpNKGiT\nv7Ls\r\n=36iz\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-beta.3_1556458708489_0.9001580464511083" - }, - "_hasShrinkwrap": false - }, - "4.0.0-beta.4": { - "name": "verdaccio", - "version": "4.0.0-beta.4", - "description": "A lightweight private npm proxy registry", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "@verdaccio/ui-theme": "0.1.2", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.19.0", - "bunyan": "1.8.12", - "commander": "2.20.0", - "compression": "1.7.4", - "cookies": "0.7.3", - "cors": "2.8.5", - "dayjs": "1.8.13", - "express": "4.16.4", - "global": "4.3.2", - "handlebars": "4.1.2", - "http-errors": "1.7.2", - "js-base64": "2.5.1", - "js-string-escape": "1.0.1", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", - "kleur": "3.0.3", - "lockfile": "1.0.4", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.2", - "mime": "2.4.2", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "6.0.0", - "verdaccio-audit": "1.2.0", - "verdaccio-htpasswd": "2.0.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@octokit/rest": "16.25.0", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "codecov": "3.3.0", - "cross-env": "5.2.0", - "eslint": "5.16.0", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.2.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.6.1", - "eslint-plugin-import": "2.17.2", - "eslint-plugin-jest": "22.5.1", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-verdaccio": "0.0.5", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "husky": "0.15.0-rc.8", - "in-publish": "2.0.0", - "jest": "24.7.1", - "jest-environment-node": "24.7.1", - "lint-staged": "7.3.0", - "prettier": "1.17.0", - "puppeteer": "1.8.0", - "rimraf": "2.6.3", - "standard-version": "5.0.2", - "supertest": "4.0.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:all": "npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js", - "lint:js": "eslint .", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --copy-files", - "build:docker": "docker build -t verdaccio . --no-cache" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "f53f4c4536cc248365b8c5a78a96812f3597f300", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-beta.4", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-gxquhSEfr3SxdK2ymJ8bxVPxjb5rsex3ADbBa/iU/KuqY7KeUK90b3GeDF6p5vDJS8gPTz/5bH7bS+o8G8SWXQ==", - "shasum": "8f24a88801b6526182983eb1a29676ba7299e269", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.4.tgz", - "fileCount": 61, - "unpackedSize": 679335, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxp9pCRA9TVsSAnZWagAAOmgP/idBeKFL6BW1QNSDMLTO\nn2Ud0Y6iHFwSUTp8AFZ2CbBMq7m5PzNc2hWlSUbXqi+rQvpm4PAqzmjqGbzt\nq6UpRKpROYMudtk7CQayrIc5Zc3dlYehyRLV1F0+KeU6dbDLJCBGUGNSzI/g\nc99kL7xSLZY6Y3sHfG554GvSdvilXRW7iCGlCnrtOxOGxPBRtaHg8y+39LXn\njyu2yt72lgfSlYRJrvWBvHVw/3FOJSVnwx4ER/E3v+GEEozAKLeRBn3Uvd8n\naXMSNNcxqG7gcbkbHqk+UR9K9QMHqJyUCsVHtbDJ68YxDxcWKbI6j5CZODsx\n4YbaHriMBs+mceTVrGRGrNU1B70hRdtEPygMO6szOzTZNA+gpLSdiLjDS0KJ\nlCbQuE5Eucw0i8zC9HDht19B/ccExG0jD+a1vgXTF64/ojRYJcIbb0onXnw5\nXfq5bPHWN6R5GJMumyrPY+++SmC6ovYRJmpIhPvkdpFapZcSvnHLpeawMR3G\nziUN3ih7s8y7P0Wuh0s8iTCZ6/4yXlEeoPwmQMV/uks56wjwXJLP238Tsj9/\nK1wjtPFbK+K/IIFT7m18eAB27VNJrYPUplMQDfr1R3HuzvpcoTrTBcjgpSNN\nrGweMiTVyDMI/wUICuOB3uEHb1kXqYtsdDDkejCIFovMG6SNllfZ8UPAwGom\nzU2t\r\n=zx1G\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-beta.4_1556520808419_0.525965659406894" - }, - "_hasShrinkwrap": false - }, - "4.0.0-beta.5": { - "name": "verdaccio", - "version": "4.0.0-beta.5", - "description": "A lightweight private npm proxy registry", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio.git" - }, - "main": "build/index.js", - "bin": { - "verdaccio": "./bin/verdaccio" - }, - "dependencies": { - "@verdaccio/local-storage": "2.1.0", - "@verdaccio/streams": "2.0.0", - "@verdaccio/ui-theme": "0.1.2", - "JSONStream": "1.3.5", - "async": "3.0.1-0", - "body-parser": "1.19.0", - "bunyan": "1.8.12", - "commander": "2.20.0", - "compression": "1.7.4", - "cookies": "0.7.3", - "cors": "2.8.5", - "dayjs": "1.8.13", - "express": "4.16.4", - "handlebars": "4.1.2", - "http-errors": "1.7.2", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", - "kleur": "3.0.3", - "lodash": "4.17.11", - "lunr-mutable-indexes": "2.3.2", - "marked": "0.6.2", - "mime": "2.4.2", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "6.0.0", - "verdaccio-audit": "1.2.0", - "verdaccio-htpasswd": "2.0.0" - }, - "devDependencies": { - "@commitlint/cli": "7.5.2", - "@commitlint/config-conventional": "7.5.0", - "@octokit/rest": "16.25.0", - "@verdaccio/babel-preset": "0.1.0", - "@verdaccio/types": "5.0.0-beta.4", - "codecov": "3.3.0", - "cross-env": "5.2.0", - "eslint": "5.16.0", - "eslint-config-google": "0.12.0", - "eslint-config-prettier": "4.2.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "3.6.1", - "eslint-plugin-import": "2.17.2", - "eslint-plugin-jest": "22.5.1", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-prettier": "3.0.1", - "eslint-plugin-verdaccio": "0.0.5", - "flow-bin": "0.81.0", - "flow-runtime": "0.17.0", - "husky": "2.1.0", - "in-publish": "2.0.0", - "jest": "24.7.1", - "jest-environment-node": "24.7.1", - "lint-staged": "8.1.5", - "prettier": "1.17.0", - "puppeteer": "1.8.0", - "rimraf": "2.6.3", - "standard-version": "5.0.2", - "supertest": "4.0.2", - "verdaccio-auth-memory": "0.0.4", - "verdaccio-memory": "2.0.0" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && npm run code:build || not-in-publish", - "flow": "flow check", - "pretest": "npm run code:build", - "test": "npm run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test BABEL_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e": "cross-env BABEL_ENV=test jest --config ./test/jest.config.e2e.js", - "test:all": "npm run test && npm run test:functional && npm run test:e2e", - "pre:ci": "npm run lint", - "coverage:publish": "codecov", - "lint": "npm run flow && npm run lint:js", - "lint:js": "eslint .", - "dev:start": "cross-env BABEL_ENV=registry babel-node src/lib/cli", - "code:build": "cross-env BABEL_ENV=registry babel src/ --out-dir build/ --copy-files", - "code:docker-build": "cross-env BABEL_ENV=registry-docker babel src/ --out-dir build/ --copy-files", - "build:docker": "docker build -t verdaccio . --no-cache" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "linters": { - "*.yaml": [ - "prettier --parser yaml --no-config --single-quote --write", - "git add" - ], - "*": [ - "eslint .", - "prettier --write", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - }, - "gitHead": "9589d47ff76e72de7372e3e58dbb2e19cb127fda", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/verdaccio/verdaccio/issues" - }, - "homepage": "https://github.com/verdaccio/verdaccio#readme", - "_id": "verdaccio@4.0.0-beta.5", - "_npmVersion": "6.4.1", - "_nodeVersion": "10.15.3", - "_npmUser": { - "name": "verdaccio.npm", - "email": "verdaccio.npm@gmail.com" - }, - "dist": { - "integrity": "sha512-JFKupABucY+h4JhkXE2DVpM9X06aM2hXk5QD48h4pA1aFdstenip2zbGS6ZtL4krQYLwyD+OmlFKJYg6oKpyVw==", - "shasum": "a3db47d1bfced1a09b20bb4cc440f3882d89174f", - "tarball": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.5.tgz", - "fileCount": 61, - "unpackedSize": 681743, - "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyMOmCRA9TVsSAnZWagAASRAP/j7wqtSerXig2v9Um0WM\n1xNzC4Z/eqt3iNTnA1OETuPKVNOh7oOmVa/bAYsapD0td5a/ZxjdnCuV5imd\nap89pqgRy/CsZ7KoAWfhWwvv2u4Z9NtdNcZvXDWLgaLI27c8hrRaoTCqLIg+\nS5yk7G1R2uHPimvnWW8OLvVVRFXPxV4B08zHIaBrSUCciG6jIzRPPBGxZQaY\nHShiR6rhIkv1oQXMZ8y0GexCZh+xCZRHT2OQ6js+AeNda4npNDx1FbIwUkpu\nmov+V0oT+OZvOMrEzfjM+H4CiBybUudbnbrW/W828R+mBV0maDiCt4ZEZNWR\nI/wIb0SqvbGz4Rl5XbqzEjYq+7GjMgoj9Hm5cyyFla979buTwzRZkCKJEsxu\nSue+FSsEUA8Q8g6k3KkIO96l3sqqGOgHxVQLOL6ygKyvWp5ZxgkmhNSOpXZh\nvBMCsDUoCBqmdz7+cR0Vjo0aVtbsp/xQhyl0E6BtwmhGUtucm9aBCI5IYRt7\nNPxCfctoTb1OjA5uBcLRejAp4O7tCb872eg/eR/QLUltHP73SOgH5dU0xECl\nGQkptVFoX0D0XD2fI/Vr35u1QrJ0zDBTvVBBMMJETLrdLjIXKR3w/zOvDD4I\nNjKb8PiNHf8eyuY+iQskUod18UrC3G5LcKLuCJL219Av4Rp7c0XWF0uQfTSv\nKaQH\r\n=bgaM\r\n-----END PGP SIGNATURE-----\r\n" - }, - "maintainers": [ - { - "email": "ayush.aceit@gmail.com", - "name": "ayusharma" - }, - { - "email": "juanpicado19@gmail.com", - "name": "jotadeveloper" - }, - { - "email": "sergio@sergiohgz.eu", - "name": "sergiohgz" - }, - { - "email": "trent@trentearl.com", - "name": "trentearl" - }, - { - "email": "verdaccio.npm@gmail.com", - "name": "verdaccio.npm" - } - ], - "directories": {}, - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/verdaccio_4.0.0-beta.5_1556661157305_0.14859541688312583" - }, - "_hasShrinkwrap": false - } - }, - "time": { - "modified": "2019-04-30T21:52:40.197Z", - "created": "2016-07-28T12:48:43.536Z", - "1.4.0": "2016-07-28T12:48:43.536Z", - "2.0.0": "2016-08-26T22:36:41.762Z", - "2.0.1": "2016-08-29T13:26:21.754Z", - "2.1.0": "2016-10-12T00:48:03.025Z", - "2.1.1": "2017-02-07T06:43:22.801Z", - "2.2.0-v20170212": "2017-02-12T14:48:27.322Z", - "2.1.2": "2017-03-09T06:25:28.107Z", - "2.1.3": "2017-03-29T20:03:36.850Z", - "2.1.4": "2017-04-13T20:08:41.131Z", - "2.1.5": "2017-04-22T09:07:39.821Z", - "2.1.6": "2017-05-12T07:43:36.616Z", - "2.1.7": "2017-05-14T13:50:14.016Z", - "2.1.10": "2017-06-03T09:53:52.449Z", - "2.2.0": "2017-06-08T19:02:53.618Z", - "2.2.1": "2017-06-17T16:23:14.158Z", - "2.2.2": "2017-07-02T13:13:13.304Z", - "2.2.3": "2017-07-04T20:43:59.442Z", - "2.2.4": "2017-07-05T17:28:07.187Z", - "2.2.5": "2017-07-05T17:34:11.089Z", - "2.2.6": "2017-07-13T05:04:54.418Z", - "2.2.7": "2017-07-15T23:27:24.523Z", - "2.3.0-beta": "2017-07-15T23:31:31.664Z", - "2.2.7-r": "2017-07-18T19:44:48.946Z", - "2.3.0-beta-1": "2017-07-22T16:27:45.025Z", - "2.3.0-beta-2": "2017-07-22T17:12:09.905Z", - "2.3.0-beta-3": "2017-07-22T17:35:05.771Z", - "2.3.0-beta-4": "2017-07-22T18:22:42.563Z", - "2.3.0": "2017-07-22T23:08:37.513Z", - "2.3.1-pre": "2017-07-24T05:50:40.852Z", - "2.3.1": "2017-07-25T05:24:27.651Z", - "2.3.2": "2017-07-28T23:05:36.431Z", - "2.3.3": "2017-07-29T10:05:30.120Z", - "2.3.4": "2017-07-29T10:18:44.061Z", - "2.3.5": "2017-08-14T06:22:57.686Z", - "2.3.6": "2017-08-17T04:30:44.872Z", - "2.4.0": "2017-09-23T08:01:22.780Z", - "2.4.1-beta": "2017-10-01T08:57:14.509Z", - "2.5.0": "2017-10-01T12:31:06.333Z", - "2.5.1": "2017-10-01T13:32:06.584Z", - "2.6.0": "2017-10-18T20:22:32.836Z", - "2.6.1": "2017-10-19T17:26:24.083Z", - "2.6.2": "2017-10-21T08:37:16.527Z", - "2.6.3": "2017-10-21T16:04:05.556Z", - "2.6.4": "2017-10-31T17:47:03.647Z", - "2.6.5": "2017-11-05T09:09:31.332Z", - "2.6.6": "2017-11-08T22:47:16.504Z", - "2.7.0": "2017-12-05T23:25:06.372Z", - "2.7.1": "2017-12-20T07:28:53.553Z", - "2.7.2": "2018-01-05T12:44:21.705Z", - "3.0.0-alpha.1": "2018-01-07T18:00:29.925Z", - "3.0.0-alpha.2": "2018-01-07T18:21:39.756Z", - "3.0.0-alpha.3": "2018-01-07T18:45:19.575Z", - "3.0.0-alpha.4": "2018-01-08T21:57:44.710Z", - "3.0.0-alpha.7": "2018-01-13T19:15:08.807Z", - "2.7.3": "2018-01-14T18:04:22.971Z", - "3.0.0-alpha.8": "2018-01-16T08:24:07.214Z", - "3.0.0-alpha.9": "2018-01-17T07:48:44.151Z", - "3.0.0-alpha.10": "2018-01-18T06:36:21.286Z", - "3.0.0-alpha.11": "2018-01-28T19:52:28.675Z", - "2.7.4": "2018-01-28T20:22:47.607Z", - "3.0.0-alpha.12": "2018-02-04T14:39:40.166Z", - "3.0.0-alpha.13": "2018-02-16T17:15:29.618Z", - "3.0.0-test.1": "2018-02-17T08:12:52.899Z", - "3.0.0-beta.0": "2018-02-24T21:22:56.077Z", - "3.0.0-beta.1": "2018-02-24T21:25:58.235Z", - "3.0.0-beta.2": "2018-03-04T17:07:55.999Z", - "3.0.0-beta.4": "2018-03-18T15:28:40.187Z", - "3.0.0-beta.5": "2018-03-26T19:16:28.868Z", - "3.0.0-beta.6": "2018-04-03T19:37:07.353Z", - "3.0.0-beta.7": "2018-04-30T10:53:41.707Z", - "0.1.7": "2018-05-08T21:20:03.016Z", - "3.0.0-beta.8": "2018-05-09T05:06:19.607Z", - "3.0.0-beta.9": "2018-05-13T21:58:13.465Z", - "3.0.0-beta.10": "2018-05-14T19:51:16.559Z", - "3.0.0-beta.11": "2018-05-20T08:08:36.567Z", - "3.0.0-beta.12": "2018-05-23T20:08:00.070Z", - "3.0.0": "2018-05-30T21:53:47.255Z", - "3.0.1": "2018-05-31T07:20:43.633Z", - "3.0.2": "2018-05-31T08:54:01.310Z", - "3.1.0": "2018-06-05T21:21:43.789Z", - "3.1.1": "2018-06-07T05:54:51.942Z", - "3.1.2": "2018-06-11T18:20:49.202Z", - "3.2.0": "2018-06-15T04:25:24.007Z", - "3.3.0": "2018-07-22T20:22:12.439Z", - "3.4.0": "2018-07-27T11:01:08.623Z", - "3.4.1": "2018-07-27T21:22:36.573Z", - "3.5.0": "2018-08-02T05:43:21.083Z", - "3.5.1": "2018-08-02T05:51:09.991Z", - "3.6.0": "2018-08-13T10:27:16.269Z", - "3.7.0": "2018-08-25T14:49:22.276Z", - "3.7.1": "2018-08-28T15:16:57.753Z", - "3.8.0": "2018-09-05T20:32:34.154Z", - "3.8.1": "2018-09-10T06:22:25.244Z", - "3.8.2": "2018-09-27T13:34:24.035Z", - "4.0.0-alpha.0": "2018-09-27T16:57:44.700Z", - "4.0.0-alpha.1": "2018-09-27T18:52:51.132Z", - "3.8.3": "2018-10-07T18:44:00.293Z", - "4.0.0-alpha.2": "2018-10-12T14:38:04.163Z", - "4.0.0-alpha.3": "2018-10-12T18:53:49.526Z", - "3.8.4": "2018-10-13T08:58:58.824Z", - "3.8.5": "2018-10-18T19:31:22.505Z", - "3.8.6": "2018-11-15T19:31:23.152Z", - "3.9.0": "2018-12-04T18:21:39.336Z", - "3.10.0": "2018-12-06T07:42:54.578Z", - "3.10.1": "2018-12-20T21:50:12.861Z", - "4.0.0-alpha.4": "2019-01-09T23:06:14.281Z", - "3.10.2": "2019-01-22T06:22:16.740Z", - "3.11.0": "2019-01-27T09:46:27.054Z", - "3.11.1": "2019-01-31T18:59:17.515Z", - "3.11.2": "2019-02-05T06:30:48.279Z", - "3.11.3": "2019-02-07T18:11:59.096Z", - "3.11.4": "2019-02-11T06:28:42.866Z", - "3.11.5": "2019-02-21T06:04:30.110Z", - "3.11.6": "2019-02-25T18:49:05.958Z", - "4.0.0-alpha.5": "2019-03-04T23:16:33.207Z", - "4.0.0-alpha.6": "2019-03-30T09:11:45.739Z", - "4.0.0-alpha.7": "2019-04-06T13:04:15.147Z", - "4.0.0-beta.0": "2019-04-15T19:28:03.704Z", - "4.0.0-beta.1": "2019-04-16T17:15:30.927Z", - "4.0.0-beta.2": "2019-04-26T05:09:30.699Z", - "4.0.0-beta.3": "2019-04-28T13:38:28.721Z", - "4.0.0-beta.4": "2019-04-29T06:53:28.698Z", - "4.0.0-beta.5": "2019-04-30T21:52:37.596Z" - }, - "users": {}, - "dist-tags": { - "latest": "3.11.6", - "next": "4.0.0-beta.5" - }, - "_uplinks": { - "npmjs": { - "etag": "W/\"ce1aee7eeff8aeaec8d840d4bce4bccd\"", - "fetched": 1557179789063 - } - }, - "_distfiles": { - "verdaccio-1.4.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-1.4.0.tgz", - "sha": "7967ade7ba27d301420fdf955ce6a6a85f51f757", - "registry": "npmjs" - }, - "verdaccio-2.0.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.0.0.tgz", - "sha": "d37fc8f7e98c47d0a681df86036bc1ac3ab5ccdd", - "registry": "npmjs" - }, - "verdaccio-2.0.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.0.1.tgz", - "sha": "bc458f655717be790e452205352f346aef66d124", - "registry": "npmjs" - }, - "verdaccio-2.1.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.0.tgz", - "sha": "ea282741d00afb6a0f983f648832b3cd67bb7711", - "registry": "npmjs" - }, - "verdaccio-2.1.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.1.tgz", - "sha": "8b113cbb9fc747ee4d76a924ef6b066e5e900172", - "registry": "npmjs" - }, - "verdaccio-2.1.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.2.tgz", - "sha": "ac31c2f394af09fd51b8d27ffc9674c314bda4c2", - "registry": "npmjs" - }, - "verdaccio-2.1.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.3.tgz", - "sha": "0058e46b1b6a89ed5246e32ed24a2353e6292480", - "registry": "npmjs" - }, - "verdaccio-2.1.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.4.tgz", - "sha": "350ac2c4d1652984ef7bb51b55fe83818b4bbd39", - "registry": "npmjs" - }, - "verdaccio-2.1.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.5.tgz", - "sha": "652f28737929109b0605a4eacdc03383c2c30f40", - "registry": "npmjs" - }, - "verdaccio-2.1.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.6.tgz", - "sha": "376aec5fede26c7487e45116b2ddf671d6595bc6", - "registry": "npmjs" - }, - "verdaccio-2.1.7.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.1.7.tgz", - "sha": "c1ca28242e225298f61baff0a6fad8409cff4785", - "registry": "npmjs" - }, - "verdaccio-2.2.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.0.tgz", - "sha": "d338539779919e7256517512fb1c4ea2054ad95f", - "registry": "npmjs" - }, - "verdaccio-2.2.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.1.tgz", - "sha": "4638e10bc3d77d2b36465801a1af9703b88dd027", - "registry": "npmjs" - }, - "verdaccio-2.2.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.2.tgz", - "sha": "795a8662b0552f76ed5f70c5f656c740509217bb", - "registry": "npmjs" - }, - "verdaccio-2.2.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.3.tgz", - "sha": "dfd4f402d8b09b67e156de860a72722230aef59b", - "registry": "npmjs" - }, - "verdaccio-2.2.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.5.tgz", - "sha": "ae5525bcf6815beb8f7f3d82cb5a6ef87edae45b", - "registry": "npmjs" - }, - "verdaccio-2.2.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.6.tgz", - "sha": "5bc990ba5bb9c723dfa63ab98bbd874881204119", - "registry": "npmjs" - }, - "verdaccio-2.3.0-beta.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta.tgz", - "sha": "8c60a7b1bc75ed76d0d2fcbe20898d57c2c4a180", - "registry": "npmjs" - }, - "verdaccio-2.2.7-r.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.2.7-r.tgz", - "sha": "0776171c6750a62c79d0177ee068cf38eaa958f0", - "registry": "npmjs" - }, - "verdaccio-2.3.0-beta-1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-1.tgz", - "sha": "5fcf6252bd1edd2ab3b364597649c17283f9c2ad", - "registry": "npmjs" - }, - "verdaccio-2.3.0-beta-2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-2.tgz", - "sha": "7fd71f4740370c6cb52b3c499a4a19647c8bb140", - "registry": "npmjs" - }, - "verdaccio-2.3.0-beta-3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-3.tgz", - "sha": "2f9e0829e3975c5e412940fbc281f6fada7c343c", - "registry": "npmjs" - }, - "verdaccio-2.3.0-beta-4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0-beta-4.tgz", - "sha": "cd1c50075ca6160610d36bc302c4ec91f9bf846c", - "registry": "npmjs" - }, - "verdaccio-2.3.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.0.tgz", - "sha": "9876f5e3085ff03a8a20f725156047d96fb03950", - "registry": "npmjs" - }, - "verdaccio-2.3.1-pre.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.1-pre.tgz", - "sha": "017766caf06dee62648a62aba93fbafb189c3c83", - "registry": "npmjs" - }, - "verdaccio-2.3.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.1.tgz", - "sha": "b1f58d73d615324c001385d48c668bf4ab38ddec", - "registry": "npmjs" - }, - "verdaccio-2.3.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.2.tgz", - "sha": "e4b4c29784d5d8ee5a6a94f44ac8fb7cf027960a", - "registry": "npmjs" - }, - "verdaccio-2.3.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.3.tgz", - "sha": "bc6fe5551c0c3e9b3a52094f432d37542fda1e95", - "registry": "npmjs" - }, - "verdaccio-2.3.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.4.tgz", - "sha": "d1986d162abc8c244496730e3130bad85ab33dcc", - "registry": "npmjs" - }, - "verdaccio-2.3.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.5.tgz", - "sha": "cee063a9aeaae8f467ea28888694b82aa3dc45cf", - "registry": "npmjs" - }, - "verdaccio-2.3.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.3.6.tgz", - "sha": "7165e74cd3c1bc6a459dc9a061c8a7f902d42c80", - "registry": "npmjs" - }, - "verdaccio-2.4.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.4.0.tgz", - "sha": "fc1b900fc8eaec6e9b41553ff0a71d1226cef56b", - "registry": "npmjs" - }, - "verdaccio-2.4.1-beta.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.4.1-beta.tgz", - "sha": "0b3f0514529c14f37ca79ecede69db65a85dd061", - "registry": "npmjs" - }, - "verdaccio-2.5.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.5.0.tgz", - "sha": "70363dad6e7fbf779cbcbd4d202961455d1f5701", - "registry": "npmjs" - }, - "verdaccio-2.5.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.5.1.tgz", - "sha": "e8e8fb46f84a7bdbffc53b9091263cc41d63d8e4", - "registry": "npmjs" - }, - "verdaccio-2.6.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.0.tgz", - "sha": "814142f4a439641030df2c1d6c8f46b4d943b2f4", - "registry": "npmjs" - }, - "verdaccio-2.6.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.1.tgz", - "sha": "869aafb27dcefc59d88dff5f2a295ccd8680cd9c", - "registry": "npmjs" - }, - "verdaccio-2.6.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.2.tgz", - "sha": "d0934ca5b27d379bbdb6cbd0cab8915b67ade8ff", - "registry": "npmjs" - }, - "verdaccio-2.6.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.3.tgz", - "sha": "3ae0bcbb4c17d50e48e5be51bddf2dedcdeef754", - "registry": "npmjs" - }, - "verdaccio-2.6.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.4.tgz", - "sha": "71043772b3bd06421d7950361c89516464680bad", - "registry": "npmjs" - }, - "verdaccio-2.6.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.5.tgz", - "sha": "ae9f6a68e1114f3dbbeb6859d64787f898a9a778", - "registry": "npmjs" - }, - "verdaccio-2.6.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.6.6.tgz", - "sha": "f01ba2fcf638b5863f69a6c142798bc41216789f", - "registry": "npmjs" - }, - "verdaccio-2.7.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.0.tgz", - "sha": "97fb5b0fe92ea57f116e7c75c45451de23022d9d", - "registry": "npmjs" - }, - "verdaccio-2.7.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.1.tgz", - "sha": "174cc66fb656c4379eb1f5f512e8c6528a0efab8", - "registry": "npmjs" - }, - "verdaccio-2.7.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.2.tgz", - "sha": "ab9c84aa43ddd630096bca0862bbca44c764986b", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.1.tgz", - "sha": "6aac5044a7c31985fe5d8fea15a6f8d67fc9709f", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.2.tgz", - "sha": "7dce0c76127925123030625d797688e284e75c11", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.3.tgz", - "sha": "5fcb51ae0c488506c6af4aad70a544853d49e09a", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.4.tgz", - "sha": "4ac2a260fd18e3792da21f5eb307622f803bd918", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.7.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.7.tgz", - "sha": "af594dcd824fc5e742b5249fe3103d175afb6e5a", - "registry": "npmjs" - }, - "verdaccio-2.7.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.3.tgz", - "sha": "94ae13fc2e3517d1c541bb35236b8cb50ba327c1", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.8.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.8.tgz", - "sha": "e62fe2925dc3216eff163e4d50f275ed34d8d09b", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.9.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.9.tgz", - "sha": "cbede2d33604a84201076ea01fb02e02733f3639", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.10.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.10.tgz", - "sha": "23649503c2abdab84f8fe97335616275005bd915", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.11.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.11.tgz", - "sha": "80f79165aa3d60404a3f51141add1937e322ea3f", - "registry": "npmjs" - }, - "verdaccio-2.7.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-2.7.4.tgz", - "sha": "ecf285d65ddad2e533b3d9aac06b8f643465d76d", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.12.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.12.tgz", - "sha": "eb3b4eae4b76fc40b43a99f816d6461dbeb44b42", - "registry": "npmjs" - }, - "verdaccio-3.0.0-alpha.13.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-alpha.13.tgz", - "sha": "98475c87027b689ee1d90d89e0cd0cbc203f51ff", - "registry": "npmjs" - }, - "verdaccio-3.0.0-test.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-test.1.tgz", - "sha": "2606e20ffa5fe6e900c7d9528e94861b1ed287e7", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.0.tgz", - "sha": "7405f7e8ee943e9670b46c3ffeb88a147d9fbda0", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.1.tgz", - "sha": "86a020c414d636fc2f662923c347e390729178ff", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.2.tgz", - "sha": "3a5135c49f1a918464e4bcddacd5b0a3b50e16d4", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.4.tgz", - "sha": "154e6e57850a99d04963ceb5e43b8004a6057809", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.5.tgz", - "sha": "c37cad0456f43b91ee1e996c73eea5ebec194f38", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.6.tgz", - "sha": "38c5819e6ff9d749562ead888dfae527213a3692", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.7.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.7.tgz", - "sha": "c7a9e1622705ee37411ea7a19a6272056fc5b1be", - "registry": "npmjs" - }, - "verdaccio-0.1.7.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-0.1.7.tgz", - "sha": "b3564ee0e396ea7f46d9ba4f1e2ba3f35a7076ad", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.8.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.8.tgz", - "sha": "08afbb595f12947cfe1c82bd9e110e88da505ef4", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.9.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.9.tgz", - "sha": "e47862f9e71fc278f953fbe04b2d45717c76df9a", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.10.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.10.tgz", - "sha": "40be1c27b09aef4fb5abb52118b2efcec7ddbc97", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.11.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.11.tgz", - "sha": "bd6e13e471ba05df52acd4b3ce3318d7d0a9da73", - "registry": "npmjs" - }, - "verdaccio-3.0.0-beta.12.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0-beta.12.tgz", - "sha": "3f2f4a8ef36189a01246357bbed2d3c066adb5b4", - "registry": "npmjs" - }, - "verdaccio-3.0.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.0.tgz", - "sha": "93a4ee9f6ef68040e6976ff09d6e3022ba4f43d5", - "registry": "npmjs" - }, - "verdaccio-3.0.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.1.tgz", - "sha": "ac7d5da8429f75df1ba0495ea5c3937dcc939977", - "registry": "npmjs" - }, - "verdaccio-3.0.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.0.2.tgz", - "sha": "f9d81e2db637e03a8d75a43252157559cbd5fc20", - "registry": "npmjs" - }, - "verdaccio-3.1.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.1.0.tgz", - "sha": "b85849f91bc5d135fcacda8b7aaed80145fa3b10", - "registry": "npmjs" - }, - "verdaccio-3.1.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.1.1.tgz", - "sha": "00fc2ff394262c83f8d7729ed3793f6f4b143530", - "registry": "npmjs" - }, - "verdaccio-3.1.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.1.2.tgz", - "sha": "0c00b006b77077009fbd12347c9b5affaf5781d5", - "registry": "npmjs" - }, - "verdaccio-3.2.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.2.0.tgz", - "sha": "4202e0f7068524fcf363f1feb50ae4066666f29a", - "registry": "npmjs" - }, - "verdaccio-3.3.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.3.0.tgz", - "sha": "bc114176aea8108b958ccfba81ced9a2799198bf", - "registry": "npmjs" - }, - "verdaccio-3.4.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.4.0.tgz", - "sha": "a8f722dbb86492f9a4877c7b33413e0e8ecc4f56", - "registry": "npmjs" - }, - "verdaccio-3.4.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.4.1.tgz", - "sha": "8de25e2c13f4f0b8adab7bfb4c973297c9d15898", - "registry": "npmjs" - }, - "verdaccio-3.5.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.5.0.tgz", - "sha": "efaf91153c36e3173f7d1a668ad24c92f4969cc9", - "registry": "npmjs" - }, - "verdaccio-3.5.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.5.1.tgz", - "sha": "0a82feebb10b55916fbbeb50ac7f031367daf3cd", - "registry": "npmjs" - }, - "verdaccio-3.6.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.6.0.tgz", - "sha": "7e59a0bc808084b9828f105a1267c732d90ebdd8", - "registry": "npmjs" - }, - "verdaccio-3.7.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.7.0.tgz", - "sha": "dc0fc21c16ce4a6e52974bef47d2c8c25d9d315a", - "registry": "npmjs" - }, - "verdaccio-3.7.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.7.1.tgz", - "sha": "a2181fe1e093c3c7401c27acb77453029472f040", - "registry": "npmjs" - }, - "verdaccio-3.8.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.0.tgz", - "sha": "a06f46d90c55b3df5a8102aee10c0f2f802eabc7", - "registry": "npmjs" - }, - "verdaccio-3.8.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.1.tgz", - "sha": "9e34abda9abf3913082633aba34f9eef1cf45420", - "registry": "npmjs" - }, - "verdaccio-3.8.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.2.tgz", - "sha": "655c3c95e8fac068ed4e1c6ecee8c6dcc9ddd5ab", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.0.tgz", - "sha": "d311a350e1cedbb357a07c85157ad97bbcf5d35e", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.1.tgz", - "sha": "4113a54e16e5e31268300c7184c9c577f5a6423f", - "registry": "npmjs" - }, - "verdaccio-3.8.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.3.tgz", - "sha": "4a909f00ec924f859377b8835061329f44c1604c", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.2.tgz", - "sha": "e759599a84ecd111d31d7e5b8c816d93fd8c4f54", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.3.tgz", - "sha": "35f620f52ac3fcb5f39faa5b8da02f1070f8ec8a", - "registry": "npmjs" - }, - "verdaccio-3.8.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.4.tgz", - "sha": "b87c01870102421363d738560b2865027804ce42", - "registry": "npmjs" - }, - "verdaccio-3.8.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.5.tgz", - "sha": "2478f28b4bf75afc32e59880e75c4e21def917d6", - "registry": "npmjs" - }, - "verdaccio-3.8.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.8.6.tgz", - "sha": "6d2c87944f86d3431897140aa37bda327c5a3539", - "registry": "npmjs" - }, - "verdaccio-3.9.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.9.0.tgz", - "sha": "a6d7c25525a014dff0d91ec22fe4c61edbcdaac0", - "registry": "npmjs" - }, - "verdaccio-3.10.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.10.0.tgz", - "sha": "6c71e1fc73489e2f6f0a4b4b2ea3dddf8861cefc", - "registry": "npmjs" - }, - "verdaccio-3.10.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.10.1.tgz", - "sha": "35a4997685c3a92518959f3b7d48487a164d6289", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.4.tgz", - "sha": "d73ffc4c0bfccb865a86cd76c1d78e3e41b30e9a", - "registry": "npmjs" - }, - "verdaccio-3.10.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.10.2.tgz", - "sha": "66fe48130c9442223a6f93cfc06f3ae57766fed4", - "registry": "npmjs" - }, - "verdaccio-3.11.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.0.tgz", - "sha": "65e85f88b6b432be646da84ac79eb43b02ebb85a", - "registry": "npmjs" - }, - "verdaccio-3.11.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.1.tgz", - "sha": "435d5caed6981b4593f7f5db6c053d6a644eb319", - "registry": "npmjs" - }, - "verdaccio-3.11.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.2.tgz", - "sha": "3c95230df38f4f1fe863ba40d507ad92200964c7", - "registry": "npmjs" - }, - "verdaccio-3.11.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.3.tgz", - "sha": "cfca870418d5d2ebe490b45685c7853d2b4fd7c2", - "registry": "npmjs" - }, - "verdaccio-3.11.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.4.tgz", - "sha": "0516460afcc208239f892f2d635fdae872a0ff41", - "registry": "npmjs" - }, - "verdaccio-3.11.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.5.tgz", - "sha": "813853959efbaf28d13f4972156dc4c52897fa57", - "registry": "npmjs" - }, - "verdaccio-3.11.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-3.11.6.tgz", - "sha": "dd43237ad27364048fbc812620e2b26aef241950", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.5.tgz", - "sha": "cb9307c6b91c7f9483062e6cea87a08b0fa1b3c0", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.6.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.6.tgz", - "sha": "ccbdf7769d734d404f8b1fa617528f346cd97453", - "registry": "npmjs" - }, - "verdaccio-4.0.0-alpha.7.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-alpha.7.tgz", - "sha": "2fda3d341b326c94d3e6b134cdd8311dd8fcb7ea", - "registry": "npmjs" - }, - "verdaccio-4.0.0-beta.0.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.0.tgz", - "sha": "049d6ae1a20c7c2ad216799182df64c2508cfcab", - "registry": "npmjs" - }, - "verdaccio-4.0.0-beta.1.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.1.tgz", - "sha": "0ce6a3b906e3c7b6896f17923ace979a254215e5", - "registry": "npmjs" - }, - "verdaccio-4.0.0-beta.2.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.2.tgz", - "sha": "0b9c531462fe003f1282ab777bb0db9ecf27bc00", - "registry": "npmjs" - }, - "verdaccio-4.0.0-beta.3.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.3.tgz", - "sha": "5e2a2a5565ff5066e35c235d92b726f93ace828f", - "registry": "npmjs" - }, - "verdaccio-4.0.0-beta.4.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.4.tgz", - "sha": "8f24a88801b6526182983eb1a29676ba7299e269", - "registry": "npmjs" - }, - "verdaccio-4.0.0-beta.5.tgz": { - "url": "https://registry.npmjs.org/verdaccio/-/verdaccio-4.0.0-beta.5.tgz", - "sha": "a3db47d1bfced1a09b20bb4cc440f3882d89174f", - "registry": "npmjs" - } - }, - "_attachments": {}, - "_rev": "1-c74c5ac08b3d43f7", - "_id": "verdaccio", - "readme": "![verdaccio logo](https://github.com/verdaccio/verdaccio/raw/master/assets/bitmap/verdaccio%402x.png)\n\n![verdaccio gif](https://user-images.githubusercontent.com/558752/52916111-fa4ba980-32db-11e9-8a64-f4e06eb920b3.png)\n\n# Version 4\n\n[Verdaccio](https://verdaccio.org/) is a simple, **zero-config-required local private npm registry**.\nNo need for an entire database just to get started! Verdaccio comes out of the box with\n**its own tiny database**, and the ability to proxy other registries (eg. npmjs.org),\ncaching the downloaded modules along the way.\nFor those looking to extend their storage capabilities, Verdaccio\n**supports various community-made plugins to hook into services such as Amazon's s3,\nGoogle Cloud Storage** or create your own plugin.\n\n\n[![verdaccio (latest)](https://img.shields.io/npm/v/verdaccio/latest.svg)](https://www.npmjs.com/package/verdaccio)\n[![verdaccio (next)](https://img.shields.io/npm/v/verdaccio/next.svg)](https://www.npmjs.com/package/verdaccio)\n[![verdaccio (next)](http://img.shields.io/npm/dy/verdaccio.svg)](https://www.npmjs.com/package/verdaccio)\n[![docker pulls](https://img.shields.io/docker/pulls/verdaccio/verdaccio.svg?maxAge=43200)](https://verdaccio.org/docs/en/docker.html)\n[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)\n[![stackshare](https://img.shields.io/badge/Follow%20on-StackShare-blue.svg?logo=stackshare&style=flat)](https://stackshare.io/verdaccio)\n\n![circle ci status](https://circleci.com/gh/verdaccio/verdaccio.svg?style=shield&circle-token=:circle-token)\n[![codecov](https://img.shields.io/codecov/c/github/verdaccio/verdaccio/master.svg)](https://codecov.io/gh/verdaccio/verdaccio)\n[![discord](https://img.shields.io/discord/388674437219745793.svg)](http://chat.verdaccio.org/)\n[![node](https://img.shields.io/node/v/verdaccio/latest.svg)](https://www.npmjs.com/package/verdaccio)\n![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)\n[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)\n\n\n[![Twitter followers](https://img.shields.io/twitter/follow/verdaccio_npm.svg?style=social&label=Follow)](https://twitter.com/verdaccio_npm)\n[![Github](https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Stars)](https://github.com/verdaccio/verdaccio/stargazers)\n\n\n## Install\n\nInstall with npm:\n\n```bash\nnpm install --global verdaccio\n```\n\n## What does Verdaccio do for me?\n\n### Use private packages\n\nIf you want to use all benefits of npm package system in your company without sending all code to the public, and use your private packages just as easy as public ones.\n\n### Cache npmjs.org registry\n\n If you have more than one server you want to install packages on, you might want to use this to decrease latency\n (presumably \"slow\" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache) or avoid issues like *[How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)*, *[Many packages suddenly disappeared](https://github.com/npm/registry-issue-archive/issues/255)* or *[Registry returns 404 for a package I have installed before](https://github.com/npm/registry-issue-archive/issues/329)*.\n\n### Link multiple registries\n\nIf you use multiples registries in your organization and need to fetch packages from multiple sources in one single project you might take advance of the uplinks feature with Verdaccio, chaining multiple registries and fetching from one single endpoint.\n\n\n### Override public packages\n\nIf you want to use a modified version of some 3rd-party package (for example, you found a bug, but maintainer didn't accept pull request yet), you can publish your version locally under the same name. See in detail each of these [use cases](https://github.com/verdaccio/verdaccio/tree/master/docs/use-cases.md).\n\n### E2E Testing\n\nVerdaccio has proved to be a lightweight registry that can be\nbooted in a couple of seconds, fast enough for any CI. Many open source projects use verdaccio for end to end testing, to mention some examples, **create-react-app**, **mozilla neutrino**, **pnpm**, **storybook**, **alfresco** or **eclipse theia**. You can read more in dedicated article to E2E in our blog.\n\n\n## Get Started\n\nRun in your terminal\n\n```bash\nverdaccio\n```\n\nYou would need set some npm configuration, this is optional.\n\n```bash\n$ npm set registry http://localhost:4873/\n```\n\nNow you can navigate to [http://localhost:4873/](http://localhost:4873/) where your local packages will be listed and can be searched.\n\n> Warning: Verdaccio does not currently support PM2's cluster mode, running it with cluster mode may cause unknown behavior.\n\n## Publishing\n\n#### 1. create an user and log in\n\n```bash\nnpm adduser --registry http://localhost:4873\n```\n\n> if you use HTTPS, add an appropriate CA information (\"null\" means get CA list from OS)\n\n```bash\n$ npm set ca null\n```\n\n#### 2. publish your package\n\n```bash\nnpm publish --registry http://localhost:4873\n```\n\nThis will prompt you for user credentials which will be saved on the `verdaccio` server.\n\n\n## Docker\n\nBelow are the most commonly needed informations,\nevery aspect of Docker and verdaccio is [documented separately](https://www.verdaccio.org/docs/en/docker.html)\n\n\n```\ndocker pull verdaccio/verdaccio\n```\n\nAvailable as [tags](https://hub.docker.com/r/verdaccio/verdaccio/tags/).\n\n```\ndocker pull verdaccio/verdaccio:4.0.0\n```\n\n### Running verdaccio using Docker\n\nTo run the docker container:\n\n```bash\ndocker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio\n```\n\nDocker examples are available [in this repository](https://github.com/verdaccio/docker-examples).\n\n## Compatibility\n\nVerdaccio aims to support all features of a standard npm client that make sense to support in private repository. Unfortunately, it isn't always possible.\n\n### Basic features\n\n- Installing packages (npm install, npm upgrade, etc.) - **supported**\n- Publishing packages (npm publish) - **supported**\n\n### Advanced package control\n\n- Unpublishing packages (npm unpublish) - **supported**\n- Tagging (npm tag) - **supported**\n- Deprecation (npm deprecate) - not supported - *PR-welcome*\n\n### User management\n\n- Registering new users (npm adduser {newuser}) - **supported**\n- Change password (npm profile set password) - **supported**\n- Transferring ownership (npm owner add {user} {pkg}) - not supported, *PR-welcome*\n\n### Miscellany\n\n- Searching (npm search) - **supported** (cli / browser)\n- Ping (npm ping) - **supported**\n- Starring (npm star, npm unstar, npm stars) - **supported**\n\n### Security\n\n- npm audit - **supported**\n\n## Core Team\n\nThe core team is the responsable for drive this project, team is ordered by antiquity and areas of responsability.\n\n| [Juan Picado](https://github.com/juanpicado) | [Ayush Sharma](https://github.com/ayusharma) | [Sergio Hg](https://github.com/sergiohgz) | [Priscila Oliveria](https://github.com/priscilawebdev) | \n|---|---|---|---|\n| ![jotadeveloper](https://avatars3.githubusercontent.com/u/558752?s=120&v=4) | ![ayusharma](https://avatars2.githubusercontent.com/u/6918450?s=120&v=4) | ![sergiohgz](https://avatars2.githubusercontent.com/u/14012309?s=120&v=4) | ![priscilawebdev](https://avatars2.githubusercontent.com/u/29228205?s=120&v=4) | \n| [@jotadeveloper](https://twitter.com/jotadeveloper) | [@ayusharma_](https://twitter.com/ayusharma_) | [@sergiohgz](https://twitter.com/sergiohgz) | [@priscilawebdev](https://twitter.com/priscilawebdev) |\n| All areas | All areas | Docker,Builds,Stack | UI, Stack | \n\nYou can find and chat with then over Discord, click [here](http://chat.verdaccio.org) or follow them at *Twitter*.\n\n## Who is using Verdaccio?\n\n* [create-react-app](https://github.com/facebook/create-react-app/blob/master/CONTRIBUTING.md#contributing-to-e2e-end-to-end-tests) *(+64k ⭐️)*\n* [Storybook](https://github.com/storybooks/storybook) *(+34k ⭐️)*\n* [Gatsby](https://github.com/gatsbyjs/gatsby) *(+31k ⭐️)* \n* [Uppy](https://github.com/transloadit/uppy) *(+15k ⭐️)*\n* [Aurelia Framework](https://github.com/aurelia) *(+10k ⭐️)*\n* [bit](https://github.com/teambit/bit) *(+6k ⭐️)*\n* [pnpm](https://github.com/pnpm/pnpm) *(+5k ⭐️)*\n* [Mozilla Neutrino](https://github.com/neutrinojs/neutrino) *(+3k ⭐️)*\n* [Amazon Web Services Cloud Development Kit](https://github.com/awslabs/aws-cdk) *(+1.8k ⭐️)*\n* [Hyperledger Composer](https://github.com/hyperledger/composer) *(+1.6k ⭐️)*\n\n## Special Thanks\n\nThanks to the following companies to help us to achieve our goals providing free open source licenses.\n\n[![jetbrain](assets/thanks/jetbrains/logo.png)](https://www.jetbrains.com/)\n[![crowdin](assets/thanks/crowdin/logo.png)](https://crowdin.com/)\n[![balsamiq](assets/thanks/balsamiq/logo.jpg)](https://balsamiq.com/)\n\n## Open Collective Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/verdaccio#sponsor)]\n\n[![sponsor](https://opencollective.com/verdaccio/sponsor/0/avatar.svg)](https://opencollective.com/verdaccio/sponsor/0/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/1/avatar.svg)](https://opencollective.com/verdaccio/sponsor/1/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/2/avatar.svg)](https://opencollective.com/verdaccio/sponsor/2/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/3/avatar.svg)](https://opencollective.com/verdaccio/sponsor/3/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/4/avatar.svg)](https://opencollective.com/verdaccio/sponsor/4/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/5/avatar.svg)](https://opencollective.com/verdaccio/sponsor/5/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/6/avatar.svg)](https://opencollective.com/verdaccio/sponsor/6/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/7/avatar.svg)](https://opencollective.com/verdaccio/sponsor/7/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/8/avatar.svg)](https://opencollective.com/verdaccio/sponsor/8/website)\n[![sponsor](https://opencollective.com/verdaccio/sponsor/9/avatar.svg)](https://opencollective.com/verdaccio/sponsor/9/website)\n\n## Open Collective Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/verdaccio#backer)]\n\n[![backers](https://opencollective.com/verdaccio/backers.svg?width=890)](https://opencollective.com/verdaccio#backers)\n\n## Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n\n[![contrubitors](https://opencollective.com/verdaccio/contributors.svg?width=890&button=true)](../../graphs/contributors)\n\n### FAQ / Contact / Troubleshoot\n\nIf you have any issue you can try the following options, do no desist to ask or check our issues database, perhaps someone has asked already what you are looking for.\n\n* [Blog](https://medium.com/verdaccio)\n* [Donations](https://opencollective.com/verdaccio)\n* [Roadmaps](https://github.com/verdaccio/verdaccio/projects)\n* [Reporting an issue](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug)\n* [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss)\n* [Chat](http://chat.verdaccio.org/)\n* [Logos](https://verdaccio.org/docs/en/logo)\n* [FAQ](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20)\n* [Docker Examples](https://github.com/verdaccio/docker-examples)\n\n### License\n\nVerdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE)\n\nThe Verdaccio documentation and logos (excluding /thanks, e.g., .md, .png, .sketch) files within the /assets folder) is\n [Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs)." -} diff --git a/docker-examples/v4/reverse_proxy/nginx/root_path/conf/nginx/Dockerfile b/docker-examples/v4/reverse_proxy/nginx/root_path/conf/nginx/Dockerfile deleted file mode 100644 index acdaf67bf..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/root_path/conf/nginx/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM tutum/nginx -RUN rm /etc/nginx/sites-enabled/default -ADD sites-enabled /etc/nginx/sites-enabled diff --git a/docker-examples/v4/reverse_proxy/nginx/root_path/conf/nginx/sites-enabled/verdaccio-conf b/docker-examples/v4/reverse_proxy/nginx/root_path/conf/nginx/sites-enabled/verdaccio-conf deleted file mode 100644 index dd3f86630..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/root_path/conf/nginx/sites-enabled/verdaccio-conf +++ /dev/null @@ -1,14 +0,0 @@ -server { - listen 80 default_server; - access_log /var/log/nginx/verdaccio.log; - charset utf-8; - location / { - proxy_pass http://verdaccio:4873/; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-NginX-Proxy true; - proxy_ssl_session_reuse off; - proxy_set_header Host $http_host; - proxy_redirect off; - } -} \ No newline at end of file diff --git a/docker-examples/v4/reverse_proxy/nginx/root_path/docker-compose.yaml b/docker-examples/v4/reverse_proxy/nginx/root_path/docker-compose.yaml deleted file mode 100644 index 05fa6cc3c..000000000 --- a/docker-examples/v4/reverse_proxy/nginx/root_path/docker-compose.yaml +++ /dev/null @@ -1,26 +0,0 @@ -version: '2' - -services: - verdaccio: - image: verdaccio/verdaccio:4 - container_name: verdaccio_root_path - ports: - - '4873:4873' - volumes: - - verdaccio:/verdaccio - - nginx: - restart: always - build: conf/nginx - ports: - - '80:80' - volumes: - - /www/public - volumes_from: - - verdaccio - links: - - verdaccio:verdaccio - -volumes: - verdaccio: - driver: local diff --git a/docs/env.variables.md b/docs/env.variables.md deleted file mode 100644 index d0cac248d..000000000 --- a/docs/env.variables.md +++ /dev/null @@ -1,10 +0,0 @@ -# Environment variables - -A full list of available environment variables that allow override -internal features. - -#### VERDACCIO_HANDLE_KILL_SIGNALS - -Enables gracefully shutdown, more info [here](https://github.com/verdaccio/verdaccio/pull/2121). - -This will be enable by default on Verdaccio 5. diff --git a/docs/where-are-docs.md b/docs/where-are-docs.md deleted file mode 100644 index c30bbe410..000000000 --- a/docs/where-are-docs.md +++ /dev/null @@ -1,5 +0,0 @@ -## Where are the docs now? - -The documentation was relocated to the following website: - -https://github.com/verdaccio/website diff --git a/index.js b/index.js deleted file mode 100644 index 86b45f8e8..000000000 --- a/index.js +++ /dev/null @@ -1 +0,0 @@ -export {default as startVerdaccio} from './build/index'; diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index de75148a8..000000000 --- a/jest.config.js +++ /dev/null @@ -1,44 +0,0 @@ -/* eslint comma-dangle: 0 */ - -module.exports = { - name: 'verdaccio-unit-jest', - verbose: true, - collectCoverage: true, - reporters: ["default", ["jest-junit", { outputDirectory: 'reports' }]], - moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], - testURL: 'http://localhost', - testRegex: '(test/unit.*\\.spec)\\.ts', - // Some unit tests rely on data folders that look like packages. This confuses jest-hast-map - // when it tries to scan for package.json files. - transform: { - '^.+\\.(js|jsx|ts|tsx)$': 'babel-jest' - }, - modulePathIgnorePatterns: [ - '/test/unit/partials/mock-store/.*/package.json', - '/test/functional/store/.*/package.json', - '/test/unit/partials/store/.*/package.json', - '/coverage', - '/docs', - '/debug', - '/scripts', - '/.circleci', - '/tools', - '/wiki', - '/systemd', - '/flow-typed', - 'test/unit/partials/mock-store/.*/package.json', - '/test/functional/store/.*/package.json', - '/build', - '/.vscode/', - ], - testPathIgnorePatterns: [ - '__snapshots__', - '/build', - ], - coveragePathIgnorePatterns: [ - 'node_modules', - 'fixtures', - '/src/api/debug', - '/test', - ] -}; diff --git a/jestEnvironment.js b/jestEnvironment.js deleted file mode 100644 index aeb87e8f6..000000000 --- a/jestEnvironment.js +++ /dev/null @@ -1 +0,0 @@ -jest.requireActual('babel/polyfill'); diff --git a/package.json b/package.json deleted file mode 100644 index 2382958ea..000000000 --- a/package.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "name": "verdaccio", - "version": "4.13.2", - "description": "A lightweight private npm proxy registry", - "author": { - "name": "Verdaccio Maintainers", - "email": "verdaccio.npm@gmail.com" - }, - "repository": { - "type": "git", - "url": "git://github.com/verdaccio/verdaccio" - }, - "homepage": "https://verdaccio.org", - "main": "build/index.js", - "bin": "./bin/verdaccio", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio" - }, - "dependencies": { - "@verdaccio/commons-api": "9.7.1", - "@verdaccio/local-storage": "9.7.5", - "@verdaccio/readme": "9.7.5", - "@verdaccio/streams": "9.7.2", - "@verdaccio/ui-theme": "1.15.1", - "JSONStream": "1.3.5", - "async": "3.2.3", - "body-parser": "1.19.0", - "bunyan": "1.8.15", - "commander": "3.0.2", - "compression": "1.7.4", - "cookies": "0.8.0", - "cors": "2.8.5", - "dayjs": "1.10.4", - "envinfo": "7.7.4", - "express": "4.17.1", - "handlebars": "4.7.7", - "http-errors": "1.8.0", - "js-yaml": "3.14.1", - "jsonwebtoken": "8.5.1", - "kleur": "4.1.4", - "lodash": "4.17.21", - "lunr-mutable-indexes": "2.3.2", - "marked": "2.0.1", - "mime": "2.5.2", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "mv": "2.1.1", - "pkginfo": "0.4.1", - "request": "2.88.0", - "semver": "7.3.4", - "verdaccio-audit": "9.7.3", - "verdaccio-htpasswd": "9.7.2" - }, - "devDependencies": { - "@babel/cli": "7.13.0", - "@babel/core": "7.13.8", - "@babel/node": "7.13.0", - "@babel/plugin-proposal-class-properties": "7.13.0", - "@babel/plugin-proposal-decorators": "7.13.5", - "@babel/plugin-proposal-export-namespace-from": "7.12.13", - "@babel/plugin-proposal-function-sent": "7.12.13", - "@babel/plugin-proposal-json-strings": "7.13.8", - "@babel/plugin-proposal-numeric-separator": "7.12.13", - "@babel/plugin-proposal-object-rest-spread": "7.13.8", - "@babel/plugin-proposal-throw-expressions": "7.12.13", - "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/plugin-syntax-import-meta": "7.10.4", - "@babel/plugin-transform-async-to-generator": "7.13.0", - "@babel/plugin-transform-classes": "7.13.0", - "@babel/plugin-transform-runtime": "7.13.9", - "@babel/polyfill": "^7.12.1", - "@babel/preset-env": "7.13.9", - "@babel/preset-typescript": "7.13.0", - "@babel/register": "7.13.8", - "@babel/runtime": "7.13.9", - "@commitlint/cli": "8.3.5", - "@commitlint/config-conventional": "8.3.4", - "@octokit/rest": "16.43.2", - "@types/async": "3.2.4", - "@types/bunyan": "1.8.6", - "@types/express": "4.17.1", - "@types/http-errors": "1.6.3", - "@types/jest": "26.0.14", - "@types/lodash": "4.14.157", - "@types/mime": "2.0.1", - "@types/minimatch": "3.0.3", - "@types/node": "12.12.21", - "@types/request": "2.48.3", - "@types/semver": "6.2.0", - "@typescript-eslint/eslint-plugin": "4.13.0", - "@typescript-eslint/parser": "4.13.0", - "@verdaccio/eslint-config": "^8.5.0", - "@verdaccio/types": "^9.7.2", - "all-contributors-cli": "6.20.0", - "babel-eslint": "10.1.0", - "babel-jest": "26.6.3", - "babel-loader": "^8.2.2", - "babel-plugin-dynamic-import-node": "2.3.3", - "babel-plugin-emotion": "10.0.33", - "codecov": "3.8.1", - "cross-env": "7.0.3", - "detect-secrets": "1.0.6", - "eslint": "7.19.0", - "eslint-config-google": "0.14.0", - "eslint-config-prettier": "7.2.0", - "eslint-plugin-babel": "5.3.1", - "eslint-plugin-import": "2.22.1", - "eslint-plugin-jest": "24.1.3", - "eslint-plugin-jsx-a11y": "6.4.1", - "eslint-plugin-react": "7.22.0", - "eslint-plugin-react-hooks": "4.2.0", - "eslint-plugin-simple-import-sort": "7.0.0", - "eslint-plugin-verdaccio": "9.6.1", - "fs-extra": "9.1.0", - "get-stdin": "7.0.0", - "husky": "2.7.0", - "in-publish": "2.0.1", - "jest": "25.5.4", - "jest-environment-node": "25.5.0", - "jest-junit": "9.0.0", - "lint-staged": "8.2.1", - "lockfile-lint": "4.3.7", - "nock": "12.0.3", - "prettier": "2.2.1", - "puppeteer": "5.5.0", - "rimraf": "3.0.2", - "selfsigned": "1.10.8", - "standard-version": "9.1.1", - "supertest": "6.1.1", - "typescript": "3.9.9", - "verdaccio": "^4.5.1", - "verdaccio-auth-memory": "^9.7.2", - "verdaccio-memory": "^9.7.2" - }, - "keywords": [ - "private", - "package", - "repository", - "registry", - "enterprise", - "modules", - "proxy", - "server", - "verdaccio" - ], - "scripts": { - "release": "standard-version -a -s", - "prepublish": "in-publish && yarn run code:build || not-in-publish", - "type-check": "tsc --noEmit", - "type-check:watch": "yarn run type-check -- --watch", - "pretest": "yarn run code:build", - "format": "prettier --single-quote --trailing-comma none --write \"{src,test}/**/*.ts\"", - "format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,yml,yaml,md}\" --debug-check", - "test": "yarn run test:unit", - "test:clean": "npx jest --clearCache", - "test:unit": "cross-env NODE_ENV=test TZ=UTC FORCE_COLOR=1 jest --config ./jest.config.js --maxWorkers 2 --passWithNoTests", - "test:functional": "cross-env NODE_ENV=test jest --config ./test/jest.config.functional.js --testPathPattern ./test/functional/index* --passWithNoTests", - "test:e2e:cli": "cross-env NODE_ENV=test jest --config ./test/e2e-cli/jest.config.e2e.cli.js --passWithNoTests", - "test:e2e": "yarn jest --config ./test/jest.config.e2e.js", - "test:all": "yarn run test && yarn run test:functional && yarn run test:e2e & yarn run test:e2e:pkg", - "pre:ci": "yarn run lint", - "coverage:publish": "codecov", - "lint": "yarn run type-check && yarn run lint:ts", - "lint:ts": "eslint \"**/*.{js,jsx,ts,tsx}\"", - "lint:lockfile": "lockfile-lint --path yarn.lock --type yarn --validate-https --allowed-hosts verdaccio npm yarn", - "dev:start": "yarn babel-node --extensions \".ts,.tsx\" src/lib/cli", - "code:build": "yarn babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps inline", - "code:docker-build": "yarn babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\"", - "docker": "docker build -t verdaccio/verdaccio:local . --no-cache", - "docker:run": "docker run -it --rm -p 4873:4873 verdaccio/verdaccio:local" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "preferGlobal": true, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -e $GIT_PARAMS" - } - }, - "lint-staged": { - "relative": true, - "linters": { - "*": [ - "eslint .", - "prettier --write", - "detect-secrets-launcher --baseline .secrets-baseline", - "git add" - ] - }, - "ignore": [ - "*.json" - ] - }, - "license": "MIT", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/verdaccio", - "logo": "https://opencollective.com/verdaccio/logo.txt" - } -} diff --git a/scripts/e2e-config.yaml b/scripts/e2e-config.yaml deleted file mode 100644 index dae49c84a..000000000 --- a/scripts/e2e-config.yaml +++ /dev/null @@ -1,44 +0,0 @@ -storage: ./storage -plugins: ./plugins - -web: - title: Verdaccio e2e -auth: - htpasswd: - file: ./htpasswd -uplinks: - verdaccio: - url: https://registry.verdaccio.org/ - max_fails: 30 - fail_timeout: 10m - timeout: 60s - cache: false - maxage: 30m - agent_options: - keepAlive: true - maxSockets: 40 - maxFreeSockets: 10 - -packages: - '@*/*': - # scoped packages - access: $all - publish: $authenticated - unpublish: $authenticated - proxy: verdaccio - - '**': - access: $all - publish: $authenticated - unpublish: $authenticated - proxy: verdaccio - -server: - keepAliveTimeout: 60 - -middlewares: - audit: - enabled: true - -logs: - - { type: stdout, format: pretty, level: warn } diff --git a/scripts/e2e-setup-ci.sh b/scripts/e2e-setup-ci.sh deleted file mode 100644 index 5b23210a4..000000000 --- a/scripts/e2e-setup-ci.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -set -e - -HERE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" -TEMP_DIR="$(mktemp -d)" - -cd "${TEMP_DIR}" - -echo $TEMP_DIR -echo $HERE_DIR - -git config --global user.email "you@example.com" -git config --global user.name "John Doe" diff --git a/scripts/github-release.sh b/scripts/github-release.sh deleted file mode 100644 index 85b0f6d2c..000000000 --- a/scripts/github-release.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -# Get the last tag from GitHub -lastTag=$(git describe --tags $(git rev-list --tags --max-count=1)) - -changelog=$(git show $GITHUB_SHA --unified=0 CHANGELOG.md | tail +12 | sed -e 's/^\+//') - -echo "$changelog" - -echo "$changelog" | node scripts/trigger-release.js $lastTag diff --git a/scripts/publish.sh b/scripts/publish.sh deleted file mode 100755 index 431c9e1de..000000000 --- a/scripts/publish.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -# Get the last tag from GitHub -lastTag=$(git describe --tags $(git rev-list --tags --max-count=1)) - -# Print it to the console for verification -echo "Bumping version to new tag: ${lastTag}" - -# creating .npmrc -echo "//$REGISTRY_URL/:_authToken=$REGISTRY_AUTH_TOKEN" > .npmrc - -# Publish to NPM -npm publish --registry https://$REGISTRY_URL/ --tag 4-next diff --git a/scripts/puppeteer-setup-ci.sh b/scripts/puppeteer-setup-ci.sh deleted file mode 100644 index fc74f3170..000000000 --- a/scripts/puppeteer-setup-ci.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -# Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others) -# Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer -# installs, work. https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-in-docker - -wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ - && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \ - && apt-get update \ - && apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst ttf-freefont \ - --no-install-recommends \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /src/*.deb \ - && yarn run test:all \ No newline at end of file diff --git a/scripts/run-verdaccio.js b/scripts/run-verdaccio.js deleted file mode 100644 index 739f5d5be..000000000 --- a/scripts/run-verdaccio.js +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -// this file aims to help local debugging with hot transpilation -// it requires BABEL_ENV=registry set as env variable -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -require('../src/lib/cli'); diff --git a/scripts/trigger-release.js b/scripts/trigger-release.js deleted file mode 100644 index a4ef35e3f..000000000 --- a/scripts/trigger-release.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * @prettier - */ - -'use strict'; - -const [, , /* node */ /* file */ tag] = process.argv; - -const getStdin = require('get-stdin'); -const Octokit = require('@octokit/rest'); -const octokit = new Octokit({ - auth: `token ${process.env.GITHUB_TOKEN}`, -}); - -const [repoOwner, repoName] = process.env.GITHUB_REPOSITORY.split('/'); - -getStdin() - .then(changelog => - octokit.repos.createRelease({ - owner: repoOwner, - repo: repoName, - tag_name: tag, - body: changelog, - draft: false, - }) - ) - .catch(err => { - // eslint-disable-next-line no-console - console.error(err); - process.exit(1); - }); diff --git a/security.txt b/security.txt deleted file mode 100644 index b243ac559..000000000 --- a/security.txt +++ /dev/null @@ -1,5 +0,0 @@ -Contact: verdaccio@pm.me -Encryption: https://verdaccio.nyc3.digitaloceanspaces.com/gpg/publickey.verdaccio@pm.me.asc -Acknowledgments: https://verdaccio.org/thanks.html -Preferred-Languages: en -Policy: https://github.com/verdaccio/verdaccio/security/policy diff --git a/src/api/.eslintrc b/src/api/.eslintrc deleted file mode 100644 index 13384b11c..000000000 --- a/src/api/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "no-useless-escape": 0 - } -} diff --git a/src/api/debug/index.ts b/src/api/debug/index.ts deleted file mode 100644 index 2627ea2fd..000000000 --- a/src/api/debug/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import _ from 'lodash'; -import { Application } from 'express'; -import { $ResponseExtend, $RequestExtend, $NextFunctionVer } from '../../../types'; - -export default (app: Application, selfPath: string): void => { - // Hook for tests only - app.get( - '/-/_debug', - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const doGarbabeCollector = _.isNil(global.gc) === false; - - if (doGarbabeCollector) { - global.gc(); - } - - next({ - pid: process.pid, - // @ts-ignore - main: process.mainModule.filename, - conf: selfPath, - mem: process.memoryUsage(), - gc: doGarbabeCollector - }); - } - ); -}; diff --git a/src/api/endpoint/api/dist-tags.ts b/src/api/endpoint/api/dist-tags.ts deleted file mode 100644 index 12508160c..000000000 --- a/src/api/endpoint/api/dist-tags.ts +++ /dev/null @@ -1,111 +0,0 @@ -import mime from 'mime'; -import _ from 'lodash'; -import { Router } from 'express'; -import { VerdaccioError } from '@verdaccio/commons-api'; -import { Package } from '@verdaccio/types'; -import { media, allow } from '../../middleware'; -import { - IAuth, - $ResponseExtend, - $RequestExtend, - $NextFunctionVer, - IStorageHandler -} from '../../../../types'; -import { API_MESSAGE, HTTP_STATUS, DIST_TAGS } from '../../../lib/constants'; - -export default function (route: Router, auth: IAuth, storage: IStorageHandler): void { - const can = allow(auth); - const tag_package_version = function ( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer - ): $NextFunctionVer { - if (_.isString(req.body) === false) { - return next('route'); - } - - const tags = {}; - tags[req.params.tag] = req.body; - storage.mergeTags(req.params.package, tags, function (err: Error): $NextFunctionVer { - if (err) { - return next(err); - } - res.status(HTTP_STATUS.CREATED); - return next({ ok: API_MESSAGE.TAG_ADDED }); - }); - }; - - // tagging a package - route.put('/:package/:tag', can('publish'), media(mime.getType('json')), tag_package_version); - - route.post( - '/-/package/:package/dist-tags/:tag', - can('publish'), - media(mime.getType('json')), - tag_package_version - ); - - route.put( - '/-/package/:package/dist-tags/:tag', - can('publish'), - media(mime.getType('json')), - tag_package_version - ); - - route.delete( - '/-/package/:package/dist-tags/:tag', - can('publish'), - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const tags = {}; - tags[req.params.tag] = null; - storage.mergeTags(req.params.package, tags, function (err: VerdaccioError): $NextFunctionVer { - if (err) { - return next(err); - } - res.status(HTTP_STATUS.CREATED); - return next({ - ok: API_MESSAGE.TAG_REMOVED - }); - }); - } - ); - - route.get( - '/-/package/:package/dist-tags', - can('access'), - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - storage.getPackage({ - name: req.params.package, - uplinksLook: true, - req, - callback: function (err: VerdaccioError, info: Package): $NextFunctionVer { - if (err) { - return next(err); - } - - next(info[DIST_TAGS]); - } - }); - } - ); - - route.post( - '/-/package/:package/dist-tags', - can('publish'), - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - storage.mergeTags( - req.params.package, - req.body, - function (err: VerdaccioError): $NextFunctionVer { - if (err) { - return next(err); - } - res.status(HTTP_STATUS.CREATED); - return next({ - ok: API_MESSAGE.TAG_UPDATED - }); - } - ); - } - ); -} diff --git a/src/api/endpoint/api/package.ts b/src/api/endpoint/api/package.ts deleted file mode 100644 index 1a23418dc..000000000 --- a/src/api/endpoint/api/package.ts +++ /dev/null @@ -1,102 +0,0 @@ -import _ from 'lodash'; -import { Router } from 'express'; -import { Config, Package } from '@verdaccio/types'; -import { allow } from '../../middleware'; -import { convertDistRemoteToLocalTarballUrls, getVersion, ErrorCode } from '../../../lib/utils'; -import { HEADERS, DIST_TAGS, API_ERROR } from '../../../lib/constants'; -import { - IAuth, - $ResponseExtend, - $RequestExtend, - $NextFunctionVer, - IStorageHandler -} from '../../../../types'; - -const downloadStream = ( - packageName: string, - filename: string, - storage: any, - req: $RequestExtend, - res: $ResponseExtend -): void => { - const stream = storage.getTarball(packageName, filename); - - stream.on('content-length', function (content): void { - res.header('Content-Length', content); - }); - - stream.on('error', function (err): void { - return res.report_error(err); - }); - - res.header(HEADERS.CONTENT_TYPE, HEADERS.OCTET_STREAM); - stream.pipe(res); -}; - -export default function ( - route: Router, - auth: IAuth, - storage: IStorageHandler, - config: Config -): void { - const can = allow(auth); - // TODO: anonymous user? - route.get( - '/:package/:version?', - can('access'), - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const getPackageMetaCallback = function (err, metadata: Package): void { - if (err) { - return next(err); - } - metadata = convertDistRemoteToLocalTarballUrls(metadata, req, config.url_prefix); - - let queryVersion = req.params.version; - if (_.isNil(queryVersion)) { - return next(metadata); - } - - let version = getVersion(metadata, queryVersion); - if (_.isNil(version) === false) { - return next(version); - } - - if (_.isNil(metadata[DIST_TAGS]) === false) { - if (_.isNil(metadata[DIST_TAGS][queryVersion]) === false) { - queryVersion = metadata[DIST_TAGS][queryVersion]; - version = getVersion(metadata, queryVersion); - if (_.isNil(version) === false) { - return next(version); - } - } - } - return next(ErrorCode.getNotFound(`${API_ERROR.VERSION_NOT_EXIST}: ${req.params.version}`)); - }; - - storage.getPackage({ - name: req.params.package, - uplinksLook: true, - req, - callback: getPackageMetaCallback - }); - } - ); - - route.get( - '/:scopedPackage/-/:scope/:filename', - can('access'), - function (req: $RequestExtend, res: $ResponseExtend): void { - const { scopedPackage, filename } = req.params; - - downloadStream(scopedPackage, filename, storage, req, res); - } - ); - - route.get( - '/:package/-/:filename', - can('access'), - function (req: $RequestExtend, res: $ResponseExtend): void { - downloadStream(req.params.package, req.params.filename, storage, req, res); - } - ); -} diff --git a/src/api/endpoint/api/ping.ts b/src/api/endpoint/api/ping.ts deleted file mode 100644 index 0633c2e8a..000000000 --- a/src/api/endpoint/api/ping.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @prettier - * @flow - */ - -import { Router } from 'express'; -import { $RequestExtend, $ResponseExtend, $NextFunctionVer } from '../../../../types'; - -export default function (route: Router): void { - route.get( - '/-/ping', - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) { - next({}); - } - ); -} diff --git a/src/api/endpoint/api/publish.ts b/src/api/endpoint/api/publish.ts deleted file mode 100644 index d2a645d8c..000000000 --- a/src/api/endpoint/api/publish.ts +++ /dev/null @@ -1,399 +0,0 @@ -import Path from 'path'; -import _ from 'lodash'; -import mime from 'mime'; - -import { Router } from 'express'; -import { Config, Callback, MergeTags, Version, Package } from '@verdaccio/types'; -import { API_MESSAGE, HEADERS, DIST_TAGS, API_ERROR, HTTP_STATUS } from '../../../lib/constants'; -import { - validateMetadata, - isObject, - ErrorCode, - hasDiffOneKey, - isRelatedToDeprecation -} from '../../../lib/utils'; -import { media, expectJson, allow } from '../../middleware'; -import { notify } from '../../../lib/notify'; - -import { - IAuth, - $ResponseExtend, - $RequestExtend, - $NextFunctionVer, - IStorageHandler -} from '../../../../types'; -import { logger } from '../../../lib/logger'; -import { isPublishablePackage } from '../../../lib/storage-utils'; -import star from './star'; - -export default function publish( - router: Router, - auth: IAuth, - storage: IStorageHandler, - config: Config -): void { - const can = allow(auth); - - /** - * Publish a package / update package / un/start a package - * - * There are multiples scenarios here to be considered: - * - * 1. Publish scenario - * - * Publish a package consist of at least 1 step (PUT) with a metadata payload. - * When a package is published, an _attachment property is present that contains the data - * of the tarball. - * - * Example flow of publish. - * - * npm http fetch PUT 201 http://localhost:4873/@scope%2ftest1 9627ms - npm info lifecycle @scope/test1@1.0.1~publish: @scope/test1@1.0.1 - npm info lifecycle @scope/test1@1.0.1~postpublish: @scope/test1@1.0.1 - + @scope/test1@1.0.1 - npm verb exit [ 0, true ] - * - * - * 2. Unpublish scenario - * - * Unpublish consist in 3 steps. - * 1. Try to fetch metadata -> if it fails, return 404 - * 2. Compute metadata locally (client side) and send a mutate payload excluding the version to be unpublished - * eg: if metadata reflects 1.0.1, 1.0.2 and 1.0.3, the computed metadata won't include 1.0.3. - * 3. Once the second step has been successfully finished, delete the tarball. - * - * All these steps are consecutive and required, there is no transacions here, if step 3 fails, metadata might - * get corrupted. - * - * Note the unpublish call will suffix in the url a /-rev/14-5d500cfce92f90fd revision number, this not - * used internally. - * - * - * Example flow of unpublish. - * - * npm http fetch GET 200 http://localhost:4873/@scope%2ftest1?write=true 1680ms - npm http fetch PUT 201 http://localhost:4873/@scope%2ftest1/-rev/14-5d500cfce92f90fd 956606ms attempt #2 - npm http fetch GET 200 http://localhost:4873/@scope%2ftest1?write=true 1601ms - npm http fetch DELETE 201 http://localhost:4873/@scope%2ftest1/-/test1-1.0.3.tgz/-rev/16-e11c8db282b2d992 19ms - * - * 3. Star a package - * - * Permissions: start a package depends of the publish and unpublish permissions, there is no specific flag for star or un start. - * The URL for star is similar to the unpublish (change package format) - * - * npm has no enpoint for star a package, rather mutate the metadata and acts as, the difference is the - * users property which is part of the payload and the body only includes - * - * { - "_id": pkgName, - "_rev": "3-b0cdaefc9bdb77c8", - "users": { - [username]: boolean value (true, false) - } - } - * - */ - router.put( - '/:package/:_rev?/:revision?', - can('publish'), - media(mime.getType('json')), - expectJson, - publishPackage(storage, config, auth) - ); - - /** - * Un-publishing an entire package. - * - * This scenario happens when the first call detect there is only one version remaining - * in the metadata, then the client decides to DELETE the resource - * npm http fetch GET 304 http://localhost:4873/@scope%2ftest1?write=true 1076ms (from cache) - npm http fetch DELETE 201 http://localhost:4873/@scope%2ftest1/-rev/18-d8ebe3020bd4ac9c 22ms - */ - router.delete('/:package/-rev/*', can('unpublish'), unPublishPackage(storage)); - - // removing a tarball - router.delete( - '/:package/-/:filename/-rev/:revision', - can('unpublish'), - can('publish'), - removeTarball(storage) - ); - - // uploading package tarball - router.put( - '/:package/-/:filename/*', - can('publish'), - media(HEADERS.OCTET_STREAM), - uploadPackageTarball(storage) - ); - - // adding a version - router.put( - '/:package/:version/-tag/:tag', - can('publish'), - media(mime.getType('json')), - expectJson, - addVersion(storage) - ); -} - -/** - * Publish a package - */ -export function publishPackage(storage: IStorageHandler, config: Config, auth: IAuth): any { - const starApi = star(storage); - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const packageName = req.params.package; - - logger.debug({ packageName }, `publishing or updating a new version for @{packageName}`); - - /** - * Write tarball of stream data from package clients. - */ - const createTarball = function (filename: string, data, cb: Callback): void { - const stream = storage.addTarball(packageName, filename); - stream.on('error', function (err) { - cb(err); - }); - stream.on('success', function () { - cb(); - }); - // this is dumb and memory-consuming, but what choices do we have? - // flow: we need first refactor this file before decides which type use here - stream.end(Buffer.from(data.data, 'base64')); - stream.done(); - }; - - /** - * Add new package version in storage - */ - const createVersion = function (version: string, metadata: Version, cb: Callback): void { - storage.addVersion(packageName, version, metadata, null, cb); - }; - - /** - * Add new tags in storage - */ - const addTags = function (tags: MergeTags, cb: Callback): void { - storage.mergeTags(packageName, tags, cb); - }; - - const afterChange = function (error, okMessage, metadata): void { - const metadataCopy: Package = { ...metadata }; - - const { _attachments, versions } = metadataCopy; - - // `npm star` wouldn't have attachments - // and `npm deprecate` would have attachments as a empty object, i.e {} - if (_.isNil(_attachments) || JSON.stringify(_attachments) === '{}') { - if (error) { - return next(error); - } - res.status(HTTP_STATUS.CREATED); - return next({ - ok: okMessage, - success: true - }); - } - - // npm-registry-client 0.3+ embeds tarball into the json upload - // https://github.com/isaacs/npm-registry-client/commit/e9fbeb8b67f249394f735c74ef11fe4720d46ca0 - // issue https://github.com/rlidwka/sinopia/issues/31, dealing with it here: - const isInvalidBodyFormat = - isObject(_attachments) === false || - hasDiffOneKey(_attachments) || - isObject(versions) === false || - hasDiffOneKey(versions); - - if (isInvalidBodyFormat) { - // npm is doing something strange again - // if this happens in normal circumstances, report it as a bug - logger.info({ packageName }, `wrong package format on publish a package @{packageName}`); - return next(ErrorCode.getBadRequest(API_ERROR.UNSUPORTED_REGISTRY_CALL)); - } - - if (error && error.status !== HTTP_STATUS.CONFLICT) { - return next(error); - } - - // at this point document is either created or existed before - const [firstAttachmentKey] = Object.keys(_attachments); - - createTarball( - Path.basename(firstAttachmentKey), - _attachments[firstAttachmentKey], - function (error) { - if (error) { - return next(error); - } - - const versionToPublish = Object.keys(versions)[0]; - const versionMetadataToPublish = versions[versionToPublish]; - - versionMetadataToPublish.readme = - _.isNil(versionMetadataToPublish.readme) === false - ? String(versionMetadataToPublish.readme) - : ''; - - createVersion(versionToPublish, versionMetadataToPublish, function (error) { - if (error) { - return next(error); - } - - addTags(metadataCopy[DIST_TAGS], async function (error) { - if (error) { - return next(error); - } - - try { - await notify( - metadataCopy, - config, - req.remote_user, - `${metadataCopy.name}@${versionToPublish}` - ); - } catch (error) { - logger.error({ error }, 'notify batch service has failed: @{error}'); - } - - res.status(HTTP_STATUS.CREATED); - return next({ ok: okMessage, success: true }); - }); - }); - } - ); - }; - - if (isPublishablePackage(req.body) === false && isObject(req.body.users)) { - return starApi(req, res, next); - } - - try { - const metadata = validateMetadata(req.body, packageName); - // treating deprecation as updating a package - if (req.params._rev || isRelatedToDeprecation(req.body)) { - logger.debug({ packageName }, `updating a new version for @{packageName}`); - // we check unpublish permissions, an update is basically remove versions - const remote = req.remote_user; - auth.allow_unpublish({ packageName }, remote, (error) => { - if (error) { - logger.debug({ packageName }, `not allowed to unpublish a version for @{packageName}`); - return next(error); - } - - storage.changePackage(packageName, metadata, req.params.revision, function (error) { - afterChange(error, API_MESSAGE.PKG_CHANGED, metadata); - }); - }); - } else { - logger.debug({ packageName }, `adding a new version for @{packageName}`); - storage.addPackage(packageName, metadata, function (error) { - afterChange(error, API_MESSAGE.PKG_CREATED, metadata); - }); - } - } catch (error) { - logger.error({ packageName }, 'error on publish, bad package data for @{packageName}'); - return next(ErrorCode.getBadData(API_ERROR.BAD_PACKAGE_DATA)); - } - }; -} - -/** - * un-publish a package - */ -export function unPublishPackage(storage: IStorageHandler) { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const packageName = req.params.package; - - logger.debug({ packageName }, `unpublishing @{packageName}`); - storage.removePackage(packageName, function (err) { - if (err) { - return next(err); - } - res.status(HTTP_STATUS.CREATED); - return next({ ok: API_MESSAGE.PKG_REMOVED }); - }); - }; -} - -/** - * Delete tarball - */ -export function removeTarball(storage: IStorageHandler) { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const packageName = req.params.package; - const { filename, revision } = req.params; - - logger.debug( - { packageName, filename, revision }, - `removing a tarball for @{packageName}-@{tarballName}-@{revision}` - ); - storage.removeTarball(packageName, filename, revision, function (err) { - if (err) { - return next(err); - } - res.status(HTTP_STATUS.CREATED); - - logger.debug( - { packageName, filename, revision }, - `success remove tarball for @{packageName}-@{tarballName}-@{revision}` - ); - return next({ ok: API_MESSAGE.TARBALL_REMOVED }); - }); - }; -} -/** - * Adds a new version - */ -export function addVersion(storage: IStorageHandler) { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const { version, tag } = req.params; - const packageName = req.params.package; - - storage.addVersion(packageName, version, req.body, tag, function (error) { - if (error) { - return next(error); - } - - res.status(HTTP_STATUS.CREATED); - return next({ - ok: API_MESSAGE.PKG_PUBLISHED - }); - }); - }; -} - -/** - * uploadPackageTarball - */ -export function uploadPackageTarball(storage: IStorageHandler) { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const packageName = req.params.package; - const stream = storage.addTarball(packageName, req.params.filename); - req.pipe(stream); - - // checking if end event came before closing - let complete = false; - req.on('end', function () { - complete = true; - stream.done(); - }); - - req.on('close', function () { - if (!complete) { - stream.abort(); - } - }); - - stream.on('error', function (err) { - return res.report_error(err); - }); - - stream.on('success', function () { - res.status(HTTP_STATUS.CREATED); - return next({ - ok: API_MESSAGE.TARBALL_UPLOADED - }); - }); - }; -} diff --git a/src/api/endpoint/api/search.ts b/src/api/endpoint/api/search.ts deleted file mode 100644 index a2ef24bcc..000000000 --- a/src/api/endpoint/api/search.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { HEADERS } from '../../../lib/constants'; - -/** - * @prettier - */ - -export default function (route, auth, storage): void { - // searching packages - route.get('/-/all(/since)?', function (req, res) { - let received_end = false; - let response_finished = false; - let processing_pkgs = 0; - let firstPackage = true; - - res.status(200); - res.set(HEADERS.CONTENT_TYPE, HEADERS.JSON_CHARSET); - - /* - * Offical NPM registry (registry.npmjs.org) no longer return whole database, - * They only return packages matched with keyword in `referer: search pkg-name`, - * And NPM client will request server in every search. - * - * The magic number 99999 was sent by NPM registry. Modify it may caused strange - * behaviour in the future. - * - * BTW: NPM will not return result if user-agent does not contain string 'npm', - * See: method 'request' in up-storage.js - * - * If there is no cache in local, NPM will request /-/all, then get response with - * _updated: 99999, 'Date' in response header was Mon, 10 Oct 1983 00:12:48 GMT, - * this will make NPM always query from server - * - * Data structure also different, whel request /-/all, response is an object, but - * when request /-/all/since, response is an array - */ - const respShouldBeArray = req.path.endsWith('/since'); - if (!respShouldBeArray) { - res.set('Date', 'Mon, 10 Oct 1983 00:12:48 GMT'); - } - const check_finish = function (): void { - if (!received_end) { - return; - } - if (processing_pkgs) { - return; - } - if (response_finished) { - return; - } - response_finished = true; - if (respShouldBeArray) { - res.end(']\n'); - } else { - res.end('}\n'); - } - }; - - if (respShouldBeArray) { - res.write('['); - } else { - res.write('{"_updated":' + 99999); - } - - const stream = storage.search(req.query.startkey || 0, { req: req }); - - stream.on('data', function each(pkg) { - processing_pkgs++; - - auth.allow_access({ packageName: pkg.name }, req.remote_user, function (err, allowed) { - processing_pkgs--; - - if (err) { - if (err.status && String(err.status).match(/^4\d\d$/)) { - // auth plugin returns 4xx user error, - // that's equivalent of !allowed basically - allowed = false; - } else { - stream.abort(err); - } - } - - if (allowed) { - if (respShouldBeArray) { - res.write(`${firstPackage ? '' : ','}${JSON.stringify(pkg)}\n`); - if (firstPackage) { - firstPackage = false; - } - } else { - res.write(',\n' + JSON.stringify(pkg.name) + ':' + JSON.stringify(pkg)); - } - } - - check_finish(); - }); - }); - - stream.on('error', function () { - res.socket.destroy(); - }); - - stream.on('end', function () { - received_end = true; - check_finish(); - }); - }); -} diff --git a/src/api/endpoint/api/star.ts b/src/api/endpoint/api/star.ts deleted file mode 100644 index e3ad24260..000000000 --- a/src/api/endpoint/api/star.ts +++ /dev/null @@ -1,76 +0,0 @@ -// @flow - -import { Response } from 'express'; -import _ from 'lodash'; -import { USERS, HTTP_STATUS } from '../../../lib/constants'; -import { $RequestExtend, $NextFunctionVer, IStorageHandler } from '../../../../types'; -import { logger } from '../../../lib/logger'; - -export default function ( - storage: IStorageHandler -): (req: $RequestExtend, res: Response, next: $NextFunctionVer) => void { - const validateInputs = (newUsers, localUsers, username, isStar): boolean => { - const isExistlocalUsers = _.isNil(localUsers[username]) === false; - if (isStar && isExistlocalUsers && localUsers[username]) { - return true; - } else if (!isStar && isExistlocalUsers) { - return false; - } else if (!isStar && !isExistlocalUsers) { - return true; - } - return false; - }; - - return (req: $RequestExtend, res: Response, next: $NextFunctionVer): void => { - const name = req.params.package; - logger.debug({ name }, 'starring a package for @{name}'); - const afterChangePackage = function (err?: Error) { - if (err) { - return next(err); - } - res.status(HTTP_STATUS.OK); - next({ - success: true - }); - }; - - storage.getPackage({ - name, - req, - callback: function (err, info) { - if (err) { - return next(err); - } - const newStarUser = req.body[USERS]; - const remoteUsername = req.remote_user.name; - const localStarUsers = info[USERS]; - // Check is star or unstar - const isStar = Object.keys(newStarUser).includes(remoteUsername); - if ( - _.isNil(localStarUsers) === false && - validateInputs(newStarUser, localStarUsers, remoteUsername, isStar) - ) { - return afterChangePackage(); - } - const users = isStar - ? { - ...localStarUsers, - [remoteUsername]: true - } - : _.reduce( - localStarUsers, - (users, value, key) => { - if (key !== remoteUsername) { - users[key] = value; - } - return users; - }, - {} - ); - storage.changePackage(name, { ...info, users }, req.body._rev, function (err) { - afterChangePackage(err); - }); - } - }); - }; -} diff --git a/src/api/endpoint/api/stars.ts b/src/api/endpoint/api/stars.ts deleted file mode 100644 index c01cece5e..000000000 --- a/src/api/endpoint/api/stars.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @prettier - - */ -import _ from 'lodash'; -import { Response, Router } from 'express'; -import { Package } from '@verdaccio/types'; -import { USERS, HTTP_STATUS } from '../../../lib/constants'; -import { $RequestExtend, $NextFunctionVer, IStorageHandler } from '../../../../types'; - -type Packages = Package[]; - -export default function (route: Router, storage: IStorageHandler): void { - route.get( - '/-/_view/starredByUser', - (req: $RequestExtend, res: Response, next: $NextFunctionVer): void => { - const remoteUsername = req.remote_user.name; - - storage.getLocalDatabase((err, localPackages: Packages) => { - if (err) { - return next(err); - } - - const filteredPackages: Packages = localPackages.filter((localPackage: Package) => - _.keys(localPackage[USERS]).includes(remoteUsername) - ); - - res.status(HTTP_STATUS.OK); - next({ - rows: filteredPackages.map((filteredPackage: Package) => ({ - value: filteredPackage.name - })) - }); - }); - } - ); -} diff --git a/src/api/endpoint/api/user.ts b/src/api/endpoint/api/user.ts deleted file mode 100644 index fca83dd8b..000000000 --- a/src/api/endpoint/api/user.ts +++ /dev/null @@ -1,120 +0,0 @@ -import _ from 'lodash'; -import Cookies from 'cookies'; - -import { Config, RemoteUser } from '@verdaccio/types'; -import { Response, Router } from 'express'; -import { ErrorCode } from '../../../lib/utils'; -import { API_ERROR, API_MESSAGE, HTTP_STATUS } from '../../../lib/constants'; -import { - createRemoteUser, - createSessionToken, - getApiToken, - getAuthenticatedMessage, - validatePassword -} from '../../../lib/auth-utils'; -import { logger } from '../../../lib/logger'; - -import { $RequestExtend, $ResponseExtend, $NextFunctionVer, IAuth } from '../../../../types'; - -export default function (route: Router, auth: IAuth, config: Config): void { - route.get( - '/-/user/:org_couchdb_user', - function (req: $RequestExtend, res: Response, next: $NextFunctionVer): void { - res.status(HTTP_STATUS.OK); - next({ - ok: getAuthenticatedMessage(req.remote_user.name) - }); - } - ); - - route.put( - '/-/user/:org_couchdb_user/:_rev?/:revision?', - function (req: $RequestExtend, res: Response, next: $NextFunctionVer): void { - const { name, password } = req.body; - const remoteName = req.remote_user.name; - - if (_.isNil(remoteName) === false && _.isNil(name) === false && remoteName === name) { - auth.authenticate( - name, - password, - async function callbackAuthenticate(err, user): Promise { - if (err) { - logger.trace( - { name, err }, - 'authenticating for user @{username} failed. Error: @{err.message}' - ); - return next( - ErrorCode.getCode(HTTP_STATUS.UNAUTHORIZED, API_ERROR.BAD_USERNAME_PASSWORD) - ); - } - - const restoredRemoteUser: RemoteUser = createRemoteUser(name, user.groups || []); - const token = await getApiToken(auth, config, restoredRemoteUser, password); - - res.status(HTTP_STATUS.CREATED); - - return next({ - ok: getAuthenticatedMessage(req.remote_user.name), - token - }); - } - ); - } else { - if (validatePassword(password) === false) { - // eslint-disable-next-line new-cap - return next(ErrorCode.getCode(HTTP_STATUS.BAD_REQUEST, API_ERROR.PASSWORD_SHORT())); - } - - auth.add_user(name, password, async function (err, user): Promise { - if (err) { - if (err.status >= HTTP_STATUS.BAD_REQUEST && err.status < HTTP_STATUS.INTERNAL_ERROR) { - // With npm registering is the same as logging in, - // and npm accepts only an 409 error. - // So, changing status code here. - return next( - ErrorCode.getCode(err.status, err.message) || ErrorCode.getConflict(err.message) - ); - } - return next(err); - } - - const token = - name && password ? await getApiToken(auth, config, user, password) : undefined; - - req.remote_user = user; - res.status(HTTP_STATUS.CREATED); - return next({ - ok: `user '${req.body.name}' created`, - token - }); - }); - } - } - ); - - route.delete( - '/-/user/token/*', - function (req: $RequestExtend, res: Response, next: $NextFunctionVer): void { - res.status(HTTP_STATUS.OK); - next({ - ok: API_MESSAGE.LOGGED_OUT - }); - } - ); - - // placeholder 'cause npm require to be authenticated to publish - // we do not do any real authentication yet - route.post( - '/_session', - Cookies.express(), - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - res.cookies.set('AuthSession', String(Math.random()), createSessionToken()); - - next({ - ok: true, - name: 'somebody', - roles: [] - }); - } - ); -} diff --git a/src/api/endpoint/api/v1/profile.ts b/src/api/endpoint/api/v1/profile.ts deleted file mode 100644 index 887d1afe0..000000000 --- a/src/api/endpoint/api/v1/profile.ts +++ /dev/null @@ -1,94 +0,0 @@ -import _ from 'lodash'; -import { Response, Router } from 'express'; -import { API_ERROR, APP_ERROR, HTTP_STATUS, SUPPORT_ERRORS } from '../../../../lib/constants'; -import { ErrorCode } from '../../../../lib/utils'; -import { validatePassword } from '../../../../lib/auth-utils'; - -import { $NextFunctionVer, $RequestExtend, IAuth } from '../../../../../types'; - -export interface Profile { - tfa: boolean; - name: string; - email: string; - email_verified: boolean; - created: string; - updated: string; - cidr_whitelist: string[] | null; - fullname: string; -} - -export default function (route: Router, auth: IAuth): void { - function buildProfile(name: string): Profile { - return { - tfa: false, - name, - email: '', - email_verified: false, - created: '', - updated: '', - cidr_whitelist: null, - fullname: '' - }; - } - - route.get( - '/-/npm/v1/user', - function (req: $RequestExtend, res: Response, next: $NextFunctionVer): void { - if (_.isNil(req.remote_user.name) === false) { - return next(buildProfile(req.remote_user.name)); - } - - res.status(HTTP_STATUS.UNAUTHORIZED); - return next({ - message: API_ERROR.MUST_BE_LOGGED - }); - } - ); - - route.post( - '/-/npm/v1/user', - function (req: $RequestExtend, res: Response, next: $NextFunctionVer): void { - if (_.isNil(req.remote_user.name)) { - res.status(HTTP_STATUS.UNAUTHORIZED); - return next({ - message: API_ERROR.MUST_BE_LOGGED - }); - } - - const { password, tfa } = req.body; - const { name } = req.remote_user; - - if (_.isNil(password) === false) { - if (validatePassword(password.new) === false) { - /* eslint new-cap:off */ - return next(ErrorCode.getCode(HTTP_STATUS.UNAUTHORIZED, API_ERROR.PASSWORD_SHORT())); - /* eslint new-cap:off */ - } - - auth.changePassword( - name, - password.old, - password.new, - (err, isUpdated): $NextFunctionVer => { - if (_.isNull(err) === false) { - return next( - ErrorCode.getCode(err.status, err.message) || ErrorCode.getConflict(err.message) - ); - } - - if (isUpdated) { - return next(buildProfile(req.remote_user.name)); - } - return next(ErrorCode.getInternalError(API_ERROR.INTERNAL_SERVER_ERROR)); - } - ); - } else if (_.isNil(tfa) === false) { - return next( - ErrorCode.getCode(HTTP_STATUS.SERVICE_UNAVAILABLE, SUPPORT_ERRORS.TFA_DISABLED) - ); - } else { - return next(ErrorCode.getCode(HTTP_STATUS.INTERNAL_ERROR, APP_ERROR.PROFILE_ERROR)); - } - } - ); -} diff --git a/src/api/endpoint/api/v1/search.ts b/src/api/endpoint/api/v1/search.ts deleted file mode 100644 index 539a56e18..000000000 --- a/src/api/endpoint/api/v1/search.ts +++ /dev/null @@ -1,105 +0,0 @@ -import semver from 'semver'; -import { Package } from '@verdaccio/types'; - -function compileTextSearch(textSearch: string): (pkg: Package) => boolean { - const personMatch = (person, search) => { - if (typeof person === 'string') { - return person.includes(search); - } - - if (typeof person === 'object') { - for (const field of Object.values(person)) { - if (typeof field === 'string' && field.includes(search)) { - return true; - } - } - } - - return false; - }; - const matcher = function (q) { - const match = q.match(/author:(.*)/); - if (match !== null) { - return (pkg) => personMatch(pkg.author, match[1]); - } - - // TODO: maintainer, keywords, not/is unstable insecure, boost-exact - // TODO implement some scoring system for freetext - return (pkg) => { - return ['name', 'displayName', 'description'] - .map((k) => pkg[k]) - .filter((x) => x !== undefined) - .some((txt) => txt.includes(q)); - }; - }; - - const textMatchers = (textSearch || '').split(' ').map(matcher); - return (pkg) => textMatchers.every((m) => m(pkg)); -} - -export default function (route, auth, storage): void { - route.get('/-/v1/search', (req, res) => { - // TODO: implement proper result scoring weighted by quality, popularity and maintenance query parameters - let [text, size, from /* , quality, popularity, maintenance */] = [ - 'text', - 'size', - 'from' /* , 'quality', 'popularity', 'maintenance' */ - ].map((k) => req.query[k]); - - size = parseInt(size) || 20; - from = parseInt(from) || 0; - - const isInteresting = compileTextSearch(text); - - const resultStream = storage.search(0, { req: { query: { local: true } } }); - const resultBuf = [] as any; - let completed = false; - - const sendResponse = (): void => { - completed = true; - resultStream.destroy(); - - const final = resultBuf.slice(from, size).map((pkg) => { - return { - package: pkg, - flags: { - unstable: Object.keys(pkg.versions).some((v) => semver.satisfies(v, '^1.0.0')) - ? undefined - : true - }, - score: { - final: 1, - detail: { - quality: 1, - popularity: 1, - maintenance: 0 - } - }, - searchScore: 100000 - }; - }); - const response = { - objects: final, - total: final.length, - time: new Date().toUTCString() - }; - - res.status(200).json(response); - }; - - resultStream.on('data', (pkg) => { - if (!isInteresting(pkg)) { - return; - } - resultBuf.push(pkg); - if (!completed && resultBuf.length >= size + from) { - sendResponse(); - } - }); - resultStream.on('end', () => { - if (!completed) { - sendResponse(); - } - }); - }); -} diff --git a/src/api/endpoint/api/v1/token.ts b/src/api/endpoint/api/v1/token.ts deleted file mode 100644 index 354b1e926..000000000 --- a/src/api/endpoint/api/v1/token.ts +++ /dev/null @@ -1,143 +0,0 @@ -import _ from 'lodash'; -import { Response, Router } from 'express'; -import { Config, RemoteUser, Token } from '@verdaccio/types'; -import { HTTP_STATUS, SUPPORT_ERRORS } from '../../../../lib/constants'; -import { ErrorCode, mask } from '../../../../lib/utils'; -import { getApiToken } from '../../../../lib/auth-utils'; -import { stringToMD5 } from '../../../../lib/crypto-utils'; -import { logger } from '../../../../lib/logger'; - -import { $NextFunctionVer, $RequestExtend, IAuth, IStorageHandler } from '../../../../../types'; - -export type NormalizeToken = Token & { - created: string; -}; - -function normalizeToken(token: Token): NormalizeToken { - return { - ...token, - created: new Date(token.created).toISOString() - }; -} - -// https://github.com/npm/npm-profile/blob/latest/lib/index.js -export default function ( - route: Router, - auth: IAuth, - storage: IStorageHandler, - config: Config -): void { - route.get( - '/-/npm/v1/tokens', - async function (req: $RequestExtend, res: Response, next: $NextFunctionVer) { - const { name } = req.remote_user; - - if (_.isNil(name) === false) { - try { - const tokens = await storage.readTokens({ user: name }); - const totalTokens = tokens.length; - logger.debug({ totalTokens }, 'token list retrieved: @{totalTokens}'); - - res.status(HTTP_STATUS.OK); - return next({ - objects: tokens.map(normalizeToken), - urls: { - next: '' // TODO: pagination? - } - }); - } catch (error) { - logger.error({ error: error.msg }, 'token list has failed: @{error}'); - return next(ErrorCode.getCode(HTTP_STATUS.INTERNAL_ERROR, error.message)); - } - } - return next(ErrorCode.getUnauthorized()); - } - ); - - route.post( - '/-/npm/v1/tokens', - function (req: $RequestExtend, res: Response, next: $NextFunctionVer) { - const { password, readonly, cidr_whitelist } = req.body; - const { name } = req.remote_user; - - if (!_.isBoolean(readonly) || !_.isArray(cidr_whitelist)) { - return next(ErrorCode.getCode(HTTP_STATUS.BAD_DATA, SUPPORT_ERRORS.PARAMETERS_NOT_VALID)); - } - - auth.authenticate(name, password, async (err, user: RemoteUser) => { - if (err) { - const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR; - return next(ErrorCode.getCode(errorCode, err.message)); - } - - req.remote_user = user; - - if (!_.isFunction(storage.saveToken)) { - return next( - ErrorCode.getCode(HTTP_STATUS.NOT_IMPLEMENTED, SUPPORT_ERRORS.STORAGE_NOT_IMPLEMENT) - ); - } - - try { - const token = await getApiToken(auth, config, user, password); - const key = stringToMD5(token); - // TODO: use a utility here - const maskedToken = mask(token, 5); - const created = new Date().getTime(); - - /** - * cidr_whitelist: is not being used, we pass it through - * token: we do not store the real token (it is generated once and retrieved to the user), just a mask of it. - */ - const saveToken: Token = { - user: name, - token: maskedToken, - key, - cidr: cidr_whitelist, - readonly, - created - }; - - await storage.saveToken(saveToken); - logger.debug({ key, name }, 'token @{key} was created for user @{name}'); - return next( - normalizeToken({ - token, - user: name, - key: saveToken.key, - cidr: cidr_whitelist, - readonly, - created: saveToken.created - }) - ); - } catch (error) { - logger.error({ error: error.msg }, 'token creation has failed: @{error}'); - return next(ErrorCode.getCode(HTTP_STATUS.INTERNAL_ERROR, error.message)); - } - }); - } - ); - - route.delete( - '/-/npm/v1/tokens/token/:tokenKey', - async (req: $RequestExtend, res: Response, next: $NextFunctionVer) => { - const { - params: { tokenKey } - } = req; - const { name } = req.remote_user; - - if (_.isNil(name) === false) { - logger.debug({ name }, '@{name} has requested remove a token'); - try { - await storage.deleteToken(name, tokenKey); - logger.info({ tokenKey, name }, 'token id @{tokenKey} was revoked for user @{name}'); - return next({}); - } catch (error) { - logger.error({ error: error.msg }, 'token creation has failed: @{error}'); - return next(ErrorCode.getCode(HTTP_STATUS.INTERNAL_ERROR, error.message)); - } - } - return next(ErrorCode.getUnauthorized()); - } - ); -} diff --git a/src/api/endpoint/api/whoami.ts b/src/api/endpoint/api/whoami.ts deleted file mode 100644 index e84b18e94..000000000 --- a/src/api/endpoint/api/whoami.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Response, Router } from 'express'; -import { $RequestExtend, $NextFunctionVer } from '../../../../types'; - -export default function (route: Router): void { - route.get('/whoami', (req: $RequestExtend, res: Response, next: $NextFunctionVer): void => { - if (req.headers.referer === 'whoami') { - next({ username: req.remote_user.name }); - } else { - next('route'); - } - }); - - route.get('/-/whoami', (req: $RequestExtend, res: Response, next: $NextFunctionVer): any => { - next({ username: req.remote_user.name }); - }); -} diff --git a/src/api/endpoint/index.ts b/src/api/endpoint/index.ts deleted file mode 100644 index d317c4ba6..000000000 --- a/src/api/endpoint/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Config } from '@verdaccio/types'; -import _ from 'lodash'; - -import express from 'express'; -import bodyParser from 'body-parser'; -import { IAuth, IStorageHandler } from '../../../types'; -import whoami from './api/whoami'; -import ping from './api/ping'; -import user from './api/user'; -import distTags from './api/dist-tags'; -import publish from './api/publish'; -import search from './api/search'; -import pkg from './api/package'; -import stars from './api/stars'; -import profile from './api/v1/profile'; -import token from './api/v1/token'; - -import v1Search from './api/v1/search'; - -const { - match, - validateName, - validatePackage, - encodeScopePackage, - antiLoop -} = require('../middleware'); - -export default function (config: Config, auth: IAuth, storage: IStorageHandler) { - /* eslint new-cap:off */ - const app = express.Router(); - /* eslint new-cap:off */ - - // validate all of these params as a package name - // this might be too harsh, so ask if it causes trouble - // $FlowFixMe - app.param('package', validatePackage); - // $FlowFixMe - app.param('filename', validateName); - app.param('tag', validateName); - app.param('version', validateName); - app.param('revision', validateName); - app.param('token', validateName); - - // these can't be safely put into express url for some reason - // TODO: For some reason? what reason? - app.param('_rev', match(/^-rev$/)); - app.param('org_couchdb_user', match(/^org\.couchdb\.user:/)); - app.param('anything', match(/.*/)); - - app.use(auth.apiJWTmiddleware()); - app.use(bodyParser.json({ strict: false, limit: config.max_body_size || '10mb' })); - app.use(antiLoop(config)); - // encode / in a scoped package name to be matched as a single parameter in routes - app.use(encodeScopePackage); - // for "npm whoami" - whoami(app); - pkg(app, auth, storage, config); - profile(app, auth); - search(app, auth, storage); - user(app, auth, config); - distTags(app, auth, storage); - publish(app, auth, storage, config); - ping(app); - stars(app, storage); - - if (_.get(config, 'experiments.search') === true) { - v1Search(app, auth, storage); - } - - if (_.get(config, 'experiments.token') === true) { - token(app, auth, storage, config); - } - return app; -} diff --git a/src/api/index.ts b/src/api/index.ts deleted file mode 100644 index 49bfc62bc..000000000 --- a/src/api/index.ts +++ /dev/null @@ -1,139 +0,0 @@ -import _ from 'lodash'; -import express, { Application } from 'express'; -import compression from 'compression'; -import cors from 'cors'; -import { HttpError } from 'http-errors'; -import { Config as IConfig, IPluginMiddleware, IPluginStorageFilter } from '@verdaccio/types'; -import Storage from '../lib/storage'; -import loadPlugin from '../lib/plugin-loader'; -import Auth from '../lib/auth'; -import { ErrorCode } from '../lib/utils'; -import { API_ERROR, HTTP_STATUS } from '../lib/constants'; -import AppConfig from '../lib/config'; -import { - $ResponseExtend, - $RequestExtend, - $NextFunctionVer, - IStorageHandler, - IAuth -} from '../../types'; -import { setup, logger } from '../lib/logger'; -import webAPI from './web/api'; -import web from './web'; -import apiEndpoint from './endpoint'; -import hookDebug from './debug'; -import { log, final, errorReportingMiddleware } from './middleware'; - -const defineAPI = function (config: IConfig, storage: IStorageHandler): any { - const auth: IAuth = new Auth(config); - const app: Application = express(); - // run in production mode by default, just in case - // it shouldn't make any difference anyway - app.set('env', process.env.NODE_ENV || 'production'); - app.use(cors()); - - // Router setup - app.use(log(config)); - app.use(errorReportingMiddleware); - app.use(function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - res.setHeader('X-Powered-By', config.user_agent); - next(); - }); - - app.use(compression()); - - app.get( - '/favicon.ico', - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - req.url = '/-/static/favicon.png'; - next(); - } - ); - - // Hook for tests only - if (config._debug) { - hookDebug(app, config.self_path); - } - - // register middleware plugins - const plugin_params = { - config: config, - logger: logger - }; - - const plugins: IPluginMiddleware[] = loadPlugin( - config, - config.middlewares, - plugin_params, - function (plugin: IPluginMiddleware) { - return plugin.register_middlewares; - } - ); - plugins.forEach((plugin: IPluginMiddleware) => { - plugin.register_middlewares(app, auth, storage); - }); - - // For npm request - app.use(apiEndpoint(config, auth, storage)); - - // For WebUI & WebUI API - if (_.get(config, 'web.enable', true)) { - app.use('/', web(config, auth, storage)); - app.use('/-/verdaccio/', webAPI(config, auth, storage)); - } else { - app.get('/', function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) { - next(ErrorCode.getNotFound(API_ERROR.WEB_DISABLED)); - }); - } - - // Catch 404 - app.get('/*', function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) { - next(ErrorCode.getNotFound(API_ERROR.FILE_NOT_FOUND)); - }); - - app.use(function ( - err: HttpError, - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer - ) { - if (_.isError(err)) { - if (err.code === 'ECONNABORT' && res.statusCode === HTTP_STATUS.NOT_MODIFIED) { - return next(); - } - if (_.isFunction(res.report_error) === false) { - // in case of very early error this middleware may not be loaded before error is generated - // fixing that - errorReportingMiddleware(req, res, _.noop); - } - res.report_error(err); - } else { - // Fall to Middleware.final - return next(err); - } - }); - - app.use(final); - - return app; -}; - -export default (async function (configHash: any): Promise { - setup(configHash.logs); - const config: IConfig = new AppConfig(_.cloneDeep(configHash)); - // register middleware plugins - const plugin_params = { - config: config, - logger: logger - }; - const filters = loadPlugin( - config, - config.filters || {}, - plugin_params, - (plugin: IPluginStorageFilter) => plugin.filter_metadata - ); - const storage: IStorageHandler = new Storage(config); - // waits until init calls have been initialized - await storage.init(config, filters); - return defineAPI(config, storage); -}); diff --git a/src/api/middleware.ts b/src/api/middleware.ts deleted file mode 100644 index 6de118314..000000000 --- a/src/api/middleware.ts +++ /dev/null @@ -1,384 +0,0 @@ -import _ from 'lodash'; - -import { Config, Package, RemoteUser } from '@verdaccio/types'; -import { VerdaccioError } from '@verdaccio/commons-api'; -import { - validateName as utilValidateName, - validatePackage as utilValidatePackage, - getVersionFromTarball, - isObject, - ErrorCode -} from '../lib/utils'; -import { - API_ERROR, - HEADER_TYPE, - HEADERS, - HTTP_STATUS, - TOKEN_BASIC, - TOKEN_BEARER -} from '../lib/constants'; -import { stringToMD5 } from '../lib/crypto-utils'; -import { $ResponseExtend, $RequestExtend, $NextFunctionVer, IAuth } from '../../types'; -import { logger } from '../lib/logger'; - -export function match(regexp: RegExp): any { - return function ( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer, - value: string - ): void { - if (regexp.exec(value)) { - next(); - } else { - next('route'); - } - }; -} - -export function setSecurityWebHeaders( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - // disable loading in frames (clickjacking, etc.) - res.header(HEADERS.FRAMES_OPTIONS, 'deny'); - // avoid stablish connections outside of domain - res.header(HEADERS.CSP, "connect-src 'self'"); - // https://stackoverflow.com/questions/18337630/what-is-x-content-type-options-nosniff - res.header(HEADERS.CTO, 'nosniff'); - // https://stackoverflow.com/questions/9090577/what-is-the-http-header-x-xss-protection - res.header(HEADERS.XSS, '1; mode=block'); - next(); -} - -// flow: express does not match properly -// flow info https://github.com/flowtype/flow-typed/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+express -export function validateName( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer, - value: string, - name: string -): void { - if (value === '-') { - // special case in couchdb usually - next('route'); - } else if (utilValidateName(value)) { - next(); - } else { - next(ErrorCode.getForbidden('invalid ' + name)); - } -} - -// flow: express does not match properly -// flow info https://github.com/flowtype/flow-typed/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+express -export function validatePackage( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer, - value: string, - name: string -): void { - if (value === '-') { - // special case in couchdb usually - next('route'); - } else if (utilValidatePackage(value)) { - next(); - } else { - next(ErrorCode.getForbidden('invalid ' + name)); - } -} - -export function media(expect: string | null): any { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - if (req.headers[HEADER_TYPE.CONTENT_TYPE] !== expect) { - next( - ErrorCode.getCode( - HTTP_STATUS.UNSUPPORTED_MEDIA, - 'wrong content-type, expect: ' + - expect + - ', got: ' + - req.headers[HEADER_TYPE.CONTENT_TYPE] - ) - ); - } else { - next(); - } - }; -} - -export function encodeScopePackage( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - if (req.url.indexOf('@') !== -1) { - // e.g.: /@org/pkg/1.2.3 -> /@org%2Fpkg/1.2.3, /@org%2Fpkg/1.2.3 -> /@org%2Fpkg/1.2.3 - req.url = req.url.replace(/^(\/@[^\/%]+)\/(?!$)/, '$1%2F'); - } - next(); -} - -export function expectJson( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - if (!isObject(req.body)) { - return next(ErrorCode.getBadRequest("can't parse incoming json")); - } - next(); -} - -export function antiLoop(config: Config): Function { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - if (req.headers.via != null) { - const arr = req.headers.via.split(','); - - for (let i = 0; i < arr.length; i++) { - const m = arr[i].match(/\s*(\S+)\s+(\S+)/); - if (m && m[2] === config.server_id) { - return next(ErrorCode.getCode(HTTP_STATUS.LOOP_DETECTED, 'loop detected')); - } - } - } - next(); - }; -} - -export function allow(auth: IAuth): Function { - return function (action: string): Function { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - req.pause(); - const packageName = req.params.scope - ? `@${req.params.scope}/${req.params.package}` - : req.params.package; - const packageVersion = req.params.filename - ? getVersionFromTarball(req.params.filename) - : undefined; - const remote: RemoteUser = req.remote_user; - logger.trace( - { action, user: remote.name }, - `[middleware/allow][@{action}] allow for @{user}` - ); - - auth['allow_' + action]( - { packageName, packageVersion }, - remote, - function (error, allowed): void { - req.resume(); - if (error) { - next(error); - } else if (allowed) { - next(); - } else { - // last plugin (that's our built-in one) returns either - // cb(err) or cb(null, true), so this should never happen - throw ErrorCode.getInternalError(API_ERROR.PLUGIN_ERROR); - } - } - ); - }; - }; -} - -export interface MiddlewareError { - error: string; -} - -export type FinalBody = Package | MiddlewareError | string; - -export function final( - body: FinalBody, - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - if (res.statusCode === HTTP_STATUS.UNAUTHORIZED && !res.getHeader(HEADERS.WWW_AUTH)) { - // they say it's required for 401, so... - res.header(HEADERS.WWW_AUTH, `${TOKEN_BASIC}, ${TOKEN_BEARER}`); - } - - try { - if (_.isString(body) || _.isObject(body)) { - if (!res.getHeader(HEADERS.CONTENT_TYPE)) { - res.header(HEADERS.CONTENT_TYPE, HEADERS.JSON); - } - - if (typeof body === 'object' && _.isNil(body) === false) { - if (typeof (body as MiddlewareError).error === 'string') { - res._verdaccio_error = (body as MiddlewareError).error; - } - body = JSON.stringify(body, undefined, ' ') + '\n'; - } - - // don't send etags with errors - if ( - !res.statusCode || - (res.statusCode >= HTTP_STATUS.OK && res.statusCode < HTTP_STATUS.MULTIPLE_CHOICES) - ) { - res.header(HEADERS.ETAG, '"' + stringToMD5(body as string) + '"'); - } - } else { - // send(null), send(204), etc. - } - } catch (err) { - // if verdaccio sends headers first, and then calls res.send() - // as an error handler, we can't report error properly, - // and should just close socket - if (err.message.match(/set headers after they are sent/)) { - if (_.isNil(res.socket) === false) { - res.socket.destroy(); - } - return; - } - throw err; - } - - res.send(body); -} - -export const LOG_STATUS_MESSAGE = - "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}'"; -export const LOG_VERDACCIO_ERROR = `${LOG_STATUS_MESSAGE}, error: @{!error}`; -export const LOG_VERDACCIO_BYTES = `${LOG_STATUS_MESSAGE}, bytes: @{bytes.in}/@{bytes.out}`; - -export function log(config: Config) { - return function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - // logger - req.log = logger.child({ sub: 'in' }); - - const _auth = req.headers.authorization; - if (_.isNil(_auth) === false) { - req.headers.authorization = ''; - } - - const _cookie = req.headers.cookie; - if (_.isNil(_cookie) === false) { - req.headers.cookie = ''; - } - - req.url = req.originalUrl; - // avoid log noise data from static content - if (req.originalUrl.match(/static/) === null) { - req.log.info({ req: req, ip: req.ip }, "@{ip} requested '@{req.method} @{req.url}'"); - } - req.originalUrl = req.url; - - if (_.isNil(_auth) === false) { - req.headers.authorization = _auth; - } - - if (_.isNil(_cookie) === false) { - req.headers.cookie = _cookie; - } - - let bytesin = 0; - if (config?.experiments?.bytesin_off !== true) { - req.on('data', function (chunk): void { - bytesin += chunk.length; - }); - } - - let bytesout = 0; - const _write = res.write; - // FIXME: res.write should return boolean - // @ts-ignore - res.write = function (buf): boolean { - bytesout += buf.length; - /* eslint prefer-rest-params: "off" */ - // @ts-ignore - _write.apply(res, arguments); - }; - - let logHasBeenCalled = false; - const log = function (): void { - if (logHasBeenCalled) { - return; - } - logHasBeenCalled = true; - - const forwardedFor = req.headers['x-forwarded-for']; - const remoteAddress = req.connection.remoteAddress; - const remoteIP = forwardedFor ? `${forwardedFor} via ${remoteAddress}` : remoteAddress; - let message; - if (res._verdaccio_error) { - message = LOG_VERDACCIO_ERROR; - } else { - message = LOG_VERDACCIO_BYTES; - } - - req.url = req.originalUrl; - // avoid log noise data from static content - if (req.url.match(/static/) === null) { - req.log.warn( - { - request: { - method: req.method, - url: req.url - }, - level: 35, // http - user: (req.remote_user && req.remote_user.name) || null, - remoteIP, - status: res.statusCode, - error: res._verdaccio_error, - bytes: { - in: bytesin, - out: bytesout - } - }, - message - ); - req.originalUrl = req.url; - } - }; - - req.on('close', function (): void { - log(); - }); - - const _end = res.end; - res.end = function (buf): void { - if (buf) { - bytesout += buf.length; - } - /* eslint prefer-rest-params: "off" */ - // @ts-ignore - _end.apply(res, arguments); - log(); - }; - next(); - }; -} - -// Middleware -export function errorReportingMiddleware( - req: $RequestExtend, - res: $ResponseExtend, - next: $NextFunctionVer -): void { - res.report_error = - res.report_error || - function (err: VerdaccioError): void { - if (err.status && err.status >= HTTP_STATUS.BAD_REQUEST && err.status < 600) { - if (!res.headersSent) { - res.status(err.status); - next({ error: err.message || API_ERROR.UNKNOWN_ERROR }); - } - } else { - logger.error({ err: err }, 'unexpected error: @{!err.message}\n@{err.stack}'); - if (!res.status || !res.send) { - logger.error('this is an error in express.js, please report this'); - res.destroy(); - } else if (!res.headersSent) { - res.status(HTTP_STATUS.INTERNAL_ERROR); - next({ error: API_ERROR.INTERNAL_SERVER_ERROR }); - } else { - // socket should be already closed - } - } - }; - - next(); -} diff --git a/src/api/web/api.ts b/src/api/web/api.ts deleted file mode 100644 index 3db484ef6..000000000 --- a/src/api/web/api.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Router } from 'express'; -import bodyParser from 'body-parser'; -import { Config } from '@verdaccio/types'; -import Search from '../../lib/search'; -import { match, validateName, validatePackage, setSecurityWebHeaders } from '../middleware'; -import { IAuth, IStorageHandler } from '../../../types'; -import addUserAuthApi from './endpoint/user'; -import addPackageWebApi from './endpoint/package'; -import addSearchWebApi from './endpoint/search'; - -const route = Router(); /* eslint new-cap: 0 */ - -/* - This file include all verdaccio only API(Web UI), for npm API please see ../endpoint/ -*/ -export default function (config: Config, auth: IAuth, storage: IStorageHandler): Router { - Search.configureStorage(storage); - - // validate all of these params as a package name - // this might be too harsh, so ask if it causes trouble - // $FlowFixMe - route.param('package', validatePackage); - // $FlowFixMe - route.param('filename', validateName); - route.param('version', validateName); - route.param('anything', match(/.*/)); - - route.use(bodyParser.urlencoded({ extended: false })); - route.use(auth.webUIJWTmiddleware()); - route.use(setSecurityWebHeaders); - - addPackageWebApi(route, storage, auth, config); - addSearchWebApi(route, storage, auth); - addUserAuthApi(route, auth, config); - - // What are you looking for? logout? client side will remove token when user click logout, - // or it will auto expire after 24 hours. - // This token is different with the token send to npm client. - // We will/may replace current token with JWT in next major release, and it will not expire at all(configurable). - - return route; -} diff --git a/src/api/web/endpoint/package.ts b/src/api/web/endpoint/package.ts deleted file mode 100644 index 9fd08aafc..000000000 --- a/src/api/web/endpoint/package.ts +++ /dev/null @@ -1,188 +0,0 @@ -import _ from 'lodash'; -import { Router } from 'express'; -import { Config, Package } from '@verdaccio/types'; -import { - addScope, - addGravatarSupport, - deleteProperties, - sortByName, - parseReadme, - formatAuthor, - convertDistRemoteToLocalTarballUrls, - getLocalRegistryTarballUri, - isVersionValid -} from '../../../lib/utils'; -import { allow } from '../../middleware'; -import { DIST_TAGS, HEADER_TYPE, HEADERS, HTTP_STATUS } from '../../../lib/constants'; -import { generateGravatarUrl } from '../../../utils/user'; -import { logger } from '../../../lib/logger'; -import { - IAuth, - $ResponseExtend, - $RequestExtend, - $NextFunctionVer, - IStorageHandler, - $SidebarPackage -} from '../../../../types'; - -const getOrder = (order = 'asc') => { - return order === 'asc'; -}; - -export type PackcageExt = Package & { author: any; dist?: { tarball: string } }; - -function addPackageWebApi( - route: Router, - storage: IStorageHandler, - auth: IAuth, - config: Config -): void { - const can = allow(auth); - - const checkAllow = (name, remoteUser): Promise => - new Promise((resolve, reject): void => { - try { - auth.allow_access({ packageName: name }, remoteUser, (err, allowed): void => { - if (err) { - resolve(false); - } - resolve(allowed); - }); - } catch (err) { - reject(err); - } - }); - - // Get list of all visible package - route.get( - '/packages', - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - storage.getLocalDatabase(async function (err, packages): Promise { - if (err) { - throw err; - } - - async function processPackages(packages: PackcageExt[] = []): Promise { - const permissions: PackcageExt[] = []; - const packgesCopy = packages.slice(); - for (const pkg of packgesCopy) { - const pkgCopy = { ...pkg }; - pkgCopy.author = formatAuthor(pkg.author); - try { - if (await checkAllow(pkg.name, req.remote_user)) { - if (config.web) { - pkgCopy.author.avatar = generateGravatarUrl( - pkgCopy.author.email, - config.web.gravatar - ); - } - if (!_.isNil(pkgCopy.dist) && !_.isNull(pkgCopy.dist.tarball)) { - pkgCopy.dist.tarball = getLocalRegistryTarballUri( - pkgCopy.dist.tarball, - pkg.name, - req, - config.url_prefix - ); - } - permissions.push(pkgCopy); - } - } catch (err) { - logger.logger.error( - { name: pkg.name, error: err }, - 'permission process for @{name} has failed: @{error}' - ); - throw err; - } - } - - return permissions; - } - - const { web } = config; - // @ts-ignore - const order: boolean = config.web ? getOrder(web.sort_packages) : true; - - next(sortByName(await processPackages(packages), order)); - }); - } - ); - - // Get package readme - route.get( - '/package/readme/(@:scope/)?:package/:version?', - can('access'), - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const packageName = req.params.scope - ? addScope(req.params.scope, req.params.package) - : req.params.package; - - storage.getPackage({ - name: packageName, - uplinksLook: true, - req, - callback: function (err, info): void { - if (err) { - return next(err); - } - - res.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN); - next(parseReadme(info.name, info.readme)); - } - }); - } - ); - - route.get( - '/sidebar/(@:scope/)?:package', - can('access'), - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const packageName: string = req.params.scope - ? addScope(req.params.scope, req.params.package) - : req.params.package; - - storage.getPackage({ - name: packageName, - uplinksLook: true, - keepUpLinkData: true, - req, - callback: function (err: Error, info: $SidebarPackage): void { - if (_.isNil(err)) { - const { v } = req.query; - let sideBarInfo: any = _.clone(info); - sideBarInfo.versions = convertDistRemoteToLocalTarballUrls( - info, - req, - config.url_prefix - ).versions; - if (isVersionValid(info, v)) { - // @ts-ignore - sideBarInfo.latest = sideBarInfo.versions[v]; - sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author); - } else { - sideBarInfo.latest = sideBarInfo.versions[info[DIST_TAGS].latest]; - if (sideBarInfo?.latest) { - sideBarInfo.latest.author = formatAuthor(sideBarInfo.latest.author); - } else { - res.status(HTTP_STATUS.NOT_FOUND); - res.end(); - return; - } - } - sideBarInfo = deleteProperties(['readme', '_attachments', '_rev', 'name'], sideBarInfo); - if (config.web) { - sideBarInfo = addGravatarSupport(sideBarInfo, config.web.gravatar); - } else { - sideBarInfo = addGravatarSupport(sideBarInfo); - } - next(sideBarInfo); - } else { - res.status(HTTP_STATUS.NOT_FOUND); - res.end(); - } - } - }); - } - ); -} - -export default addPackageWebApi; diff --git a/src/api/web/endpoint/search.ts b/src/api/web/endpoint/search.ts deleted file mode 100644 index bfadc8330..000000000 --- a/src/api/web/endpoint/search.ts +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @prettier - * @flow - */ - -import { Router } from 'express'; -import { Package } from '@verdaccio/types'; -import Search from '../../../lib/search'; -import { DIST_TAGS } from '../../../lib/constants'; -import { - IAuth, - $ResponseExtend, - $RequestExtend, - $NextFunctionVer, - IStorageHandler -} from '../../../../types'; - -function addSearchWebApi(route: Router, storage: IStorageHandler, auth: IAuth): void { - // Search package - route.get( - '/search/:anything', - function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void { - const results: any = Search.query(req.params.anything); - // FUTURE: figure out here the correct type - const packages: any[] = []; - - const getPackageInfo = function (i): void { - storage.getPackage({ - name: results[i].ref, - uplinksLook: false, - callback: (err, entry: Package): void => { - if (!err && entry) { - auth.allow_access( - { packageName: entry.name }, - req.remote_user, - function (err, allowed): void { - if (err || !allowed) { - return; - } - - packages.push(entry.versions[entry[DIST_TAGS].latest]); - } - ); - } - - if (i >= results.length - 1) { - next(packages); - } else { - getPackageInfo(i + 1); - } - } - }); - }; - - if (results.length) { - getPackageInfo(0); - } else { - next([]); - } - } - ); -} - -export default addSearchWebApi; diff --git a/src/api/web/endpoint/user.ts b/src/api/web/endpoint/user.ts deleted file mode 100644 index 11754bf90..000000000 --- a/src/api/web/endpoint/user.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @prettier - * @flow - */ - -import _ from 'lodash'; - -import { Router, Response, Request } from 'express'; -import { Config, RemoteUser, JWTSignOptions } from '@verdaccio/types'; -import { API_ERROR, APP_ERROR, HTTP_STATUS } from '../../../lib/constants'; -import { IAuth, $NextFunctionVer } from '../../../../types'; -import { ErrorCode } from '../../../lib/utils'; -import { getSecurity, validatePassword } from '../../../lib/auth-utils'; - -function addUserAuthApi(route: Router, auth: IAuth, config: Config): void { - route.post('/login', function (req: Request, res: Response, next: $NextFunctionVer): void { - const { username, password } = req.body; - - auth.authenticate( - username, - password, - async (err, user: RemoteUser): Promise => { - if (err) { - const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR; - next(ErrorCode.getCode(errorCode, err.message)); - } else { - req.remote_user = user; - const jWTSignOptions: JWTSignOptions = getSecurity(config).web.sign; - - next({ - token: await auth.jwtEncrypt(user, jWTSignOptions), - username: req.remote_user.name - }); - } - } - ); - }); - - route.put( - '/reset_password', - function (req: Request, res: Response, next: $NextFunctionVer): void { - if (_.isNil(req.remote_user.name)) { - res.status(HTTP_STATUS.UNAUTHORIZED); - return next({ - // FUTURE: update to a more meaningful message - message: API_ERROR.MUST_BE_LOGGED - }); - } - - const { password } = req.body; - const { name } = req.remote_user; - - if (validatePassword(password.new) === false) { - auth.changePassword(name as string, password.old, password.new, (err, isUpdated): void => { - if (_.isNil(err) && isUpdated) { - next({ - ok: true - }); - } else { - return next(ErrorCode.getInternalError(API_ERROR.INTERNAL_SERVER_ERROR)); - } - }); - } else { - return next(ErrorCode.getCode(HTTP_STATUS.BAD_REQUEST, APP_ERROR.PASSWORD_VALIDATION)); - } - } - ); -} - -export default addUserAuthApi; diff --git a/src/api/web/index.ts b/src/api/web/index.ts deleted file mode 100644 index d55cf5879..000000000 --- a/src/api/web/index.ts +++ /dev/null @@ -1,136 +0,0 @@ -/** - * @prettier - */ - -import fs from 'fs'; - -import path from 'path'; -import _ from 'lodash'; -import express from 'express'; - -import { combineBaseUrl, getWebProtocol, isHTTPProtocol } from '../../lib/utils'; -import Search from '../../lib/search'; -import { HEADERS, HTTP_STATUS, WEB_TITLE } from '../../lib/constants'; -import loadPlugin from '../../lib/plugin-loader'; - -const { setSecurityWebHeaders } = require('../middleware'); -const pkgJSON = require('../../../package.json'); - -const DEFAULT_LANGUAGE = 'es-US'; - -export function loadTheme(config) { - if (_.isNil(config.theme) === false) { - return _.head( - loadPlugin( - config, - config.theme, - {}, - function (plugin) { - return _.isString(plugin); - }, - 'verdaccio-theme' - ) - ); - } -} - -export function validatePrimaryColor(primaryColor) { - const isHex = /^#+([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/i.test(primaryColor); - if (!isHex) { - return ''; - } - - return primaryColor; -} - -const sendFileCallback = (next) => (err) => { - if (!err) { - return; - } - if (err.status === HTTP_STATUS.NOT_FOUND) { - next(); - } else { - next(err); - } -}; - -export default function (config, auth, storage) { - Search.configureStorage(storage); - /* eslint new-cap:off */ - const router = express.Router(); - - router.use(auth.webUIJWTmiddleware()); - router.use(setSecurityWebHeaders); - const themePath = loadTheme(config) || require('@verdaccio/ui-theme')(); - const indexTemplate = path.join(themePath, 'index.html'); - const template = fs.readFileSync(indexTemplate).toString(); - - // Logo - let logoURI = _.get(config, 'web.logo') ? config.web.logo : ''; - if (logoURI && !isHTTPProtocol(logoURI)) { - // URI related to a local file - - // Note: `path.join` will break on Windows, because it transforms `/` to `\` - // Use POSIX version `path.posix.join` instead. - logoURI = path.posix.join('/-/static/', path.basename(logoURI)); - router.get(logoURI, function (req, res, next) { - res.sendFile(path.resolve(config.web.logo), sendFileCallback(next)); - }); - } - - // Static - router.get('/-/static/*', function (req, res, next) { - const filename = req.params[0]; - const file = `${themePath}/${filename}`; - res.sendFile(file, sendFileCallback(next)); - }); - - function renderHTML(req, res) { - const protocol = getWebProtocol(req.get(HEADERS.FORWARDED_PROTO), req.protocol); - const host = req.get('host'); - const { url_prefix } = config; - const uri = `${protocol}://${host}`; - const base = combineBaseUrl(protocol, host, url_prefix); - const language = config?.i18n?.web ?? DEFAULT_LANGUAGE; - const darkMode = config?.web?.darkMode ?? false; - const primaryColor = validatePrimaryColor(config?.web?.primary_color); - const title = _.get(config, 'web.title') ? config.web.title : WEB_TITLE; - const scope = _.get(config, 'web.scope') ? config.web.scope : ''; - const options = { - uri, - darkMode, - protocol, - host, - url_prefix, - base, - primaryColor, - title, - scope, - language - }; - - const webPage = template - .replace(/ToReplaceByVerdaccioUI/g, JSON.stringify(options)) - .replace(/ToReplaceByVerdaccio/g, base) - .replace(/ToReplaceByPrefix/g, url_prefix) - .replace(/ToReplaceByVersion/g, pkgJSON.version) - .replace(/ToReplaceByTitle/g, title) - .replace(/ToReplaceByLogo/g, logoURI) - .replace(/ToReplaceByPrimaryColor/g, primaryColor) - .replace(/ToReplaceByScope/g, scope); - - res.setHeader('Content-Type', HEADERS.TEXT_HTML); - - res.send(webPage); - } - - router.get('/-/web/:section/*', function (req, res) { - renderHTML(req, res); - }); - - router.get('/', function (req, res) { - renderHTML(req, res); - }); - - return router; -} diff --git a/src/config/env.ts b/src/config/env.ts deleted file mode 100644 index 4f1620400..000000000 --- a/src/config/env.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @prettier - */ - -const path = require('path'); - -const APP_ROOT = path.resolve(__dirname, '../../'); - -module.exports = { - APP_ROOT, - SRC_ROOT: path.resolve(APP_ROOT, 'src/'), - DIST_PATH: path.resolve(APP_ROOT, 'static/') -}; diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index e41843bd6..000000000 --- a/src/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @flow - -import { startVerdaccio } from './lib/bootstrap'; - -export default startVerdaccio; diff --git a/src/lib/.eslintrc b/src/lib/.eslintrc deleted file mode 100644 index bab70d6c8..000000000 --- a/src/lib/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "rules": { - "no-useless-escape": 0, - "@typescript-eslint/no-non-null-assertion": 0 - } -} diff --git a/src/lib/auth-utils.ts b/src/lib/auth-utils.ts deleted file mode 100644 index abfc52fbb..000000000 --- a/src/lib/auth-utils.ts +++ /dev/null @@ -1,305 +0,0 @@ -import _ from 'lodash'; -import { - RemoteUser, - Package, - Callback, - Config, - Security, - APITokenOptions, - JWTOptions, - IPluginAuth -} from '@verdaccio/types'; -import { - CookieSessionToken, - IAuthWebUI, - AuthMiddlewarePayload, - AuthTokenHeader, - BasicPayload -} from '../../types'; -import { logger } from '../lib/logger'; -import { convertPayloadToBase64, ErrorCode } from './utils'; -import { - API_ERROR, - HTTP_STATUS, - ROLES, - TIME_EXPIRATION_7D, - TOKEN_BASIC, - TOKEN_BEARER, - DEFAULT_MIN_LIMIT_PASSWORD -} from './constants'; - -import { aesDecrypt, verifyPayload } from './crypto-utils'; - -export function validatePassword( - password: string, - minLength: number = DEFAULT_MIN_LIMIT_PASSWORD -): boolean { - return typeof password === 'string' && password.length >= minLength; -} - -/** - * Create a RemoteUser object - * @return {Object} { name: xx, pluginGroups: [], real_groups: [] } - */ -export function createRemoteUser(name: string, pluginGroups: string[]): RemoteUser { - const isGroupValid: boolean = Array.isArray(pluginGroups); - const groups = (isGroupValid ? pluginGroups : []).concat([ - ROLES.$ALL, - ROLES.$AUTH, - ROLES.DEPRECATED_ALL, - ROLES.DEPRECATED_AUTH, - ROLES.ALL - ]); - - return { - name, - groups, - real_groups: pluginGroups - }; -} - -/** - * Builds an anonymous remote user in case none is logged in. - * @return {Object} { name: xx, groups: [], real_groups: [] } - */ -export function createAnonymousRemoteUser(): RemoteUser { - return { - name: undefined, - // groups without '$' are going to be deprecated eventually - groups: [ROLES.$ALL, ROLES.$ANONYMOUS, ROLES.DEPRECATED_ALL, ROLES.DEPRECATED_ANONYMOUS], - real_groups: [] - }; -} - -export function allow_action(action: string): Function { - return function (user: RemoteUser, pkg: Package, callback: Callback): void { - logger.trace({ remote: user.name }, `[auth/allow_action]: user: @{user.name}`); - const { name, groups } = user; - const groupAccess = pkg[action]; - const hasPermission = groupAccess.some((group) => name === group || groups.includes(group)); - logger.trace( - { pkgName: pkg.name, hasPermission, remote: user.name, groupAccess }, - `[auth/allow_action]: hasPermission? @{hasPermission} for user: @{user}` - ); - - if (hasPermission) { - logger.trace({ remote: user.name }, `auth/allow_action: access granted to: @{user}`); - return callback(null, true); - } - - if (name) { - callback( - ErrorCode.getForbidden(`user ${name} is not allowed to ${action} package ${pkg.name}`) - ); - } else { - callback( - ErrorCode.getUnauthorized(`authorization required to ${action} package ${pkg.name}`) - ); - } - }; -} - -/** - * - */ -export function handleSpecialUnpublish(): any { - return function (user: RemoteUser, pkg: Package, callback: Callback): void { - const action = 'unpublish'; - // verify whether the unpublish prop has been defined - const isUnpublishMissing: boolean = _.isNil(pkg[action]); - const hasGroups: boolean = isUnpublishMissing ? false : pkg[action].length > 0; - logger.trace( - { user: user.name, name: pkg.name, hasGroups }, - `fallback unpublish for @{name} has groups: @{hasGroups} for @{user}` - ); - - if (isUnpublishMissing || hasGroups === false) { - return callback(null, undefined); - } - - logger.trace( - { user: user.name, name: pkg.name, action, hasGroups }, - `allow_action for @{action} for @{name} has groups: @{hasGroups} for @{user}` - ); - return allow_action(action)(user, pkg, callback); - }; -} - -export function getDefaultPlugins(): IPluginAuth { - return { - authenticate(user: string, password: string, cb: Callback): void { - cb(ErrorCode.getForbidden(API_ERROR.BAD_USERNAME_PASSWORD)); - }, - - add_user(user: string, password: string, cb: Callback): void { - return cb(ErrorCode.getConflict(API_ERROR.BAD_USERNAME_PASSWORD)); - }, - - // FIXME: allow_action and allow_publish should be in the @verdaccio/types - // @ts-ignore - allow_access: allow_action('access'), - // @ts-ignore - allow_publish: allow_action('publish'), - allow_unpublish: handleSpecialUnpublish() - }; -} - -export function createSessionToken(): CookieSessionToken { - const tenHoursTime = 10 * 60 * 60 * 1000; - - return { - // npmjs.org sets 10h expire - expires: new Date(Date.now() + tenHoursTime) - }; -} - -const defaultWebTokenOptions: JWTOptions = { - sign: { - // The expiration token for the website is 7 days - expiresIn: TIME_EXPIRATION_7D - }, - verify: {} -}; - -const defaultApiTokenConf: APITokenOptions = { - legacy: true -}; - -export const defaultSecurity: Security = { - web: defaultWebTokenOptions, - api: defaultApiTokenConf -}; - -export function getSecurity(config: Config): Security { - if (_.isNil(config.security) === false) { - return _.merge(defaultSecurity, config.security); - } - - return defaultSecurity; -} - -export function getAuthenticatedMessage(user: string): string { - return `you are authenticated as '${user}'`; -} - -export function buildUserBuffer(name: string, password: string): Buffer { - return Buffer.from(`${name}:${password}`, 'utf8'); -} - -export function isAESLegacy(security: Security): boolean { - const { legacy, jwt } = security.api; - - return _.isNil(legacy) === false && _.isNil(jwt) && legacy === true; -} - -export async function getApiToken( - auth: IAuthWebUI, - config: Config, - remoteUser: RemoteUser, - aesPassword: string -): Promise { - const security: Security = getSecurity(config); - - if (isAESLegacy(security)) { - // fallback all goes to AES encryption - return await new Promise((resolve): void => { - resolve( - auth.aesEncrypt(buildUserBuffer(remoteUser.name as string, aesPassword)).toString('base64') - ); - }); - } - // i am wiling to use here _.isNil but flow does not like it yet. - const { jwt } = security.api; - - if (jwt && jwt.sign) { - return await auth.jwtEncrypt(remoteUser, jwt.sign); - } - return await new Promise((resolve): void => { - resolve( - auth.aesEncrypt(buildUserBuffer(remoteUser.name as string, aesPassword)).toString('base64') - ); - }); -} - -export function parseAuthTokenHeader(authorizationHeader: string): AuthTokenHeader { - const parts = authorizationHeader.split(' '); - const [scheme, token] = parts; - - return { scheme, token }; -} - -export function parseBasicPayload(credentials: string): BasicPayload { - const index = credentials.indexOf(':'); - if (index < 0) { - return; - } - - const user: string = credentials.slice(0, index); - const password: string = credentials.slice(index + 1); - - return { user, password }; -} - -export function parseAESCredentials(authorizationHeader: string, secret: string) { - const { scheme, token } = parseAuthTokenHeader(authorizationHeader); - - // basic is deprecated and should not be enforced - if (scheme.toUpperCase() === TOKEN_BASIC.toUpperCase()) { - const credentials = convertPayloadToBase64(token).toString(); - - return credentials; - } else if (scheme.toUpperCase() === TOKEN_BEARER.toUpperCase()) { - const tokenAsBuffer = convertPayloadToBase64(token); - const credentials = aesDecrypt(tokenAsBuffer, secret).toString('utf8'); - - return credentials; - } -} - -export const expireReasons: string[] = ['JsonWebTokenError', 'TokenExpiredError']; - -export function verifyJWTPayload(token: string, secret: string): RemoteUser { - try { - const payload: RemoteUser = verifyPayload(token, secret); - - return payload; - } catch (error) { - // #168 this check should be removed as soon AES encrypt is removed. - if (expireReasons.includes(error.name)) { - // it might be possible the jwt configuration is enabled and - // old tokens fails still remains in usage, thus - // we return an anonymous user to force log in. - return createAnonymousRemoteUser(); - } - throw ErrorCode.getCode(HTTP_STATUS.UNAUTHORIZED, error.message); - } -} - -export function isAuthHeaderValid(authorization: string): boolean { - return authorization.split(' ').length === 2; -} - -export function getMiddlewareCredentials( - security: Security, - secret: string, - authorizationHeader: string -): AuthMiddlewarePayload { - if (isAESLegacy(security)) { - const credentials = parseAESCredentials(authorizationHeader, secret); - if (!credentials) { - return; - } - - const parsedCredentials = parseBasicPayload(credentials); - if (!parsedCredentials) { - return; - } - - return parsedCredentials; - } - const { scheme, token } = parseAuthTokenHeader(authorizationHeader); - - if (_.isString(token) && scheme.toUpperCase() === TOKEN_BEARER.toUpperCase()) { - return verifyJWTPayload(token, secret); - } -} diff --git a/src/lib/auth.ts b/src/lib/auth.ts deleted file mode 100644 index a999b110f..000000000 --- a/src/lib/auth.ts +++ /dev/null @@ -1,529 +0,0 @@ -import _ from 'lodash'; -import { VerdaccioError } from '@verdaccio/commons-api'; - -import { - Config, - Logger, - Callback, - IPluginAuth, - RemoteUser, - JWTSignOptions, - Security, - AuthPluginPackage, - AllowAccess, - PackageAccess -} from '@verdaccio/types'; -import { NextFunction } from 'express'; -import loadPlugin from '../lib/plugin-loader'; -import { $RequestExtend, $ResponseExtend, IAuth, AESPayload } from '../../types'; -import { API_ERROR, SUPPORT_ERRORS, TOKEN_BASIC, TOKEN_BEARER } from './constants'; -import { aesEncrypt, signPayload } from './crypto-utils'; -import { - getDefaultPlugins, - getMiddlewareCredentials, - verifyJWTPayload, - createAnonymousRemoteUser, - isAuthHeaderValid, - getSecurity, - isAESLegacy, - parseAuthTokenHeader, - parseBasicPayload, - createRemoteUser -} from './auth-utils'; -import { convertPayloadToBase64, ErrorCode } from './utils'; -import { getMatchedPackagesSpec } from './config-utils'; - -/* eslint-disable @typescript-eslint/no-var-requires */ -const LoggerApi = require('./logger'); - -class Auth implements IAuth { - public config: Config; - public logger: Logger; - public secret: string; - public plugins: IPluginAuth[]; - - public constructor(config: Config) { - this.config = config; - this.logger = LoggerApi.logger.child({ sub: 'auth' }); - this.secret = config.secret; - this.plugins = this._loadPlugin(config); - this._applyDefaultPlugins(); - } - - private _loadPlugin(config: Config): IPluginAuth[] { - const pluginOptions = { - config, - logger: this.logger - }; - - return loadPlugin>( - config, - config.auth, - pluginOptions, - (plugin: IPluginAuth): boolean => { - const { authenticate, allow_access, allow_publish } = plugin; - - // @ts-ignore - return authenticate || allow_access || allow_publish; - } - ); - } - - private _applyDefaultPlugins(): void { - this.plugins.push(getDefaultPlugins()); - } - - public changePassword( - username: string, - password: string, - newPassword: string, - cb: Callback - ): void { - const validPlugins = _.filter(this.plugins, (plugin) => _.isFunction(plugin.changePassword)); - - if (_.isEmpty(validPlugins)) { - return cb(ErrorCode.getInternalError(SUPPORT_ERRORS.PLUGIN_MISSING_INTERFACE)); - } - - for (const plugin of validPlugins) { - if (_.isNil(plugin) || _.isFunction(plugin.changePassword) === false) { - this.logger.trace('auth plugin does not implement changePassword, trying next one'); - continue; - } else { - this.logger.trace({ username }, 'updating password for @{username}'); - plugin.changePassword!(username, password, newPassword, (err, profile): void => { - if (err) { - this.logger.error( - { username, err }, - `An error has been produced - updating the password for @{username}. Error: @{err.message}` - ); - return cb(err); - } - - this.logger.trace({ username }, 'updated password for @{username} was successful'); - return cb(null, profile); - }); - } - } - } - - public authenticate(username: string, password: string, cb: Callback): void { - const plugins = this.plugins.slice(0); - const self = this; - (function next(): void { - const plugin = plugins.shift() as IPluginAuth; - - if (_.isFunction(plugin.authenticate) === false) { - return next(); - } - - self.logger.trace({ username }, 'authenticating @{username}'); - plugin.authenticate(username, password, function (err, groups): void { - if (err) { - self.logger.trace( - { username, err }, - 'authenticating for user @{username} failed. Error: @{err.message}' - ); - return cb(err); - } - - // Expect: SKIP if groups is falsey and not an array - // with at least one item (truthy length) - // Expect: CONTINUE otherwise (will error if groups is not - // an array, but this is current behavior) - // Caveat: STRING (if valid) will pass successfully - // bug give unexpected results - // Info: Cannot use `== false to check falsey values` - if (!!groups && groups.length !== 0) { - // TODO: create a better understanding of expectations - if (_.isString(groups)) { - throw new TypeError('plugin group error: invalid type for function'); - } - const isGroupValid: boolean = _.isArray(groups); - if (!isGroupValid) { - throw new TypeError(API_ERROR.BAD_FORMAT_USER_GROUP); - } - - self.logger.trace( - { username, groups }, - 'authentication for user @{username} was successfully. Groups: @{groups}' - ); - return cb(err, createRemoteUser(username, groups)); - } - next(); - }); - })(); - } - - public add_user(user: string, password: string, cb: Callback): void { - const self = this; - const plugins = this.plugins.slice(0); - this.logger.trace({ user }, 'add user @{user}'); - - (function next(): void { - const plugin = plugins.shift() as IPluginAuth; - let method = 'adduser'; - if (_.isFunction(plugin[method]) === false) { - method = 'add_user'; - self.logger.warn( - 'the plugin method add_user in the auth plugin is deprecated and will be removed in next major release, notify to the plugin author' - ); - } - - if (_.isFunction(plugin[method]) === false) { - next(); - } else { - // p.add_user() execution - plugin[method](user, password, function (err, ok): void { - if (err) { - self.logger.trace( - { user, err: err.message }, - 'the user @{user} could not being added. Error: @{err}' - ); - return cb(err); - } - if (ok) { - self.logger.trace({ user }, 'the user @{user} has been added'); - return self.authenticate(user, password, cb); - } - next(); - }); - } - })(); - } - - /** - * Allow user to access a package. - */ - public allow_access( - { packageName, packageVersion }: AuthPluginPackage, - user: RemoteUser, - callback: Callback - ): void { - const plugins = this.plugins.slice(0); - const pkgAllowAcces: AllowAccess = { name: packageName, version: packageVersion }; - const pkg = Object.assign( - {}, - pkgAllowAcces, - getMatchedPackagesSpec(packageName, this.config.packages) - ) as AllowAccess & PackageAccess; - const self = this; - this.logger.trace({ packageName }, 'allow access for @{packageName}'); - - (function next(): void { - const plugin: IPluginAuth = plugins.shift() as IPluginAuth; - - if (_.isNil(plugin) || _.isFunction(plugin.allow_access) === false) { - return next(); - } - - plugin.allow_access!(user, pkg, function (err, ok: boolean): void { - if (err) { - self.logger.trace( - { packageName, err }, - 'forbidden access for @{packageName}. Error: @{err.message}' - ); - return callback(err); - } - - if (ok) { - self.logger.trace({ packageName }, 'allowed access for @{packageName}'); - return callback(null, ok); - } - - next(); // cb(null, false) causes next plugin to roll - }); - })(); - } - - public allow_unpublish( - { packageName, packageVersion }: AuthPluginPackage, - user: RemoteUser, - callback: Callback - ): void { - const pkg = Object.assign( - { name: packageName, version: packageVersion }, - getMatchedPackagesSpec(packageName, this.config.packages) - ); - this.logger.trace({ packageName }, 'allow unpublish for @{packageName}'); - - for (const plugin of this.plugins) { - if (_.isNil(plugin) || _.isFunction(plugin.allow_unpublish) === false) { - this.logger.trace( - { packageName }, - 'allow unpublish for @{packageName} plugin does not implement allow_unpublish' - ); - continue; - } else { - plugin.allow_unpublish!(user, pkg, (err, ok: boolean): void => { - if (err) { - this.logger.trace( - { packageName }, - 'forbidden publish for @{packageName}, it will fallback on unpublish permissions' - ); - return callback(err); - } - - if (_.isNil(ok) === true) { - this.logger.trace( - { packageName }, - 'we bypass unpublish for @{packageName}, publish will handle the access' - ); - // @ts-ignore - // eslint-disable-next-line - return this.allow_publish(...arguments); - } - - if (ok) { - this.logger.trace({ packageName }, 'allowed unpublish for @{packageName}'); - return callback(null, ok); - } - }); - } - } - } - - /** - * Allow user to publish a package. - */ - public allow_publish( - { packageName, packageVersion }: AuthPluginPackage, - user: RemoteUser, - callback: Callback - ): void { - const plugins = this.plugins.slice(0); - const self = this; - const pkg = Object.assign( - { name: packageName, version: packageVersion }, - getMatchedPackagesSpec(packageName, this.config.packages) - ); - this.logger.trace( - { packageName, plugins: this.plugins.length }, - 'allow publish for @{packageName} init | plugins: @{plugins}' - ); - - (function next(): void { - const plugin = plugins.shift(); - - if (_.isNil(plugin) || _.isFunction(plugin.allow_publish) === false) { - self.logger.trace( - { packageName }, - 'allow publish for @{packageName} plugin does not implement allow_publish' - ); - return next(); - } - - // @ts-ignore - plugin.allow_publish(user, pkg, (err: VerdaccioError, ok: boolean): void => { - if (_.isNil(err) === false && _.isError(err)) { - self.logger.trace({ packageName }, 'forbidden publish for @{packageName}'); - return callback(err); - } - - if (ok) { - self.logger.trace({ packageName }, 'allowed publish for @{packageName}'); - return callback(null, ok); - } - - self.logger.trace({ packageName }, 'allow publish skip validation for @{packageName}'); - next(); // cb(null, false) causes next plugin to roll - }); - })(); - } - - public apiJWTmiddleware(): Function { - const plugins = this.plugins.slice(0); - const helpers = { createAnonymousRemoteUser, createRemoteUser }; - for (const plugin of plugins) { - if (plugin.apiJWTmiddleware) { - return plugin.apiJWTmiddleware(helpers); - } - } - - return (req: $RequestExtend, res: $ResponseExtend, _next: NextFunction): void => { - req.pause(); - - const next = function (err: VerdaccioError | void): void { - req.resume(); - // uncomment this to reject users with bad auth headers - // return _next.apply(null, arguments) - // swallow error, user remains unauthorized - // set remoteUserError to indicate that user was attempting authentication - if (err) { - req.remote_user.error = err.message; - } - return _next(); - }; - - if (this._isRemoteUserValid(req.remote_user)) { - return next(); - } - - // in case auth header does not exist we return anonymous function - req.remote_user = createAnonymousRemoteUser(); - - const { authorization } = req.headers; - if (_.isNil(authorization)) { - return next(); - } - - if (!isAuthHeaderValid(authorization)) { - this.logger.trace('api middleware auth heather is not valid'); - return next(ErrorCode.getBadRequest(API_ERROR.BAD_AUTH_HEADER)); - } - - const security: Security = getSecurity(this.config); - const { secret } = this.config; - - if (isAESLegacy(security)) { - this.logger.trace('api middleware using legacy auth token'); - this._handleAESMiddleware(req, security, secret, authorization, next); - } else { - this.logger.trace('api middleware using JWT auth token'); - this._handleJWTAPIMiddleware(req, security, secret, authorization, next); - } - }; - } - - private _handleJWTAPIMiddleware( - req: $RequestExtend, - security: Security, - secret: string, - authorization: string, - next: Function - ): void { - const { scheme, token } = parseAuthTokenHeader(authorization); - if (scheme.toUpperCase() === TOKEN_BASIC.toUpperCase()) { - // this should happen when client tries to login with an existing user - const credentials = convertPayloadToBase64(token).toString(); - const { user, password } = parseBasicPayload(credentials) as AESPayload; - this.authenticate(user, password, (err, user): void => { - if (!err) { - req.remote_user = user; - next(); - } else { - req.remote_user = createAnonymousRemoteUser(); - next(err); - } - }); - } else { - // jwt handler - const credentials: any = getMiddlewareCredentials(security, secret, authorization); - if (credentials) { - // if the signature is valid we rely on it - req.remote_user = credentials; - next(); - } else { - // with JWT throw 401 - next(ErrorCode.getForbidden(API_ERROR.BAD_USERNAME_PASSWORD)); - } - } - } - - private _handleAESMiddleware( - req: $RequestExtend, - security: Security, - secret: string, - authorization: string, - next: Function - ): void { - const credentials: any = getMiddlewareCredentials(security, secret, authorization); - if (credentials) { - const { user, password } = credentials; - this.authenticate(user, password, (err, user): void => { - if (!err) { - req.remote_user = user; - next(); - } else { - req.remote_user = createAnonymousRemoteUser(); - next(err); - } - }); - } else { - // we force npm client to ask again with basic authentication - return next(ErrorCode.getBadRequest(API_ERROR.BAD_AUTH_HEADER)); - } - } - - private _isRemoteUserValid(remote_user: RemoteUser): boolean { - return _.isUndefined(remote_user) === false && _.isUndefined(remote_user.name) === false; - } - - /** - * JWT middleware for WebUI - */ - public webUIJWTmiddleware(): Function { - return (req: $RequestExtend, res: $ResponseExtend, _next: NextFunction): void => { - if (this._isRemoteUserValid(req.remote_user)) { - return _next(); - } - - req.pause(); - const next = (err: VerdaccioError | void): void => { - req.resume(); - if (err) { - // req.remote_user.error = err.message; - res.status(err.statusCode).send(err.message); - } - - return _next(); - }; - - const { authorization } = req.headers; - if (_.isNil(authorization)) { - return next(); - } - - if (!isAuthHeaderValid(authorization)) { - return next(ErrorCode.getBadRequest(API_ERROR.BAD_AUTH_HEADER)); - } - - const token = (authorization || '').replace(`${TOKEN_BEARER} `, ''); - if (!token) { - return next(); - } - - let credentials; - try { - credentials = verifyJWTPayload(token, this.config.secret); - } catch (err) { - // FIXME: intended behaviour, do we want it? - } - - if (this._isRemoteUserValid(credentials)) { - const { name, groups } = credentials; - // $FlowFixMe - req.remote_user = createRemoteUser(name, groups); - } else { - req.remote_user = createAnonymousRemoteUser(); - } - - next(); - }; - } - - public async jwtEncrypt(user: RemoteUser, signOptions: JWTSignOptions): Promise { - const { real_groups, name, groups } = user; - const realGroupsValidated = _.isNil(real_groups) ? [] : real_groups; - const groupedGroups = _.isNil(groups) ? real_groups : groups.concat(realGroupsValidated); - const payload: RemoteUser = { - real_groups: realGroupsValidated, - name, - groups: groupedGroups - }; - - const token: string = await signPayload(payload, this.secret, signOptions); - - return token; - } - - /** - * Encrypt a string. - */ - public aesEncrypt(buf: Buffer): Buffer { - return aesEncrypt(buf, this.secret); - } -} - -export default Auth; diff --git a/src/lib/bootstrap.ts b/src/lib/bootstrap.ts deleted file mode 100644 index b49f427b1..000000000 --- a/src/lib/bootstrap.ts +++ /dev/null @@ -1,187 +0,0 @@ -import URL from 'url'; -import fs from 'fs'; -import http from 'http'; -import https from 'https'; -import constants from 'constants'; -import express from 'express'; -import { assign, isObject, isFunction } from 'lodash'; - -import { Callback, ConfigWithHttps, HttpsConfKeyCert, HttpsConfPfx } from '@verdaccio/types'; -import { Application } from 'express'; -import endPointAPI from '../api/index'; -import { API_ERROR, certPem, csrPem, keyPem } from './constants'; -import { getListListenAddresses, resolveConfigPath } from './cli/utils'; - -const logger = require('./logger'); - -function displayExperimentsInfoBox(experiments) { - const experimentList = Object.keys(experiments); - if (experimentList.length >= 1) { - logger.logger.warn('⚠️ experiments are enabled, we recommend do not use experiments in production, comment out this section to disable it'); - experimentList.forEach((experiment) => { - logger.logger.warn(` - support for ${experiment} ${experiments[experiment] ? 'is enabled' : ' is disabled'}`); - }); - } -} - -/** - * Trigger the server after configuration has been loaded. - * @param {Object} config - * @param {Object} cliArguments - * @param {String} configPath - * @param {String} pkgVersion - * @param {String} pkgName - */ -function startVerdaccio(config: any, cliListen: string, configPath: string, pkgVersion: string, pkgName: string, callback: Callback): void { - if (isObject(config) === false) { - throw new Error(API_ERROR.CONFIG_BAD_FORMAT); - } - - if ('experiments' in config) { - displayExperimentsInfoBox(config.experiments); - } - - endPointAPI(config).then((app): void => { - const addresses = getListListenAddresses(cliListen, config.listen); - - addresses.forEach(function (addr): void { - let webServer; - if (addr.proto === 'https') { - webServer = handleHTTPS(app, configPath, config); - } else { - // http - webServer = http.createServer(app); - } - if (config.server && typeof config.server.keepAliveTimeout !== 'undefined' && config.server.keepAliveTimeout !== 'null') { - // library definition for node is not up to date (doesn't contain recent 8.0 changes) - webServer.keepAliveTimeout = config.server.keepAliveTimeout * 1000; - } - unlinkAddressPath(addr); - - callback(webServer, addr, pkgName, pkgVersion); - }); - }); -} - -function unlinkAddressPath(addr) { - if (addr.path && fs.existsSync(addr.path)) { - fs.unlinkSync(addr.path); - } -} - -function logHTTPSWarning(storageLocation) { - logger.logger.fatal( - [ - 'You have enabled HTTPS and need to specify either ', - ' "https.key" and "https.cert" or ', - ' "https.pfx" and optionally "https.passphrase" ', - 'to run https server', - '', - // commands are borrowed from node.js docs - 'To quickly create self-signed certificate, use:', - ' $ openssl genrsa -out ' + resolveConfigPath(storageLocation, keyPem) + ' 2048', - ' $ openssl req -new -sha256 -key ' + resolveConfigPath(storageLocation, keyPem) + ' -out ' + resolveConfigPath(storageLocation, csrPem), - ' $ openssl x509 -req -in ' + - resolveConfigPath(storageLocation, csrPem) + - ' -signkey ' + - resolveConfigPath(storageLocation, keyPem) + - ' -out ' + - resolveConfigPath(storageLocation, certPem), - '', - 'And then add to config file (' + storageLocation + '):', - ' https:', - ` key: ${resolveConfigPath(storageLocation, keyPem)}`, - ` cert: ${resolveConfigPath(storageLocation, certPem)}`, - ].join('\n') - ); - process.exit(2); -} - -function handleHTTPS(app: express.Application, configPath: string, config: ConfigWithHttps): https.Server { - try { - let httpsOptions = { - secureOptions: constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_SSLv3, // disable insecure SSLv2 and SSLv3 - }; - - const keyCertConfig = config.https as HttpsConfKeyCert; - const pfxConfig = config.https as HttpsConfPfx; - - // https must either have key and cert or a pfx and (optionally) a passphrase - if (!((keyCertConfig.key && keyCertConfig.cert) || pfxConfig.pfx)) { - logHTTPSWarning(configPath); - } - - if (pfxConfig.pfx) { - const { pfx, passphrase } = pfxConfig; - httpsOptions = assign(httpsOptions, { - pfx: fs.readFileSync(pfx), - passphrase: passphrase || '', - }); - } else { - const { key, cert, ca } = keyCertConfig; - httpsOptions = assign(httpsOptions, { - key: fs.readFileSync(key), - cert: fs.readFileSync(cert), - ...(ca && { - ca: fs.readFileSync(ca), - }), - }); - } - return https.createServer(httpsOptions, app); - } catch (err) { - // catch errors related to certificate loading - logger.logger.fatal({ err: err }, 'cannot create server: @{err.message}'); - process.exit(2); - } -} - -function listenDefaultCallback(webServer: Application, addr: any, pkgName: string, pkgVersion: string): void { - const server = webServer - .listen(addr.port || addr.path, addr.host, (): void => { - // send a message for tests - if (isFunction(process.send)) { - process.send({ - verdaccio_started: true, - }); - } - }) - .on('error', function (err): void { - logger.logger.fatal({ err: err }, 'cannot create server: @{err.message}'); - process.exit(2); - }); - - function handleShutdownGracefully() { - logger.logger.fatal('received shutdown signal - closing server gracefully...'); - server.close(() => { - logger.logger.info('server closed.'); - process.exit(0); - }); - } - - // handle shutdown signals nicely when environment says so - if (process.env.VERDACCIO_HANDLE_KILL_SIGNALS === 'true') { - process.on('SIGINT', handleShutdownGracefully); - process.on('SIGTERM', handleShutdownGracefully); - process.on('SIGHUP', handleShutdownGracefully); - } - - logger.logger.warn( - { - addr: addr.path - ? URL.format({ - protocol: 'unix', - pathname: addr.path, - }) - : URL.format({ - protocol: addr.proto, - hostname: addr.host, - port: addr.port, - pathname: '/', - }), - version: pkgName + '/' + pkgVersion, - }, - 'http address - @{addr} - @{version}' - ); -} - -export { startVerdaccio, listenDefaultCallback }; diff --git a/src/lib/cli.ts b/src/lib/cli.ts deleted file mode 100644 index df69bd420..000000000 --- a/src/lib/cli.ts +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env node - -/* eslint no-sync:0 */ -/* eslint no-empty:0 */ - -import path from 'path'; -import semver from 'semver'; -import { bgYellow, bgRed } from 'kleur'; -import { startVerdaccio, listenDefaultCallback } from './bootstrap'; -import findConfigFile from './config-path'; -import { parseConfigFile } from './utils'; - -require('pkginfo')(module); - -if (process.getuid && process.getuid() === 0) { - global.console.warn(bgYellow().red("*** WARNING: Verdaccio doesn't need superuser privileges. Don't run it under root! ***")); -} - -const MIN_NODE_VERSION = '6.9.0'; - -if (semver.satisfies(process.version, `>=${MIN_NODE_VERSION}`) === false) { - global.console.error(bgRed(`Verdaccio requires at least Node.js ${MIN_NODE_VERSION} or higher, please upgrade your Node.js distribution`)); - process.exit(1); -} - -process.title = 'verdaccio'; - -// eslint-disable-next-line import/order -const logger = require('./logger'); -logger.setup(null, { logStart: false }); // default setup - -const envinfo = require('envinfo'); -const commander = require('commander'); -const pkgVersion = module.exports.version; -const pkgName = module.exports.name; - -commander - .option('-i, --info', 'prints debugging information about the local environment') - .option('-l, --listen <[host:]port>', 'host:port number to listen on (default: localhost:4873)') - .option('-c, --config ', 'use this configuration file (default: ./config.yaml)') - .version(pkgVersion) - .parse(process.argv); - -function init() { - let verdaccioConfiguration; - let configPathLocation; - const cliListener = commander.listen; - - try { - configPathLocation = findConfigFile(commander.config); - verdaccioConfiguration = parseConfigFile(configPathLocation); - process.title = (verdaccioConfiguration.web && verdaccioConfiguration.web.title) || 'verdaccio'; - - if (!verdaccioConfiguration.self_path) { - verdaccioConfiguration.self_path = path.resolve(configPathLocation); - } - if (!verdaccioConfiguration.https) { - verdaccioConfiguration.https = { enable: false }; - } - - logger.logger.warn({ file: configPathLocation }, 'config file - @{file}'); - process.emitWarning(`verdaccio 4.x is deprecated and won't longer receive security support, please - upgrade to 5.x or higher`); - startVerdaccio(verdaccioConfiguration, cliListener, configPathLocation, pkgVersion, pkgName, listenDefaultCallback); - } catch (err) { - logger.logger.fatal({ file: configPathLocation, err: err }, 'cannot open config file @{file}: @{!err.message}'); - process.exit(1); - } -} - -if (commander.info) { - // eslint-disable-next-line no-console - console.log('\nEnvironment Info:'); - (async () => { - const data = await envinfo.run({ - System: ['OS', 'CPU'], - Binaries: ['Node', 'Yarn', 'npm'], - Virtualization: ['Docker'], - Browsers: ['Chrome', 'Edge', 'Firefox', 'Safari'], - npmGlobalPackages: ['verdaccio'], - }); - // eslint-disable-next-line no-console - console.log(data); - process.exit(0); - })(); -} else if (commander.args.length == 1 && !commander.config) { - // handling "verdaccio [config]" case if "-c" is missing in command line - commander.config = commander.args.pop(); - init(); -} else if (commander.args.length !== 0) { - commander.help(); -} else { - init(); -} - -process.on('uncaughtException', function (err) { - logger.logger.fatal( - { - err: err, - }, - 'uncaught exception, please report this\n@{err.stack}' - ); - process.exit(255); -}); diff --git a/src/lib/cli/utils.ts b/src/lib/cli/utils.ts deleted file mode 100644 index ebe8a383c..000000000 --- a/src/lib/cli/utils.ts +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @prettier - * @flow - */ - -import path from 'path'; - -import { parseAddress } from '../utils'; -import { DEFAULT_PORT } from '../constants'; - -const logger = require('../logger'); - -export const resolveConfigPath = function (storageLocation: string, file: string) { - return path.resolve(path.dirname(storageLocation), file); -}; - -/** - * Retrieve all addresses defined in the config file. - * Verdaccio is able to listen multiple ports - * @param {String} argListen - * @param {String} configListen - * eg: - * listen: - - localhost:5555 - - localhost:5557 - @return {Array} - */ -export function getListListenAddresses(argListen: string, configListen: any): any { - // command line || config file || default - let addresses; - if (argListen) { - addresses = [argListen]; - } else if (Array.isArray(configListen)) { - addresses = configListen; - } else if (configListen) { - addresses = [configListen]; - } else { - addresses = [DEFAULT_PORT]; - } - addresses = addresses - .map(function (addr): string { - const parsedAddr = parseAddress(addr); - - if (!parsedAddr) { - logger.logger.warn( - { addr: addr }, - 'invalid address - @{addr}, we expect a port (e.g. "4873"),' + - ' host:port (e.g. "localhost:4873") or full url' + - ' (e.g. "http://localhost:4873/")' - ); - } - - return parsedAddr; - }) - .filter(Boolean); - - return addresses; -} diff --git a/src/lib/config-path.ts b/src/lib/config-path.ts deleted file mode 100644 index 68a25da83..000000000 --- a/src/lib/config-path.ts +++ /dev/null @@ -1,135 +0,0 @@ -import fs from 'fs'; -import Path from 'path'; -import _ from 'lodash'; -import mkdirp from 'mkdirp'; -import { logger } from './logger'; - -import { folderExists, fileExists } from './utils'; -import { CHARACTER_ENCODING } from './constants'; - -const CONFIG_FILE = 'config.yaml'; -const XDG = 'xdg'; -const WIN = 'win'; -const WIN32 = 'win32'; -// eslint-disable-next-line -const pkgJSON = require('../../package.json'); - -export type SetupDirectory = { - path: string; - type: string; -}; - -/** - * Find and get the first config file that match. - * @return {String} the config file path - */ -function findConfigFile(configPath: string): string { - if (_.isNil(configPath) === false) { - return Path.resolve(configPath); - } - - const configPaths: SetupDirectory[] = getConfigPaths(); - - if (_.isEmpty(configPaths)) { - throw new Error('no configuration files can be processed'); - } - - const primaryConf: any = _.find(configPaths, (configLocation: any) => - fileExists(configLocation.path) - ); - if (_.isNil(primaryConf) === false) { - return primaryConf.path; - } - - return createConfigFile(_.head(configPaths)).path; -} - -function createConfigFile(configLocation: any): SetupDirectory { - createConfigFolder(configLocation); - - const defaultConfig = updateStorageLinks(configLocation, readDefaultConfig()); - - fs.writeFileSync(configLocation.path, defaultConfig); - - return configLocation; -} - -function readDefaultConfig(): string { - return fs.readFileSync(require.resolve('../../conf/default.yaml'), CHARACTER_ENCODING.UTF8); -} - -function createConfigFolder(configLocation): void { - mkdirp.sync(Path.dirname(configLocation.path)); - logger.info({ file: configLocation.path }, 'Creating default config file in @{file}'); -} - -function updateStorageLinks(configLocation, defaultConfig): string { - if (configLocation.type !== XDG) { - return defaultConfig; - } - - // $XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored, - // If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used. - // $FlowFixMe - let dataDir = - process.env.XDG_DATA_HOME || Path.join(process.env.HOME as string, '.local', 'share'); - if (folderExists(dataDir)) { - dataDir = Path.resolve(Path.join(dataDir, pkgJSON.name, 'storage')); - return defaultConfig.replace(/^storage: .\/storage$/m, `storage: ${dataDir}`); - } - return defaultConfig; -} - -function getConfigPaths(): SetupDirectory[] { - const listPaths: SetupDirectory[] = [ - getXDGDirectory(), - getWindowsDirectory(), - getRelativeDefaultDirectory(), - getOldDirectory() - ].reduce(function (acc, currentValue: any): SetupDirectory[] { - if (_.isUndefined(currentValue) === false) { - acc.push(currentValue); - } - return acc; - }, [] as SetupDirectory[]); - - return listPaths; -} - -const getXDGDirectory = (): SetupDirectory | void => { - const XDGConfig = getXDGHome() || (process.env.HOME && Path.join(process.env.HOME, '.config')); - - if (XDGConfig && folderExists(XDGConfig)) { - return { - path: Path.join(XDGConfig, pkgJSON.name, CONFIG_FILE), - type: XDG - }; - } -}; - -const getXDGHome = (): string | void => process.env.XDG_CONFIG_HOME; - -const getWindowsDirectory = (): SetupDirectory | void => { - if (process.platform === WIN32 && process.env.APPDATA && folderExists(process.env.APPDATA)) { - return { - path: Path.resolve(Path.join(process.env.APPDATA, pkgJSON.name, CONFIG_FILE)), - type: WIN - }; - } -}; - -const getRelativeDefaultDirectory = (): SetupDirectory => { - return { - path: Path.resolve(Path.join('.', pkgJSON.name, CONFIG_FILE)), - type: 'def' - }; -}; - -const getOldDirectory = (): SetupDirectory => { - return { - path: Path.resolve(Path.join('.', CONFIG_FILE)), - type: 'old' - }; -}; - -export default findConfigFile; diff --git a/src/lib/config-utils.ts b/src/lib/config-utils.ts deleted file mode 100644 index a91ff9909..000000000 --- a/src/lib/config-utils.ts +++ /dev/null @@ -1,156 +0,0 @@ -/** - * @prettier - * @flow - */ - -import assert from 'assert'; -import _ from 'lodash'; -import minimatch from 'minimatch'; - -import { PackageList, UpLinksConfList } from '@verdaccio/types'; -import { MatchedPackage, LegacyPackageList } from '../../types'; -import { ErrorCode } from './utils'; - -const BLACKLIST = { - all: true, - anonymous: true, - undefined: true, - owner: true, - none: true -}; - -/** - * Normalize user list. - * @return {Array} - */ -export function normalizeUserList(oldFormat: any, newFormat: any): any { - const result: any[][] = []; - /* eslint prefer-rest-params: "off" */ - - for (let i = 0; i < arguments.length; i++) { - if (arguments[i] == null) { - continue; - } - - // if it's a string, split it to array - if (_.isString(arguments[i])) { - result.push(arguments[i].split(/\s+/)); - } else if (Array.isArray(arguments[i])) { - result.push(arguments[i]); - } else { - throw ErrorCode.getInternalError( - 'CONFIG: bad package acl (array or string expected): ' + JSON.stringify(arguments[i]) - ); - } - } - return _.flatten(result); -} - -export function uplinkSanityCheck( - uplinks: UpLinksConfList, - users: any = BLACKLIST -): UpLinksConfList { - const newUplinks = _.clone(uplinks); - let newUsers = _.clone(users); - - for (const uplink in newUplinks) { - if (Object.prototype.hasOwnProperty.call(newUplinks, uplink)) { - if (_.isNil(newUplinks[uplink].cache)) { - newUplinks[uplink].cache = true; - } - newUsers = sanityCheckNames(uplink, newUsers); - } - } - - return newUplinks; -} - -export function sanityCheckNames(item: string, users: any): any { - assert( - item !== 'all' && - item !== 'owner' && - item !== 'anonymous' && - item !== 'undefined' && - item !== 'none', - 'CONFIG: reserved uplink name: ' + item - ); - assert(!item.match(/\s/), 'CONFIG: invalid uplink name: ' + item); - assert(_.isNil(users[item]), 'CONFIG: duplicate uplink name: ' + item); - users[item] = true; - - return users; -} - -export function sanityCheckUplinksProps(configUpLinks: UpLinksConfList): UpLinksConfList { - const uplinks = _.clone(configUpLinks); - - for (const uplink in uplinks) { - if (Object.prototype.hasOwnProperty.call(uplinks, uplink)) { - assert(uplinks[uplink].url, 'CONFIG: no url for uplink: ' + uplink); - assert(_.isString(uplinks[uplink].url), 'CONFIG: wrong url format for uplink: ' + uplink); - uplinks[uplink].url = uplinks[uplink].url.replace(/\/$/, ''); - } - } - - return uplinks; -} - -/** - * Check whether an uplink can proxy - */ -export function hasProxyTo(pkg: string, upLink: string, packages: PackageList): boolean { - const matchedPkg: MatchedPackage = getMatchedPackagesSpec(pkg, packages); - const proxyList = typeof matchedPkg !== 'undefined' ? matchedPkg.proxy : []; - if (proxyList) { - return proxyList.some((curr) => upLink === curr); - } - - return false; -} - -export function getMatchedPackagesSpec(pkgName: string, packages: PackageList): MatchedPackage { - for (const i in packages) { - if (minimatch.makeRe(i).exec(pkgName)) { - return packages[i]; - } - } - return; -} - -export function normalisePackageAccess(packages: LegacyPackageList): LegacyPackageList { - const normalizedPkgs: LegacyPackageList = { ...packages }; - // add a default rule for all packages to make writing plugins easier - if (_.isNil(normalizedPkgs['**'])) { - normalizedPkgs['**'] = { access: [], publish: [], proxy: [] }; - } - - for (const pkg in packages) { - if (Object.prototype.hasOwnProperty.call(packages, pkg)) { - assert( - _.isObject(packages[pkg]) && _.isArray(packages[pkg]) === false, - `CONFIG: bad "'${pkg}'" package description (object expected)` - ); - normalizedPkgs[pkg].access = normalizeUserList( - packages[pkg].allow_access, - packages[pkg].access - ); - delete normalizedPkgs[pkg].allow_access; - normalizedPkgs[pkg].publish = normalizeUserList( - packages[pkg].allow_publish, - packages[pkg].publish - ); - delete normalizedPkgs[pkg].allow_publish; - normalizedPkgs[pkg].proxy = normalizeUserList( - packages[pkg].proxy_access, - packages[pkg].proxy - ); - delete normalizedPkgs[pkg].proxy_access; - // if unpublish is not defined, we set to false to fallback in publish access - normalizedPkgs[pkg].unpublish = _.isUndefined(packages[pkg].unpublish) - ? false - : normalizeUserList([], packages[pkg].unpublish); - } - } - - return normalizedPkgs; -} diff --git a/src/lib/config.ts b/src/lib/config.ts deleted file mode 100644 index dc067da5f..000000000 --- a/src/lib/config.ts +++ /dev/null @@ -1,113 +0,0 @@ -import assert from 'assert'; -import _ from 'lodash'; - -import { PackageList, Config as AppConfig, Security, Logger } from '@verdaccio/types'; -import { MatchedPackage, StartUpConfig } from '../../types'; -import { generateRandomHexString } from './crypto-utils'; -import { - getMatchedPackagesSpec, - normalisePackageAccess, - sanityCheckUplinksProps, - uplinkSanityCheck -} from './config-utils'; -import { getUserAgent, isObject } from './utils'; -import { APP_ERROR } from './constants'; - -const LoggerApi = require('./logger'); -const strategicConfigProps = ['uplinks', 'packages']; -const allowedEnvConfig = ['http_proxy', 'https_proxy', 'no_proxy']; - -/** - * Coordinates the application configuration - */ -class Config implements AppConfig { - public logger: Logger; - public user_agent: string; - // @ts-ignore - public secret: string; - public uplinks: any; - public packages: PackageList; - public users: any; - public server_id: string; - public self_path: string; - public storage: string | void; - public plugins: string | void; - // @ts-ignore - public security: Security; - - public constructor(config: StartUpConfig) { - const self = this; - this.logger = LoggerApi.logger; - this.self_path = config.self_path; - this.storage = config.storage; - this.plugins = config.plugins; - - for (const configProp in config) { - if (self[configProp] == null) { - self[configProp] = config[configProp]; - } - } - - // @ts-ignore - if (_.isNil(this.user_agent)) { - this.user_agent = getUserAgent(); - } - - // some weird shell scripts are valid yaml files parsed as string - assert(_.isObject(config), APP_ERROR.CONFIG_NOT_VALID); - - // sanity check for strategic config properties - strategicConfigProps.forEach(function (x): void { - if (self[x] == null) { - self[x] = {}; - } - - assert(isObject(self[x]), `CONFIG: bad "${x}" value (object expected)`); - }); - - this.uplinks = sanityCheckUplinksProps(uplinkSanityCheck(this.uplinks)); - - if (_.isNil(this.users) === false) { - this.logger.warn(`[users]: property on configuration file - is not longer supported, property being ignored`); - } - - this.packages = normalisePackageAccess(self.packages); - - // loading these from ENV if aren't in config - allowedEnvConfig.forEach((envConf): void => { - if (!(envConf in self)) { - self[envConf] = process.env[envConf] || process.env[envConf.toUpperCase()]; - } - }); - - // unique identifier of self server (or a cluster), used to avoid loops - // @ts-ignore - if (!this.server_id) { - this.server_id = generateRandomHexString(6); - } - } - - /** - * Check for package spec - */ - public getMatchedPackagesSpec(pkgName: string): MatchedPackage { - return getMatchedPackagesSpec(pkgName, this.packages); - } - - /** - * Store or create whether receive a secret key - */ - public checkSecretKey(secret: string): string { - if (_.isString(secret) && _.isEmpty(secret) === false) { - this.secret = secret; - return secret; - } - // it generates a secret key - // FUTURE: this might be an external secret key, perhaps within config file? - this.secret = generateRandomHexString(32); - return this.secret; - } -} - -export default Config; diff --git a/src/lib/constants.ts b/src/lib/constants.ts deleted file mode 100644 index 96495fd19..000000000 --- a/src/lib/constants.ts +++ /dev/null @@ -1,169 +0,0 @@ -/** - * @prettier - */ - -// @flow - -export const DEFAULT_PORT = '4873'; -export const DEFAULT_PROTOCOL = 'http'; -export const DEFAULT_DOMAIN = 'localhost'; -export const TIME_EXPIRATION_24H = '24h'; -export const TIME_EXPIRATION_7D = '7d'; -export const DIST_TAGS = 'dist-tags'; -export const LATEST = 'latest'; -export const USERS = 'users'; -export const DEFAULT_MIN_LIMIT_PASSWORD = 3; -export const DEFAULT_USER = 'Anonymous'; - -export const keyPem = 'verdaccio-key.pem'; -export const certPem = 'verdaccio-cert.pem'; -export const csrPem = 'verdaccio-csr.pem'; - -export const HEADERS = { - ACCEPT: 'Accept', - ACCEPT_ENCODING: 'Accept-Encoding', - USER_AGENT: 'User-Agent', - JSON: 'application/json', - CONTENT_TYPE: 'Content-type', - CONTENT_LENGTH: 'content-length', - TEXT_PLAIN: 'text/plain', - TEXT_HTML: 'text/html', - AUTHORIZATION: 'authorization', - FORWARDED_PROTO: 'X-Forwarded-Proto', - FRAMES_OPTIONS: 'X-Frame-Options', - CSP: 'Content-Security-Policy', - CTO: 'X-Content-Type-Options', - XSS: 'X-XSS-Protection', - ETAG: 'ETag', - JSON_CHARSET: 'application/json; charset=utf-8', - OCTET_STREAM: 'application/octet-stream; charset=utf-8', - TEXT_CHARSET: 'text/plain; charset=utf-8', - WWW_AUTH: 'WWW-Authenticate', - GZIP: 'gzip' -}; - -export const CHARACTER_ENCODING = { - UTF8: 'utf8' -}; - -export const HEADER_TYPE = { - CONTENT_ENCODING: 'content-encoding', - CONTENT_TYPE: 'content-type', - CONTENT_LENGTH: 'content-length', - ACCEPT_ENCODING: 'accept-encoding' -}; - -export const ERROR_CODE = { - token_required: 'token is required' -}; - -export const TOKEN_BASIC = 'Basic'; -export const TOKEN_BEARER = 'Bearer'; -export const DEFAULT_REGISTRY = 'https://registry.npmjs.org'; -export const DEFAULT_UPLINK = 'npmjs'; - -export const ROLES = { - $ALL: '$all', - ALL: 'all', - $AUTH: '$authenticated', - $ANONYMOUS: '$anonymous', - DEPRECATED_ALL: '@all', - DEPRECATED_AUTH: '@authenticated', - DEPRECATED_ANONYMOUS: '@anonymous' -}; - -export const HTTP_STATUS = { - OK: 200, - CREATED: 201, - MULTIPLE_CHOICES: 300, - NOT_MODIFIED: 304, - BAD_REQUEST: 400, - UNAUTHORIZED: 401, - FORBIDDEN: 403, - NOT_FOUND: 404, - CONFLICT: 409, - UNSUPPORTED_MEDIA: 415, - BAD_DATA: 422, - INTERNAL_ERROR: 500, - NOT_IMPLEMENTED: 501, - SERVICE_UNAVAILABLE: 503, - LOOP_DETECTED: 508 -}; - -export const API_MESSAGE = { - PKG_CREATED: 'created new package', - PKG_CHANGED: 'package changed', - PKG_REMOVED: 'package removed', - PKG_PUBLISHED: 'package published', - TARBALL_UPLOADED: 'tarball uploaded successfully', - TARBALL_REMOVED: 'tarball removed', - TAG_UPDATED: 'tags updated', - TAG_REMOVED: 'tag removed', - TAG_ADDED: 'package tagged', - LOGGED_OUT: 'Logged out' -}; - -export const SUPPORT_ERRORS = { - PLUGIN_MISSING_INTERFACE: 'the plugin does not provide implementation of the requested feature', - TFA_DISABLED: 'the two-factor authentication is not yet supported', - STORAGE_NOT_IMPLEMENT: 'the storage does not support token saving', - PARAMETERS_NOT_VALID: 'the parameters are not valid' -}; - -export const API_ERROR = { - PASSWORD_SHORT: (passLength: number = DEFAULT_MIN_LIMIT_PASSWORD) => - `The provided password is too short. Please pick a password longer than ${passLength} characters.`, - MUST_BE_LOGGED: 'You must be logged in to publish packages.', - PLUGIN_ERROR: 'bug in the auth plugin system', - CONFIG_BAD_FORMAT: 'config file must be an object', - BAD_USERNAME_PASSWORD: 'bad username/password, access denied', - NO_PACKAGE: 'no such package available', - PACKAGE_CANNOT_BE_ADDED: 'this package cannot be added', - BAD_DATA: 'bad data', - NOT_ALLOWED: 'not allowed to access package', - NOT_ALLOWED_PUBLISH: 'not allowed to publish package', - INTERNAL_SERVER_ERROR: 'internal server error', - UNKNOWN_ERROR: 'unknown error', - NOT_PACKAGE_UPLINK: 'package does not exist on uplink', - UPLINK_OFFLINE_PUBLISH: 'one of the uplinks is down, refuse to publish', - UPLINK_OFFLINE: 'uplink is offline', - CONTENT_MISMATCH: 'content length mismatch', - NOT_FILE_UPLINK: "file doesn't exist on uplink", - MAX_USERS_REACHED: 'maximum amount of users reached', - VERSION_NOT_EXIST: "this version doesn't exist", - FILE_NOT_FOUND: 'File not found', - UNSUPORTED_REGISTRY_CALL: 'unsupported registry call', - BAD_STATUS_CODE: 'bad status code', - PACKAGE_EXIST: 'this package is already present', - BAD_AUTH_HEADER: 'bad authorization header', - WEB_DISABLED: 'Web interface is disabled in the config file', - DEPRECATED_BASIC_HEADER: 'basic authentication is deprecated, please use JWT instead', - BAD_FORMAT_USER_GROUP: 'user groups is different than an array', - RESOURCE_UNAVAILABLE: 'resource unavailable', - BAD_PACKAGE_DATA: 'bad incoming package data', - USERNAME_PASSWORD_REQUIRED: 'username and password is required', - USERNAME_ALREADY_REGISTERED: 'username is already registered' -}; - -export const APP_ERROR = { - CONFIG_NOT_VALID: 'CONFIG: it does not look like a valid config file', - PROFILE_ERROR: 'profile unexpected error', - PASSWORD_VALIDATION: 'not valid password' -}; - -export const DEFAULT_NO_README = 'ERROR: No README data found!'; -export const MODULE_NOT_FOUND = 'MODULE_NOT_FOUND'; - -export const WEB_TITLE = 'Verdaccio'; - -export const PACKAGE_ACCESS = { - SCOPE: '@*/*', - ALL: '**' -}; - -export const STORAGE = { - PACKAGE_FILE_NAME: 'package.json', - FILE_EXIST_ERROR: 'EEXISTS', - NO_SUCH_FILE_ERROR: 'ENOENT', - DEFAULT_REVISION: '0-0000000000000000' -}; diff --git a/src/lib/crypto-utils.ts b/src/lib/crypto-utils.ts deleted file mode 100644 index 21bd4167f..000000000 --- a/src/lib/crypto-utils.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { createDecipher, createCipher, createHash, pseudoRandomBytes, Hash } from 'crypto'; -import jwt from 'jsonwebtoken'; - -import { JWTSignOptions, RemoteUser } from '@verdaccio/types'; - -export const defaultAlgorithm = 'aes192'; -export const defaultTarballHashAlgorithm = 'sha1'; - -export function aesEncrypt(buf: Buffer, secret: string): Buffer { - // deprecated (it will be migrated in Verdaccio 5), it is a breaking change - // https://nodejs.org/api/crypto.html#crypto_crypto_createcipher_algorithm_password_options - // https://www.grainger.xyz/changing-from-cipher-to-cipheriv/ - const c = createCipher(defaultAlgorithm, secret); - const b1 = c.update(buf); - const b2 = c.final(); - return Buffer.concat([b1, b2]); -} - -export function aesDecrypt(buf: Buffer, secret: string): Buffer { - try { - // deprecated (it will be migrated in Verdaccio 5), it is a breaking change - // https://nodejs.org/api/crypto.html#crypto_crypto_createdecipher_algorithm_password_options - // https://www.grainger.xyz/changing-from-cipher-to-cipheriv/ - const c = createDecipher(defaultAlgorithm, secret); - const b1 = c.update(buf); - const b2 = c.final(); - return Buffer.concat([b1, b2]); - } catch (_) { - return Buffer.alloc(0); - } -} - -export function createTarballHash(): Hash { - return createHash(defaultTarballHashAlgorithm); -} - -/** - * Express doesn't do ETAGS with requests <= 1024b - * we use md5 here, it works well on 1k+ bytes, but sucks with fewer data - * could improve performance using crc32 after benchmarks. - * @param {Object} data - * @return {String} - */ -export function stringToMD5(data: Buffer | string): string { - return createHash('md5').update(data).digest('hex'); -} - -export function generateRandomHexString(length = 8): string { - return pseudoRandomBytes(length).toString('hex'); -} - -export async function signPayload( - payload: RemoteUser, - secretOrPrivateKey: string, - options: JWTSignOptions -): Promise { - return new Promise(function (resolve, reject): Promise { - return jwt.sign( - payload, - secretOrPrivateKey, - { - notBefore: '1', // Make sure the time will not rollback :) - ...options - }, - (error, token) => (error ? reject(error) : resolve(token)) - ); - }); -} - -export function verifyPayload(token: string, secretOrPrivateKey: string): RemoteUser { - return jwt.verify(token, secretOrPrivateKey); -} diff --git a/src/lib/local-storage.ts b/src/lib/local-storage.ts deleted file mode 100644 index e067ca6c8..000000000 --- a/src/lib/local-storage.ts +++ /dev/null @@ -1,943 +0,0 @@ -import assert from 'assert'; -import UrlNode from 'url'; -import _ from 'lodash'; -import LocalDatabase from '@verdaccio/local-storage'; -import { UploadTarball, ReadTarball } from '@verdaccio/streams'; -import { - Token, - TokenFilter, - Package, - Config, - IUploadTarball, - IReadTarball, - MergeTags, - Version, - DistFile, - Callback, - Logger, - IPluginStorage, - IPackageStorage, - Author, - CallbackAction, - onSearchPackage, - onEndSearchPackage, - StorageUpdateCallback -} from '@verdaccio/types'; -import { VerdaccioError } from '@verdaccio/commons-api'; -import loadPlugin from '../lib/plugin-loader'; -import { IStorage, StringValue } from '../../types'; -import { ErrorCode, isObject, getLatestVersion, tagVersion, validateName } from './utils'; -import { - generatePackageTemplate, - normalizePackage, - generateRevision, - getLatestReadme, - cleanUpReadme, - normalizeContributors -} from './storage-utils'; -import { API_ERROR, DIST_TAGS, HTTP_STATUS, STORAGE, SUPPORT_ERRORS, USERS } from './constants'; -import { createTarballHash } from './crypto-utils'; -import { prepareSearchPackage } from './storage-utils'; - -/** - * Implements Storage interface (same for storage.js, local-storage.js, up-storage.js). - */ -class LocalStorage implements IStorage { - public config: Config; - public storagePlugin: IPluginStorage; - public logger: Logger; - - public constructor(config: Config, logger: Logger) { - this.logger = logger.child({ sub: 'fs' }); - this.config = config; - this.storagePlugin = this._loadStorage(config, logger); - } - - public addPackage(name: string, pkg: Package, callback: Callback): void { - const storage: any = this._getLocalStorage(name); - - if (_.isNil(storage)) { - return callback(ErrorCode.getNotFound('this package cannot be added')); - } - - storage.createPackage(name, generatePackageTemplate(name), (err) => { - // FIXME: it will be fixed here https://github.com/verdaccio/verdaccio/pull/1360 - // @ts-ignore - if ( - _.isNull(err) === false && - (err.code === STORAGE.FILE_EXIST_ERROR || err.code === HTTP_STATUS.CONFLICT) - ) { - return callback(ErrorCode.getConflict()); - } - - const latest = getLatestVersion(pkg); - if (_.isNil(latest) === false && pkg.versions[latest]) { - return callback(null, pkg.versions[latest]); - } - - return callback(); - }); - } - - /** - * Remove package. - * @param {*} name - * @param {*} callback - * @return {Function} - */ - public removePackage(name: string, callback: Callback): void { - const storage: any = this._getLocalStorage(name); - this.logger.debug({ name }, `[storage] removing package @{name}`); - - if (_.isNil(storage)) { - return callback(ErrorCode.getNotFound()); - } - - storage.readPackage(name, (err, data: Package): void => { - if (_.isNil(err) === false) { - if (err.code === STORAGE.NO_SUCH_FILE_ERROR || err.code === HTTP_STATUS.NOT_FOUND) { - return callback(ErrorCode.getNotFound()); - } - return callback(err); - } - - data = normalizePackage(data); - - this.storagePlugin.remove(name, (removeFailed: Error): void => { - if (removeFailed) { - // This will happen when database is locked - this.logger.debug( - { name }, - `[storage/removePackage] the database is locked, removed has failed for @{name}` - ); - - return callback(ErrorCode.getBadData(removeFailed.message)); - } - - storage.deletePackage(STORAGE.PACKAGE_FILE_NAME, (err): void => { - if (err) { - return callback(err); - } - const attachments = Object.keys(data._attachments); - - this._deleteAttachments(storage, attachments, callback); - }); - }); - }); - } - - /** - * Synchronize remote package info with the local one - * @param {*} name - * @param {*} packageInfo - * @param {*} callback - */ - public updateVersions(name: string, packageInfo: Package, callback: Callback): void { - this._readCreatePackage(name, (err, packageLocalJson): void => { - if (err) { - return callback(err); - } - - let change = false; - // updating readme - packageLocalJson.readme = getLatestReadme(packageInfo); - if (packageInfo.readme !== packageLocalJson.readme) { - change = true; - } - for (const versionId in packageInfo.versions) { - if (_.isNil(packageLocalJson.versions[versionId])) { - let version = packageInfo.versions[versionId]; - - // we don't keep readme for package versions, - // only one readme per package - version = cleanUpReadme(version); - version.contributors = normalizeContributors(version.contributors as Author[]); - - change = true; - packageLocalJson.versions[versionId] = version; - - if (version.dist && version.dist.tarball) { - const urlObject: any = UrlNode.parse(version.dist.tarball); - const filename = urlObject.pathname.replace(/^.*\//, ''); - - // we do NOT overwrite any existing records - if (_.isNil(packageLocalJson._distfiles[filename])) { - const hash: DistFile = (packageLocalJson._distfiles[filename] = { - url: version.dist.tarball, - sha: version.dist.shasum - }); - /* eslint spaced-comment: 0 */ - // $FlowFixMe - const upLink: string = version[Symbol.for('__verdaccio_uplink')]; - - if (_.isNil(upLink) === false) { - this._updateUplinkToRemoteProtocol(hash, upLink); - } - } - } - } - } - - for (const tag in packageInfo[DIST_TAGS]) { - if ( - !packageLocalJson[DIST_TAGS][tag] || - packageLocalJson[DIST_TAGS][tag] !== packageInfo[DIST_TAGS][tag] - ) { - change = true; - packageLocalJson[DIST_TAGS][tag] = packageInfo[DIST_TAGS][tag]; - } - } - - for (const up in packageInfo._uplinks) { - if (Object.prototype.hasOwnProperty.call(packageInfo._uplinks, up)) { - const need_change = - !isObject(packageLocalJson._uplinks[up]) || - packageInfo._uplinks[up].etag !== packageLocalJson._uplinks[up].etag || - packageInfo._uplinks[up].fetched !== packageLocalJson._uplinks[up].fetched; - - if (need_change) { - change = true; - packageLocalJson._uplinks[up] = packageInfo._uplinks[up]; - } - } - } - - if ('time' in packageInfo && !_.isEqual(packageLocalJson.time, packageInfo.time)) { - packageLocalJson.time = packageInfo.time; - change = true; - } - - if (change) { - this.logger.debug({ name }, 'updating package @{name} info'); - this._writePackage(name, packageLocalJson, function (err): void { - callback(err, packageLocalJson); - }); - } else { - callback(null, packageLocalJson); - } - }); - } - - /** - * Add a new version to a previous local package. - * @param {*} name - * @param {*} version - * @param {*} metadata - * @param {*} tag - * @param {*} callback - */ - public addVersion( - name: string, - version: string, - metadata: Version, - tag: StringValue, - callback: CallbackAction - ): void { - this._updatePackage( - name, - (data, cb: Callback): void => { - // keep only one readme per package - data.readme = metadata.readme; - - // TODO: lodash remove - metadata = cleanUpReadme(metadata); - metadata.contributors = normalizeContributors(metadata.contributors as Author[]); - - const hasVersion = data.versions[version] != null; - if (hasVersion) { - return cb(ErrorCode.getConflict()); - } - - // if uploaded tarball has a different shasum, it's very likely that we have some kind of error - if (isObject(metadata.dist) && _.isString(metadata.dist.tarball)) { - const tarball = metadata.dist.tarball.replace(/.*\//, ''); - - if (isObject(data._attachments[tarball])) { - if ( - _.isNil(data._attachments[tarball].shasum) === false && - _.isNil(metadata.dist.shasum) === false - ) { - if (data._attachments[tarball].shasum != metadata.dist.shasum) { - const errorMessage = `shasum error, ${data._attachments[tarball].shasum} != ${metadata.dist.shasum}`; - return cb(ErrorCode.getBadRequest(errorMessage)); - } - } - - const currentDate = new Date().toISOString(); - - // some old storage do not have this field #740 - if (_.isNil(data.time)) { - data.time = {}; - } - - data.time['modified'] = currentDate; - - if ('created' in data.time === false) { - data.time.created = currentDate; - } - - data.time[version] = currentDate; - data._attachments[tarball].version = version; - } - } - - data.versions[version] = metadata; - tagVersion(data, version, tag); - - this.storagePlugin.add(name, (addFailed): void => { - if (addFailed) { - return cb(ErrorCode.getBadData(addFailed.message)); - } - - cb(); - }); - }, - callback - ); - } - - /** - * Merge a new list of tags for a local packages with the existing one. - * @param {*} pkgName - * @param {*} tags - * @param {*} callback - */ - public mergeTags(pkgName: string, tags: MergeTags, callback: CallbackAction): void { - this._updatePackage( - pkgName, - (data, cb): void => { - /* eslint guard-for-in: 0 */ - for (const tag in tags) { - // this handle dist-tag rm command - if (_.isNull(tags[tag])) { - delete data[DIST_TAGS][tag]; - continue; - } - - if (_.isNil(data.versions[tags[tag]])) { - return cb(this._getVersionNotFound()); - } - const version: string = tags[tag]; - tagVersion(data, version, tag); - } - cb(null); - }, - callback - ); - } - - /** - * Return version not found - * @return {String} - * @private - */ - private _getVersionNotFound(): VerdaccioError { - return ErrorCode.getNotFound(API_ERROR.VERSION_NOT_EXIST); - } - - /** - * Return file no available - * @return {String} - * @private - */ - private _getFileNotAvailable(): VerdaccioError { - return ErrorCode.getNotFound('no such file available'); - } - - /** - * Update the package metadata, tags and attachments (tarballs). - * Note: Currently supports unpublishing and deprecation. - * @param {*} name - * @param {*} incomingPkg - * @param {*} revision - * @param {*} callback - * @return {Function} - */ - public changePackage( - name: string, - incomingPkg: Package, - revision: string | void, - callback: Callback - ): void { - if (!isObject(incomingPkg.versions) || !isObject(incomingPkg[DIST_TAGS])) { - this.logger.debug({ name }, `changePackage bad data for @{name}`); - return callback(ErrorCode.getBadData()); - } - - this.logger.debug({ name }, `changePackage udapting package for @{name}`); - this._updatePackage( - name, - (localData: Package, cb: CallbackAction): void => { - for (const version in localData.versions) { - const incomingVersion = incomingPkg.versions[version]; - if (_.isNil(incomingVersion)) { - this.logger.info({ name: name, version: version }, 'unpublishing @{name}@@{version}'); - - // FIXME: I prefer return a new object rather mutate the metadata - delete localData.versions[version]; - delete localData.time![version]; - - for (const file in localData._attachments) { - if (localData._attachments[file].version === version) { - delete localData._attachments[file].version; - } - } - } else if (Object.prototype.hasOwnProperty.call(incomingVersion, 'deprecated')) { - const incomingDeprecated = incomingVersion.deprecated; - if (incomingDeprecated != localData.versions[version].deprecated) { - if (!incomingDeprecated) { - this.logger.info( - { name: name, version: version }, - 'undeprecating @{name}@@{version}' - ); - delete localData.versions[version].deprecated; - } else { - this.logger.info( - { name: name, version: version }, - 'deprecating @{name}@@{version}' - ); - localData.versions[version].deprecated = incomingDeprecated; - } - localData.time!.modified = new Date().toISOString(); - } - } - } - - localData[USERS] = incomingPkg[USERS]; - localData[DIST_TAGS] = incomingPkg[DIST_TAGS]; - cb(null); - }, - function (err): void { - if (err) { - return callback(err); - } - callback(); - } - ); - } - /** - * Remove a tarball. - * @param {*} name - * @param {*} filename - * @param {*} revision - * @param {*} callback - */ - public removeTarball( - name: string, - filename: string, - revision: string, - callback: CallbackAction - ): void { - assert(validateName(filename)); - - this._updatePackage( - name, - (data, cb): void => { - if (data._attachments[filename]) { - delete data._attachments[filename]; - cb(null); - } else { - cb(this._getFileNotAvailable()); - } - }, - (err: VerdaccioError): void => { - if (err) { - return callback(err); - } - const storage = this._getLocalStorage(name); - - if (storage) { - storage.deletePackage(filename, callback); - } - } - ); - } - - /** - * Add a tarball. - * @param {String} name - * @param {String} filename - * @return {Stream} - */ - public addTarball(name: string, filename: string): IUploadTarball { - assert(validateName(filename)); - - let length = 0; - const shaOneHash = createTarballHash(); - const uploadStream: IUploadTarball = new UploadTarball({}); - const _transform = uploadStream._transform; - const storage = this._getLocalStorage(name); - - uploadStream.abort = function (): void {}; - uploadStream.done = function (): void {}; - - uploadStream._transform = function (data, ...args): void { - shaOneHash.update(data); - // measure the length for validation reasons - length += data.length; - const appliedData = [data, ...args]; - // FIXME: not sure about this approach, tsc complains - // @ts-ignore - _transform.apply(uploadStream, appliedData); - }; - - if (name === '__proto__') { - process.nextTick((): void => { - uploadStream.emit('error', ErrorCode.getForbidden()); - }); - return uploadStream; - } - - if (!storage) { - process.nextTick((): void => { - uploadStream.emit('error', "can't upload this package"); - }); - return uploadStream; - } - - const writeStream: IUploadTarball = storage.writeTarball(filename); - - writeStream.on('error', (err) => { - // @ts-ignore - if (err.code === STORAGE.FILE_EXIST_ERROR || err.code === HTTP_STATUS.CONFLICT) { - uploadStream.emit('error', ErrorCode.getConflict()); - uploadStream.abort(); - // @ts-ignore - } else if (err.code === STORAGE.NO_SUCH_FILE_ERROR || err.code === HTTP_STATUS.NOT_FOUND) { - // check if package exists to throw an appropriate message - this.getPackageMetadata(name, function (_err: VerdaccioError, _res: Package): void { - if (_err) { - uploadStream.emit('error', _err); - } else { - uploadStream.emit('error', err); - } - }); - } else { - uploadStream.emit('error', err); - } - }); - - writeStream.on('open', function (): void { - // re-emitting open because it's handled in storage.js - uploadStream.emit('open'); - }); - - writeStream.on('success', (): void => { - this._updatePackage( - name, - function updater(data, cb): void { - data._attachments[filename] = { - shasum: shaOneHash.digest('hex') - }; - cb(null); - }, - function (err): void { - if (err) { - uploadStream.emit('error', err); - } else { - uploadStream.emit('success'); - } - } - ); - }); - - uploadStream.abort = function (): void { - writeStream.abort(); - }; - - uploadStream.done = function (): void { - if (!length) { - uploadStream.emit('error', ErrorCode.getBadData('refusing to accept zero-length file')); - writeStream.abort(); - } else { - writeStream.done(); - } - }; - - uploadStream.pipe(writeStream); - - return uploadStream; - } - - /** - * Get a tarball. - * @param {*} name - * @param {*} filename - * @return {ReadTarball} - */ - public getTarball(name: string, filename: string): IReadTarball { - assert(validateName(filename)); - - const storage: IPackageStorage = this._getLocalStorage(name); - - if (_.isNil(storage)) { - return this._createFailureStreamResponse(); - } - - return this._streamSuccessReadTarBall(storage, filename); - } - - /** - * Return a stream that emits a read failure. - * @private - * @return {ReadTarball} - */ - private _createFailureStreamResponse(): IReadTarball { - const stream: IReadTarball = new ReadTarball({}); - - process.nextTick((): void => { - stream.emit('error', this._getFileNotAvailable()); - }); - return stream; - } - - /** - * Return a stream that emits the tarball data - * @param {Object} storage - * @param {String} filename - * @private - * @return {ReadTarball} - */ - private _streamSuccessReadTarBall(storage: any, filename: string): IReadTarball { - const stream: IReadTarball = new ReadTarball({}); - const readTarballStream = storage.readTarball(filename); - const e404 = ErrorCode.getNotFound; - - stream.abort = function (): void { - if (_.isNil(readTarballStream) === false) { - readTarballStream.abort(); - } - }; - - readTarballStream.on('error', function (err) { - // @ts-ignore - if (err.code === STORAGE.NO_SUCH_FILE_ERROR || err.code === HTTP_STATUS.NOT_FOUND) { - stream.emit('error', e404('no such file available')); - } else { - stream.emit('error', err); - } - }); - - readTarballStream.on('content-length', function (content): void { - stream.emit('content-length', content); - }); - - readTarballStream.on('open', function (): void { - // re-emitting open because it's handled in storage.js - stream.emit('open'); - readTarballStream.pipe(stream); - }); - - return stream; - } - - /** - * Retrieve a package by name. - * @param {*} name - * @param {*} callback - * @return {Function} - */ - public getPackageMetadata(name: string, callback: Callback = (): void => {}): void { - const storage: IPackageStorage = this._getLocalStorage(name); - if (_.isNil(storage)) { - return callback(ErrorCode.getNotFound()); - } - - this._readPackage(name, storage, callback); - } - - /** - * Search a local package. - * @param {*} startKey - * @param {*} options - * @return {Function} - */ - public search(startKey: string, options: any): IReadTarball { - const stream = new ReadTarball({ objectMode: true }); - - this._searchEachPackage( - (item: Package, cb: CallbackAction): void => { - // @ts-ignore - if (item.time > parseInt(startKey, 10)) { - this.getPackageMetadata(item.name, (err: VerdaccioError, data: Package): void => { - if (err) { - return cb(err); - } - - // @ts-ignore - const time = new Date(item.time).toISOString(); - const result = prepareSearchPackage(data, time); - if (_.isNil(result) === false) { - stream.push(result); - } - cb(null); - }); - } else { - cb(null); - } - }, - function onEnd(err): void { - if (err) { - stream.emit('error', err); - return; - } - stream.end(); - } - ); - - return stream; - } - - /** - * Retrieve a wrapper that provide access to the package location. - * @param {Object} pkgName package name. - * @return {Object} - */ - private _getLocalStorage(pkgName: string): IPackageStorage { - return this.storagePlugin.getPackageStorage(pkgName); - } - - /** - * Read a json file from storage. - * @param {Object} storage - * @param {Function} callback - */ - private _readPackage(name: string, storage: any, callback: Callback): void { - storage.readPackage(name, (err, result): void => { - if (err) { - if (err.code === STORAGE.NO_SUCH_FILE_ERROR || err.code === HTTP_STATUS.NOT_FOUND) { - return callback(ErrorCode.getNotFound()); - } - return callback(this._internalError(err, STORAGE.PACKAGE_FILE_NAME, 'error reading')); - } - - callback(err, normalizePackage(result)); - }); - } - - /** - * Walks through each package and calls `on_package` on them. - * @param {*} onPackage - * @param {*} onEnd - */ - private _searchEachPackage(onPackage: onSearchPackage, onEnd: onEndSearchPackage): void { - // save wait whether plugin still do not support search functionality - if (_.isNil(this.storagePlugin.search)) { - this.logger.warn('plugin search not implemented yet'); - onEnd(); - } else { - this.storagePlugin.search(onPackage, onEnd, validateName); - } - } - - /** - * Retrieve either a previous created local package or a boilerplate. - * @param {*} pkgName - * @param {*} callback - * @return {Function} - */ - private _readCreatePackage(pkgName: string, callback: Callback): void { - const storage: any = this._getLocalStorage(pkgName); - if (_.isNil(storage)) { - this._createNewPackage(pkgName, callback); - return; - } - - storage.readPackage(pkgName, (err, data): void => { - // TODO: race condition - if (_.isNil(err) === false) { - if (err.code === STORAGE.NO_SUCH_FILE_ERROR || err.code === HTTP_STATUS.NOT_FOUND) { - data = generatePackageTemplate(pkgName); - } else { - return callback(this._internalError(err, STORAGE.PACKAGE_FILE_NAME, 'error reading')); - } - } - - callback(null, normalizePackage(data)); - }); - } - - private _createNewPackage(name: string, callback: Callback): Callback { - return callback(null, normalizePackage(generatePackageTemplate(name))); - } - - /** - * Handle internal error - * @param {*} err - * @param {*} file - * @param {*} message - * @return {Object} Error instance - */ - private _internalError(err: string, file: string, message: string): VerdaccioError { - this.logger.error({ err: err, file: file }, `${message} @{file}: @{!err.message}`); - - return ErrorCode.getInternalError(); - } - - /** - * @param {*} name package name - * @param {*} updateHandler function(package, cb) - update function - * @param {*} callback callback that gets invoked after it's all updated - * @return {Function} - */ - private _updatePackage( - name: string, - updateHandler: StorageUpdateCallback, - callback: CallbackAction - ): void { - const storage: IPackageStorage = this._getLocalStorage(name); - - if (!storage) { - return callback(ErrorCode.getNotFound()); - } - - storage.updatePackage( - name, - updateHandler, - this._writePackage.bind(this), - normalizePackage, - callback - ); - } - - /** - * Update the revision (_rev) string for a package. - * @param {*} name - * @param {*} json - * @param {*} callback - * @return {Function} - */ - private _writePackage(name: string, json: Package, callback: Callback): void { - const storage: any = this._getLocalStorage(name); - if (_.isNil(storage)) { - return callback(); - } - storage.savePackage(name, this._setDefaultRevision(json), callback); - } - - private _setDefaultRevision(json: Package): Package { - // calculate revision from couch db - if (_.isString(json._rev) === false) { - json._rev = STORAGE.DEFAULT_REVISION; - } - - // this is intended in debug mode we do not want modify the store revision - if (_.isNil(this.config._debug)) { - json._rev = generateRevision(json._rev); - } - - return json; - } - - private _deleteAttachments(storage: any, attachments: string[], callback: Callback): void { - this.logger.debug( - { l: attachments.length }, - `[storage/_deleteAttachments] delete attachments total: @{l}` - ); - const unlinkNext = function (cb): void { - if (_.isEmpty(attachments)) { - return cb(); - } - - const attachment = attachments.shift(); - storage.deletePackage(attachment, function (): void { - unlinkNext(cb); - }); - }; - - unlinkNext(function (): void { - // try to unlink the directory, but ignore errors because it can fail - storage.removePackage(function (err): void { - callback(err); - }); - }); - } - - /** - * Ensure the dist file remains as the same protocol - * @param {Object} hash metadata - * @param {String} upLinkKey registry key - * @private - */ - private _updateUplinkToRemoteProtocol(hash: DistFile, upLinkKey: string): void { - // if we got this information from a known registry, - // use the same protocol for the tarball - // - // see https://github.com/rlidwka/sinopia/issues/166 - const tarballUrl: any = UrlNode.parse(hash.url); - const uplinkUrl: any = UrlNode.parse(this.config.uplinks[upLinkKey].url); - - if (uplinkUrl.host === tarballUrl.host) { - tarballUrl.protocol = uplinkUrl.protocol; - hash.registry = upLinkKey; - hash.url = UrlNode.format(tarballUrl); - } - } - - public async getSecret(config: Config): Promise { - const secretKey = await this.storagePlugin.getSecret(); - - return this.storagePlugin.setSecret(config.checkSecretKey(secretKey)); - } - - private _loadStorage(config: Config, logger: Logger): IPluginStorage { - const Storage = this._loadStorePlugin(); - - if (_.isNil(Storage)) { - assert(this.config.storage, 'CONFIG: storage path not defined'); - return new LocalDatabase(this.config, logger); - } - return Storage as IPluginStorage; - } - - private _loadStorePlugin(): IPluginStorage | void { - const plugin_params = { - config: this.config, - logger: this.logger - }; - - // eslint-disable-next-line max-len - const plugins: IPluginStorage[] = loadPlugin>( - this.config, - this.config.store, - plugin_params, - (plugin): IPluginStorage => { - return plugin.getPackageStorage; - } - ); - - return _.head(plugins); - } - - public saveToken(token: Token): Promise { - if (_.isFunction(this.storagePlugin.saveToken) === false) { - return Promise.reject( - ErrorCode.getCode(HTTP_STATUS.SERVICE_UNAVAILABLE, SUPPORT_ERRORS.PLUGIN_MISSING_INTERFACE) - ); - } - - return this.storagePlugin.saveToken(token); - } - - public deleteToken(user: string, tokenKey: string): Promise { - if (_.isFunction(this.storagePlugin.deleteToken) === false) { - return Promise.reject( - ErrorCode.getCode(HTTP_STATUS.SERVICE_UNAVAILABLE, SUPPORT_ERRORS.PLUGIN_MISSING_INTERFACE) - ); - } - - return this.storagePlugin.deleteToken(user, tokenKey); - } - - public readTokens(filter: TokenFilter): Promise { - if (_.isFunction(this.storagePlugin.readTokens) === false) { - return Promise.reject( - ErrorCode.getCode(HTTP_STATUS.SERVICE_UNAVAILABLE, SUPPORT_ERRORS.PLUGIN_MISSING_INTERFACE) - ); - } - - return this.storagePlugin.readTokens(filter); - } -} - -export default LocalStorage; diff --git a/src/lib/logger.ts b/src/lib/logger.ts deleted file mode 100644 index e334af96e..000000000 --- a/src/lib/logger.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* eslint-disable */ - -import { prettyTimestamped } from './logger/format/pretty-timestamped'; -import { pretty } from './logger/format/pretty'; -import { jsonFormat } from './logger/format/json'; - -const cluster = require('cluster'); -const Logger = require('bunyan'); -const Error = require('http-errors'); -const Stream = require('stream'); -const pkgJSON = require('../../package.json'); -const _ = require('lodash'); -const dayjs = require('dayjs'); - -/** - * A RotatingFileStream that modifies the message first - */ -class VerdaccioRotatingFileStream extends Logger.RotatingFileStream { - // We depend on mv so that this is there - write(obj) { - super.write(jsonFormat(obj, false)); - } - - rotate(): void { - super.rotate(); - this.emit('rotated'); - } -} - -let logger; - -export interface LoggerTarget { - type?: string; - format?: string; - level?: string; - options?: any; - path?: string; -} - -const DEFAULT_LOGGER_CONF = [{ type: 'stdout', format: 'pretty', level: 'http' }]; - -/** - * Setup the Buyan logger - * @param {*} logs list of log configuration - */ -function setup(logs, { logStart } = { logStart: true }) { - const streams: any = []; - if (logs == null) { - logs = DEFAULT_LOGGER_CONF; - } - - logs.forEach(function (target: LoggerTarget) { - let level = target.level || 35; - if (level === 'http') { - level = 35; - } - - // create a stream for each log configuration - if (target.type === 'rotating-file') { - if (target.format !== 'json') { - throw new Error('Rotating file streams only work with JSON!'); - } - if (cluster.isWorker) { - // https://github.com/trentm/node-bunyan#stream-type-rotating-file - throw new Error('Cluster mode is not supported for rotating-file!'); - } - - const stream = new VerdaccioRotatingFileStream( - // @ts-ignore - _.merge( - {}, - // Defaults can be found here: https://github.com/trentm/node-bunyan#stream-type-rotating-file - target.options || {}, - { path: target.path, level } - ) - ); - - const rotateStream = { - type: 'raw', - level, - stream - }; - - if (logStart) { - stream.on('rotated', () => logger.warn('Start of logfile')); - } - - streams.push(rotateStream); - } else { - const stream = new Stream(); - stream.writable = true; - - let destination; - let destinationIsTTY = false; - if (target.type === 'file') { - // destination stream - destination = require('fs').createWriteStream(target.path, { - flags: 'a', - encoding: 'utf8' - }); - destination.on('error', function (err) { - stream.emit('error', err); - }); - } else if (target.type === 'stdout' || target.type === 'stderr') { - destination = target.type === 'stdout' ? process.stdout : process.stderr; - destinationIsTTY = destination.isTTY; - } else { - throw Error('wrong target type for a log'); - } - - if (target.format === 'pretty') { - // making fake stream for pretty printing - stream.write = (obj) => { - destination.write(pretty(obj, destinationIsTTY)); - }; - } else if (target.format === 'pretty-timestamped') { - // making fake stream for pretty printing - stream.write = (obj) => { - destination.write(prettyTimestamped(obj, destinationIsTTY)); - }; - } else { - stream.write = (obj) => { - destination.write(jsonFormat(obj, destinationIsTTY)); - }; - } - - streams.push({ - // @ts-ignore - type: 'raw', - // @ts-ignore - level, - // @ts-ignore - stream: stream - }); - } - }); - - // buyan default configuration - logger = new Logger({ - name: pkgJSON.name, - streams: streams, - serializers: { - err: Logger.stdSerializers.err, - req: Logger.stdSerializers.req, - res: Logger.stdSerializers.res - } - }); - - // In case of an empty log file, we ensure there is always something logged. This also helps see if the server - // was restarted in any cases - if (logStart) { - logger.warn('Verdaccio started'); - } - - process.on('SIGUSR2', function () { - // https://github.com/trentm/node-bunyan#stream-type-rotating-file - if (logger) { - /** - * Note on log rotation: Often you may be using external log rotation utilities like logrotate on Linux or logadm - * on SmartOS/Illumos. In those cases, unless your are ensuring "copy and truncate" semantics - * (via copytruncate with logrotate or -c with logadm) then the fd for your 'file' stream will change. - */ - logger.reopenFileStreams(); - } - }); -} - -export { setup, logger }; diff --git a/src/lib/logger/format/json.ts b/src/lib/logger/format/json.ts deleted file mode 100644 index 2177843f6..000000000 --- a/src/lib/logger/format/json.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { fillInMsgTemplate } from '../formatter'; - -const Logger = require('bunyan'); - -export function jsonFormat(obj, hasColors): string { - const msg = fillInMsgTemplate(obj.msg, obj, hasColors); - - return `${JSON.stringify({ ...obj, msg }, Logger.safeCycles())}\n`; -} diff --git a/src/lib/logger/format/pretty-timestamped.ts b/src/lib/logger/format/pretty-timestamped.ts deleted file mode 100644 index 6ee7fa64a..000000000 --- a/src/lib/logger/format/pretty-timestamped.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { formatLoggingDate } from '../utils'; -import { printMessage } from '../formatter'; - -export function prettyTimestamped(obj, hasColors): string { - return `[${formatLoggingDate(obj.time)}] ${printMessage(obj.level, obj.msg, obj, hasColors)}\n`; -} diff --git a/src/lib/logger/format/pretty.ts b/src/lib/logger/format/pretty.ts deleted file mode 100644 index e4bd27bb7..000000000 --- a/src/lib/logger/format/pretty.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { printMessage } from '../formatter'; - -export function pretty(obj, hasColors): string { - return `${printMessage(obj.level, obj.msg, obj, hasColors)}\n`; -} diff --git a/src/lib/logger/formatter.ts b/src/lib/logger/formatter.ts deleted file mode 100644 index bc3d984ee..000000000 --- a/src/lib/logger/formatter.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { inspect } from 'util'; -import { red, green } from 'kleur'; - -import { white } from 'kleur'; -import { isObject, pad } from '../utils'; -import { calculateLevel, levels, subsystems } from './levels'; - -let LEVEL_VALUE_MAX = 0; -for (const l in levels) { - if (Object.prototype.hasOwnProperty.call(levels, l)) { - LEVEL_VALUE_MAX = Math.max(LEVEL_VALUE_MAX, l.length); - } -} - -/** - * Apply colors to a string based on level parameters. - * @param {*} type - * @param {*} msg - * @param {*} templateObjects - * @param {*} hasColors - * @return {String} - */ -export function printMessage(type, msg, templateObjects, hasColors) { - if (typeof type === 'number') { - type = calculateLevel(type); - } - - const finalMessage = fillInMsgTemplate(msg, templateObjects, hasColors); - - const sub = subsystems[hasColors ? 0 : 1][templateObjects.sub] || subsystems[+!hasColors].default; - if (hasColors) { - return ` ${levels[type](pad(type, LEVEL_VALUE_MAX))}${white(`${sub} ${finalMessage}`)}`; - } - return ` ${pad(type, LEVEL_VALUE_MAX)}${sub} ${finalMessage}`; -} - -export function fillInMsgTemplate(msg, obj: unknown, colors): string { - return msg.replace(/@{(!?[$A-Za-z_][$0-9A-Za-z\._]*)}/g, (_, name): string => { - let str = obj; - let is_error; - if (name[0] === '!') { - name = name.substr(1); - is_error = true; - } - - const _ref = name.split('.'); - for (let _i = 0; _i < _ref.length; _i++) { - const id = _ref[_i]; - if (isObject(str)) { - // @ts-ignore - str = str[id]; - } else { - str = undefined; - } - } - - if (typeof str === 'string') { - if (!colors || (str as string).includes('\n')) { - return str; - } else if (is_error) { - return red(str); - } - return green(str); - } - return inspect(str, undefined, null, colors); - }); -} diff --git a/src/lib/logger/levels.ts b/src/lib/logger/levels.ts deleted file mode 100644 index a2915e837..000000000 --- a/src/lib/logger/levels.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { yellow, green, black, blue, red, magenta, cyan, white } from 'kleur'; - -// level to color -export const levels = { - fatal: red, - error: red, - warn: yellow, - http: magenta, - info: cyan, - debug: green, - trace: white -}; - -/** - * Match the level based on buyan severity scale - * @param {*} x severity level - * @return {String} security level - */ -export function calculateLevel(x) { - switch (true) { - case x < 15: - return 'trace'; - case x < 25: - return 'debug'; - case x < 35: - return 'info'; - case x == 35: - return 'http'; - case x < 45: - return 'warn'; - case x < 55: - return 'error'; - default: - return 'fatal'; - } -} - -export const subsystems = [ - { - in: green('<--'), - out: yellow('-->'), - fs: black('-=-'), - default: blue('---') - }, - { - in: '<--', - out: '-->', - fs: '-=-', - default: '---' - } -]; diff --git a/src/lib/logger/utils.ts b/src/lib/logger/utils.ts deleted file mode 100644 index a61f53b1c..000000000 --- a/src/lib/logger/utils.ts +++ /dev/null @@ -1,7 +0,0 @@ -import dayjs from 'dayjs'; - -export const FORMAT_DATE = 'YYYY-MM-DD HH:mm:ss'; - -export function formatLoggingDate(time: string): string { - return dayjs(time).format(FORMAT_DATE); -} diff --git a/src/lib/metadata-utils.ts b/src/lib/metadata-utils.ts deleted file mode 100644 index a10886ea5..000000000 --- a/src/lib/metadata-utils.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @prettier - * @flow - */ - -import semver from 'semver'; -import _ from 'lodash'; -import { Package } from '@verdaccio/types'; -import { DIST_TAGS } from './constants'; - -/** - * Function gets a local info and an info from uplinks and tries to merge it - exported for unit tests only. - * @param {*} local - * @param {*} up - * @param {*} config - * @static - */ -export function mergeVersions(local: Package, up: Package) { - // copy new versions to a cache - // NOTE: if a certain version was updated, we can't refresh it reliably - for (const i in up.versions) { - if (_.isNil(local.versions[i])) { - local.versions[i] = up.versions[i]; - } - } - - for (const i in up[DIST_TAGS]) { - if (local[DIST_TAGS][i] !== up[DIST_TAGS][i]) { - if (!local[DIST_TAGS][i] || semver.lte(local[DIST_TAGS][i], up[DIST_TAGS][i])) { - local[DIST_TAGS][i] = up[DIST_TAGS][i]; - } - if (i === 'latest' && local[DIST_TAGS][i] === up[DIST_TAGS][i]) { - // if remote has more fresh package, we should borrow its readme - local.readme = up.readme; - } - } - } -} diff --git a/src/lib/notify/index.ts b/src/lib/notify/index.ts deleted file mode 100644 index 71f5701ac..000000000 --- a/src/lib/notify/index.ts +++ /dev/null @@ -1,99 +0,0 @@ -import Handlebars from 'handlebars'; -import _ from 'lodash'; - -import { OptionsWithUrl } from 'request'; -import { Config, Package, RemoteUser } from '@verdaccio/types'; -import { notifyRequest } from './notify-request'; - -type TemplateMetadata = Package & { publishedPackage: string }; - -export function handleNotify( - metadata: Package, - notifyEntry, - remoteUser: RemoteUser, - publishedPackage: string -): Promise | void { - let regex; - if (metadata.name && notifyEntry.packagePattern) { - regex = new RegExp(notifyEntry.packagePattern, notifyEntry.packagePatternFlags || ''); - if (!regex.test(metadata.name)) { - return; - } - } - - const template = Handlebars.compile(notifyEntry.content); - // don't override 'publisher' if package.json already has that - /* eslint no-unused-vars: 0 */ - /* eslint @typescript-eslint/no-unused-vars: 0 */ - // @ts-ignore - if (_.isNil(metadata.publisher)) { - // @ts-ignore - metadata = { ...metadata, publishedPackage, publisher: { name: remoteUser.name as string } }; - } - - const content: string = template(metadata); - - const options: OptionsWithUrl = { - body: content, - url: '' - }; - - // provides fallback support, it's accept an Object {} and Array of {} - if (notifyEntry.headers && _.isArray(notifyEntry.headers)) { - const header = {}; - notifyEntry.headers.map(function (item): void { - if (Object.is(item, item)) { - for (const key in item) { - /* eslint no-prototype-builtins: 0 */ - if (item.hasOwnProperty(key)) { - header[key] = item[key]; - } - } - } - }); - options.headers = header; - } else if (Object.is(notifyEntry.headers, notifyEntry.headers)) { - options.headers = notifyEntry.headers; - } - - options.method = notifyEntry.method; - - if (notifyEntry.endpoint) { - options.url = notifyEntry.endpoint; - } - - return notifyRequest(options, content); -} - -export function sendNotification( - metadata: Package, - notify: any, - remoteUser: RemoteUser, - publishedPackage: string -): Promise { - return handleNotify(metadata, notify, remoteUser, publishedPackage) as Promise; -} - -export function notify( - metadata: Package, - config: Config, - remoteUser: RemoteUser, - publishedPackage: string -): Promise | void { - if (config.notify) { - if (config.notify.content) { - return sendNotification( - metadata, - (config.notify as unknown) as any, - remoteUser, - publishedPackage - ); - } - // multiple notifications endpoints PR #108 - return Promise.all( - _.map(config.notify, (key) => sendNotification(metadata, key, remoteUser, publishedPackage)) - ); - } - - return Promise.resolve(); -} diff --git a/src/lib/notify/notify-request.ts b/src/lib/notify/notify-request.ts deleted file mode 100644 index 04ec5e8b0..000000000 --- a/src/lib/notify/notify-request.ts +++ /dev/null @@ -1,22 +0,0 @@ -import isNil from 'lodash/isNil'; -import request, { RequiredUriUrl } from 'request'; -import { logger } from '../logger'; -import { HTTP_STATUS } from '../constants'; - -export function notifyRequest(options: RequiredUriUrl, content): Promise { - return new Promise((resolve, reject): void => { - request(options, function (err, response, body): void { - if (err || response.statusCode >= HTTP_STATUS.BAD_REQUEST) { - const errorMessage = isNil(err) ? response.body : err.message; - logger.error({ errorMessage }, 'notify service has thrown an error: @{errorMessage}'); - reject(errorMessage); - } - logger.info({ content }, 'A notification has been shipped: @{content}'); - if (isNil(body) === false) { - logger.debug({ body }, ' body: @{body}'); - resolve(body); - } - reject(Error('body is missing')); - }); - }); -} diff --git a/src/lib/plugin-loader.ts b/src/lib/plugin-loader.ts deleted file mode 100644 index dd96371c6..000000000 --- a/src/lib/plugin-loader.ts +++ /dev/null @@ -1,141 +0,0 @@ -import Path from 'path'; -import _ from 'lodash'; -import { Config, IPlugin } from '@verdaccio/types'; -import { logger } from './logger'; -import { MODULE_NOT_FOUND } from './constants'; - -/** - * Requires a module. - * @param {*} path the module's path - * @return {Object} - */ -function tryLoad(path: string): any { - try { - return require(path); - } catch (err) { - if (err.code === MODULE_NOT_FOUND) { - return null; - } - throw err; - } -} - -function mergeConfig(appConfig, pluginConfig): Config { - return _.merge(appConfig, pluginConfig); -} - -function isValid(plugin): boolean { - return _.isFunction(plugin) || _.isFunction(plugin.default); -} - -function isES6(plugin): boolean { - return Object.keys(plugin).includes('default'); -} - -// export type PluginGeneric = ; - -/** - * Load a plugin following the rules - * - First try to load from the internal directory plugins (which will disappear soon or later). - * - A second attempt from the external plugin directory - * - A third attempt from node_modules, in case to have multiple match as for instance verdaccio-ldap - * and sinopia-ldap. All verdaccio prefix will have preferences. - * @param {*} config a reference of the configuration settings - * @param {*} pluginConfigs - * @param {*} params a set of params to initialize the plugin - * @param {*} sanityCheck callback that check the shape that should fulfill the plugin - * @return {Array} list of plugins - */ -export default function loadPlugin>( - config: Config, - pluginConfigs: any = {}, - params: any, - sanityCheck: any, - prefix: string = 'verdaccio' -): any[] { - return Object.keys(pluginConfigs).map( - (pluginId: string): IPlugin => { - let plugin; - - const localPlugin = Path.resolve(__dirname + '/../plugins', pluginId); - // try local plugins first - plugin = tryLoad(localPlugin); - - // try the external plugin directory - if (plugin === null && config.plugins) { - const pluginDir = config.plugins; - const externalFilePlugin = Path.resolve(pluginDir, pluginId); - plugin = tryLoad(externalFilePlugin); - - // npm package - if (plugin === null && pluginId.match(/^[^\.\/]/)) { - plugin = tryLoad(Path.resolve(pluginDir, `${prefix}-${pluginId}`)); - // compatibility for old sinopia plugins - if (!plugin) { - plugin = tryLoad(Path.resolve(pluginDir, `sinopia-${pluginId}`)); - } - } - } - - // npm package - if (plugin === null && pluginId.match(/^[^\.\/]/)) { - plugin = tryLoad(`${prefix}-${pluginId}`); - // compatibility for old sinopia plugins - if (!plugin) { - plugin = tryLoad(`sinopia-${pluginId}`); - } - } - - if (plugin === null) { - plugin = tryLoad(pluginId); - } - - // relative to config path - if (plugin === null && pluginId.match(/^\.\.?($|\/)/)) { - plugin = tryLoad(Path.resolve(Path.dirname(config.self_path), pluginId)); - } - - if (plugin === null) { - logger.error( - { content: pluginId, prefix }, - 'plugin not found. try npm install @{prefix}-@{content}' - ); - throw Error(` - ${prefix}-${pluginId} plugin not found. try "npm install ${prefix}-${pluginId}"`); - } - - if (!isValid(plugin)) { - logger.error( - { content: pluginId }, - '@{prefix}-@{content} plugin does not have the right code structure' - ); - throw Error(`"${pluginId}" plugin does not have the right code structure`); - } - - /* eslint new-cap:off */ - try { - plugin = isES6(plugin) - ? new plugin.default(mergeConfig(config, pluginConfigs[pluginId]), params) - : plugin(pluginConfigs[pluginId], params); - } catch (error) { - plugin = null; - logger.error({ error, pluginId }, 'error loading a plugin @{pluginId}: @{error}'); - } - /* eslint new-cap:off */ - - if (plugin === null || !sanityCheck(plugin)) { - logger.error( - { content: pluginId, prefix }, - "@{prefix}-@{content} doesn't look like a valid plugin" - ); - throw Error(`sanity check has failed, "${pluginId}" is not a valid plugin`); - } - - logger.warn( - { content: pluginId, prefix }, - 'Plugin successfully loaded: @{prefix}-@{content}' - ); - return plugin; - } - ); -} diff --git a/src/lib/search.ts b/src/lib/search.ts deleted file mode 100644 index 2816f3193..000000000 --- a/src/lib/search.ts +++ /dev/null @@ -1,104 +0,0 @@ -// eslint-disable no-invalid-this - -import lunrMutable from 'lunr-mutable-indexes'; -import { Version } from '@verdaccio/types'; -import { IStorageHandler, IWebSearch, IStorage } from '../../types'; -/** - * Handle the search Indexer. - */ -class Search implements IWebSearch { - public index: lunrMutable.index; - // @ts-ignore - public storage: IStorageHandler; - - /** - * Constructor. - */ - public constructor() { - this.index = lunrMutable(function (): void { - // FIXME: there is no types for this library - /* eslint no-invalid-this:off */ - // @ts-ignore - this.field('name', { boost: 10 }); - // @ts-ignore - this.field('description', { boost: 4 }); - // @ts-ignore - this.field('author', { boost: 6 }); - // @ts-ignore - this.field('keywords', { boost: 7 }); - // @ts-ignore - this.field('version'); - // @ts-ignore - this.field('readme'); - }); - } - - /** - * Performs a query to the indexer. - * If the keyword is a * it returns all local elements - * otherwise performs a search - * @param {*} q the keyword - * @return {Array} list of results. - */ - public query(query: string): any[] { - const localStorage = this.storage.localStorage as IStorage; - - return query === '*' - ? localStorage.storagePlugin.get((items): any => { - items.map(function (pkg): any { - return { ref: pkg, score: 1 }; - }); - }) - : this.index.search(`*${query}*`); - } - - /** - * Add a new element to index - * @param {*} pkg the package - */ - public add(pkg: Version): void { - this.index.add({ - id: pkg.name, - name: pkg.name, - description: pkg.description, - version: `v${pkg.version}`, - keywords: pkg.keywords, - author: pkg._npmUser ? pkg._npmUser.name : '???' - }); - } - - /** - * Remove an element from the index. - * @param {*} name the id element - */ - public remove(name: string): void { - this.index.remove({ id: name }); - } - - /** - * Force a re-index. - */ - public reindex(): void { - this.storage.getLocalDatabase((error, packages): void => { - if (error) { - // that function shouldn't produce any - throw error; - } - let i = packages.length; - while (i--) { - this.add(packages[i]); - } - }); - } - - /** - * Set up the {Storage} - * @param {*} storage An storage reference. - */ - public configureStorage(storage: IStorageHandler): void { - this.storage = storage; - this.reindex(); - } -} - -export default new Search(); diff --git a/src/lib/storage-utils.ts b/src/lib/storage-utils.ts deleted file mode 100644 index 0ca82f5c6..000000000 --- a/src/lib/storage-utils.ts +++ /dev/null @@ -1,250 +0,0 @@ -import _ from 'lodash'; -import { Package, Version, Author } from '@verdaccio/types'; -import { generateRandomHexString } from '../lib/crypto-utils'; -import { IStorage } from '../../types'; -import { ErrorCode, isObject, normalizeDistTags, semverSort } from './utils'; -import Search from './search'; - -import { API_ERROR, HTTP_STATUS, DIST_TAGS, USERS, STORAGE } from './constants'; - -export function generatePackageTemplate(name: string): Package { - return { - // standard things - name, - versions: {}, - time: {}, - [USERS]: {}, - [DIST_TAGS]: {}, - _uplinks: {}, - _distfiles: {}, - _attachments: {}, - _rev: '' - }; -} - -/** - * Normalize package properties, tags, revision id. - * @param {Object} pkg package reference. - */ -export function normalizePackage(pkg: Package): Package { - const pkgProperties = ['versions', 'dist-tags', '_distfiles', '_attachments', '_uplinks', 'time']; - - pkgProperties.forEach((key): void => { - const pkgProp = pkg[key]; - - if (_.isNil(pkgProp) || isObject(pkgProp) === false) { - pkg[key] = {}; - } - }); - - if (_.isString(pkg._rev) === false) { - pkg._rev = STORAGE.DEFAULT_REVISION; - } - - if (_.isString(pkg._id) === false) { - pkg._id = pkg.name; - } - - // normalize dist-tags - normalizeDistTags(pkg); - - return pkg; -} - -export function generateRevision(rev: string): string { - const _rev = rev.split('-'); - - return (+_rev[0] || 0) + 1 + '-' + generateRandomHexString(); -} - -export function getLatestReadme(pkg: Package): string { - const versions = pkg['versions'] || {}; - const distTags = pkg[DIST_TAGS] || {}; - // FIXME: here is a bit tricky add the types - const latestVersion: Version | any = distTags['latest'] ? versions[distTags['latest']] || {} : {}; - let readme = _.trim(pkg.readme || latestVersion.readme || ''); - if (readme) { - return readme; - } - - // In case of empty readme - trying to get ANY readme in the following order: 'next','beta','alpha','test','dev','canary' - const readmeDistTagsPriority = ['next', 'beta', 'alpha', 'test', 'dev', 'canary']; - readmeDistTagsPriority.map(function (tag): string | void { - if (readme) { - return readme; - } - const version: Version | any = distTags[tag] ? versions[distTags[tag]] || {} : {}; - readme = _.trim(version.readme || readme); - }); - return readme; -} - -export function cleanUpReadme(version: Version): Version { - if (_.isNil(version) === false) { - delete version.readme; - } - - return version; -} - -export function normalizeContributors(contributors: Author[]): Author[] { - if (_.isNil(contributors)) { - return []; - } else if (contributors && _.isArray(contributors) === false) { - // FIXME: this branch is clearly no an array, still tsc complains - // @ts-ignore - return [contributors]; - } else if (_.isString(contributors)) { - return [ - { - name: contributors - } - ]; - } - - return contributors; -} - -export const WHITELIST = [ - '_rev', - 'name', - 'versions', - 'dist-tags', - 'readme', - 'time', - '_id', - 'users' -]; - -export function cleanUpLinksRef(keepUpLinkData: boolean, result: Package): Package { - const propertyToKeep = [...WHITELIST]; - if (keepUpLinkData === true) { - propertyToKeep.push('_uplinks'); - } - - for (const i in result) { - if (propertyToKeep.indexOf(i) === -1) { - // Remove sections like '_uplinks' from response - delete result[i]; - } - } - - return result; -} - -/** - * Check whether a package it is already a local package - * @param {*} name - * @param {*} localStorage - */ -export function checkPackageLocal(name: string, localStorage: IStorage): Promise { - return new Promise((resolve, reject): void => { - localStorage.getPackageMetadata(name, (err, results): void => { - if (!_.isNil(err) && err.status !== HTTP_STATUS.NOT_FOUND) { - return reject(err); - } - if (results) { - return reject(ErrorCode.getConflict(API_ERROR.PACKAGE_EXIST)); - } - return resolve(); - }); - }); -} - -export function publishPackage(name: string, metadata: any, localStorage: IStorage): Promise { - return new Promise((resolve, reject): void => { - localStorage.addPackage(name, metadata, (err, latest): void => { - if (!_.isNull(err)) { - return reject(err); - } else if (!_.isUndefined(latest)) { - Search.add(latest); - } - return resolve(); - }); - }); -} - -export function checkPackageRemote( - name: string, - isAllowPublishOffline: boolean, - syncMetadata: Function -): Promise { - return new Promise((resolve, reject): void => { - syncMetadata(name, null, {}, (err, packageJsonLocal, upLinksErrors): void => { - // something weird - if (err && err.status !== HTTP_STATUS.NOT_FOUND) { - return reject(err); - } - - // checking package exist already - if (_.isNil(packageJsonLocal) === false) { - return reject(ErrorCode.getConflict(API_ERROR.PACKAGE_EXIST)); - } - - for (let errorItem = 0; errorItem < upLinksErrors.length; errorItem++) { - // checking error - // if uplink fails with a status other than 404, we report failure - if (_.isNil(upLinksErrors[errorItem][0]) === false) { - if (upLinksErrors[errorItem][0].status !== HTTP_STATUS.NOT_FOUND) { - if (isAllowPublishOffline) { - return resolve(); - } - - return reject(ErrorCode.getServiceUnavailable(API_ERROR.UPLINK_OFFLINE_PUBLISH)); - } - } - } - - return resolve(); - }); - }); -} - -export function mergeUplinkTimeIntoLocal(localMetadata: Package, remoteMetadata: Package): any { - if ('time' in remoteMetadata) { - return Object.assign({}, localMetadata.time, remoteMetadata.time); - } - - return localMetadata.time; -} - -export function prepareSearchPackage(data: Package, time: unknown): any { - const listVersions: string[] = Object.keys(data.versions); - const versions: string[] = semverSort(listVersions); - const latest: string | undefined = - data[DIST_TAGS] && data[DIST_TAGS].latest ? data[DIST_TAGS].latest : versions.pop(); - - if (latest && data.versions[latest]) { - const version: Version = data.versions[latest]; - const versions: any = { [latest]: 'latest' }; - const pkg: any = { - name: version.name, - description: version.description, - [DIST_TAGS]: { latest }, - maintainers: version.maintainers || [version.author].filter(Boolean), - author: version.author, - repository: version.repository, - readmeFilename: version.readmeFilename || '', - homepage: version.homepage, - keywords: version.keywords, - bugs: version.bugs, - license: version.license, - time: { - modified: time - }, - versions - }; - - return pkg; - } -} - -/** - * Check whether the package metadta has enough data to be published - * @param pkg metadata - */ -export function isPublishablePackage(pkg: Package): boolean { - const keys: string[] = Object.keys(pkg); - - return _.includes(keys, 'versions'); -} diff --git a/src/lib/storage.ts b/src/lib/storage.ts deleted file mode 100644 index d3b71feea..000000000 --- a/src/lib/storage.ts +++ /dev/null @@ -1,645 +0,0 @@ -import assert from 'assert'; -import Stream from 'stream'; -import _ from 'lodash'; -import async, { AsyncResultArrayCallback } from 'async'; -import { ReadTarball } from '@verdaccio/streams'; -import { - IReadTarball, - IUploadTarball, - Versions, - Package, - Config, - MergeTags, - Version, - DistFile, - Callback, - Logger -} from '@verdaccio/types'; -import { GenericBody, TokenFilter, Token } from '@verdaccio/types'; -import { VerdaccioError } from '@verdaccio/commons-api'; -import { - IStorage, - IProxy, - IStorageHandler, - ProxyList, - StringValue, - IGetPackageOptions, - ISyncUplinks, - IPluginFilters -} from '../../types'; -import { logger } from '../lib/logger'; -import ProxyStorage from './up-storage'; -import Search from './search'; -import { API_ERROR, HTTP_STATUS, DIST_TAGS } from './constants'; -import LocalStorage from './local-storage'; -import { - checkPackageLocal, - publishPackage, - checkPackageRemote, - cleanUpLinksRef, - mergeUplinkTimeIntoLocal, - generatePackageTemplate -} from './storage-utils'; -import { setupUpLinks, updateVersionsHiddenUpLink } from './uplink-util'; -import { mergeVersions } from './metadata-utils'; -import { ErrorCode, normalizeDistTags, validateMetadata, isObject } from './utils'; -import { hasProxyTo } from './config-utils'; - -class Storage implements IStorageHandler { - public localStorage: IStorage; - public config: Config; - public logger: Logger; - public uplinks: ProxyList; - public filters: IPluginFilters; - - public constructor(config: Config) { - this.config = config; - this.uplinks = setupUpLinks(config); - this.logger = logger.child(); - this.filters = []; - // @ts-ignore - this.localStorage = null; - } - - public init(config: Config, filters: IPluginFilters = []): Promise { - this.filters = filters; - this.localStorage = new LocalStorage(this.config, logger); - - return this.localStorage.getSecret(config); - } - - /** - * Add a {name} package to a system - Function checks if package with the same name is available from uplinks. - If it isn't, we create package locally - Used storages: local (write) && uplinks - */ - public async addPackage(name: string, metadata: any, callback: Function): Promise { - try { - await checkPackageLocal(name, this.localStorage); - await checkPackageRemote( - name, - this._isAllowPublishOffline(), - this._syncUplinksMetadata.bind(this) - ); - await publishPackage(name, metadata, this.localStorage as IStorage); - callback(); - } catch (err) { - callback(err); - } - } - - private _isAllowPublishOffline(): boolean { - return ( - typeof this.config.publish !== 'undefined' && - _.isBoolean(this.config.publish.allow_offline) && - this.config.publish.allow_offline - ); - } - - public readTokens(filter: TokenFilter): Promise { - return this.localStorage.readTokens(filter); - } - - public saveToken(token: Token): Promise { - return this.localStorage.saveToken(token); - } - - public deleteToken(user: string, tokenKey: string): Promise { - return this.localStorage.deleteToken(user, tokenKey); - } - - /** - * Add a new version of package {name} to a system - Used storages: local (write) - */ - public addVersion( - name: string, - version: string, - metadata: Version, - tag: StringValue, - callback: Callback - ): void { - this.localStorage.addVersion(name, version, metadata, tag, callback); - } - - /** - * Tags a package version with a provided tag - Used storages: local (write) - */ - public mergeTags(name: string, tagHash: MergeTags, callback: Callback): void { - this.localStorage.mergeTags(name, tagHash, callback); - } - - /** - * Change an existing package (i.e. unpublish one version) - Function changes a package info from local storage and all uplinks with write access./ - Used storages: local (write) - */ - public changePackage( - name: string, - metadata: Package, - revision: string, - callback: Callback - ): void { - this.localStorage.changePackage(name, metadata, revision, callback); - } - - /** - * Remove a package from a system - Function removes a package from local storage - Used storages: local (write) - */ - public removePackage(name: string, callback: Callback): void { - this.localStorage.removePackage(name, callback); - // update the indexer - Search.remove(name); - } - - /** - Remove a tarball from a system - Function removes a tarball from local storage. - Tarball in question should not be linked to in any existing - versions, i.e. package version should be unpublished first. - Used storage: local (write) - */ - public removeTarball(name: string, filename: string, revision: string, callback: Callback): void { - this.localStorage.removeTarball(name, filename, revision, callback); - } - - /** - * Upload a tarball for {name} package - Function is synchronous and returns a WritableStream - Used storages: local (write) - */ - public addTarball(name: string, filename: string): IUploadTarball { - return this.localStorage.addTarball(name, filename); - } - - /** - Get a tarball from a storage for {name} package - Function is synchronous and returns a ReadableStream - Function tries to read tarball locally, if it fails then it reads package - information in order to figure out where we can get this tarball from - Used storages: local || uplink (just one) - */ - public getTarball(name: string, filename: string): IReadTarball { - const readStream = new ReadTarball({}); - readStream.abort = function () {}; - - const self = this; - - // if someone requesting tarball, it means that we should already have some - // information about it, so fetching package info is unnecessary - - // trying local first - // flow: should be IReadTarball - let localStream: any = self.localStorage.getTarball(name, filename); - let isOpen = false; - localStream.on('error', (err): any => { - if (isOpen || err.status !== HTTP_STATUS.NOT_FOUND) { - return readStream.emit('error', err); - } - - // local reported 404 - const err404 = err; - localStream.abort(); - localStream = null; // we force for garbage collector - self.localStorage.getPackageMetadata(name, (err, info: Package): void => { - if (_.isNil(err) && info._distfiles && _.isNil(info._distfiles[filename]) === false) { - // information about this file exists locally - serveFile(info._distfiles[filename]); - } else { - // we know nothing about this file, trying to get information elsewhere - self._syncUplinksMetadata(name, info, {}, (err, info: Package): any => { - if (_.isNil(err) === false) { - return readStream.emit('error', err); - } - if (_.isNil(info._distfiles) || _.isNil(info._distfiles[filename])) { - return readStream.emit('error', err404); - } - serveFile(info._distfiles[filename]); - }); - } - }); - }); - localStream.on('content-length', function (v): void { - readStream.emit('content-length', v); - }); - localStream.on('open', function (): void { - isOpen = true; - localStream.pipe(readStream); - }); - return readStream; - - /** - * Fetch and cache local/remote packages. - * @param {Object} file define the package shape - */ - function serveFile(file: DistFile): void { - let uplink: any = null; - - for (const uplinkId in self.uplinks) { - if (hasProxyTo(name, uplinkId, self.config.packages)) { - uplink = self.uplinks[uplinkId]; - } - } - - if (uplink == null) { - uplink = new ProxyStorage( - { - url: file.url, - cache: true, - _autogenerated: true - }, - self.config - ); - } - - let savestream: IUploadTarball | null = null; - if (uplink.config.cache) { - savestream = self.localStorage.addTarball(name, filename); - } - - let on_open = function (): void { - // prevent it from being called twice - on_open = function () {}; - const rstream2 = uplink.fetchTarball(file.url); - rstream2.on('error', function (err): void { - if (savestream) { - savestream.abort(); - } - savestream = null; - readStream.emit('error', err); - }); - rstream2.on('end', function (): void { - if (savestream) { - savestream.done(); - } - }); - - rstream2.on('content-length', function (v): void { - readStream.emit('content-length', v); - if (savestream) { - savestream.emit('content-length', v); - } - }); - rstream2.pipe(readStream); - if (savestream) { - rstream2.pipe(savestream); - } - }; - - if (savestream) { - savestream.on('open', function (): void { - on_open(); - }); - - savestream.on('error', function (err): void { - self.logger.warn( - { err: err, fileName: file }, - 'error saving file @{fileName}: @{err.message}\n@{err.stack}' - ); - if (savestream) { - savestream.abort(); - } - savestream = null; - on_open(); - }); - } else { - on_open(); - } - } - } - - /** - Retrieve a package metadata for {name} package - Function invokes localStorage.getPackage and uplink.get_package for every - uplink with proxy_access rights against {name} and combines results - into one json object - Used storages: local && uplink (proxy_access) - - * @param {object} options - * @property {string} options.name Package Name - * @property {object} options.req Express `req` object - * @property {boolean} options.keepUpLinkData keep up link info in package meta, last update, etc. - * @property {function} options.callback Callback for receive data - */ - public getPackage(options: IGetPackageOptions): void { - this.localStorage.getPackageMetadata(options.name, (err, data): void => { - if (err && (!err.status || err.status >= HTTP_STATUS.INTERNAL_ERROR)) { - // report internal errors right away - return options.callback(err); - } - - this._syncUplinksMetadata( - options.name, - data, - { req: options.req, uplinksLook: options.uplinksLook }, - function getPackageSynUpLinksCallback(err, result: Package, uplinkErrors): void { - if (err) { - return options.callback(err); - } - - normalizeDistTags(cleanUpLinksRef(options.keepUpLinkData, result)); - - // npm can throw if this field doesn't exist - result._attachments = {}; - - options.callback(null, result, uplinkErrors); - } - ); - }); - } - - /** - Retrieve remote and local packages more recent than {startkey} - Function streams all packages from all uplinks first, and then - local packages. - Note that local packages could override registry ones just because - they appear in JSON last. That's a trade-off we make to avoid - memory issues. - Used storages: local && uplink (proxy_access) - * @param {*} startkey - * @param {*} options - * @return {Stream} - */ - public search(startkey: string, options: any): IReadTarball { - const self = this; - // stream to write a tarball - const stream: any = new Stream.PassThrough({ objectMode: true }); - - async.eachSeries( - Object.keys(this.uplinks), - function (up_name, cb): void { - // shortcut: if `local=1` is supplied, don't call uplinks - if (options.req.query.local !== undefined) { - return cb(); - } - // search by keyword for each uplink - const lstream: IUploadTarball = self.uplinks[up_name].search(options); - // join streams - lstream.pipe(stream, { end: false }); - lstream.on('error', function (err): void { - self.logger.error({ err: err }, 'uplink error: @{err.message}'); - cb(); - cb = function (): void {}; - }); - lstream.on('end', function (): void { - cb(); - cb = function (): void {}; - }); - - stream.abort = function (): void { - if (lstream.abort) { - lstream.abort(); - } - cb(); - cb = function (): void {}; - }; - }, - // executed after all series - function (): void { - // attach a local search results - const lstream: IReadTarball = self.localStorage.search(startkey, options); - stream.abort = function (): void { - lstream.abort(); - }; - lstream.pipe(stream, { end: true }); - lstream.on('error', function (err: VerdaccioError): void { - self.logger.error({ err: err }, 'search error: @{err.message}'); - stream.end(); - }); - } - ); - - return stream; - } - - /** - * Retrieve only private local packages - * @param {*} callback - */ - public getLocalDatabase(callback: Callback): void { - const self = this; - this.localStorage.storagePlugin.get((err, locals): void => { - if (err) { - callback(err); - } - - const packages: Version[] = []; - const getPackage = function (itemPkg): void { - self.localStorage.getPackageMetadata( - locals[itemPkg], - function (err, pkgMetadata: Package): void { - if (_.isNil(err)) { - const latest = pkgMetadata[DIST_TAGS].latest; - if (latest && pkgMetadata.versions[latest]) { - const version: Version = pkgMetadata.versions[latest]; - const timeList = pkgMetadata.time as GenericBody; - const time = timeList[latest]; - // @ts-ignore - version.time = time; - - // Add for stars api - // @ts-ignore - version.users = pkgMetadata.users; - - packages.push(version); - } else { - self.logger.warn( - { package: locals[itemPkg] }, - 'package @{package} does not have a "latest" tag?' - ); - } - } - - if (itemPkg >= locals.length - 1) { - callback(null, packages); - } else { - getPackage(itemPkg + 1); - } - } - ); - }; - - if (locals.length) { - getPackage(0); - } else { - callback(null, []); - } - }); - } - - /** - * Function fetches package metadata from uplinks and synchronizes it with local data - if package is available locally, it MUST be provided in pkginfo - returns callback(err, result, uplink_errors) - */ - public _syncUplinksMetadata( - name: string, - packageInfo: Package, - options: ISyncUplinks, - callback: Callback - ): void { - let found = true; - const self = this; - const upLinks: IProxy[] = []; - const hasToLookIntoUplinks = _.isNil(options.uplinksLook) || options.uplinksLook; - - if (!packageInfo) { - found = false; - packageInfo = generatePackageTemplate(name); - } - - for (const uplink in this.uplinks) { - if (hasProxyTo(name, uplink, this.config.packages) && hasToLookIntoUplinks) { - upLinks.push(this.uplinks[uplink]); - } - } - - async.map( - upLinks, - (upLink, cb): void => { - const _options = Object.assign({}, options); - const upLinkMeta = packageInfo._uplinks[upLink.upname]; - - if (isObject(upLinkMeta)) { - const fetched = upLinkMeta.fetched; - - if (fetched && Date.now() - fetched < upLink.maxage) { - return cb(); - } - - _options.etag = upLinkMeta.etag; - } - - upLink.getRemoteMetadata(name, _options, (err, upLinkResponse, eTag): void => { - if (err && err.remoteStatus === 304) { - upLinkMeta.fetched = Date.now(); - } - - if (err || !upLinkResponse) { - return cb(null, [err || ErrorCode.getInternalError('no data')]); - } - - try { - validateMetadata(upLinkResponse, name); - } catch (err) { - self.logger.error( - { - sub: 'out', - err: err - }, - 'package.json validating error @{!err.message}\n@{err.stack}' - ); - return cb(null, [err]); - } - - packageInfo._uplinks[upLink.upname] = { - etag: eTag, - fetched: Date.now() - }; - - packageInfo.time = mergeUplinkTimeIntoLocal(packageInfo, upLinkResponse); - - updateVersionsHiddenUpLink(upLinkResponse.versions, upLink); - - try { - mergeVersions(packageInfo, upLinkResponse); - } catch (err) { - self.logger.error( - { - sub: 'out', - err: err - }, - 'package.json parsing error @{!err.message}\n@{err.stack}' - ); - return cb(null, [err]); - } - - // if we got to this point, assume that the correct package exists - // on the uplink - found = true; - cb(); - }); - }, - // @ts-ignore - (err: Error, upLinksErrors: any): AsyncResultArrayCallback => { - assert(!err && Array.isArray(upLinksErrors)); - - // Check for connection timeout or reset errors with uplink(s) - // (these should be handled differently from the package not being found) - if (!found) { - let uplinkTimeoutError; - for (let i = 0; i < upLinksErrors.length; i++) { - if (upLinksErrors[i]) { - for (let j = 0; j < upLinksErrors[i].length; j++) { - if (upLinksErrors[i][j]) { - const code = upLinksErrors[i][j].code; - if (code === 'ETIMEDOUT' || code === 'ESOCKETTIMEDOUT' || code === 'ECONNRESET') { - uplinkTimeoutError = true; - break; - } - } - } - } - } - - if (uplinkTimeoutError) { - return callback(ErrorCode.getServiceUnavailable(), null, upLinksErrors); - } - return callback(ErrorCode.getNotFound(API_ERROR.NO_PACKAGE), null, upLinksErrors); - } - - if (upLinks.length === 0) { - return callback(null, packageInfo); - } - - self.localStorage.updateVersions( - name, - packageInfo, - async (err, packageJsonLocal: Package): Promise => { - if (err) { - return callback(err); - } - // Any error here will cause a 404, like an uplink error. This is likely the right thing to do - // as a broken filter is a security risk. - const filterErrors: Error[] = []; - // This MUST be done serially and not in parallel as they modify packageJsonLocal - for (const filter of self.filters) { - try { - // These filters can assume it's save to modify packageJsonLocal and return it directly for - // performance (i.e. need not be pure) - packageJsonLocal = await filter.filter_metadata(packageJsonLocal); - } catch (err) { - filterErrors.push(err); - } - } - callback(null, packageJsonLocal, _.concat(upLinksErrors, filterErrors)); - } - ); - } - ); - } - - /** - * Set a hidden value for each version. - * @param {Array} versions list of version - * @param {String} upLink uplink name - * @private - */ - public _updateVersionsHiddenUpLink(versions: Versions, upLink: IProxy): void { - for (const i in versions) { - if (Object.prototype.hasOwnProperty.call(versions, i)) { - const version = versions[i]; - - // holds a "hidden" value to be used by the package storage. - // $FlowFixMe - version[Symbol.for('__verdaccio_uplink')] = upLink.upname; - } - } - } -} - -export default Storage; diff --git a/src/lib/up-storage.ts b/src/lib/up-storage.ts deleted file mode 100644 index 164529400..000000000 --- a/src/lib/up-storage.ts +++ /dev/null @@ -1,722 +0,0 @@ -import zlib from 'zlib'; -import Stream, { Readable } from 'stream'; -import URL, { UrlWithStringQuery } from 'url'; -import JSONStream from 'JSONStream'; -import _ from 'lodash'; -import request from 'request'; -import { ReadTarball } from '@verdaccio/streams'; -import { Config, Callback, Headers, Logger, Package } from '@verdaccio/types'; -import { IProxy, UpLinkConfLocal } from '../../types'; -import { parseInterval, isObject, ErrorCode, buildToken } from './utils'; -import { - ERROR_CODE, - TOKEN_BASIC, - TOKEN_BEARER, - HEADERS, - HTTP_STATUS, - API_ERROR, - HEADER_TYPE, - CHARACTER_ENCODING -} from './constants'; -const LoggerApi = require('./logger'); - -const encode = function (thing): string { - return encodeURIComponent(thing).replace(/^%40/, '@'); -}; - -const jsonContentType = HEADERS.JSON; -const contentTypeAccept = `${jsonContentType};`; - -/** - * Just a helper (`config[key] || default` doesn't work because of zeroes) - */ -const setConfig = (config, key, def): string => { - return _.isNil(config[key]) === false ? config[key] : def; -}; - -/** - * Implements Storage interface - * (same for storage.js, local-storage.js, up-storage.js) - */ -class ProxyStorage implements IProxy { - public config: UpLinkConfLocal; - public failed_requests: number; - public userAgent: string; - public ca: string | void; - public logger: Logger; - public server_id: string; - public url: any; - public maxage: number; - public timeout: number; - public max_fails: number; - public fail_timeout: number; - public agent_options: any; - // FIXME: upname is assigned to each instance - // @ts-ignore - public upname: string; - // FIXME: proxy can be boolean or object, something smells here - // @ts-ignore - public proxy: string | void; - // @ts-ignore - public last_request_time: number | null; - public strict_ssl: boolean; - - /** - * Constructor - * @param {*} config - * @param {*} mainConfig - */ - public constructor(config: UpLinkConfLocal, mainConfig: Config) { - this.config = config; - this.failed_requests = 0; - this.userAgent = mainConfig.user_agent; - this.ca = config.ca; - this.logger = LoggerApi.logger.child({ sub: 'out' }); - this.server_id = mainConfig.server_id; - - this.url = URL.parse(this.config.url); - // $FlowFixMe - this._setupProxy(this.url.hostname, config, mainConfig, this.url.protocol === 'https:'); - - this.config.url = this.config.url.replace(/\/$/, ''); - - if (this.config.timeout && Number(this.config.timeout) >= 1000) { - this.logger.warn( - [ - 'Too big timeout value: ' + this.config.timeout, - 'We changed time format to nginx-like one', - '(see http://nginx.org/en/docs/syntax.html)', - 'so please update your config accordingly' - ].join('\n') - ); - } - - // a bunch of different configurable timers - this.maxage = parseInterval(setConfig(this.config, 'maxage', '2m')); - this.timeout = parseInterval(setConfig(this.config, 'timeout', '30s')); - this.max_fails = Number(setConfig(this.config, 'max_fails', 2)); - this.fail_timeout = parseInterval(setConfig(this.config, 'fail_timeout', '5m')); - this.strict_ssl = Boolean(setConfig(this.config, 'strict_ssl', true)); - this.agent_options = setConfig(this.config, 'agent_options', { - keepAlive: true, - maxSockets: 40, - maxFreeSockets: 10 - }); - } - - /** - * Fetch an asset. - * @param {*} options - * @param {*} cb - * @return {Request} - */ - private request(options: any, cb?: Callback): Stream.Readable { - let json; - - if (this._statusCheck() === false) { - const streamRead = new Stream.Readable(); - - process.nextTick(function (): void { - if (cb) { - cb(ErrorCode.getInternalError(API_ERROR.UPLINK_OFFLINE)); - } - streamRead.emit('error', ErrorCode.getInternalError(API_ERROR.UPLINK_OFFLINE)); - }); - // $FlowFixMe - streamRead._read = function (): void {}; - // preventing 'Uncaught, unspecified "error" event' - streamRead.on('error', function (): void {}); - return streamRead; - } - - const self = this; - const headers: Headers = this._setHeaders(options); - - this._addProxyHeaders(options.req, headers); - this._overrideWithUpLinkConfLocaligHeaders(headers); - - const method = options.method || 'GET'; - const uri = options.uri_full || this.config.url + options.uri; - - self.logger.info( - { - method: method, - headers: headers, - uri: uri - }, - "making request: '@{method} @{uri}'" - ); - - if (isObject(options.json)) { - json = JSON.stringify(options.json); - headers['Content-Type'] = headers['Content-Type'] || HEADERS.JSON; - } - - const requestCallback = cb - ? function (err, res, body): void { - let error; - const responseLength = err ? 0 : body.length; - // $FlowFixMe - processBody(); - logActivity(); - // $FlowFixMe - cb(err, res, body); - - /** - * Perform a decode. - */ - function processBody(): void { - if (err) { - error = err.message; - return; - } - - if (options.json && res.statusCode < 300) { - try { - // $FlowFixMe - body = JSON.parse(body.toString(CHARACTER_ENCODING.UTF8)); - } catch (_err) { - body = {}; - err = _err; - error = err.message; - } - } - - if (!err && isObject(body)) { - if (_.isString(body.error)) { - error = body.error; - } - } - } - /** - * Perform a log. - */ - function logActivity(): void { - let message = "@{!status}, req: '@{request.method} @{request.url}'"; - message += error ? ', error: @{!error}' : ', bytes: @{bytes.in}/@{bytes.out}'; - self.logger.warn( - { - err: err || undefined, // if error is null/false change this to undefined so it wont log - request: { method: method, url: uri }, - level: 35, // http - status: res != null ? res.statusCode : 'ERR', - error: error, - bytes: { - in: json ? json.length : 0, - out: responseLength || 0 - } - }, - message - ); - } - } - : undefined; - - let requestOptions = { - url: uri, - method: method, - headers: headers, - body: json, - proxy: this.proxy, - encoding: null, - gzip: true, - timeout: this.timeout, - strictSSL: this.strict_ssl, - agentOptions: this.agent_options - }; - - if (this.ca) { - requestOptions = Object.assign({}, requestOptions, { - ca: this.ca - }); - } - - const req = request(requestOptions, requestCallback); - - let statusCalled = false; - req.on('response', function (res): void { - // FIXME: _verdaccio_aborted seems not used - // @ts-ignore - if (!req._verdaccio_aborted && !statusCalled) { - statusCalled = true; - self._statusCheck(true); - } - - if (_.isNil(requestCallback) === false) { - (function do_log(): void { - const message = "@{!status}, req: '@{request.method} @{request.url}' (streaming)"; - self.logger.warn( - { - request: { - method: method, - url: uri - }, - level: 35, // http - status: _.isNull(res) === false ? res.statusCode : 'ERR' - }, - message - ); - })(); - } - }); - req.on('error', function (_err): void { - // FIXME: _verdaccio_aborted seems not used - // @ts-ignore - if (!req._verdaccio_aborted && !statusCalled) { - statusCalled = true; - self._statusCheck(false); - } - }); - // @ts-ignore - return req; - } - - /** - * Set default headers. - * @param {Object} options - * @return {Object} - * @private - */ - private _setHeaders(options: any): Headers { - const headers = options.headers || {}; - const accept = HEADERS.ACCEPT; - const acceptEncoding = HEADERS.ACCEPT_ENCODING; - const userAgent = HEADERS.USER_AGENT; - - headers[accept] = headers[accept] || contentTypeAccept; - headers[acceptEncoding] = headers[acceptEncoding] || 'gzip'; - // registry.npmjs.org will only return search result if user-agent include string 'npm' - headers[userAgent] = headers[userAgent] || `npm (${this.userAgent})`; - - return this._setAuth(headers); - } - - /** - * Validate configuration auth and assign Header authorization - * @param {Object} headers - * @return {Object} - * @private - */ - private _setAuth(headers: any): Headers { - const { auth } = this.config; - - if (_.isNil(auth) || headers[HEADERS.AUTHORIZATION]) { - return headers; - } - - // $FlowFixMe - if (_.isObject(auth) === false && _.isObject(auth.token) === false) { - this._throwErrorAuth('Auth invalid'); - } - - // get NPM_TOKEN http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules - // or get other variable export in env - // https://github.com/verdaccio/verdaccio/releases/tag/v2.5.0 - let token: any; - const tokenConf: any = auth; - - if (_.isNil(tokenConf.token) === false && _.isString(tokenConf.token)) { - token = tokenConf.token; - } else if (_.isNil(tokenConf.token_env) === false) { - if (_.isString(tokenConf.token_env)) { - token = process.env[tokenConf.token_env]; - } else if (_.isBoolean(tokenConf.token_env) && tokenConf.token_env) { - token = process.env.NPM_TOKEN; - } else { - this.logger.error(ERROR_CODE.token_required); - this._throwErrorAuth(ERROR_CODE.token_required); - } - } else { - token = process.env.NPM_TOKEN; - } - - if (_.isNil(token)) { - this._throwErrorAuth(ERROR_CODE.token_required); - } - - // define type Auth allow basic and bearer - const type = tokenConf.type || TOKEN_BASIC; - this._setHeaderAuthorization(headers, type, token); - - return headers; - } - - /** - * @param {string} message - * @throws {Error} - * @private - */ - private _throwErrorAuth(message: string): Error { - this.logger.error(message); - throw new Error(message); - } - - /** - * Assign Header authorization with type authentication - * @param {Object} headers - * @param {string} type - * @param {string} token - * @private - */ - private _setHeaderAuthorization(headers: any, type: string, token: any): void { - const _type: string = type.toLowerCase(); - - if (_type !== TOKEN_BEARER.toLowerCase() && _type !== TOKEN_BASIC.toLowerCase()) { - this._throwErrorAuth(`Auth type '${_type}' not allowed`); - } - - type = _.upperFirst(type); - headers[HEADERS.AUTHORIZATION] = buildToken(type, token); - } - - /** - * It will add or override specified headers from config file. - * - * Eg: - * - * uplinks: - npmjs: - url: https://registry.npmjs.org/ - headers: - Accept: "application/vnd.npm.install-v2+json; q=1.0" - verdaccio-staging: - url: https://mycompany.com/npm - headers: - Accept: "application/json" - authorization: "Basic YourBase64EncodedCredentials==" - - * @param {Object} headers - * @private - */ - private _overrideWithUpLinkConfLocaligHeaders(headers: Headers): any { - if (!this.config.headers) { - return headers; - } - - // add/override headers specified in the config - /* eslint guard-for-in: 0 */ - for (const key in this.config.headers) { - headers[key] = this.config.headers[key]; - } - } - - /** - * Determine whether can fetch from the provided URL - * @param {*} url - * @return {Boolean} - */ - public isUplinkValid(url: string): boolean { - // $FlowFixMe - const urlParsed: UrlWithStringQuery = URL.parse(url); - const isHTTPS = (urlDomainParsed: URL): boolean => - urlDomainParsed.protocol === 'https:' && - (urlParsed.port === null || urlParsed.port === '443'); - const getHost = (urlDomainParsed): boolean => - isHTTPS(urlDomainParsed) ? urlDomainParsed.hostname : urlDomainParsed.host; - const isMatchProtocol: boolean = urlParsed.protocol === this.url.protocol; - const isMatchHost: boolean = getHost(urlParsed) === getHost(this.url); - // @ts-ignore - const isMatchPath: boolean = urlParsed.path.indexOf(this.url.path) === 0; - - return isMatchProtocol && isMatchHost && isMatchPath; - } - - /** - * Get a remote package metadata - * @param {*} name package name - * @param {*} options request options, eg: eTag. - * @param {*} callback - */ - public getRemoteMetadata(name: string, options: any, callback: Callback): void { - const headers = {}; - if (_.isNil(options.etag) === false) { - headers['If-None-Match'] = options.etag; - headers[HEADERS.ACCEPT] = contentTypeAccept; - } - - this.request( - { - uri: `/${encode(name)}`, - json: true, - headers: headers, - req: options.req - }, - (err, res, body): void => { - if (err) { - return callback(err); - } - if (res.statusCode === HTTP_STATUS.NOT_FOUND) { - return callback(ErrorCode.getNotFound(API_ERROR.NOT_PACKAGE_UPLINK)); - } - if (!(res.statusCode >= HTTP_STATUS.OK && res.statusCode < HTTP_STATUS.MULTIPLE_CHOICES)) { - const error = ErrorCode.getInternalError( - `${API_ERROR.BAD_STATUS_CODE}: ${res.statusCode}` - ); - // $FlowFixMe - error.remoteStatus = res.statusCode; - return callback(error); - } - callback(null, body, res.headers.etag); - } - ); - } - - /** - * Fetch a tarball from the uplink. - * @param {String} url - * @return {Stream} - */ - fetchTarball(url: string) { - const stream = new ReadTarball({}); - let current_length = 0; - let expected_length; - - stream.abort = () => {}; - const readStream = this.request({ - uri_full: url, - encoding: null, - headers: { - Accept: contentTypeAccept - } - }); - - readStream.on('response', function (res: any) { - if (res.statusCode === HTTP_STATUS.NOT_FOUND) { - return stream.emit('error', ErrorCode.getNotFound(API_ERROR.NOT_FILE_UPLINK)); - } - if (!(res.statusCode >= HTTP_STATUS.OK && res.statusCode < HTTP_STATUS.MULTIPLE_CHOICES)) { - return stream.emit( - 'error', - ErrorCode.getInternalError(`bad uplink status code: ${res.statusCode}`) - ); - } - if (res.headers[HEADER_TYPE.CONTENT_LENGTH]) { - expected_length = res.headers[HEADER_TYPE.CONTENT_LENGTH]; - stream.emit(HEADER_TYPE.CONTENT_LENGTH, res.headers[HEADER_TYPE.CONTENT_LENGTH]); - } - - readStream.pipe(stream); - }); - - readStream.on('error', function (err) { - stream.emit('error', err); - }); - readStream.on('data', function (data) { - current_length += data.length; - }); - readStream.on('end', function (data) { - if (data) { - current_length += data.length; - } - if (expected_length && current_length != expected_length) { - stream.emit('error', ErrorCode.getInternalError(API_ERROR.CONTENT_MISMATCH)); - } - }); - return stream; - } - - /** - * Perform a stream search. - * @param {*} options request options - * @return {Stream} - */ - public search(options: any): Stream.Readable { - const transformStream: any = new Stream.PassThrough({ objectMode: true }); - const requestStream: Stream.Readable = this.request({ - uri: options.req.url, - req: options.req, - headers: { - referer: options.req.headers.referer - } - }); - - const parsePackage = (pkg: Package): void => { - if (isObject(pkg)) { - transformStream.emit('data', pkg); - } - }; - - requestStream.on('response', (res): void => { - if (!String(res.statusCode).match(/^2\d\d$/)) { - return transformStream.emit( - 'error', - ErrorCode.getInternalError(`bad status code ${res.statusCode} from uplink`) - ); - } - - // See https://github.com/request/request#requestoptions-callback - // Request library will not decode gzip stream. - let jsonStream; - if (res.headers[HEADER_TYPE.CONTENT_ENCODING] === HEADERS.GZIP) { - jsonStream = res.pipe(zlib.createUnzip()); - } else { - jsonStream = res; - } - jsonStream.pipe(JSONStream.parse('*')).on('data', parsePackage); - jsonStream.on('end', (): void => { - transformStream.emit('end'); - }); - }); - - requestStream.on('error', (err: Error): void => { - transformStream.emit('error', err); - }); - - transformStream.abort = (): void => { - // FIXME: this is clearly a potential issue - // there is no abort method on Stream.Readable - // @ts-ignore - requestStream.abort(); - transformStream.emit('end'); - }; - - return transformStream; - } - - /** - * Add proxy headers. - * FIXME: object mutations, it should return an new object - * @param {*} req the http request - * @param {*} headers the request headers - */ - private _addProxyHeaders(req: any, headers: any): void { - if (req) { - // Only submit X-Forwarded-For field if we don't have a proxy selected - // in the config file. - // - // Otherwise misconfigured proxy could return 407: - // https://github.com/rlidwka/sinopia/issues/254 - // - // FIXME: proxy logic is odd, something is wrong here. - // @ts-ignore - if (!this.proxy) { - headers['X-Forwarded-For'] = - (req.headers['x-forwarded-for'] ? req.headers['x-forwarded-for'] + ', ' : '') + - req.connection.remoteAddress; - } - } - - // always attach Via header to avoid loops, even if we're not proxying - headers['Via'] = req && req.headers['via'] ? req.headers['via'] + ', ' : ''; - - headers['Via'] += '1.1 ' + this.server_id + ' (Verdaccio)'; - } - - /** - * Check whether the remote host is available. - * @param {*} alive - * @return {Boolean} - */ - private _statusCheck(alive?: boolean): boolean | void { - if (arguments.length === 0) { - return this._ifRequestFailure() === false; - } - if (alive) { - if (this.failed_requests >= this.max_fails) { - this.logger.warn( - { - host: this.url.host - }, - 'host @{host} is back online' - ); - } - this.failed_requests = 0; - } else { - this.failed_requests++; - if (this.failed_requests === this.max_fails) { - this.logger.warn( - { - host: this.url.host - }, - 'host @{host} is now offline' - ); - } - } - - this.last_request_time = Date.now(); - } - - /** - * If the request failure. - * @return {boolean} - * @private - */ - private _ifRequestFailure(): boolean { - return ( - this.failed_requests >= this.max_fails && - Math.abs(Date.now() - (this.last_request_time as number)) < this.fail_timeout - ); - } - - /** - * Set up a proxy. - * @param {*} hostname - * @param {*} config - * @param {*} mainconfig - * @param {*} isHTTPS - */ - private _setupProxy( - hostname: string, - config: UpLinkConfLocal, - mainconfig: Config, - isHTTPS: boolean - ): void { - let noProxyList; - const proxy_key: string = isHTTPS ? 'https_proxy' : 'http_proxy'; - - // get http_proxy and no_proxy configs - if (proxy_key in config) { - this.proxy = config[proxy_key]; - } else if (proxy_key in mainconfig) { - this.proxy = mainconfig[proxy_key]; - } - if ('no_proxy' in config) { - // $FlowFixMe - noProxyList = config.no_proxy; - } else if ('no_proxy' in mainconfig) { - noProxyList = mainconfig.no_proxy; - } - - // use wget-like algorithm to determine if proxy shouldn't be used - if (hostname[0] !== '.') { - hostname = '.' + hostname; - } - - if (_.isString(noProxyList) && noProxyList.length) { - // $FlowFixMe - noProxyList = noProxyList.split(','); - } - - if (_.isArray(noProxyList)) { - for (let i = 0; i < noProxyList.length; i++) { - let noProxyItem = noProxyList[i]; - if (noProxyItem[0] !== '.') { - noProxyItem = '.' + noProxyItem; - } - if (hostname.lastIndexOf(noProxyItem) === hostname.length - noProxyItem.length) { - if (this.proxy) { - this.logger.debug( - { url: this.url.href, rule: noProxyItem }, - 'not using proxy for @{url}, excluded by @{rule} rule' - ); - // @ts-ignore - this.proxy = false; - } - break; - } - } - } - - // if it's non-string (i.e. "false"), don't use it - if (_.isString(this.proxy) === false) { - delete this.proxy; - } else { - this.logger.debug( - { url: this.url.href, proxy: this.proxy }, - 'using proxy @{proxy} for @{url}' - ); - } - } -} - -export default ProxyStorage; diff --git a/src/lib/uplink-util.ts b/src/lib/uplink-util.ts deleted file mode 100644 index 40edf88be..000000000 --- a/src/lib/uplink-util.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Versions, Config } from '@verdaccio/types'; -import { IProxy, ProxyList } from '../../types'; -import ProxyStorage from './up-storage'; - -/** - * Set up the Up Storage for each link. - */ -export function setupUpLinks(config: Config): ProxyList { - const uplinks: ProxyList = {}; - - for (const uplinkName in config.uplinks) { - if (Object.prototype.hasOwnProperty.call(config.uplinks, uplinkName)) { - // instance for each up-link definition - const proxy: IProxy = new ProxyStorage(config.uplinks[uplinkName], config); - proxy.upname = uplinkName; - - uplinks[uplinkName] = proxy; - } - } - - return uplinks; -} - -export function updateVersionsHiddenUpLink(versions: Versions, upLink: IProxy): void { - for (const i in versions) { - if (Object.prototype.hasOwnProperty.call(versions, i)) { - const version = versions[i]; - - // holds a "hidden" value to be used by the package storage. - // $FlowFixMe - version[Symbol.for('__verdaccio_uplink')] = upLink.upname; - } - } -} diff --git a/src/lib/utils.ts b/src/lib/utils.ts deleted file mode 100644 index 3de685f03..000000000 --- a/src/lib/utils.ts +++ /dev/null @@ -1,663 +0,0 @@ -/** - * @prettier - */ -import fs from 'fs'; -import assert from 'assert'; -import URL from 'url'; -import { IncomingHttpHeaders } from 'http2'; -import _ from 'lodash'; -import semver from 'semver'; -import YAML from 'js-yaml'; -import sanitizyReadme from '@verdaccio/readme'; - -import { Package, Version, Author } from '@verdaccio/types'; -import { Request } from 'express'; -import { - getConflict, - getBadData, - getBadRequest, - getInternalError, - getUnauthorized, - getForbidden, - getServiceUnavailable, - getNotFound, - getCode -} from '@verdaccio/commons-api'; -import { generateGravatarUrl, GENERIC_AVATAR } from '../utils/user'; -import { StringValue, AuthorAvatar } from '../../types'; -import { - APP_ERROR, - DEFAULT_PORT, - DEFAULT_DOMAIN, - DEFAULT_PROTOCOL, - CHARACTER_ENCODING, - HEADERS, - DIST_TAGS, - DEFAULT_USER -} from './constants'; - -import { normalizeContributors } from './storage-utils'; - -import { logger } from './logger'; - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -// eslint-disable-next-line @typescript-eslint/no-var-requires -require('pkginfo')(module); -const pkgVersion = module.exports.version; -const pkgName = module.exports.name; - -export function getUserAgent(): string { - assert(_.isString(pkgName)); - assert(_.isString(pkgVersion)); - return `${pkgName}/${pkgVersion}`; -} - -export function convertPayloadToBase64(payload: string): Buffer { - return Buffer.from(payload, 'base64'); -} - -/** - * From normalize-package-data/lib/fixer.js - * @param {*} name the package name - * @return {Boolean} whether is valid or not - */ -export function validateName(name: string): boolean { - if (_.isString(name) === false) { - return false; - } - - const normalizedName: string = name.toLowerCase(); - - /** - * Some context about the first regex - * - npm used to have a different tarball naming system. - * eg: http://registry.npmjs.com/thirty-two - * https://registry.npmjs.org/thirty-two/-/thirty-two@0.0.1.tgz - * The file name thirty-two@0.0.1.tgz, the version and the pkg name was separated by an at (@) - * while nowadays the naming system is based in dashes - * https://registry.npmjs.org/verdaccio/-/verdaccio-1.4.0.tgz - * - * more info here: https://github.com/rlidwka/sinopia/issues/75 - */ - return !( - !normalizedName.match(/^[-a-zA-Z0-9_.!~*'()@]+$/) || - normalizedName.startsWith('.') || // ".bin", etc. - ['node_modules', '__proto__', 'favicon.ico'].includes(normalizedName) - ); -} - -/** - * Validate a package. - * @return {Boolean} whether the package is valid or not - */ -export function validatePackage(name: string): boolean { - const nameList = name.split('/', 2); - if (nameList.length === 1) { - // normal package - return validateName(nameList[0]); - } - // scoped package - return nameList[0][0] === '@' && validateName(nameList[0].slice(1)) && validateName(nameList[1]); -} - -/** - * Check whether an element is an Object - * @param {*} obj the element - * @return {Boolean} - */ -export function isObject(obj: any): boolean { - return _.isObject(obj) && _.isNull(obj) === false && _.isArray(obj) === false; -} - -/** - * Validate the package metadata, add additional properties whether are missing within - * the metadata properties. - * @param {*} object - * @param {*} name - * @return {Object} the object with additional properties as dist-tags ad versions - */ -export function validateMetadata(object: Package, name: string): Package { - assert(isObject(object), 'not a json object'); - assert.strictEqual(object.name, name); - - if (!isObject(object[DIST_TAGS])) { - object[DIST_TAGS] = {}; - } - - if (!isObject(object['versions'])) { - object['versions'] = {}; - } - - if (!isObject(object['time'])) { - object['time'] = {}; - } - - return object; -} - -/** - * Create base url for registry. - * @return {String} base registry url - */ -export function combineBaseUrl( - protocol: string, - host: string | void, - prefix?: string | void -): string { - const result = `${protocol}://${host}`; - - const prefixOnlySlash = prefix === '/'; - if (prefix && !prefixOnlySlash) { - if (prefix.endsWith('/')) { - prefix = prefix.slice(0, -1); - } - - if (prefix.startsWith('/')) { - return `${result}${prefix}`; - } - - return prefix; - } - - return result; -} - -export function extractTarballFromUrl(url: string): string { - // @ts-ignore - return URL.parse(url).pathname.replace(/^.*\//, ''); -} - -/** - * Iterate a packages's versions and filter each original tarball url. - * @param {*} pkg - * @param {*} req - * @param {*} config - * @return {String} a filtered package - */ -export function convertDistRemoteToLocalTarballUrls( - pkg: Package, - req: Request, - urlPrefix: string | void -): Package { - for (const ver in pkg.versions) { - if (Object.prototype.hasOwnProperty.call(pkg.versions, ver)) { - const distName = pkg.versions[ver].dist; - - if (_.isNull(distName) === false && _.isNull(distName.tarball) === false) { - distName.tarball = getLocalRegistryTarballUri(distName.tarball, pkg.name, req, urlPrefix); - } - } - } - return pkg; -} - -/** - * Filter a tarball url. - * @param {*} uri - * @return {String} a parsed url - */ -export function getLocalRegistryTarballUri( - uri: string, - pkgName: string, - req: Request, - urlPrefix: string | void -): string { - const currentHost = req.headers.host; - - if (!currentHost) { - return uri; - } - const tarballName = extractTarballFromUrl(uri); - const headers = req.headers as IncomingHttpHeaders; - const protocol = getWebProtocol(req.get(HEADERS.FORWARDED_PROTO), req.protocol); - const domainRegistry = combineBaseUrl(protocol, headers.host, urlPrefix); - - return `${domainRegistry}/${encodeScopedUri(pkgName)}/-/${tarballName}`; -} - -/** - * Create a tag for a package - * @param {*} data - * @param {*} version - * @param {*} tag - * @return {Boolean} whether a package has been tagged - */ -export function tagVersion(data: Package, version: string, tag: StringValue): boolean { - if (tag && data[DIST_TAGS][tag] !== version && semver.parse(version, true)) { - // valid version - store - data[DIST_TAGS][tag] = version; - return true; - } - return false; -} - -/** - * Gets version from a package object taking into account semver weirdness. - * @return {String} return the semantic version of a package - */ -export function getVersion(pkg: Package, version: any): Version | void { - // this condition must allow cast - if (_.isNil(pkg.versions[version]) === false) { - return pkg.versions[version]; - } - - try { - version = semver.parse(version, true); - for (const versionItem in pkg.versions) { - // $FlowFixMe - if (version.compare(semver.parse(versionItem, true)) === 0) { - return pkg.versions[versionItem]; - } - } - } catch (err) { - return undefined; - } -} - -/** - * Parse an internet address - * Allow: - - https:localhost:1234 - protocol + host + port - - localhost:1234 - host + port - - 1234 - port - - http::1234 - protocol + port - - https://localhost:443/ - full url + https - - http://[::1]:443/ - ipv6 - - unix:/tmp/http.sock - unix sockets - - https://unix:/tmp/http.sock - unix sockets (https) - * @param {*} urlAddress the internet address definition - * @return {Object|Null} literal object that represent the address parsed - */ -export function parseAddress(urlAddress: any): any { - // - // TODO: refactor it to something more reasonable? - // - // protocol : // ( host )|( ipv6 ): port / - let urlPattern = /^((https?):(\/\/)?)?((([^\/:]*)|\[([^\[\]]+)\]):)?(\d+)\/?$/.exec(urlAddress); - - if (urlPattern) { - return { - proto: urlPattern[2] || DEFAULT_PROTOCOL, - host: urlPattern[6] || urlPattern[7] || DEFAULT_DOMAIN, - port: urlPattern[8] || DEFAULT_PORT - }; - } - - urlPattern = /^((https?):(\/\/)?)?unix:(.*)$/.exec(urlAddress); - - if (urlPattern) { - return { - proto: urlPattern[2] || DEFAULT_PROTOCOL, - path: urlPattern[4] - }; - } - - return null; -} - -/** - * Function filters out bad semver versions and sorts the array. - * @return {Array} sorted Array - */ -export function semverSort(listVersions: string[]): string[] { - return ( - listVersions - .filter(function (x): boolean { - if (!semver.parse(x, true)) { - logger.warn({ ver: x }, 'ignoring bad version @{ver}'); - return false; - } - return true; - }) - // FIXME: it seems the @types/semver do not handle a legitimate method named 'compareLoose' - // @ts-ignore - .sort(semver.compareLoose) - .map(String) - ); -} - -/** - * Flatten arrays of tags. - * @param {*} data - */ -export function normalizeDistTags(pkg: Package): void { - let sorted; - if (!pkg[DIST_TAGS].latest) { - // overwrite latest with highest known version based on semver sort - sorted = semverSort(Object.keys(pkg.versions)); - if (sorted && sorted.length) { - pkg[DIST_TAGS].latest = sorted.pop(); - } - } - - for (const tag in pkg[DIST_TAGS]) { - if (_.isArray(pkg[DIST_TAGS][tag])) { - if (pkg[DIST_TAGS][tag].length) { - // sort array - // FIXME: this is clearly wrong, we need to research why this is like this. - // @ts-ignore - sorted = semverSort(pkg[DIST_TAGS][tag]); - if (sorted.length) { - // use highest version based on semver sort - pkg[DIST_TAGS][tag] = sorted.pop(); - } - } else { - delete pkg[DIST_TAGS][tag]; - } - } else if (_.isString(pkg[DIST_TAGS][tag])) { - if (!semver.parse(pkg[DIST_TAGS][tag], true)) { - // if the version is invalid, delete the dist-tag entry - delete pkg[DIST_TAGS][tag]; - } - } - } -} - -const parseIntervalTable = { - '': 1000, - ms: 1, - s: 1000, - m: 60 * 1000, - h: 60 * 60 * 1000, - d: 86400000, - w: 7 * 86400000, - M: 30 * 86400000, - y: 365 * 86400000 -}; - -/** - * Parse an internal string to number - * @param {*} interval - * @return {Number} - */ -export function parseInterval(interval: any): number { - if (typeof interval === 'number') { - return interval * 1000; - } - let result = 0; - let last_suffix = Infinity; - interval.split(/\s+/).forEach(function (x): void { - if (!x) { - return; - } - const m = x.match(/^((0|[1-9][0-9]*)(\.[0-9]+)?)(ms|s|m|h|d|w|M|y|)$/); - if ( - !m || - parseIntervalTable[m[4]] >= last_suffix || - (m[4] === '' && last_suffix !== Infinity) - ) { - throw Error('invalid interval: ' + interval); - } - last_suffix = parseIntervalTable[m[4]]; - result += Number(m[1]) * parseIntervalTable[m[4]]; - }); - return result; -} - -/** - * Detect running protocol (http or https) - */ -export function getWebProtocol(headerProtocol: string | void, protocol: string): string { - if (typeof headerProtocol === 'string' && headerProtocol !== '') { - const commaIndex = headerProtocol.indexOf(','); - return commaIndex > 0 ? headerProtocol.substr(0, commaIndex) : headerProtocol; - } - - return protocol; -} - -export function getLatestVersion(pkgInfo: Package): string { - return pkgInfo[DIST_TAGS].latest; -} - -export const ErrorCode = { - getConflict, - getBadData, - getBadRequest, - getInternalError, - getUnauthorized, - getForbidden, - getServiceUnavailable, - getNotFound, - getCode -}; - -export function parseConfigFile(configPath: string): any { - try { - if (/\.ya?ml$/i.test(configPath)) { - return YAML.safeLoad(fs.readFileSync(configPath, CHARACTER_ENCODING.UTF8)); - } - return require(configPath); - } catch (e) { - if (e.code !== 'MODULE_NOT_FOUND') { - e.message = APP_ERROR.CONFIG_NOT_VALID; - } - - throw new Error(e); - } -} - -/** - * Check whether the path already exist. - * @param {String} path - * @return {Boolean} - */ -export function folderExists(path: string): boolean { - try { - const stat = fs.statSync(path); - return stat.isDirectory(); - } catch (_) { - return false; - } -} - -/** - * Check whether the file already exist. - * @param {String} path - * @return {Boolean} - */ -export function fileExists(path: string): boolean { - try { - const stat = fs.statSync(path); - return stat.isFile(); - } catch (_) { - return false; - } -} - -export function sortByName(packages: any[], orderAscending: boolean | void = true): string[] { - return packages.slice().sort(function (a, b): number { - const comparatorNames = a.name.toLowerCase() < b.name.toLowerCase(); - - return orderAscending ? (comparatorNames ? -1 : 1) : comparatorNames ? 1 : -1; - }); -} - -export function addScope(scope: string, packageName: string): string { - return `@${scope}/${packageName}`; -} - -export function deleteProperties(propertiesToDelete: string[], objectItem: any): any { - _.forEach(propertiesToDelete, (property): any => { - delete objectItem[property]; - }); - - return objectItem; -} - -export function addGravatarSupport(pkgInfo: Package, online = true): AuthorAvatar { - const pkgInfoCopy = { ...pkgInfo } as any; - const author: any = _.get(pkgInfo, 'latest.author', null) as any; - const contributors: AuthorAvatar[] = normalizeContributors( - _.get(pkgInfo, 'latest.contributors', []) - ); - const maintainers = _.get(pkgInfo, 'latest.maintainers', []); - - // for author. - if (author && _.isObject(author)) { - const { email } = author as Author; - pkgInfoCopy.latest.author.avatar = generateGravatarUrl(email, online); - } - - if (author && _.isString(author)) { - pkgInfoCopy.latest.author = { - avatar: GENERIC_AVATAR, - email: '', - author - }; - } - - // for contributors - if (_.isEmpty(contributors) === false) { - pkgInfoCopy.latest.contributors = contributors.map( - (contributor): AuthorAvatar => { - if (isObject(contributor)) { - contributor.avatar = generateGravatarUrl(contributor.email, online); - } else if (_.isString(contributor)) { - contributor = { - avatar: GENERIC_AVATAR, - email: contributor, - name: contributor - }; - } - - return contributor; - } - ); - } - - // for maintainers - if (_.isEmpty(maintainers) === false) { - pkgInfoCopy.latest.maintainers = maintainers.map((maintainer): void => { - maintainer.avatar = generateGravatarUrl(maintainer.email, online); - return maintainer; - }); - } - - return pkgInfoCopy; -} - -/** - * parse package readme - markdown/ascii - * @param {String} packageName name of package - * @param {String} readme package readme - * @return {String} converted html template - */ -export function parseReadme(packageName: string, readme: string): string | void { - if (_.isEmpty(readme) === false) { - return sanitizyReadme(readme); - } - - // logs readme not found error - logger.error({ packageName }, '@{packageName}: No readme found'); - - return sanitizyReadme('ERROR: No README data found!'); -} - -export function buildToken(type: string, token: string): string { - return `${_.capitalize(type)} ${token}`; -} - -/** - * return package version from tarball name - * @param {String} name - * @returns {String} - */ -export function getVersionFromTarball(name: string): string | void { - // FIXME: we know the regex is valid, but we should improve this part as ts suggest - // @ts-ignore - return /.+-(\d.+)\.tgz/.test(name) ? name.match(/.+-(\d.+)\.tgz/)[1] : undefined; -} - -export type AuthorFormat = Author | string | null | object | void; - -/** - * Formats author field for webui. - * @see https://docs.npmjs.com/files/package.json#author - * @param {string|object|undefined} author - */ -export function formatAuthor(author: AuthorFormat): any { - let authorDetails = { - name: DEFAULT_USER, - email: '', - url: '' - }; - - if (_.isNil(author)) { - return authorDetails; - } - - if (_.isString(author)) { - authorDetails = { - ...authorDetails, - name: author as string - }; - } - - if (_.isObject(author)) { - authorDetails = { - ...authorDetails, - ...(author as Author) - }; - } - - return authorDetails; -} - -/** - * Check if URI is starting with "http://", "https://" or "//" - * @param {string} uri - */ -export function isHTTPProtocol(uri: string): boolean { - return /^(https?:)?\/\//.test(uri); -} - -/** - * Apply whitespaces based on the length - * @param {*} str the log message - * @return {String} - */ -export function pad(str, max): string { - if (str.length < max) { - return str + ' '.repeat(max - str.length); - } - return str; -} - -/** - * return a masquerade string with its first and last {charNum} and three dots in between. - * @param {String} str - * @param {Number} charNum - * @returns {String} - */ -export function mask(str: string, charNum = 3): string { - return `${str.substr(0, charNum)}...${str.substr(-charNum)}`; -} - -export function encodeScopedUri(packageName): string { - return packageName.replace(/\//g, '%2f'); -} - -export function hasDiffOneKey(versions): boolean { - return Object.keys(versions).length !== 1; -} - -export function isVersionValid(packageMeta, packageVersion): boolean { - const hasVersion = typeof packageVersion !== 'undefined'; - if (!hasVersion) { - return false; - } - - const hasMatchVersion = Object.keys(packageMeta.versions).includes(packageVersion); - return hasMatchVersion; -} - -export function isRelatedToDeprecation(pkgInfo: Package): boolean { - const { versions } = pkgInfo; - for (const version in versions) { - if (Object.prototype.hasOwnProperty.call(versions[version], 'deprecated')) { - return true; - } - } - return false; -} diff --git a/src/utils/string.ts b/src/utils/string.ts deleted file mode 100644 index 3f047fd4f..000000000 --- a/src/utils/string.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @flow - -export function spliceURL(...args: string[]): string { - return Array.from(args) - .reduce((lastResult, current) => lastResult + current) - .replace(/([^:])(\/)+(.)/g, `$1/$3`); -} diff --git a/src/utils/user.ts b/src/utils/user.ts deleted file mode 100644 index c8cc6a768..000000000 --- a/src/utils/user.ts +++ /dev/null @@ -1,37 +0,0 @@ -// @flow -import _ from 'lodash'; -import { stringToMD5 } from '../lib/crypto-utils'; - -// this is a generic avatar -// https://www.iconfinder.com/icons/403017/anonym_avatar_default_head_person_unknown_user_icon -// license: free commercial usage -export const GENERIC_AVATAR = - 'data:image/svg+xml;utf8,' + - encodeURIComponent( - '' - ); - -/** - * Generate gravatar url from email address - */ -export function generateGravatarUrl(email: string | void = '', online: boolean = true): string { - if (online && _.isString(email) && _.size(email) > 0) { - email = email.trim().toLocaleLowerCase(); - const emailMD5 = stringToMD5(email); - return `https://www.gravatar.com/avatar/${emailMD5}`; - } - return GENERIC_AVATAR; -} diff --git a/systemd/verdaccio.service b/systemd/verdaccio.service deleted file mode 100644 index bed41cc41..000000000 --- a/systemd/verdaccio.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Verdaccio lightweight npm proxy registry - -[Service] -Type=simple -Restart=on-failure -User=verdaccio -ExecStart=/usr/bin/verdaccio --config /etc/verdaccio/config.yaml - -[Install] -WantedBy=multi-user.target diff --git a/test/.eslintrc b/test/.eslintrc deleted file mode 100644 index 88e7aa030..000000000 --- a/test/.eslintrc +++ /dev/null @@ -1,34 +0,0 @@ -{ - "extends": [ - "eslint:recommended" - ], - "env": { - "node": true, - "mocha": true, - "es6": true, - "browser": true - }, - "globals": { - "jsdom": true - }, - "rules": { - "valid-jsdoc": 0, - "no-redeclare": 1, - "no-console": [ - 2, - { - "allow": [ - "log", - "error" - ] - } - ], - "no-useless-escape": 0, - "@typescript-eslint/explicit-function-return-type": 0, - "@typescript-eslint/no-empty-function": 0, - "handle-callback-err": 0, - "import/order": 0, - "prefer-const": 0, - "prefer-promise-reject-errors": 1 - } -} diff --git a/test/README.md b/test/README.md deleted file mode 100644 index fda4d5496..000000000 --- a/test/README.md +++ /dev/null @@ -1,310 +0,0 @@ -## How to test Verdaccio - -Welcome to the testing folder at Verdaccio. This document aims to help you understand how Verdaccio should be tested. - -First of all, we should explain the testing frameworks being used. We use `jest` and other tools such as **`supertest`** to be able to test the API, and **`puppeteer`** for End-to-End testing. - -### Before getting started - -We go along with the following rules in order to be consistent with all tests which will make your code review smooth and fast: - -* We **type** all our tests. eg `const foo: number = 3;` -* **Each test should be as small as possible**: You should use the `test()` block to test only one thing and do not depend on other tests. If the test requires different steps, group them with a `describe()` block. -* All `test()` **headers titles** should begin with `test('should test ...')`: For consistency with reporting tools, this makes it easier to match the test with the feature needed to be tested. -* **Any mock data** should be located in the `partials` folder in each section. -* Use `yaml` for **configuration files examples** instead of JSON. -* If you use a **file based mock storage**, it should be located in the `store` folder in each section. -* All tests **MUST NOT** rely on external sources and must be able to run them **offline**. -* Tests **must run on the following Operating Systems**: Unix (Mac, Linux) and Windows (7 -> latest). -* If you are creating mock data file which use the state and need a clean state, use `rimraf` to remove folders. - -## Testing sections - -Verdaccio testing is split in 3 sections, each of them has different setup and scope. The most important is the **unit test**. All sections have custom **jest configuration files**. - -If you are adding new tests, comply with the following: - -* If you add a new API endpoint, unit and functional tests are mandatory. -* If you add a utility, unit test is mandatory. -* If you are adding a new web API endpoint, the unit test, functional test and if such endpoint has new changes in the UI, E2E test is also mandatory. -* If you add or refactor a core class, unit test is mandatory. -* If you fix a bug, you **must** add a new `test()` block to prove that the patch fixes the bug. - -## Unit test - -Unit tests aim to test the CLI API and the Web API. The configuration file is located at `jest.config.js`. - -> Unit testing does not need require pre-compile code, jest will catch any change done to the `{root}/src` files. - -#### Testing an endpoint - -We have prepared a template at `test/unit/api/api.__test.template.spec.ts` that you can follow to create your own unit test. Only the tests are appended with `.spec.ts` which will be found and used by `jest`. - -> Feel free to suggest improvements to the template, there is still a lot of room for improvement. - -We recommend the following approach when you create a unit test: - -* For new utilities, we recommend creating a new spec. -* For existing utilities, if the method is already being tested, just add a new `test()` block. -* Notice that all API spec files are appended with `api.[feature].spec.js`, we recommend to follow the same approach. eg: `api.[deprecate].spec.js`. -* Don't mix utilities with API tests. - -### How the mockServer works? - -Each `[xxx].spec.ts` file usually triggers a `mockServer` on in the`beforeAll` phase. This is is handy since we might need a `uplink` server to test different scenarios. - -Let's analyze the following example: - -```js -const configForTest = configDefault({ - auth: { - htpasswd: { - file: './test-storage-api-spec/.htpasswd' - } - }, - filters: { - '../../modules/api/partials/plugin/filter': { - pkg: 'npm_test', - version: '2.0.0' - } - }, - storage: store, - self_path: store, - uplinks: { - npmjs: { - url: `http://${DOMAIN_SERVERS}:${mockServerPort}` - } - }, - logs: [ - { type: 'stdout', format: 'pretty', level: 'trace' } - ] - }, 'api.spec.yaml'); - - app = await endPointAPI(configForTest); - mockRegistry = await mockServer(mockServerPort).init(); -``` - -The `configDefault({}, 'myConfig.yaml)` function is a method that returns a configuration file that will be the config used for your test. - -* The *first argument* allows you to override/extend the default configuration located `/test/unit/partials/config/yaml/default.yaml`. -* The *second argument*s is being used to override the base configuration file, you only need to set the name `api.spec.yaml` you are willing to use, the relative location will be `test/unit/partials/config/yaml/` and will be prefixed on runtime. - -> **The generated object will be used for run your test, not for mock the mock server.** - -The `app = await endPointAPI(configForTest);` is the server that you are about to run your test against. The `app` object is used to call the endoints, for instance: - -```js -test('should fetch jquery package from remote uplink', (done) => { - request(app) - .get('/jquery') - .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET) - .expect(HTTP_STATUS.OK) - .end(function(err, res) { - if (err) { - return done(err); - } - - expect(res.body).toBeDefined(); - expect(res.body.name).toMatch(/jquery/); - done(); - }); -}); -``` - -In the previous example, we are fetching `jquery` metadata from our server, we can define custom headers, expect some specific status and validate the body outcome. - -> For more information about the **supertest** API, please [read their website](https://www.npmjs.com/package/supertest). - -The `mockRegistry = await mockServer(mockServerPort).init();` mock registry will be used as `uplink` for the `app` object described above, **this is optional**, but, the most of the tests are using this approach for increase the number of tested scenarios. - -The *mock server* has a static storage which is located `test/unit/partials/mock-store`, if you need add new packages, those must be commited in such folder. **Any modification in the mock server might affect other test, since is a shared context**. - -> It is not possible yet to override the mocks configuration server. - -> The `self_path` is a legacy prop that must to be set manually, this prop is being generated by the CLI, but running the test without the CLI force use to generate it manually. **This might change in the future**. - -> The `const mockServerPort = 55549;` mock server must be added manually, be careful and try to define a port that is not being used by another test, there is not automation here yet. - -> To increase debugging you might override the `logs` property using `{ type: 'stdout', format: 'pretty', level: 'trace' }` level **trace**, thus the test will display the server request in your terminal, try to keep it in **warn** by default to avoid noise on run all your test. -> - -#### Running a single Unit Test - -To run a single test, use the following command: - -```bash -yarn jest test/unit/modules/api/api.spec.ts --coverage=false -``` - -You might use the *jest* feature `.only` to limit the test suites you want to run, for instance. - -```js -describe.only('should test package api', () => { -``` - -That will help to run small chunk of tests and makes more easy the development. - -#### Debugging Mock Server Request - -In order to inspect more information about what is being sended between your test and the mock server, you might take advance of the `debug` library used by `request`, for instance. - -``` -NODE_DEBUG=request yarn jest test/unit/modules/api/api.spec.ts --runInBand=true --coverage=false -``` - -The outcome you will see in your terminal looks like: - -``` -Ran all test suites matching /test\/unit\/modules\/api\/api.spec.ts/i. - console.error node_modules/request/request.js:136 - REQUEST onRequestResponse http://0.0.0.0:55549/jquery 200 { 'x-powered-by': 'verdaccio/4.1.0', - 'access-control-allow-origin': '*', - 'content-type': 'application/json; charset=utf-8', - etag: '"xxxxx"', - vary: 'Accept-Encoding', - 'content-encoding': 'gzip', - date: 'Sat, 27 Jul 2019 06:44:13 GMT', - connection: 'close', - 'transfer-encoding': 'chunked' } - - http --> 200, req: 'GET http://0.0.0.0:55549/jquery' (streaming) - console.error node_modules/request/request.js:136 - REQUEST reading response's body - - console.error node_modules/request/request.js:136 - REQUEST finish init function http://0.0.0.0:55549/jquery - - console.error node_modules/request/request.js:136 - REQUEST response end http://0.0.0.0:55549/jquery 200 { 'x-powered-by': 'verdaccio/4.1.0', - 'access-control-allow-origin': '*', - 'content-type': 'application/json; charset=utf-8', - etag: '"xxxxx"', - vary: 'Accept-Encoding', - 'content-encoding': 'gzip', - date: 'Sat, 27 Jul 2019 06:44:13 GMT', - connection: 'close', - 'transfer-encoding': 'chunked' } - - console.error node_modules/request/request.js:136 - REQUEST end event http://0.0.0.0:55549/jquery - - console.error node_modules/request/request.js:136 - REQUEST has body http://0.0.0.0:55549/jquery 133608 - - console.error node_modules/request/request.js:136 - REQUEST emitting complete http://0.0.0.0:55549/jquery - - http --> 200, req: 'GET http://0.0.0.0:55549/jquery', bytes: 0/133608 - debug-=- updating package jquery info - http <-- 200, user: null(::ffff:127.0.0.1), req: 'GET /jquery', bytes: 0/10300 -``` -The debug display request headers and other handy information about what is happening between your test and the mock server. - -## Functional tests - -The functional tests aim to run only **cli endpoint** and **web point** using real request to an existing and compiled running Verdaccio server. - -> Be aware if you change something in the `{root}/src` source code, you must run `yarn code:build` before to be able to see your changes because functional tests use the transpiled code. - -All tests must be included in the `test/functional/index.spec.ts` file, which bootstraps the whole process. There is only one spec file and **must be only one**. - -The jest configuration file is defined in `test/jest.config.functional.js`. The configuration will create a custom environment launching 3 Verdaccio servers with different configurations. - -The servers are linked as follows: - -* Server 1 - * -> Server 2 - * -> Server 3 -* Server 2 - * -> Server 1 -* Server 3 - * -> Server 2 - * -> Server 1 -* Express app: (if you need to emulate any external endpoint, use the express app) - -Server 1 runs on port `55551`, Server 2 on port `55552` and Server 3 on port `55553`. - -> If you have the need to increase the number of servers running, it is possible, but please discuss with the team before you go in that path. - - -#### Adding a new block - -To add a new feature you need to export the feature as a function that take as an argument any of the servers you want to interact. - - -```js -// newFeature.ts - -export default function(server) { - - describe('package access control', () => { - test('should ...', (done) => { - done(); - }); - }); - -} -``` - -Then import the feature and run the function within the main `describe` block. - -```js -// index.spec.ts - -import newFeature from './newFeature'; - -describe('functional test verdaccio', function() { - // test are fast, but do not change this time out, 10 seconds should be more than enough - jest.setTimeout(10000); - // servers are accessed via a global jest state. - const server1: IServerBridge = global.__SERVERS__[0]; - const server2: IServerBridge = global.__SERVERS__[1]; - const server3: IServerBridge = global.__SERVERS__[2]; - const app = global.__WEB_SERVER__.app; - - // include as much servers you need - newFeature(server1, server2, server3); -}); -``` - -Functional tests run over one single file, thus, it is not possible at this stage to run tests individually. - -## E2E Test - -Verdaccio includes a Web User Interface that must be tested. We use End-to-End testing to run some mock tests against the web API using the UI Theme -include by default. - -```bash - yarn lint && yarn test:all -``` - -The test does not have aim to test the integrity of the page, mostly, ensure the basic functionality still works. If you add or modify -a UI feature, the tests must be updated. - -> The tests rely on CSS classes naming convention, so, it is required some sort of coordination with the **verdaccio/ui** project. - -We uses `puppeteer`, you can find more information about how to use it in their website. - -## Before commit - -We recommend run your tests and linters before commit. - -```bash - yarn lint && yarn test:all -``` - - -You can find more in our [guide about run and debugging test](https://github.com/verdaccio/verdaccio/wiki/Running-and-Debugging-tests#running-the-test). - -## Continuous Integration - -Verdaccio uses [CircleCI](https://circleci.com/gh/verdaccio) as its primary Continuous Integration tool. We run the tests against the most common Node.js versions available. Among them is LTS and the latest release. Before the PR is being merged, all checks must be green. -Node.js versions available, LTS and the latest release. Before the PR is being merged, all check must be green. - -> You need a CircleCI account to be able see the test running - - - - - diff --git a/test/e2e-cli/.eslintrc b/test/e2e-cli/.eslintrc deleted file mode 100644 index cbfb89d2f..000000000 --- a/test/e2e-cli/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "rules": { - "@typescript-eslint/no-var-requires": 0, - "@typescript-eslint/explicit-member-accessibility": 0 - } -} diff --git a/test/e2e-cli/config/_bootstrap_verdaccio.yaml b/test/e2e-cli/config/_bootstrap_verdaccio.yaml deleted file mode 100644 index 50fe65d73..000000000 --- a/test/e2e-cli/config/_bootstrap_verdaccio.yaml +++ /dev/null @@ -1,37 +0,0 @@ -storage: ./storage - -#store: -# memory: -# limit: 1000 - -auth: - htpasswd: - file: ./htpasswd - max_users: -1 - -web: - enable: true - title: verdaccio-e2e-pkg - -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -logs: - - { type: stdout, format: pretty, level: warn } - -packages: - '@*/*': - access: $all - publish: $anonymous - unpublish: $authenticated - proxy: npmjs - 'verdaccio': - access: $all - publish: $anonymous - '**': - access: $all - publish: $anonymous - unpublish: $authenticated - proxy: npmjs -_debug: true diff --git a/test/e2e-cli/config/default.yaml b/test/e2e-cli/config/default.yaml deleted file mode 100644 index e107aea83..000000000 --- a/test/e2e-cli/config/default.yaml +++ /dev/null @@ -1,35 +0,0 @@ -storage: ./storage - -#store: -# memory: -# limit: 1000 - -auth: - htpasswd: - file: ./htpasswd - max_users: -1 - -web: - enable: true - title: verdaccio-default - -uplinks: - local: - url: http://localhost:4873 - -logs: - - { type: stdout, format: pretty, level: warn } - -packages: - '@*/*': - access: $all - publish: $anonymous - unpublish: $authenticated - proxy: local - '**': - access: $all - publish: $all - unpublish: $authenticated - proxy: local - -_debug: true diff --git a/test/e2e-cli/env_babel.js b/test/e2e-cli/env_babel.js deleted file mode 100644 index eddce9aa3..000000000 --- a/test/e2e-cli/env_babel.js +++ /dev/null @@ -1,4 +0,0 @@ -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -module.exports = require('./setup/test_environment'); diff --git a/test/e2e-cli/env_setup.js b/test/e2e-cli/env_setup.js deleted file mode 100644 index 222f7183e..000000000 --- a/test/e2e-cli/env_setup.js +++ /dev/null @@ -1,4 +0,0 @@ -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -module.exports = require('./setup/setup'); diff --git a/test/e2e-cli/env_teardown.js b/test/e2e-cli/env_teardown.js deleted file mode 100644 index 75165a7c7..000000000 --- a/test/e2e-cli/env_teardown.js +++ /dev/null @@ -1,4 +0,0 @@ -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -module.exports = require('./setup/teardown'); diff --git a/test/e2e-cli/jest.config.e2e.cli.js b/test/e2e-cli/jest.config.e2e.cli.js deleted file mode 100644 index 5cec14386..000000000 --- a/test/e2e-cli/jest.config.e2e.cli.js +++ /dev/null @@ -1,12 +0,0 @@ -const { defaults } = require('jest-config'); - -module.exports = { - name: 'verdaccio-e2e-cli-jest', - verbose: true, - collectCoverage: false, - moduleFileExtensions: [...defaults.moduleFileExtensions, 'ts'], - testEnvironment: './env_babel.js', - globalSetup: './env_setup.js', - globalTeardown: './env_teardown.js', - testRegex: '(/test/e2e.*\\.spec)\\.ts' -}; diff --git a/test/e2e-cli/projects/basic/.npmignore b/test/e2e-cli/projects/basic/.npmignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/e2e-cli/projects/basic/README.md b/test/e2e-cli/projects/basic/README.md deleted file mode 100644 index 80c7d1601..000000000 --- a/test/e2e-cli/projects/basic/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Simple project - -This is a normal readme diff --git a/test/e2e-cli/projects/basic/index.js b/test/e2e-cli/projects/basic/index.js deleted file mode 100644 index 474a5966c..000000000 --- a/test/e2e-cli/projects/basic/index.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function() { - const message = "this is a basic project"; - console.log(message); - - return message; -}; diff --git a/test/e2e-cli/projects/basic/package.json b/test/e2e-cli/projects/basic/package.json deleted file mode 100644 index 59afd2e21..000000000 --- a/test/e2e-cli/projects/basic/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "basic-verdaccio", - "version": "1.0.0", - "description": "this is a basic project", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - "verdaccio", - "sample" - ], - "dependencies": { - "verdaccio": "latest" - }, - "author": "Juan Picado ", - "license": "MIT" -} diff --git a/test/e2e-cli/projects/scoped_basic/.npmignore b/test/e2e-cli/projects/scoped_basic/.npmignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/e2e-cli/projects/scoped_basic/README.md b/test/e2e-cli/projects/scoped_basic/README.md deleted file mode 100644 index 80c7d1601..000000000 --- a/test/e2e-cli/projects/scoped_basic/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Simple project - -This is a normal readme diff --git a/test/e2e-cli/projects/scoped_basic/index.js b/test/e2e-cli/projects/scoped_basic/index.js deleted file mode 100644 index 76e3f217a..000000000 --- a/test/e2e-cli/projects/scoped_basic/index.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function() { - const message = "this is a scoped basic project"; - console.log(message); - - return message; -}; diff --git a/test/e2e-cli/projects/scoped_basic/package.json b/test/e2e-cli/projects/scoped_basic/package.json deleted file mode 100644 index bfa5b01de..000000000 --- a/test/e2e-cli/projects/scoped_basic/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "@e2e-verdaccio/basic", - "version": "1.0.0", - "description": "this is a scoped basic project", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": ["verdaccio", "sample", "scoped"], - "dependencies": { - "verdaccio": "latest" - }, - "author": "Juan Picado ", - "license": "MIT" -} diff --git a/test/e2e-cli/setup/setup.ts b/test/e2e-cli/setup/setup.ts deleted file mode 100644 index 7cbbe3256..000000000 --- a/test/e2e-cli/setup/setup.ts +++ /dev/null @@ -1,30 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import os from 'os'; -import { yellow } from 'kleur'; -import { spawn } from 'child_process'; -import { npm } from '../utils/process'; -import * as __global from '../utils/global.js'; - -module.exports = async () => { - const tempRoot = fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), 'verdaccio-cli-e2e-')); - __global.addItem('dir-root', tempRoot); - console.log(yellow(`Add temp root folder: ${tempRoot}`)); - fs.copyFileSync( - path.join(__dirname, '../config/_bootstrap_verdaccio.yaml'), - path.join(tempRoot, 'verdaccio.yaml') - ); - // @ts-ignore - global.__namespace = __global; - console.log(`current directory: ${process.cwd()}`); - // @ts-ignore - global.registryProcess = spawn( - 'node', - [path.resolve('./bin/verdaccio'), '-c', './verdaccio.yaml'], - // @ts-ignore - { cwd: tempRoot, silence: false } - ); - - // publish current build version on local registry - await npm('publish', '--registry', 'http://localhost:4873'); -}; diff --git a/test/e2e-cli/setup/teardown.ts b/test/e2e-cli/setup/teardown.ts deleted file mode 100644 index 88e15cced..000000000 --- a/test/e2e-cli/setup/teardown.ts +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = async function () { - // @ts-ignore - global.registryProcess.kill(); -}; diff --git a/test/e2e-cli/setup/test_environment.ts b/test/e2e-cli/setup/test_environment.ts deleted file mode 100644 index ab47909a8..000000000 --- a/test/e2e-cli/setup/test_environment.ts +++ /dev/null @@ -1,29 +0,0 @@ -const fs = require('fs'); -import os from 'os'; -import path from 'path'; -import NodeEnvironment from 'jest-environment-node'; -const __global = require('../utils/global'); -// import { npm } from '../utils/process'; - -class E2ECliTestEnvironment extends NodeEnvironment { - constructor(config) { - super(config); - } - - async setup() { - const tempRoot = fs.mkdtempSync( - path.join(fs.realpathSync(os.tmpdir()), 'verdaccio-suite-test-') - ); - __global.addItem('dir-root', tempRoot); - this.global.__namespace = __global; - console.log(`current directory: ${process.cwd()}`); - } - - async teardown() {} - - runScript(script): any { - return super.runScript(script); - } -} - -export default E2ECliTestEnvironment; diff --git a/test/e2e-cli/test/__partials/npm_commands.ts b/test/e2e-cli/test/__partials/npm_commands.ts deleted file mode 100644 index b821777d1..000000000 --- a/test/e2e-cli/test/__partials/npm_commands.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { silentNpm } from '../../utils/process'; - -export function installVerdaccio(verdaccioInstall) { - return silentNpm( - 'install', - '--prefix', - verdaccioInstall, - 'verdaccio', - '--registry', - 'http://localhost:4873', - '--no-package-lock' - ); -} diff --git a/test/e2e-cli/test/core/info.spec.ts b/test/e2e-cli/test/core/info.spec.ts deleted file mode 100644 index deb91d9c9..000000000 --- a/test/e2e-cli/test/core/info.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -import path from 'path'; -import { runVerdaccio } from '../../utils/process'; -import { installVerdaccio } from '../__partials/npm_commands'; - -describe('verdaccio info', () => { - // @ts-ignore - const tempRootFolder = global.__namespace.getItem('dir-root'); - const verdaccioInstall = path.join(tempRootFolder, 'verdaccio-root-info'); - let registryProcess; - - beforeAll(async () => { - await installVerdaccio(verdaccioInstall); - }, 30000); - - test('should run verdaccio info command', async () => { - const pathVerdaccioModule = require.resolve('verdaccio/bin/verdaccio', { - paths: [verdaccioInstall] - }); - const hasMatch = await runVerdaccio( - pathVerdaccioModule, - verdaccioInstall, - ['--info'], - /Environment/ - ); - - expect(hasMatch.ok).toBeTruthy(); - }, 20000); - - afterAll(() => { - registryProcess.kill(); - }); -}); diff --git a/test/e2e-cli/test/core/listen.spec.ts b/test/e2e-cli/test/core/listen.spec.ts deleted file mode 100644 index 986e37ea7..000000000 --- a/test/e2e-cli/test/core/listen.spec.ts +++ /dev/null @@ -1,41 +0,0 @@ -import path from 'path'; -import fs from 'fs'; -import { installVerdaccio } from '../__partials/npm_commands'; -import { spawnRegistry } from '../../utils/registry'; -import { callRegistry } from '../../utils/web'; - -describe('npm install', () => { - jest.setTimeout(90000); - const port = '9012'; - - // @ts-ignore - const tempRootFolder = global.__namespace.getItem('dir-root'); - const verdaccioInstall = path.join(tempRootFolder, 'verdaccio-root-install'); - let registryProcess; - const configPath = path.join(tempRootFolder, 'verdaccio.yaml'); - - beforeAll(async () => { - await installVerdaccio(verdaccioInstall); - fs.copyFileSync(path.join(__dirname, '../../config/default.yaml'), configPath); - }); - - test('should match the listing port and load metadata', async () => { - const pathVerdaccioModule = require.resolve('verdaccio/bin/verdaccio', { - paths: [verdaccioInstall] - }); - - registryProcess = await spawnRegistry(pathVerdaccioModule, ['-c', configPath, '-l', port], { - cwd: verdaccioInstall, - silent: true - }); - - const body = await callRegistry(`http://localhost:${port}/verdaccio`); - const parsedBody = JSON.parse(body); - - expect(parsedBody.name).toEqual('verdaccio'); - }); - - afterAll(async () => { - registryProcess.kill(); - }); -}); diff --git a/test/e2e-cli/test/install/install.spec.ts b/test/e2e-cli/test/install/install.spec.ts deleted file mode 100644 index 8767d1d93..000000000 --- a/test/e2e-cli/test/install/install.spec.ts +++ /dev/null @@ -1,65 +0,0 @@ -import path from 'path'; -import fs from 'fs'; -import * as __global from '../../utils/global'; -import { spawnRegistry } from '../../utils/registry'; -import { execAndWaitForOutputToMatch } from '../../utils/process'; -import { installVerdaccio } from '../__partials/npm_commands'; -import { expectFileToExist } from '../../utils/expect'; - -describe('npm install', () => { - jest.setTimeout(90000); - const port = '9011'; - - // @ts-ignore - const tempRootFolder = global.__namespace.getItem('dir-root'); - const verdaccioInstall = path.join(tempRootFolder, 'verdaccio-root-install'); - let registryProcess; - - beforeAll(async () => { - await installVerdaccio(verdaccioInstall); - - const configPath = path.join(tempRootFolder, 'verdaccio.yaml'); - fs.copyFileSync(path.join(__dirname, '../../config/default.yaml'), configPath); - // @ts-ignore - global.__namespace = __global; - const pathVerdaccioModule = require.resolve('verdaccio/bin/verdaccio', { - paths: [verdaccioInstall] - }); - registryProcess = await spawnRegistry(pathVerdaccioModule, ['-c', configPath, '-l', port], { - cwd: verdaccioInstall, - silent: true - }); - }); - - test('should match on npm info verdaccio', async () => { - // FIXME: not the best match, looking for a better way to match the terminal output - const output = await execAndWaitForOutputToMatch( - 'npm', - ['info', 'verdaccio', '--registry'], - /A lightweight private npm proxy registry/ - ); - - expect(output.ok).toBeTruthy(); - }); - - test('should install jquery', async () => { - const testCwd = path.join(tempRootFolder, '_jquery_'); - await execAndWaitForOutputToMatch( - 'npm', - ['install', '--prefix', testCwd, 'jquery', '--registry', `http://localhost:${port}`], - /''/, - { - cwd: verdaccioInstall - } - ); - - const exist = await expectFileToExist( - path.join(testCwd, 'node_modules', 'jquery', 'package.json') - ); - expect(exist).toBeTruthy(); - }); - - afterAll(async () => { - registryProcess.kill(); - }); -}); diff --git a/test/e2e-cli/utils/expect.ts b/test/e2e-cli/utils/expect.ts deleted file mode 100644 index 306464960..000000000 --- a/test/e2e-cli/utils/expect.ts +++ /dev/null @@ -1,13 +0,0 @@ -import * as fs from 'fs-extra'; - -export function expectFileToExist(fileName: string) { - return new Promise((resolve, reject) => { - fs.exists(fileName, (exist) => { - if (exist) { - resolve(exist); - } else { - reject(new Error(`File ${fileName} was expected to exist but not found...`)); - } - }); - }); -} diff --git a/test/e2e-cli/utils/global.js b/test/e2e-cli/utils/global.js deleted file mode 100644 index fe593662c..000000000 --- a/test/e2e-cli/utils/global.js +++ /dev/null @@ -1,14 +0,0 @@ -const namespace = Object.create(null); - -exports.addItem = function(name, value) { - namespace[name] = value; -} - -exports.getItem = function(name) { - console.log("get-item", name, namespace); - if (!(name in namespace)) { - throw new Error("The item ".concat(name, " does exist in the namespace")); - } - - return namespace[name]; -} diff --git a/test/e2e-cli/utils/process.ts b/test/e2e-cli/utils/process.ts deleted file mode 100644 index c617ee19f..000000000 --- a/test/e2e-cli/utils/process.ts +++ /dev/null @@ -1,98 +0,0 @@ -import * as child_process from 'child_process'; -import { SpawnOptions } from 'child_process'; - -export async function _exec(options, cmd, args) { - let stdout = ''; - let stderr = ''; - const flags = []; - const cwd = process.cwd(); - const env = options.env; - console.log(`Running \`${cmd} ${args.map((x) => `"${x}"`).join(' ')}\`${flags}...`); - console.log(`CWD: ${cwd}`); - console.log(`ENV: ${JSON.stringify(env)}`); - const spawnOptions = { - cwd, - ...(env ? { env } : {}) - }; - - if (process.platform.startsWith('win')) { - args.unshift('/c', cmd); - cmd = 'cmd.exe'; - spawnOptions['stdio'] = 'pipe'; - } - - const childProcess = child_process.spawn(cmd, args, spawnOptions); - childProcess.stdout.on('data', (data) => { - stdout += data.toString('utf-8'); - if (options.silent) { - return; - } - - data - .toString('utf-8') - .split(/[\n\r]+/) - .filter((line) => line !== '') - .forEach((line) => console.log(' ' + line)); - }); - - childProcess.stderr.on('data', (data) => { - stderr += data.toString('utf-8'); - if (options.silent) { - return; - } - - data - .toString('utf-8') - .split(/[\n\r]+/) - .filter((line) => line !== '') - .forEach((line) => console.error(' ' + line)); - }); - - const err = new Error(`Running "${cmd} ${args.join(' ')}" returned error code `); - return new Promise((resolve, reject) => { - childProcess.on('exit', (error) => { - if (!error) { - resolve({ stdout, stderr }); - } else { - err.message += `${error}...\n\nSTDOUT:\n${stdout}\n\nSTDERR:\n${stderr}\n`; - reject(err); - } - }); - - if (options.waitForMatch) { - const match = options.waitForMatch; - childProcess.stdout.on('data', (data) => { - // console.log("-->data==>", data.toString(), data.toString().match(match)); - if (data.toString().match(match)) { - resolve({ ok: true, stdout, stderr }); - } - }); - childProcess.stderr.on('data', (data) => { - if (data.toString().match(match)) { - resolve({ stdout, stderr }); - } - }); - } - }); -} - -export function execAndWaitForOutputToMatch( - cmd: string, - args: string[], - match: RegExp, - spawnOptions: SpawnOptions = {} -): any { - return _exec({ waitForMatch: match, ...spawnOptions, silence: true }, cmd, args); -} - -export function npm(...args) { - return _exec({}, 'npm', args); -} - -export function runVerdaccio(cmd, installation, args, match: RegExp): any { - return _exec({ cwd: installation, silent: true, waitForMatch: match }, cmd, args); -} - -export function silentNpm(...args) { - return _exec({ silent: true }, 'npm', args); -} diff --git a/test/e2e-cli/utils/registry.ts b/test/e2e-cli/utils/registry.ts deleted file mode 100644 index dc4b1d39c..000000000 --- a/test/e2e-cli/utils/registry.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { fork } from 'child_process'; - -export function prepareEnvironment(rootFolder: string, folderName: string) {} - -export function spawnRegistry(verdaccioPath: string, args: string[], childOptions) { - return new Promise((resolve, reject) => { - let _childOptions = { silent: true, ...childOptions }; - - const childFork = fork(verdaccioPath, args, _childOptions); - - childFork.on('message', (msg) => { - if ('verdaccio_started' in msg) { - resolve(childFork); - } - }); - - childFork.on('error', (err) => reject([err])); - childFork.on('disconnect', (err) => reject([err])); - childFork.on('exit', (err) => reject([err])); - }); -} diff --git a/test/e2e-cli/utils/utils.ts b/test/e2e-cli/utils/utils.ts deleted file mode 100644 index e648a3bba..000000000 --- a/test/e2e-cli/utils/utils.ts +++ /dev/null @@ -1,9 +0,0 @@ -import path from 'path'; -import fs from 'fs'; - -export function copyConfigFile(rootFolder, configTemplate): string { - const configPath = path.join(rootFolder, 'verdaccio.yaml'); - fs.copyFileSync(path.join(__dirname, configTemplate), configPath); - - return configPath; -} diff --git a/test/e2e-cli/utils/web.ts b/test/e2e-cli/utils/web.ts deleted file mode 100644 index 3d300e5fe..000000000 --- a/test/e2e-cli/utils/web.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { IncomingMessage } from 'http'; -import request from 'request'; - -export function callRegistry(url: string): Promise { - return new Promise((resolve, reject) => { - let options = { - url: url, - headers: { Accept: 'application/json' } - }; - // @ts-ignore - request(options, (error: any, response: IncomingMessage, body: string) => { - if (error) { - reject(error); - // @ts-ignore - } else if (response.statusCode >= 400) { - reject(new Error(`Requesting "${url}" returned status code ${response.statusCode}.`)); - } else { - resolve(body); - } - }); - }); -} diff --git a/test/e2e/.eslintrc b/test/e2e/.eslintrc deleted file mode 100644 index cbfb89d2f..000000000 --- a/test/e2e/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "rules": { - "@typescript-eslint/no-var-requires": 0, - "@typescript-eslint/explicit-member-accessibility": 0 - } -} diff --git a/test/e2e/config/config-protected-e2e.yaml b/test/e2e/config/config-protected-e2e.yaml deleted file mode 100644 index 9ec9b06f1..000000000 --- a/test/e2e/config/config-protected-e2e.yaml +++ /dev/null @@ -1,27 +0,0 @@ -web: - enable: true - title: verdaccio-server-protected-e2e - -store: - memory: - limit: 10 - -auth: - auth-memory: - users: - test: - name: test - password: test - -logs: - - { type: stdout, format: pretty, level: warn } - -packages: - 'protected-*': - access: $authenticated - publish: $authenticated - -listen: 0.0.0.0:55552 - -# expose internal methods -_debug: true diff --git a/test/e2e/config/config-scoped-e2e.yaml b/test/e2e/config/config-scoped-e2e.yaml deleted file mode 100644 index d9f59dfd8..000000000 --- a/test/e2e/config/config-scoped-e2e.yaml +++ /dev/null @@ -1,30 +0,0 @@ -web: - enable: true - title: verdaccio-server-e2e - -store: - memory: - limit: 10 - -auth: - auth-memory: - users: - test: - name: test - password: test - -logs: - - { type: stdout, format: pretty, level: warn } - -packages: - '@*/*': - access: $all - publish: $all - '**': - access: $all - publish: $authenticated - -listen: 0.0.0.0:55558 - -# expose internal methods -_debug: true diff --git a/test/e2e/e2e.spec.js b/test/e2e/e2e.spec.js deleted file mode 100644 index 84bd75313..000000000 --- a/test/e2e/e2e.spec.js +++ /dev/null @@ -1,208 +0,0 @@ -const protectedPackageMetadata = require('./partials/pkg-protected'); -const scopedPackageMetadata = require('./partials/pkg-scoped'); - -describe('/ (Verdaccio Page)', () => { - let page; - // this might be increased based on the delays included in all test - jest.setTimeout(20000); - - const clickElement = async function(selector, options = { delay: 100 }) { - const button = await page.$(selector); - await button.focus(); - await button.click(options); - }; - - const evaluateSignIn = async function(matchText = 'Login') { - const text = await page.evaluate(() => { - return document.querySelector('button[data-testid="header--button-login"]').textContent; - }); - - expect(text).toMatch(matchText); - }; - - const getPackages = async function() { - return await page.$$('.package-title'); - }; - - const logIn = async function() { - await clickElement('button[data-testid="header--button-login"]'); - // we fill the sign in form - const signInDialog = await page.$('#login--dialog'); - const userInput = await signInDialog.$('#login--dialog-username'); - expect(userInput).not.toBeNull(); - const passInput = await signInDialog.$('#login--dialog-password'); - expect(passInput).not.toBeNull(); - await userInput.type('test', { delay: 100 }); - await passInput.type('test', { delay: 100 }); - await passInput.dispose(); - // click on log in - const loginButton = await page.$('#login--dialog-button-submit'); - expect(loginButton).toBeDefined(); - await loginButton.focus(); - await loginButton.click({ delay: 100 }); - await page.waitFor(500); - }; - - beforeAll(async () => { - page = await global.__BROWSER__.newPage(); - await page.goto('http://0.0.0.0:55558'); - page.on('console', msg => console.log('PAGE LOG:', msg.text())); - }); - - afterAll(async () => { - await page.close(); - }); - - test('should display title', async () => { - const text = await page.title(); - await page.waitFor(1000); - - expect(text).toContain('verdaccio-server-e2e'); - }); - // - - test('should match title with no packages published', async () => { - const text = await page.evaluate(() => document.querySelector('#help-card__title').textContent); - expect(text).toMatch('No Package Published Yet.'); - }); - // - - test('should match title with first step', async () => { - const text = await page.evaluate(() => document.querySelector('#help-card').textContent); - expect(text).toContain('npm adduser --registry http://0.0.0.0:55558'); - }); - // - - test('should match title with second step', async () => { - const text = await page.evaluate(() => document.querySelector('#help-card').textContent); - expect(text).toContain('npm publish --registry http://0.0.0.0:55558'); - }); - // - - test('should match button Login to sign in', async () => { - await evaluateSignIn(); - }); - // - - test('should click on sign in button', async () => { - const signInButton = await page.$('button[data-testid="header--button-login"]'); - await signInButton.click(); - await page.waitFor(1000); - const signInDialog = await page.$('#login--dialog'); - expect(signInDialog).not.toBeNull(); - const closeButton = await page.$('button[data-testid="close-login-dialog-button"]'); - await closeButton.click(); - await page.waitFor(500); - }); - // - - test('should log in an user', async () => { - // we open the dialog - await logIn(); - // check whether user is logged - const buttonLogout = await page.$('#header--button-logout'); - expect(buttonLogout).toBeDefined(); - }); - - test('should logout an user', async () => { - // we assume the user is logged already - await clickElement('#header--button-account', { delay: 500 }); - await page.waitFor(1000); - await clickElement('#header--button-logout > span', { delay: 500 }); - await page.waitFor(1000); - await evaluateSignIn(); - }); - // - - test('should check registry info dialog', async () => { - const registryInfoButton = await page.$('#header--button-registryInfo'); - registryInfoButton.click(); - await page.waitFor(500); - - const registryInfoDialog = await page.$('#registryInfo--dialog-container'); - expect(registryInfoDialog).not.toBeNull(); - - const closeButton = await page.$('#registryInfo--dialog-close'); - await closeButton.click(); - }); - // - - test('should publish a package', async () => { - await global.__SERVER__.putPackage(scopedPackageMetadata.name, scopedPackageMetadata); - await page.waitFor(1000); - await page.reload(); - await page.waitFor(1000); - const packagesList = await getPackages(); - expect(packagesList).toHaveLength(1); - }); - // - - test('should navigate to the package detail', async () => { - const packagesList = await getPackages(); - // console.log("-->packagesList:", packagesList); - const firstPackage = packagesList[0]; - await firstPackage.click({ delay: 200 }); - await page.waitFor(1000); - const readmeText = await page.evaluate(() => document.querySelector('.markdown-body').textContent); - - expect(readmeText).toMatch('test'); - }); - - test('should contains last sync information', async () => { - const versionList = await page.$$('.sidebar-info .detail-info'); - expect(versionList).toHaveLength(1); - }); - // - - test('should display dependencies tab', async () => { - const dependenciesTab = await page.$$('#dependencies-tab'); - expect(dependenciesTab).toHaveLength(1); - await dependenciesTab[0].click({ delay: 200 }); - await page.waitFor(1000); - const tags = await page.$$('.dep-tag'); - const tag = tags[0]; - const label = await page.evaluate(el => el.innerText, tag); - expect(label).toMatch('verdaccio@'); - }); - - test('should display version tab', async () => { - const versionsTab = await page.$$('#versions-tab'); - expect(versionsTab).toHaveLength(1); - await versionsTab[0].click({ delay: 200 }); - await page.waitFor(1000); - const versionItems = await page.$$('.version-item'); - expect(versionItems).toHaveLength(2); - }); - - test('should display uplinks tab', async () => { - const upLinksTab = await page.$$('#uplinks-tab'); - expect(upLinksTab).toHaveLength(1); - await upLinksTab[0].click({ delay: 200 }); - await page.waitFor(1000); - }); - - test('should display readme tab', async () => { - const readmeTab = await page.$$('#readme-tab'); - expect(readmeTab).toHaveLength(1); - await readmeTab[0].click({ delay: 200 }); - await page.waitFor(1000); - }); - - test('should publish a protected package', async () => { - await page.goto('http://0.0.0.0:55552'); - await page.waitFor(500); - await global.__SERVER_PROTECTED__.putPackage(protectedPackageMetadata.name, protectedPackageMetadata); - await page.waitFor(500); - await page.reload(); - await page.waitFor(500); - const text = await page.evaluate(() => document.querySelector('#help-card__title').textContent); - expect(text).toMatch('No Package Published Yet'); - }); - - test('should go to 404 page', async () => { - await page.goto('http://0.0.0.0:55552/-/web/detail/@verdaccio/not-found'); - await page.waitFor(500); - const text = await page.evaluate(() => document.querySelector('.not-found-text').textContent); - expect(text).toMatch("Sorry, we couldn't find it..."); - }); -}); diff --git a/test/e2e/partials/pkg-protected.js b/test/e2e/partials/pkg-protected.js deleted file mode 100644 index fb1d1b880..000000000 --- a/test/e2e/partials/pkg-protected.js +++ /dev/null @@ -1,54 +0,0 @@ -const json = { - "_id": "protected-pkg", - "name": "protected-pkg", - "description": "", - "dist-tags": { - "latest": "5.0.5" - }, - "versions": { - "5.0.5": { - "name": "protected-pkg", - "version": "5.0.5", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": { - "name": "User NPM", - "email": "user@domain.com" - }, - "license": "ISC", - "dependencies": { - "verdaccio": "^2.7.2" - }, - "readme": "# test", - "readmeFilename": "README.md", - "_id": "protected-pkg@5.0.5", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-6gHiERpiDgtb3hjqpQH5\/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==", - "shasum": "2c03764f651a9f016ca0b7620421457b619151b9", - "tarball": "http:\/\/localhost:5555\/protected-pkg\/-\/protected-pkg-5.0.5.tgz" - } - } - }, - "readme": "# test", - "_attachments": { - "protected-pkg-5.0.5.tgz": { - "content_type": "application\/octet-stream", - // eslint-disable-next-line max-len - "data": "H4sIAAAAAAAAE+2W32vbMBDH85y\/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo\/\/79KPeQsnIw5KUDX\/9IOvurLuz\/DHSjK\/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF\/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI\/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS\/pLQe+D+FIv\/agIWI6GX66kFuIhT+1gDjrp\/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0\/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi\/IHpU9fz3\/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6\/f88f\/Pu47zomiPk2Lv\/dOv8h+P\/34\/D\/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=", - "length": 512 - } - } -} - -module.exports = json; diff --git a/test/e2e/partials/pkg-scoped.js b/test/e2e/partials/pkg-scoped.js deleted file mode 100644 index 858cff451..000000000 --- a/test/e2e/partials/pkg-scoped.js +++ /dev/null @@ -1,54 +0,0 @@ -const json = { - "_id": "@scope\/pk1-test", - "name": "@scope\/pk1-test", - "description": "", - "dist-tags": { - "latest": "1.0.6" - }, - "versions": { - "1.0.6": { - "name": "@scope\/pk1-test", - "version": "1.0.6", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - - ], - "author": { - "name": "User NPM", - "email": "user@domain.com" - }, - "license": "ISC", - "dependencies": { - "verdaccio": "^2.7.2" - }, - "readme": "# test", - "readmeFilename": "README.md", - "_id": "@scope\/pk1-test@1.0.6", - "_npmVersion": "5.5.1", - "_nodeVersion": "8.7.0", - "_npmUser": { - - }, - "dist": { - "integrity": "sha512-6gHiERpiDgtb3hjqpQH5\/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cmE6dUBf+XoPoH4g==", - "shasum": "2c03764f651a9f016ca0b7620421457b619151b9", - "tarball": "http:\/\/localhost:5555\/@scope\/pk1-test\/-\/@scope\/pk1-test-1.0.6.tgz" - } - } - }, - "readme": "# test", - "_attachments": { - "@scope\/pk1-test-1.0.6.tgz": { - "content_type": "application\/octet-stream", - // eslint-disable-next-line max-len - "data": "H4sIAAAAAAAAE+2W32vbMBDH85y\/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo\/\/79KPeQsnIw5KUDX\/9IOvurLuz\/DHSjK\/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1aW8eML+Vv10m9oF\/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0ScCdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI\/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yoEHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS\/pLQe+D+FIv\/agIWI6GX66kFuIhT+1gDjrp\/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0\/jWiAK8OcMjt8MW3OlfQppcuhhQ6k+2OgkK2Q8DssFPi\/IHpU9fz3\/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6\/f88f\/Pu47zomiPk2Lv\/dOv8h+P\/34\/D\/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=", - "length": 512 - } - } -} - -module.exports = json; diff --git a/test/e2e/pre-setup.js b/test/e2e/pre-setup.js deleted file mode 100644 index 1a5055183..000000000 --- a/test/e2e/pre-setup.js +++ /dev/null @@ -1,4 +0,0 @@ -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -module.exports = require('./setup'); diff --git a/test/e2e/puppeteer_environment.js b/test/e2e/puppeteer_environment.js deleted file mode 100644 index e0a506cba..000000000 --- a/test/e2e/puppeteer_environment.js +++ /dev/null @@ -1,60 +0,0 @@ -/* eslint new-cap: 0 */ - -const { yellow } = require('kleur'); -const NodeEnvironment = require('jest-environment-node'); -const puppeteer = require('puppeteer'); -const fs = require('fs'); -const os = require('os'); -const path = require('path'); -const {VerdaccioConfig} = require("../lib/verdaccio-server"); -const VerdaccioProcess = require("../lib/server_process"); -const Server = require("../lib/server"); - - -const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup'); - -class PuppeteerEnvironment extends NodeEnvironment { - constructor(config) { - super(config) - } - - async setup() { - const config1 = new VerdaccioConfig(path.join(__dirname, './store-e2e'), - path.join(__dirname, './config/config-scoped-e2e.yaml'), 'http://0.0.0.0:55558/', 55558); - const config2 = new VerdaccioConfig(path.join(__dirname, './store-e2e'), - path.join(__dirname, './config/config-protected-e2e.yaml'), 'http://0.0.0.0:55552/', 55552); - const server1 = new Server.default(config1.domainPath); - const server2 = new Server.default(config2.domainPath); - const process1 = new VerdaccioProcess.default(config1, server1, false); - const process2 = new VerdaccioProcess.default(config2, server2, false); - const fork = await process1.init(); - const fork2 = await process2.init(); - this.global.__VERDACCIO_E2E__ = fork[0]; - this.global.__VERDACCIO__PROTECTED_E2E__ = fork2[0]; - - console.log(yellow('Setup Test Environment.')); - await super.setup(); - const wsEndpoint = fs.readFileSync(path.join(DIR, 'wsEndpoint'), 'utf8'); - if (!wsEndpoint) { - throw new Error('wsEndpoint not found') - } - this.global.__SERVER__ = server1; - this.global.__SERVER_PROTECTED__ = server2; - this.global.__BROWSER__ = await puppeteer.connect({ - browserWSEndpoint: wsEndpoint, - }) - } - - async teardown() { - console.log(yellow('Teardown Test Environment.')); - await super.teardown(); - this.global.__VERDACCIO_E2E__.stop(); - this.global.__VERDACCIO__PROTECTED_E2E__.stop(); - } - - runScript(script) { - return super.runScript(script); - } -} - -module.exports = PuppeteerEnvironment; diff --git a/test/e2e/setup.js b/test/e2e/setup.js deleted file mode 100644 index 5fd4d283e..000000000 --- a/test/e2e/setup.js +++ /dev/null @@ -1,16 +0,0 @@ -const { green } = require('kleur'); -const puppeteer = require('puppeteer'); -const fs = require('fs'); -const mkdirp = require('mkdirp'); -const os = require('os'); -const path = require('path'); - -const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup'); - -module.exports = async function() { - console.log(green('Setup Puppeteer')); - const browser = await puppeteer.launch({ headless: true, /* slowMo: 300 */ args: ['--no-sandbox'] }); - global.__BROWSER__ = browser; - mkdirp.sync(DIR); - fs.writeFileSync(path.join(DIR, 'wsEndpoint'), browser.wsEndpoint()); -}; diff --git a/test/e2e/teardown.js b/test/e2e/teardown.js deleted file mode 100644 index defef307f..000000000 --- a/test/e2e/teardown.js +++ /dev/null @@ -1,12 +0,0 @@ -const { green } = require('kleur'); -const rimraf = require('rimraf'); -const os = require('os'); -const path = require('path'); - -const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup'); - -module.exports = async function() { - console.log(green('Teardown Puppeteer')); - await global.__BROWSER__.close(); - rimraf.sync(DIR) -}; diff --git a/test/functional/adduser/adduser.js b/test/functional/adduser/adduser.js deleted file mode 100644 index ce9adea42..000000000 --- a/test/functional/adduser/adduser.js +++ /dev/null @@ -1,28 +0,0 @@ -import {API_ERROR, HTTP_STATUS} from "../../../src/lib/constants"; - -export default function(server) { - describe('npm adduser', () => { - const user = String(Math.random()); - const pass = String(Math.random()); - - beforeAll(function() { - return server.auth(user, pass) - .status(HTTP_STATUS.CREATED) - .body_ok(/user .* created/); - }); - - test('should create new user', () => {}); - - test('should log in', () => { - return server.auth(user, pass) - .status(HTTP_STATUS.CREATED) - .body_ok(/you are authenticated as/); - }); - - test('should not register more users', () => { - return server.auth(String(Math.random()), String(Math.random())) - .status(HTTP_STATUS.CONFLICT) - .body_error(API_ERROR.MAX_USERS_REACHED); - }); - }); -} diff --git a/test/functional/adduser/logout.js b/test/functional/adduser/logout.js deleted file mode 100644 index 89f70ad99..000000000 --- a/test/functional/adduser/logout.js +++ /dev/null @@ -1,12 +0,0 @@ -import {HTTP_STATUS} from "../../../src/lib/constants"; - -export default function(server) { - - describe('logout', () => { - test('should log out', () => { - return server.logout('some-token') - .status(HTTP_STATUS.OK) - .body_ok(/Logged out/); - }); - }); -} diff --git a/test/functional/basic/basic.ts b/test/functional/basic/basic.ts deleted file mode 100644 index 7fa413ebd..000000000 --- a/test/functional/basic/basic.ts +++ /dev/null @@ -1,219 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { createTarballHash } from '../../../src/lib/crypto-utils'; -import { HTTP_STATUS, DIST_TAGS } from '../../../src/lib/constants'; -import { - CREDENTIALS, - DOMAIN_SERVERS, - PORT_SERVER_1, - PORT_SERVER_2, - TARBALL -} from '../config.functional'; -import whoIam from './whoIam'; -import ping from './ping'; -import fixturePkg from '../fixtures/package'; - -function readfile(folderPath) { - return fs.readFileSync(path.join(__dirname, '/', folderPath)); -} - -function getPackage(name) { - return fixturePkg(name); -} - -export default function (server: any, server2: any) { - describe('basic test endpoints', () => { - const PKG_NAME = 'testpkg'; - const PKG_VERSION = '0.0.1'; - - beforeAll(function () { - return server - .auth(CREDENTIALS.user, CREDENTIALS.password) - .status(HTTP_STATUS.CREATED) - .body_ok(/'test'/); - }); - - whoIam(server); - ping(server); - - describe('handling packages', () => { - beforeAll(function () { - return server.addPackage(PKG_NAME); - }); - - beforeAll(function () { - return server.addPackage('testpkg-single-tarball'); - }); - - test('creating new package', () => { - /* test for before() */ - }); - - test('downloading non-existent tarball', () => { - return server - .getTarball(PKG_NAME, TARBALL) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such file/); - }); - - test('uploading incomplete tarball', () => { - return server.putTarballIncomplete( - PKG_NAME, - 'blahblah1', - readfile('../fixtures/binary'), - 3000 - ); - }); - - describe('publishing package', () => { - beforeAll(function () { - return server - .putTarball(PKG_NAME, TARBALL, readfile('../fixtures/binary')) - .status(HTTP_STATUS.CREATED) - .body_ok(/.*/); - }); - - beforeAll(function () { - return server - .putTarball('testpkg-single-tarball', 'single', readfile('../fixtures/binary')) - .status(HTTP_STATUS.CREATED) - .body_ok(/.*/); - }); - - afterAll(function () { - return server.removeTarball(PKG_NAME).status(HTTP_STATUS.CREATED); - }); - - test('remove a tarball', () => { - /* test for before() */ - }); - - test('uploading new tarball', () => { - /* test for after() */ - }); - - test('remove non existing tarball', () => { - return server.removeTarball('testpkg404').status(HTTP_STATUS.NOT_FOUND); - }); - - test('remove non existing single tarball', () => { - return server.removeSingleTarball('', 'fakeFile').status(HTTP_STATUS.NOT_FOUND); - }); - - // testexp-incomplete - - test('remove existing single tarball', () => { - return server - .removeSingleTarball('testpkg-single-tarball', 'single') - .status(HTTP_STATUS.CREATED); - }); - - // testexp-incomplete - - test('downloading newly created tarball', () => { - return server - .getTarball(PKG_NAME, TARBALL) - .status(200) - .then(function (body) { - expect(body).toEqual(readfile('../fixtures/binary')); - }); - }); - - test('uploading new package version (bad sha)', () => { - let pkg = getPackage(PKG_NAME); - pkg.dist.shasum = createTarballHash().update('fake').digest('hex'); - - return server - .putVersion(PKG_NAME, PKG_VERSION, pkg) - .status(HTTP_STATUS.BAD_REQUEST) - .body_error(/shasum error/); - }); - - describe('publishing version', () => { - beforeAll(function () { - const pkg = getPackage(PKG_NAME); - - pkg.dist.shasum = createTarballHash() - .update(readfile('../fixtures/binary')) - .digest('hex'); - return server - .putVersion(PKG_NAME, PKG_VERSION, pkg) - .status(HTTP_STATUS.CREATED) - .body_ok(/published/); - }); - - describe('should download a package', () => { - beforeAll(function () { - return server - .auth(CREDENTIALS.user, CREDENTIALS.password) - .status(HTTP_STATUS.CREATED) - .body_ok(new RegExp(CREDENTIALS.user)); - }); - - test('should download a newly created package from server1', () => { - return server - .getPackage(PKG_NAME) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body.name).toEqual(PKG_NAME); - expect(body.versions[PKG_VERSION].name).toEqual(PKG_NAME); - expect(body.versions[PKG_VERSION].dist.tarball).toEqual( - `http://${DOMAIN_SERVERS}:${PORT_SERVER_1}/${PKG_NAME}/-/${TARBALL}` - ); - expect(body[DIST_TAGS]).toEqual({ - latest: PKG_VERSION - }); - }); - }); - - test('should downloading a package from server2', () => { - return server2 - .getPackage(PKG_NAME) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body.name).toEqual(PKG_NAME); - expect(body.versions[PKG_VERSION].name).toEqual(PKG_NAME); - expect(body.versions[PKG_VERSION].dist.tarball).toEqual( - `http://${DOMAIN_SERVERS}:${PORT_SERVER_2}/${PKG_NAME}/-/${TARBALL}` - ); - expect(body[DIST_TAGS]).toEqual({ - latest: PKG_VERSION - }); - }); - }); - }); - }); - }); - }); - - describe('handle failures on endpoints', () => { - test('should fails trying to fetch non-existent package', () => { - return server - .getPackage(PKG_NAME) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such package/); - }); - - test('should fails on publish a version for non existing package', () => { - return server - .putVersion('testpxg', PKG_VERSION, getPackage('testpxg')) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such package/); - }); - - test('should be a package not found', () => { - return server - .putTarball('nonExistingPackage', TARBALL, readfile('../fixtures/binary')) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(/no such/); - }); - - test('should fails on publish package in a bad uplink', () => { - return server - .putPackage('baduplink', getPackage('baduplink')) - .status(HTTP_STATUS.SERVICE_UNAVAILABLE) - .body_error(/one of the uplinks is down, refuse to publish/); - }); - }); - }); -} diff --git a/test/functional/basic/ping.ts b/test/functional/basic/ping.ts deleted file mode 100644 index 02a0ae2d1..000000000 --- a/test/functional/basic/ping.ts +++ /dev/null @@ -1,10 +0,0 @@ -import _ from 'lodash'; - -export default function (server) { - test('ping', () => { - return server.ping().then(function (data) { - // it's always an empty object - expect(_.isObject(data)).toBeDefined(); - }); - }); -} diff --git a/test/functional/basic/whoIam.ts b/test/functional/basic/whoIam.ts deleted file mode 100644 index aafd82a95..000000000 --- a/test/functional/basic/whoIam.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { CREDENTIALS } from '../config.functional'; - -export default function (server) { - test('who am I?', () => { - return server.whoami().then(function (username) { - expect(username).toMatch(CREDENTIALS.user); - }); - }); -} diff --git a/test/functional/config.functional.js b/test/functional/config.functional.js deleted file mode 100644 index 5fc094358..000000000 --- a/test/functional/config.functional.js +++ /dev/null @@ -1,14 +0,0 @@ -import {DOMAIN_SERVERS as localhost} from '../test.conf'; - -export const CREDENTIALS = { - user: 'test', - password: 'test' -}; - -export const TARBALL = 'tarball-blahblah-file.name'; -export const PORT_SERVER_APP = '55550'; -export const PORT_SERVER_1 = '55551'; -export const PORT_SERVER_2 = '55552'; -export const PORT_SERVER_3 = '55553'; - -export const DOMAIN_SERVERS = localhost; diff --git a/test/functional/fixtures/binary b/test/functional/fixtures/binary deleted file mode 100644 index c86626638..000000000 Binary files a/test/functional/fixtures/binary and /dev/null differ diff --git a/test/functional/fixtures/package.ts b/test/functional/fixtures/package.ts deleted file mode 100644 index 11abd027d..000000000 --- a/test/functional/fixtures/package.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { DOMAIN_SERVERS, PORT_SERVER_1, TARBALL } from '../config.functional'; - -export default function ( - name, - version = '0.0.0', - port = PORT_SERVER_1, - domain = `http://${DOMAIN_SERVERS}:${port}`, - fileName = TARBALL, - readme = 'this is a readme' -): any { - return { - name, - version, - readme, - dist: { - shasum: 'fake', - tarball: `${domain}/${encodeURIComponent(name)}/-/${fileName}` - } - }; -} diff --git a/test/functional/fixtures/plugins/middlewares.es6.js b/test/functional/fixtures/plugins/middlewares.es6.js deleted file mode 100644 index 0d17e46a3..000000000 --- a/test/functional/fixtures/plugins/middlewares.es6.js +++ /dev/null @@ -1,56 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-member-accessibility */ - -/** - * Original plugin in ES6 - * - * class PluginES6 { - - constructor (config, stuff) { - this._config = config; - } - - register_middlewares(app, auth, storage) { - const {message} = this._config; - - app.get('/test/route/es6', function (req, res, next) { - res.status(200); - - return next({ok: message}) - }); - } - -} - - export default PluginES6; - - */ - -// this file has been transpiled with babel.js - -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -class PluginES6 { - - constructor(config, stuff) { - this._config = config; - this._logger = stuff.logger; - } - - register_middlewares(app, /* auth, storage */) { - const message = this._config.message; - - - app.get('/test/route/es6', function (req, res, next) { - res.status(200); - - return next({ ok: message }); - }); - } - -} - -exports.default = PluginES6; - diff --git a/test/functional/fixtures/plugins/middlewares.js b/test/functional/fixtures/plugins/middlewares.js deleted file mode 100644 index cdeee39ce..000000000 --- a/test/functional/fixtures/plugins/middlewares.js +++ /dev/null @@ -1,19 +0,0 @@ -function Plugin(config, pluginOptions) { - const self = Object.create(Plugin.prototype); - - self._config = config; - self._logger = pluginOptions.logger; - return self; -} - -Plugin.prototype.register_middlewares = function (app) { - - const {message} = this._config; - app.get('/test/route', function (req, res, next) { - res.status(200); - - return next({ ok: message }) - }); -}; - -module.exports = Plugin; diff --git a/test/functional/fixtures/plugins/middlewares.uplink.js b/test/functional/fixtures/plugins/middlewares.uplink.js deleted file mode 100644 index 24381eaf9..000000000 --- a/test/functional/fixtures/plugins/middlewares.uplink.js +++ /dev/null @@ -1,27 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -const nock = require('nock'); - -function Plugin(config) { - const self = Object.create(Plugin.prototype); - self._config = config; - return self; -} - -Plugin.prototype.register_middlewares = function (app) { - - app.get('/test-uplink-timeout-*', function (req, res, next) { - // https://github.com/nock/nock#readme - nock('http://localhost:55552') - .get(req.path) - // note: we use 50s due hardware reasons small threshold is not enough to make fails - // 50s is greater than the default 30s connection timeout - .socketDelay(50000) - // http-status 200 OK - .reply(200); - - next(); - }); - -}; - -module.exports = Plugin; diff --git a/test/functional/fixtures/publish.json5 b/test/functional/fixtures/publish.json5 deleted file mode 100644 index 9f15383d1..000000000 --- a/test/functional/fixtures/publish.json5 +++ /dev/null @@ -1,27 +0,0 @@ -{ "_id": "__NAME__", - "name": "__NAME__", - "dist-tags": { "latest": "__VERSION__" }, - "versions": - { "__VERSION__": - { "name": "__NAME__", - "version": "__VERSION__", - "description": "", - "main": "index.js", - "author": "", - "license": "ISC", - "readme": "ERROR: No README data found!", - "_id": "__NAME__@__VERSION__", - "dist": - { "shasum": "071c8dd9fd775bf3ebc0d5108431110f5f857ce3", - "tarball": "http://localhost:4873/__NAME__/-/__NAME__-__VERSION__.tgz" }, - "_from": ".", - "_npmVersion": "1.3.21", - "_npmUser": { "name": "username", "email": "user@domain.com" }, - "maintainers": [ { "name": "username", "email": "user@domain.com" } ] } }, - "readme": "ERROR: No README data found!", - "maintainers": [ { "name": "username", "email": "user@domain.com" } ], - "_attachments": - { "__NAME__-__VERSION__.tgz": - { "content_type": "application/octet-stream", - "data": "H4sIAAAAAAAAA+2SP2vDMBDFPftTHDdkah3Zim3IGjJ0zppFyNdE+SMJSSmBkO8eWS6mQ7cGSsC/5cG9p7uTkBXyKHY0t4MWB2909mQYY81iAVHLtmY/NcGrCrKyquq25Q1vm4yVnPEm+s9e5DcuPggXV/lrn+EuMOqLcMsBUIsz4RIwkA/v9rjDt1iN4Bc5r4zuPVawok4GduSlUzZ8O2P6LFQqKN3RNf6kIT1kfTRuKZem9DGSewNbXDtn3BK0gd4Ab0mqT0XdFmE2A7qqACXGk/fUTVzC3rhxLJ6UJO3T9h+bFeb3/L9fdGJiYuI1eACk8AYWAAgAAA==", - "length": 250 } } } diff --git a/test/functional/fixtures/tags.json b/test/functional/fixtures/tags.json deleted file mode 100644 index 4930e215e..000000000 --- a/test/functional/fixtures/tags.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "__NAME__", - "versions": { - "0.1.0": { - "name": "__NAME__", - "version": "0.1.0", - "dist": { - "shasum": "fake", - "tarball": "http://localhost:55551/__NAME__/-/blahblah" - } - }, - "0.1.1alpha": { - "name": "__NAME__", - "version": "0.1.1alpha", - "dist": { - "shasum": "fake", - "tarball": "http://localhost:55551/__NAME__/-/blahblah" - } - }, - "0.1.2": { - "name": "__NAME__", - "version": "0.1.2", - "dist": { - "shasum": "fake", - "tarball": "http://localhost:55551/__NAME__/-/blahblah" - } - }, - "0.1.3alpha": { - "name": "__NAME__", - "version": "0.1.3alpha", - "dist": { - "shasum": "fake", - "tarball": "http://localhost:55551/__NAME__/-/blahblah" - } - }, - "1.1.0": { - "name": "__NAME__", - "version": "1.1.0", - "dist": { - "shasum": "fake", - "tarball": "http://localhost:55551/__NAME__/-/blahblah" - } - } - }, - "dist-tags": { - "latest": "1.1.0" - } -} diff --git a/test/functional/index.spec.ts b/test/functional/index.spec.ts deleted file mode 100644 index f1c0d8e8c..000000000 --- a/test/functional/index.spec.ts +++ /dev/null @@ -1,76 +0,0 @@ -// we need this for notifications -import { setup } from '../../src/lib/logger'; - -setup([]); - -import { IServerBridge } from '../types'; - -import basic from './basic/basic'; -import packageAccess from './package/access'; -import packageGzip from './package/gzip'; -import packageScoped from './package/scoped'; -import tags from './tags/tags'; -import distTagsMerge from './tags/dist-tags-merge'; -import addtag from './tags/addtag'; -import adduser from './adduser/adduser'; -import logout from './adduser/logout'; -import notify from './notifications/notify'; -import incomplete from './sanity/incomplete'; -import mirror from './sanity/mirror'; -import readme from './readme/readme'; -import gh29 from './scenarios/gh29'; -import nullstorage from './sanity/nullstorage'; -import simpleSearch from './search/simple.search'; -import racycrash from './sanity/racycrash'; -import security from './sanity/security'; -import race from './performance/race'; -import pluginsAuth from './plugins/auth'; -import middleware from './plugins/middleware'; -import upLinkCache from './uplinks/cache'; -import uplinkTimeout from './uplinks/timeout'; - -describe('functional test verdaccio', function () { - jest.setTimeout(20000); - // @ts-ignore - const server1: IServerBridge = global.__SERVERS__[0]; - // @ts-ignore - const server2: IServerBridge = global.__SERVERS__[1]; - // @ts-ignore - const server3: IServerBridge = global.__SERVERS__[2]; - // @ts-ignore - const app = global.__WEB_SERVER__.app; - - // list of test - // note: order of the following calls is important, the reason is legacy code. - packageAccess(server1); - gh29(server1, server2); - tags(server1, app); - packageGzip(server1, app); - incomplete(server1, app); - mirror(server1, server2); - distTagsMerge(server1, server2, server3); - readme(server1, server2); - nullstorage(server1, server2); - middleware(server2); - race(server1); - racycrash(server1, app); - packageScoped(server1, server2); - security(server1); - addtag(server1); - pluginsAuth(server2); - notify(app); - uplinkTimeout(server1, server2, server3); - // requires packages published to server1/server2 - upLinkCache(server1, server2, server3); - adduser(server1); - logout(server1); - basic(server1, server2); - simpleSearch(server1, server2, app); -}); - -process.on('unhandledRejection', function (err) { - console.error('unhandledRejection', err); - process.nextTick(function () { - throw err; - }); -}); diff --git a/test/functional/lib/environment.ts b/test/functional/lib/environment.ts deleted file mode 100644 index b1ad51a9f..000000000 --- a/test/functional/lib/environment.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { yellow, green, blue, magenta } from 'kleur'; -import path from 'path'; -import NodeEnvironment from 'jest-environment-node'; -import { VerdaccioConfig } from '../../lib/verdaccio-server'; -import VerdaccioProcess from '../../lib/server_process'; -import Server from '../../lib/server'; -import ExpressServer from './simple_server'; -import { IServerBridge } from '../../types'; -import { DOMAIN_SERVERS, PORT_SERVER_1, PORT_SERVER_2, PORT_SERVER_3 } from '../config.functional'; - -const EXPRESS_PORT = 55550; - -class FunctionalEnvironment extends NodeEnvironment { - public config: any; - - public constructor(config: any) { - super(config); - } - - public async startWeb() { - const express: any = new ExpressServer(); - - return await express.start(EXPRESS_PORT); - } - - public async setup() { - const SILENCE_LOG = !process.env.VERDACCIO_DEBUG; - // @ts-ignore - const DEBUG_INJECT: boolean = process.env.VERDACCIO_DEBUG_INJECT - ? process.env.VERDACCIO_DEBUG_INJECT - : false; - const forkList: any[] = []; - const serverList: IServerBridge[] = []; - const pathStore = path.join(__dirname, '../store'); - const listServers = [ - { - port: PORT_SERVER_1, - config: '/config-1.yaml', - storage: '/test-storage' - }, - { - port: PORT_SERVER_2, - config: '/config-2.yaml', - storage: '/test-storage2' - }, - { - port: PORT_SERVER_3, - config: '/config-3.yaml', - storage: '/test-storage3' - } - ]; - console.log(green('Setup Verdaccio Servers')); - - const app = await this.startWeb(); - // @ts-ignore - this.global.__WEB_SERVER__ = app; - - for (let config of listServers) { - const verdaccioConfig = new VerdaccioConfig( - path.join(pathStore, config.storage), - path.join(pathStore, config.config), - `http://${DOMAIN_SERVERS}:${config.port}/`, - config.port - ); - console.log(magenta(`Running registry ${config.config} on port ${config.port}`)); - const server: IServerBridge = new Server(verdaccioConfig.domainPath); - serverList.push(server); - const process = new VerdaccioProcess(verdaccioConfig, server, SILENCE_LOG, DEBUG_INJECT); - - const fork = await process.init(); - console.log(blue(`Fork PID ${fork[1]}`)); - forkList.push(fork); - } - - // @ts-ignore - this.global.__SERVERS_PROCESS__ = forkList; - // @ts-ignore - this.global.__SERVERS__ = serverList; - } - - public async teardown() { - await super.teardown(); - console.log(yellow('Teardown Test Environment.')); - // @ts-ignore - if (!this.global.__SERVERS_PROCESS__) { - throw new Error('There are no servers to stop'); - } - - // shutdown verdaccio - // @ts-ignore - for (let server of this.global.__SERVERS_PROCESS__) { - server[0].stop(); - } - // close web server - // @ts-ignore - this.global.__WEB_SERVER__.server.close(); - } - - // @ts-ignore - public runScript(script: string) { - // @ts-ignore - return super.runScript(script); - } -} - -module.exports = FunctionalEnvironment; diff --git a/test/functional/lib/setup.ts b/test/functional/lib/setup.ts deleted file mode 100644 index f43cd9870..000000000 --- a/test/functional/lib/setup.ts +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = async function () { - // here we should create dynamically config files -}; diff --git a/test/functional/lib/simple_server.ts b/test/functional/lib/simple_server.ts deleted file mode 100644 index 3a9e13337..000000000 --- a/test/functional/lib/simple_server.ts +++ /dev/null @@ -1,38 +0,0 @@ -import express from 'express'; -import bodyParser from 'body-parser'; - -/** - * Simple Server - * - * A empty express server with the objective to emumate any external API. - * - * eg: test/functional/tags/tags.ts - * - * express.get('/testexp_tags', function(req, res) { - let f = readTags().toString().replace(/__NAME__/g, 'testexp_tags'); - res.send(JSON.parse(f)); - }); - * - * or at test/functional/package/gzip.ts - */ -export default class ExpressServer { - private app: any; - private server: any; - - public constructor() { - this.app = express(); - } - - public start(port: number): Promise { - return new Promise((resolve) => { - this.app.use(bodyParser.json()); - this.app.use( - bodyParser.urlencoded({ - extended: true - }) - ); - - this.server = this.app.listen(port, () => resolve(this)); - }); - } -} diff --git a/test/functional/lib/test.utils.ts b/test/functional/lib/test.utils.ts deleted file mode 100644 index a0ca772c4..000000000 --- a/test/functional/lib/test.utils.ts +++ /dev/null @@ -1,20 +0,0 @@ -import crypto from 'crypto'; -import fs from 'fs'; -import path from 'path'; - -function generateSha(key) { - // @ts-ignore - return ( - crypto - // @ts-ignore - .createHash('sha1', 'binary') - .update(key) - .digest('hex') - ); -} - -function readFile(filePath) { - return fs.readFileSync(path.join(__dirname, `/${filePath}`)); -} - -export { generateSha, readFile }; diff --git a/test/functional/notifications/notify.ts b/test/functional/notifications/notify.ts deleted file mode 100644 index 6f1642d86..000000000 --- a/test/functional/notifications/notify.ts +++ /dev/null @@ -1,177 +0,0 @@ -import _ from 'lodash'; - -import { HEADERS } from '../../../src/lib/constants'; -import { notify } from '../../../src/lib/notify'; -import { DOMAIN_SERVERS, PORT_SERVER_APP } from '../config.functional'; -import { RemoteUser } from '@verdaccio/types'; - -export default function (express) { - const config = { - notify: { - method: 'POST', - headers: [ - { - 'Content-Type': HEADERS.JSON - } - ], - endpoint: `http://${DOMAIN_SERVERS}:${PORT_SERVER_APP}/api/notify`, - // eslint-disable-next-line max-len - content: `{"color":"green","message":"New package published: * {{ name }}*. Publisher name: * {{ publisher.name }} *.","notify":true,"message_format":"text"}` - } - }; - - const publisherInfo: RemoteUser = { - name: 'publisher-name-test', - real_groups: [], - groups: [] - }; - - describe('notifications', () => { - function parseBody(notification) { - const jsonBody = JSON.parse(notification); - - return jsonBody; - } - - beforeAll(function () { - express.post('/api/notify', function (req, res) { - res.send(req.body); - }); - express.post('/api/notify/bad', function (req, res) { - res.status(400); - res.send('bad response'); - }); - }); - - test('notification should be send', (done) => { - const metadata = { - name: 'pkg-test' - }; - - // @ts-ignore - notify(metadata, config, publisherInfo, 'foo').then( - function (body) { - const jsonBody = parseBody(body); - expect( - `New package published: * ${metadata.name}*. Publisher name: * ${publisherInfo.name} *.` - ).toBe(jsonBody.message); - done(); - }, - function (err) { - expect(err).toBeDefined(); - done(); - } - ); - }); - - test('notification should be send single header', (done) => { - const metadata = { - name: 'pkg-test' - }; - - const configMultipleHeader = _.cloneDeep(config); - configMultipleHeader.notify.headers = { - // @ts-ignore - 'Content-Type': HEADERS.JSON - }; - - // @ts-ignore - notify(metadata, configMultipleHeader, publisherInfo).then( - function (body) { - const jsonBody = parseBody(body); - expect( - `New package published: * ${metadata.name}*. Publisher name: * ${publisherInfo.name} *.` - ).toBe(jsonBody.message); - done(); - }, - function (err) { - expect(err).toBeDefined(); - done(); - } - ); - }); - - test('notification should be send multiple notifications endpoints', (done) => { - const metadata = { - name: 'pkg-test' - }; - // let notificationsCounter = 0; - - const multipleNotificationsEndpoint = { - notify: [] - }; - - for (let i = 0; i < 10; i++) { - const notificationSettings = _.cloneDeep(config.notify); - // basically we allow al notifications - // @ts-ignore - notificationSettings.packagePattern = /^pkg-test$/; - // notificationSettings.packagePatternFlags = 'i'; - // @ts-ignore - multipleNotificationsEndpoint.notify.push(notificationSettings); - } - - // @ts-ignore - notify(metadata, multipleNotificationsEndpoint, publisherInfo).then( - function (body) { - console.log('--->body', body); - body.forEach(function (notification) { - const jsonBody = parseBody(notification); - expect( - `New package published: * ${metadata.name}*. Publisher name: * ${publisherInfo.name} *.` - ).toBe(jsonBody.message); - }); - done(); - }, - function (err) { - expect(err).toBeDefined(); - done(); - } - ); - }); - - test('notification should fails', (done) => { - const metadata = { - name: 'pkg-test' - }; - const configFail = _.cloneDeep(config); - configFail.notify.endpoint = `http://${DOMAIN_SERVERS}:${PORT_SERVER_APP}/api/notify/bad`; - - // @ts-ignore - notify(metadata, configFail, publisherInfo).then( - function () { - expect(false).toBe('This service should fails with status code 400'); - done(); - }, - function (err) { - expect(err).toEqual('bad response'); - done(); - } - ); - }); - - test('publisher property should not be overridden if it exists in metadata', (done) => { - const metadata = { - name: 'pkg-test', - publisher: { - name: 'existing-publisher-name' - } - }; - - // @ts-ignore - notify(metadata, config, publisherInfo).then( - function (body) { - const jsonBody = parseBody(body); - expect( - `New package published: * ${metadata.name}*. Publisher name: * ${metadata.publisher.name} *.` - ).toBe(jsonBody.message); - done(); - }, - function (err) { - expect(err).toBeDefined(); - done(); - } - ); - }); - }); -} diff --git a/test/functional/package/access.ts b/test/functional/package/access.ts deleted file mode 100644 index 16a822751..000000000 --- a/test/functional/package/access.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { buildToken } from '../../../src/lib/utils'; -import { API_ERROR, HTTP_STATUS, TOKEN_BASIC } from '../../../src/lib/constants'; -import { CREDENTIALS } from '../config.functional'; -import fixturePkg from '../fixtures/package'; - -export default function (server) { - describe('package access control', () => { - const buildAccesToken = (auth) => { - return buildToken(TOKEN_BASIC, `${Buffer.from(auth).toString('base64')}`); - }; - - /** - * Check whether the user is allowed to fetch packages - * @param auth {object} disable auth - * @param pkg {string} package name - * @param status {boolean} - */ - function checkAccess(auth, pkg, status) { - test(`${status ? 'allows' : 'forbids'} access ${auth} to ${pkg}`, () => { - server.authstr = auth ? buildAccesToken(auth) : undefined; - const req = server.getPackage(pkg); - - if (status === HTTP_STATUS.NOT_FOUND) { - return req.status(HTTP_STATUS.NOT_FOUND).body_error(API_ERROR.NO_PACKAGE); - } else if (status === HTTP_STATUS.FORBIDDEN) { - return req.status(HTTP_STATUS.FORBIDDEN).body_error(API_ERROR.NOT_ALLOWED); - } - }); - } - - /** - * Check whether the user is allowed to publish packages - * @param auth {object} disable auth - * @param pkg {string} package name - * @param status {boolean} - */ - function checkPublish(auth, pkg, status) { - test(`${status ? 'allows' : 'forbids'} publish ${auth} to ${pkg}`, () => { - server.authstr = auth ? buildAccesToken(auth) : undefined; - const req = server.putPackage(pkg, fixturePkg(pkg)); - if (status === HTTP_STATUS.NOT_FOUND) { - return req.status(HTTP_STATUS.NOT_FOUND).body_error(API_ERROR.PACKAGE_CANNOT_BE_ADDED); - } else if (status === HTTP_STATUS.FORBIDDEN) { - return req.status(HTTP_STATUS.FORBIDDEN).body_error(API_ERROR.NOT_ALLOWED_PUBLISH); - } else if (status === HTTP_STATUS.CREATED) { - return req.status(HTTP_STATUS.CREATED); - } else if (status === HTTP_STATUS.CONFLICT) { - return req.status(HTTP_STATUS.CONFLICT); - } - }); - } - - // credentials - const badCredentials = 'test:badpass'; - // test user is logged by default - const validCredentials = `${CREDENTIALS.user}:${CREDENTIALS.password}`; - - // defined on server1 configuration - const testAccessOnly = 'test-access-only'; - const testPublishOnly = 'test-publish-only'; - const testOnlyTest = 'test-only-test'; - const testOnlyAuth = 'test-only-auth'; - - describe('all are allowed to access', () => { - checkAccess(validCredentials, testAccessOnly, HTTP_STATUS.NOT_FOUND); - checkAccess(undefined, testAccessOnly, HTTP_STATUS.NOT_FOUND); - checkAccess(badCredentials, testAccessOnly, HTTP_STATUS.NOT_FOUND); - checkPublish(validCredentials, testAccessOnly, HTTP_STATUS.FORBIDDEN); - checkPublish(undefined, testAccessOnly, HTTP_STATUS.FORBIDDEN); - checkPublish(badCredentials, testAccessOnly, HTTP_STATUS.FORBIDDEN); - }); - - describe('all are allowed to publish', () => { - checkAccess(validCredentials, testPublishOnly, HTTP_STATUS.FORBIDDEN); - checkAccess(undefined, testPublishOnly, HTTP_STATUS.FORBIDDEN); - checkAccess(badCredentials, testPublishOnly, HTTP_STATUS.FORBIDDEN); - checkPublish(validCredentials, testPublishOnly, HTTP_STATUS.CREATED); - checkPublish(undefined, testPublishOnly, HTTP_STATUS.CONFLICT); - checkPublish(badCredentials, testPublishOnly, HTTP_STATUS.CONFLICT); - }); - - describe('only user "test" is allowed to publish and access', () => { - checkAccess(validCredentials, testOnlyTest, HTTP_STATUS.NOT_FOUND); - checkAccess(undefined, testOnlyTest, HTTP_STATUS.FORBIDDEN); - checkAccess(badCredentials, testOnlyTest, HTTP_STATUS.FORBIDDEN); - checkPublish(validCredentials, testOnlyTest, HTTP_STATUS.CREATED); - checkPublish(undefined, testOnlyTest, HTTP_STATUS.FORBIDDEN); - checkPublish(badCredentials, testOnlyTest, HTTP_STATUS.FORBIDDEN); - }); - - describe('only authenticated users are allowed', () => { - checkAccess(validCredentials, testOnlyAuth, HTTP_STATUS.NOT_FOUND); - checkAccess(undefined, testOnlyAuth, HTTP_STATUS.FORBIDDEN); - checkAccess(badCredentials, testOnlyAuth, HTTP_STATUS.FORBIDDEN); - checkPublish(validCredentials, testOnlyAuth, HTTP_STATUS.CREATED); - checkPublish(undefined, testOnlyAuth, HTTP_STATUS.FORBIDDEN); - checkPublish(badCredentials, testOnlyAuth, HTTP_STATUS.FORBIDDEN); - }); - }); -} diff --git a/test/functional/package/gzip.ts b/test/functional/package/gzip.ts deleted file mode 100644 index 7da2edc5c..000000000 --- a/test/functional/package/gzip.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* eslint-disable jest/no-standalone-expect */ -import zlib from 'zlib'; -import { readFile } from '../lib/test.utils'; -import { HEADER_TYPE, HEADERS, HTTP_STATUS, CHARACTER_ENCODING } from '../../../src/lib/constants'; - -export default function (server, express) { - const PKG_NAME = 'testexp_gzip'; - const PKG_VERSION = '0.0.1'; - const PKG_BAD_DATA = 'testexp_baddata'; - const VERSION_TOTAL = 4; - - describe('test gzip support', () => { - beforeAll(function () { - express.get(`/${PKG_NAME}`, function (req, res) { - const pkg = JSON.parse( - readFile('../fixtures/publish.json5') - .toString(CHARACTER_ENCODING.UTF8) - .replace(/__NAME__/g, PKG_NAME) - .replace(/__VERSION__/g, PKG_VERSION) - ); - - // overcoming compress threshold - for (let i = 1; i <= VERSION_TOTAL; i++) { - pkg.versions[`0.0.${i}`] = pkg.versions[PKG_VERSION]; - } - - zlib.gzip(JSON.stringify(pkg), (err, buf) => { - expect(err).toBeNull(); - expect(req.headers[HEADER_TYPE.ACCEPT_ENCODING]).toBe(HEADERS.GZIP); - res.header(HEADER_TYPE.CONTENT_ENCODING, HEADERS.GZIP); - res.send(buf); - }); - }); - - express.get(`/${PKG_BAD_DATA}`, function (req, res) { - expect(req).toBeDefined(); - expect(res).toBeDefined(); - expect(req.headers[HEADER_TYPE.ACCEPT_ENCODING]).toBe(HEADERS.GZIP); - res.header(HEADER_TYPE.CONTENT_ENCODING, HEADERS.GZIP); - res.send(Buffer.from([1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1])); - }); - }); - - test('should not fail on bad gzip', () => { - return server.getPackage(PKG_BAD_DATA).status(HTTP_STATUS.NOT_FOUND); - }); - - test('should understand non gzipped data from uplink', () => { - return server - .getPackage(PKG_NAME) - .status(HTTP_STATUS.OK) - .response((res) => { - expect(res.headers[HEADER_TYPE.CONTENT_ENCODING]).toBeUndefined(); - }) - .then((body) => { - expect(body.name).toBe(PKG_NAME); - expect(Object.keys(body.versions)).toHaveLength(VERSION_TOTAL); - }); - }); - - test('should serve gzipped data', () => { - return server - .request({ - uri: `/${PKG_NAME}`, - encoding: null, - headers: { - [HEADER_TYPE.ACCEPT_ENCODING]: HEADERS.GZIP - }, - json: false - }) - .status(HTTP_STATUS.OK) - .response(function (res) { - expect(res.headers[HEADER_TYPE.CONTENT_ENCODING]).toBe(HEADERS.GZIP); - }) - .then(async function (body) { - // should fails since is zipped - expect(function () { - JSON.parse(body.toString(CHARACTER_ENCODING.UTF8)); - }).toThrow(/Unexpected/); - - // we unzip content and check content - await new Promise(function (resolve) { - zlib.gunzip(body, function (err, buffer) { - expect(err).toBeNull(); - expect(buffer).not.toBeNull(); - const unzipedBody = JSON.parse(buffer.toString()); - - expect(unzipedBody.name).toBe(PKG_NAME); - expect(Object.keys(unzipedBody.versions)).toHaveLength(VERSION_TOTAL); - resolve(); - }); - }); - }); - }); - }); -} diff --git a/test/functional/package/scoped.json b/test/functional/package/scoped.json deleted file mode 100644 index 71de0d2df..000000000 --- a/test/functional/package/scoped.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "_id": "@test\/scoped", - "name": "@test\/scoped", - "description": "test... test... test...", - "dist-tags": { - "latest": "1.0.0" - }, - "versions": { - "1.0.0": { - "name": "@test\/scoped", - "version": "1.0.0", - "description": "test... test... test...", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC", - "readme": "ERROR: No README data found!", - "_id": "@test\/scoped@1.0.0", - "_shasum": "6e67b14e2c0e450b942e2bc8086b49e90f594790", - "_from": ".", - "_npmVersion": "2.0.1", - "_nodeVersion": "0.10.25", - "_npmUser": { - - }, - "dist": { - "shasum": "6e67b14e2c0e450b942e2bc8086b49e90f594790", - "tarball": "http:\/\/localhost:4873\/@test\/scoped\/-\/@test\/scoped-1.0.0.tgz" - } - } - }, - "readme": "ERROR: No README data found!", - "_attachments": { - "@test\/scoped-1.0.0.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAAytITM5OTE\/VL4DQelnF+XkMVAYGBgZmZiYKQNrQ3NQAmQYDYwMg29DIxMTY2Mzc1NSYwcDQ2MDIDChPbYdgA6XFJYlFQKdQag7ELwpweoiAaqW8xNxUJSslh5LU4hL94uT8gtQUJR2lstSi4sz8PKCEoZ6BngFQJCW1OLkos6AEIgpSraenp4BGA9XlJmaCFGTmpaRWAJMTUASir1jJqhqsDSiZmpyRrxCj5FpUlF9kpZCXD9auUFyQmpyZlpmaEqOkoKamkFqRWaJgqFSro5RYWpKRXwTUBzQsJzM5Na8Y5GLPYGel2oEOv6EOCtDyf2Vibg617SCQ\/41MzZHyv+Fo\/qcnAOV+KwXU3M8FzfxWCuC8z4WU863QMzyM5gJleysFWK7nguZ5Ky4FsAqgFaTkeS5IjgfqUuKCZngrBWB+5xro4Bp2AJb\/QZGhC4l\/XXCs65WkV1HJDgL539QAOf8bmwHzv4khWD2V7McLRnj+l+\/mgDCY307enXXYQKTN+LUmn5QRq\/u+5mVOLy\/szBZTXN1764bRpKAgp3t7j08XuS7itTLT4+P+P49iligvXC\/2ydVmZendyg9vfLbOiOjZqOPNYHsm2OxLmOHhUglVT5n0Sql0brFjOqcM7b8qxGe+37PB4lT+95fvmOTrVK0ueU3pKqp6PPVztrrvWq5di9afssrV8mlh5JZw43q65OrW94t8SwVYDIrWaLfmcZWErmCuU+8pqe37lHy7zVN1O5vZl3NRyZYhy3LZw7VXym\/VMhOZ5h3A\/lZxyXJR0er9pmK\/CzbPnbaq6OyR7\/zbv5S8\/L677Kryv\/suO2f\/6sn\/0X+p5kC9RPmfdOP\/9Qvb6vjmv1S3\/SMT9e1kQ40d2783Sw7OOzyz6pLxec4tohVH\/Geoy3684erJb8P+ZG7Mr51pZ2eZvr7\/QpbVdU4yA8\/ARuEoGAWjYBSQBQDM0BedABAAAA==", - "length": 736 - } - } -} diff --git a/test/functional/package/scoped.ts b/test/functional/package/scoped.ts deleted file mode 100644 index 12605d965..000000000 --- a/test/functional/package/scoped.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { HEADERS, HTTP_STATUS } from '../../../src/lib/constants'; -import { DOMAIN_SERVERS, PORT_SERVER_1, PORT_SERVER_2 } from '../config.functional'; -import { generateSha } from '../lib/test.utils'; -import { DIST_TAGS } from '../../../src/lib/constants'; - -export default function (server, server2) { - const SCOPE = '@test/scoped'; - const PKG_VERSION = '1.0.0'; - const PKG_NAME = 'scoped'; - - describe('test-scoped', () => { - beforeAll(function () { - return server - .request({ - uri: '/@test%2fscoped', - headers: { - 'content-type': HEADERS.JSON - }, - method: 'PUT', - json: require('./scoped.json') - }) - .status(HTTP_STATUS.CREATED); - }); - - test('should publish scope package', () => {}); - - describe('should get scoped packages tarball', () => { - const uploadScopedTarBall = (server) => { - return server - .getTarball(SCOPE, `${PKG_NAME}-${PKG_VERSION}.tgz`) - .status(HTTP_STATUS.OK) - .then(function (body) { - // not real sha due to utf8 conversion - expect(generateSha(body)).toEqual('6e67b14e2c0e450b942e2bc8086b49e90f594790'); - }); - }; - - test('should be a scoped tarball from server1', () => { - return uploadScopedTarBall(server); - }); - - test('should be a scoped tarball from server2', () => { - return uploadScopedTarBall(server2); - }); - }); - - describe('should retrieve scoped packages', () => { - const testScopePackage = (server, port) => - server - .getPackage(SCOPE) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body.name).toBe(SCOPE); - expect(body.versions[PKG_VERSION].name).toBe(SCOPE); - expect(body.versions[PKG_VERSION].dist.tarball).toBe( - `http://${DOMAIN_SERVERS}:${port}/@test%2fscoped/-/${PKG_NAME}-${PKG_VERSION}.tgz` - ); - expect(body[DIST_TAGS]).toEqual({ latest: PKG_VERSION }); - }); - - test('scoped package on server1', () => testScopePackage(server, PORT_SERVER_1)); - test('scoped package on server2', () => testScopePackage(server2, PORT_SERVER_2)); - }); - - describe('should retrieve a scoped packages under nginx', () => { - test('should work nginx workaround', () => { - return server2 - .request({ - uri: '/@test/scoped/1.0.0' - }) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body.name).toEqual(SCOPE); - expect(body.dist.tarball).toEqual( - `http://${DOMAIN_SERVERS}:${PORT_SERVER_2}/@test%2fscoped/-/${PKG_NAME}-${PKG_VERSION}.tgz` - ); - }); - }); - }); - }); -} diff --git a/test/functional/performance/race.ts b/test/functional/performance/race.ts deleted file mode 100644 index 23354d465..000000000 --- a/test/functional/performance/race.ts +++ /dev/null @@ -1,143 +0,0 @@ -import async from 'async'; -import { HTTP_STATUS } from '../../../src/lib/constants'; - -let okTotalSum = 0; -import racePkg from '../fixtures/package'; - -export default function (server) { - describe('should test race condition on publish packages', () => { - const MAX_COUNT = 20; - const PKG_NAME = 'race'; - const PUBLISHED = 'published'; - const PRESENT = 'already present'; - const UNAVAILABLE = 'unavailable'; - - beforeAll(function () { - return server - .putPackage(PKG_NAME, racePkg(PKG_NAME)) - .status(HTTP_STATUS.CREATED) - .body_ok(/created new package/); - }); - - test('creating new package', () => {}); - - test('should uploading 10 same versions and ignore 9', (callback) => { - let listOfRequest = []; - for (let i = 0; i < MAX_COUNT; i++) { - // @ts-ignore - listOfRequest.push(function (callback) { - let data = racePkg(PKG_NAME); - data.rand = Math.random(); - - let _res; - server - .putVersion(PKG_NAME, '0.0.1', data) - .response(function (res) { - _res = res; - }) - .then(function (body) { - callback(null, [_res, body]); - }); - }); - } - - async.parallel(listOfRequest, function (err, response) { - let okCount = 0; - let failCount = 0; - - expect(err).toBeNull(); - - // @ts-ignore - response.forEach(function (payload) { - // @ts-ignore - const [resp, body] = payload; - - if (resp.statusCode === HTTP_STATUS.CREATED && ~body.ok.indexOf(PUBLISHED)) { - okCount++; - } - - if (resp.statusCode === HTTP_STATUS.CONFLICT && ~body.error.indexOf(PRESENT)) { - failCount++; - } - - if ( - resp.statusCode === HTTP_STATUS.SERVICE_UNAVAILABLE && - ~body.error.indexOf(UNAVAILABLE) - ) { - failCount++; - } - }); - - expect(okCount + failCount).toEqual(MAX_COUNT); - expect(okCount).toEqual(1); - expect(failCount).toEqual(MAX_COUNT - 1); - okTotalSum += okCount; - - callback(); - }); - }); - - test('shoul uploading 10 diff versions and accept 10', (callback) => { - const listofRequest = []; - - for (let i = 0; i < MAX_COUNT; i++) { - // @ts-ignore - listofRequest.push(function (callback) { - let _res; - server - .putVersion(PKG_NAME, '0.1.' + String(i), racePkg(PKG_NAME)) - .response(function (res) { - _res = res; - }) - .then(function (body) { - callback(null, [_res, body]); - }); - }); - } - - async.parallel(listofRequest, function (err, response) { - let okcount = 0; - let failcount = 0; - - expect(err).toBeNull(); - // @ts-ignore - response.forEach(function (payload) { - // @ts-ignore - const [response, body] = payload; - - if (response.statusCode === HTTP_STATUS.CREATED && ~body.ok.indexOf(PUBLISHED)) { - okcount++; - } - if (response.statusCode === HTTP_STATUS.CONFLICT && ~body.error.indexOf(PRESENT)) { - failcount++; - } - if ( - response.statusCode === HTTP_STATUS.SERVICE_UNAVAILABLE && - ~body.error.indexOf(UNAVAILABLE) - ) { - failcount++; - } - }); - - expect(okcount + failcount).toEqual(MAX_COUNT); - expect(okcount).toEqual(MAX_COUNT); - expect(failcount).toEqual(0); - // should be more than 1 - expect(okcount).not.toEqual(1); - okTotalSum += okcount; - - callback(); - }); - }); - - afterAll(function () { - return server - .getPackage(PKG_NAME) - .status(HTTP_STATUS.OK) - .then(function (body) { - // eslint-disable-next-line jest/no-standalone-expect - expect(Object.keys(body.versions)).toHaveLength(okTotalSum); - }); - }); - }); -} diff --git a/test/functional/plugins/auth.ts b/test/functional/plugins/auth.ts deleted file mode 100644 index cb4f1b9c3..000000000 --- a/test/functional/plugins/auth.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { HTTP_STATUS, API_ERROR } from '../../../src/lib/constants'; - -export default function (server2) { - // credentials - const USER1 = 'authtest'; - const USER2 = 'authtest2'; - const CORRECT_PASSWORD = 'blahblah-password'; - const WRONG_PASSWORD = 'wrongpass1'; - // package names - const DENY_PKG_NAME = 'test-auth-deny'; - const AUTH_PKG_ACCESS_NAME = 'test-auth-regular'; - const ONLY_ACCESS_BY_USER_2 = 'test-deny'; - const UNEXISTING_PKG_NAME = 'test-auth-allow'; - - const requestAuthFail = (user, pass, message, statusCode) => { - return server2 - .auth(user, pass) - .status(statusCode) - .body_error(message) - .then(function () { - return server2.whoami(); - }) - .then(function (username) { - expect(username).toBeUndefined(); - }); - }; - const requestAuthOk = (user, pass, regex, statusCode) => { - return server2 - .auth(user, pass) - .status(statusCode) - .body_ok(regex) - .then(function () { - return server2.whoami(); - }) - .then(function (username) { - expect(username).toBe(user); - }); - }; - - describe('plugin authentication', () => { - describe('test users authentication', () => { - test('should not authenticate user1 with wrong password', () => { - return requestAuthFail( - USER1, - WRONG_PASSWORD, - "i don't like your password", - HTTP_STATUS.UNAUTHORIZED - ); - }); - - test('should not authenticate user2 with wrong password', () => { - return requestAuthFail( - USER2, - WRONG_PASSWORD, - "i don't like your password", - HTTP_STATUS.UNAUTHORIZED - ); - }); - - test('should right user2 password handled by plugin', () => { - return requestAuthOk(USER2, CORRECT_PASSWORD, new RegExp(USER2), HTTP_STATUS.CREATED); - }); - - test('should right user1 password handled by plugin', () => { - return requestAuthOk(USER1, CORRECT_PASSWORD, new RegExp(USER1), HTTP_STATUS.CREATED); - }); - }); - - describe('test package access authorization', () => { - describe(`access with user ${USER1} on server2`, () => { - beforeAll(function () { - return server2 - .auth(USER1, CORRECT_PASSWORD) - .status(HTTP_STATUS.CREATED) - .body_ok(new RegExp(USER1)); - }); - - test(`should fails (404) on access ${UNEXISTING_PKG_NAME}`, () => { - return server2 - .getPackage(UNEXISTING_PKG_NAME) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(API_ERROR.NO_PACKAGE); - }); - - test(`should fails (403) access ${ONLY_ACCESS_BY_USER_2}`, () => { - return server2 - .getPackage(ONLY_ACCESS_BY_USER_2) - .status(HTTP_STATUS.FORBIDDEN) - .body_error(API_ERROR.NOT_ALLOWED); - }); - - test(`should fails (404) access ${AUTH_PKG_ACCESS_NAME}`, () => { - return server2 - .getPackage(AUTH_PKG_ACCESS_NAME) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(API_ERROR.NO_PACKAGE); - }); - }); - - describe(`access with user ${USER2} on server2`, () => { - beforeAll(function () { - return server2 - .auth(USER2, CORRECT_PASSWORD) - .status(HTTP_STATUS.CREATED) - .body_ok(new RegExp(USER2)); - }); - - test(`should fails (403) on access ${UNEXISTING_PKG_NAME}`, () => { - return server2 - .getPackage(UNEXISTING_PKG_NAME) - .status(HTTP_STATUS.FORBIDDEN) - .body_error(API_ERROR.NOT_ALLOWED); - }); - - test(`should fails (403) on access ${DENY_PKG_NAME}`, () => { - return server2 - .getPackage(DENY_PKG_NAME) - .status(HTTP_STATUS.FORBIDDEN) - .body_error(API_ERROR.NOT_ALLOWED); - }); - - test(`should fails (404) access ${AUTH_PKG_ACCESS_NAME}`, () => { - return server2 - .getPackage(AUTH_PKG_ACCESS_NAME) - .status(HTTP_STATUS.NOT_FOUND) - .body_error(API_ERROR.NO_PACKAGE); - }); - }); - }); - }); -} diff --git a/test/functional/plugins/middleware.ts b/test/functional/plugins/middleware.ts deleted file mode 100644 index 49f88c56f..000000000 --- a/test/functional/plugins/middleware.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { HTTP_STATUS } from '../../../src/lib/constants'; - -export default function (server2) { - describe('test plugin middlewares', () => { - test('should serve the registered route ES5', () => { - return server2 - .request({ - uri: '/test/route', - method: 'GET' - }) - .status(HTTP_STATUS.OK) - .body_ok('this is a custom route'); - }); - - test('should serve the registered route ES6', () => { - return server2 - .request({ - uri: '/test/route/es6', - method: 'GET' - }) - .status(HTTP_STATUS.OK) - .body_ok('this is a custom route es6'); - }); - }); -} diff --git a/test/functional/pre-setup.js b/test/functional/pre-setup.js deleted file mode 100644 index 19decbf84..000000000 --- a/test/functional/pre-setup.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ - -require('@babel/register')({ - extensions: [".ts", ".js"] -}); -module.exports = require('./lib/setup'); diff --git a/test/functional/readme/pkg-no-readme.json b/test/functional/readme/pkg-no-readme.json deleted file mode 100644 index cd595ffbd..000000000 --- a/test/functional/readme/pkg-no-readme.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "_id": "readme-test-no-readme", - "name": "readme-test-no-readme", - "description": "", - "dist-tags": { - "foo": "0.0.0", - "latest": "0.0.0" - }, - "versions": { - "0.0.0": { - "name": "test-readme", - "version": "0.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "" - }, - "author": "", - "license": "ISC", - "_id": "test-readme@0.0.0", - "dist": { - "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", - "tarball": "http:\/\/localhost:1234\/test-readme\/-\/test-readme-0.0.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.1", - "_npmUser": { - "name": "alex", - "email": "user@domain.com" - }, - "maintainers": [ - { - "name": "juan", - "email": "user@domain.com" - } - ] - } - }, - "maintainers": [ - { - "name": "juan", - "email": "user@domain.com" - } - ], - "_attachments": { - "test-readme-0.0.0.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", - "length": 352 - } - } -} diff --git a/test/functional/readme/pkg-readme-npm6.json b/test/functional/readme/pkg-readme-npm6.json deleted file mode 100644 index 873486610..000000000 --- a/test/functional/readme/pkg-readme-npm6.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "_id": "readme-test-npm6", - "name": "readme-test-npm6", - "description": "", - "dist-tags": { - "foo": "0.0.0", - "latest": "0.0.0" - }, - "versions": { - "0.0.0": { - "name": "test-readme", - "version": "0.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "" - }, - "author": "", - "license": "ISC", - "_id": "test-readme@0.0.0", - "dist": { - "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", - "tarball": "http:\/\/localhost:1234\/test-readme\/-\/test-readme-0.0.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.1", - "_npmUser": { - "name": "alex", - "email": "user@domain.com" - }, - "maintainers": [ - { - "name": "juan", - "email": "user@domain.com" - } - ] - } - }, - "readme": "this is a readme", - "maintainers": [ - { - "name": "juan", - "email": "user@domain.com" - } - ], - "_attachments": { - "test-readme-0.0.0.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", - "length": 352 - } - } -} diff --git a/test/functional/readme/pkg-readme.json b/test/functional/readme/pkg-readme.json deleted file mode 100644 index 145b8686e..000000000 --- a/test/functional/readme/pkg-readme.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "_id": "readme-test", - "name": "readme-test", - "description": "", - "dist-tags": { - "foo": "0.0.0", - "latest": "0.0.0" - }, - "versions": { - "0.0.0": { - "name": "test-readme", - "version": "0.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "" - }, - "author": "", - "license": "ISC", - "readme": "this is a readme", - "_id": "test-readme@0.0.0", - "dist": { - "shasum": "8ee7331cbc641581b1a8cecd9d38d744a8feb863", - "tarball": "http:\/\/localhost:1234\/test-readme\/-\/test-readme-0.0.0.tgz" - }, - "_from": ".", - "_npmVersion": "1.3.1", - "_npmUser": { - "name": "alex", - "email": "user@domain.com" - }, - "maintainers": [ - { - "name": "juan", - "email": "user@domain.com" - } - ] - } - }, - "readme": "this is a readme", - "maintainers": [ - { - "name": "juan", - "email": "user@domain.com" - } - ], - "_attachments": { - "test-readme-0.0.0.tgz": { - "content_type": "application\/octet-stream", - "data": "H4sIAAAAAAAAA+2TsW7CMBCGM\/spTh6YKHUSIJLXqkPnrixWcIMLsS3btCDEu\/fs0Ba1SFVVVISUP8Odzqf\/zlY+K+qlaOSt7eLo2RudnVmMsel4DBjzasKOY1JZlJDlRVkU5aSspnnG8pIVOZ6fe5FTWvsgHK7yV5\/uLvARr0Q7qkUrKadB+mCXzY2Wr9q2TjZ0SF+k88poPGUj\/LAyl752yoauioVWqJgpPZcb\/Hmw0jV4ynfJEw9lvTAwo\/fOGcdBG4h18FbW6knJ+YzCYAByowLkdD+kTlrjVTBumzy2Nq7XqIDea7eKY7FJrMPCuG6Hlaql9rHr4fGO7i\/9pFcl+4X\/rWhX557xA\/9FVZ3gv+j5\/w9F+jl8g58c0OeQyCdH3HOglETsObxTTw7McwLJClt+wzz5JD45IPEcEHjMEfg0r8M9pQfaOSDs5NLP16tXr15XqzeJD6m5AAwAAA==", - "length": 352 - } - } -} diff --git a/test/functional/readme/readme.ts b/test/functional/readme/readme.ts deleted file mode 100644 index 96f708874..000000000 --- a/test/functional/readme/readme.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { DEFAULT_NO_README, HTTP_STATUS } from '../../../src/lib/constants'; - -import pkgReadmeJSON from './pkg-readme.json'; -import pkgNoReadmeJSON from './pkg-no-readme.json'; -import pkgNoReadmeJSONOldFormat from './pkg-readme-npm6.json'; - -export default function (server, server2) { - describe('should test readme', () => { - const README_PKG1 = 'readme-test'; - const README_PKG2 = 'readme-test-no-readme'; - const README_MESSAGE = 'this is a readme'; - const README_PKG3 = 'readme-test-npm6'; - - beforeAll(async function () { - await server.putPackage('readme-test', pkgReadmeJSON).status(HTTP_STATUS.CREATED); - await server.putPackage(README_PKG2, pkgNoReadmeJSON).status(HTTP_STATUS.CREATED); - await server.putPackage(README_PKG3, pkgNoReadmeJSONOldFormat).status(HTTP_STATUS.CREATED); - }); - - test('add pkg', () => {}); - - describe('should check readme file', () => { - const matchReadme = (serverRef, pkgName = README_PKG1, readmeMessage = README_MESSAGE) => { - return serverRef - .request({ - uri: `/-/verdaccio/package/readme/${pkgName}` - }) - .status(HTTP_STATUS.OK) - .then(function (body) { - expect(body).toEqual(`