diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9e0fc733ac..cd47849c57 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,21 +1,14 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions +name: check test and install -name: CI - -on: - push: - branches: [master] - pull_request: - branches: [master] +on: [pull_request] jobs: build: runs-on: [ubuntu-latest] - + name: "Build and test" strategy: matrix: - node-version: [10.x, 12.x] + node-version: [12.x] steps: - uses: actions/checkout@v2 @@ -33,4 +26,4 @@ jobs: #key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} - run: yarn --frozen-lockfile - run: yarn test - - run: yarn integration + - run: yarn install diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index a2109ad170..0000000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Deploy docs -on: - push: - paths: - - "documentation/**" - -jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v2.3.1 # If you're using actions/checkout@v2 you must set persist-credentials to false in most cases for the deployment to work correctly. - with: - persist-credentials: false - - - name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built. - run: | - yarn docs - - - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@3.5.7 - with: - GITHUB_TOKEN: ${{ secrets.GHTOKEN }} - BRANCH: gh-pages # The branch the action should deploy to. - FOLDER: documentation/build # The folder the action should deploy. diff --git a/README.md b/README.md index 891b8fe5ca..dba1b6e5ff 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Since Nextjs 8.0, [serverless mode](https://nextjs.org/blog/next-8#serverless-ne There is no configuration needed. You can extend defaults based on your application needs. -2. Feature parity with nextjs +2. Feature parity with next js Users of this component should be able to use nextjs development tooling, aka `next dev`. It is the component's job to deploy your application ensuring parity with all of next's features we know and love. Below you can find a list of the features that are currently supported. @@ -74,7 +74,7 @@ Add your next application to the serverless.yml: # serverless.yml myNextApplication: - component: "@sls-next/serverless-component@{version_here}" # it is recommended you pin the latest stable version of serverless-next.js + component: "@getjerry/serverless-next@{version_here}" # it is recommended you pin the latest stable version of serverless-next.js ``` Set your AWS credentials as environment variables: diff --git a/documentation/docs/installation.md b/documentation/docs/installation.md index 7f9df94bcf..ae23c77a14 100644 --- a/documentation/docs/installation.md +++ b/documentation/docs/installation.md @@ -15,7 +15,7 @@ See the steps below to get started and install the Serverless Nextjs component i # serverless.yml myNextApplication: - component: "@sls-next/serverless-component@1.15.2-alpha.1" #specify latest stable version + component: "@getjerry/serverless-next@1.15.3" #specify latest stable version ``` 5. It is recommended you pin the latest stable version of serverless-next.js component. Check out the versions [here](https://github.com/serverless-nextjs/serverless-next.js/releases) diff --git a/package.json b/package.json index f087462014..366d77688a 100644 --- a/package.json +++ b/package.json @@ -14,35 +14,41 @@ "api gateway" ], "scripts": { - "test": "jest --runInBand", + "test": "jest --runInBand --coverage", "packages-install": "lerna exec -- yarn install --frozen-lockfile", "packages-build": "lerna run build", "test:watch": "yarn test --watch --collect-coverage=false", - "publish": "lerna publish --conventional-commits", - "prerelease": "lerna publish --conventional-commits --conventional-prerelease", - "graduate": "lerna publish --conventional-commits --conventional-graduate", + "check-gh-token": ": \"${GH_TOKEN:?Please set GH_TOKEN to a GitHub personal token that can create releases.}\"", + "publish": "yarn check-gh-token && lerna publish --conventional-commits --exact --create-release github", + "prerelease": "yarn check-gh-token && lerna publish --conventional-commits --conventional-prerelease --exact --create-release github --dist-tag alpha", + "graduate": "yarn check-gh-token && lerna publish --conventional-commits --conventional-graduate --exact --create-release github", "lint": "eslint .", - "coveralls": "jest --runInBand --coverage && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", "integration": "jest --runInBand --config jest.integration.config.json --setupTestFrameworkScriptFile=./jest.integration.setup.js", "postinstall": "yarn packages-install && opencollective-postinstall || true", - "docs": "cd documentation && yarn && yarn build" + "docs": "cd documentation && yarn && yarn build", + "graduate-main-package": "yarn check-gh-token && lerna publish --no-push --exact --force-publish=@getjerry/serverless-next,@getjerry/aws-lambda" }, "repository": { "type": "git", - "url": "https://github.com/danielcondemarin/serverless-next.js" + "url": "https://github.com/serverless-nextjs/serverless-next.js" }, "author": "Daniel Conde Marin ", "license": "MIT", "bugs": { - "url": "https://github.com/danielcondemarin/serverless-next.js/issues" + "url": "https://github.com/serverless-nextjs/serverless-next.js/issues" }, - "homepage": "https://github.com/danielcondemarin/serverless-next.js#readme", + "homepage": "https://github.com/serverless-nextjs/serverless-next.js#readme", "devDependencies": { + "@babel/plugin-proposal-class-properties": "7.10.4", + "@babel/preset-env": "7.10.4", "@babel/preset-typescript": "^7.10.4", - "@sls-next/lambda-at-edge": "link:./packages/libs/lambda-at-edge", - "@sls-next/next-aws-cloudfront": "link:./packages/compat-layers/lambda-at-edge-compat", + "@getjerry/lambda-at-edge": "link:./packages/libs/lambda-at-edge", + "@getjerry/next-aws-cloudfront": "link:./packages/compat-layers/lambda-at-edge-compat", "@types/fs-extra": "^9.0.1", "@types/jest": "^26.0.3", + "@types/prettier": "2.4.2", + "@types/promise-retry": "1.1.3", "@types/react": "^16.9.41", "@types/react-dom": "^16.9.8", "@types/webpack": "^4.41.18", @@ -59,13 +65,15 @@ "jest-when": "^2.7.2", "lerna": "^3.22.1", "lint-staged": "^10.2.11", - "next": "^9.4.4", + "lodash": "4.17.20", + "next": "12", "prettier": "^2.0.5", + "promise-retry": "2.0.1", "react": "^16.13.1", "react-dom": "^16.13.1", "serverless": "^1.74.1", "serverless-offline": "^6.4.0", - "typescript": "^3.9.6" + "typescript": "~4.1.0" }, "jest": { "clearMocks": true, @@ -98,14 +106,20 @@ "/fixtures/", "/fixture/", "/examples/", - "/integration/" + "/integration/", + "/cypress/", + "/sharp_node_modules/" ], "setupFiles": [ "/jest.setup.js" + ], + "modulePathIgnorePatterns": [ + "/sharp_node_modules/" ] }, "dependencies": { - "opencollective-postinstall": "^2.0.3" + "opencollective-postinstall": "^2.0.3", + "query-string": "7.1.3" }, "collective": { "type": "opencollective", diff --git a/packages/compat-layers/apigw-lambda-compat/CHANGELOG.md b/packages/compat-layers/apigw-lambda-compat/CHANGELOG.md index b98e7c67dc..6a01640c54 100644 --- a/packages/compat-layers/apigw-lambda-compat/CHANGELOG.md +++ b/packages/compat-layers/apigw-lambda-compat/CHANGELOG.md @@ -3,23 +3,43 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.6.2-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.1...@sls-next/next-aws-lambda@2.6.2-alpha.0) (2020-08-14) +## [2.6.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/next-aws-lambda@2.6.5-alpha.0...@getjerry/next-aws-lambda@2.6.5) (2022-01-07) + +**Note:** Version bump only for package @getjerry/next-aws-lambda + +## [2.6.5-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/next-aws-lambda@2.6.4...@getjerry/next-aws-lambda@2.6.5-alpha.0) (2022-01-07) + +**Note:** Version bump only for package @getjerry/next-aws-lambda + +## [2.6.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.3-alpha.0...@sls-next/next-aws-lambda@2.6.3) (2020-11-02) + +**Note:** Version bump only for package @sls-next/next-aws-lambda + +## [2.6.3-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.2...@sls-next/next-aws-lambda@2.6.3-alpha.0) (2020-10-07) + +**Note:** Version bump only for package @sls-next/next-aws-lambda + +## [2.6.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.2-alpha.0...@sls-next/next-aws-lambda@2.6.2) (2020-09-26) + +**Note:** Version bump only for package @sls-next/next-aws-lambda + +## [2.6.2-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.1...@sls-next/next-aws-lambda@2.6.2-alpha.0) (2020-08-14) **Note:** Version bump only for package @sls-next/next-aws-lambda -## [2.6.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.1-alpha.0...@sls-next/next-aws-lambda@2.6.1) (2020-08-01) +## [2.6.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.1-alpha.0...@sls-next/next-aws-lambda@2.6.1) (2020-08-01) **Note:** Version bump only for package @sls-next/next-aws-lambda -## [2.6.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.0...@sls-next/next-aws-lambda@2.6.1-alpha.0) (2020-07-30) +## [2.6.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.0...@sls-next/next-aws-lambda@2.6.1-alpha.0) (2020-07-30) **Note:** Version bump only for package @sls-next/next-aws-lambda -# [2.6.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.0-alpha.1...@sls-next/next-aws-lambda@2.6.0) (2020-07-11) +# [2.6.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.0-alpha.1...@sls-next/next-aws-lambda@2.6.0) (2020-07-11) **Note:** Version bump only for package @sls-next/next-aws-lambda -# [2.6.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.0-alpha.0...@sls-next/next-aws-lambda@2.6.0-alpha.1) (2020-06-29) +# [2.6.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-lambda@2.6.0-alpha.0...@sls-next/next-aws-lambda@2.6.0-alpha.1) (2020-06-29) **Note:** Version bump only for package @sls-next/next-aws-lambda @@ -27,56 +47,56 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ### Bug Fixes -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) +- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/serverless-nextjs/serverless-next.js/issues/460)) ([12da1de](https://github.com/serverless-nextjs/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) ### Features -- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/danielcondemarin/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) -- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/danielcondemarin/serverless-next.js/issues/437)) ([7291f83](https://github.com/danielcondemarin/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) +- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/serverless-nextjs/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) +- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/serverless-nextjs/serverless-next.js/issues/437)) ([7291f83](https://github.com/serverless-nextjs/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) -## [2.5.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-lambda@2.5.0...next-aws-lambda@2.5.1-alpha.0) (2020-06-24) +## [2.5.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-lambda@2.5.0...next-aws-lambda@2.5.1-alpha.0) (2020-06-24) ### Bug Fixes -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) +- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/serverless-nextjs/serverless-next.js/issues/460)) ([12da1de](https://github.com/serverless-nextjs/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) -# [2.5.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-lambda@2.5.0-alpha.0...next-aws-lambda@2.5.0) (2020-06-16) +# [2.5.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-lambda@2.5.0-alpha.0...next-aws-lambda@2.5.0) (2020-06-16) **Note:** Version bump only for package next-aws-lambda -# [2.5.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-lambda@2.4.1...next-aws-lambda@2.5.0-alpha.0) (2020-06-12) +# [2.5.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-lambda@2.4.1...next-aws-lambda@2.5.0-alpha.0) (2020-06-12) ### Features -- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/danielcondemarin/serverless-next.js/issues/437)) ([7291f83](https://github.com/danielcondemarin/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) +- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/serverless-nextjs/serverless-next.js/issues/437)) ([7291f83](https://github.com/serverless-nextjs/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) -## [2.4.1](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-lambda@2.4.0...next-aws-lambda@2.4.1) (2020-05-06) +## [2.4.1](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-lambda@2.4.0...next-aws-lambda@2.4.1) (2020-05-06) **Note:** Version bump only for package next-aws-lambda -# [2.4.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-lambda@2.4.0-alpha.0...next-aws-lambda@2.4.0) (2020-04-25) +# [2.4.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-lambda@2.4.0-alpha.0...next-aws-lambda@2.4.0) (2020-04-25) **Note:** Version bump only for package next-aws-lambda -# [2.4.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-lambda@2.3.8...next-aws-lambda@2.4.0-alpha.0) (2020-04-23) +# [2.4.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-lambda@2.3.8...next-aws-lambda@2.4.0-alpha.0) (2020-04-23) ### Features -- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/danielcondemarin/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) +- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/serverless-nextjs/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) -## [2.3.8](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/next-aws-lambda@2.3.7...next-aws-lambda@2.3.8) (2020-03-29) +## [2.3.8](https://github.com/serverless-nextjs/serverless-next.js/tree/master/packages/deprecated/serverless-plugin/compare/next-aws-lambda@2.3.7...next-aws-lambda@2.3.8) (2020-03-29) **Note:** Version bump only for package next-aws-lambda -## [2.3.7](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/next-aws-lambda@2.3.6...next-aws-lambda@2.3.7) (2020-03-29) +## [2.3.7](https://github.com/serverless-nextjs/serverless-next.js/tree/master/packages/deprecated/serverless-plugin/compare/next-aws-lambda@2.3.6...next-aws-lambda@2.3.7) (2020-03-29) **Note:** Version bump only for package next-aws-lambda -## [2.3.6](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/next-aws-lambda@2.3.5...next-aws-lambda@2.3.6) (2020-03-22) +## [2.3.6](https://github.com/serverless-nextjs/serverless-next.js/tree/master/packages/deprecated/serverless-plugin/compare/next-aws-lambda@2.3.5...next-aws-lambda@2.3.6) (2020-03-22) ### Bug Fixes -- handle empty req url ([#315](https://github.com/danielcondemarin/serverless-nextjs-plugin/issues/315)) ([ad7bec1](https://github.com/danielcondemarin/serverless-nextjs-plugin/commit/ad7bec1827ad3b6074c6f1a085a57a2d906334ba)) +- handle empty req url ([#315](https://github.com/serverless-nextjs/serverless-next.js/tree/master/packages/deprecated/serverless-plugin/issues/315)) ([ad7bec1](https://github.com/serverless-nextjs/serverless-next.js/tree/master/packages/deprecated/serverless-plugin/commit/ad7bec1827ad3b6074c6f1a085a57a2d906334ba)) ## 2.3.5 (2020-02-29) diff --git a/packages/compat-layers/apigw-lambda-compat/README.md b/packages/compat-layers/apigw-lambda-compat/README.md index c9a490b510..61dab52919 100644 --- a/packages/compat-layers/apigw-lambda-compat/README.md +++ b/packages/compat-layers/apigw-lambda-compat/README.md @@ -11,7 +11,7 @@ Lambda Proxy Integration event structure documentation can be found [here](https ## Usage ```js -const compat = require("@sls-next/next-aws-lambda"); +const compat = require("@getjerry/next-aws-lambda"); const page = require(".next/serverless/pages/somePage.js"); // using callback diff --git a/packages/compat-layers/apigw-lambda-compat/package.json b/packages/compat-layers/apigw-lambda-compat/package.json index 9cb02c4fc4..f20e71714e 100644 --- a/packages/compat-layers/apigw-lambda-compat/package.json +++ b/packages/compat-layers/apigw-lambda-compat/package.json @@ -1,9 +1,9 @@ { - "name": "@sls-next/next-aws-lambda", + "name": "@getjerry/next-aws-lambda", "publishConfig": { "access": "public" }, - "version": "2.6.2-alpha.0", + "version": "2.6.14", "description": "Compat layer between next.js serverless page and AWS Lambda", "files": [ "lib/**", @@ -19,9 +19,10 @@ ], "repository": { "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-next.js.git", + "url": "git+https://github.com/serverless-nextjs/serverless-next.js.git", "directory": "packages/compat-layers/apigw-lambda-compat" }, "author": "Daniel Conde Marin ", - "license": "MIT" + "license": "MIT", + "gitHead": "ff6891ab42e8df4add318d6c67af062c15b067cd" } diff --git a/packages/compat-layers/lambda-at-edge-compat/CHANGELOG.md b/packages/compat-layers/lambda-at-edge-compat/CHANGELOG.md index 4df217c1d7..61e13d18a5 100644 --- a/packages/compat-layers/lambda-at-edge-compat/CHANGELOG.md +++ b/packages/compat-layers/lambda-at-edge-compat/CHANGELOG.md @@ -3,43 +3,79 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -# [1.5.0-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.0-alpha.1...@sls-next/next-aws-cloudfront@1.5.0-alpha.2) (2020-08-14) +## [1.7.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/next-aws-cloudfront@1.7.1-alpha.0...@getjerry/next-aws-cloudfront@1.7.1) (2022-01-07) + +**Note:** Version bump only for package @getjerry/next-aws-cloudfront + +## [1.7.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/next-aws-cloudfront@1.7.0...@getjerry/next-aws-cloudfront@1.7.1-alpha.0) (2022-01-07) + +**Note:** Version bump only for package @getjerry/next-aws-cloudfront + +## [1.6.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.6.0...@sls-next/next-aws-cloudfront@1.6.1-alpha.0) (2020-12-05) + +**Note:** Version bump only for package @sls-next/next-aws-cloudfront + +# [1.6.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.6.0-alpha.0...@sls-next/next-aws-cloudfront@1.6.0) (2020-11-02) + +**Note:** Version bump only for package @sls-next/next-aws-cloudfront + +# [1.6.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.1-alpha.0...@sls-next/next-aws-cloudfront@1.6.0-alpha.0) (2020-10-22) + +### Features + +- **lambda-at-edge-compat, lambda-at-edge, nextjs-component:** let CloudFront do the Gzipping ([#692](https://github.com/serverless-nextjs/serverless-next.js/issues/692)) ([05fb0eb](https://github.com/serverless-nextjs/serverless-next.js/commit/05fb0ebdf38096fb7e0427956c4747e782c680a8)) + +## [1.5.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.0...@sls-next/next-aws-cloudfront@1.5.1-alpha.0) (2020-10-07) + +**Note:** Version bump only for package @sls-next/next-aws-cloudfront + +# [1.5.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.0-alpha.3...@sls-next/next-aws-cloudfront@1.5.0) (2020-09-26) + +**Note:** Version bump only for package @sls-next/next-aws-cloudfront + +# [1.5.0-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.0-alpha.2...@sls-next/next-aws-cloudfront@1.5.0-alpha.3) (2020-09-10) + +### Features + +- **lambda-at-edge, next-aws-cloudfront:** support Preview Mode ([#562](https://github.com/serverless-nextjs/serverless-next.js/issues/562)) ([5e1ea38](https://github.com/serverless-nextjs/serverless-next.js/commit/5e1ea3891e48d75de5973902a014b67f14c8380a)) + +# [1.5.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.0-alpha.1...@sls-next/next-aws-cloudfront@1.5.0-alpha.2) (2020-08-14) **Note:** Version bump only for package @sls-next/next-aws-cloudfront -# [1.5.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.0-alpha.0...@sls-next/next-aws-cloudfront@1.5.0-alpha.1) (2020-08-14) +# [1.5.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.5.0-alpha.0...@sls-next/next-aws-cloudfront@1.5.0-alpha.1) (2020-08-14) **Note:** Version bump only for package @sls-next/next-aws-cloudfront -# [1.5.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.1...@sls-next/next-aws-cloudfront@1.5.0-alpha.0) (2020-08-14) +# [1.5.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.1...@sls-next/next-aws-cloudfront@1.5.0-alpha.0) (2020-08-14) ### Features -- **serverless-component, lambda-at-edge, lambda-at-edge-compat, s3-static-assets:** add support for getStaticPaths fallback true ([#544](https://github.com/danielcondemarin/serverless-next.js/issues/544)) ([a08217b](https://github.com/danielcondemarin/serverless-next.js/commit/a08217ba26ea90f67c562fe4ae9510b617d14d08)) +- **serverless-component, lambda-at-edge, lambda-at-edge-compat, s3-static-assets:** add support for getStaticPaths fallback true ([#544](https://github.com/serverless-nextjs/serverless-next.js/issues/544)) ([a08217b](https://github.com/serverless-nextjs/serverless-next.js/commit/a08217ba26ea90f67c562fe4ae9510b617d14d08)) -## [1.4.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.1-alpha.1...@sls-next/next-aws-cloudfront@1.4.1) (2020-08-01) +## [1.4.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.1-alpha.1...@sls-next/next-aws-cloudfront@1.4.1) (2020-08-01) **Note:** Version bump only for package @sls-next/next-aws-cloudfront -## [1.4.1-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.1-alpha.0...@sls-next/next-aws-cloudfront@1.4.1-alpha.1) (2020-07-30) +## [1.4.1-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.1-alpha.0...@sls-next/next-aws-cloudfront@1.4.1-alpha.1) (2020-07-30) ### Bug Fixes -- **next-aws-cloudfront:** ignore calls to res.end() after the first one ([#526](https://github.com/danielcondemarin/serverless-next.js/issues/526)) ([c4c9f6f](https://github.com/danielcondemarin/serverless-next.js/commit/c4c9f6fe7e07a2f1f4820e82907bad346cd9df87)) +- **next-aws-cloudfront:** ignore calls to res.end() after the first one ([#526](https://github.com/serverless-nextjs/serverless-next.js/issues/526)) ([c4c9f6f](https://github.com/serverless-nextjs/serverless-next.js/commit/c4c9f6fe7e07a2f1f4820e82907bad346cd9df87)) -## [1.4.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0...@sls-next/next-aws-cloudfront@1.4.1-alpha.0) (2020-07-14) +## [1.4.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0...@sls-next/next-aws-cloudfront@1.4.1-alpha.0) (2020-07-14) **Note:** Version bump only for package @sls-next/next-aws-cloudfront -# [1.4.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0-alpha.2...@sls-next/next-aws-cloudfront@1.4.0) (2020-07-11) +# [1.4.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0-alpha.2...@sls-next/next-aws-cloudfront@1.4.0) (2020-07-11) **Note:** Version bump only for package @sls-next/next-aws-cloudfront -# [1.4.0-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0-alpha.1...@sls-next/next-aws-cloudfront@1.4.0-alpha.2) (2020-07-05) +# [1.4.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0-alpha.1...@sls-next/next-aws-cloudfront@1.4.0-alpha.2) (2020-07-05) **Note:** Version bump only for package @sls-next/next-aws-cloudfront -# [1.4.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0-alpha.0...@sls-next/next-aws-cloudfront@1.4.0-alpha.1) (2020-06-29) +# [1.4.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/next-aws-cloudfront@1.4.0-alpha.0...@sls-next/next-aws-cloudfront@1.4.0-alpha.1) (2020-06-29) **Note:** Version bump only for package @sls-next/next-aws-cloudfront @@ -47,64 +83,64 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ### Bug Fixes -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) +- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/serverless-nextjs/serverless-next.js/issues/460)) ([12da1de](https://github.com/serverless-nextjs/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) ### Features -- **lambda-at-edge:** autogenerate serverless config ([#418](https://github.com/danielcondemarin/serverless-next.js/issues/418)) ([0f9a176](https://github.com/danielcondemarin/serverless-next.js/commit/0f9a176f65207d31d0b66a11d6fbceafe27fade5)) -- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/danielcondemarin/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) -- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/danielcondemarin/serverless-next.js/issues/437)) ([7291f83](https://github.com/danielcondemarin/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) -- **serverless-component:** implement getStaticProps / getStaticPaths [fallback: false](<[#390](https://github.com/danielcondemarin/serverless-next.js/issues/390)>) ([5185649](https://github.com/danielcondemarin/serverless-next.js/commit/518564944435767759fae8ae5978baf3afc49d7a)) +- **lambda-at-edge:** autogenerate serverless config ([#418](https://github.com/serverless-nextjs/serverless-next.js/issues/418)) ([0f9a176](https://github.com/serverless-nextjs/serverless-next.js/commit/0f9a176f65207d31d0b66a11d6fbceafe27fade5)) +- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/serverless-nextjs/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) +- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/serverless-nextjs/serverless-next.js/issues/437)) ([7291f83](https://github.com/serverless-nextjs/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) +- **serverless-component:** implement getStaticProps / getStaticPaths [fallback: false](<[#390](https://github.com/serverless-nextjs/serverless-next.js/issues/390)>) ([5185649](https://github.com/serverless-nextjs/serverless-next.js/commit/518564944435767759fae8ae5978baf3afc49d7a)) -## [1.3.1-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.3.1-alpha.0...next-aws-cloudfront@1.3.1-alpha.1) (2020-06-24) +## [1.3.1-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.3.1-alpha.0...next-aws-cloudfront@1.3.1-alpha.1) (2020-06-24) ### Bug Fixes -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) +- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/serverless-nextjs/serverless-next.js/issues/460)) ([12da1de](https://github.com/serverless-nextjs/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) -## [1.3.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.3.0...next-aws-cloudfront@1.3.1-alpha.0) (2020-06-21) +## [1.3.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.3.0...next-aws-cloudfront@1.3.1-alpha.0) (2020-06-21) **Note:** Version bump only for package next-aws-cloudfront -# [1.3.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.3.0-alpha.0...next-aws-cloudfront@1.3.0) (2020-06-16) +# [1.3.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.3.0-alpha.0...next-aws-cloudfront@1.3.0) (2020-06-16) **Note:** Version bump only for package next-aws-cloudfront -# [1.3.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.2.0...next-aws-cloudfront@1.3.0-alpha.0) (2020-06-12) +# [1.3.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.2.0...next-aws-cloudfront@1.3.0-alpha.0) (2020-06-12) ### Features -- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/danielcondemarin/serverless-next.js/issues/437)) ([7291f83](https://github.com/danielcondemarin/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) +- **next-aws-lambda,next-aws-cloudfront:** fix status code and body bugs ([#437](https://github.com/serverless-nextjs/serverless-next.js/issues/437)) ([7291f83](https://github.com/serverless-nextjs/serverless-next.js/commit/7291f83f58eaa09733e3ce2df494afc2c0e04f9a)) -# [1.2.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.2.0-alpha.1...next-aws-cloudfront@1.2.0) (2020-06-05) +# [1.2.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.2.0-alpha.1...next-aws-cloudfront@1.2.0) (2020-06-05) **Note:** Version bump only for package next-aws-cloudfront -# [1.2.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.2.0-alpha.0...next-aws-cloudfront@1.2.0-alpha.1) (2020-05-31) +# [1.2.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.2.0-alpha.0...next-aws-cloudfront@1.2.0-alpha.1) (2020-05-31) ### Features -- **lambda-at-edge:** autogenerate serverless config ([#418](https://github.com/danielcondemarin/serverless-next.js/issues/418)) ([0f9a176](https://github.com/danielcondemarin/serverless-next.js/commit/0f9a176f65207d31d0b66a11d6fbceafe27fade5)) +- **lambda-at-edge:** autogenerate serverless config ([#418](https://github.com/serverless-nextjs/serverless-next.js/issues/418)) ([0f9a176](https://github.com/serverless-nextjs/serverless-next.js/commit/0f9a176f65207d31d0b66a11d6fbceafe27fade5)) -# [1.2.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.1.1...next-aws-cloudfront@1.2.0-alpha.0) (2020-05-15) +# [1.2.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.1.1...next-aws-cloudfront@1.2.0-alpha.0) (2020-05-15) ### Features -- **serverless-component:** implement getStaticProps / getStaticPaths [fallback: false](<[#390](https://github.com/danielcondemarin/serverless-next.js/issues/390)>) ([5185649](https://github.com/danielcondemarin/serverless-next.js/commit/518564944435767759fae8ae5978baf3afc49d7a)) +- **serverless-component:** implement getStaticProps / getStaticPaths [fallback: false](<[#390](https://github.com/serverless-nextjs/serverless-next.js/issues/390)>) ([5185649](https://github.com/serverless-nextjs/serverless-next.js/commit/518564944435767759fae8ae5978baf3afc49d7a)) -## [1.1.1](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.1.0...next-aws-cloudfront@1.1.1) (2020-05-06) +## [1.1.1](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.1.0...next-aws-cloudfront@1.1.1) (2020-05-06) **Note:** Version bump only for package next-aws-cloudfront -# [1.1.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.1.0-alpha.0...next-aws-cloudfront@1.1.0) (2020-04-25) +# [1.1.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.1.0-alpha.0...next-aws-cloudfront@1.1.0) (2020-04-25) **Note:** Version bump only for package next-aws-cloudfront -# [1.1.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/next-aws-cloudfront@1.0.1...next-aws-cloudfront@1.1.0-alpha.0) (2020-04-23) +# [1.1.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/next-aws-cloudfront@1.0.1...next-aws-cloudfront@1.1.0-alpha.0) (2020-04-23) ### Features -- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/danielcondemarin/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) +- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/serverless-nextjs/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) ## 1.0.1 (2020-04-13) diff --git a/packages/compat-layers/lambda-at-edge-compat/README.md b/packages/compat-layers/lambda-at-edge-compat/README.md index 320af5cf05..f3084cfe5c 100644 --- a/packages/compat-layers/lambda-at-edge-compat/README.md +++ b/packages/compat-layers/lambda-at-edge-compat/README.md @@ -20,3 +20,13 @@ module.exports.render = async (event, context) => { return responsePromise; }; ``` + +## Options + +### Gzip compression + +```js +const { req, res, responsePromise } = cloudFrontCompat(event.Records[0].cf, { + enableHTTPCompression: true // false by default +}); +``` diff --git a/packages/compat-layers/lambda-at-edge-compat/__tests__/next-aws-cloudfront.response.test.js b/packages/compat-layers/lambda-at-edge-compat/__tests__/next-aws-cloudfront.response.test.js index bd552e8787..c3cf40d284 100644 --- a/packages/compat-layers/lambda-at-edge-compat/__tests__/next-aws-cloudfront.response.test.js +++ b/packages/compat-layers/lambda-at-edge-compat/__tests__/next-aws-cloudfront.response.test.js @@ -371,11 +371,10 @@ describe("Response Tests", () => { }); }); - it(`gzips`, () => { - expect.assertions(2); + it("does not gzip by default", () => { + expect.assertions(3); const gzipSpy = jest.spyOn(zlib, "gzipSync"); - gzipSpy.mockReturnValueOnce(Buffer.from("ok-gzipped")); const { res, responsePromise } = create({ request: { @@ -393,6 +392,40 @@ describe("Response Tests", () => { res.end("ok"); + return responsePromise.then((response) => { + expect(gzipSpy).not.toBeCalled(); + expect(response.headers["content-encoding"]).not.toBeDefined(); + expect(response.body).toEqual("b2s="); + }); + }); + + it(`gzips when compression is enabled`, () => { + expect.assertions(2); + + const gzipSpy = jest.spyOn(zlib, "gzipSync"); + gzipSpy.mockReturnValueOnce(Buffer.from("ok-gzipped")); + + const { res, responsePromise } = create( + { + request: { + path: "/", + headers: { + "accept-encoding": [ + { + key: "Accept-Encoding", + value: "gzip" + } + ] + } + } + }, + { + enableHTTPCompression: true + } + ); + + res.end("ok"); + gzipSpy.mockRestore(); return responsePromise.then((response) => { diff --git a/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.d.ts b/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.d.ts index 0557d84eb5..cfc7ca3b63 100644 --- a/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.d.ts +++ b/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.d.ts @@ -1,9 +1,17 @@ import { CloudFrontResultResponse, CloudFrontRequest } from "aws-lambda"; import { IncomingMessage, ServerResponse } from "http"; -declare function lambdaAtEdgeCompat(event: { - request: CloudFrontRequest; -}): { +type CompatOptions = { + enableHTTPCompression: boolean; + rewrittenUri?: string; +}; + +declare function lambdaAtEdgeCompat( + event: { + request: CloudFrontRequest; + }, + options: CompatOptions +): { responsePromise: Promise; req: IncomingMessage; res: ServerResponse; diff --git a/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.js b/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.js index dbacc28b8e..6b1b078e12 100644 --- a/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.js +++ b/packages/compat-layers/lambda-at-edge-compat/next-aws-cloudfront.js @@ -144,7 +144,14 @@ const isGzipSupported = (headers) => { return gz; }; -const handler = (event) => { +const defaultOptions = { + enableHTTPCompression: false +}; + +const handler = ( + event, + { enableHTTPCompression, rewrittenUri } = defaultOptions +) => { const { request: cfRequest, response: cfResponse = { headers: {} } } = event; const response = { @@ -154,7 +161,7 @@ const handler = (event) => { const newStream = new Stream.Readable(); const req = Object.assign(newStream, http.IncomingMessage.prototype); - req.url = cfRequest.uri; + req.url = rewrittenUri || cfRequest.uri; req.method = cfRequest.method; req.rawHeaders = []; req.headers = {}; @@ -227,7 +234,7 @@ const handler = (event) => { ]); }; - let gz = isGzipSupported(headers); + let shouldGzip = enableHTTPCompression && isGzipSupported(headers); const responsePromise = new Promise((resolve) => { res.end = (text) => { @@ -245,14 +252,14 @@ const handler = (event) => { if (response.body) { response.bodyEncoding = "base64"; - response.body = gz + response.body = shouldGzip ? zlib.gzipSync(response.body).toString("base64") : Buffer.from(response.body).toString("base64"); } response.headers = toCloudFrontHeaders(res.headers, cfResponse.headers); - if (gz) { + if (shouldGzip) { response.headers["content-encoding"] = [ { key: "Content-Encoding", value: "gzip" } ]; diff --git a/packages/compat-layers/lambda-at-edge-compat/package.json b/packages/compat-layers/lambda-at-edge-compat/package.json index 436e4d28d1..7b56469b9f 100644 --- a/packages/compat-layers/lambda-at-edge-compat/package.json +++ b/packages/compat-layers/lambda-at-edge-compat/package.json @@ -1,6 +1,6 @@ { - "name": "@sls-next/next-aws-cloudfront", - "version": "1.5.0-alpha.2", + "name": "@getjerry/next-aws-cloudfront", + "version": "1.7.10", "publishConfig": { "access": "public" }, @@ -9,7 +9,7 @@ "types": "next-aws-cloudfront.d.ts", "repository": { "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-next.js.git", + "url": "git+https://github.com/serverless-nextjs/serverless-next.js.git", "directory": "packages/compat-layers/lambda-at-edge-compat" }, "keywords": [ @@ -19,12 +19,13 @@ "Next.js" ], "author": "Daniel Conde ", - "license": "ISC", + "license": "MIT", "bugs": { - "url": "https://github.com/danielcondemarin/serverless-next.js/issues" + "url": "https://github.com/serverless-nextjs/serverless-next.js/issues" }, - "homepage": "https://github.com/danielcondemarin/serverless-next.js#readme", + "homepage": "https://github.com/serverless-nextjs/serverless-next.js#readme", "devDependencies": { "@types/aws-lambda": "^8.10.50" - } + }, + "gitHead": "ff6891ab42e8df4add318d6c67af062c15b067cd" } diff --git a/packages/compat-layers/lambda-at-edge-compat/yarn.lock b/packages/compat-layers/lambda-at-edge-compat/yarn.lock index 65ba0fc774..b4d1dea35b 100644 --- a/packages/compat-layers/lambda-at-edge-compat/yarn.lock +++ b/packages/compat-layers/lambda-at-edge-compat/yarn.lock @@ -3,6 +3,6 @@ "@types/aws-lambda@^8.10.50": - version "8.10.61" - resolved "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.61.tgz#7471e08843dbdcf09b2494ac5b34c4d1a391e6d0" - integrity sha512-+FeZ/52VG4rBSJ0cRE/aB6hMKQzjIgpiSQrGq0eR8ZrXWee7Z2zoGeJzTHVcOeZNawLb+5zvwZNIRGC7X+kQ7Q== + version "8.10.67" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.67.tgz#e74d1dc31ddfa5ca6cd3ca68b5bef719d0628d1c" + integrity sha512-rQPIkP7Xs6oKR6VYdoPbKghzndzlvTJHbAGvd5PE6LXUo4PNPVP2y1dLTGgEXHapXZraTM9oBLrJFgozJom9BA== diff --git a/packages/deprecated/serverless-plugin/.npmignore b/packages/deprecated/serverless-plugin/.npmignore deleted file mode 100644 index c3e24d38a9..0000000000 --- a/packages/deprecated/serverless-plugin/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -__mocks__ -__tests__ -examples diff --git a/packages/deprecated/serverless-plugin/CHANGELOG.md b/packages/deprecated/serverless-plugin/CHANGELOG.md deleted file mode 100644 index 35df39de11..0000000000 --- a/packages/deprecated/serverless-plugin/CHANGELOG.md +++ /dev/null @@ -1,128 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [2.6.3-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.3-alpha.0...@sls-next/serverless-plugin@2.6.3-alpha.1) (2020-08-14) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -## [2.6.3-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.2...@sls-next/serverless-plugin@2.6.3-alpha.0) (2020-08-14) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -## [2.6.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.2-alpha.1...@sls-next/serverless-plugin@2.6.2) (2020-08-01) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -## [2.6.2-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.2-alpha.0...@sls-next/serverless-plugin@2.6.2-alpha.1) (2020-07-30) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -## [2.6.2-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.1...@sls-next/serverless-plugin@2.6.2-alpha.0) (2020-07-14) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -## [2.6.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.0...@sls-next/serverless-plugin@2.6.1) (2020-07-11) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -# [2.6.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.0-alpha.3...@sls-next/serverless-plugin@2.6.0) (2020-07-11) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -# [2.6.0-alpha.3](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.0-alpha.2...@sls-next/serverless-plugin@2.6.0-alpha.3) (2020-07-05) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -# [2.6.0-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.0-alpha.1...@sls-next/serverless-plugin@2.6.0-alpha.2) (2020-06-30) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -# [2.6.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/serverless-plugin@2.6.0-alpha.0...@sls-next/serverless-plugin@2.6.0-alpha.1) (2020-06-29) - -**Note:** Version bump only for package @sls-next/serverless-plugin - -# 2.6.0-alpha.0 (2020-06-29) - -### Bug Fixes - -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) - -### Features - -- **lambda-at-edge:** add serverless trace target support ([#405](https://github.com/danielcondemarin/serverless-next.js/issues/405)) ([d800951](https://github.com/danielcondemarin/serverless-next.js/commit/d800951673474965c386ab94b2d8db18790099f7)) - -## [2.5.2-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.5.1...serverless-nextjs-plugin@2.5.2-alpha.0) (2020-06-24) - -### Bug Fixes - -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) - -## [2.5.1](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.5.1-alpha.0...serverless-nextjs-plugin@2.5.1) (2020-06-16) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.5.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.5.0...serverless-nextjs-plugin@2.5.1-alpha.0) (2020-06-12) - -**Note:** Version bump only for package serverless-nextjs-plugin - -# [2.5.0](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.5.0-alpha.0...serverless-nextjs-plugin@2.5.0) (2020-06-05) - -**Note:** Version bump only for package serverless-nextjs-plugin - -# [2.5.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.4.11...serverless-nextjs-plugin@2.5.0-alpha.0) (2020-05-17) - -### Features - -- **lambda-at-edge:** add serverless trace target support ([#405](https://github.com/danielcondemarin/serverless-next.js/issues/405)) ([d800951](https://github.com/danielcondemarin/serverless-next.js/commit/d800951673474965c386ab94b2d8db18790099f7)) - -## [2.4.11](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.4.10...serverless-nextjs-plugin@2.4.11) (2020-05-06) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.10](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.4.10-alpha.0...serverless-nextjs-plugin@2.4.10) (2020-04-25) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.10-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/serverless-nextjs-plugin@2.4.9...serverless-nextjs-plugin@2.4.10-alpha.0) (2020-04-23) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.9](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.8...serverless-nextjs-plugin@2.4.9) (2020-03-29) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.8](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.7...serverless-nextjs-plugin@2.4.8) (2020-03-29) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.7](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.6...serverless-nextjs-plugin@2.4.7) (2020-03-22) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.6](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.5...serverless-nextjs-plugin@2.4.6) (2020-03-14) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.5](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.4...serverless-nextjs-plugin@2.4.5) (2020-02-29) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.4](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.3...serverless-nextjs-plugin@2.4.4) (2019-12-22) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.3](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.2...serverless-nextjs-plugin@2.4.3) (2019-11-30) - -### Bug Fixes - -- **plugin:** move config referencing out of plugin constructor ([#248](https://github.com/danielcondemarin/serverless-nextjs-plugin/issues/248)) ([16d66a2](https://github.com/danielcondemarin/serverless-nextjs-plugin/commit/16d66a209a47adf799f8ac1ca8efb6cc7a38e68f)) - -## [2.4.2](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.1...serverless-nextjs-plugin@2.4.2) (2019-11-03) - -**Note:** Version bump only for package serverless-nextjs-plugin - -## [2.4.1](https://github.com/danielcondemarin/serverless-nextjs-plugin/compare/serverless-nextjs-plugin@2.4.0...serverless-nextjs-plugin@2.4.1) (2019-11-03) - -**Note:** Version bump only for package serverless-nextjs-plugin diff --git a/packages/deprecated/serverless-plugin/README.md b/packages/deprecated/serverless-plugin/README.md deleted file mode 100644 index c9a5ef8af5..0000000000 --- a/packages/deprecated/serverless-plugin/README.md +++ /dev/null @@ -1,407 +0,0 @@ -# UPDATE! - -A new iteration of this project has been released powered by the amazing [Serverless Components](https://github.com/serverless/components). -Check it out [here](https://github.com/danielcondemarin/serverless-next.js/tree/master/packages/serverless-nextjs-component). As you can see, it lives in the same monorepo. -The new version has feature parity with nextjs 9.0 and does not use CloudFormation, allowing faster deployments and no [resource limit issues](https://github.com/danielcondemarin/serverless-next.js/issues/17). - -It is recommended for both existing and new users to try the new version. Obviously existing users of the next plugin don't have to migrate over straight away, the plan is to continue maintaining the plugin until the new component is more mature. - -# Serverless Nextjs Plugin - -[![serverless](http://public.serverless.com/badges/v3.svg)](http://www.serverless.com) -[![Build Status](https://travis-ci.org/danielcondemarin/serverless-next.js.svg?branch=master)](https://travis-ci.org/danielcondemarin/serverless-nextjs-plugin) -[![Financial Contributors on Open Collective](https://opencollective.com/serverless-nextjs-plugin/all/badge.svg?label=financial+contributors)](https://opencollective.com/serverless-nextjs-plugin) [![npm version](https://badge.fury.io/js/serverless-nextjs-plugin.svg)](https://badge.fury.io/js/serverless-nextjs-plugin) -[![Coverage Status](https://coveralls.io/repos/github/danielcondemarin/serverless-next.js/badge.svg?branch=master)](https://coveralls.io/github/danielcondemarin/serverless-nextjs-plugin?branch=master) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/c0d3aa2a86cb4ce98772a02015f46314)](https://www.codacy.com/app/danielcondemarin/serverless-nextjs-plugin?utm_source=github.com&utm_medium=referral&utm_content=danielcondemarin/serverless-nextjs-plugin&utm_campaign=Badge_Grade) - -A [serverless framework](https://serverless.com/) plugin to deploy nextjs apps. - -The plugin targets [Next 8 serverless mode](https://nextjs.org/blog/next-8/#serverless-nextjs) - -![demo](./demo.gif) - -## Contents - -- [Motivation](#motivation) -- [Getting Started](#getting-started) -- [Hosting static assets](#hosting-static-assets) -- [Serving static assets](#serving-static-assets) -- [Deploying](#deploying) -- [Overriding page configuration](#overriding-page-configuration) -- [Custom page routing](#custom-page-routing) -- [Custom error page](#custom-error-page) -- [Custom lambda handler](#custom-lambda-handler) -- [All plugin configuration options](#all-plugin-configuration-options) -- [Examples](#examples) -- [Caveats](#caveats) -- [Contributing](#contributing) - -## Motivation - -Next 8 released [official support](https://nextjs.org/blog/next-8/#serverless-nextjs) for serverless! It doesn't work out of the box with AWS Lambdas, instead, next provides a low level API which this plugin uses to deploy the serverless pages. - -Nextjs serverless page handler signature: - -```js -exports.render = function(req, res) => {...} -``` - -AWS Lambda handler: - -```js -exports.handler = function(event, context, callback) {...} -``` - -A compat layer between the nextjs page bundles and AWS Lambda is added at build time: - -```js -const compat = require("@sls-next/next-aws-lambda"); -const page = require(".next/serverless/pages/somePage.js"); - -module.exports.render = (event, context, callback) => { - compat(page)(event, context, callback); -}; -``` - -## Getting started - -### Installing - -`npm install --save-dev @sls-next/serverless-plugin` - -Out of the box, the plugin won't require any configuration. If you need to override any defaults check [this](#all-plugin-configuration-options). - -For example: - -``` -nextApp -│ next.config.js -│ serverless.yml -└───pages -│ │ home.js -│ │ about.js -│ │ admin.js -``` - -Edit the serverless.yml and add: - -```yml -plugins: - - serverless-nextjs-plugin - -package: - exclude: - - ./** -``` - -You can exclude everything. The plugin makes sure the page handlers are included in the artifacts. - -## Hosting static assets - -If you don't want to manage uploading the next static assets yourself, like uploading them to a CDN, the plugin can do this for you by hosting the asset files on S3. - -The easiest way is to use a [valid bucket URL](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro) in the `assetPrefix` field of your next configuration: - -```js -// next.config.js -module.exports = { - assetPrefix: "https://s3.amazonaws.com/your-bucket-name" -}; -``` - -The plugin will create a new S3 Bucket using the parsed name. On deployment, static assets will be uploaded to the bucket provisioned. - -Alternatively, if you just want the assets to get uploaded to S3, you can provide the bucket name via the plugin config: - -```yml -# serverless.yml -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - assetsBucketName: "your-bucket-name" -``` - -## Serving static assets - -Static files can be served by [following the NextJs convention](https://github.com/zeit/next.js/#static-file-serving-eg-images) of using a `static` and `public` folder. - -From your code you can then reference those files with a `/static` URL: - -``` -function MyImage() { - return my image -} - -export default MyImage -``` - -To serve static files from the root directory you can add a folder called public and reference those files from the root, e.g: /robots.txt. - -Note that for this to work, an S3 bucket needs to be provisioned as per [hosting-static-assets](#hosting-static-assets). - -**For production deployments, enabling CloudFront is recommended:** - -```yml -# serverless.yml -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - assetsBucketName: "your-bucket-name" - cloudFront: true -``` - -By doing this, a CloudFront distribution will be created in front of your next application to serve any static assets from S3 and the pages from Api Gateway. - -Note that deploying the stack for the first time will take considerably longer, as CloudFront takes time propagating the changes, typically 10 - 20mins. - -You can provide your own configuration for the CloudFront distribution: - -```yml -# serverless.yml -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - assetsBucketName: "your-bucket-name" - cloudFront: ${file(cloudfront-override.yml)} -``` - -```yml -# cloudfront-override.yml -# e.g. add custom domain name -Properties: - DistributionConfig: - Aliases: - - my.alias.com - ViewerCertificate: - AcmCertificateArn: arn:aws:acm:xxxx - ... -``` - -The configuration provided will be merged onto the defaults in `packages/serverless-plugin/resources/cloudfront.yml`. - -## Deploying - -`serverless deploy` - -When running `serverless deploy` all your next pages will be automatically compiled, packaged and deployed. - -The Lambda functions created for each page have by default the following configuration: - -```yml -handler: /path/to/page/handler.render -events: - - http: - path: pageName # home, about, etc. Unless is the index page which is served at / - method: get - - http: - path: pageName # home, about, etc. Unless is the index page which is served at / - method: head -``` - -## Overriding page configuration - -You may want to have a different configuration for one or more of your page functions. This is possible by setting the `pageConfig` key in the plugin config: - -```yml -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - pageConfig: - about: - memorySize: 512 # default is 1024 - home: - timeout: 10 # default is 6 -``` - -If you need to change the default configuration, such as `memorySize`, `timeout` etc. use the top level `provider` which will override all the functions configuration. For example, to change the memorySize to 512MB: - -```yml -provider: - name: aws - runtime: nodejs8.10 - memorySize: 512 - ... -``` - -You can also add configuration for all page functions by adding an asterisk entry (`*`) to `pageConfig`. This is particularly useful when you have other functions in your service (i.e. an `api`) aside from the page functions and you only want to apply configuration changes to the latter: - -```yml -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - pageConfig: - "*": - layers: - - arn:aws:lambda:${self:provider.region}:553035198032:layer:nodejs12:1 -``` - -You can set any function property described [here](https://serverless.com/framework/docs/providers/aws/guide/functions#configuration). - -## Custom page routing - -The default page routes follow the same convention as next `useFileSystemPublicRoutes` documented [here](https://nextjs.org/docs/#routing). - -E.g. - -| page | path | -| --------------------------- | ------------------- | -| pages/index.js | / | -| pages/post.js | /post | -| pages/blog/index.js | /blog | -| pages/categories/uno/dos.js | /categories/uno/dos | - -You may want to serve your page from a different path. This is possible by setting your own http path in the `routes` config. For example for `pages/post.js`: - -```js -class Post extends React.Component { - static async getInitialProps({ query }) { - return { - slug: query.slug - }; - } - render() { - return

Post page: {this.props.slug}

; - } -} - -export default Post; -``` - -```yml -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - routes: - - src: post - path: posts/{slug} - request: - parameters: - paths: - slug: true -``` - -## Custom error page - -404 or 500 errors are handled both client and server side by a default component `error.js`, same as documented [here](https://github.com/zeit/next.js/#custom-error-handling). - -Simply add `pages/_error.js`: - -```js -class Error extends React.Component { - static getInitialProps({ res, err }) { - const statusCode = res ? res.statusCode : err ? err.statusCode : null; - return { statusCode }; - } - - render() { - return ( -

- {this.props.statusCode - ? `An error ${this.props.statusCode} occurred on server (╯°□°)╯︵ ┻━┻` - : "An error occurred on client"} -

- ); - } -} - -export default Error; -``` - -## Custom lambda handler - -If you need to customize the lambda handler you can do so by providing a path to your own handler in the `customHandler` field. Note that it resolves the path to the custom handler relative to your `next.config.js`. - -```yml -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - customHandler: ./handler.js -``` - -The custom handler needs to look something like this: - -```js -const compat = require("@sls-next/next-aws-lambda"); - -module.exports = (page) => { - const handler = (event, context) => { - // do any stuff you like - - // this makes sure the next page renders - const responsePromise = compat(page)(event, context); - - // do any other stuff you like - - return responsePromise; - }; - return handler; -}; -``` - -## All plugin configuration options - -| Plugin config key | Type | Default Value | Description | -| ----------------- | ------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| nextConfigDir | `string` | ./ | Path to parent directory of `next.config.js`. | -| assetsBucketName | `string` | \ | Creates an S3 bucket with the name provided. The bucket will be used for uploading next static assets. | -| cloudFront | `bool` \| `object` | false | Set to `true` to create a cloud front distribution in front of your nextjs application. Also can be set to an `object` if you need to override CloudFront configuration, see [serving static assets](#serving-static-assets). | -| routes | `[]object` | [] | Array of custom routes for the next pages. | -| customHandler | `string` | \ | Path to your own lambda handler. | -| uploadBuildAssets | `bool` | true | In the unlikely event that you only want to upload `static` or `public` dirs, set this to `false`. | -| createAssetBucket | `bool` | true | Set to false if you want to manage next assets yourself. | - -## Caveats - -Beware this plugin relies on CloudFormation which has a hard limit of 200 resources. If you have a large number of pages in your application it is very likely that you will hit this limit. Use https://github.com/danielcondemarin/serverless-next.js/tree/master/packages/serverless-nextjs-component which solves this problem by not using CloudFormation. - -## Examples - -See the `examples/` directory. - -## Contributing - -Please see the [contributing](./CONTRIBUTING.md) guide. - -## Contributors - -### Code Contributors - -This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. - - -### Financial Contributors - -Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/serverless-nextjs-plugin/contribute)] - -#### Individuals - - - -#### Organizations - -Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/serverless-nextjs-plugin/contribute)] - - - - - - - - - - - diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/.gitignore b/packages/deprecated/serverless-plugin/__tests__/fixtures/.gitignore deleted file mode 100644 index 665599776e..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!.next \ No newline at end of file diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/.next/serverless/pages/about.html b/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/.next/serverless/pages/about.html deleted file mode 100644 index 18ecdcb795..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/.next/serverless/pages/about.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/.serverless_plugins/index.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/.serverless_plugins/index.js deleted file mode 100644 index 4007146446..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/.serverless_plugins/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("../../../../index"); diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/serverless.yml b/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/serverless.yml deleted file mode 100644 index 47a60477f4..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/automatic-static-optimised-app/serverless.yml +++ /dev/null @@ -1,17 +0,0 @@ -service: automatic-static-optimised-app-fixture - -provider: - name: aws - runtime: nodejs8.10 - -stage: dev -region: eu-west-1 - -plugins: - - index - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/.serverless_plugins/index.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/.serverless_plugins/index.js deleted file mode 100644 index 4007146446..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/.serverless_plugins/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("../../../../index"); diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/app/.next/serverless/pages/blog/post.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/app/.next/serverless/pages/blog/post.js deleted file mode 100644 index 6661ba119d..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/app/.next/serverless/pages/blog/post.js +++ /dev/null @@ -1 +0,0 @@ -module.exports.render = () => {}; diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/app/.next/serverless/pages/hello.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/app/.next/serverless/pages/hello.js deleted file mode 100644 index 6661ba119d..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/app/.next/serverless/pages/hello.js +++ /dev/null @@ -1 +0,0 @@ -module.exports.render = () => {}; diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/serverless.yml b/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/serverless.yml deleted file mode 100644 index 8daddd6e3c..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-next-config/serverless.yml +++ /dev/null @@ -1,22 +0,0 @@ -service: nested-next-config-fixture - -provider: - name: aws - runtime: nodejs8.10 - memorySize: 512 - -stage: dev -region: eu-west-1 - -plugins: - - index - -custom: - serverless-nextjs: - nextConfigDir: ./app - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/.next/serverless/pages/blog/post.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/.next/serverless/pages/blog/post.js deleted file mode 100644 index 6661ba119d..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/.next/serverless/pages/blog/post.js +++ /dev/null @@ -1 +0,0 @@ -module.exports.render = () => {}; diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/.serverless_plugins/index.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/.serverless_plugins/index.js deleted file mode 100644 index 4007146446..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/.serverless_plugins/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("../../../../index"); diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/serverless.yml b/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/serverless.yml deleted file mode 100644 index bac0ba82e2..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/nested-page-app/serverless.yml +++ /dev/null @@ -1,17 +0,0 @@ -service: nested-page-app-fixture - -provider: - name: aws - runtime: nodejs8.10 - -stage: dev -region: eu-west-1 - -plugins: - - index - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.next/serverless/pages/hello.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.next/serverless/pages/hello.js deleted file mode 100644 index 6661ba119d..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.next/serverless/pages/hello.js +++ /dev/null @@ -1 +0,0 @@ -module.exports.render = () => {}; diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.next/static/client.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.next/static/client.js deleted file mode 100644 index 535868fbb0..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.next/static/client.js +++ /dev/null @@ -1 +0,0 @@ -// the contents of this file don't actually matter diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.serverless_plugins/index.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.serverless_plugins/index.js deleted file mode 100644 index 4007146446..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/.serverless_plugins/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("../../../../index"); diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/serverless.yml b/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/serverless.yml deleted file mode 100644 index f239913aab..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/one-page-app/serverless.yml +++ /dev/null @@ -1,22 +0,0 @@ -service: one-page-app-fixture - -provider: - name: aws - runtime: nodejs8.10 - memorySize: 512 - -stage: dev -region: eu-west-1 - -plugins: - - index - -custom: - serverless-nextjs: - assetsBucketName: onepageappbucket - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/.next/serverless/pages/api/api.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/.next/serverless/pages/api/api.js deleted file mode 100644 index 56f177bb19..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/.next/serverless/pages/api/api.js +++ /dev/null @@ -1,5 +0,0 @@ -export default (req, res) => { - { - test: "test"; - } -}; diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/.serverless_plugins/index.js b/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/.serverless_plugins/index.js deleted file mode 100644 index 4007146446..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/.serverless_plugins/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("../../../../index"); diff --git a/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/serverless.yml b/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/serverless.yml deleted file mode 100644 index 54694057f4..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/fixtures/single-api/serverless.yml +++ /dev/null @@ -1,17 +0,0 @@ -service: single-api-fixture - -provider: - name: aws - runtime: nodejs8.10 - -stage: dev -region: eu-west-1 - -plugins: - - index - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/__tests__/index.test.js b/packages/deprecated/serverless-plugin/__tests__/index.test.js deleted file mode 100644 index b3371fa32e..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/index.test.js +++ /dev/null @@ -1,81 +0,0 @@ -const ServerlessPluginBuilder = require("../utils/test/ServerlessPluginBuilder"); -const displayServiceInfo = require("../lib/displayServiceInfo"); -const ServerlessNextJsPlugin = require("../index"); - -jest.mock("../lib/displayServiceInfo"); - -describe("ServerlessNextJsPlugin", () => { - let pluginBuilder; - - beforeEach(() => { - pluginBuilder = new ServerlessPluginBuilder(); - }); - - describe("#constructor", () => { - it.each` - hook | method - ${"before:offline:start"} | ${"build"} - ${"before:package:initialize"} | ${"build"} - ${"before:deploy:function:initialize"} | ${"build"} - ${"after:aws:deploy:deploy:checkForChanges"} | ${"checkForChanges"} - ${"after:aws:deploy:deploy:uploadArtifacts"} | ${"uploadStaticAssets"} - ${"after:aws:info:displayStackOutputs"} | ${"printStackOutput"} - ${"after:package:createDeploymentArtifacts"} | ${"removePluginBuildDir"} - ${"before:aws:package:finalize:mergeCustomProviderResources"} | ${"addCustomStackResources"} - `("should hook to $hook with method $method", ({ hook, method }) => { - const spy = jest - .spyOn(ServerlessNextJsPlugin.prototype, "hookWrapper") - .mockImplementation(() => {}); - const plugin = new ServerlessPluginBuilder().build(); - plugin.hooks[hook](); - expect(spy).toHaveBeenCalledWith(plugin[method]); - }); - }); - - describe("#printStackOutput", () => { - it("should call displayStackOutput with awsInfo", () => { - const awsInfo = { - constructor: { - name: "AwsInfo" - } - }; - const getPlugins = jest.fn().mockReturnValueOnce([awsInfo]); - - const plugin = new ServerlessPluginBuilder() - .withPluginManager({ - getPlugins - }) - .build(); - - plugin.printStackOutput(); - - expect(displayServiceInfo).toBeCalledWith(awsInfo); - }); - }); - - describe("#removePluginBuildDir", () => { - it("should call pluginBuildDir.removeBuildDir", () => { - const plugin = new ServerlessPluginBuilder().build(); - const mockRemoveBuildDir = jest.fn().mockResolvedValueOnce(); - plugin.pluginBuildDir.removeBuildDir = mockRemoveBuildDir; - - return plugin.removePluginBuildDir().then(() => { - expect(mockRemoveBuildDir).toBeCalled(); - }); - }); - }); - - describe("#getPluginConfigValue", () => { - it("uses default values when config key not provided", () => { - const plugin = pluginBuilder - .withPluginConfig({ - routes: undefined, - uploadBuildAssets: undefined - }) - .build(); - - expect(plugin.getPluginConfigValue("routes")).toEqual([]); - expect(plugin.getPluginConfigValue("uploadBuildAssets")).toEqual(true); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/__tests__/nested-next-config.test.js b/packages/deprecated/serverless-plugin/__tests__/nested-next-config.test.js deleted file mode 100644 index 7241747142..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/nested-next-config.test.js +++ /dev/null @@ -1,133 +0,0 @@ -const nextBuild = require("next/dist/build"); -const path = require("path"); -const AdmZip = require("adm-zip"); -const { - readUpdateTemplate -} = require("../utils/test/readServerlessCFTemplate"); -const testableServerless = require("../utils/test/testableServerless"); - -jest.mock("next/dist/build"); - -jest.setTimeout(10000); - -describe("nested next config", () => { - const fixturePath = path.join(__dirname, "./fixtures/nested-next-config"); - - let cloudFormationUpdateResources; - - beforeAll(async () => { - nextBuild.default.mockResolvedValue(); - - await testableServerless(fixturePath, "package"); - - const cloudFormationUpdateTemplate = await readUpdateTemplate(fixturePath); - - cloudFormationUpdateResources = cloudFormationUpdateTemplate.Resources; - }); - - describe("Page lambda function", () => { - let pageLambda; - - beforeAll(() => { - pageLambda = cloudFormationUpdateResources.HelloLambdaFunction; - }); - - it("creates lambda resource", () => { - expect(pageLambda).toBeDefined(); - }); - - it("has correct handler", () => { - expect(pageLambda.Properties.Handler).toEqual( - "app/sls-next-build/hello.render" - ); - }); - - describe("nested page", () => { - let blogPostPageLambda; - - beforeAll(() => { - blogPostPageLambda = - cloudFormationUpdateResources.BlogDashpostLambdaFunction; - }); - - it("creates lambda resource", () => { - expect(blogPostPageLambda).toBeDefined(); - }); - - it("has correct handler", () => { - expect(blogPostPageLambda.Properties.Handler).toEqual( - "app/sls-next-build/blog/post.render" - ); - }); - }); - }); - - describe("Api Gateway", () => { - let apiGateway; - - beforeAll(() => { - apiGateway = cloudFormationUpdateResources.ApiGatewayRestApi; - }); - - it("creates api resource", () => { - expect(apiGateway).toBeDefined(); - }); - - describe("Page route", () => { - it("creates page route resource with correct path", () => { - const routeResource = - cloudFormationUpdateResources.ApiGatewayResourceHello; - - expect(routeResource).toBeDefined(); - expect(routeResource.Properties.PathPart).toEqual("hello"); - }); - - describe("nested page", () => { - it("creates page route resource with correct path", () => { - const blogResource = - cloudFormationUpdateResources.ApiGatewayResourceBlog; - - const blogPostResource = - cloudFormationUpdateResources.ApiGatewayResourceBlogPost; - - expect(blogResource).toBeDefined(); - expect(blogPostResource).toBeDefined(); - expect(blogResource.Properties.PathPart).toEqual("blog"); - expect(blogPostResource.Properties.PathPart).toEqual("post"); - }); - }); - }); - }); - - describe("Zip artifact", () => { - let zipEntryNames; - - beforeAll(() => { - const zip = new AdmZip( - `${fixturePath}/.serverless/nested-next-config-fixture.zip` - ); - const zipEntries = zip.getEntries(); - zipEntryNames = zipEntries.map((ze) => ze.entryName); - }); - - it("contains next compiled page", () => { - expect(zipEntryNames).toContain(`app/sls-next-build/hello.original.js`); - }); - - it("contains plugin handler", () => { - expect(zipEntryNames).toContain(`app/sls-next-build/hello.js`); - }); - - describe("nested page", () => { - it("contains next compiled page", () => { - expect(zipEntryNames).toContain( - `app/sls-next-build/blog/post.original.js` - ); - }); - - it("contains plugin handler", () => { - expect(zipEntryNames).toContain(`app/sls-next-build/blog/post.js`); - }); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/__tests__/nested-page-app.test.js b/packages/deprecated/serverless-plugin/__tests__/nested-page-app.test.js deleted file mode 100644 index 22ad9a5d13..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/nested-page-app.test.js +++ /dev/null @@ -1,112 +0,0 @@ -const nextBuild = require("next/dist/build"); -const path = require("path"); -const AdmZip = require("adm-zip"); -const { - readUpdateTemplate -} = require("../utils/test/readServerlessCFTemplate"); -const testableServerless = require("../utils/test/testableServerless"); - -jest.mock("next/dist/build"); - -describe("nested page app", () => { - const fixturePath = path.join(__dirname, "./fixtures/nested-page-app"); - - let cloudFormationUpdateResources; - - beforeAll(async () => { - nextBuild.default.mockResolvedValue(); - - await testableServerless(fixturePath, "package"); - - const cloudFormationUpdateTemplate = await readUpdateTemplate(fixturePath); - - cloudFormationUpdateResources = cloudFormationUpdateTemplate.Resources; - }); - - describe("Page lambda function", () => { - let pageLambda; - - beforeAll(() => { - pageLambda = cloudFormationUpdateResources.BlogDashpostLambdaFunction; - }); - - it("creates lambda resource", () => { - expect(pageLambda).toBeDefined(); - }); - - it("has correct handler", () => { - expect(pageLambda.Properties.Handler).toEqual( - "sls-next-build/blog/post.render" - ); - }); - }); - - describe("Api Gateway", () => { - let apiGateway; - - beforeAll(() => { - apiGateway = cloudFormationUpdateResources.ApiGatewayRestApi; - }); - - it("creates api resource", () => { - expect(apiGateway).toBeDefined(); - }); - - describe("Page route", () => { - it("creates page route resource with correct path", () => { - const blogResource = - cloudFormationUpdateResources.ApiGatewayResourceBlog; - - const blogPostResource = - cloudFormationUpdateResources.ApiGatewayResourceBlogPost; - - expect(blogResource).toBeDefined(); - expect(blogPostResource).toBeDefined(); - expect(blogResource.Properties.PathPart).toEqual("blog"); - expect(blogPostResource.Properties.PathPart).toEqual("post"); - }); - - it("creates GET http method", () => { - const httpMethod = - cloudFormationUpdateResources.ApiGatewayMethodBlogPostGet; - - expect(httpMethod).toBeDefined(); - expect(httpMethod.Properties.HttpMethod).toEqual("GET"); - expect(httpMethod.Properties.ResourceId.Ref).toEqual( - "ApiGatewayResourceBlogPost" - ); - }); - - it("creates HEAD http method", () => { - const httpMethod = - cloudFormationUpdateResources.ApiGatewayMethodBlogPostHead; - - expect(httpMethod).toBeDefined(); - expect(httpMethod.Properties.HttpMethod).toEqual("HEAD"); - expect(httpMethod.Properties.ResourceId.Ref).toEqual( - "ApiGatewayResourceBlogPost" - ); - }); - }); - }); - - describe("Zip artifact", () => { - let zipEntryNames; - - beforeAll(() => { - const zip = new AdmZip( - `${fixturePath}/.serverless/nested-page-app-fixture.zip` - ); - const zipEntries = zip.getEntries(); - zipEntryNames = zipEntries.map((ze) => ze.entryName); - }); - - it("contains next compiled page", () => { - expect(zipEntryNames).toContain(`sls-next-build/blog/post.original.js`); - }); - - it("contains plugin handler", () => { - expect(zipEntryNames).toContain(`sls-next-build/blog/post.js`); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/__tests__/one-page-app.test.js b/packages/deprecated/serverless-plugin/__tests__/one-page-app.test.js deleted file mode 100644 index d1a03ecb20..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/one-page-app.test.js +++ /dev/null @@ -1,130 +0,0 @@ -const fs = require("fs"); -const nextBuild = require("next/dist/build"); -const path = require("path"); -const AdmZip = require("adm-zip"); -const { - readUpdateTemplate -} = require("../utils/test/readServerlessCFTemplate"); -const testableServerless = require("../utils/test/testableServerless"); - -jest.mock("next/dist/build"); - -describe("one page app", () => { - const fixturePath = path.join(__dirname, "./fixtures/one-page-app"); - - let cloudFormationUpdateResources; - - beforeAll(async () => { - nextBuild.default.mockResolvedValue(); - - await testableServerless(fixturePath, "package"); - - const cloudFormationUpdateTemplate = await readUpdateTemplate(fixturePath); - - cloudFormationUpdateResources = cloudFormationUpdateTemplate.Resources; - }); - - describe("Assets Bucket", () => { - describe("CF Update resources", () => { - let assetsBucket; - - beforeAll(() => { - assetsBucket = cloudFormationUpdateResources.NextStaticAssetsS3Bucket; - }); - - it("is added to the resources", () => { - expect(assetsBucket).toBeDefined(); - }); - - it("has correct bucket name", () => { - expect(assetsBucket.Properties.BucketName).toEqual("onepageappbucket"); - }); - }); - }); - - describe("Page lambda function", () => { - let pageLambda; - - beforeAll(() => { - pageLambda = cloudFormationUpdateResources.HelloLambdaFunction; - }); - - it("creates lambda resource", () => { - expect(pageLambda).toBeDefined(); - }); - - it("has correct handler", () => { - expect(pageLambda.Properties.Handler).toEqual( - "sls-next-build/hello.render" - ); - }); - - it("has user defined memory size", () => { - expect(pageLambda.Properties.MemorySize).toEqual(512); - }); - }); - - describe("Api Gateway", () => { - let apiGateway; - - beforeAll(() => { - apiGateway = cloudFormationUpdateResources.ApiGatewayRestApi; - }); - - it("creates api resource", () => { - expect(apiGateway).toBeDefined(); - }); - - describe("Page route", () => { - it("creates page route resource with correct path", () => { - const routeResource = - cloudFormationUpdateResources.ApiGatewayResourceHello; - - expect(routeResource).toBeDefined(); - expect(routeResource.Properties.PathPart).toEqual("hello"); - }); - - it("creates GET http method", () => { - const httpMethod = - cloudFormationUpdateResources.ApiGatewayMethodHelloGet; - - expect(httpMethod).toBeDefined(); - expect(httpMethod.Properties.HttpMethod).toEqual("GET"); - expect(httpMethod.Properties.ResourceId.Ref).toEqual( - "ApiGatewayResourceHello" - ); - }); - - it("creates HEAD http method", () => { - const httpMethod = - cloudFormationUpdateResources.ApiGatewayMethodHelloHead; - - expect(httpMethod).toBeDefined(); - expect(httpMethod.Properties.HttpMethod).toEqual("HEAD"); - expect(httpMethod.Properties.ResourceId.Ref).toEqual( - "ApiGatewayResourceHello" - ); - }); - }); - }); - - describe("Zip artifact", () => { - let zipEntryNames; - - beforeAll(() => { - const zip = new AdmZip( - `${fixturePath}/.serverless/one-page-app-fixture.zip` - ); - const zipEntries = zip.getEntries(); - zipEntryNames = zipEntries.map((ze) => ze.entryName); - }); - - it("contains next compiled page", () => { - expect(zipEntryNames).toContain(`sls-next-build/hello.original.js`); - }); - - it("contains plugin handler", () => { - expect(zipEntryNames).toContain(`sls-next-build/hello.js`); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/__tests__/single-api.test.js b/packages/deprecated/serverless-plugin/__tests__/single-api.test.js deleted file mode 100644 index 18bed4dc1a..0000000000 --- a/packages/deprecated/serverless-plugin/__tests__/single-api.test.js +++ /dev/null @@ -1,100 +0,0 @@ -const nextBuild = require("next/dist/build"); -const path = require("path"); -const AdmZip = require("adm-zip"); -const { - readUpdateTemplate -} = require("../utils/test/readServerlessCFTemplate"); -const testableServerless = require("../utils/test/testableServerless"); - -jest.mock("next/dist/build"); - -describe("single api", () => { - const fixturePath = path.join(__dirname, "./fixtures/single-api"); - - let cloudFormationUpdateResources; - - beforeAll(async () => { - nextBuild.default.mockResolvedValue(); - - await testableServerless(fixturePath, "package"); - - const cloudFormationUpdateTemplate = await readUpdateTemplate(fixturePath); - - cloudFormationUpdateResources = cloudFormationUpdateTemplate.Resources; - }); - - describe("Page lambda function", () => { - let pageLambda; - - beforeAll(() => { - pageLambda = cloudFormationUpdateResources.ApiDashapiLambdaFunction; - }); - - it("creates lambda resource", () => { - expect(pageLambda).toBeDefined(); - }); - - it("has correct handler", () => { - expect(pageLambda.Properties.Handler).toEqual( - "sls-next-build/api/api.render" - ); - }); - }); - - describe("Api Gateway", () => { - let apiGateway; - - beforeAll(() => { - apiGateway = cloudFormationUpdateResources.ApiGatewayRestApi; - }); - - it("creates api resource", () => { - expect(apiGateway).toBeDefined(); - }); - - describe("Page route", () => { - it("creates page route resource with correct path", () => { - const apiResource = cloudFormationUpdateResources.ApiGatewayResourceApi; - - const apiPostResource = - cloudFormationUpdateResources.ApiGatewayResourceApiApi; - - expect(apiResource).toBeDefined(); - expect(apiPostResource).toBeDefined(); - expect(apiResource.Properties.PathPart).toEqual("api"); - expect(apiPostResource.Properties.PathPart).toEqual("api"); - }); - - it("creates ANY http method", () => { - const httpMethod = - cloudFormationUpdateResources.ApiGatewayMethodApiApiAny; - - expect(httpMethod).toBeDefined(); - expect(httpMethod.Properties.HttpMethod).toEqual("ANY"); - expect(httpMethod.Properties.ResourceId.Ref).toEqual( - "ApiGatewayResourceApiApi" - ); - }); - }); - }); - - describe("Zip artifact", () => { - let zipEntryNames; - - beforeAll(() => { - const zip = new AdmZip( - `${fixturePath}/.serverless/single-api-fixture.zip` - ); - const zipEntries = zip.getEntries(); - zipEntryNames = zipEntries.map((ze) => ze.entryName); - }); - - it("contains next compiled page", () => { - expect(zipEntryNames).toContain(`sls-next-build/api/api.original.js`); - }); - - it("contains plugin handler", () => { - expect(zipEntryNames).toContain(`sls-next-build/api/api.js`); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/classes/NextPage.js b/packages/deprecated/serverless-plugin/classes/NextPage.js deleted file mode 100644 index 8dd06a3607..0000000000 --- a/packages/deprecated/serverless-plugin/classes/NextPage.js +++ /dev/null @@ -1,155 +0,0 @@ -const path = require("path"); -const merge = require("lodash.merge"); -const clone = require("lodash.clonedeep"); -const toPosix = require("../utils/pathToPosix"); -const PluginBuildDir = require("./PluginBuildDir"); - -class NextPage { - constructor(pagePath, { serverlessFunctionOverrides, routes } = {}) { - this.isApi = pagePath.indexOf(path.join("sls-next-build", "api")) === 0; - this.pagePath = pagePath; - this.serverlessFunctionOverrides = serverlessFunctionOverrides; - this.routes = routes; - } - - get pageOriginalPath() { - return path.join(this.pageDir, `${this.pageName}.original.js`); - } - - get pageCompatPath() { - return path.join(this.pageDir, `${this.pageName}.compat.js`); - } - - get pageDir() { - return path.dirname(this.pagePath); - } - - get pageId() { - const pathSegments = this.pagePath.split(path.sep); - - // strip out the parent build directory from path - // sls-next-build/foo/bar.js -> /foo/bar.js - const relativePathSegments = pathSegments.slice( - pathSegments.indexOf(PluginBuildDir.BUILD_DIR_NAME) + 1, - pathSegments.length - ); - - // remove extension - // foo/bar.js -> /foo/bar - const parsed = path.parse(relativePathSegments.join(path.posix.sep)); - return path.posix.join(parsed.dir, parsed.name); - } - - get pageName() { - return path.basename(this.pagePath, ".js"); - } - - get pageHandler() { - const dir = path.dirname(this.pagePath); - const handler = path.join(dir, this.pageName + ".render"); - const posixHandler = toPosix(handler); - return posixHandler; - } - - get functionName() { - if (this.pageId === "_error") { - return "not-found"; - } - - return this.pageId - .replace(new RegExp(path.posix.sep, "g"), "-") - .replace(/^-/, "") - .replace(/[^\w-]/g, "_"); - } - - get pageRoute() { - switch (this.pageId) { - case "index": - return "/"; - case "_error": - return "/{proxy+}"; - default: - // handle pages at any subdir level - // e.g. sls-next-build/post.js - // sls-next-build/categories/post.js - // sls-next-build/categories/fridge/index.js - // app/sls-next-build/index.js - const pathSegments = this.pagePath.split(path.sep); - const buildDirIndex = pathSegments.indexOf( - PluginBuildDir.BUILD_DIR_NAME - ); - - const routeSegments = pathSegments - .slice(buildDirIndex + 1, pathSegments.length - 1) - .concat([this.pageName]); - - const originalPath = routeSegments.join("/"); - const pathWithReplacedBrackets = originalPath - .replace(/\[/g, "{") - .replace(/\]/g, "}"); - - return pathWithReplacedBrackets; - } - } - - get serverlessFunction() { - const configuration = { - handler: this.pageHandler, - events: [ - { - http: { - path: this.pageRoute, - method: this.isApi ? "any" : "get" - } - } - ] - }; - - if (this.serverlessFunctionOverrides) { - delete this.serverlessFunctionOverrides.handler; - delete this.serverlessFunctionOverrides.runtime; - - merge(configuration, this.serverlessFunctionOverrides); - } - - if (this.routes && this.routes.length > 0) { - configuration.events = []; - - this.routes.forEach((r) => { - const httpEvent = this.getHttpEventForRoute(r); - configuration.events.push(httpEvent); - }); - } - - const httpHeadEvents = this.getMatchingHttpHeadEvents( - configuration.events.filter((e) => e.http.method === "get") - ); - - configuration.events = configuration.events.concat(httpHeadEvents); - - return { - [this.functionName]: configuration - }; - } - - getMatchingHttpHeadEvents(httpGetEvents) { - return httpGetEvents.map((e) => { - const headEvent = clone(e); - headEvent.http.method = "head"; - return headEvent; - }); - } - - getHttpEventForRoute(route) { - const httpEvent = { - http: { - method: "get", - ...route - } - }; - - return httpEvent; - } -} - -module.exports = NextPage; diff --git a/packages/deprecated/serverless-plugin/classes/PluginBuildDir.js b/packages/deprecated/serverless-plugin/classes/PluginBuildDir.js deleted file mode 100644 index 7044b14826..0000000000 --- a/packages/deprecated/serverless-plugin/classes/PluginBuildDir.js +++ /dev/null @@ -1,32 +0,0 @@ -const path = require("path"); -const fs = require("fs-extra"); -const logger = require("../utils/logger"); - -class PluginBuildDir { - constructor(nextConfigDir) { - this.nextConfigDir = nextConfigDir; - } - - get buildDir() { - return path.join(this.nextConfigDir, PluginBuildDir.BUILD_DIR_NAME); - } - - get posixBuildDir() { - return path.posix.join(this.nextConfigDir, PluginBuildDir.BUILD_DIR_NAME); - } - - static get BUILD_DIR_NAME() { - return "sls-next-build"; - } - - setupBuildDir() { - return fs.emptyDir(this.buildDir); - } - - removeBuildDir() { - logger.log("Cleaning up tmp build folder ..."); - return fs.remove(this.buildDir); - } -} - -module.exports = PluginBuildDir; diff --git a/packages/deprecated/serverless-plugin/classes/__tests__/NextPage.test.js b/packages/deprecated/serverless-plugin/classes/__tests__/NextPage.test.js deleted file mode 100644 index 44bc163161..0000000000 --- a/packages/deprecated/serverless-plugin/classes/__tests__/NextPage.test.js +++ /dev/null @@ -1,397 +0,0 @@ -const path = require("path"); -const NextPage = require("../NextPage"); -const PluginBuildDir = require("../PluginBuildDir"); - -describe("NextPage", () => { - describe("#constructor", () => { - it("sets a pagePath", () => { - const pagePath = `${PluginBuildDir.BUILD_DIR_NAME}/home.js`; - const page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - - expect(page.pagePath).toEqual(pagePath); - }); - }); - - describe("Simple page", () => { - const buildDir = PluginBuildDir.BUILD_DIR_NAME; - const pagePath = path.join(buildDir, "admin.js"); - let page; - - beforeEach(() => { - page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - }); - - it("returns pageCompatPath", () => { - expect(page.pageCompatPath).toEqual( - path.join(buildDir, "admin.compat.js") - ); - }); - - it("returns pageOriginalPath", () => { - expect(page.pageOriginalPath).toEqual( - path.join(buildDir, "admin.original.js") - ); - }); - - it("returns pageDir", () => { - expect(page.pageDir).toEqual(buildDir); - }); - - it("returns pageName", () => { - expect(page.pageName).toEqual("admin"); - }); - - it("returns pageHandler", () => { - expect(page.pageHandler).toEqual( - `${PluginBuildDir.BUILD_DIR_NAME}/admin.render` - ); - }); - - it("returns pageFunctionName", () => { - expect(page.functionName).toEqual("admin"); - }); - - it("replaces non-alphanumeric chars in pageFunctionName", () => { - const pagePath = path.join(buildDir, "$home.js"); - const page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - expect(page.functionName).toEqual("_home"); - }); - - it("returns pageId", () => { - expect(page.pageId).toEqual("admin"); - }); - - describe("#serverlessFunction", () => { - it("returns function name", () => { - const pageFunction = page.serverlessFunction; - expect(pageFunction.admin).toBeDefined(); - }); - - it("returns function handler", () => { - const { handler } = page.serverlessFunction.admin; - expect(handler).toEqual(`${buildDir}/admin.render`); - }); - - it("returns 2 http events", () => { - const { events } = page.serverlessFunction.admin; - expect(events).toHaveLength(2); - }); - - it("returns function http GET event", () => { - const { events } = page.serverlessFunction.admin; - - const httpEvent = events[0].http; - - expect(httpEvent.path).toEqual("admin"); - expect(httpEvent.method).toEqual("get"); - }); - - it("returns function http HEAD event", () => { - const { events } = page.serverlessFunction.admin; - - const httpEvent = events[1].http; - - expect(httpEvent.path).toEqual("admin"); - expect(httpEvent.method).toEqual("head"); - }); - - describe("When pageConfig override is provided", () => { - it("creates identical HEAD route for custom GET route", () => { - const serverlessFunctionOverrides = { - events: [ - { - http: { - path: "admin/{id}", - request: { - parameters: { - id: true - } - } - } - } - ] - }; - - const pageWithCustomConfig = new NextPage(pagePath, { - serverlessFunctionOverrides, - routes: [] - }); - - const { events } = pageWithCustomConfig.serverlessFunction.admin; - expect(events).toHaveLength(2); - - const httpGet = events[0].http; - const httpHead = events[1].http; - - expect(httpGet.method).toBe("get"); - expect(httpHead.method).toBe("head"); - - expect(httpGet.path).toBe("admin/{id}"); - expect(httpHead.path).toBe("admin/{id}"); - - expect(httpGet.request.parameters.id).toBe(true); - expect(httpHead.request.parameters.id).toBe(true); - }); - - it("overrides serverlessFunction with provided pageConfig", () => { - const serverlessFunctionOverrides = { foo: "bar" }; - - const pageWithCustomConfig = new NextPage(pagePath, { - serverlessFunctionOverrides, - routes: [] - }); - - expect(pageWithCustomConfig.serverlessFunction.admin.foo).toBe("bar"); - }); - - it("doesn't change handler with provided pageConfig", () => { - const serverlessFunctionOverrides = { handler: "invalid/handler" }; - - const pageWithCustomConfig = new NextPage(pagePath, { - serverlessFunctionOverrides, - routes: [] - }); - - expect(pageWithCustomConfig.serverlessFunction.admin.handler).toBe( - pageWithCustomConfig.pageHandler - ); - }); - - it("doesn't change runtime with provided pageConfig", () => { - const serverlessFunctionOverrides = { runtime: "python2.7" }; - - const pageWithCustomConfig = new NextPage(pagePath, { - serverlessFunctionOverrides, - routes: [] - }); - - expect(pageWithCustomConfig.serverlessFunction.admin.runtime).toBe( - undefined - ); - }); - }); - }); - }); - - describe("When is the index page", () => { - const buildDir = PluginBuildDir.BUILD_DIR_NAME; - const pagePath = path.join(buildDir, "index.js"); - let page; - - beforeEach(() => { - page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - }); - - it("returns pageId", () => { - expect(page.pageId).toEqual("index"); - }); - - describe("#serverlessFunction", () => { - it("returns http GET event with path /", () => { - const { events } = page.serverlessFunction.index; - - const httpEvent = events[0].http; - expect(httpEvent.method).toEqual("get"); - expect(httpEvent.path).toEqual("/"); - }); - - it("returns http HEAD event with path /", () => { - const { events } = page.serverlessFunction.index; - - const httpEvent = events[1].http; - expect(httpEvent.method).toEqual("head"); - expect(httpEvent.path).toEqual("/"); - }); - }); - }); - - describe("When is the _error page", () => { - const buildDir = PluginBuildDir.BUILD_DIR_NAME; - const pagePath = path.join(buildDir, "_error.js"); - let page; - - beforeEach(() => { - page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - }); - - describe("#serverlessFunction", () => { - it("should name the function not-found", () => { - expect(page.serverlessFunction["not-found"]).toBeDefined(); - }); - - it("returns two events", () => { - const { events } = page.serverlessFunction["not-found"]; - expect(events).toHaveLength(2); - }); - - it("returns http event path /{proxy+} with GET method", () => { - const { events } = page.serverlessFunction["not-found"]; - - const httpGet = events[0].http; - - expect(httpGet.path).toEqual("/{proxy+}"); - expect(httpGet.method).toEqual("get"); - }); - - it("returns http event path /{proxy+} with HEAD method", () => { - const { events } = page.serverlessFunction["not-found"]; - - const httpHead = events[1].http; - - expect(httpHead.path).toEqual("/{proxy+}"); - expect(httpHead.method).toEqual("head"); - }); - }); - }); - - describe("When is a nested page", () => { - const buildDir = PluginBuildDir.BUILD_DIR_NAME; - const pagePath = path.join(buildDir, "categories/fridge/fridges.js"); - let page; - - beforeEach(() => { - page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - }); - - it("returns pageId", () => { - expect(page.pageId).toEqual("categories/fridge/fridges"); - }); - - describe("#serverlessFunction", () => { - it("returns URI path matching subdirectories", () => { - const { events } = page.serverlessFunction["categories-fridge-fridges"]; - - expect(events).toHaveLength(2); - - const httpGet = events[0].http; - const httpHead = events[1].http; - - expect(httpGet.path).toEqual("categories/fridge/fridges"); - expect(httpGet.method).toEqual("get"); - expect(httpHead.path).toEqual("categories/fridge/fridges"); - expect(httpHead.method).toEqual("head"); - }); - }); - }); - - describe("When pagePath has win format", () => { - const buildDir = PluginBuildDir.BUILD_DIR_NAME; - const pagePath = `${buildDir}\\admin.js`; - let page; - - beforeEach(() => { - page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - }); - - it("returns posix pageHandler", () => { - expect(page.pageHandler).toEqual( - `${PluginBuildDir.BUILD_DIR_NAME}/admin.render` - ); - }); - }); - - describe("When the build directory is a subdirectory", () => { - const buildDir = path.join("app", PluginBuildDir.BUILD_DIR_NAME); - const pagePath = path.join(buildDir, "admin.js"); - let page; - - beforeEach(() => { - page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - }); - - it("returns pageHandler", () => { - expect(page.pageHandler).toEqual( - `app/${PluginBuildDir.BUILD_DIR_NAME}/admin.render` - ); - }); - - it("returns pageRoute", () => { - expect(page.pageRoute).toEqual("admin"); - }); - - it("returns pageId", () => { - expect(page.pageId).toEqual("admin"); - }); - }); - - describe("When dynamic route with square brackets is defined", () => { - const buildDir = PluginBuildDir.BUILD_DIR_NAME; - const pagePath = `${buildDir}/[id].js`; - let page; - - beforeEach(() => { - page = new NextPage(pagePath, { - serverlessFunctionOverrides: {}, - routes: [] - }); - }); - - it("replaces square brackets with curly brackets", () => { - expect(page.pageRoute).toEqual("{id}"); - }); - }); - - describe("When custom routes are provided", () => { - let pageWithCustomRoutes; - - beforeEach(() => { - pageWithCustomRoutes = new NextPage( - path.join(PluginBuildDir.BUILD_DIR_NAME, "foo.js"), - { - routes: [ - { - path: "/custom/path/to/foo" - }, - { - path: "/another/custom/path/to/foo" - } - ] - } - ); - }); - - it("sets http GET and HEAD events for the route given", () => { - const { events } = pageWithCustomRoutes.serverlessFunction.foo; - expect(events).toHaveLength(4); - - const httpGetOne = events[0].http; - const httpGetTwo = events[1].http; - const httpHeadOne = events[2].http; - const httpHeadTwo = events[3].http; - - expect(httpGetOne.method).toBe("get"); - expect(httpHeadOne.method).toBe("head"); - expect(httpGetOne.path).toBe("/custom/path/to/foo"); - expect(httpHeadOne.path).toBe("/custom/path/to/foo"); - - expect(httpGetTwo.method).toBe("get"); - expect(httpHeadTwo.method).toBe("head"); - expect(httpGetTwo.path).toBe("/another/custom/path/to/foo"); - expect(httpHeadTwo.path).toBe("/another/custom/path/to/foo"); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/classes/__tests__/PluginBuildDir.test.js b/packages/deprecated/serverless-plugin/classes/__tests__/PluginBuildDir.test.js deleted file mode 100644 index 413485380c..0000000000 --- a/packages/deprecated/serverless-plugin/classes/__tests__/PluginBuildDir.test.js +++ /dev/null @@ -1,85 +0,0 @@ -const path = require("path"); -const fs = require("fs-extra"); -const PluginBuildDir = require("../PluginBuildDir"); -const logger = require("../../utils/logger"); - -jest.mock("fs-extra"); -jest.mock("../../utils/logger"); - -describe("PluginBuildDir", () => { - describe("#constructor", () => { - it("should set the next config directory", () => { - const nextConfigDir = "/path/to/nextApp"; - const pluginBuildDir = new PluginBuildDir(nextConfigDir); - - expect(pluginBuildDir.nextConfigDir).toEqual(nextConfigDir); - }); - }); - - describe("When a new instance is created", () => { - let pluginBuildDir; - let nextConfigDir; - - beforeEach(() => { - nextConfigDir = "path/to/nextApp"; - pluginBuildDir = new PluginBuildDir(nextConfigDir); - }); - - it("should have buildDir at same level as next config.", () => { - expect(pluginBuildDir.buildDir).toEqual( - path.join(nextConfigDir, PluginBuildDir.BUILD_DIR_NAME) - ); - }); - - it("should have posixBuildDir regardless the platform", () => { - expect(pluginBuildDir.posixBuildDir).toEqual( - `path/to/nextApp/${PluginBuildDir.BUILD_DIR_NAME}` - ); - }); - }); - - describe("#setupBuildDir", () => { - it("should call fs emptyDir to create dir if doesnt exist or cleanup", () => { - expect.assertions(1); - - fs.emptyDir.mockResolvedValueOnce(); - const nextConfigDir = "path/to/nextApp"; - - const pluginBuildDir = new PluginBuildDir(nextConfigDir); - - return pluginBuildDir.setupBuildDir().then(() => { - expect(fs.emptyDir).toBeCalledWith(pluginBuildDir.buildDir); - }); - }); - }); - - describe("#removeBuildDir", () => { - it("should log when it starts removing", () => { - expect.assertions(1); - - fs.remove.mockResolvedValueOnce(); - const nextConfigDir = "path/to/nextApp"; - - const pluginBuildDir = new PluginBuildDir(nextConfigDir); - - return pluginBuildDir.removeBuildDir().then(() => { - expect(logger.log).toBeCalledWith( - expect.stringContaining("Cleaning up") - ); - }); - }); - - it("should call fs remove", () => { - expect.assertions(1); - - fs.remove.mockResolvedValueOnce(); - const nextConfigDir = "path/to/nextApp"; - - const pluginBuildDir = new PluginBuildDir(nextConfigDir); - - return pluginBuildDir.removeBuildDir().then(() => { - expect(fs.remove).toBeCalledWith(pluginBuildDir.buildDir); - }); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/demo.gif b/packages/deprecated/serverless-plugin/demo.gif deleted file mode 100644 index 7435f78234..0000000000 Binary files a/packages/deprecated/serverless-plugin/demo.gif and /dev/null differ diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/README.md b/packages/deprecated/serverless-plugin/examples/app-basic/README.md deleted file mode 100644 index ddde675e00..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## app-basic - -### Running the example - -```shell -git clone https://github.com/danielcondemarin/serverless-nextjs-plugin -cd serverless-nextjs-plugin/examples/basic-next-serverless-app -``` - -#### Install dependencies - -```shell -yarn -``` - -Configure nextjs to use a CDN to host the static assets in the bucket: - -Replace _BUCKET_NAME_ with your own bucket name. Don't manually create the bucket, the plugin will do that for you. - -_next.config.js_ - -```js -module.exports = { - ... - assetPrefix: "https://s3.amazonaws.com/BUCKET_NAME" -}; -``` - -Alternatively, remove `assetPrefix` and the bucket won't be provisioned. - -#### Deploy - -`serverless deploy` - -After deployment is finished, go to the API GW provisioned by serverless and you should be able to hit `dev/home` and `dev/about` pages. diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/next.config.js b/packages/deprecated/serverless-plugin/examples/app-basic/next.config.js deleted file mode 100644 index 9c78f7653b..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/next.config.js +++ /dev/null @@ -1,8 +0,0 @@ -const withCSS = require("@zeit/next-css"); - -const config = { - target: "serverless", - assetPrefix: "https://s3.amazonaws.com/foobarbazban" -}; - -module.exports = withCSS(config); diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/package.json b/packages/deprecated/serverless-plugin/examples/app-basic/package.json deleted file mode 100644 index d1a62cf328..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "app-basic", - "version": "1.0.0", - "description": "Example nextjs serverless app using the serverless-nextjs-plugin", - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-nextjs-plugin.git" - }, - "keywords": [ - "serverless", - "nextjs", - "lambda" - ], - "author": "Daniel Conde Marin ", - "license": "MIT", - "bugs": { - "url": "https://github.com/danielcondemarin/serverless-nextjs-plugin/issues" - }, - "homepage": "https://github.com/danielcondemarin/serverless-nextjs-plugin#readme", - "scripts": { - "start": "next dev" - }, - "dependencies": { - "@zeit/next-css": "^1.0.1", - "cowsay-browser": "^1.1.8", - "next": "^9.3.2", - "@sls-next/next-aws-lambda": "^2.0.5-alpha.0", - "react": "^16.8.4", - "react-dom": "^16.8.4" - }, - "devDependencies": { - "eslint-plugin-react": "^7.12.4", - "serverless": "^1.39.1", - "@sls-next/serverless-plugin": "^2.6.0-alpha.2" - } -} diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/pages/_error.js b/packages/deprecated/serverless-plugin/examples/app-basic/pages/_error.js deleted file mode 100644 index 6590e9405c..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/pages/_error.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from "react"; - -class Error extends React.Component { - render() { - return

404 not found. (╯°□°)╯︵ ┻━┻

; - } -} - -export default Error; diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/pages/about.js b/packages/deprecated/serverless-plugin/examples/app-basic/pages/about.js deleted file mode 100644 index e92a37c907..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/pages/about.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from "react"; -import cowsay from "cowsay-browser"; - -import "./styles/about.css"; - -function CowsayHi() { - return ( -
-
{cowsay.say({ text: "hi there!" })}
-
- ); -} - -export default CowsayHi; diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/pages/categories/uno/dos.js b/packages/deprecated/serverless-plugin/examples/app-basic/pages/categories/uno/dos.js deleted file mode 100644 index 46f307b5ed..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/pages/categories/uno/dos.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import "../../styles/home.css"; - -// categories/uno/dos -function CategoriesUnoDos() { - return ( -
-
Awesome! Nested routes ⚡
-
- ); -} - -export default CategoriesUnoDos; diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/pages/index.js b/packages/deprecated/serverless-plugin/examples/app-basic/pages/index.js deleted file mode 100644 index 6b67aa279f..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/pages/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from "react"; -import "./styles/home.css"; - -function Index() { - return ( -
-
Welcome to next.js serverless ⚡
-
- ); -} - -export default Index; diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/pages/post.js b/packages/deprecated/serverless-plugin/examples/app-basic/pages/post.js deleted file mode 100644 index ce1710aca1..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/pages/post.js +++ /dev/null @@ -1,12 +0,0 @@ -class Post extends React.Component { - static async getInitialProps({ query }) { - return { - slug: query.slug - }; - } - render() { - return

Post page: {this.props.slug}

; - } -} - -export default Post; diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/pages/styles/about.css b/packages/deprecated/serverless-plugin/examples/app-basic/pages/styles/about.css deleted file mode 100644 index 7da18605f6..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/pages/styles/about.css +++ /dev/null @@ -1,9 +0,0 @@ -.aboutPage { - font-size: 20px; - position: absolute; - top: 50%; - margin-top: -200px; - /* half of #content height*/ - left: 35%; - width: 100%; -} diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/pages/styles/home.css b/packages/deprecated/serverless-plugin/examples/app-basic/pages/styles/home.css deleted file mode 100644 index b98881efb4..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/pages/styles/home.css +++ /dev/null @@ -1,9 +0,0 @@ -.homePage { - font-size: 20px; - position: absolute; - top: 50%; - margin-top: -200px; - /* half of #content height*/ - left: 35%; - width: 100%; -} diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/public/robots.txt b/packages/deprecated/serverless-plugin/examples/app-basic/public/robots.txt deleted file mode 100644 index 6f27bb66a3..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: \ No newline at end of file diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/serverless.yml b/packages/deprecated/serverless-plugin/examples/app-basic/serverless.yml deleted file mode 100644 index f11d8d563a..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/serverless.yml +++ /dev/null @@ -1,29 +0,0 @@ -service: basic-next-serverless-app - -provider: - name: aws - runtime: nodejs12.x - memorySize: 512 - -stage: dev -region: eu-west-1 - -plugins: - - "@sls-next/serverless-plugin" - - serverless-offline - -custom: - serverless-nextjs: - routes: - - src: post - path: post/{slug} - request: - parameters: - paths: - slug: true - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/static/nextjs.png b/packages/deprecated/serverless-plugin/examples/app-basic/static/nextjs.png deleted file mode 100644 index 8b6a49068a..0000000000 Binary files a/packages/deprecated/serverless-plugin/examples/app-basic/static/nextjs.png and /dev/null differ diff --git a/packages/deprecated/serverless-plugin/examples/app-basic/yarn.lock b/packages/deprecated/serverless-plugin/examples/app-basic/yarn.lock deleted file mode 100644 index 5a32304e53..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-basic/yarn.lock +++ /dev/null @@ -1,10221 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"2-thenable@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/2-thenable/-/2-thenable-1.0.0.tgz#56e9a2e363293b1e507f501aac1aa9927670b2fc" - integrity sha512-HqiDzaLDFCXkcCO/SwoyhRwqYtINFHF7t9BDRq4x90TOKNAJpiqUt9X5lQ08bwxYzc067HUywDjGySpebHcUpw== - dependencies: - d "1" - es5-ext "^0.10.47" - -"@ampproject/toolbox-core@^2.0.0", "@ampproject/toolbox-core@^2.5.4": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.5.4.tgz#8554c5398b6d65d240085a6b0abb94f9a3276dce" - integrity sha512-KjHyR0XpQyloTu59IaatU2NCGT5zOhWJtVXQ4Uj/NUaRriN6LlJlzHBxtXmPIb0YHETdD63ITtDvqZizZPYFag== - dependencies: - cross-fetch "3.0.5" - lru-cache "5.1.1" - -"@ampproject/toolbox-optimizer@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-optimizer/-/toolbox-optimizer-2.0.1.tgz#943681faf24443044aa66f0b55eefb13cdcc068c" - integrity sha512-zroXqrV7mY77+/6hV7kaaWxp4LA85V0B/2vg7WdF+FrwiO9Wior/lIW8UbpRek6INjw0VOp1ED73MmGJkwaDhA== - dependencies: - "@ampproject/toolbox-core" "^2.0.0" - "@ampproject/toolbox-runtime-version" "^2.0.0" - "@ampproject/toolbox-script-csp" "^2.0.0" - "@ampproject/toolbox-validator-rules" "^2.0.0" - css "2.2.4" - domhandler "3.0.0" - domutils "2.0.0" - htmlparser2 "4.1.0" - normalize-html-whitespace "1.0.0" - terser "4.6.7" - -"@ampproject/toolbox-runtime-version@^2.0.0": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.5.4.tgz#ed6e77df3832f551337bca3706b5a4e2f36d66f9" - integrity sha512-7vi/F91Zb+h1CwR8/on/JxZhp3Hhz6xJOOHxRA025aUFEFHV5c35B4QbTdt2MObWZrysogXFOT8M95dgU/hsKw== - dependencies: - "@ampproject/toolbox-core" "^2.5.4" - -"@ampproject/toolbox-script-csp@^2.0.0": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-script-csp/-/toolbox-script-csp-2.5.4.tgz#d8b7b91a678ae8f263cb36d9b74e441b7d633aad" - integrity sha512-+knTYetI5nWllRZ9wFcj7mYxelkiiFVRAAW/hl0ad8EnKHMH82tRlk40CapEnUHhp6Er5sCYkumQ8dngs3Q4zQ== - -"@ampproject/toolbox-validator-rules@^2.0.0": - version "2.5.4" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.5.4.tgz#7dee3a3edceefea459d060571db8cc6e7bbf0dd6" - integrity sha512-bS7uF+h0s5aiklc/iRaujiSsiladOsZBLrJ6QImJDXvubCAQtvE7om7ShlGSXixkMAO0OVMDWyuwLlEy8V1Ing== - dependencies: - cross-fetch "3.0.5" - -"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/core@7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" - integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.7.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.4.tgz#e49eeed9fe114b62fa5b181856a43a5e32f5f243" - integrity sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng== - dependencies: - "@babel/types" "^7.10.4" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.11.0", "@babel/generator@^7.7.2": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c" - integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== - dependencies: - "@babel/types" "^7.11.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-builder-react-jsx-experimental@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.4.tgz#d0ffb875184d749c63ffe1f4f65be15143ec322d" - integrity sha512-LyacH/kgQPgLAuaWrvvq1+E7f5bLyT8jXCh7nM67sRsy2cpIGfgWJ+FCnAKQXfY+F0tXUaN6FqLkp4JiCzdK8Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-create-class-features-plugin@^7.10.5", "@babel/helper-create-class-features-plugin@^7.7.0": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz#f037ad794264f729eda1889f4ee210b870999092" - integrity sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.4" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" - integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== - dependencies: - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz#7cd04b57dfcf82fce9aeae7d4e4452fa31b8c7c4" - integrity sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-transforms@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz#ca1f01fdb84e48c24d7506bb818c961f1da8805d" - integrity sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - lodash "^4.17.13" - -"@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.7.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@babel/helper-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.4.tgz#59b373daaf3458e5747dece71bbaf45f9676af6d" - integrity sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" - integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-simple-access@^7.10.4", "@babel/helper-simple-access@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== - dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-split-export-declaration@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" - integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helpers@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== - dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.0.0", "@babel/parser@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.4.tgz#9eedf27e1998d87739fb5028a5120557c06a1a64" - integrity sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA== - -"@babel/parser@^7.11.0", "@babel/parser@^7.7.2": - version "7.11.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9" - integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA== - -"@babel/plugin-proposal-async-generator-functions@^7.7.0": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.0.tgz#ac54e728ecf81d90e8f4d2a9c05a890457107917" - integrity sha512-tufDcFA1Vj+eWvwHN+jvMN6QsV5o+vUlytNKrbMiCeDL0F2j92RURzUsUMWE5EJkLyWxjdUslCsMQa9FWth16A== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-dynamic-import@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.7.4.tgz#7db302c83bc30caa89e38fee935635ef6bd11c28" - integrity sha512-TbYHmr1Gl1UC7Vo2HVuj/Naci5BEGNZ0AJhzqD2Vpr6QPFWpUmBRLrIDjedzx7/CShq0bRDS2gI4FIs77VHLVQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.7.4" - -"@babel/plugin-proposal-numeric-separator@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" - integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.6.2": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.7.4.tgz#3f04c2de1a942cbd3008324df8144b9cbc0ca0ba" - integrity sha512-JmgaS+ygAWDR/STPe3/7y0lNlHgS+19qZ9aC06nYLwQ/XB7c0q5Xs+ksFU3EDnp9EiEsO0dnRAOKeyLHTZuW3A== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.7.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-dynamic-import@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.7.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-typescript@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" - integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-async-to-generator@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-block-scoping@^7.6.3": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-classes@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-destructuring@^7.6.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-for-of@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-function-name@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== - dependencies: - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" - integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== - dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.7.0": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== - dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - -"@babel/plugin-transform-new-target@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-object-super@^7.5.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz#7b4d137c87ea7adc2a0f3ebf53266871daa6fced" - integrity sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-parameters@^7.4.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" - integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" - integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.4.tgz#86baf0fcccfe58084e06446a80858e1deae8f291" - integrity sha512-FTK3eQFrPv2aveerUSazFmGygqIdTtvskG50SnGnbEUnRPcGx2ylBhdFIzoVS1ty44hEgcPoCAyw5r3VDEq+Ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-jsx@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" - integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-runtime@7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz#2669f67c1fae0ae8d8bf696e4263ad52cb98b6f8" - integrity sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.6.2": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typescript@^7.7.2": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" - integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-typescript" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/preset-env@7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" - integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.0" - "@babel/plugin-proposal-dynamic-import" "^7.7.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-syntax-top-level-await" "^7.7.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.7.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.3" - "@babel/plugin-transform-classes" "^7.7.0" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.7.0" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.7.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.7.0" - "@babel/plugin-transform-modules-systemjs" "^7.7.0" - "@babel/plugin-transform-modules-umd" "^7.7.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.7.0" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.6.2" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.7.0" - "@babel/types" "^7.7.1" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" - -"@babel/preset-modules@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.1.tgz#add61473e3182771b36930c1312f3c56c114e406" - integrity sha512-x/kt2aAZlgcFnP3P851fkkb2s4FmTiyGic58pkWMaRK9Am3u9KkH1ttHGjwlsKu7/TVJsLEBXZnjUxqsid3tww== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.7.0.tgz#8ab0c4787d98cf1f5f22dabf115552bf9e4e406c" - integrity sha512-IXXgSUYBPHUGhUkH+89TR6faMcBtuMW0h5OHbMuVbL3/5wK2g6a2M2BBpkLa+Kw0sAHiZ9dNVgqJMDP/O4GRBA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.7.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - -"@babel/preset-typescript@7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.7.2.tgz#f71c8bba2ae02f11b29dbf7d6a35f47bbe011632" - integrity sha512-1B4HthAelaLGfNRyrWqJtBEjXX1ulThCrLQ5B2VOtEAznWFIFXFJahgXImqppy66lx/Oh+cOSCQdJzZqh2Jh5g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.7.2" - -"@babel/runtime@7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" - integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw== - dependencies: - regenerator-runtime "^0.13.2" - -"@babel/runtime@^7.8.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.4.tgz#a6724f1a6b8d2f6ea5236dbfe58c7d7ea9c5eb99" - integrity sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4", "@babel/template@^7.7.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/traverse@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.4.tgz#e642e5395a3b09cc95c8e74a27432b484b697818" - integrity sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.7.2": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" - integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.4.4", "@babel/types@^7.7.1", "@babel/types@^7.7.2": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - -"@mapbox/eslint-config-mapbox@^1.0.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@mapbox/eslint-config-mapbox/-/eslint-config-mapbox-1.2.1.tgz#f0dc80d29a336a5477b146d9d32a75afc310a5e4" - integrity sha512-hhE2sN7L/RO+MhdHIhmpL0KLhA/sWxV1WWH998fmGimI40XDbBgG1Z4d8nTlfuf9jaRDJ88/uklSBvFRhvMeDA== - -"@mapbox/s3urls@^1.5.3": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@mapbox/s3urls/-/s3urls-1.5.3.tgz#8578f51941af2ba836623f4941a761515ce92ff1" - integrity sha1-hXj1GUGvK6g2Yj9JQadhUVzpL/E= - dependencies: - "@mapbox/eslint-config-mapbox" "^1.0.0" - minimist "^1.1.0" - s3signed "^0.1.0" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@next/polyfill-nomodule@9.3.2": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@next/polyfill-nomodule/-/polyfill-nomodule-9.3.2.tgz#f8e282fdeb448eb6b70bcc18c5d46c911072687a" - integrity sha512-kEa7v3trZmW6iWeTJrhg+ZsE9njae7mLkgyZB5M1r975JHr5PQ69B5aX7hrEAj7aAJYvCKETgAczx4gGR8MOzQ== - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= - -"@serverless/cli@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@serverless/cli/-/cli-1.5.1.tgz#10d5573ad467c8000ee41540fbae591301a941fb" - integrity sha512-YUVPGutE8VEbIPCb6aHfePec5kKA1iaiMyLb8snXWYDLy/EWW1Dkff/DiLgeNEy6jqV4n+9lng92re+tMi+U6g== - dependencies: - "@serverless/core" "^1.1.2" - "@serverless/template" "^1.1.3" - "@serverless/utils" "^1.1.0" - ansi-escapes "^4.3.1" - chalk "^2.4.2" - chokidar "^3.4.0" - dotenv "^8.2.0" - figures "^3.2.0" - minimist "^1.2.5" - prettyoutput "^1.2.0" - strip-ansi "^5.2.0" - -"@serverless/component-metrics@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@serverless/component-metrics/-/component-metrics-1.0.8.tgz#a552d694863e36ee9b5095cc9cc0b5387c8dcaf9" - integrity sha512-lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang== - dependencies: - node-fetch "^2.6.0" - shortid "^2.2.14" - -"@serverless/components@^2.31.6": - version "2.31.7" - resolved "https://registry.yarnpkg.com/@serverless/components/-/components-2.31.7.tgz#96b1d6e043d197ff0a816af208e35b243daf3260" - integrity sha512-Mq0nZPeuGaTMQqr8l0QNLbf3nJSxiAru19zg5MrjgcZuHixoDASL6GqOjGt5uwta2i33U9BTdMDq3/MrRmsSsA== - dependencies: - "@serverless/inquirer" "^1.1.2" - "@serverless/platform-client" "^1.0.0" - "@serverless/platform-client-china" "^1.0.18" - "@serverless/platform-sdk" "^2.3.1" - "@serverless/utils" "^1.1.0" - adm-zip "^0.4.14" - ansi-escapes "^4.3.1" - axios "^0.19.2" - chalk "^2.4.2" - chokidar "^3.4.0" - dotenv "^8.2.0" - figures "^3.2.0" - fs-extra "^8.1.0" - globby "^10.0.2" - got "^9.6.0" - graphlib "^2.1.8" - https-proxy-agent "^5.0.0" - ini "^1.3.5" - js-yaml "^3.14.0" - minimist "^1.2.5" - moment "^2.27.0" - open "^7.0.4" - prettyoutput "^1.2.0" - ramda "^0.26.1" - semver "^7.3.2" - stream.pipeline-shim "^1.1.0" - strip-ansi "^5.2.0" - traverse "^0.6.6" - uuid "^3.4.0" - ws "^7.3.0" - -"@serverless/core@^1.0.0", "@serverless/core@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@serverless/core/-/core-1.1.2.tgz#96a2ac428d81c0459474e77db6881ebdd820065d" - integrity sha512-PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ== - dependencies: - fs-extra "^7.0.1" - js-yaml "^3.13.1" - package-json "^6.3.0" - ramda "^0.26.1" - semver "^6.1.1" - -"@serverless/enterprise-plugin@^3.6.14": - version "3.6.14" - resolved "https://registry.yarnpkg.com/@serverless/enterprise-plugin/-/enterprise-plugin-3.6.14.tgz#07da189b98836cc842990ba769d82ea0294502da" - integrity sha512-JB26Anb5t80/wZzF0s4EIh2qSrvHDTaiLjgeFoCoEzBJZlSxZTJHva1ei3rfni0DwAtg4tm0qdRG2opyrqBP2A== - dependencies: - "@serverless/event-mocks" "^1.1.1" - "@serverless/platform-client" "^0.25.14" - "@serverless/platform-sdk" "^2.3.1" - chalk "^2.4.2" - child-process-ext "^2.1.1" - chokidar "^3.4.0" - cli-color "^2.0.0" - dependency-tree "^7.2.1" - find-process "^1.4.3" - flat "^5.0.0" - fs-extra "^8.1.0" - iso8601-duration "^1.2.0" - isomorphic-fetch "^2.2.1" - js-yaml "^3.14.0" - jsonata "^1.8.3" - jszip "^3.5.0" - lodash "^4.17.15" - memoizee "^0.4.14" - moment "^2.27.0" - node-dir "^0.1.17" - node-fetch "^2.6.0" - regenerator-runtime "^0.13.5" - semver "^6.3.0" - simple-git "^1.132.0" - source-map-support "^0.5.19" - update-notifier "^2.5.0" - uuid "^3.4.0" - yamljs "^0.3.0" - -"@serverless/event-mocks@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@serverless/event-mocks/-/event-mocks-1.1.1.tgz#7064b99ccc29d9a8e9b799f413dbcfd64ea3b7ee" - integrity sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A== - dependencies: - "@types/lodash" "^4.14.123" - lodash "^4.17.11" - -"@serverless/inquirer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@serverless/inquirer/-/inquirer-1.1.2.tgz#4afe53eec757907f5e90060a75bb7d557b8ab603" - integrity sha512-2c5A6HSWwXluknPNJ2s+Z4WfBwP7Kn6kgsEKD+5xlXpDpBFsRku/xJyO9eqRCwxTM41stgHNC6TRsZ03+wH/rw== - dependencies: - chalk "^2.0.1" - inquirer "^6.5.2" - ncjsm "^4.0.1" - -"@serverless/platform-client-china@^1.0.18": - version "1.0.22" - resolved "https://registry.yarnpkg.com/@serverless/platform-client-china/-/platform-client-china-1.0.22.tgz#4ad933fbfc40683534568d10e8f79c1c08b05031" - integrity sha512-jqH8r9YzBHcDxOTY5ZxAYf0IV8Lo/DZ7AugpiLlXp44yeL+WELhiBYzVvKVk03vSkWbG5vVgqTU/RZyDXDaYCA== - dependencies: - "@serverless/utils-china" "^0.1.16" - archiver "^4.0.1" - dotenv "^8.2.0" - fs-extra "^8.1.0" - https-proxy-agent "^5.0.0" - isomorphic-ws "^4.0.1" - js-yaml "^3.14.0" - jwt-decode "^2.2.0" - minimatch "^3.0.4" - pify "^5.0.0" - querystring "^0.2.0" - stream.pipeline-shim "^1.1.0" - traverse "^0.6.6" - urlencode "^1.1.0" - ws "^7.3.0" - -"@serverless/platform-client@^0.25.14": - version "0.25.14" - resolved "https://registry.yarnpkg.com/@serverless/platform-client/-/platform-client-0.25.14.tgz#b6bf08defbc9d7686b44101856fec96b45239c72" - integrity sha512-ww5GBt5QEHYppLH8X+gEFiuMoFu9xdXK0bEROYbuxUliiB0IfXTXLzWR5whhi/S94R7pTnJ4O+WUiFj0PcV/tQ== - dependencies: - adm-zip "^0.4.13" - axios "^0.19.2" - https-proxy-agent "^5.0.0" - isomorphic-ws "^4.0.1" - js-yaml "^3.13.1" - jwt-decode "^2.2.0" - minimatch "^3.0.4" - querystring "^0.2.0" - traverse "^0.6.6" - ws "^7.2.1" - -"@serverless/platform-client@^1.0.0": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@serverless/platform-client/-/platform-client-1.0.4.tgz#1a2771a8af9c434edbffac050894770a25b596c8" - integrity sha512-zK89L1ojS+ocirlG3V/30FcXOr071nZ9t/aM3y4gz1dn0Oe+Py599+1V6IlFn5M99NnFaD+tLXXU4I3WMXxSEA== - dependencies: - adm-zip "^0.4.13" - axios "^0.19.2" - https-proxy-agent "^5.0.0" - isomorphic-ws "^4.0.1" - js-yaml "^3.13.1" - jwt-decode "^2.2.0" - minimatch "^3.0.4" - querystring "^0.2.0" - traverse "^0.6.6" - ws "^7.2.1" - -"@serverless/platform-sdk@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@serverless/platform-sdk/-/platform-sdk-2.3.1.tgz#623fe23063d4ccaa7214d20ceb2d9bc368795b9d" - integrity sha512-EiSizya9bK0+5uae3GH9uXuWAchZplkLO0tWOAXtnU5QWSg5zicANL9jKCw0dyhjUOvbcO0ddhFlG8EGYvJFSA== - dependencies: - chalk "^2.4.1" - https-proxy-agent "^4.0.0" - is-docker "^1.1.0" - isomorphic-fetch "^2.2.1" - jwt-decode "^2.2.0" - opn "^5.5.0" - querystring "^0.2.0" - ramda "^0.25.0" - rc "^1.2.8" - regenerator-runtime "^0.13.1" - source-map-support "^0.5.12" - uuid "^3.3.2" - write-file-atomic "^2.4.2" - ws "<7.0.0" - -"@serverless/template@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@serverless/template/-/template-1.1.3.tgz#7b9e3736cc1124f176c4823fa08977cae62ae971" - integrity sha512-hcMiX523rkp6kHeKnM1x6/dXEY+d1UFSr901yVKeeCgpFy4u33UI9vlKaPweAZCF6Ahzqywf01IsFTuBVadCrQ== - dependencies: - "@serverless/component-metrics" "^1.0.8" - "@serverless/core" "^1.0.0" - graphlib "^2.1.7" - traverse "^0.6.6" - -"@serverless/utils-china@^0.1.16": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@serverless/utils-china/-/utils-china-0.1.17.tgz#58d5f4dc35d87646c8c5b5aaa4f84601bc1b8172" - integrity sha512-GhveUbvj32whixPOztLhHJdLZUP5L3Ni+giOyM2vOl00Dnf1oklau2QCiDxvSWj5+ZlBGxyDMRJUXAfO1F6SPA== - dependencies: - "@tencent-sdk/capi" "^0.2.17" - dijkstrajs "^1.0.1" - dot-qs "0.2.0" - duplexify "^4.1.1" - end-of-stream "^1.4.4" - https-proxy-agent "^5.0.0" - object-assign "^4.1.1" - protobufjs "^6.9.0" - socket.io-client "^2.3.0" - winston "3.2.1" - -"@serverless/utils@^1.1.0", "@serverless/utils@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@serverless/utils/-/utils-1.2.0.tgz#d32f2be6e9db84419c1da4b8e0e8b3706e1c69a7" - integrity sha512-aI/cpGVUhWbJUR8QDMtPue28EU4ViG/L4/XKuZDfAN2uNQv3NRjwEFIBi/cxyfQnMTYVtMLe9wDjuwzOT4ENzA== - dependencies: - chalk "^2.0.1" - lodash "^4.17.15" - rc "^1.2.8" - type "^2.0.0" - uuid "^3.4.0" - write-file-atomic "^2.4.3" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - -"@sls-next/next-aws-lambda@^2.0.5-alpha.0": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@sls-next/next-aws-lambda/-/next-aws-lambda-2.6.1.tgz#3bb898429af6bc330424d92dd80727210ea4be79" - integrity sha512-5t5LtIEhYoK87Ng9X+FH5mfgqkbnJJeCKzVpOOrUoaTIW8Oo7xFt96vcfkiMACsQ3VZBR+qzPZWzZcLRXtBf+A== - -"@sls-next/next-aws-lambda@^2.6.0-alpha.1": - version "2.6.0-alpha.1" - resolved "https://registry.yarnpkg.com/@sls-next/next-aws-lambda/-/next-aws-lambda-2.6.0-alpha.1.tgz#53ba5d8b8f9bb805afc2d39039afd9528786135f" - integrity sha512-p3EzfHMsn9Z11CDRvQJ5f15WIDjXkSwZuJtQVYRNFgVhMLTXre8SmFYpSq9DU0fjM4xaEBUc3ar2VKgdVvZAYg== - -"@sls-next/serverless-plugin@^2.6.0-alpha.2": - version "2.6.0-alpha.2" - resolved "https://registry.yarnpkg.com/@sls-next/serverless-plugin/-/serverless-plugin-2.6.0-alpha.2.tgz#8749c678591ace6cca9c0789ed5d8af3d2db2390" - integrity sha512-vGW8Clg3OSYjaF0VdW5kIQMqjhxqIl5fDUhQwGmOnunB7qh5phkKIa+BH0GCkcfDLCptVim4VSQAqM8GZGN5yA== - dependencies: - "@mapbox/s3urls" "^1.5.3" - "@sls-next/next-aws-lambda" "^2.6.0-alpha.1" - chalk "^2.4.2" - debug "^4.1.1" - fs-extra "^7.0.1" - js-yaml "^3.12.1" - klaw "^3.0.0" - lodash.clonedeep "^4.5.0" - lodash.merge "^4.6.1" - mime "^2.4.0" - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@tencent-sdk/capi@^0.2.17": - version "0.2.17" - resolved "https://registry.yarnpkg.com/@tencent-sdk/capi/-/capi-0.2.17.tgz#3bc59afde707419cfb89d33feb03bdd291d9d3f0" - integrity sha512-DIenMFJXrd4yb35BbW/7LiikCQotbm9HEBG9S4HKV47tcKt6e4nZrNPO3R2hHgQ2jdo0xfqmlUlCP0O4Q3b9pw== - dependencies: - "@types/chalk" "^2.2.0" - "@types/object-assign" "^4.0.30" - "@types/request" "^2.48.3" - "@types/request-promise-native" "^1.0.17" - object-assign "^4.1.1" - querystring "^0.2.0" - request "^2.88.0" - request-promise-native "^1.0.8" - -"@types/caseless@*": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8" - integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w== - -"@types/chalk@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-2.2.0.tgz#b7f6e446f4511029ee8e3f43075fb5b73fbaa0ba" - integrity sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw== - dependencies: - chalk "*" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/glob@^7.1.1": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.2.tgz#06ca26521353a545d94a0adc74f38a59d232c987" - integrity sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/json-schema@^7.0.4": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" - integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== - -"@types/lodash@^4.14.123": - version "4.14.157" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.157.tgz#fdac1c52448861dfde1a2e1515dbc46e54926dc8" - integrity sha512-Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ== - -"@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "14.0.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.14.tgz#24a0b5959f16ac141aeb0c5b3cd7a15b7c64cbce" - integrity sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ== - -"@types/node@^13.7.0": - version "13.13.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.12.tgz#9c72e865380a7dc99999ea0ef20fc9635b503d20" - integrity sha512-zWz/8NEPxoXNT9YyF2osqyA9WjssZukYpgI4UYZpOjcyqwIUqWGkcCionaEb9Ki+FULyPyvNFpg/329Kd2/pbw== - -"@types/object-assign@^4.0.30": - version "4.0.30" - resolved "https://registry.yarnpkg.com/@types/object-assign/-/object-assign-4.0.30.tgz#8949371d5a99f4381ee0f1df0a9b7a187e07e652" - integrity sha1-iUk3HVqZ9Dge4PHfCpt6GH4H5lI= - -"@types/request-promise-native@^1.0.17": - version "1.0.17" - resolved "https://registry.yarnpkg.com/@types/request-promise-native/-/request-promise-native-1.0.17.tgz#74a2d7269aebf18b9bdf35f01459cf0a7bfc7fab" - integrity sha512-05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg== - dependencies: - "@types/request" "*" - -"@types/request@*", "@types/request@^2.48.3": - version "2.48.5" - resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.5.tgz#019b8536b402069f6d11bee1b2c03e7f232937a0" - integrity sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ== - dependencies: - "@types/caseless" "*" - "@types/node" "*" - "@types/tough-cookie" "*" - form-data "^2.5.0" - -"@types/tough-cookie@*": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.0.tgz#fef1904e4668b6e5ecee60c52cc6a078ffa6697d" - integrity sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A== - -"@typescript-eslint/typescript-estree@^2.29.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" - integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@zeit/next-css@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@zeit/next-css/-/next-css-1.0.1.tgz#4f784e841e7ca1b21b3468a902e2c1fa95a3e75c" - integrity sha512-yfHPRy/ne/5SddVClsoy+fpU7e0Cs1gkWA67/wm2uIu+9rznF45yQLxHEt5dPGF3h6IiIh7ZtIgA8VV8YKq87A== - dependencies: - css-loader "1.0.0" - extracted-loader "1.0.4" - find-up "2.1.0" - ignore-loader "0.1.2" - mini-css-extract-plugin "0.4.3" - postcss-loader "3.0.0" - -accepts@~1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn@^6.2.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -adjust-sourcemap-loader@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz#6471143af75ec02334b219f54bc7970c52fb29a4" - integrity sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA== - dependencies: - assert "1.4.1" - camelcase "5.0.0" - loader-utils "1.2.3" - object-path "0.11.4" - regex-parser "2.2.10" - -adm-zip@^0.4.13, adm-zip@^0.4.14: - version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" - integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -agent-base@5: - version "5.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" - integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== - -agent-base@6: - version "6.0.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.0.tgz#5d0101f19bbfaed39980b22ae866de153b93f09a" - integrity sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw== - dependencies: - debug "4" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.0.tgz#5c894537098785926d71e696114a53ce768ed773" - integrity sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw== - -ajv-keywords@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -amphtml-validator@1.0.30: - version "1.0.30" - resolved "https://registry.yarnpkg.com/amphtml-validator/-/amphtml-validator-1.0.30.tgz#b722ea5e965d0cc028cbdc360fc76b97e669715e" - integrity sha512-CaEm2ivIi4M4QTiFnCE9t4MRgawCf88iAV/+VsS0zEw6T4VBU6zoXcgn4L+dt6/WZ/NYxKpc38duSoRLqZJhNQ== - dependencies: - colors "1.2.5" - commander "2.15.1" - promise "8.0.1" - -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= - dependencies: - string-width "^2.0.0" - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0, ansi-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-module-path@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" - integrity sha1-ZBqlXft9am8KgUHEucCqULbCTdU= - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -archive-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" - integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA= - dependencies: - file-type "^4.2.0" - -archiver-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" - integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== - dependencies: - glob "^7.1.4" - graceful-fs "^4.2.0" - lazystream "^1.0.0" - lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" - lodash.flatten "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.union "^4.6.0" - normalize-path "^3.0.0" - readable-stream "^2.0.0" - -archiver@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz#9db7819d4daf60aec10fe86b16cb9258ced66ea0" - integrity sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg== - dependencies: - archiver-utils "^2.1.0" - async "^2.6.3" - buffer-crc32 "^0.2.1" - glob "^7.1.4" - readable-stream "^3.4.0" - tar-stream "^2.1.0" - zip-stream "^2.1.2" - -archiver@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz#3f722b121777e361ca9fad374ecda38e77e63c7f" - integrity sha512-/YV1pU4Nhpf/rJArM23W6GTUjT0l++VbjykrCRua1TSXrn+yM8Qs7XvtwSiRse0iCe49EPNf7ktXnPsWuSb91Q== - dependencies: - archiver-utils "^2.1.0" - async "^2.6.3" - buffer-crc32 "^0.2.1" - glob "^7.1.6" - readable-stream "^3.6.0" - tar-stream "^2.1.2" - zip-stream "^3.0.1" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arity-n@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" - integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - is-string "^1.0.5" - -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flatmap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= - dependencies: - util "0.10.3" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-module-types@^2.3.1, ast-module-types@^2.3.2, ast-module-types@^2.4.0, ast-module-types@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-2.6.0.tgz#f9f367fd273bbe01e52f2c51b5f46b65801d5d7f" - integrity sha512-zXSoVaMrf2R+r+ISid5/9a8SXm1LLdkhHzh6pSRhj9jklzruOOl1hva1YmFT33wAstg/f9ZndJAlq1BSrFLSGA== - -ast-types@0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" - integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async-retry@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" - integrity sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q== - dependencies: - retry "0.12.0" - -async-sema@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.0.0.tgz#9e22d6783f0ab66a1cf330e21a905e39b3b3a975" - integrity sha512-zyCMBDl4m71feawrxYcVbHxv/UUkqm4nKJiLu3+l9lfiQha6jQ/9dxhrXLnzzBXVFqCTDwiUkZOz9XFbdEGQsg== - -async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.6.1, async@^2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autodll-webpack-plugin@0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/autodll-webpack-plugin/-/autodll-webpack-plugin-0.4.2.tgz#36e98fbaf30c235d1d5d076330464ac80901415c" - integrity sha512-JLrV3ErBNKVkmhi0celM6PJkgYEtztFnXwsNBApjinpVHtIP3g/m2ZZSOvsAe7FoByfJzDhpOXBKFbH3k2UNjw== - dependencies: - bluebird "^3.5.0" - del "^3.0.0" - find-cache-dir "^1.0.0" - lodash "^4.17.4" - make-dir "^1.0.0" - memory-fs "^0.4.1" - read-pkg "^2.0.0" - tapable "^1.0.0" - webpack-merge "^4.1.0" - webpack-sources "^1.0.1" - -autoprefixer@^9.6.1: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -aws-sdk@^2.0.4, aws-sdk@^2.706.0: - version "2.708.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.708.0.tgz#6d4345c6d7a06f3d076ce9f0c54958563b2a721e" - integrity sha512-5xXOvbgBXUUKBaJlJUcJIFc2EVMa4Z4f7ILbKIpApoFonW1kHiwBLMBi0MarY4aco7RaodgbqhaOBar4kmSHKw== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.15.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - uuid "3.3.2" - xml2js "0.4.19" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -axios@^0.19.2: - version "0.19.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== - dependencies: - follow-redirects "1.5.10" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - -babel-loader@8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== - dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - pify "^4.0.1" - -babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-syntax-jsx@6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= - -babel-plugin-transform-define@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-define/-/babel-plugin-transform-define-2.0.0.tgz#79c3536635f899aabaf830b194b25519465675a4" - integrity sha512-0dv5RNRUlUKxGYIIErl01lpvi8b7W2R04Qcl1mCj70ahwZcgiklfXnFlh4FGnRh6aayCfSZKdhiMryVzcq5Dmg== - dependencies: - lodash "^4.17.11" - traverse "0.6.6" - -babel-plugin-transform-react-remove-prop-types@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" - integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -bl@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" - integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -boxen@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" - integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^2.4.2" - cli-boxes "^2.2.0" - string-width "^3.0.0" - term-size "^1.2.0" - type-fest "^0.3.0" - widest-line "^2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" - integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg== - dependencies: - caniuse-lite "^1.0.30001017" - electron-to-chromium "^1.3.322" - node-releases "^1.1.44" - -browserslist@^4.12.0, browserslist@^4.6.0, browserslist@^4.6.4, browserslist@^4.8.5: - version "4.14.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" - integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== - dependencies: - caniuse-lite "^1.0.30001111" - electron-to-chromium "^1.3.523" - escalade "^3.0.2" - node-releases "^1.1.60" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@4.9.2, buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.1.0, buffer@^5.2.1, buffer@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" - integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^3.0.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^2.0.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -camelcase@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - -camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001017, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111: - version "1.0.30001112" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001112.tgz#0fffc3b934ff56ff0548c37bc9dad7d882bcf672" - integrity sha512-J05RTQlqsatidif/38aN3PGULCLrg8OYQOlJUKbeYVzC2mGZkZLIztwRlB3MtrfLmawUmjFlNJvy/uhwniIe1Q== - -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -caw@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" - integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== - dependencies: - get-proxy "^2.0.0" - isurl "^1.0.0-alpha5" - tunnel-agent "^0.6.0" - url-to-options "^1.0.1" - -chalk@*: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -child-process-ext@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/child-process-ext/-/child-process-ext-2.1.1.tgz#f7cf4e68fef60c4c8ee911e1b402413191467dc3" - integrity sha512-0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA== - dependencies: - cross-spawn "^6.0.5" - es5-ext "^0.10.53" - log "^6.0.0" - split2 "^3.1.1" - stream-promise "^3.2.0" - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.3.0, chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chokidar@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" - integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -ci-info@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= - -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cli-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.0.tgz#11ecfb58a79278cf6035a60c54e338f9d837897c" - integrity sha512-a0VZ8LeraW0jTuCkuAGMNufareGHhyZU9z8OGsW0gXd1hZGi1SRuNRXdbGkraBBKnhyUhyebFWnRbp+dIn0f0A== - dependencies: - ansi-regex "^2.1.1" - d "^1.0.1" - es5-ext "^0.10.51" - es6-iterator "^2.0.3" - memoizee "^0.4.14" - timers-ext "^0.1.7" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-spinners@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" - integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone-response@1.0.2, clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" - integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -colornames@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" - integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= - -colors@1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" - integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== - -colors@1.3.x: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - -colors@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -colorspace@1.1.x: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" - integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== - dependencies: - color "3.0.x" - text-hex "1.0.x" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== - -commander@2.19.x: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commander@^2.11.0, commander@^2.13.0, commander@^2.16.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.8.1: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= - dependencies: - graceful-readlink ">= 1.0.0" - -commander@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-emitter@^1.2.0, component-emitter@^1.2.1, component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -compose-function@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" - integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= - dependencies: - arity-n "^1.0.4" - -compress-commons@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz#9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610" - integrity sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q== - dependencies: - buffer-crc32 "^0.2.13" - crc32-stream "^3.0.1" - normalize-path "^3.0.0" - readable-stream "^2.3.6" - -compress-commons@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz#833944d84596e537224dd91cf92f5246823d4f1d" - integrity sha512-FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg== - dependencies: - buffer-crc32 "^0.2.13" - crc32-stream "^3.0.1" - normalize-path "^3.0.0" - readable-stream "^2.3.7" - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -conf@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conf/-/conf-5.0.0.tgz#6530308a36041bf010ab96b05a0f4aff5101c65d" - integrity sha512-lRNyt+iRD4plYaOSVTxu1zPWpaH0EOxgFIR1l3mpC/DGZ7XzhoGFMKmbl54LAgXcSu6knqWgOwdINkqm58N85A== - dependencies: - ajv "^6.10.0" - dot-prop "^5.0.0" - env-paths "^2.2.0" - json-schema-typed "^7.0.0" - make-dir "^3.0.0" - pkg-up "^3.0.1" - write-file-atomic "^3.0.0" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@1.7.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^0.3.3: - version "0.3.5" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" - integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookiejar@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.1.1: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cowsay-browser@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/cowsay-browser/-/cowsay-browser-1.1.8.tgz#afa446e80a0873fe740069face7c08133d13b870" - integrity sha1-r6RG6AoIc/50AGn6znwIEz0TuHA= - dependencies: - optimist "~0.6.1" - -crc32-stream@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85" - integrity sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w== - dependencies: - crc "^3.4.4" - readable-stream "^3.4.0" - -crc@^3.4.4: - version "3.8.0" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" - integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== - dependencies: - buffer "^5.1.0" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-fetch@3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" - integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew== - dependencies: - node-fetch "2.6.0" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56" - integrity sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA== - dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.0" - postcss "^6.0.23" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" - postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" - -css-loader@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.3.0.tgz#65f889807baec3197313965d6cda9899f936734d" - integrity sha512-x9Y1vvHe5RR+4tzwFdWExPueK00uqFTCw7mZy+9aE/X1SKWOArm5luaOrtJ4d05IpOwJ6S86b/tVcIdhw1Bu4A== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.23" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.1.1" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.2" - schema-utils "^2.6.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-selector-tokenizer@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" - integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - regexpu-core "^4.6.0" - -css@2.2.4, css@^2.0.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-simple@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-1.1.5.tgz#3a26829988ca20f5ffdb6d41c1df5b791db8a192" - integrity sha512-/zuE8EMVg7KFNR5Olj0ZnaMs3vtswcUcnr86zdVVCrhx3rY5DVDHWSiFE9/IGNl0SSVqi3AekPEnoNoLcQFHQw== - dependencies: - postcss "^7.0.32" - -cssnano-simple@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-1.0.0.tgz#a9322f7f4c192fad29c6d48afcb7927a9c5c597b" - integrity sha512-B7u9vvtXEqeU2rzdt+Kfw5O9Nd46R7KNjJoP7Y5lGQs6c7n1Et5Ilofh2W9OjBV/ZiJV5+7j9ShWgiYNtH/57A== - dependencies: - cssnano-preset-simple "^1.0.0" - postcss "^7.0.18" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -d@1, d@^1.0.0, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -dayjs@^1.8.28: - version "1.8.28" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.28.tgz#37aa6201df483d089645cb6c8f6cef6f0c4dbc07" - integrity sha512-ccnYgKC0/hPSGXxj7Ju6AV/BP4HUkXC2u15mikXT5mX9YorEaoi1bEKOmAqdkJHN4EEkmAf97SpH66Try5Mbeg== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@=3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decomment@^0.9.2: - version "0.9.2" - resolved "https://registry.yarnpkg.com/decomment/-/decomment-0.9.2.tgz#4dffdfbe96a32b0fdf301f758b7f92f7fbe82ab4" - integrity sha512-sblyUmOJZxiL7oJ2ogJS6jtl/67+CTOW87SrYE/96u3PhDYikYoLCdLzcnceToiQejOLlqNnLCkaxx/+nE/ehg== - dependencies: - esprima "4.0.1" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k= - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.2.0, decompress@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -deferred@^0.7.11: - version "0.7.11" - resolved "https://registry.yarnpkg.com/deferred/-/deferred-0.7.11.tgz#8c3f272fd5e6ce48a969cb428c0d233ba2146322" - integrity sha512-8eluCl/Blx4YOGwMapBvXRKxHXhA8ejDXYzEaK8+/gtcm8hRMhSLmXSqDmNUKNc/C8HNSmuyyp/hflhqDAvK2A== - dependencies: - d "^1.0.1" - es5-ext "^0.10.50" - event-emitter "^0.3.5" - next-tick "^1.0.0" - timers-ext "^0.1.7" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -dependency-tree@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-7.2.1.tgz#41c8f6feb54a2ae32475c0158e8d2c2696bb7f54" - integrity sha512-nBxnjkqDW4LqAzBazy60V4lE0mAtIQ+oers/GIIvVvGYVdCD9+RNNd4G9jjstyz7ZFVg/j/OiYCvK5MjoVqA2w== - dependencies: - commander "^2.19.0" - debug "^4.1.1" - filing-cabinet "^2.5.1" - precinct "^6.2.0" - typescript "^3.7.5" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detective-amd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-3.0.0.tgz#40c8e21e229df8bca1ee2d4b952a7b67b01e2a5a" - integrity sha512-kOpKHyabdSKF9kj7PqYHLeHPw+TJT8q2u48tZYMkIcas28el1CYeLEJ42Nm+563/Fq060T5WknfwDhdX9+kkBQ== - dependencies: - ast-module-types "^2.3.1" - escodegen "^1.8.0" - get-amd-module-type "^3.0.0" - node-source-walk "^4.0.0" - -detective-cjs@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-3.1.1.tgz#18da3e39a002d2098a1123d45ce1de1b0d9045a0" - integrity sha512-JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg== - dependencies: - ast-module-types "^2.4.0" - node-source-walk "^4.0.0" - -detective-es6@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-2.2.0.tgz#8f2baba3f8cd90a5cfd748f5ac436f0158ed2585" - integrity sha512-fSpNY0SLER7/sVgQZ1NxJPwmc9uCTzNgdkQDhAaj8NPYwr7Qji9QBcmbNvtMCnuuOGMuKn3O7jv0An+/WRWJZQ== - dependencies: - node-source-walk "^4.0.0" - -detective-less@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/detective-less/-/detective-less-1.0.2.tgz#a68af9ca5f69d74b7d0aa190218b211d83b4f7e3" - integrity sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA== - dependencies: - debug "^4.0.0" - gonzales-pe "^4.2.3" - node-source-walk "^4.0.0" - -detective-postcss@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-3.0.1.tgz#511921951f66135e17d0ece2e7604c6e4966c9c6" - integrity sha512-tfTS2GdpUal5NY0aCqI4dpEy8Xfr88AehYKB0iBIZvo8y2g3UsrcDnrp9PR2FbzoW7xD5Rip3NJW7eCSvtqdUw== - dependencies: - debug "^4.1.1" - is-url "^1.2.4" - postcss "^7.0.2" - postcss-values-parser "^1.5.0" - -detective-sass@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-3.0.1.tgz#496b819efd1f5c4dd3f0e19b43a8634bdd6927c4" - integrity sha512-oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw== - dependencies: - debug "^4.1.1" - gonzales-pe "^4.2.3" - node-source-walk "^4.0.0" - -detective-scss@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-2.0.1.tgz#06f8c21ae6dedad1fccc26d544892d968083eaf8" - integrity sha512-VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ== - dependencies: - debug "^4.1.1" - gonzales-pe "^4.2.3" - node-source-walk "^4.0.0" - -detective-stylus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-1.0.0.tgz#50aee7db8babb990381f010c63fabba5b58e54cd" - integrity sha1-UK7n24uruZA4HwEMY/q7pbWOVM0= - -detective-typescript@^5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-5.8.0.tgz#c46776571e26bad6c9ada020cb3cb4e5625d1311" - integrity sha512-SrsUCfCaDTF64QVMHMidRal+kmkbIc5zP8cxxZPsomWx9vuEUjBlSJNhf7/ypE5cLdJJDI4qzKDmyzqQ+iz/xg== - dependencies: - "@typescript-eslint/typescript-estree" "^2.29.0" - ast-module-types "^2.6.0" - node-source-walk "^4.2.0" - typescript "^3.8.3" - -devalue@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/devalue/-/devalue-2.0.1.tgz#5d368f9adc0928e47b77eea53ca60d2f346f9762" - integrity sha512-I2TiqT5iWBEyB8GRfTDP0hiLZ0YeDJZ+upDxjBfOC2lebO5LezQMv7QvIUTzdb64jQyAKLf1AHADtGN+jw6v8Q== - -diagnostics@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" - integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== - dependencies: - colorspace "1.1.x" - enabled "1.0.x" - kuler "1.0.x" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -dom-serializer@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domhandler@3.0.0, domhandler@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" - integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== - dependencies: - domelementtype "^2.0.1" - -domutils@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.0.0.tgz#15b8278e37bfa8468d157478c58c367718133c08" - integrity sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg== - dependencies: - dom-serializer "^0.2.1" - domelementtype "^2.0.1" - domhandler "^3.0.0" - -domutils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.1.0.tgz#7ade3201af43703fde154952e3a868eb4b635f16" - integrity sha512-CD9M0Dm1iaHfQ1R/TI+z3/JWp/pgub0j4jIQKH89ARR4ATAV2nbaOQS5XxU9maJP5jHaPdDDQSEHuE2UmpUTKg== - dependencies: - dom-serializer "^0.2.1" - domelementtype "^2.0.1" - domhandler "^3.0.0" - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -dot-prop@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== - dependencies: - is-obj "^2.0.0" - -dot-qs@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dot-qs/-/dot-qs-0.2.0.tgz#d36517fe24b7cda61fce7a5026a0024afaf5a439" - integrity sha1-02UX/iS3zaYfznpQJqACSvr1pDk= - -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - -download@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" - integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== - dependencies: - archive-type "^4.0.0" - caw "^2.0.1" - content-disposition "^0.5.2" - decompress "^4.2.0" - ext-name "^5.0.0" - file-type "^8.1.0" - filenamify "^2.0.0" - get-stream "^3.0.0" - got "^8.3.1" - make-dir "^1.2.0" - p-event "^2.1.0" - pify "^3.0.0" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -duplexify@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" - integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -duration@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/duration/-/duration-0.2.2.tgz#ddf149bc3bc6901150fe9017111d016b3357f529" - integrity sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg== - dependencies: - d "1" - es5-ext "~0.10.46" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ecdsa-sig-formatter@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.322, electron-to-chromium@^1.3.523: - version "1.3.526" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.526.tgz#0e004899edf75afc172cce1b8189aac5dca646aa" - integrity sha512-HiroW5ZbGwgT8kCnoEO8qnGjoTPzJxduvV/Vv/wH63eo2N6Zj3xT5fmmaSPAPUM05iN9/5fIEkIg3owTtV6QZg== - -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -enabled@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" - integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= - dependencies: - env-variable "0.0.x" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= - dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@~3.4.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c" - integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~4.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~6.1.0" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" - integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -enhanced-resolve@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz#5d43bda4a0fd447cb0ebbe71bef8deff8805ad0d" - integrity sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -entities@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -env-variable@0.0.x: - version "0.0.6" - resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808" - integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.12, es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.47, es5-ext@^0.10.49, es5-ext@^0.10.50, es5-ext@^0.10.51, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@2.0.3, es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promisify@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" - integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg== - -es6-set@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-weak-map@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - -escalade@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" - integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escodegen@^1.8.0: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-plugin-react@^7.12.4: - version "7.20.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.2.tgz#b0d72abcd94c59c842338aa09c800808219ea77d" - integrity sha512-J3BdtsPNbcF/CG9HdyLx7jEtC7tuODODGldkS9P1zU2WMoHPdcsN2enUopgIaec5f9eYhSFI5zQAaWA/dgv2zw== - dependencies: - array-includes "^3.1.1" - array.prototype.flatmap "^1.2.3" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.4.1" - object.entries "^1.1.2" - object.fromentries "^2.0.2" - object.values "^1.1.1" - prop-types "^15.7.2" - resolve "^1.17.0" - string.prototype.matchall "^4.0.2" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -esniff@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esniff/-/esniff-1.1.0.tgz#c66849229f91464dede2e0d40201ed6abf65f2ac" - integrity sha1-xmhJIp+RRk3t4uDUAgHtar9l8qw= - dependencies: - d "1" - es5-ext "^0.10.12" - -esprima@4.0.1, esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -essentials@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/essentials/-/essentials-1.1.1.tgz#03befbfbee7078301741279b38a806b6ca624821" - integrity sha512-SmaxoAdVu86XkZQM/u6TYSu96ZlFGwhvSk1l9zAkznFuQkMb9mRDS2iq/XWDow7R8OwBwdYH8nLyDKznMD+GWw== - -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@1.8.1, etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-emitter@^0.3.5, event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= - -events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -ext-list@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" - integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== - dependencies: - mime-db "^1.28.0" - -ext-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" - integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== - dependencies: - ext-list "^2.0.0" - sort-keys-length "^1.0.0" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extracted-loader@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/extracted-loader/-/extracted-loader-1.0.4.tgz#e1a3f1791813c14091a1959e261e23e95dd90115" - integrity sha512-G8A0hT/WCWIjesZm7BwbWdST5dQ08GNnCpTrJT/k/FYzuiJwlV1gyWjnuoizOzAR4jpEYXG2J++JyEKN/EB26Q== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-glob@^3.0.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fast-safe-stringify@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== - dependencies: - reusify "^1.0.4" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -fecha@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" - integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-exists-dazinatorfork@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/file-exists-dazinatorfork/-/file-exists-dazinatorfork-1.0.2.tgz#cd8d0d85f63e39dc81eceb0b687c44a2cca95c47" - integrity sha512-r70c72ln2YHzQINNfxDp02hAhbGkt1HffZ+Du8oetWDLjDtFja/Lm10lUaSh9e+wD+7VDvPee0b0C9SAy8pWZg== - -file-loader@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz#5fb124d2369d7075d70a9a5abecd12e60a95215e" - integrity sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.0.0" - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= - -file-type@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" - integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU= - -file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - integrity sha1-LdvqfHP/42No365J3DOMBYwritY= - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== - -file-type@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" - integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" - integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -filing-cabinet@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-2.5.1.tgz#f920976d46310710595ed995f033a301570ef6ab" - integrity sha512-GWOdObzou2L0HrJUk8MpJa01q0ZOwuTwTssM2+P+ABJWEGlVWd6ueEatANFdin94/3rdkVSdqpH14VqCNqp3RA== - dependencies: - app-module-path "^2.2.0" - commander "^2.13.0" - debug "^4.1.1" - decomment "^0.9.2" - enhanced-resolve "^4.1.0" - is-relative-path "^1.0.2" - module-definition "^3.0.0" - module-lookup-amd "^6.1.0" - resolve "^1.11.1" - resolve-dependency-path "^2.0.0" - sass-lookup "^3.0.0" - stylus-lookup "^3.0.1" - typescript "^3.0.3" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finally-polyfill@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/finally-polyfill/-/finally-polyfill-0.1.0.tgz#2a17b16581d9477db16a703c7b79a898ac0b7d50" - integrity sha512-J1LEcZ5VXe1l3sEO+S//WqL5wcJ/ep7QeKJA6HhNZrcEEFj0eyC8IW3DEZhxySI2bx3r85dwAXz+vYPGuHx5UA== - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-process@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/find-process/-/find-process-1.4.3.tgz#25f9105dc32e42abad4636752c37c51cd57dce45" - integrity sha512-+IA+AUsQCf3uucawyTwMWcY+2M3FXq3BRvw3S+j5Jvydjk31f/+NPWpYZOJs+JUs2GvxH4Yfr6Wham0ZtRLlPA== - dependencies: - chalk "^2.0.1" - commander "^2.11.0" - debug "^2.6.8" - -find-requires@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-requires/-/find-requires-1.0.0.tgz#a4a750ed37133dee8a9cc8efd2cc56aca01dd96d" - integrity sha512-UME7hNwBfzeISSFQcBEDemEEskpOjI/shPrpJM5PI4DSdn6hX0dmz+2dL70blZER2z8tSnTRL+2rfzlYgtbBoQ== - dependencies: - es5-ext "^0.10.49" - esniff "^1.1.0" - -find-up@2.1.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.0.0.tgz#c367f8024de92efb75f2d4906536d24682065c3a" - integrity sha512-zoH7ZWPkRdgwYCDVoQTzqjG8JSPANhtvLhh4KVUHyKnaUJJrNeFmWIkTcNuJmR3GLMEmGYEf2S2bjgx26JTF+Q== - dependencies: - locate-path "^5.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find/-/find-0.3.0.tgz#4082e8fc8d8320f1a382b5e4f521b9bc50775cb8" - integrity sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw== - dependencies: - traverse-chain "~0.1.0" - -flat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.0.tgz#dab7d71d60413becb0ac2de9bf4304495e3af6af" - integrity sha512-6KSMM+cHHzXC/hpldXApL2S8Uz+QZv+tq5o/L0KQYleoG+GcwrnIJhTWC7tCOiKQp8D/fIvryINU1OZCCwevjA== - dependencies: - is-buffer "~2.0.4" - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -follow-redirects@^1.0.0: - version "1.12.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.12.1.tgz#de54a6205311b93d60398ebc01cf7015682312b6" - integrity sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -fork-ts-checker-webpack-plugin@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" - integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^3.3.0" - micromatch "^3.1.10" - minimatch "^3.0.4" - semver "^5.6.0" - tapable "^1.0.0" - worker-rpc "^0.1.0" - -form-data@^2.3.1, form-data@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formidable@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" - integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0, from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fs2@^0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/fs2/-/fs2-0.3.8.tgz#8930ac841240b7cf95f5a19e2c72824b87cbc1b0" - integrity sha512-HxOTRiFS3PqwAOmlp1mTwLA+xhQBdaP82b5aBamc/rHKFVyn4qL8YpngaAleD52PNMzBm6TsGOoU/Hq+bAfBhA== - dependencies: - d "^1.0.1" - deferred "^0.7.11" - es5-ext "^0.10.53" - event-emitter "^0.3.5" - ignore "^5.1.4" - memoizee "^0.4.14" - type "^2.0.0" - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-amd-module-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz#bb334662fa04427018c937774570de495845c288" - integrity sha512-99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw== - dependencies: - ast-module-types "^2.3.2" - node-source-walk "^4.0.0" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-proxy@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" - integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== - dependencies: - npm-conf "^1.1.0" - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.0.3, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -gonzales-pe@^4.2.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" - integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== - dependencies: - minimist "^1.2.5" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -got@^8.3.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= - -graphlib@^2.1.7, graphlib@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - -gzip-size@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -html-entities@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" - integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== - -htmlparser2@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" - integrity sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== - dependencies: - domelementtype "^2.0.1" - domhandler "^3.0.0" - domutils "^2.0.0" - entities "^2.0.0" - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-proxy@1.18.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" - integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== - dependencies: - agent-base "5" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.11, iconv-lite@~0.4.13: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= - dependencies: - postcss "^6.0.1" - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@1.1.13, ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-loader@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ignore-loader/-/ignore-loader-0.1.2.tgz#d81f240376d0ba4f0d778972c3ad25874117a463" - integrity sha1-2B8kA3bQuk8Nd4lyw60lh0EXpGM= - -ignore@^4.0.3: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.1, ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@^6.0.0, inquirer@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== - dependencies: - es-abstract "^1.17.0-next.1" - has "^1.0.3" - side-channel "^1.0.2" - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - -is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@2.0.0, is-docker@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" - integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== - -is-docker@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-1.1.0.tgz#f04374d4eee5310e9a8e113bf1495411e46176a1" - integrity sha1-8EN01O7lMQ6ajhE78UlUEeRhdqE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.0, is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-promise@^2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - -is-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" - integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== - dependencies: - has-symbols "^1.0.1" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-relative-path@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-relative-path/-/is-relative-path-1.0.2.tgz#091b46a0d67c1ed0fe85f1f8cfdde006bb251d46" - integrity sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY= - -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-url@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -iso8601-duration@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/iso8601-duration/-/iso8601-duration-1.2.0.tgz#5fa6fc180a8fe95ad6a6721c9bdd9069cb59e80e" - integrity sha512-ErTBd++b17E8nmWII1K1uZtBgD1E8RjyvwmxlCjPHNqHMD7gmcMHOw0E8Ro/6+QT4PhHRSnnMo7bxa1vFPkwhg== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isomorphic-fetch@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jest-worker@24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jmespath@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.12.1, js-yaml@^3.13.1, js-yaml@^3.14.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-cycle@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/json-cycle/-/json-cycle-1.3.0.tgz#c4f6f7d926c2979012cba173b06f9cae9e866d3f" - integrity sha512-FD/SedD78LCdSvJaOUQAXseT8oQBb5z6IVYaQaCrVUlu9zOAr1BDdKyVYQaSD/GDsAMrXpKcOyBD4LIl8nfjHw== - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-refs@^3.0.15: - version "3.0.15" - resolved "https://registry.yarnpkg.com/json-refs/-/json-refs-3.0.15.tgz#1089f4acf263a3152c790479485195cd6449e855" - integrity sha512-0vOQd9eLNBL18EGl5yYaO44GhixmImes2wiYn9Z3sag3QnehWrYWlB9AFtMxCL2Bj3fyxgDYkxGFEU/chlYssw== - dependencies: - commander "~4.1.1" - graphlib "^2.1.8" - js-yaml "^3.13.1" - lodash "^4.17.15" - native-promise-only "^0.8.1" - path-loader "^1.0.10" - slash "^3.0.0" - uri-js "^4.2.2" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-typed@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" - integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== - dependencies: - minimist "^1.2.0" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.0, json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonata@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/jsonata/-/jsonata-1.8.3.tgz#4d0c7337166e813689485e4fe7c7b5f067df3f80" - integrity sha512-r6ztI6ohbpRo77AxBm6vMs3aHZi2L2PaakW7TCPwSkeGcuAZ/SxXGLWH2Npwqq5+YBM/fg/g0EXg/pI9HvXQ8Q== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonwebtoken@8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== - dependencies: - jws "^3.2.2" - lodash.includes "^4.3.0" - lodash.isboolean "^3.0.3" - lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^5.6.0" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jsx-ast-utils@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" - integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== - dependencies: - array-includes "^3.1.1" - object.assign "^4.1.0" - -jszip@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6" - integrity sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - set-immediate-shim "~1.0.1" - -jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jws@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== - dependencies: - jwa "^1.4.1" - safe-buffer "^5.0.1" - -jwt-decode@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79" - integrity sha1-fYa9VmefWM5qhHBKZX3TkruoGnk= - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" - integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== - dependencies: - graceful-fs "^4.1.9" - -kuler@1.0.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" - integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ== - dependencies: - colornames "^1.1.1" - -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= - dependencies: - package-json "^4.0.0" - -launch-editor@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" - integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== - dependencies: - chalk "^2.3.0" - shell-quote "^1.6.1" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= - dependencies: - readable-stream "^2.0.5" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.1, loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.curry@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" - integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA= - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= - -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.includes@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" - integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= - -lodash.isboolean@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" - integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= - -lodash.isinteger@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" - integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= - -lodash.isnumber@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" - integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= - -lodash.merge@^4.6.1: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.once@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.union@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= - -lodash@4.17.x, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.19: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - -log@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/log/-/log-6.0.0.tgz#1e8e655f0389148e729d9ddd6d3bcbe8b93b8d21" - integrity sha512-sxChESNYJ/EcQv8C7xpmxhtTOngoXuMEqGDAkhXBEmt3MAzM3SM/TmIBOqnMEVdrOv1+VgZoYbo6U2GemQiU4g== - dependencies: - d "^1.0.0" - duration "^0.2.2" - es5-ext "^0.10.49" - event-emitter "^0.3.5" - sprintf-kit "^2.0.0" - type "^1.0.1" - -logform@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2" - integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== - dependencies: - colors "^1.2.1" - fast-safe-stringify "^2.0.4" - fecha "^4.2.0" - ms "^2.1.1" - triple-beam "^1.3.0" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@5.1.1, lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-queue@0.1: - version "0.1.0" - resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" - integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= - dependencies: - es5-ext "~0.10.2" - -make-dir@^1.0.0, make-dir@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -memoizee@^0.4.14: - version "0.4.14" - resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" - integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== - dependencies: - d "1" - es5-ext "^0.10.45" - es6-weak-map "^2.0.2" - event-emitter "^0.3.5" - is-promise "^2.1" - lru-queue "0.1" - next-tick "1" - timers-ext "^0.1.5" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.0, mime@^2.4.2: - version "2.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mini-css-extract-plugin@0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz#98d60fcc5d228c3e36a9bd15a1d6816d6580beb8" - integrity sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg== - dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -mini-css-extract-plugin@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" - integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -module-definition@^3.0.0, module-definition@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.3.0.tgz#aae06d68c99c5f93841e59b8a4469b974956d4d4" - integrity sha512-HTplA9xwDzH67XJFC1YvZMUElWJD28DV0dUq7lhTs+JKJamUOWA/CcYWSlhW5amJO66uWtY7XdltT+LfX0wIVg== - dependencies: - ast-module-types "^2.6.0" - node-source-walk "^4.0.0" - -module-lookup-amd@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/module-lookup-amd/-/module-lookup-amd-6.2.0.tgz#70600008b3f26630fde9ef9ae6165ac69de6ecbb" - integrity sha512-uxHCj5Pw9psZiC1znjU2qPsubt6haCSsN9m7xmIdoTciEgfxUkE1vhtDvjHPuOXEZrVJhjKgkmkP+w73rRuelQ== - dependencies: - commander "^2.8.1" - debug "^4.1.0" - file-exists-dazinatorfork "^1.0.2" - find "^0.3.0" - requirejs "^2.3.5" - requirejs-config-file "^3.1.1" - -moment@^2.27.0: - version "2.27.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" - integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanoid@^2.1.0: - version "2.1.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== - -nanomatch@^1.2.13, nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-promise-only@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" - integrity sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE= - -native-url@0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" - integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== - dependencies: - querystring "^0.2.0" - -ncjsm@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/ncjsm/-/ncjsm-4.0.1.tgz#fa51ac13140392ba2450d8e55b91a74a8ef13d2c" - integrity sha512-gxh5Sgait8HyclaulfhgetHQGyhFm00ZQqISIfqtwFVnyWJ20rk+55SUamo9n3KhM6Vk63gemKPxIDYiSV/xZw== - dependencies: - builtin-modules "^3.1.0" - deferred "^0.7.11" - es5-ext "^0.10.51" - es6-set "^0.1.5" - find-requires "^1.0.0" - fs2 "^0.3.6" - type "^2.0.0" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -neo-async@^2.6.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -next-tick@1, next-tick@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -next@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/next/-/next-9.3.2.tgz#fabf907f5397ae3581d4227789f625533fb4e64e" - integrity sha512-KVNnnFyvtO1DwSEyMgt3wtxpkprnGCldEOyMXbt9Zxf8RcCw3YnRImbg8mVgrcXJRzkQpve4bdJKYY5MVwT/RA== - dependencies: - "@ampproject/toolbox-optimizer" "2.0.1" - "@babel/core" "7.7.2" - "@babel/plugin-proposal-class-properties" "7.7.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "7.7.4" - "@babel/plugin-proposal-numeric-separator" "7.8.3" - "@babel/plugin-proposal-object-rest-spread" "7.6.2" - "@babel/plugin-proposal-optional-chaining" "7.7.4" - "@babel/plugin-syntax-bigint" "7.8.3" - "@babel/plugin-syntax-dynamic-import" "7.2.0" - "@babel/plugin-transform-modules-commonjs" "7.7.0" - "@babel/plugin-transform-runtime" "7.6.2" - "@babel/preset-env" "7.7.1" - "@babel/preset-modules" "0.1.1" - "@babel/preset-react" "7.7.0" - "@babel/preset-typescript" "7.7.2" - "@babel/runtime" "7.7.2" - "@babel/types" "7.7.4" - "@next/polyfill-nomodule" "9.3.2" - amphtml-validator "1.0.30" - async-retry "1.2.3" - async-sema "3.0.0" - autodll-webpack-plugin "0.4.2" - babel-core "7.0.0-bridge.0" - babel-loader "8.0.6" - babel-plugin-syntax-jsx "6.18.0" - babel-plugin-transform-define "2.0.0" - babel-plugin-transform-react-remove-prop-types "0.4.24" - browserslist "4.8.3" - cache-loader "4.1.0" - chalk "2.4.2" - ci-info "2.0.0" - compression "1.7.4" - conf "5.0.0" - content-type "1.0.4" - cookie "0.4.0" - css-loader "3.3.0" - cssnano-simple "1.0.0" - devalue "2.0.1" - escape-string-regexp "2.0.0" - etag "1.8.1" - file-loader "4.2.0" - finally-polyfill "0.1.0" - find-up "4.0.0" - fork-ts-checker-webpack-plugin "3.1.1" - fresh "0.5.2" - gzip-size "5.1.1" - http-proxy "1.18.0" - ignore-loader "0.1.2" - is-docker "2.0.0" - is-wsl "2.1.1" - jest-worker "24.9.0" - json5 "2.1.1" - jsonwebtoken "8.5.1" - launch-editor "2.2.1" - loader-utils "2.0.0" - lodash.curry "4.1.1" - lru-cache "5.1.1" - mini-css-extract-plugin "0.8.0" - native-url "0.2.6" - node-fetch "2.6.0" - ora "3.4.0" - path-to-regexp "6.1.0" - pnp-webpack-plugin "1.5.0" - postcss-flexbugs-fixes "4.2.0" - postcss-loader "3.0.0" - postcss-preset-env "6.7.0" - prop-types "15.7.2" - prop-types-exact "1.2.0" - raw-body "2.4.0" - react-error-overlay "5.1.6" - react-is "16.8.6" - recast "0.18.5" - resolve-url-loader "3.1.1" - sass-loader "8.0.2" - send "0.17.1" - source-map "0.6.1" - string-hash "1.1.3" - strip-ansi "5.2.0" - style-loader "1.0.0" - styled-jsx "3.2.5" - terser "4.4.2" - thread-loader "2.1.3" - unfetch "4.1.0" - url "0.11.0" - use-subscription "1.1.1" - watchpack "2.0.0-beta.13" - webpack "4.42.0" - webpack-dev-middleware "3.7.0" - webpack-hot-middleware "2.25.0" - webpack-sources "1.4.3" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-dir@^0.1.17: - version "0.1.17" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= - dependencies: - minimatch "^3.0.2" - -node-fetch@2.6.0, node-fetch@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.44, node-releases@^1.1.60: - version "1.1.60" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" - integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== - -node-source-walk@^4.0.0, node-source-walk@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-4.2.0.tgz#c2efe731ea8ba9c03c562aa0a9d984e54f27bc2c" - integrity sha512-hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA== - dependencies: - "@babel/parser" "^7.0.0" - -normalize-html-whitespace@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz#5e3c8e192f1b06c3b9eee4b7e7f28854c7601e34" - integrity sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA== - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-conf@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.3.tgz#d12db044e03cd2ca3d77c0570d87225b02e1e6ea" - integrity sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg== - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-path@0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" - integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.entries@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - has "^1.0.3" - -object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -one-time@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" - integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4= - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -open@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/open/-/open-7.0.4.tgz#c28a9d315e5c98340bf979fdcb2e58664aa10d83" - integrity sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimist@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -ora@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== - dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-event@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" - integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== - dependencies: - p-timeout "^2.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@~1.0.2, pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-loader@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/path-loader/-/path-loader-1.0.10.tgz#dd3d1bd54cb6f2e6423af2ad334a41cc0bce4cf6" - integrity sha512-CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA== - dependencies: - native-promise-only "^0.8.1" - superagent "^3.8.3" - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427" - integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw== - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-up@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -pnp-webpack-plugin@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" - integrity sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg== - dependencies: - ts-pnp "^1.1.2" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-flexbugs-fixes@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.0.tgz#662b3dcb6354638b9213a55eed8913bcdc8d004a" - integrity sha512-QRE0n3hpkxxS/OGvzOa+PDuy4mh/Jg4o9ui22/ko5iGYOG3M5dfJabjnAZjTdh2G9F85c7Hv8hWcEDEKW/xceQ== - dependencies: - postcss "^7.0.26" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" - integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== - dependencies: - postcss "^7.0.2" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-initial@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" - integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== - dependencies: - lodash.template "^4.5.0" - postcss "^7.0.2" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-modules-extract-imports@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" - integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== - dependencies: - postcss "^6.0.1" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" - integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss-values-parser@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz#5d9fa63e2bcb0179ce48f3235303765eb89f3047" - integrity sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@7.0.21: - version "7.0.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" - integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^6.0.1, postcss@^6.0.23: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.18, postcss@^7.0.2, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -precinct@^6.2.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/precinct/-/precinct-6.3.1.tgz#8ad735a8afdfc48b56ed39c9ad3bf999b6b928dc" - integrity sha512-JAwyLCgTylWminoD7V0VJwMElWmwrVSR6r9HaPWCoswkB4iFzX7aNtO7VBfAVPy+NhmjKb8IF8UmlWJXzUkOIQ== - dependencies: - commander "^2.20.3" - debug "^4.1.1" - detective-amd "^3.0.0" - detective-cjs "^3.1.1" - detective-es6 "^2.1.0" - detective-less "^1.0.2" - detective-postcss "^3.0.1" - detective-sass "^3.0.1" - detective-scss "^2.0.1" - detective-stylus "^1.0.0" - detective-typescript "^5.8.0" - module-definition "^3.3.0" - node-source-walk "^4.2.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^1.0.0, prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -prettyoutput@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/prettyoutput/-/prettyoutput-1.2.0.tgz#fef93f2a79c032880cddfb84308e2137e3674b22" - integrity sha512-G2gJwLzLcYS+2m6bTAe+CcDpwak9YpcvpScI0tE4WYb2O3lEZD/YywkMNpGqsSx5wttGvh2UXaKROTKKCyM2dw== - dependencies: - colors "1.3.x" - commander "2.19.x" - lodash "4.17.x" - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-queue@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/promise-queue/-/promise-queue-2.2.5.tgz#2f6f5f7c0f6d08109e967659c79b88a9ed5e93b4" - integrity sha1-L29ffA9tCBCelnZZx5uIqe1ek7Q= - -promise@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450" - integrity sha1-5F1osAoXZHttpxG/he1u1HII9FA= - dependencies: - asap "~2.0.3" - -prop-types-exact@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" - integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== - dependencies: - has "^1.0.3" - object.assign "^4.1.0" - reflect.ownkeys "^0.2.0" - -prop-types@15.7.2, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -protobufjs@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.9.0.tgz#c08b2bf636682598e6fabbf0edb0b1256ff090bd" - integrity sha512-LlGVfEWDXoI/STstRDdZZKb/qusoAWUnmLg9R8OLSO473mBLWHowx8clbX5/+mKDEI+v7GzjoK9tRPZMMcoTrg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" "^13.7.0" - long "^4.0.0" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@^6.5.1: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0, querystring@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -ramda@^0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" - integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ== - -ramda@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" - integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-dom@^16.8.4: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-error-overlay@5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.6.tgz#0cd73407c5d141f9638ae1e0c63e7b2bf7e9929d" - integrity sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q== - -react-is@16.8.6: - version "16.8.6" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" - integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== - -react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react@^16.8.4: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - -recast@0.18.5: - version "0.18.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.18.5.tgz#9d5adbc07983a3c8145f3034812374a493e0fe4d" - integrity sha512-sD1WJrpLQAkXGyQZyGzTM75WJvyAd98II5CHdK3IYbt/cZlU0UzCRVU11nUFNXX9fBVEt4E9ajkMjBlUlG+Oog== - dependencies: - ast-types "0.13.2" - esprima "~4.0.0" - private "^0.1.8" - source-map "~0.6.1" - -reflect.ownkeys@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" - integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.13.1, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-runtime@^0.13.2: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regex-parser@2.2.10: - version "2.2.10" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" - integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA== - -regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpu-core@^4.6.0, regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== - dependencies: - rc "^1.2.8" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -replaceall@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/replaceall/-/replaceall-0.1.6.tgz#81d81ac7aeb72d7f5c4942adf2697a3220688d8e" - integrity sha1-gdgax663LX9cSUKt8ml6MiBojY4= - -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== - dependencies: - lodash "^4.17.15" - -request-promise-native@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== - dependencies: - request-promise-core "1.1.3" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -requirejs-config-file@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/requirejs-config-file/-/requirejs-config-file-3.1.2.tgz#de8c0b3eebdf243511c994a8a24b006f8b825997" - integrity sha512-sdLWywcDuNz7EIOhenSbRfT4YF84nItDv90coN2htbokjmU2QeyQuSBZILQUKNksepl8UPVU+hgYySFaDxbJPQ== - dependencies: - esprima "^4.0.0" - make-dir "^2.1.0" - stringify-object "^3.2.1" - -requirejs@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9" - integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-dependency-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz#11700e340717b865d216c66cabeb4a2a3c696736" - integrity sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w== - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-url-loader@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz#28931895fa1eab9be0647d3b2958c100ae3c0bf0" - integrity sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ== - dependencies: - adjust-sourcemap-loader "2.0.0" - camelcase "5.3.1" - compose-function "3.0.3" - convert-source-map "1.7.0" - es6-iterator "2.0.3" - loader-utils "1.2.3" - postcss "7.0.21" - rework "1.0.1" - rework-visit "1.0.0" - source-map "0.6.1" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0, resolve@^1.11.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -responselike@1.0.2, responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rework-visit@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" - integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= - -rework@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" - integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= - dependencies: - convert-source-map "^0.3.3" - css "^2.0.0" - -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@^6.4.0: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - -s3signed@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/s3signed/-/s3signed-0.1.0.tgz#ae03b86259413215ed43e99285c8c347579735fb" - integrity sha1-rgO4YllBMhXtQ+mShcjDR1eXNfs= - dependencies: - aws-sdk "^2.0.4" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-loader@8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" - integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.6.1" - semver "^6.3.0" - -sass-lookup@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sass-lookup/-/sass-lookup-3.0.0.tgz#3b395fa40569738ce857bc258e04df2617c48cac" - integrity sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg== - dependencies: - commander "^2.16.0" - -sax@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= - -sax@>=0.6.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.6.0, schema-utils@^2.6.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -seek-bzip@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w= - dependencies: - commander "~2.8.1" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.1, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== - dependencies: - randombytes "^2.1.0" - -serverless@^1.39.1: - version "1.74.1" - resolved "https://registry.yarnpkg.com/serverless/-/serverless-1.74.1.tgz#1c71996e23531a105e3eebeb1d46ac3016a518cd" - integrity sha512-j/IlaoAb20/RADC3+WE95Elk/1UW88FzXCPsj8DX8YHXNWe+V+mMJpHP33xdCwPjEIH/0dt/YbT4+yVCoGzrqg== - dependencies: - "@serverless/cli" "^1.5.1" - "@serverless/components" "^2.31.6" - "@serverless/enterprise-plugin" "^3.6.14" - "@serverless/inquirer" "^1.1.2" - "@serverless/utils" "^1.2.0" - archiver "^3.1.1" - async "^1.5.2" - aws-sdk "^2.706.0" - bluebird "^3.7.2" - boxen "^3.2.0" - cachedir "^2.3.0" - chalk "^2.4.2" - child-process-ext "^2.1.1" - d "^1.0.1" - dayjs "^1.8.28" - decompress "^4.2.1" - download "^7.1.0" - essentials "^1.1.1" - fast-levenshtein "^2.0.6" - filesize "^3.6.1" - fs-extra "^8.1.0" - get-stdin "^6.0.0" - globby "^9.2.0" - graceful-fs "^4.2.4" - https-proxy-agent "^5.0.0" - is-docker "^1.1.0" - is-wsl "^2.2.0" - js-yaml "^3.14.0" - json-cycle "^1.3.0" - json-refs "^3.0.15" - jwt-decode "^2.2.0" - lodash "^4.17.15" - memoizee "^0.4.14" - mkdirp "^0.5.4" - nanomatch "^1.2.13" - ncjsm "^4.0.1" - node-fetch "^2.6.0" - object-hash "^2.0.3" - p-limit "^2.3.0" - promise-queue "^2.2.5" - rc "^1.2.8" - replaceall "^0.1.6" - semver "^6.3.0" - semver-regex "^2.0.0" - stream-promise "^3.2.0" - tabtab "^3.0.2" - type "^2.0.0" - untildify "^3.0.3" - update-notifier "^2.5.0" - uuid "^3.4.0" - write-file-atomic "^2.4.3" - yaml-ast-parser "0.0.43" - yargs-parser "^18.1.3" - -set-immediate-shim@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shell-quote@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -shortid@^2.2.14: - version "2.2.15" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.15.tgz#2b902eaa93a69b11120373cd42a1f1fe4437c122" - integrity sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw== - dependencies: - nanoid "^2.1.0" - -side-channel@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" - integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== - dependencies: - es-abstract "^1.17.0-next.1" - object-inspect "^1.7.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-git@^1.132.0: - version "1.132.0" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.132.0.tgz#53ac4c5ec9e74e37c2fd461e23309f22fcdf09b1" - integrity sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg== - dependencies: - debug "^4.0.1" - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-client@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" - integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~4.1.0" - engine.io-client "~3.4.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" - integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -sort-keys-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" - integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg= - dependencies: - sort-keys "^1.0.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.12, source-map-support@^0.5.19, source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split2@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.1.1.tgz#c51f18f3e06a8c4469aaab487687d8d956160bb6" - integrity sha512-emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q== - dependencies: - readable-stream "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sprintf-kit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sprintf-kit/-/sprintf-kit-2.0.0.tgz#47499d636e9cc68f2f921d30eb4f0b911a2d7835" - integrity sha512-/0d2YTn8ZFVpIPAU230S9ZLF8WDkSSRWvh/UOLM7zzvkCchum1TtouRgyV8OfgOaYilSGU4lSSqzwBXJVlAwUw== - dependencies: - es5-ext "^0.10.46" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-promise@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/stream-promise/-/stream-promise-3.2.0.tgz#bad976f2d0e1f11d56cc95cc11907cfd869a27ff" - integrity sha512-P+7muTGs2C8yRcgJw/PPt61q7O517tDHiwYEzMWo1GSBCcZedUMT/clz7vUNsSxFphIlJ6QUL4GexQKlfJoVtA== - dependencies: - "2-thenable" "^1.0.0" - es5-ext "^0.10.49" - is-stream "^1.1.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -stream.finished@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stream.finished/-/stream.finished-1.2.0.tgz#40fc76092792d08a43388184fd0d42c6ab9523a0" - integrity sha512-xSp45f/glqd035qAtFUxAGvhotjY/EfqDNV+rQW8o7ffligiOjPaguTEvRzeQAhiQMCdkPEBrp5++S/rQyavWQ== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -stream.pipeline-shim@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/stream.pipeline-shim/-/stream.pipeline-shim-1.1.0.tgz#70c94a5f9a1ab84951694a2cc108bc7a47000cb5" - integrity sha512-pSi/SZZDbSA5l3YYjSmJadCoD74/qSe79r9ZVR21lD4bpf+khn5Umi6AlfJrD8I0KQfGSqm/7Yp48dmithM+Vw== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - stream.finished "^1.2.0" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-hash@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -strip-ansi@5.2.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-outer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -style-loader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz#1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82" - integrity sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.0.1" - -styled-jsx@3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-3.2.5.tgz#0172a3e13a0d6d8bf09167dcaf32cf7102d932ca" - integrity sha512-prEahkYwQHomUljJzXzrFnBmQrSMtWOBbXn8QeEkpfFkqMZQGshxzzp4H8ebBIsbVlHF/3+GSXMnmK/fp7qVYQ== - dependencies: - "@babel/types" "7.8.3" - babel-plugin-syntax-jsx "6.18.0" - convert-source-map "1.7.0" - loader-utils "1.2.3" - source-map "0.7.3" - string-hash "1.1.3" - stylis "3.5.4" - stylis-rule-sheet "0.0.10" - -stylis-rule-sheet@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" - integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw== - -stylis@3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe" - integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q== - -stylus-lookup@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/stylus-lookup/-/stylus-lookup-3.0.2.tgz#c9eca3ff799691020f30b382260a67355fefdddd" - integrity sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg== - dependencies: - commander "^2.8.1" - debug "^4.1.0" - -superagent@^3.8.3: - version "3.8.3" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" - integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA== - dependencies: - component-emitter "^1.2.0" - cookiejar "^2.1.0" - debug "^3.1.0" - extend "^3.0.0" - form-data "^2.3.1" - formidable "^1.2.0" - methods "^1.1.1" - mime "^1.4.1" - qs "^6.5.1" - readable-stream "^2.3.5" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -tabtab@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz#a2cea0f1035f88d145d7da77eaabbd3fe03e1ec9" - integrity sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg== - dependencies: - debug "^4.0.1" - es6-promisify "^6.0.0" - inquirer "^6.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" - untildify "^3.0.3" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -tar-stream@^2.1.0, tar-stream@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" - integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== - dependencies: - bl "^4.0.1" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" - integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^3.1.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.2.tgz#448fffad0245f4c8a277ce89788b458bfd7706e8" - integrity sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@4.6.7: - version "4.6.7" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" - integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - -thread-loader@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" - integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg== - dependencies: - loader-runner "^2.3.1" - loader-utils "^1.1.0" - neo-async "^2.6.0" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6, through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -timers-ext@^0.1.5, timers-ext@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" - integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== - dependencies: - es5-ext "~0.10.46" - next-tick "1" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -traverse-chain@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1" - integrity sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE= - -traverse@0.6.6, traverse@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - -triple-beam@^1.2.0, triple-beam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" - integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== - -ts-pnp@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== - -tslib@^1.8.1, tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tsutils@^3.17.1: - version "3.17.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" - integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.0.3, typescript@^3.7.5, typescript@^3.8.3: - version "3.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" - integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== - -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -unfetch@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" - integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" - integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== - -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-notifier@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -url@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -url@0.11.0, url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -urlencode@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/urlencode/-/urlencode-1.1.0.tgz#1f2ba26f013c85f0133f7a3ad6ff2730adf7cbb7" - integrity sha1-HyuibwE8hfATP3o61v8nMK33y7c= - dependencies: - iconv-lite "~0.4.11" - -use-subscription@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.1.1.tgz#5509363e9bb152c4fb334151d4dceb943beaa7bb" - integrity sha512-gk4fPTYvNhs6Ia7u8/+K7bM7sZ7O7AMfWtS+zPO8luH+zWuiGgGcrW0hL4MRWZSzXo+4ofNorf87wZwBKz2YdQ== - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@2.0.0-beta.13: - version "2.0.0-beta.13" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.13.tgz#9d9b0c094b8402139333e04eb6194643c8384f55" - integrity sha512-ZEFq2mx/k5qgQwgi6NOm+2ImICb8ngAkA/rZ6oyXZ7SgPn3pncf+nfhYTCrs3lmHwOxnPtGLTOuFLfpSMh1VMA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -watchpack@^1.6.0: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -webpack-dev-middleware@3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" - integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.2" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-hot-middleware@2.25.0: - version "2.25.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" - integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== - dependencies: - ansi-html "0.0.7" - html-entities "^1.2.0" - querystring "^0.2.0" - strip-ansi "^3.0.0" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.1.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@1.4.3, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@4.42.0: - version "4.42.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" - integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.1" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" - webpack-sources "^1.4.1" - -whatwg-fetch@>=0.10.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.1.0.tgz#49d630cdfa308dba7f2819d49d09364f540dbcc6" - integrity sha512-pgmbsVWKpH9GxLXZmtdowDIqtb/rvPyjjQv3z9wLcmgWKFHilKnZD3ldgrOlwJoPGOUluQsRPWd52yVkPfmI1A== - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -winston-transport@^4.3.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" - integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== - dependencies: - readable-stream "^2.3.7" - triple-beam "^1.2.0" - -winston@3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" - integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw== - dependencies: - async "^2.6.1" - diagnostics "^1.1.1" - is-stream "^1.1.0" - logform "^2.1.1" - one-time "0.0.4" - readable-stream "^3.1.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.3.0" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== - dependencies: - microevent.ts "~0.1.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0, write-file-atomic@^2.4.2, write-file-atomic@^2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@<7.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@^7.2.1, ws@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - -ws@~6.1.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" - integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yaml-ast-parser@0.0.43: - version "0.0.43" - resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" - integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== - -yamljs@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" - integrity sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ== - dependencies: - argparse "^1.0.7" - glob "^7.0.5" - -yargs-parser@^18.1.3: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - -zip-stream@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.3.tgz#26cc4bdb93641a8590dd07112e1f77af1758865b" - integrity sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q== - dependencies: - archiver-utils "^2.1.0" - compress-commons "^2.1.1" - readable-stream "^3.4.0" - -zip-stream@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz#cb8db9d324a76c09f9b76b31a12a48638b0b9708" - integrity sha512-r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ== - dependencies: - archiver-utils "^2.1.0" - compress-commons "^3.0.0" - readable-stream "^3.6.0" diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/README.md b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/README.md deleted file mode 100644 index 65fe640ee2..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/README.md +++ /dev/null @@ -1,22 +0,0 @@ -## app-using-cloudfront - -### Running the example - -```shell -git clone https://github.com/danielcondemarin/serverless-next.js -cd serverless-plugin/examples/app-using-cloudfront -``` - -#### Install dependencies - -```shell -npm install -``` - -#### Deploy - -`serverless deploy` - -The first deployment will take a while, typically 10-15 minutes for CloudFront to propagate the changes. However, deployments afterwards will be quick since the cloudfront distribution stays the same! - -After deployment completes, go to the CloudFront distribution URL provisioned and enjoy! diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/next.config.js b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/next.config.js deleted file mode 100644 index aa89ea15df..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/next.config.js +++ /dev/null @@ -1,7 +0,0 @@ -const withCSS = require("@zeit/next-css"); - -const config = { - target: "serverless" -}; - -module.exports = withCSS(config); diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/package.json b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/package.json deleted file mode 100644 index bc2070b599..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "app-using-cloudfront", - "version": "1.0.0", - "description": "Example nextjs application using a CloudFront distribution in front of the app", - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-next.js.git" - }, - "keywords": [ - "serverless", - "nextjs", - "lambda" - ], - "author": "Daniel Conde Marin ", - "license": "MIT", - "bugs": { - "url": "https://github.com/danielcondemarin/serverless-nextjs-plugin/issues" - }, - "homepage": "https://github.com/danielcondemarin/serverless-nextjs-plugin#readme", - "scripts": { - "start": "next dev" - }, - "dependencies": { - "@zeit/next-css": "^1.0.1", - "next": "^9.5.1", - "@sls-next/next-aws-lambda": "^2.0.5-alpha.0", - "react": "^16.8.4", - "react-dom": "^16.8.4", - "serverless-nextjs-plugin": "^2.0.0-alpha.0" - }, - "devDependencies": { - "eslint-plugin-react": "^7.12.4", - "serverless": "^1.39.1" - } -} diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/_error.js b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/_error.js deleted file mode 100644 index 6590e9405c..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/_error.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from "react"; - -class Error extends React.Component { - render() { - return

404 not found. (╯°□°)╯︵ ┻━┻

; - } -} - -export default Error; diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/about.js b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/about.js deleted file mode 100644 index 7b9bd5b1b0..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/about.js +++ /dev/null @@ -1,7 +0,0 @@ -import "./styles/about.css"; - -function About() { - return

Welcome to About!

; -} - -export default About; diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/index.js b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/index.js deleted file mode 100644 index 0d486dcfd5..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import Link from "next/link"; - -import "./styles/home.css"; - -function Index() { - return ( -
-
Welcome to next.js serverless ⚡
-
-
- Visit the{" "} - - about - {" "} - page -
-
- ); -} - -export default Index; diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/styles/about.css b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/styles/about.css deleted file mode 100644 index 7da18605f6..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/styles/about.css +++ /dev/null @@ -1,9 +0,0 @@ -.aboutPage { - font-size: 20px; - position: absolute; - top: 50%; - margin-top: -200px; - /* half of #content height*/ - left: 35%; - width: 100%; -} diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/styles/home.css b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/styles/home.css deleted file mode 100644 index b98881efb4..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/pages/styles/home.css +++ /dev/null @@ -1,9 +0,0 @@ -.homePage { - font-size: 20px; - position: absolute; - top: 50%; - margin-top: -200px; - /* half of #content height*/ - left: 35%; - width: 100%; -} diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/public/robots.txt b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/public/robots.txt deleted file mode 100644 index 6f27bb66a3..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: \ No newline at end of file diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/serverless.yml b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/serverless.yml deleted file mode 100644 index e4fb6a88d9..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/serverless.yml +++ /dev/null @@ -1,24 +0,0 @@ -service: app-using-cloudfront - -provider: - name: aws - runtime: nodejs8.10 - memorySize: 512 - -stage: prod -region: eu-west-1 - -plugins: - - serverless-nextjs-plugin - - serverless-offline - -custom: - serverless-nextjs: - assetsBucketName: cloudfront.example # replace with your own name - cloudFront: true - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/static/nextjs.png b/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/static/nextjs.png deleted file mode 100644 index 8b6a49068a..0000000000 Binary files a/packages/deprecated/serverless-plugin/examples/app-using-cloudfront/static/nextjs.png and /dev/null differ diff --git a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/README.md b/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/README.md deleted file mode 100644 index 34199fcc06..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/README.md +++ /dev/null @@ -1,29 +0,0 @@ -## app-with-custom-lambda-handler - -### Running the example - -```shell -git clone https://github.com/danielcondemarin/serverless-nextjs-plugin -cd serverless-nextjs-plugin/examples/app-with-custom-lambda-handler -``` - -#### Install dependencies - -```shell -npm install -``` - -_next.config.js_ - -```js -module.exports = { - ... - target: "serverless" -}; -``` - -#### Deploy - -`serverless deploy` - -After deployment is finished, visit the `/home` page, go to CloudWatch and check the LogGroup for the HomePage lambda to see the extra logging added by `my-lambda-handler.js` diff --git a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/my-lambda-handler.js b/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/my-lambda-handler.js deleted file mode 100644 index c44755dae3..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/my-lambda-handler.js +++ /dev/null @@ -1,14 +0,0 @@ -const compat = require("@sls-next/next-aws-lambda"); - -module.exports = (page) => { - const handler = (event, context, callback) => { - // let's add some logging - console.log("URL: ", event.path); - - // render page - compat(page)(event, context, callback); - - console.log("This is cool (☞゚∀゚)☞"); - }; - return handler; -}; diff --git a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/next.config.js b/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/next.config.js deleted file mode 100644 index 174c51be68..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/next.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - target: "serverless" -}; diff --git a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/package.json b/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/package.json deleted file mode 100644 index 9798a55245..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "app-with-custom-lambda-handler", - "version": "1.0.0", - "description": "Example nextjs serverless app using a custom lambda handler", - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-nextjs-plugin.git" - }, - "keywords": [ - "serverless", - "nextjs", - "lambda" - ], - "author": "Daniel Conde Marin ", - "license": "MIT", - "bugs": { - "url": "https://github.com/danielcondemarin/serverless-nextjs-plugin/issues" - }, - "homepage": "https://github.com/danielcondemarin/serverless-nextjs-plugin#readme", - "dependencies": { - "next": "^8.0.3", - "react": "^16.8.4", - "react-dom": "^16.8.4" - }, - "devDependencies": { - "eslint-plugin-react": "^7.12.4", - "serverless": "^1.39.1", - "serverless-nextjs-plugin": "^1.2.0" - } -} diff --git a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/pages/home.js b/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/pages/home.js deleted file mode 100644 index d25b7a77fd..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/pages/home.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from "react"; - -function Index() { - return
Welcome to next.js serverless ⚡
; -} - -export default Index; diff --git a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/serverless.yml b/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/serverless.yml deleted file mode 100644 index c4140dc830..0000000000 --- a/packages/deprecated/serverless-plugin/examples/app-with-custom-lambda-handler/serverless.yml +++ /dev/null @@ -1,22 +0,0 @@ -service: app-with-custom-handler - -provider: - name: aws - runtime: nodejs8.10 - memorySize: 512 - -stage: dev -region: eu-west-1 - -plugins: - - serverless-nextjs-plugin - -custom: - serverless-nextjs: - customHandler: ./my-lambda-handler.js - -package: - # exclude everything - # page handlers are automatically included by the plugin - exclude: - - ./** diff --git a/packages/deprecated/serverless-plugin/index.js b/packages/deprecated/serverless-plugin/index.js deleted file mode 100644 index 3056fa77f7..0000000000 --- a/packages/deprecated/serverless-plugin/index.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; - -const displayServiceInfo = require("./lib/displayServiceInfo"); -const parseNextConfiguration = require("./lib/parseNextConfiguration"); -const build = require("./lib/build"); -const PluginBuildDir = require("./classes/PluginBuildDir"); -const uploadStaticAssets = require("./lib/uploadStaticAssets"); -const addCustomStackResources = require("./lib/addCustomStackResources"); -const checkForChanges = require("./lib/checkForChanges"); - -class ServerlessNextJsPlugin { - constructor(serverless, options) { - this.serverless = serverless; - this.options = options; - this.commands = {}; - - this.build = build.bind(this); - this.addCustomStackResources = addCustomStackResources.bind(this); - this.checkForChanges = checkForChanges.bind(this); - this.uploadStaticAssets = uploadStaticAssets.bind(this); - - this.hooks = { - "before:offline:start": this.hookWrapper.bind(this, this.build), - "before:package:initialize": this.hookWrapper.bind(this, this.build), - "before:deploy:function:initialize": this.hookWrapper.bind( - this, - this.build - ), - "before:aws:package:finalize:mergeCustomProviderResources": this.hookWrapper.bind( - this, - this.addCustomStackResources - ), - "after:package:createDeploymentArtifacts": this.hookWrapper.bind( - this, - this.removePluginBuildDir - ), - "after:aws:deploy:deploy:checkForChanges": this.hookWrapper.bind( - this, - this.checkForChanges - ), - "after:aws:deploy:deploy:uploadArtifacts": this.hookWrapper.bind( - this, - this.uploadStaticAssets - ), - "after:aws:info:displayStackOutputs": this.hookWrapper.bind( - this, - this.printStackOutput - ) - }; - } - - async hookWrapper(lifecycleFunc) { - this.initializeVariables(); - return await lifecycleFunc.call(this); - } - - initializeVariables() { - this.provider = this.serverless.getProvider("aws"); - this.providerRequest = this.provider.request.bind(this.provider); - this.pluginBuildDir = new PluginBuildDir(this.nextConfigDir); - } - - get nextConfigDir() { - return this.getPluginConfigValue("nextConfigDir"); - } - - get configuration() { - return parseNextConfiguration(this.nextConfigDir); - } - - getPluginConfigValue(param) { - const defaults = { - routes: [], - nextConfigDir: "./", - uploadBuildAssets: true, - cloudFront: false, - createAssetBucket: true - }; - - const userConfig = - this.serverless.service.custom && - this.serverless.service.custom["serverless-nextjs"] && - this.serverless.service.custom["serverless-nextjs"][param]; - - return userConfig === undefined ? defaults[param] : userConfig; - } - - getPluginConfigValues(...params) { - return params.map((p) => this.getPluginConfigValue(p)); - } - - printStackOutput() { - const awsInfo = this.serverless.pluginManager - .getPlugins() - .find((plugin) => { - return plugin.constructor.name === "AwsInfo"; - }); - - return displayServiceInfo(awsInfo); - } - - removePluginBuildDir() { - return this.pluginBuildDir.removeBuildDir(); - } -} - -module.exports = ServerlessNextJsPlugin; diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/addCustomStackResources.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/addCustomStackResources.test.js deleted file mode 100644 index aab104d31d..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/addCustomStackResources.test.js +++ /dev/null @@ -1,377 +0,0 @@ -const { when } = require("jest-when"); -const fse = require("fs-extra"); -const clone = require("lodash.clonedeep"); -const path = require("path"); -const addCustomStackResources = require("../addCustomStackResources"); -const ServerlessPluginBuilder = require("../../utils/test/ServerlessPluginBuilder"); -const getAssetsBucketName = require("../getAssetsBucketName"); -const logger = require("../../utils/logger"); - -jest.mock("../getAssetsBucketName"); -jest.mock("../../utils/logger"); - -describe("addCustomStackResources", () => { - beforeEach(() => { - fse.pathExists = jest.fn(); - fse.readdir = jest.fn(); - - fse.pathExists.mockResolvedValue(false); - }); - - describe("When cloudfront is disabled and S3 bucket is provided", () => { - const bucketName = "bucket-123"; - const bucketUrl = `https://s3.amazonaws.com/${bucketName}`; - - beforeEach(() => { - getAssetsBucketName.mockReturnValueOnce(bucketName); - }); - - it("adds S3 bucket to resources", () => { - expect.assertions(3); - - const coreCfTemplate = { - Resources: { - existingResource: "existingValue" - } - }; - - const plugin = new ServerlessPluginBuilder().build(); - - plugin.serverless.service.provider.coreCloudFormationTemplate = clone( - coreCfTemplate - ); - - return addCustomStackResources.call(plugin).then(() => { - expect(logger.log).toBeCalledWith( - expect.stringContaining(`Found bucket "${bucketName}"`) - ); - const { service } = plugin.serverless; - const { NextStaticAssetsS3Bucket } = service.resources.Resources; - - expect(NextStaticAssetsS3Bucket.Properties.BucketName).toEqual( - bucketName - ); - expect( - service.provider.coreCloudFormationTemplate.Resources.existingResource - ).toEqual("existingValue"); - }); - }); - - it("adds proxy routes for static directory", () => { - expect.assertions(2); - - const plugin = new ServerlessPluginBuilder().build(); - - const staticDir = path.join( - plugin.getPluginConfigValue("nextConfigDir"), - "static" - ); - - when(fse.pathExists).calledWith(staticDir).mockResolvedValue(true); - - return addCustomStackResources.call(plugin).then(() => { - const resources = plugin.serverless.service.resources.Resources; - expect(Object.keys(resources)).toEqual( - expect.arrayContaining([ - "StaticAssetsProxyParentResource", - "StaticAssetsProxyResource", - "StaticAssetsProxyMethod" - ]) - ); - expect( - resources.StaticAssetsProxyMethod.Properties.Integration.Uri - ).toEqual("https://s3.amazonaws.com/bucket-123/static/{proxy}"); - }); - }); - - it("adds proxy routes for nextjs assets", () => { - expect.assertions(2); - - const plugin = new ServerlessPluginBuilder().build(); - - return addCustomStackResources.call(plugin).then(() => { - const resources = plugin.serverless.service.resources.Resources; - expect(Object.keys(resources)).toEqual( - expect.arrayContaining([ - "NextStaticAssetsProxyParentResource", - "NextStaticAssetsProxyResource", - "NextStaticAssetsProxyMethod" - ]) - ); - expect( - resources.NextStaticAssetsProxyMethod.Properties.Integration.Uri - ).toEqual("https://s3.amazonaws.com/bucket-123/_next/{proxy}"); - }); - }); - - it("adds proxy route to each file in the public folder", () => { - expect.assertions(8); - - const plugin = new ServerlessPluginBuilder().build(); - const publicDir = path.join( - plugin.getPluginConfigValue("nextConfigDir"), - "public" - ); - - when(fse.pathExists).calledWith(publicDir).mockResolvedValue(true); - - when(fse.readdir) - .calledWith(publicDir) - .mockResolvedValue(["robots.txt", "manifest.json"]); - - return addCustomStackResources.call(plugin).then(() => { - const { - RobotsProxyMethod, - RobotsProxyResource, - ManifestProxyMethod, - ManifestProxyResource - } = plugin.serverless.service.resources.Resources; - - expect(RobotsProxyMethod.Properties.Integration.Uri).toEqual( - `${bucketUrl}/public/robots.txt` - ); - expect(RobotsProxyMethod.Properties.ResourceId.Ref).toEqual( - "RobotsProxyResource" - ); - expect(RobotsProxyResource.Properties.PathPart).toEqual("robots.txt"); - expect(logger.log).toBeCalledWith( - `Proxying robots.txt -> ${bucketUrl}/public/robots.txt` - ); - - expect(ManifestProxyMethod.Properties.Integration.Uri).toEqual( - `${bucketUrl}/public/manifest.json` - ); - expect(ManifestProxyMethod.Properties.ResourceId.Ref).toEqual( - "ManifestProxyResource" - ); - expect(ManifestProxyResource.Properties.PathPart).toEqual( - `manifest.json` - ); - expect(logger.log).toBeCalledWith( - `Proxying manifest.json -> ${bucketUrl}/public/manifest.json` - ); - }); - }); - - it("adds proxy route to resources with correct bucket url for the region", () => { - expect.assertions(2); - - const euWestRegion = "eu-west-1"; - const bucketUrlIreland = `https://s3-${euWestRegion}.amazonaws.com/${bucketName}`; - const getRegion = jest.fn().mockReturnValueOnce(euWestRegion); - - const plugin = new ServerlessPluginBuilder().build(); - - const publicDir = path.join( - plugin.getPluginConfigValue("nextConfigDir"), - "public" - ); - - when(fse.pathExists).calledWith(publicDir).mockResolvedValue(true); - - when(fse.readdir).calledWith(publicDir).mockResolvedValue(["robots.txt"]); - - plugin.provider.getRegion = getRegion; - - return addCustomStackResources.call(plugin).then(() => { - const { - RobotsProxyMethod - } = plugin.serverless.service.resources.Resources; - - expect(getRegion).toBeCalled(); - expect(RobotsProxyMethod.Properties.Integration.Uri).toEqual( - `${bucketUrlIreland}/public/robots.txt` - ); - }); - }); - }); - - describe("when cloudfront is enabled and S3 bucket is configured", () => { - const findOrigin = (distribution, originId) => - distribution.Origins.find((o) => o.Id === originId); - - let assetsBucketName = "foo.bar"; - let resources; - - beforeEach(() => { - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - cloudFront: true - }) - .build(); - - const publicDir = path.join( - plugin.getPluginConfigValue("nextConfigDir"), - "public" - ); - - getAssetsBucketName.mockReturnValue(assetsBucketName); - - when(fse.pathExists).calledWith(publicDir).mockResolvedValue(false); - - return addCustomStackResources.call(plugin).then(() => { - resources = plugin.serverless.service.resources; - }); - }); - - it("adds distribution", () => { - const { Resources } = resources; - expect(Object.keys(Resources)).toHaveLength(2); // S3 bucket and CloudFront distribution - const { NextjsCloudFront } = Resources; - expect(NextjsCloudFront).toBeDefined(); - }); - - it("sets up S3 origin", () => { - const { - Resources: { NextjsCloudFront } - } = resources; - - const staticOrigin = findOrigin( - NextjsCloudFront.Properties.DistributionConfig, - "S3Origin" - ); - - expect(staticOrigin.DomainName).toEqual( - `${assetsBucketName}.s3.amazonaws.com` - ); - }); - - it("sets up S3 origin for /public directory", () => { - const { - Resources: { NextjsCloudFront } - } = resources; - - const publicOrigin = findOrigin( - NextjsCloudFront.Properties.DistributionConfig, - "S3PublicOrigin" - ); - - expect(publicOrigin.DomainName).toEqual( - `${assetsBucketName}.s3.amazonaws.com` - ); - }); - - it("sets up Api Gateway origin", () => { - const { - Resources: { NextjsCloudFront } - } = resources; - - const apiGatewayOrigin = findOrigin( - NextjsCloudFront.Properties.DistributionConfig, - "ApiGatewayOrigin" - ); - - expect(apiGatewayOrigin.OriginPath).toEqual("/test"); - expect(apiGatewayOrigin.DomainName["Fn::Join"][1][1]).toEqual( - ".execute-api.us-east-1.amazonaws.com" - ); - }); - - describe("when public folder exists", () => { - it("adds cache behaviours for public files", () => { - expect.assertions(4); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - cloudFront: true - }) - .build(); - - const publicDir = path.join( - plugin.getPluginConfigValue("nextConfigDir"), - "public" - ); - - when(fse.pathExists).calledWith(publicDir).mockResolvedValue(true); - - when(fse.readdir) - .calledWith(publicDir) - .mockResolvedValue(["robots.txt", "manifest.json"]); - - return addCustomStackResources.call(plugin).then(() => { - const { - NextjsCloudFront - } = plugin.serverless.service.resources.Resources; - - expect(NextjsCloudFront).toBeDefined(); - - const { - CacheBehaviors - } = NextjsCloudFront.Properties.DistributionConfig; - - expect(CacheBehaviors).toHaveLength(4); // behavior for static/*, _next/* origins and 2 other behaviours for robots and manifest - expect(CacheBehaviors[2].PathPattern).toEqual("robots.txt"); - expect(CacheBehaviors[3].PathPattern).toEqual("manifest.json"); - }); - }); - }); - - describe("when cloudfront configuration is overridden by user", () => { - it("adds user provided config to distribution", () => { - expect.assertions(1); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - cloudFront: { - Properties: { - DistributionConfig: { - Aliases: ["myalias.com"] - } - } - } - }) - .build(); - - return addCustomStackResources.call(plugin).then(() => { - const { - NextjsCloudFront - } = plugin.serverless.service.resources.Resources; - expect( - NextjsCloudFront.Properties.DistributionConfig.Aliases - ).toEqual(["myalias.com"]); - }); - }); - }); - - describe("when asset bucket is not to be created", () => { - it("adds the cloudfront distribution", () => { - expect.assertions(2); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - cloudFront: true, - createAssetBucket: false - }) - .build(); - - return addCustomStackResources.call(plugin).then(() => { - const { Resources } = plugin.serverless.service.resources; - expect(Object.keys(Resources)).toHaveLength(1); // CloudFront distribution - const { NextjsCloudFront } = Resources; - expect(NextjsCloudFront).toBeDefined(); - }); - }); - }); - }); - - describe("When no bucket is configured", () => { - beforeEach(() => { - getAssetsBucketName.mockReset(); - getAssetsBucketName.mockReturnValue(null); - }); - - it("doesn't add any custom resources", () => { - expect.assertions(3); - - const plugin = new ServerlessPluginBuilder().build(); - - return addCustomStackResources.call(plugin).then(() => { - expect(logger.log).not.toBeCalled(); - expect(plugin.serverless.service.resources).toEqual(undefined); - expect( - plugin.serverless.service.provider.coreCloudFormationTemplate - ).toEqual(undefined); - }); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/build.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/build.test.js deleted file mode 100644 index 9471c444bc..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/build.test.js +++ /dev/null @@ -1,280 +0,0 @@ -const path = require("path"); -const nextBuild = require("next/dist/build").default; -const fse = require("fs-extra"); -const parsedNextConfigurationFactory = require("../../utils/test/parsedNextConfigurationFactory"); -const logger = require("../../utils/logger"); -const build = require("../build"); -const copyBuildFiles = require("../copyBuildFiles"); -const parseNextConfiguration = require("../parseNextConfiguration"); -const rewritePageHandlers = require("../rewritePageHandlers"); -const PluginBuildDir = require("../../classes/PluginBuildDir"); -const getNextPagesFromBuildDir = require("../getNextPagesFromBuildDir"); -const NextPage = require("../../classes/NextPage"); -const ServerlessPluginBuilder = require("../../utils/test/ServerlessPluginBuilder"); - -jest.mock("fs-extra"); -jest.mock("next/dist/build"); -jest.mock("../../utils/logger"); -jest.mock("../copyBuildFiles"); -jest.mock("../parseNextConfiguration"); -jest.mock("../getNextPagesFromBuildDir"); -jest.mock("../rewritePageHandlers"); - -describe("build", () => { - beforeEach(() => { - nextBuild.mockResolvedValueOnce(); - copyBuildFiles.mockResolvedValueOnce(); - getNextPagesFromBuildDir.mockResolvedValue([]); - }); - - it("logs when it starts building", () => { - expect.assertions(1); - - parseNextConfiguration.mockResolvedValueOnce( - parsedNextConfigurationFactory() - ); - - const plugin = new ServerlessPluginBuilder().build(); - - return build.call(plugin).then(() => { - expect(logger.log).toBeCalledWith("Started building next app ..."); - }); - }); - - it("includes plugin build directory for packaging", () => { - expect.assertions(1); - - const nextConfigDir = "path/to/next-app"; - - const parsedNextConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedNextConfig); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ nextConfigDir }) - .build(); - - return build.call(plugin).then(() => { - expect(plugin.serverless.service.package.include).toContain( - `${nextConfigDir}/${PluginBuildDir.BUILD_DIR_NAME}/**` - ); - }); - }); - - it("includes plugin build directory for packaging when package include isn't defined", () => { - expect.assertions(1); - - const nextConfigDir = "path/to/next-app"; - - const parsedNextConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedNextConfig); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ nextConfigDir }) - .build(); - - plugin.serverless.service.package.include = undefined; - - return build.call(plugin).then(() => { - expect(plugin.serverless.service.package.include).toContain( - `${nextConfigDir}/${PluginBuildDir.BUILD_DIR_NAME}/**` - ); - }); - }); - - it("includes next-aws-lambda in node_modules/", () => { - expect.assertions(1); - const nextConfigDir = "path/to/next-app"; - const nextAwsLambdaRelativePath = path.relative( - nextConfigDir, - path.dirname(require.resolve("@sls-next/next-aws-lambda")) - ); - - const parsedNextConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedNextConfig); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ nextConfigDir }) - .build(); - - return build.call(plugin).then(() => { - expect(plugin.serverless.service.package.include).toEqual( - expect.arrayContaining([ - "path/to/next-app/sls-next-build/**", - `${nextAwsLambdaRelativePath}/**/*.js`, - `!${nextAwsLambdaRelativePath}/**/*.test.js` - ]) - ); - }); - }); - - it("copies build files", () => { - expect.assertions(2); - - const parsedNextConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedNextConfig); - const nextConfigDir = "path/to/next-app"; - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - nextConfigDir - }) - .build(); - - return build.call(plugin).then(() => { - expect(parseNextConfiguration).toBeCalledWith(nextConfigDir); - expect(nextBuild).toBeCalledWith( - path.resolve(nextConfigDir), - parsedNextConfig.nextConfiguration - ); - }); - }); - - it("copies custom handler provided", () => { - expect.assertions(1); - - const parsedNextConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedNextConfig); - const nextConfigDir = "path/to/next-app"; - - const customHandlerPath = "./path/to/handler.js"; - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - nextConfigDir, - customHandler: customHandlerPath - }) - .build(); - - return build.call(plugin).then(() => { - expect(fse.copy).toBeCalledWith( - path.resolve(nextConfigDir, customHandlerPath), - path.join(plugin.pluginBuildDir.buildDir, customHandlerPath) - ); - }); - }); - - it('overrides nextConfig target if is not "serverless" and log it', () => { - expect.assertions(1); - - const parsedConfig = parsedNextConfigurationFactory({ - target: "server", - distDir: ".next" - }); - - parseNextConfiguration.mockResolvedValueOnce(parsedConfig); - - const nextConfigDir = "path/to/next-app"; - const expectedNextConfig = { - ...parsedConfig.nextConfiguration, - target: "serverless" - }; - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - nextConfigDir - }) - .build(); - - return build.call(plugin).then(() => { - expect(nextBuild).toBeCalledWith( - path.resolve(nextConfigDir), - expectedNextConfig - ); - }); - }); - - it("rewrites the page handlers for each next page", () => { - expect.assertions(2); - - const nextConfigDir = "path/to/next-app"; - const pagesDir = "build/serverless/pages"; - const nextPages = [ - new NextPage(`${pagesDir}/foo.js`), - new NextPage(`${pagesDir}/baz.js`) - ]; - const parsedConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedConfig); - getNextPagesFromBuildDir.mockResolvedValueOnce(nextPages); - - const pageConfig = {}; - const routes = []; - const customHandler = undefined; - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - pageConfig, - routes, - nextConfigDir - }) - .build(); - - return build.call(plugin).then(() => { - expect(getNextPagesFromBuildDir).toBeCalledWith( - new PluginBuildDir(nextConfigDir).buildDir, - { - pageConfig, - routes, - additionalExcludes: customHandler - } - ); - expect(rewritePageHandlers).toBeCalledWith(nextPages, undefined); - }); - }); - - it("sets the next page functions for deployment", () => { - expect.assertions(2); - - const parsedConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedConfig); - - const mockNextPages = [new NextPage("/foo/bar"), new NextPage("/foo/baz")]; - getNextPagesFromBuildDir.mockResolvedValueOnce(mockNextPages); - - const setFunctionNamesMock = jest.fn(); - - const plugin = new ServerlessPluginBuilder() - .withService({ - setFunctionNames: setFunctionNamesMock - }) - .build(); - - return build.call(plugin).then(() => { - expect(setFunctionNamesMock).toBeCalled(); - expect(Object.keys(plugin.serverless.service.functions)).toEqual([ - "foo-bar", - "foo-baz" - ]); - }); - }); - - it("returns NextPage instances for each next page copied", () => { - expect.assertions(2); - - const parsedConfig = parsedNextConfigurationFactory(); - parseNextConfiguration.mockResolvedValueOnce(parsedConfig); - const mockNextPages = [new NextPage("/foo/bar"), new NextPage("/foo/baz")]; - getNextPagesFromBuildDir.mockResolvedValueOnce(mockNextPages); - - const nextConfigDir = "path/to/next-app"; - - const pageConfig = {}; - const routes = []; - const customHandler = undefined; - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - pageConfig, - routes, - nextConfigDir - }) - .build(); - - return build.call(plugin).then((nextPages) => { - expect(getNextPagesFromBuildDir).toBeCalledWith( - new PluginBuildDir(nextConfigDir).buildDir, - { pageConfig, routes, additionalExcludes: customHandler } - ); - expect(nextPages).toEqual(mockNextPages); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/checkForChanges.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/checkForChanges.test.js deleted file mode 100644 index 2494c0dca2..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/checkForChanges.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const checkForChanges = require("../checkForChanges"); -const ServerlessPluginBuilder = require("../../utils/test/ServerlessPluginBuilder"); -const getAssetsBucketName = require("../getAssetsBucketName"); - -jest.mock("../getAssetsBucketName"); - -describe("checkForChanges", () => { - it("errors when assets bucket doesn't exist", () => { - expect.assertions(3); - - const bucketName = "my-bucket"; - getAssetsBucketName.mockReturnValueOnce(bucketName); - - const plugin = new ServerlessPluginBuilder().build(); - - plugin.provider.request = jest - .fn() - .mockRejectedValueOnce(new Error("The specified bucket does not exist")); - - return checkForChanges.call(plugin).catch((err) => { - expect(plugin.provider.request).toBeCalledWith("S3", "listObjectsV2", { - Bucket: bucketName, - MaxKeys: 1 - }); - expect(getAssetsBucketName).toBeCalled(); - expect(err.message).toEqual( - expect.stringContaining( - `The assets bucket "${bucketName}" does not exist.` - ) - ); - }); - }); - - it("errors when assets bucket exists but for some reason can't read from it", () => { - expect.assertions(1); - - getAssetsBucketName.mockReturnValueOnce("my-bucket"); - - const plugin = new ServerlessPluginBuilder().build(); - - plugin.provider.request = jest - .fn() - .mockRejectedValueOnce(new Error("Blew up")); - - return checkForChanges.call(plugin).catch((err) => { - expect(err.message).toEqual(`Blew up`); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/copyBuildFiles.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/copyBuildFiles.test.js deleted file mode 100644 index b91095d901..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/copyBuildFiles.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const path = require("path"); -const fse = require("fs-extra"); -const logger = require("../../utils/logger"); -const copyBuildFiles = require("../copyBuildFiles"); -const PluginBuildDir = require("../../classes/PluginBuildDir"); - -jest.mock("fs-extra"); -jest.mock("../../utils/logger"); - -describe("copyBuildFiles", () => { - describe("when page files are copied correctly", () => { - let pluginBuildDirObj; - const pluginBuildDir = path.normalize( - `path/to/${PluginBuildDir.BUILD_DIR_NAME}` - ); - const nextBuildDir = path.normalize("path/to/.next"); - - beforeEach(() => { - fse.copy.mockResolvedValue(null); - - pluginBuildDirObj = { - buildDir: pluginBuildDir, - setupBuildDir: jest.fn().mockResolvedValue() - }; - - const copyBuildDirPromise = copyBuildFiles( - nextBuildDir, - pluginBuildDirObj - ); - return copyBuildDirPromise; - }); - - it("cleans up pluginBuildDir before copying", () => { - expect(pluginBuildDirObj.setupBuildDir).toBeCalled(); - }); - - it("logs it has started copying", () => { - expect(logger.log).toBeCalledWith( - expect.stringContaining("Copying next pages") - ); - }); - - it("copies serverless pages folder from next build directory", () => { - expect(fse.copy).toBeCalledWith( - path.join(nextBuildDir, "serverless/pages"), - pluginBuildDir - ); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/displayServiceInfo.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/displayServiceInfo.test.js deleted file mode 100644 index 2aad8b1820..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/displayServiceInfo.test.js +++ /dev/null @@ -1,69 +0,0 @@ -const displayServiceInfo = require("../displayServiceInfo"); - -const serviceInfo = (additionalOutputs) => ({ - gatheredData: { - outputs: [ - // there should always be one API Gateway - { - OutputKey: "ServiceEndpoint", - OutputValue: "https://xyz.execute-api.eu-west-1.amazonaws.com" - }, - ...additionalOutputs - ] - } -}); - -describe("displayServiceInfo", () => { - beforeEach(() => { - console.log = jest.fn(); - }); - - it("prints info header", () => { - displayServiceInfo(serviceInfo([])); - - expect(console.log).toBeCalledWith( - expect.stringContaining("Nextjs Application Info") - ); - }); - - it("prints application URL using API Gateway if no Cloudfront distribution provisioned", () => { - displayServiceInfo(serviceInfo([])); - - expect(console.log).toBeCalledWith( - expect.stringContaining("https://xyz.execute-api.eu-west-1.amazonaws.com") - ); - }); - - it("prints application URL using Cloudfront distribution instead of API Gateway", () => { - displayServiceInfo( - serviceInfo([ - { - OutputKey: "NextjsCloudFrontURL", - OutputValue: "https://distr.s3.amazonaws.com" - } - ]) - ); - - expect(console.log).toBeCalledWith( - expect.stringContaining("https://distr.s3.amazonaws.com") - ); - expect(console.log).not.toBeCalledWith( - expect.stringContaining("https://xyz.execute-api.eu-west-1.amazonaws.com") - ); - }); - - it("prints S3 Bucket Secure URL", () => { - displayServiceInfo( - serviceInfo([ - { - OutputKey: "NextStaticAssetsS3BucketSecureURL", - OutputValue: "https://my-bucket.s3.amazonaws.com" - } - ]) - ); - - expect(console.log).toBeCalledWith( - expect.stringContaining("https://my-bucket.s3.amazonaws.com") - ); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/getAssetsBucketName.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/getAssetsBucketName.test.js deleted file mode 100644 index cbb9f74cdc..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/getAssetsBucketName.test.js +++ /dev/null @@ -1,89 +0,0 @@ -const parseNextConfiguration = require("../parseNextConfiguration"); -const parsedNextConfigurationFactory = require("../../utils/test/parsedNextConfigurationFactory"); -const ServerlessPluginBuilder = require("../../utils/test/ServerlessPluginBuilder"); -const getAssetsBucketName = require("../getAssetsBucketName"); - -jest.mock("../parseNextConfiguration"); -jest.mock("../../utils/logger"); - -describe("getAssetsBucketName", () => { - it("returns no bucket when there isn't one configured", () => { - expect.assertions(1); - - const bucketName = null; - - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory({ distDir: ".next" }, bucketName) - ); - - const pluginWithoutBucket = new ServerlessPluginBuilder().build(); - - const result = getAssetsBucketName.call(pluginWithoutBucket); - - expect(result).toEqual(bucketName); - }); - - it("errors if staticDir provided but no bucket", () => { - expect.assertions(1); - - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory({ staticAssetsBucket: null }, null) - ); - - const pluginWithoutBucket = new ServerlessPluginBuilder() - .withPluginConfig({ - staticDir: "static" - }) - .build(); - - expect(() => getAssetsBucketName.call(pluginWithoutBucket)).toThrow( - "staticDir requires a bucket. See" - ); - }); - - it("returns bucket name parsed from next config", () => { - expect.assertions(2); - - const bucketName = "bucket-123"; - const nextConfigDir = "./customConfigDir"; - - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory( - { - distDir: ".next" - }, - bucketName - ) - ); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - nextConfigDir - }) - .build(); - - const result = getAssetsBucketName.call(plugin); - - expect(parseNextConfiguration).toBeCalledWith(nextConfigDir); - expect(result).toEqual(bucketName); - }); - - it("returns bucket from plugin config", () => { - expect.assertions(1); - - const bucketName = "my-assets"; - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory() - ); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - assetsBucketName: bucketName - }) - .build(); - - const result = getAssetsBucketName.call(plugin); - - expect(result).toEqual(bucketName); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/getFactoryHandlerCode.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/getFactoryHandlerCode.test.js deleted file mode 100644 index 58fd27d987..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/getFactoryHandlerCode.test.js +++ /dev/null @@ -1,62 +0,0 @@ -const path = require("path"); -const getFactoryHandlerCode = require("../getFactoryHandlerCode"); -const PluginBuildDir = require("../../classes/PluginBuildDir"); - -describe("getFactoryHandlerCode", () => { - it("should require compatLayer", () => { - const compatHandlerContent = getFactoryHandlerCode( - path.join(PluginBuildDir.BUILD_DIR_NAME, "my-page.js") - ); - expect(compatHandlerContent).toContain( - 'require("@sls-next/next-aws-lambda")' - ); - }); - - it("should require compatLayer with correct path when page is nested", () => { - const compatHandlerContent = getFactoryHandlerCode( - path.join(PluginBuildDir.BUILD_DIR_NAME, "categories/fridge/fridges.js") - ); - expect(compatHandlerContent).toContain( - 'require("@sls-next/next-aws-lambda")' - ); - }); - - it("should require compatLayer with correct path when buildDir is nested", () => { - const compatHandlerContent = getFactoryHandlerCode( - path.join(`app/${PluginBuildDir.BUILD_DIR_NAME}`, "page.js") - ); - expect(compatHandlerContent).toContain( - 'require("@sls-next/next-aws-lambda")' - ); - }); - - it("should require next page provided", () => { - const compatHandlerContent = getFactoryHandlerCode( - path.join(PluginBuildDir.BUILD_DIR_NAME, "my-page.js") - ); - expect(compatHandlerContent).toContain('require("./my-page.original.js")'); - }); - - it("should export render method", () => { - const compatHandlerContent = getFactoryHandlerCode( - path.join(PluginBuildDir.BUILD_DIR_NAME, "my-page.js") - ); - expect(compatHandlerContent).toContain("module.exports.render"); - }); - - it("should require custom handler", () => { - const compatHandlerContent = getFactoryHandlerCode( - path.join(PluginBuildDir.BUILD_DIR_NAME, "my-page.js"), - "./myHandler.js" - ); - expect(compatHandlerContent).toContain('require("./myHandler.js")'); - }); - - it("should require custom handler when page is nested with correct relative path", () => { - const compatHandlerContent = getFactoryHandlerCode( - path.join(PluginBuildDir.BUILD_DIR_NAME, "foo/bar/my-page.js"), - "./myHandler.js" - ); - expect(compatHandlerContent).toContain('require("../../myHandler.js")'); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/getNextPagesFromBuildDir.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/getNextPagesFromBuildDir.test.js deleted file mode 100644 index 47f1c5c79e..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/getNextPagesFromBuildDir.test.js +++ /dev/null @@ -1,293 +0,0 @@ -const fs = require("fs"); -const walkDir = require("klaw"); -const stream = require("stream"); -const path = require("path"); -const getNextPagesFromBuildDir = require("../getNextPagesFromBuildDir"); -const logger = require("../../utils/logger"); -const PluginBuildDir = require("../../classes/PluginBuildDir"); - -jest.mock("fs"); -jest.mock("klaw"); -jest.mock("../../utils/logger"); - -describe("getNextPagesFromBuildDir", () => { - let mockedStream; - - beforeEach(() => { - mockedStream = new stream.Readable(); - mockedStream._read = () => {}; - walkDir.mockReturnValueOnce(mockedStream); - fs.lstatSync.mockReturnValue({ isDirectory: () => false }); - }); - - it("returns an empty array when there are no pages", () => { - expect.assertions(1); - - const buildDir = path.normalize(`path/to/${PluginBuildDir.BUILD_DIR_NAME}`); - - const getPagesPromise = getNextPagesFromBuildDir(buildDir).then( - (nextPages) => { - expect(nextPages).toEqual([]); - } - ); - - mockedStream.emit("end"); - - return getPagesPromise; - }); - - it("returns two next pages", () => { - expect.assertions(5); - - const buildDir = PluginBuildDir.BUILD_DIR_NAME; - const resolvedBuildDir = path.resolve(buildDir); - - const promise = getNextPagesFromBuildDir(buildDir).then((nextPages) => { - expect(nextPages).toHaveLength(2); - expect(nextPages[0].pageName).toEqual("index"); - expect(nextPages[0].pagePath).toEqual(path.join(buildDir, "index.js")); - expect(nextPages[1].pageName).toEqual("about"); - expect(nextPages[1].pagePath).toEqual(path.join(buildDir, "about.js")); - }); - - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "index.js") - }); - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "about.js") - }); - mockedStream.emit("end"); - - return promise; - }); - - it("returns next pages with page function config. overridden", () => { - expect.assertions(2); - - const indexPageConfigOverride = { foo: "bar" }; - const aboutPageConfigOverride = { bar: "baz" }; - - const pageConfig = { - index: indexPageConfigOverride, - about: aboutPageConfigOverride - }; - - const buildDir = path.normalize( - `/path/to/${PluginBuildDir.BUILD_DIR_NAME}` - ); - - const promise = getNextPagesFromBuildDir(buildDir, { pageConfig }).then( - (nextPages) => { - expect(nextPages[0].serverlessFunctionOverrides).toEqual( - indexPageConfigOverride - ); - expect(nextPages[1].serverlessFunctionOverrides).toEqual( - aboutPageConfigOverride - ); - } - ); - - mockedStream.emit("data", { path: path.join(buildDir, "index.js") }); - mockedStream.emit("data", { path: path.join(buildDir, "about.js") }); - mockedStream.emit("end"); - - return promise; - }); - - it("returns next pages with custom routes", () => { - expect.assertions(4); - - const routes = [ - { src: "index", path: "home" }, - { src: "foo", path: "custom/foo" }, - { src: "foo/bar", path: "one/bar" }, - { src: "foo/bar", path: "two/bar" }, - { src: "baz/bar", path: "three/bar" } - ]; - - const buildDir = path.normalize( - `/path/to/${PluginBuildDir.BUILD_DIR_NAME}` - ); - - const promise = getNextPagesFromBuildDir(buildDir, { - pageConfig: undefined, - routes - }).then((nextPages) => { - const [indexPage, fooPage, fooBarPage, bazBarPage] = nextPages; - - expect(indexPage.routes).toEqual([{ path: "home" }]); - expect(fooPage.routes).toEqual([{ path: "custom/foo" }]); - expect(fooBarPage.routes).toEqual([ - { path: "one/bar" }, - { path: "two/bar" } - ]); - expect(bazBarPage.routes).toEqual([{ path: "three/bar" }]); - }); - - mockedStream.emit("data", { path: path.join(buildDir, "index.js") }); - mockedStream.emit("data", { path: path.join(buildDir, "foo.js") }); - mockedStream.emit("data", { path: path.join(buildDir, "foo/bar.js") }); - mockedStream.emit("data", { path: path.join(buildDir, "baz/bar.js") }); - mockedStream.emit("end"); - - return promise; - }); - - it("passes asterisk pageConfig to all pages", () => { - expect.assertions(2); - - const asteriskPageConfigOverride = { foo: "bar" }; - - const pageConfig = { - "*": asteriskPageConfigOverride - }; - - const buildDir = path.normalize( - `/path/to/${PluginBuildDir.BUILD_DIR_NAME}` - ); - - const promise = getNextPagesFromBuildDir(buildDir, { pageConfig }).then( - (nextPages) => { - expect(nextPages[0].serverlessFunctionOverrides).toEqual( - asteriskPageConfigOverride - ); - expect(nextPages[1].serverlessFunctionOverrides).toEqual( - asteriskPageConfigOverride - ); - } - ); - - mockedStream.emit("data", { path: path.join(buildDir, "index.js") }); - mockedStream.emit("data", { path: path.join(buildDir, "about.js") }); - mockedStream.emit("end"); - - return promise; - }); - - it("logs pages found", () => { - expect.assertions(1); - - const buildDir = path.normalize("/path/to/build"); - - const promise = getNextPagesFromBuildDir(buildDir).then(() => { - expect(logger.log).toBeCalledWith(`Found 1 next page(s)`); - }); - - mockedStream.emit("data", { path: path.join(buildDir, "about.js") }); - mockedStream.emit("end"); - - return promise; - }); - - it("skips _app and _document pages", () => { - expect.assertions(2); - - const buildDir = path.normalize(`./${PluginBuildDir.BUILD_DIR_NAME}`); - const resolvedBuildDir = path.resolve(buildDir); - - const promise = getNextPagesFromBuildDir(buildDir).then((nextPages) => { - expect(nextPages).toHaveLength(1); - expect(nextPages[0].pageName).toEqual("_error"); - }); - - mockedStream.emit("data", { path: path.join(resolvedBuildDir, "_app.js") }); - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "_document.js") - }); - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "_error.js") - }); - mockedStream.emit("end"); - - return promise; - }); - - it("skips compatLayer file", () => { - expect.assertions(2); - - const buildDir = path.normalize( - `/path/to/${PluginBuildDir.BUILD_DIR_NAME}` - ); - - const promise = getNextPagesFromBuildDir(buildDir).then((nextPages) => { - expect(nextPages).toHaveLength(1); - expect(nextPages[0].pageName).toEqual("home"); - }); - - mockedStream.emit("data", { path: path.join(buildDir, "compatLayer.js") }); - mockedStream.emit("data", { path: path.join(buildDir, "home.js") }); - mockedStream.emit("end"); - - return promise; - }); - - it("skips sourcemap files", () => { - expect.assertions(2); - - const buildDir = path.normalize( - `/path/to/${PluginBuildDir.BUILD_DIR_NAME}` - ); - - const promise = getNextPagesFromBuildDir(buildDir).then((nextPages) => { - expect(nextPages).toHaveLength(1); - expect(nextPages[0].pageName).toEqual("home"); - }); - - mockedStream.emit("data", { path: path.join(buildDir, "home.js.map") }); - mockedStream.emit("data", { path: path.join(buildDir, "home.js") }); - mockedStream.emit("end"); - - return promise; - }); - - it("handles nested pages", () => { - expect.assertions(5); - - const buildDir = path.normalize(`./${PluginBuildDir.BUILD_DIR_NAME}`); - const resolvedBuildDir = path.resolve(buildDir); - - const promise = getNextPagesFromBuildDir(buildDir).then((nextPages) => { - expect(nextPages).toHaveLength(2); - expect(nextPages[0].pageName).toEqual("hello-world"); - expect(nextPages[0].pagePath).toEqual( - path.join(buildDir, "one", "hello-world.js") - ); - expect(nextPages[1].pageName).toEqual("hello-world"); - expect(nextPages[1].pagePath).toEqual( - path.join(buildDir, "one", "two", "hello-world.js") - ); - }); - - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "one", "hello-world.js") - }); - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "one", "two", "hello-world.js") - }); - mockedStream.emit("end"); - - return promise; - }); - - it("skips page directories", () => { - expect.assertions(1); - - const buildDir = path.normalize(`./${PluginBuildDir.BUILD_DIR_NAME}`); - const resolvedBuildDir = path.resolve(buildDir); - fs.lstatSync.mockReturnValue({ isDirectory: () => true }); - - const promise = getNextPagesFromBuildDir(buildDir).then((nextPages) => { - expect(nextPages).toHaveLength(0); - }); - - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "one") - }); - mockedStream.emit("data", { - path: path.join(resolvedBuildDir, "one", "two") - }); - mockedStream.emit("end"); - - return promise; - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/parseNextConfiguration.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/parseNextConfiguration.test.js deleted file mode 100644 index 18528342bc..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/parseNextConfiguration.test.js +++ /dev/null @@ -1,79 +0,0 @@ -const nextLoadConfig = require("next/dist/next-server/server/config").default; -const { - PHASE_PRODUCTION_BUILD -} = require("next/dist/next-server/lib/constants"); -const parseNextConfiguration = require("../parseNextConfiguration"); - -jest.mock("next/dist/next-server/server/config"); - -describe("parseNextConfiguration", () => { - it("should throw an error if no nextConfigDir is given", () => { - expect(() => parseNextConfiguration()).toThrow( - "Provide a valid next.config" - ); - }); - - it("should call nextLoadConfig with config dir given", () => { - const configDir = "/path/to/next"; - nextLoadConfig.mockReturnValueOnce({ - target: "serverless", - assetPrefix: "https://s3.amazonaws.com/my-bucket" - }); - - parseNextConfiguration(configDir); - - expect(nextLoadConfig).toBeCalledWith(PHASE_PRODUCTION_BUILD, configDir); - }); - - it("should return empty staticAssetsBucket when no assetPrefix is configured", () => { - nextLoadConfig.mockReturnValueOnce({ - target: "serverless" - }); - - const { staticAssetsBucket } = parseNextConfiguration("/path/to/next"); - expect(staticAssetsBucket).toBe(null); - }); - - it("should return empty staticAssetsBucket when assetPrefix exists but has no bucket", () => { - const configDir = "/path/to/next"; - const nextConfig = { - target: "serverless", - assetPrefix: `https://cdn.com/assets` - }; - nextLoadConfig.mockReturnValueOnce(nextConfig); - - const config = parseNextConfiguration(configDir); - - expect(config.staticAssetsBucket).toBe(null); - }); - - it("should return bucket name parsed from next config", () => { - const configDir = "/path/to/next"; - const bucketName = "my-bucket"; - const nextConfig = { - target: "serverless", - assetPrefix: `https://s3.amazonaws.com/${bucketName}` - }; - nextLoadConfig.mockReturnValueOnce(nextConfig); - - const config = parseNextConfiguration(configDir); - - expect(config.staticAssetsBucket).toEqual(bucketName); - }); - - it("should return next configuration object", () => { - const configDir = "/path/to/next"; - const bucketName = "my-bucket"; - const distDir = "build"; - const nextConfig = { - target: "serverless", - distDir, - assetPrefix: `https://s3.amazonaws.com/${bucketName}` - }; - nextLoadConfig.mockReturnValueOnce(nextConfig); - - const config = parseNextConfiguration(configDir); - - expect(config.nextConfiguration).toEqual(nextConfig); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/rewritePageHandlers.js b/packages/deprecated/serverless-plugin/lib/__tests__/rewritePageHandlers.js deleted file mode 100644 index 7aa2f1079e..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/rewritePageHandlers.js +++ /dev/null @@ -1,114 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const rewritePageHandlers = require("../rewritePageHandlers"); -const getFactoryHandlerCode = require("../getFactoryHandlerCode"); -const NextPage = require("../../classes/NextPage"); -const logger = require("../../utils/logger"); - -jest.mock("../../utils/logger"); -jest.mock("../getFactoryHandlerCode"); - -describe("rewritePageHandlers", () => { - describe("when compat layer is injected successfully", () => { - const pagesDir = "build/serverless/pages"; - let rewritePageHandlersPromise; - let fsRenameSpy; - let fsWriteFileSpy; - - beforeEach(() => { - fsRenameSpy = jest - .spyOn(fs, "rename") - .mockImplementation((fileName, newFileName, cb) => cb(null, "")); - - fsWriteFileSpy = jest - .spyOn(fs, "writeFile") - .mockImplementation((filePath, data, cb) => { - cb(null, {}); - }); - - getFactoryHandlerCode.mockReturnValue("module.exports.render={...}"); - - rewritePageHandlersPromise = rewritePageHandlers([ - new NextPage(path.join(pagesDir, "home.js")), - new NextPage(path.join(pagesDir, "about.js")) - ]); - - return rewritePageHandlersPromise; - }); - - afterEach(() => { - fsRenameSpy.mockRestore(); - fsWriteFileSpy.mockRestore(); - }); - - it("should log", () => { - expect(logger.log).toBeCalledWith( - expect.stringContaining( - "compat handler for page: build/serverless/pages/home.js" - ) - ); - expect(logger.log).toBeCalledWith( - expect.stringContaining( - "compat handler for page: build/serverless/pages/about.js" - ) - ); - }); - - it("should call getFactoryHandlerCode with the next page path", () => { - expect(getFactoryHandlerCode).toBeCalledWith( - path.join(pagesDir, "home.js"), - undefined - ); - expect(getFactoryHandlerCode).toBeCalledWith( - path.join(pagesDir, "about.js"), - undefined - ); - }); - - it("should write new js files with the compat layer code", () => { - expect(fs.writeFile).toBeCalledWith( - path.join(pagesDir, "home.compat.js"), - "module.exports.render={...}", - expect.any(Function) - ); - - expect(fs.writeFile).toBeCalledWith( - path.join(pagesDir, "about.compat.js"), - "module.exports.render={...}", - expect.any(Function) - ); - }); - - it("should rename next handler files and append .original to them", () => { - fs.rename.mockImplementation((fileName, newFileName, cb) => cb(null, "")); - - expect(fs.rename).toBeCalledWith( - path.join(pagesDir, "home.js"), - path.join(pagesDir, "home.original.js"), - expect.any(Function) - ); - - expect(fs.rename).toBeCalledWith( - path.join(pagesDir, "about.js"), - path.join(pagesDir, "about.original.js"), - expect.any(Function) - ); - }); - - it("should set compat handler files as the main handlers", () => { - expect.assertions(2); - - expect(fs.rename).toBeCalledWith( - path.join(pagesDir, "home.compat.js"), - path.join(pagesDir, "home.js"), - expect.any(Function) - ); - - expect(fs.rename).toBeCalledWith( - path.join(pagesDir, "about.compat.js"), - path.join(pagesDir, "about.js"), - expect.any(Function) - ); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/uploadStaticAssets.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/uploadStaticAssets.test.js deleted file mode 100644 index 52957d36f0..0000000000 --- a/packages/deprecated/serverless-plugin/lib/__tests__/uploadStaticAssets.test.js +++ /dev/null @@ -1,137 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const fse = require("fs-extra"); -const { when } = require("jest-when"); -const uploadStaticAssets = require("../uploadStaticAssets"); -const parseNextConfiguration = require("../parseNextConfiguration"); -const parsedNextConfigurationFactory = require("../../utils/test/parsedNextConfigurationFactory"); -const ServerlessPluginBuilder = require("../../utils/test/ServerlessPluginBuilder"); -const uploadDirToS3Factory = require("../../utils/s3/upload"); - -jest.mock("fs-extra"); -jest.mock("../../utils/s3/upload"); -jest.mock("../parseNextConfiguration"); -jest.mock("fs"); - -describe("uploadStaticAssets", () => { - let uploadDirToS3; - - beforeEach(() => { - uploadDirToS3 = jest.fn().mockResolvedValue(); - uploadDirToS3Factory.mockReturnValue(uploadDirToS3); - fs.readFileSync.mockResolvedValue("1hCeVQzuD6WJQAxuV3hwc"); - }); - - it("does NOT upload build assets when there isn't a bucket available", () => { - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory({}, null) - ); - - const plugin = new ServerlessPluginBuilder().build(); - - return uploadStaticAssets.call(plugin).then(() => { - expect(uploadDirToS3).not.toBeCalled(); - }); - }); - - it("uploads next build assets", () => { - const distDir = "build"; - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory({ - distDir - }) - ); - - const plugin = new ServerlessPluginBuilder().build(); - - return uploadStaticAssets.call(plugin).then(() => { - expect(uploadDirToS3).toBeCalledTimes(1); - expect(uploadDirToS3).toBeCalledWith( - path.join("/path/to/next", distDir, "static"), - { - bucket: "my-bucket", - truncate: "static", - rootPrefix: "_next" - } - ); - }); - }); - - it("uploads next build assets using bucketName from plugin config", () => { - const distDir = "build"; - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory({ - distDir - }) - ); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - assetsBucketName: "custom-bucket" - }) - .build(); - - return uploadStaticAssets.call(plugin).then(() => { - expect(uploadDirToS3).toBeCalledWith( - path.join("/path/to/next", distDir, "static"), - { - bucket: "custom-bucket", - truncate: "static", - rootPrefix: "_next" - } - ); - }); - }); - - it("uploads static directory", () => { - const plugin = new ServerlessPluginBuilder().build(); - const staticDir = path.join(plugin.nextConfigDir, "static"); - - when(fse.pathExists).calledWith(staticDir).mockResolvedValueOnce(true); - - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory() - ); - - return uploadStaticAssets.call(plugin).then(() => { - expect(uploadDirToS3).toBeCalledWith(staticDir, { - bucket: "my-bucket", - truncate: "static" - }); - }); - }); - - it("uploads public directory", () => { - const plugin = new ServerlessPluginBuilder().build(); - const publicDir = path.join(plugin.nextConfigDir, "public"); - - when(fse.pathExists).calledWith(publicDir).mockResolvedValueOnce(true); - - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory() - ); - - return uploadStaticAssets.call(plugin).then(() => { - expect(uploadDirToS3).toBeCalledWith(publicDir, { - bucket: "my-bucket", - truncate: "public" - }); - }); - }); - - it("does not upload build assets", () => { - parseNextConfiguration.mockReturnValueOnce( - parsedNextConfigurationFactory() - ); - - const plugin = new ServerlessPluginBuilder() - .withPluginConfig({ - uploadBuildAssets: false - }) - .build(); - - return uploadStaticAssets.call(plugin).then(() => { - expect(uploadDirToS3).not.toBeCalled(); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/lib/addCustomStackResources.js b/packages/deprecated/serverless-plugin/lib/addCustomStackResources.js deleted file mode 100644 index fc1eeda29a..0000000000 --- a/packages/deprecated/serverless-plugin/lib/addCustomStackResources.js +++ /dev/null @@ -1,270 +0,0 @@ -const path = require("path"); -const merge = require("lodash.merge"); -const clone = require("lodash.clonedeep"); -const getAssetsBucketName = require("./getAssetsBucketName"); -const logger = require("../utils/logger"); -const loadYml = require("../utils/yml/load"); -const fse = require("fs-extra"); - -const dirInfo = async (dir) => { - const exists = await fse.pathExists(dir); - - if (!exists) { - return [false, []]; - } - - return [true, await fse.readdir(dir)]; -}; - -const capitaliseFirstLetter = (str) => - str.charAt(0).toUpperCase() + str.slice(1); - -// removes non-alphanumeric characters to adhere to AWS naming requirements -const normaliseResourceName = (str) => str.replace(/[^0-9a-zA-Z]/g, ""); - -// converts file path to a string which can be used in CF resource keys -// ./static/bar.js -> Bar -// ./static/foo/bar.js -> FooBar -const normaliseFilePathForCloudFrontResourceKey = (filePath) => - filePath - .split(path.sep) - .filter((s) => s !== "." && s !== "..") - .map(capitaliseFirstLetter) - .join(""); - -const cacheBehaviour = (fileName) => ({ - AllowedMethods: ["GET", "HEAD", "OPTIONS"], - TargetOriginId: "S3PublicOrigin", - Compress: true, - ForwardedValues: { - QueryString: "false", - Cookies: { Forward: "none" } - }, - ViewerProtocolPolicy: "https-only", - MinTTL: "50", - PathPattern: path.basename(fileName) -}); - -const getNextRouteProxyResources = async function ({ - bucketBaseUrl, - bucketName -}) { - const nextDir = "_next"; - const baseResource = await loadYml( - path.join(__dirname, "../resources/api-gw-next.yml") - ); - - const bucketUrl = `${bucketBaseUrl}/${path.posix.join( - bucketName, - nextDir, - "{proxy}" - )}`; - - let resource = clone(baseResource); - - const { Resources } = resource.resources; - - Resources.NextStaticAssetsProxyParentResource.Properties.PathPart = nextDir; - Resources.NextStaticAssetsProxyMethod.Properties.Integration.Uri = bucketUrl; - - logger.log(`Proxying NextJS assets -> ${bucketUrl}`); - - return Resources; -}; - -const getStaticRouteProxyResources = async function ({ - bucketBaseUrl, - bucketName -}) { - const staticDir = path.join(this.nextConfigDir, "static"); - const [staticDirExists] = await dirInfo(staticDir); - - if (!staticDirExists) { - return {}; - } - - const baseResource = await loadYml( - path.join(__dirname, "../resources/api-gw-static.yml") - ); - - const bucketUrl = `${bucketBaseUrl}/${path.posix.join( - bucketName, - "static", - "{proxy}" - )}`; - - let resource = clone(baseResource); - const { Resources } = resource.resources; - - Resources.StaticAssetsProxyParentResource.Properties.PathPart = "static"; - Resources.StaticAssetsProxyMethod.Properties.Integration.Uri = bucketUrl; - - logger.log(`Proxying static files -> ${bucketUrl}`); - - return Resources; -}; - -const getPublicRouteProxyResources = async function ({ - bucketBaseUrl, - bucketName -}) { - const [publicDirExists, publicDirFiles] = await dirInfo( - path.join(this.nextConfigDir, "public") - ); - - if (!publicDirExists) { - return {}; - } - - const baseResource = await loadYml( - path.join(__dirname, "../resources/api-gw-proxy.yml") - ); - - const result = { - Resources: {} - }; - - publicDirFiles.forEach((file) => { - const bucketUrl = `${bucketBaseUrl}/${path.posix.join( - bucketName, - "public", - file - )}`; - - let resourceName = normaliseFilePathForCloudFrontResourceKey(file); - resourceName = path.parse(resourceName).name; - resourceName = normaliseResourceName(resourceName); - - const resource = clone(baseResource); - - resource.Resources.ProxyResource.Properties.PathPart = file; - resource.Resources.ProxyMethod.Properties.ResourceId.Ref = `${resourceName}ProxyResource`; - resource.Resources.ProxyMethod.Properties.Integration.Uri = bucketUrl; - - result.Resources[`${resourceName}ProxyResource`] = - resource.Resources.ProxyResource; - - result.Resources[`${resourceName}ProxyMethod`] = - resource.Resources.ProxyMethod; - - logger.log(`Proxying ${file} -> ${bucketUrl}`); - }); - - return result.Resources; -}; - -const addCustomStackResources = async function () { - const region = this.provider.getRegion(); - const stage = this.provider.getStage(); - - const bucketName = getAssetsBucketName.call(this); - - if (!bucketName) { - return; - } - - this.serverless.service.resources = this.serverless.service.resources || { - Resources: {} - }; - - logger.log(`Found bucket "${bucketName}" from serverless.yml`); - - // see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html - const bucketBaseUrl = - region === "us-east-1" - ? "https://s3.amazonaws.com" - : `https://s3-${region}.amazonaws.com`; - - const resourceConfiguration = { bucketName, bucketBaseUrl }; - let assetsBucketResource = {}; - - const createAssetBucket = this.getPluginConfigValue("createAssetBucket"); - - if (createAssetBucket) { - assetsBucketResource = await loadYml( - path.join(__dirname, "../resources/assets-bucket.yml") - ); - - assetsBucketResource.Resources.NextStaticAssetsS3Bucket.Properties.BucketName = bucketName; - - merge( - this.serverless.service.provider.coreCloudFormationTemplate, - assetsBucketResource - ); - } - - const cloudFront = this.getPluginConfigValue("cloudFront"); - - if (cloudFront) { - let cloudFrontResource = await loadYml( - path.join(__dirname, "../resources/cloudfront.yml") - ); - - if (typeof cloudFront === "object") { - merge(cloudFrontResource.Resources.NextjsCloudFront, cloudFront); - } - - const { - DistributionConfig - } = cloudFrontResource.Resources.NextjsCloudFront.Properties; - - const findOrigin = (originId) => - DistributionConfig.Origins.find((o) => o.Id === originId); - - const apiGatewayOrigin = findOrigin("ApiGatewayOrigin"); - apiGatewayOrigin.OriginPath = `/${stage}`; - apiGatewayOrigin.DomainName[ - "Fn::Join" - ][1][1] = `.execute-api.${region}.amazonaws.com`; - - const publicOrigin = findOrigin("S3PublicOrigin"); - const staticOrigin = findOrigin("S3Origin"); - - const bucketDomainName = `${bucketName}.s3.amazonaws.com`; - - publicOrigin.DomainName = bucketDomainName; - staticOrigin.DomainName = bucketDomainName; - - const [publicDirExists, publicDirFiles] = await dirInfo( - path.join(this.nextConfigDir, "public") - ); - - if (publicDirExists) { - publicDirFiles.forEach((f) => { - DistributionConfig.CacheBehaviors.push(cacheBehaviour(f)); - }); - } - - merge( - this.serverless.service.resources, - assetsBucketResource, - cloudFrontResource - ); - - return; - } - - // api gateway -> S3 proxying - - const [staticResources, nextResources, publicResources] = await Promise.all([ - getStaticRouteProxyResources.call(this, resourceConfiguration), - getNextRouteProxyResources.call(this, resourceConfiguration), - getPublicRouteProxyResources.call(this, resourceConfiguration) - ]); - - const proxyResources = { - Resources: { - ...staticResources, - ...nextResources, - ...publicResources - } - }; - - merge( - this.serverless.service.resources, - assetsBucketResource, - proxyResources - ); -}; - -module.exports = addCustomStackResources; diff --git a/packages/deprecated/serverless-plugin/lib/build.js b/packages/deprecated/serverless-plugin/lib/build.js deleted file mode 100644 index a4f3281f95..0000000000 --- a/packages/deprecated/serverless-plugin/lib/build.js +++ /dev/null @@ -1,78 +0,0 @@ -const nextBuild = require("next/dist/build").default; -const path = require("path"); -const fse = require("fs-extra"); -const parseNextConfiguration = require("./parseNextConfiguration"); -const logger = require("../utils/logger"); -const copyBuildFiles = require("./copyBuildFiles"); -const getNextPagesFromBuildDir = require("./getNextPagesFromBuildDir"); -const rewritePageHandlers = require("./rewritePageHandlers"); - -const overrideTargetIfNotServerless = (nextConfiguration) => { - const { target } = nextConfiguration; - if (target !== "serverless") { - logger.log(`Target "${target}" found! Overriding it with serverless`); - nextConfiguration.target = "serverless"; - } -}; - -module.exports = async function () { - const pluginBuildDir = this.pluginBuildDir; - const nextConfigDir = pluginBuildDir.nextConfigDir; - - const [pageConfig, customHandler, routes] = this.getPluginConfigValues( - "pageConfig", - "customHandler", - "routes" - ); - - logger.log("Started building next app ..."); - - const servicePackage = this.serverless.service.package; - const nextAwsLambdaPath = path.relative( - nextConfigDir, - path.dirname(require.resolve("@sls-next/next-aws-lambda")) - ); - servicePackage.include = servicePackage.include || []; - servicePackage.include.push( - path.posix.join(pluginBuildDir.posixBuildDir, "**"), - path.posix.join(nextAwsLambdaPath, "**", "*.js"), - `!${path.posix.join(nextAwsLambdaPath, "**", "*.test.js")}` - ); - - const { nextConfiguration } = await parseNextConfiguration(nextConfigDir); - - overrideTargetIfNotServerless(nextConfiguration); - - await nextBuild(path.resolve(nextConfigDir), nextConfiguration); - await copyBuildFiles( - path.join(nextConfigDir, nextConfiguration.distDir), - pluginBuildDir - ); - - if (customHandler) { - await fse.copy( - path.resolve(nextConfigDir, customHandler), - path.join(pluginBuildDir.buildDir, customHandler) - ); - } - - const nextPages = await getNextPagesFromBuildDir(pluginBuildDir.buildDir, { - pageConfig, - routes, - additionalExcludes: customHandler - ? [path.basename(customHandler)] - : undefined - }); - - await rewritePageHandlers(nextPages, customHandler); - - nextPages.forEach((page) => { - const functionName = page.functionName; - this.serverless.service.functions[functionName] = - page.serverlessFunction[functionName]; - }); - - this.serverless.service.setFunctionNames(); - - return nextPages; -}; diff --git a/packages/deprecated/serverless-plugin/lib/checkForChanges.js b/packages/deprecated/serverless-plugin/lib/checkForChanges.js deleted file mode 100644 index fa3bee8126..0000000000 --- a/packages/deprecated/serverless-plugin/lib/checkForChanges.js +++ /dev/null @@ -1,25 +0,0 @@ -const getAssetsBucketName = require("./getAssetsBucketName"); - -module.exports = function () { - const bucketName = getAssetsBucketName.call(this); - const uploadBuildAssets = this.getPluginConfigValue("uploadBuildAssets"); - - if (!uploadBuildAssets || !bucketName) { - return Promise.resolve(); - } - - return this.provider - .request("S3", "listObjectsV2", { - Bucket: bucketName, - MaxKeys: 1 - }) - .catch((err) => { - if (!err.message.includes("The specified bucket does not exist")) { - throw err; - } - - throw new Error( - `The assets bucket "${bucketName}" does not exist. Create it manually or delete the stack and recreate it.` - ); - }); -}; diff --git a/packages/deprecated/serverless-plugin/lib/copyBuildFiles.js b/packages/deprecated/serverless-plugin/lib/copyBuildFiles.js deleted file mode 100644 index 8a026f32d4..0000000000 --- a/packages/deprecated/serverless-plugin/lib/copyBuildFiles.js +++ /dev/null @@ -1,12 +0,0 @@ -const fse = require("fs-extra"); -const path = require("path"); -const logger = require("../utils/logger"); - -module.exports = async (nextBuildDir, pluginBuildDirObj) => { - logger.log("Copying next pages to tmp build folder"); - - const pagesBuildDir = path.join(nextBuildDir, "serverless/pages"); - await pluginBuildDirObj.setupBuildDir(); - - return fse.copy(pagesBuildDir, pluginBuildDirObj.buildDir); -}; diff --git a/packages/deprecated/serverless-plugin/lib/displayServiceInfo.js b/packages/deprecated/serverless-plugin/lib/displayServiceInfo.js deleted file mode 100644 index 4d80cbb6fc..0000000000 --- a/packages/deprecated/serverless-plugin/lib/displayServiceInfo.js +++ /dev/null @@ -1,38 +0,0 @@ -const chalk = require("chalk"); - -const outputFinder = (outputs) => (key) => { - return outputs.find((o) => o.OutputKey === key); -}; - -const displayStackOutput = (awsInfo) => { - // remove this check after deploy mocks are correctly setup - if (awsInfo.gatheredData.outputs.length === 0) { - return; - } - const findOutput = outputFinder(awsInfo.gatheredData.outputs); - - const apiGateway = findOutput("ServiceEndpoint"); - const bucketSecureURL = findOutput("NextStaticAssetsS3BucketSecureURL"); - const cloudFrontUrl = findOutput("NextjsCloudFrontURL"); - - let message = ""; - message += `\n${chalk.yellow.underline("Nextjs Application Info")}\n\n`; - - if (cloudFrontUrl) { - message += `${chalk.yellow("Application URL:")} ${ - cloudFrontUrl.OutputValue - }\n`; - } else { - message += `${chalk.yellow("Application URL:")} ${ - apiGateway.OutputValue - }\n`; - } - - if (bucketSecureURL) { - message += `${chalk.yellow("S3 Bucket:")} ${bucketSecureURL.OutputValue}\n`; - } - - console.log(message); -}; - -module.exports = displayStackOutput; diff --git a/packages/deprecated/serverless-plugin/lib/getAssetsBucketName.js b/packages/deprecated/serverless-plugin/lib/getAssetsBucketName.js deleted file mode 100644 index abdc743eb7..0000000000 --- a/packages/deprecated/serverless-plugin/lib/getAssetsBucketName.js +++ /dev/null @@ -1,28 +0,0 @@ -const parseNextConfiguration = require("./parseNextConfiguration"); - -module.exports = function () { - const nextConfigDir = this.getPluginConfigValue("nextConfigDir"); - const staticDir = this.getPluginConfigValue("staticDir"); - - let { staticAssetsBucket } = parseNextConfiguration(nextConfigDir); - - const bucketNameFromConfig = this.getPluginConfigValue("assetsBucketName"); - - if (bucketNameFromConfig) { - // bucket name provided via user config takes precendence - // over parsed value from assetPrefix - staticAssetsBucket = bucketNameFromConfig; - } - - if (!staticAssetsBucket) { - if (staticDir) { - throw new Error( - "staticDir requires a bucket. See https://github.com/danielcondemarin/serverless-nextjs-plugin#hosting-static-assets" - ); - } - - return null; - } - - return staticAssetsBucket; -}; diff --git a/packages/deprecated/serverless-plugin/lib/getFactoryHandlerCode.js b/packages/deprecated/serverless-plugin/lib/getFactoryHandlerCode.js deleted file mode 100644 index ed2e94a9d3..0000000000 --- a/packages/deprecated/serverless-plugin/lib/getFactoryHandlerCode.js +++ /dev/null @@ -1,38 +0,0 @@ -const path = require("path"); -const PAGE_BUNDLE_PATH = "/*page_bundle_path_placeholder*/"; -const HANDLER_FACTORY_PATH = "/*handler_factory_path_placeholder*/"; - -const lambdaHandlerWithFactory = ` - const page = require("${PAGE_BUNDLE_PATH}"); - const handlerFactory = require("${HANDLER_FACTORY_PATH}"); - - module.exports.render = async (event, context) => { - const handler = handlerFactory(page); - const responsePromise = handler(event, context); - return responsePromise; - }; -`; - -module.exports = (jsHandlerPath, customHandlerPath) => { - // convert windows path to POSIX - jsHandlerPath = jsHandlerPath.replace(/\\/g, "/"); - const basename = path.basename(jsHandlerPath, ".js"); - - // get relative path to custom handler - if (customHandlerPath) { - let pathDepth = jsHandlerPath.split("/").length - 2; - if (pathDepth > 0) { - customHandlerPath = customHandlerPath.replace("./", ""); - while (pathDepth-- > 0) { - customHandlerPath = `../${customHandlerPath}`; - } - } - } - - return lambdaHandlerWithFactory - .replace(PAGE_BUNDLE_PATH, `./${basename}.original.js`) - .replace( - HANDLER_FACTORY_PATH, - customHandlerPath || "@sls-next/next-aws-lambda" - ); -}; diff --git a/packages/deprecated/serverless-plugin/lib/getNextPagesFromBuildDir.js b/packages/deprecated/serverless-plugin/lib/getNextPagesFromBuildDir.js deleted file mode 100644 index ad9d28e63c..0000000000 --- a/packages/deprecated/serverless-plugin/lib/getNextPagesFromBuildDir.js +++ /dev/null @@ -1,79 +0,0 @@ -const path = require("path"); -const walkDir = require("klaw"); -const fs = require("fs"); -const logger = require("../utils/logger"); -const NextPage = require("../classes/NextPage"); - -const logPages = (nextPages) => { - const pageNames = nextPages.map((p) => p.pageName); - logger.log(`Found ${pageNames.length} next page(s)`); -}; - -const excludeBuildFiles = [ - "_app.js", - "_document.js", - "compatLayer.js", - "aws-lambda-compat.js" -]; -const SOURCE_MAP_EXT = ".map"; - -const getBuildFiles = (buildDir) => { - const buildFiles = []; - return new Promise((resolve) => { - const stream = walkDir(buildDir); - stream - .on("data", (item) => { - const isFile = !fs.lstatSync(item.path).isDirectory(); - - if (isFile) { - buildFiles.push(item.path); - } - }) - .on("end", () => { - resolve(buildFiles); - }); - }); -}; - -module.exports = async (buildDir, options = {}) => { - const { pageConfig = {}, additionalExcludes = [], routes = [] } = options; - - const buildFiles = await getBuildFiles(buildDir); - const [buildDirRoot] = buildDir.split(path.sep); - const exclude = excludeBuildFiles.concat(additionalExcludes); - - const nextPages = buildFiles - .map(function normaliseFilePath(fullFilePath) { - const pathSegments = fullFilePath.split(path.sep); - const buildDirIndex = pathSegments.indexOf(buildDirRoot); - - return path.join.apply( - null, - pathSegments.slice(buildDirIndex, pathSegments.length) - ); - }) - .filter((bf) => !exclude.includes(path.basename(bf))) - .filter((bf) => !bf.endsWith(SOURCE_MAP_EXT)) - .map((normalisedFilePath) => { - const nextPage = new NextPage(normalisedFilePath); - - nextPage.routes = routes - .filter((r) => r.src === nextPage.pageId) - .map((r) => { - const { src, ...routeParams } = r; - return routeParams; - }); - - nextPage.serverlessFunctionOverrides = Object.assign( - {}, - pageConfig["*"], - pageConfig[nextPage.pageId] - ); - - return nextPage; - }); - - logPages(nextPages); - - return nextPages; -}; diff --git a/packages/deprecated/serverless-plugin/lib/parseNextConfiguration.js b/packages/deprecated/serverless-plugin/lib/parseNextConfiguration.js deleted file mode 100644 index 128bd1360b..0000000000 --- a/packages/deprecated/serverless-plugin/lib/parseNextConfiguration.js +++ /dev/null @@ -1,44 +0,0 @@ -let nextLoadConfig; -let PHASE_PRODUCTION_BUILD; -try { - nextLoadConfig = require("next-server/dist/server/config").default; - PHASE_PRODUCTION_BUILD = require("next-server/dist/lib/constants") - .PHASE_PRODUCTION_BUILD; -} catch (e) { - // https://github.com/danielcondemarin/serverless-next.js/issues/157 - // Some files were moved in the dist/ directory in next.js 9.0.6 - // check the new location if the old location failed. - nextLoadConfig = require("next/dist/next-server/server/config").default; - PHASE_PRODUCTION_BUILD = require("next/dist/next-server/lib/constants") - .PHASE_PRODUCTION_BUILD; -} - -const s3Urls = require("@mapbox/s3urls"); -const createError = require("../utils/createError"); - -module.exports = (nextConfigDir) => { - if (typeof nextConfigDir !== "string") { - throw createError("Provide a valid next.config file path"); - } - - const nextConfiguration = nextLoadConfig( - PHASE_PRODUCTION_BUILD, - nextConfigDir - ); - - const assetPrefix = nextConfiguration.assetPrefix; - let staticAssetsBucket = null; - - if (assetPrefix) { - const { Bucket } = s3Urls.fromUrl(assetPrefix); - - if (Bucket) { - staticAssetsBucket = Bucket; - } - } - - return { - staticAssetsBucket, - nextConfiguration - }; -}; diff --git a/packages/deprecated/serverless-plugin/lib/rewritePageHandlers.js b/packages/deprecated/serverless-plugin/lib/rewritePageHandlers.js deleted file mode 100644 index 38d830ccab..0000000000 --- a/packages/deprecated/serverless-plugin/lib/rewritePageHandlers.js +++ /dev/null @@ -1,31 +0,0 @@ -const fs = require("fs"); -const { promisify } = require("util"); -const getFactoryHandlerCode = require("./getFactoryHandlerCode"); -const logger = require("../utils/logger"); - -const processJsHandler = async (nextPage, customHandler) => { - const writeFileAsync = promisify(fs.writeFile); - const renameAsync = promisify(fs.rename); - - const compatCodeContent = getFactoryHandlerCode( - nextPage.pagePath, - customHandler - ); - - logger.log(`Creating compat handler for page: ${nextPage.pageId}.js`); - - await writeFileAsync(nextPage.pageCompatPath, compatCodeContent); - - // sls-next-build/page.js -> sls-next-build/page.original.js - await renameAsync(nextPage.pagePath, nextPage.pageOriginalPath); - - // sls-next-build/page.compat.js -> sls-next-build/page.js - await renameAsync(nextPage.pageCompatPath, nextPage.pagePath); -}; - -module.exports = (nextPages, customHandler) => { - const promises = nextPages.map((page) => - processJsHandler(page, customHandler) - ); - return Promise.all(promises); -}; diff --git a/packages/deprecated/serverless-plugin/lib/uploadStaticAssets.js b/packages/deprecated/serverless-plugin/lib/uploadStaticAssets.js deleted file mode 100644 index a230780207..0000000000 --- a/packages/deprecated/serverless-plugin/lib/uploadStaticAssets.js +++ /dev/null @@ -1,61 +0,0 @@ -const fs = require("fs"); -const fse = require("fs-extra"); -const path = require("path"); -const uploadDirToS3Factory = require("../utils/s3/upload"); - -module.exports = async function () { - let { nextConfiguration, staticAssetsBucket } = this.configuration; - const buildId = nextConfiguration.distDir // eslint-disable-next-line prettier/prettier - ? fs.readFileSync( - path.join(this.nextConfigDir, nextConfiguration.distDir, "BUILD_ID") - ) - : null; - - const uploadDirToS3 = uploadDirToS3Factory(this.providerRequest, buildId); - - const [bucketNameFromConfig, uploadBuildAssets] = this.getPluginConfigValues( - "assetsBucketName", - "uploadBuildAssets" - ); - - if (bucketNameFromConfig) { - staticAssetsBucket = bucketNameFromConfig; - } - - if (!staticAssetsBucket) { - return Promise.resolve(); - } - - const uploadPromises = []; - - const uploadStaticOrPublicDirectory = async (dirName) => { - const dir = path.join(this.nextConfigDir, dirName); - const dirExists = await fse.pathExists(dir); - - if (dirExists) { - const uploadPromise = uploadDirToS3(dir, { - bucket: staticAssetsBucket, - truncate: dirName - }); - - uploadPromises.push(uploadPromise); - } - }; - - if (uploadBuildAssets !== false) { - const buildAssetsUpload = uploadDirToS3( - path.join(this.nextConfigDir, nextConfiguration.distDir, "static"), - { - bucket: staticAssetsBucket, - truncate: "static", - rootPrefix: "_next" - } - ); - uploadPromises.push(buildAssetsUpload); - } - - uploadStaticOrPublicDirectory("static"); - uploadStaticOrPublicDirectory("public"); - - return Promise.all(uploadPromises); -}; diff --git a/packages/deprecated/serverless-plugin/package.json b/packages/deprecated/serverless-plugin/package.json deleted file mode 100644 index 82ddbed39b..0000000000 --- a/packages/deprecated/serverless-plugin/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@sls-next/serverless-plugin", - "publishConfig": { - "access": "public" - }, - "version": "2.6.3-alpha.1", - "description": "A serverless plugin for nextjs 8 serverless target", - "main": "index.js", - "keywords": [ - "serverless", - "nextjs", - "lambda", - "next", - "api gateway" - ], - "author": "Daniel Conde Marin ", - "license": "MIT", - "peerDependencies": { - "next": "^8.0.0" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-next.js.git", - "directory": "packages/serverless-plugin" - }, - "dependencies": { - "@mapbox/s3urls": "^1.5.3", - "@sls-next/next-aws-lambda": "link:../../compat-layers/apigw-lambda-compat", - "chalk": "^2.4.2", - "debug": "^4.1.1", - "fs-extra": "^7.0.1", - "js-yaml": "^3.12.1", - "klaw": "^3.0.0", - "lodash.clonedeep": "^4.5.0", - "lodash.merge": "^4.6.1", - "mime": "^2.4.0" - }, - "engines": { - "node": ">=8.5.0" - } -} diff --git a/packages/deprecated/serverless-plugin/resources/api-gw-next.yml b/packages/deprecated/serverless-plugin/resources/api-gw-next.yml deleted file mode 100644 index b8baf8a706..0000000000 --- a/packages/deprecated/serverless-plugin/resources/api-gw-next.yml +++ /dev/null @@ -1,41 +0,0 @@ -resources: - Resources: - NextStaticAssetsProxyParentResource: - Type: AWS::ApiGateway::Resource - Properties: - ParentId: - Fn::GetAtt: - - ApiGatewayRestApi # serverless default Rest API logical ID - - RootResourceId - PathPart: TO_BE_REPLACED - RestApiId: - Ref: ApiGatewayRestApi - NextStaticAssetsProxyResource: - Type: AWS::ApiGateway::Resource - Properties: - ParentId: - Ref: NextStaticAssetsProxyParentResource - PathPart: "{proxy+}" # the endpoint in your API that is set as proxy - RestApiId: - Ref: ApiGatewayRestApi - NextStaticAssetsProxyMethod: - Type: AWS::ApiGateway::Method - Properties: - AuthorizationType: NONE - ResourceId: - Ref: NextStaticAssetsProxyResource - RestApiId: - Ref: ApiGatewayRestApi - HttpMethod: GET - MethodResponses: - - StatusCode: 200 - RequestParameters: - method.request.path.proxy: true - Integration: - IntegrationHttpMethod: GET - Type: HTTP_PROXY - Uri: TO_BE_REPLACED - RequestParameters: - integration.request.path.proxy: method.request.path.proxy - IntegrationResponses: - - StatusCode: 200 diff --git a/packages/deprecated/serverless-plugin/resources/api-gw-proxy.yml b/packages/deprecated/serverless-plugin/resources/api-gw-proxy.yml deleted file mode 100644 index 59e3784083..0000000000 --- a/packages/deprecated/serverless-plugin/resources/api-gw-proxy.yml +++ /dev/null @@ -1,28 +0,0 @@ -Resources: - ProxyResource: - Type: AWS::ApiGateway::Resource - Properties: - ParentId: - Fn::GetAtt: - - ApiGatewayRestApi # serverless default Rest API logical ID - - RootResourceId - PathPart: TO_BE_REPLACED # the endpoint in your API that is set as proxy - RestApiId: - Ref: ApiGatewayRestApi - ProxyMethod: - Type: AWS::ApiGateway::Method - Properties: - AuthorizationType: NONE - ResourceId: - Ref: TO_BE_REPLACED - RestApiId: - Ref: ApiGatewayRestApi - HttpMethod: GET - MethodResponses: - - StatusCode: 200 - Integration: - IntegrationHttpMethod: ANY - Type: HTTP_PROXY - Uri: TO_BE_REPLACED - IntegrationResponses: - - StatusCode: 200 diff --git a/packages/deprecated/serverless-plugin/resources/api-gw-static.yml b/packages/deprecated/serverless-plugin/resources/api-gw-static.yml deleted file mode 100644 index 0e70d47e4a..0000000000 --- a/packages/deprecated/serverless-plugin/resources/api-gw-static.yml +++ /dev/null @@ -1,41 +0,0 @@ -resources: - Resources: - StaticAssetsProxyParentResource: - Type: AWS::ApiGateway::Resource - Properties: - ParentId: - Fn::GetAtt: - - ApiGatewayRestApi # serverless default Rest API logical ID - - RootResourceId - PathPart: TO_BE_REPLACED - RestApiId: - Ref: ApiGatewayRestApi - StaticAssetsProxyResource: - Type: AWS::ApiGateway::Resource - Properties: - ParentId: - Ref: StaticAssetsProxyParentResource - PathPart: "{proxy+}" # the endpoint in your API that is set as proxy - RestApiId: - Ref: ApiGatewayRestApi - StaticAssetsProxyMethod: - Type: AWS::ApiGateway::Method - Properties: - AuthorizationType: NONE - ResourceId: - Ref: StaticAssetsProxyResource - RestApiId: - Ref: ApiGatewayRestApi - HttpMethod: GET - MethodResponses: - - StatusCode: 200 - RequestParameters: - method.request.path.proxy: true - Integration: - IntegrationHttpMethod: GET - Type: HTTP_PROXY - Uri: TO_BE_REPLACED - RequestParameters: - integration.request.path.proxy: method.request.path.proxy - IntegrationResponses: - - StatusCode: 200 diff --git a/packages/deprecated/serverless-plugin/resources/assets-bucket.yml b/packages/deprecated/serverless-plugin/resources/assets-bucket.yml deleted file mode 100644 index 6b678b1472..0000000000 --- a/packages/deprecated/serverless-plugin/resources/assets-bucket.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -Resources: - NextStaticAssetsS3Bucket: - Type: AWS::S3::Bucket - Properties: - AccessControl: PublicRead - CorsConfiguration: - CorsRules: - - AllowedHeaders: ["*"] - AllowedMethods: [GET] - AllowedOrigins: ["*"] - ExposedHeaders: [Date] - Id: NextStaticAssetsS3BucketId1 - MaxAge: "3600" - BucketName: TO_BE_REPLACED - WebsiteConfiguration: - IndexDocument: index.html - ErrorDocument: error.html - DeletionPolicy: Retain -Outputs: - NextStaticAssetsS3BucketWebsiteURL: - Value: !GetAtt [NextStaticAssetsS3Bucket, WebsiteURL] - Description: URL for the S3 website hosting the static assets - NextStaticAssetsS3BucketSecureURL: - Value: - !Join ["", ["https://", !GetAtt [NextStaticAssetsS3Bucket, DomainName]]] - Description: S3 Bucket which holds the static assets diff --git a/packages/deprecated/serverless-plugin/resources/cloudfront.yml b/packages/deprecated/serverless-plugin/resources/cloudfront.yml deleted file mode 100644 index b77635e377..0000000000 --- a/packages/deprecated/serverless-plugin/resources/cloudfront.yml +++ /dev/null @@ -1,75 +0,0 @@ -AWSTemplateFormatVersion: "2010-09-09" -Resources: - NextjsCloudFront: - Type: AWS::CloudFront::Distribution - Properties: - DistributionConfig: - Origins: - - DomainName: TO_BE_REPLACED - Id: S3Origin - S3OriginConfig: - OriginAccessIdentity: "" - - DomainName: TO_BE_REPLACED - Id: S3PublicOrigin - OriginPath: /public - S3OriginConfig: - OriginAccessIdentity: "" - - DomainName: - Fn::Join: - - "" - - - Ref: ApiGatewayRestApi - - TO_BE_REPLACED - Id: ApiGatewayOrigin - OriginPath: TO_BE_REPLACED - CustomOriginConfig: - HTTPSPort: 443 - OriginProtocolPolicy: https-only - Enabled: "true" - DefaultCacheBehavior: - AllowedMethods: - - GET - - HEAD - - OPTIONS - - PUT - - PATCH - - POST - - DELETE - TargetOriginId: ApiGatewayOrigin - Compress: "true" - ForwardedValues: - QueryString: "true" - Cookies: - Forward: all - ViewerProtocolPolicy: https-only - CacheBehaviors: - - AllowedMethods: - - GET - - HEAD - - OPTIONS - TargetOriginId: S3Origin - Compress: "true" - ForwardedValues: - QueryString: "false" - Cookies: - Forward: none - ViewerProtocolPolicy: https-only - MinTTL: "50" - PathPattern: static/* - - AllowedMethods: - - GET - - HEAD - - OPTIONS - TargetOriginId: S3Origin - Compress: "true" - ForwardedValues: - QueryString: "false" - Cookies: - Forward: none - ViewerProtocolPolicy: https-only - MinTTL: "50" - PathPattern: _next/* - PriceClass: PriceClass_100 -Outputs: - NextjsCloudFrontURL: - Value: !Join ["", ["https://", !GetAtt [NextjsCloudFront, DomainName]]] - Description: CloudFront distribution URL diff --git a/packages/deprecated/serverless-plugin/utils/__tests__/logger.test.js b/packages/deprecated/serverless-plugin/utils/__tests__/logger.test.js deleted file mode 100644 index 28dfcb6ddc..0000000000 --- a/packages/deprecated/serverless-plugin/utils/__tests__/logger.test.js +++ /dev/null @@ -1,29 +0,0 @@ -const logger = require("../logger"); - -describe("logger", () => { - beforeEach(() => { - console.log = jest.fn(); - console.error = jest.fn(); - console.warn = jest.fn(); - }); - - describe("log", () => { - it("should call console.log with message", () => { - const message = "foo"; - - logger.log(message); - - expect(console.log).toBeCalledWith(expect.stringContaining(message)); - }); - }); - - describe("error", () => { - it("should call console.error with message", () => { - const message = "foo"; - - logger.error(message); - - expect(console.error).toBeCalledWith(expect.stringContaining(message)); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/utils/createError.js b/packages/deprecated/serverless-plugin/utils/createError.js deleted file mode 100644 index 910e3366c3..0000000000 --- a/packages/deprecated/serverless-plugin/utils/createError.js +++ /dev/null @@ -1,5 +0,0 @@ -const createError = (message) => { - return new Error(`Serverless Nextjs: ${message}`); -}; - -module.exports = createError; diff --git a/packages/deprecated/serverless-plugin/utils/logger.js b/packages/deprecated/serverless-plugin/utils/logger.js deleted file mode 100644 index d636045711..0000000000 --- a/packages/deprecated/serverless-plugin/utils/logger.js +++ /dev/null @@ -1,13 +0,0 @@ -const chalk = require("chalk"); - -const LOG_PREFIX = "Serverless Nextjs: "; - -module.exports = { - log: (message) => { - console.log(`${LOG_PREFIX}${chalk.yellow(message)}`); - }, - - error: (message) => { - console.error(`${LOG_PREFIX}${chalk.red(message)}`); - } -}; diff --git a/packages/deprecated/serverless-plugin/utils/pathToPosix.js b/packages/deprecated/serverless-plugin/utils/pathToPosix.js deleted file mode 100644 index d04136414c..0000000000 --- a/packages/deprecated/serverless-plugin/utils/pathToPosix.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = (path) => path.replace(/\\/g, "/"); diff --git a/packages/deprecated/serverless-plugin/utils/s3/__tests__/get.test.js b/packages/deprecated/serverless-plugin/utils/s3/__tests__/get.test.js deleted file mode 100644 index 2afda3a967..0000000000 --- a/packages/deprecated/serverless-plugin/utils/s3/__tests__/get.test.js +++ /dev/null @@ -1,119 +0,0 @@ -const getFactory = require("../get"); - -describe("s3 get", () => { - let awsProvider; - let get; - - beforeEach(() => { - awsProvider = jest.fn().mockResolvedValue({ - Contents: [] - }); - get = getFactory(awsProvider); - }); - - it("should list objects using bucket and prefix", () => { - expect.assertions(2); - - const key = "/path/to/smile.jpg"; - const bucket = "my-bucket"; - - awsProvider.mockResolvedValueOnce({ - Contents: [ - { - Key: key - } - ] - }); - - return get(key, bucket).then((object) => { - expect(object.Key).toEqual(key); - expect(awsProvider).toBeCalledWith("S3", "listObjectsV2", { - Bucket: bucket, - Prefix: "/path/to" - }); - }); - }); - - it("should not list objects again if key already in cache", () => { - expect.assertions(3); - - const key = "/path/to/ironman.jpg"; - const bucket = "my-bucket"; - - awsProvider.mockResolvedValueOnce({ - Contents: [ - { - Key: key - } - ] - }); - - return get(key, bucket) - .then(() => get(key, bucket)) - .then((object) => { - expect(object.Key).toEqual(key); - expect(awsProvider).toBeCalledTimes(1); - expect(awsProvider).toBeCalledWith("S3", "listObjectsV2", { - Bucket: bucket, - Prefix: "/path/to" - }); - }); - }); - - it("should handle paginated response", () => { - expect.assertions(4); - - const key = "/path/to/batman.jpg"; - const bucket = "my-bucket"; - const continuationToken = "123"; - - awsProvider.mockResolvedValueOnce({ - IsTruncated: true, - Contents: [{ Key: "/path/to/bar.jpg" }], - NextContinuationToken: continuationToken - }); - - return get(key, bucket).then((object) => { - expect(object).toEqual(undefined); - expect(awsProvider).toBeCalledTimes(2); - expect(awsProvider).toBeCalledWith("S3", "listObjectsV2", { - Bucket: bucket, - Prefix: "/path/to" - }); - expect(awsProvider).toBeCalledWith("S3", "listObjectsV2", { - Bucket: bucket, - Prefix: "/path/to", - ContinuationToken: continuationToken - }); - }); - }); - - it("should not list objects again if key already in cache after paginated response", () => { - expect.assertions(4); - - const bucket = "my-bucket"; - const key = "/path/to/ironman.jpg"; - - awsProvider.mockResolvedValueOnce({ - IsTruncated: true, - Contents: [{ Key: key }], - NextContinuationToken: "123" - }); - - return get(key, bucket) - .then(() => get(key, bucket)) - .then((object) => { - expect(object.Key).toEqual(key); - expect(awsProvider).toBeCalledTimes(2); - expect(awsProvider).toBeCalledWith("S3", "listObjectsV2", { - Bucket: bucket, - Prefix: "/path/to" - }); - expect(awsProvider).toBeCalledWith("S3", "listObjectsV2", { - Bucket: bucket, - Prefix: "/path/to", - ContinuationToken: "123" - }); - }); - }); -}); diff --git a/packages/deprecated/serverless-plugin/utils/s3/__tests__/upload.test.js b/packages/deprecated/serverless-plugin/utils/s3/__tests__/upload.test.js deleted file mode 100644 index a33e245102..0000000000 --- a/packages/deprecated/serverless-plugin/utils/s3/__tests__/upload.test.js +++ /dev/null @@ -1,385 +0,0 @@ -const stream = require("stream"); -const walkDir = require("klaw"); -const fse = require("fs-extra"); -const path = require("path"); -const s3Upload = require("../upload"); -const getFactory = require("../get"); -const logger = require("../../logger"); - -jest.mock("fs-extra"); -jest.mock("klaw"); -jest.mock("../get"); -jest.mock("../../logger"); -const mockBuildId = "1hCeVQzuD6WJQAxuV3hwc"; - -describe("s3Upload", () => { - let upload; - let walkStream; - let awsProvider; - let get; - - beforeEach(() => { - get = jest.fn(); - awsProvider = jest.fn(); - getFactory.mockReturnValue(get); - walkStream = new stream.Readable(); - walkStream._read = () => {}; - walkDir.mockReturnValueOnce(walkStream); - fse.lstat.mockResolvedValue({ isDirectory: () => false }); - fse.createReadStream.mockReturnValue("readStream"); - - upload = s3Upload(awsProvider, mockBuildId); - }); - - it("should read from the directory given", () => { - expect.assertions(1); - - const dir = "/path/to/dir"; - - const r = upload(dir, { bucket: "my-bucket" }).then(() => { - expect(walkDir).toBeCalledWith(dir); - }); - - walkStream.emit("end"); - - return r; - }); - - it("should upload build assets files to S3 with correct parameters and resolve with file count", () => { - expect.assertions(5); - - const bucket = "my-bucket"; - - const r = upload("/path/to/dir", { - bucket, - rootPrefix: "_next" - }).then((result) => { - expect(logger.log).toBeCalledWith( - `Uploading /path/to/dir to ${bucket} ...` - ); - - expect(awsProvider).toBeCalledWith("S3", "upload", { - ContentType: "application/javascript", - ACL: "public-read", - Bucket: bucket, - CacheControl: "public, max-age=31536000, immutable", - Key: "_next/runtime/foo.js", - Body: "readStream" - }); - - expect(awsProvider).toBeCalledWith("S3", "upload", { - ContentType: "application/javascript", - ACL: "public-read", - Bucket: bucket, - CacheControl: "public, max-age=31536000, immutable", - Key: "_next/chunk/foo.js", - Body: "readStream" - }); - - expect(awsProvider).toBeCalledWith("S3", "upload", { - ContentType: "application/javascript", - ACL: "public-read", - Bucket: bucket, - CacheControl: "public, max-age=31536000, immutable", - Key: `_next/${mockBuildId}/path/foo.js`, - Body: "readStream" - }); - - expect(result.count).toEqual(3); - }); - - walkStream.emit("data", { - path: "/chunk/foo.js" - }); - - walkStream.emit("data", { - path: "/runtime/foo.js" - }); - - walkStream.emit("data", { - path: `/${mockBuildId}/path/foo.js` - }); - - walkStream.emit("end"); - - return r; - }); - - it("should upload files to S3 with correct parameters and resolve with file count", () => { - expect.assertions(5); - - const bucket = "my-bucket"; - - const r = upload("/path/to/dir", { - bucket - }).then((result) => { - expect(logger.log).toBeCalledWith( - `Uploading /path/to/dir to ${bucket} ...` - ); - - expect(awsProvider).toBeCalledWith("S3", "upload", { - ContentType: "application/javascript", - ACL: "public-read", - Bucket: bucket, - CacheControl: undefined, - Key: "/path/to/foo.js", - Body: "readStream" - }); - - expect(awsProvider).toBeCalledWith("S3", "upload", { - ContentType: "text/css", - ACL: "public-read", - Bucket: bucket, - CacheControl: undefined, - Key: "/path/to/bar.css", - Body: "readStream" - }); - - expect(awsProvider).toBeCalledWith("S3", "upload", { - ContentType: "text/plain", - ACL: "public-read", - Bucket: bucket, - CacheControl: undefined, - Key: "/path/to/readme.txt", - Body: "readStream" - }); - - expect(result.count).toEqual(3); - }); - - walkStream.emit("data", { - path: "/path/to/foo.js" - }); - - walkStream.emit("data", { - path: "/path/to/bar.css" - }); - - walkStream.emit("data", { - path: "/path/to/readme.txt" - }); - - walkStream.emit("end"); - - return r; - }); - - it("should not try uploading directories", () => { - expect.assertions(1); - - fse.lstat.mockResolvedValue({ isDirectory: () => true }); - - const r = upload("/path/to/dir", { - bucket: "my-bucket" - }).then(() => { - expect(awsProvider).not.toBeCalledWith( - "S3", - "upload", - expect.objectContaining({ - Key: "/path/to/dir/subdir" - }) - ); - }); - - walkStream.emit("data", { - path: "/path/to/dir/subdir" - }); - - walkStream.emit("end"); - - return r; - }); - - it("should handle windows paths", () => { - expect.assertions(1); - - const r = upload("/path/to/dir", { - bucket: "my-bucket" - }).then(() => { - expect(awsProvider).toBeCalledWith( - "S3", - "upload", - expect.objectContaining({ - Key: "/path/to/foo.js" - }) - ); - }); - - walkStream.emit("data", { - path: path.win32.normalize("/path/to/foo.js") - }); - - walkStream.emit("end"); - - return r; - }); - - it("should reject when a file upload fails", () => { - expect.assertions(1); - - awsProvider.mockRejectedValueOnce(new Error("Boom!")); - - const promise = upload("/path/to/dir", { - bucket: "my-bucket" - }).catch((err) => { - expect(err.message).toContain("Boom"); - }); - - walkStream.emit("data", { - path: "/path/to/foo.js" - }); - walkStream.emit("end"); - - return promise; - }); - - it.each` - filePath | truncate | expectedKey - ${"/some/path/to/foo.js"} | ${"to"} | ${"to/foo.js"} - ${"/static-app/static/foo/bar.js"} | ${"static"} | ${"static/foo/bar.js"} - `( - "When file path is $filePath S3 Key should be $expectedKey", - ({ filePath, truncate, expectedKey }) => { - expect.assertions(2); - - const promise = upload("/path/to/dir", { - bucket: "my-bucket", - truncate: truncate - }).then(() => { - [1, 2].forEach((i) => { - expect(awsProvider).toHaveBeenNthCalledWith( - i, - "S3", - "upload", - expect.objectContaining({ - Key: expectedKey - }) - ); - }); - }); - - walkStream.emit("data", { - path: filePath - }); - - walkStream.emit("data", { - path: path.win32.normalize(filePath) - }); - - walkStream.emit("end"); - - return promise; - } - ); - - it("S3 Key should use rootPrefix", () => { - expect.assertions(2); - - const promise = upload("/path/to/dir", { - bucket: "my-bucket", - truncate: "to", - rootPrefix: "blah" - }).then(() => { - expect(awsProvider).toBeCalledWith( - "S3", - "upload", - expect.objectContaining({ - Key: "blah/to/foo.js" - }) - ); - expect(awsProvider).toBeCalledWith( - "S3", - "upload", - expect.objectContaining({ - Key: "blah/to/bar.js" - }) - ); - }); - - walkStream.emit("data", { - path: "/some/path/to/foo.js" - }); - - walkStream.emit("data", { - path: path.win32.normalize("/some/path/to/bar.js") - }); - - walkStream.emit("end"); - - return promise; - }); - - it("should not try to upload file that is already uploaded with same file size", () => { - expect.assertions(2); - - const size = 100; - const key = "/path/to/happyface.jpg"; - - fse.lstat.mockResolvedValueOnce({ - isDirectory: () => false, - size - }); - - get.mockResolvedValue({ - ETag: '"70ee1738b6b21e2c8a43f3a5ab0eee71"', - Key: key, - LastModified: "", - Size: size, - StorageClass: "STANDARD" - }); - - const bucket = "my-bucket"; - - const promise = upload("/path/to/dir", { - bucket - }).then(() => { - expect(get).toBeCalledWith(key, bucket); - expect(awsProvider).not.toBeCalledWith("S3", "upload", expect.anything()); - }); - - walkStream.emit("data", { - path: "/path/to/happyface.jpg" - }); - - walkStream.emit("end"); - - return promise; - }); - - it("should upload file that is already uploaded with with different file size", () => { - expect.assertions(2); - - const size = 100; - const key = "/path/to/happyface.jpg"; - - fse.lstat.mockResolvedValueOnce({ - isDirectory: () => false, - size - }); - - get.mockResolvedValue({ - ETag: '"70ee1738b6b21e2c8a43f3a5ab0eee71"', - Key: key, - LastModified: "", - Size: size + 1, - StorageClass: "STANDARD" - }); - - const bucket = "my-bucket"; - - const promise = upload("/path/to/dir", { - bucket - }).then(() => { - expect(get).toBeCalledWith(key, bucket); - expect(awsProvider).toBeCalledWith("S3", "upload", expect.anything()); - }); - - walkStream.emit("data", { - path: "/path/to/happyface.jpg" - }); - - walkStream.emit("end"); - - return promise; - }); -}); diff --git a/packages/deprecated/serverless-plugin/utils/s3/get.js b/packages/deprecated/serverless-plugin/utils/s3/get.js deleted file mode 100644 index 395ef9c22f..0000000000 --- a/packages/deprecated/serverless-plugin/utils/s3/get.js +++ /dev/null @@ -1,65 +0,0 @@ -const path = require("path"); -const debug = require("debug")("sls-next:s3"); - -module.exports = (awsProvider) => { - const cache = {}; - - const addPrefixToCache = (prefix, listPromise) => { - const updateCache = (prefixCache) => - listPromise.then(({ Contents }) => { - Contents.forEach((x) => (prefixCache[x.Key] = x)); - return prefixCache; - }); - - if (cache[prefix]) { - // already objects have been cached for this prefix - cache[prefix] = cache[prefix].then((prefixCache) => - updateCache(prefixCache) - ); - } else { - cache[prefix] = updateCache({}); - } - }; - - return (key, bucket) => { - async function getWithCache(nextContinuationToken) { - const prefix = path.dirname(key); - - const shouldReturnFromCache = cache[prefix] && !nextContinuationToken; - - if (shouldReturnFromCache) { - debug(`cache hit - ${key}`); - const objects = await cache[prefix]; - return objects[key]; - } - - const listParams = { - Bucket: bucket, - Prefix: prefix - }; - - if (nextContinuationToken) { - listParams.ContinuationToken = nextContinuationToken; - } - - debug(`listObjects - ${listParams.Prefix}`); - - const listPromise = awsProvider("S3", "listObjectsV2", listParams); - - addPrefixToCache(prefix, listPromise); - - const { NextContinuationToken, IsTruncated } = await listPromise; - - if (IsTruncated) { - await getWithCache(NextContinuationToken); - } - - const keys = await cache[prefix]; - return keys[key]; - } - - const object = getWithCache(null); - - return object; - }; -}; diff --git a/packages/deprecated/serverless-plugin/utils/s3/upload.js b/packages/deprecated/serverless-plugin/utils/s3/upload.js deleted file mode 100644 index 3f574eca56..0000000000 --- a/packages/deprecated/serverless-plugin/utils/s3/upload.js +++ /dev/null @@ -1,120 +0,0 @@ -const mime = require("mime"); -const walkDir = require("klaw"); -const fse = require("fs-extra"); -const path = require("path"); -const pathToPosix = require("../pathToPosix"); -const get = require("./get"); -const logger = require("../logger"); -const debug = require("debug")("sls-next:s3"); - -const getUploadParameters = ( - bucket, - filePath, - truncate, - rootPrefix, - CacheControl -) => { - let key = pathToPosix(filePath); - - if (truncate) { - const pathSegments = key.split(path.posix.sep); - const prefixIndex = pathSegments.indexOf(truncate); - - if (prefixIndex !== -1) { - key = pathSegments - .slice(prefixIndex, pathSegments.length) - .join(path.posix.sep); - } - } - - if (rootPrefix) { - key = path.posix.join(rootPrefix, key); - } - - return { - ACL: "public-read", - Bucket: bucket, - Key: key, - CacheControl, - ContentType: mime.getType(key), - Body: fse.createReadStream(filePath) - }; -}; - -const filesAreEqual = (s3Object, fStats) => - s3Object && fStats.size === s3Object.Size; - -const cacheHeaderFactory = (buildId = "", rootPrefix) => { - // Check the paht for the following: - // (1) chunk/* (2) build_id/* and (3) runtime/* - // and return cache control header if true - const buildIdRegex = buildId.length ? `|${buildId}` : ""; - const useCacheControlHeaderRegex = new RegExp( - `.*(?:chunk|runtime${buildIdRegex})` - ); - - return (item) => { - let CacheControl = undefined; - if ( - rootPrefix === "_next" && - useCacheControlHeaderRegex.test(path.dirname(item.path)) - ) { - CacheControl = "public, max-age=31536000, immutable"; - } - - return CacheControl; - }; -}; - -module.exports = (awsProvider, buildId) => ( - dir, - { bucket, truncate = null, rootPrefix = null } -) => { - const getCacheHeader = cacheHeaderFactory(buildId, rootPrefix); - const getObjectFromS3 = get(awsProvider); - const promises = []; - - logger.log(`Uploading ${dir} to ${bucket} ...`); - - return new Promise((resolve, reject) => { - walkDir(dir) - .on("data", (item) => { - const p = fse.lstat(item.path).then(async (stats) => { - if (!stats.isDirectory()) { - const CacheControl = getCacheHeader(item); - const uploadParams = getUploadParameters( - bucket, - item.path, - truncate, - rootPrefix, - CacheControl - ); - - const s3Object = await getObjectFromS3(uploadParams.Key, bucket); - - if (filesAreEqual(s3Object, stats)) { - debug(`no need to upload ${uploadParams.Key}`); - return Promise.resolve(); - } - - debug( - `uploading to s3 - ${uploadParams.Key} ${ - CacheControl ? " with cachecontrol " + CacheControl : "" - }` - ); - - return awsProvider("S3", "upload", uploadParams); - } - }); - - promises.push(p); - }) - .on("end", () => { - Promise.all(promises) - .then(() => { - resolve({ count: promises.length }); - }) - .catch(reject); - }); - }); -}; diff --git a/packages/deprecated/serverless-plugin/utils/test/ServerlessPluginBuilder.js b/packages/deprecated/serverless-plugin/utils/test/ServerlessPluginBuilder.js deleted file mode 100644 index 93f513ea67..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/ServerlessPluginBuilder.js +++ /dev/null @@ -1,74 +0,0 @@ -const merge = require("lodash.merge"); -const ServerlessNextJsPlugin = require("../.."); - -class ServerlessPluginBuilder { - constructor() { - this.serverless = { - cli: { - consoleLog: () => {} - }, - getPlugins: () => {}, - getProvider: () => { - return { - request: () => {}, - getRegion: () => "us-east-1", - getStage: () => "test" - }; - }, - pluginManager: { - run: () => {} - }, - service: { - package: { - include: [] - }, - setFunctionNames: () => {}, - functions: {}, - provider: { - compiledCloudFormationTemplate: {} - }, - custom: { - "serverless-nextjs": { - nextConfigDir: "/path/to/next" - } - } - } - }; - } - - withService(service) { - merge(this.serverless, { - service - }); - - return this; - } - - withPluginManager(pluginManager) { - merge(this.serverless, { - pluginManager - }); - - return this; - } - - withPluginConfig(config) { - merge(this.serverless, { - service: { - custom: { - "serverless-nextjs": config - } - } - }); - - return this; - } - - build() { - const plugin = new ServerlessNextJsPlugin(this.serverless, {}); - plugin.initializeVariables(); - return plugin; - } -} - -module.exports = ServerlessPluginBuilder; diff --git a/packages/deprecated/serverless-plugin/utils/test/getServerlessExec.js b/packages/deprecated/serverless-plugin/utils/test/getServerlessExec.js deleted file mode 100644 index 47efe2e7cd..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/getServerlessExec.js +++ /dev/null @@ -1,19 +0,0 @@ -const path = require("path"); - -// .bin/serverless exists at the monorepo root -let serverlessExec = path.join( - __dirname, - "..", - "..", - "..", - "..", - "node_modules/.bin/serverless" -); - -const isWin = process.platform === "win32"; - -if (isWin) { - serverlessExec += ".cmd"; -} - -module.exports = path.resolve(serverlessExec); diff --git a/packages/deprecated/serverless-plugin/utils/test/httpGet.js b/packages/deprecated/serverless-plugin/utils/test/httpGet.js deleted file mode 100644 index 270a444cdd..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/httpGet.js +++ /dev/null @@ -1,24 +0,0 @@ -const http = require("http"); - -module.exports = (url) => { - return new Promise((resolve, reject) => { - http - .get(url, (res) => { - const { statusCode } = res; - - res.setEncoding("utf8"); - let rawData = ""; - res.on("data", (chunk) => { - rawData += chunk; - }); - - res.on("end", () => { - resolve({ - statusCode, - response: rawData - }); - }); - }) - .on("err", (e) => reject(e)); - }); -}; diff --git a/packages/deprecated/serverless-plugin/utils/test/packageTestService.js b/packages/deprecated/serverless-plugin/utils/test/packageTestService.js deleted file mode 100644 index bf4a7d38c4..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/packageTestService.js +++ /dev/null @@ -1,9 +0,0 @@ -const execSync = require("child_process").execSync; -const serverlessExec = require("./getServerlessExec"); - -module.exports = () => { - const execOptions = { stdio: "inherit" }; - execOptions.env = process.env; - - execSync(`${serverlessExec} package`, execOptions); -}; diff --git a/packages/deprecated/serverless-plugin/utils/test/parsedNextConfigurationFactory.js b/packages/deprecated/serverless-plugin/utils/test/parsedNextConfigurationFactory.js deleted file mode 100644 index 2700f1f127..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/parsedNextConfigurationFactory.js +++ /dev/null @@ -1,12 +0,0 @@ -const parsedNextConfigurationFactory = ( - nextConfiguration = { - distDir: ".next", - target: "serverless" - }, - staticAssetsBucket = "my-bucket" -) => ({ - staticAssetsBucket, - nextConfiguration -}); - -module.exports = parsedNextConfigurationFactory; diff --git a/packages/deprecated/serverless-plugin/utils/test/readServerlessCFTemplate.js b/packages/deprecated/serverless-plugin/utils/test/readServerlessCFTemplate.js deleted file mode 100644 index 6e821589c3..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/readServerlessCFTemplate.js +++ /dev/null @@ -1,20 +0,0 @@ -const fse = require("fs-extra"); - -const readJsonFile = async (filePath) => { - const str = await fse.readFile(filePath, "utf-8"); - return JSON.parse(str); -}; - -const readUpdateTemplate = (fixturePath) => { - return readJsonFile( - `${fixturePath}/.serverless/cloudformation-template-update-stack.json` - ); -}; - -const readCreateTemplate = (fixturePath) => { - return readJsonFile( - `${fixturePath}/.serverless/cloudformation-template-create-stack.json` - ); -}; - -module.exports = { readCreateTemplate, readUpdateTemplate }; diff --git a/packages/deprecated/serverless-plugin/utils/test/serverlessOfflineStart.js b/packages/deprecated/serverless-plugin/utils/test/serverlessOfflineStart.js deleted file mode 100644 index 052f79b80c..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/serverlessOfflineStart.js +++ /dev/null @@ -1,27 +0,0 @@ -const { spawn } = require("child_process"); -const serverlessExec = require("./getServerlessExec"); - -const bufferToStr = (buffer) => Buffer.from(buffer).toString("utf8"); - -module.exports = () => { - const serverlessOffline = spawn(serverlessExec, ["offline"]); - - return new Promise((resolve, reject) => { - serverlessOffline.stdout.on("data", (data) => { - const stdoutStr = bufferToStr(data); - - process.stdout.write(stdoutStr); - - if (stdoutStr.includes("Offline listening on")) { - resolve(serverlessOffline); - } - }); - - serverlessOffline.stderr.on("data", (data) => { - const err = bufferToStr(data); - process.stdout.write(err); - }); - - serverlessOffline.on("error", (err) => reject(err)); - }); -}; diff --git a/packages/deprecated/serverless-plugin/utils/test/testableServerless.js b/packages/deprecated/serverless-plugin/utils/test/testableServerless.js deleted file mode 100644 index 34672459d3..0000000000 --- a/packages/deprecated/serverless-plugin/utils/test/testableServerless.js +++ /dev/null @@ -1,101 +0,0 @@ -const Serverless = require("serverless"); -const { - mockDescribeStacksPromise, - mockCreateStackPromise, - mockDescribeStackEventsPromise, - mockDescribeStackResourcePromise, - mockListObjectsV2Promise, - mockGetCallerIdentityPromise, - mockUpdateStackPromise, - mockGetRestApisPromise -} = require("aws-sdk"); - -const setupMocks = () => { - // these mocks are necessary for running "serverless deploy" - - // pretend serverless stack doesn't exist first - mockDescribeStacksPromise.mockRejectedValueOnce( - new Error("Stack does not exist.") - ); - - // create stack result OK - mockCreateStackPromise.mockResolvedValue({ StackId: "MockedStack" }); - - // mock a stack event for monitorStack.js - var aYearFromNow = new Date(); - aYearFromNow.setFullYear(aYearFromNow.getFullYear() + 1); - mockDescribeStackEventsPromise.mockResolvedValue({ - StackEvents: [ - { - StackId: "MockedStack", - ResourceType: "AWS::CloudFormation::Stack", - ResourceStatus: "CREATE_COMPLETE", - Timestamp: aYearFromNow - } - ] - }); - - mockDescribeStackResourcePromise.mockResolvedValue({ - StackResourceDetail: { - StackId: "MockedStack", - PhysicalResourceId: "MockedStackPhysicalResourceId" - } - }); - - mockListObjectsV2Promise.mockResolvedValue({ Contents: [] }); - - mockGetCallerIdentityPromise.mockResolvedValue({ - Arn: "arn:aws:iam:testAcctId:testUser/xyz" - }); - - mockUpdateStackPromise.mockResolvedValueOnce({ - StackId: "MockedStack" - }); - - mockDescribeStacksPromise.mockResolvedValueOnce({ - Stacks: [ - { - StackId: "MockedStack", - Outputs: [] - } - ] - }); - - mockGetRestApisPromise.mockResolvedValueOnce({ - items: [{ id: "mockedApi" }] - }); -}; - -module.exports = async (servicePath, command) => { - setupMocks(command); - - const tmpCwd = process.cwd(); - - process.chdir(servicePath); - - try { - // Hack to get serverless to think user is calling "serverless [command]" e.g. serverless package - // See https://github.com/serverless/serverless/blob/master/lib/utils/resolveCliInput.js - const tmpProcessArgv = process.argv; - process.argv = [undefined, undefined, command]; - - const serverless = new Serverless(); - - serverless.invocationId = "test-run"; - - jest.useFakeTimers(); - setTimeout.mockImplementation((cb) => cb()); - - await serverless.init(); - await serverless.run(); - - process.argv = tmpProcessArgv; - - jest.useRealTimers(); - } catch (err) { - console.error(`Serverless command ${command} crashed.`, err); - throw err; - } - - process.chdir(tmpCwd); -}; diff --git a/packages/deprecated/serverless-plugin/utils/yml/cfSchema.js b/packages/deprecated/serverless-plugin/utils/yml/cfSchema.js deleted file mode 100644 index 4fc0687c19..0000000000 --- a/packages/deprecated/serverless-plugin/utils/yml/cfSchema.js +++ /dev/null @@ -1,70 +0,0 @@ -const yaml = require("js-yaml"); - -module.exports = yaml.Schema.create([ - new yaml.Type("!Ref", { - kind: "scalar", - construct: function (data) { - return { Ref: data }; - } - }), - new yaml.Type("!Equals", { - kind: "sequence", - construct: function (data) { - return { "Fn::Equals": data }; - } - }), - new yaml.Type("!Not", { - kind: "sequence", - construct: function (data) { - return { "Fn::Not": data }; - } - }), - new yaml.Type("!Sub", { - kind: "scalar", - construct: function (data) { - return { "Fn::Sub": data }; - } - }), - new yaml.Type("!If", { - kind: "sequence", - construct: function (data) { - return { "Fn::If": data }; - } - }), - new yaml.Type("!Join", { - kind: "sequence", - construct: function (data) { - return { "Fn::Join": data }; - } - }), - new yaml.Type("!Select", { - kind: "sequence", - construct: function (data) { - return { "Fn::Select": data }; - } - }), - new yaml.Type("!FindInMap", { - kind: "sequence", - construct: function (data) { - return { "Fn::FindInMap": data }; - } - }), - new yaml.Type("!GetAtt", { - kind: "sequence", - construct: function (data) { - return { "Fn::GetAtt": data }; - } - }), - new yaml.Type("!GetAZs", { - kind: "scalar", - construct: function (data) { - return { "Fn::GetAZs": data }; - } - }), - new yaml.Type("!Base64", { - kind: "mapping", - construct: function (data) { - return { "Fn::Base64": data }; - } - }) -]); diff --git a/packages/deprecated/serverless-plugin/utils/yml/load.js b/packages/deprecated/serverless-plugin/utils/yml/load.js deleted file mode 100644 index 18e97d1ab8..0000000000 --- a/packages/deprecated/serverless-plugin/utils/yml/load.js +++ /dev/null @@ -1,14 +0,0 @@ -const fse = require("fs-extra"); -const yaml = require("js-yaml"); -const cfSchema = require("./cfSchema"); - -const load = async (ymlFullPath) => { - const ymlStr = await fse.readFile(ymlFullPath, "utf-8"); - - return yaml.safeLoad(ymlStr, { - ymlFullPath, - schema: cfSchema - }); -}; - -module.exports = load; diff --git a/packages/deprecated/serverless-plugin/yarn.lock b/packages/deprecated/serverless-plugin/yarn.lock deleted file mode 100644 index 9199758f73..0000000000 --- a/packages/deprecated/serverless-plugin/yarn.lock +++ /dev/null @@ -1,258 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@mapbox/eslint-config-mapbox@^1.0.0": - version "1.2.1" - resolved "https://registry.npmjs.org/@mapbox/eslint-config-mapbox/-/eslint-config-mapbox-1.2.1.tgz#f0dc80d29a336a5477b146d9d32a75afc310a5e4" - integrity sha512-hhE2sN7L/RO+MhdHIhmpL0KLhA/sWxV1WWH998fmGimI40XDbBgG1Z4d8nTlfuf9jaRDJ88/uklSBvFRhvMeDA== - -"@mapbox/s3urls@^1.5.3": - version "1.5.3" - resolved "https://registry.npmjs.org/@mapbox/s3urls/-/s3urls-1.5.3.tgz#8578f51941af2ba836623f4941a761515ce92ff1" - integrity sha1-hXj1GUGvK6g2Yj9JQadhUVzpL/E= - dependencies: - "@mapbox/eslint-config-mapbox" "^1.0.0" - minimist "^1.1.0" - s3signed "^0.1.0" - -"@sls-next/next-aws-lambda@link:../../compat-layers/apigw-lambda-compat": - version "0.0.0" - uid "" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -aws-sdk@^2.0.4: - version "2.734.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.734.0.tgz#522370a95e70d6df44d94677bc01fe3b3522da3c" - integrity sha512-F5SrcOm6WyaN5j+pybx97vfSCa0SIz/kukJNSeDzMdk5q0xsKUjtUzL/kc0QwtCspCni0WTNmBKiD+firP5JKQ== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.15.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - uuid "3.3.2" - xml2js "0.4.19" - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -events@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.2.4" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -ieee754@1.1.13, ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -isarray@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -jmespath@0.15.0: - version "0.15.0" - resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= - -js-yaml@^3.12.1: - version "3.14.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -klaw@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" - integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== - dependencies: - graceful-fs "^4.1.9" - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - -lodash.merge@^4.6.1: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -mime@^2.4.0: - version "2.4.6" - resolved "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== - -minimist@^1.1.0: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -s3signed@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/s3signed/-/s3signed-0.1.0.tgz#ae03b86259413215ed43e99285c8c347579735fb" - integrity sha1-rgO4YllBMhXtQ+mShcjDR1eXNfs= - dependencies: - aws-sdk "^2.0.4" - -sax@1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= - -sax@>=0.6.0: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -url@0.10.3: - version "0.10.3" - resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= diff --git a/packages/libs/cloudfront/CHANGELOG.md b/packages/libs/cloudfront/CHANGELOG.md index 6e5eb962d7..43c3fbc362 100644 --- a/packages/libs/cloudfront/CHANGELOG.md +++ b/packages/libs/cloudfront/CHANGELOG.md @@ -3,45 +3,229 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.3-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.2...@sls-next/cloudfront@1.0.3-alpha.0) (2020-08-14) +# [2.7.0-alpha.26](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.26) (2023-09-15) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/serverless-nextjs/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/serverless-nextjs/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/serverless-nextjs/serverless-next.js/issues/58)) ([f09b346](https://github.com/serverless-nextjs/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support ab test base on region ([#62](https://github.com/serverless-nextjs/serverless-next.js/issues/62)) ([6acb468](https://github.com/serverless-nextjs/serverless-next.js/commit/6acb4685b51f804c3498c940d2b139121cdd0785)) +- support rewrite has field ([#57](https://github.com/serverless-nextjs/serverless-next.js/issues/57)) ([b751580](https://github.com/serverless-nextjs/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [2.7.0-alpha.25](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.25) (2023-09-12) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/serverless-nextjs/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/serverless-nextjs/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/serverless-nextjs/serverless-next.js/issues/58)) ([f09b346](https://github.com/serverless-nextjs/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support abtest base on user region ([0c140a2](https://github.com/serverless-nextjs/serverless-next.js/commit/0c140a22881eaf4398a9ecf466af728be3b1d854)) +- support rewrite has field ([#57](https://github.com/serverless-nextjs/serverless-next.js/issues/57)) ([b751580](https://github.com/serverless-nextjs/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [2.7.0-alpha.24](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.24) (2023-09-12) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/serverless-nextjs/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/serverless-nextjs/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/serverless-nextjs/serverless-next.js/issues/58)) ([f09b346](https://github.com/serverless-nextjs/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support abtest base on user region ([0c140a2](https://github.com/serverless-nextjs/serverless-next.js/commit/0c140a22881eaf4398a9ecf466af728be3b1d854)) +- support rewrite has field ([#57](https://github.com/serverless-nextjs/serverless-next.js/issues/57)) ([b751580](https://github.com/serverless-nextjs/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [2.7.0-alpha.13](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.13) (2023-09-05) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/serverless-nextjs/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/serverless-nextjs/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/serverless-nextjs/serverless-next.js/issues/58)) ([f09b346](https://github.com/serverless-nextjs/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/serverless-nextjs/serverless-next.js/issues/57)) ([b751580](https://github.com/serverless-nextjs/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [2.7.0-alpha.10](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.10) (2023-06-19) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/serverless-nextjs/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/serverless-nextjs/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/serverless-nextjs/serverless-next.js/issues/58)) ([f09b346](https://github.com/serverless-nextjs/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/serverless-nextjs/serverless-next.js/issues/57)) ([b751580](https://github.com/serverless-nextjs/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [2.7.0-alpha.9](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.9) (2023-05-05) + +### Bug Fixes + +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/serverless-nextjs/serverless-next.js/issues/58)) ([f09b346](https://github.com/serverless-nextjs/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/serverless-nextjs/serverless-next.js/issues/57)) ([b751580](https://github.com/serverless-nextjs/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [2.7.0-alpha.8](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.7.0-alpha.7...@getjerry/cloudfront@2.7.0-alpha.8) (2023-04-20) + +**Note:** Version bump only for package @getjerry/cloudfront + +# [2.7.0-alpha.7](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.7.0-alpha.6...@getjerry/cloudfront@2.7.0-alpha.7) (2023-04-20) + +**Note:** Version bump only for package @getjerry/cloudfront + +# [2.7.0-alpha.6](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.7.0-alpha.5...@getjerry/cloudfront@2.7.0-alpha.6) (2023-04-20) + +**Note:** Version bump only for package @getjerry/cloudfront + +# [2.7.0-alpha.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.7.0-alpha.3...@getjerry/cloudfront@2.7.0-alpha.5) (2023-04-20) + +**Note:** Version bump only for package @getjerry/cloudfront + +# [2.7.0-alpha.4](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.7.0-alpha.3...@getjerry/cloudfront@2.7.0-alpha.4) (2023-04-20) + +**Note:** Version bump only for package @getjerry/cloudfront + +# [2.7.0-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.3) (2023-04-20) + +### Bug Fixes + +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/serverless-nextjs/serverless-next.js/issues/57)) ([b751580](https://github.com/serverless-nextjs/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [2.7.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.2) (2023-02-23) + +### Bug Fixes + +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/serverless-nextjs/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/serverless-nextjs/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) + +# [2.7.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.1) (2023-02-06) + +### Bug Fixes + +- modify content equals ([#54](https://github.com/serverless-nextjs/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/serverless-nextjs/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) + +# [2.7.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.7.0-alpha.0) (2023-01-10) + +### Features + +- Modify SN to support A/B Test ([#51](https://github.com/serverless-nextjs/serverless-next.js/issues/51)) ([a801469](https://github.com/serverless-nextjs/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) + +## [2.0.4-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.0.4-alpha.1) (2022-11-23) + +**Note:** Version bump only for package @getjerry/cloudfront + +## [2.0.4-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.0.4-alpha.0) (2022-08-16) + +**Note:** Version bump only for package @getjerry/cloudfront + +## [2.0.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@2.0.0...@getjerry/cloudfront@2.0.3) (2022-08-16) + +**Note:** Version bump only for package @getjerry/cloudfront + +# [1.2.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@1.1.11...@getjerry/cloudfront@1.2.0-alpha.0) (2022-07-15) + +### Features + +- retry aws ([16b2df6](https://github.com/serverless-nextjs/serverless-next.js/commit/16b2df648ef4e0a407724ab45e3a1ddda20e3bc9)) +- retry cloudfront ([e453289](https://github.com/serverless-nextjs/serverless-next.js/commit/e453289e5f1f2cac5b7d338da48c3e64d23f0be5)) + +## [1.1.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@1.1.2-alpha.0...@getjerry/cloudfront@1.1.2) (2022-01-07) + +**Note:** Version bump only for package @getjerry/cloudfront + +## [1.1.2-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@getjerry/cloudfront@1.1.1...@getjerry/cloudfront@1.1.2-alpha.0) (2022-01-07) + +**Note:** Version bump only for package @getjerry/cloudfront + +## [1.0.4](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.4-alpha.0...@sls-next/cloudfront@1.0.4) (2020-11-02) + +**Note:** Version bump only for package @sls-next/cloudfront + +## [1.0.4-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.3...@sls-next/cloudfront@1.0.4-alpha.0) (2020-10-07) + +**Note:** Version bump only for package @sls-next/cloudfront + +## [1.0.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.3-alpha.0...@sls-next/cloudfront@1.0.3) (2020-09-26) + +**Note:** Version bump only for package @sls-next/cloudfront + +## [1.0.3-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.2...@sls-next/cloudfront@1.0.3-alpha.0) (2020-08-14) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.2-alpha.1...@sls-next/cloudfront@1.0.2) (2020-08-01) +## [1.0.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.2-alpha.1...@sls-next/cloudfront@1.0.2) (2020-08-01) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.2-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.2-alpha.0...@sls-next/cloudfront@1.0.2-alpha.1) (2020-07-30) +## [1.0.2-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.2-alpha.0...@sls-next/cloudfront@1.0.2-alpha.1) (2020-07-30) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.2-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.1...@sls-next/cloudfront@1.0.2-alpha.0) (2020-07-14) +## [1.0.2-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.1...@sls-next/cloudfront@1.0.2-alpha.0) (2020-07-14) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.3...@sls-next/cloudfront@1.0.1) (2020-07-11) +## [1.0.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.3...@sls-next/cloudfront@1.0.1) (2020-07-11) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.1-alpha.3](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.2...@sls-next/cloudfront@1.0.1-alpha.3) (2020-07-05) +## [1.0.1-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.2...@sls-next/cloudfront@1.0.1-alpha.3) (2020-07-05) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.1-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.1...@sls-next/cloudfront@1.0.1-alpha.2) (2020-06-29) +## [1.0.1-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.1...@sls-next/cloudfront@1.0.1-alpha.2) (2020-06-29) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.1-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.0...@sls-next/cloudfront@1.0.1-alpha.1) (2020-06-29) +## [1.0.1-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.1-alpha.0...@sls-next/cloudfront@1.0.1-alpha.1) (2020-06-29) **Note:** Version bump only for package @sls-next/cloudfront -## [1.0.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.0...@sls-next/cloudfront@1.0.1-alpha.0) (2020-06-24) +## [1.0.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.0...@sls-next/cloudfront@1.0.1-alpha.0) (2020-06-24) ### Bug Fixes -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) +- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/serverless-nextjs/serverless-next.js/issues/460)) ([12da1de](https://github.com/serverless-nextjs/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) -# [1.0.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/cloudfront@1.0.0-alpha.1...@sls-next/cloudfront@1.0.0) (2020-06-16) +# [1.0.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/cloudfront@1.0.0-alpha.1...@sls-next/cloudfront@1.0.0) (2020-06-16) **Note:** Version bump only for package @sls-next/cloudfront @@ -49,4 +233,4 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ### Features -- **serverless-component:** cache static pages and invalidate distribution after deploy ([#435](https://github.com/danielcondemarin/serverless-next.js/issues/435)) ([5d75936](https://github.com/danielcondemarin/serverless-next.js/commit/5d759367be5a1c835b093f2713bc0b8cf1d92a82)) +- **serverless-component:** cache static pages and invalidate distribution after deploy ([#435](https://github.com/serverless-nextjs/serverless-next.js/issues/435)) ([5d75936](https://github.com/serverless-nextjs/serverless-next.js/commit/5d759367be5a1c835b093f2713bc0b8cf1d92a82)) diff --git a/packages/libs/cloudfront/package.json b/packages/libs/cloudfront/package.json index fdaf702b3d..e24ea94576 100644 --- a/packages/libs/cloudfront/package.json +++ b/packages/libs/cloudfront/package.json @@ -1,6 +1,6 @@ { - "name": "@sls-next/cloudfront", - "version": "1.0.3-alpha.0", + "name": "@getjerry/cloudfront", + "version": "2.7.0-alpha.26", "description": "Handles CloudFront invalidation", "publishConfig": { "access": "public" @@ -12,7 +12,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-next.js.git", + "url": "git+https://github.com/serverless-nextjs/serverless-next.js.git", "directory": "packages/libs/cloudfront" }, "scripts": { @@ -26,16 +26,17 @@ "Serverless" ], "author": "Daniel Conde Marin ", - "license": "ISC", + "license": "MIT", "bugs": { - "url": "https://github.com/danielcondemarin/serverless-next.js/issues" + "url": "https://github.com/serverless-nextjs/serverless-next.js/issues" }, - "homepage": "https://github.com/danielcondemarin/serverless-next.js#readme", + "homepage": "https://github.com/serverless-nextjs/serverless-next.js#readme", "dependencies": { - "aws-sdk": "2.728.0" + "aws-sdk": "2.1093.0" }, "devDependencies": { "@types/node": "^14.0.27", "typescript": "^3.9.7" - } + }, + "gitHead": "ff6891ab42e8df4add318d6c67af062c15b067cd" } diff --git a/packages/libs/cloudfront/src/lib/cloudfront.ts b/packages/libs/cloudfront/src/lib/cloudfront.ts index 2a31bbe3d5..38c66476c9 100644 --- a/packages/libs/cloudfront/src/lib/cloudfront.ts +++ b/packages/libs/cloudfront/src/lib/cloudfront.ts @@ -26,7 +26,23 @@ export type Credentials = { export default ({ credentials }: CloudFrontClientFactoryOptions): CloudFrontClient => { - const cloudFront = new AWS.CloudFront({ credentials }); + const cloudFront = new AWS.CloudFront({ + credentials, + maxRetries: parseInt(process.env.SLS_NEXT_MAX_RETRIES ?? "100"), + retryDelayOptions: { + base: 200, + customBackoff: (retryCount: number, err?: Error) => { + const delay = 1000 + Math.floor(1000 * Math.random()); + console.warn( + `Cloudfront retry... + Retry attempt: ${retryCount}. + Reason: ${err?.message}. + Delay: ${delay}ms.` + ); + return delay; + } + } + }); return { createInvalidation: async ( diff --git a/packages/libs/cloudfront/tests/cache-invalidation.test.ts b/packages/libs/cloudfront/tests/cache-invalidation.test.ts index 8661b2f305..fe4cf9a655 100644 --- a/packages/libs/cloudfront/tests/cache-invalidation.test.ts +++ b/packages/libs/cloudfront/tests/cache-invalidation.test.ts @@ -22,13 +22,15 @@ describe("Cache invalidation tests", () => { it("passes credentials to CloudFront client", async () => { await invalidate(); - expect(AWS.CloudFront).toBeCalledWith({ - credentials: { - accessKeyId: "fake-access-key", - secretAccessKey: "fake-secret-key", - sessionToken: "fake-session-token" - } - }); + expect(AWS.CloudFront).toBeCalledWith( + expect.objectContaining({ + credentials: { + accessKeyId: "fake-access-key", + secretAccessKey: "fake-secret-key", + sessionToken: "fake-session-token" + } + }) + ); }); it("invalidates CloudFront distribution", async () => { diff --git a/packages/libs/cloudfront/yarn.lock b/packages/libs/cloudfront/yarn.lock index 9dff5b67e1..7341e3a48d 100644 --- a/packages/libs/cloudfront/yarn.lock +++ b/packages/libs/cloudfront/yarn.lock @@ -3,19 +3,19 @@ "@types/node@^14.0.27": - version "14.0.27" - resolved "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== - -aws-sdk@2.728.0: - version "2.728.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.728.0.tgz#381805dcac7835b5686694e9468d104595bfce42" - integrity sha512-pUVSxb+04urr6BMHg32Op+kT1IWGmwbelrQKMdLnvgcgysmBu1P4XbGBg8/SmAXWfuqqWjz8YnmFNY46VJE43A== + version "14.14.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.14.tgz#f7fd5f3cc8521301119f63910f0fb965c7d761ae" + integrity sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ== + +aws-sdk@2.1093.0: + version "2.1093.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1093.0.tgz#43fd6ded15330b3185d37d81ea8f311f4d980e5c" + integrity sha512-YD6VNemoKkzDMHsUiGP/MwpM0T20ukp3KTSxPY34Xw3Ww0zP19C54CfjaXhn//R27f2c57BtVez+he2RZ5GwyQ== dependencies: buffer "4.9.2" events "1.1.1" ieee754 "1.1.13" - jmespath "0.15.0" + jmespath "0.16.0" querystring "0.2.0" sax "1.2.1" url "0.10.3" @@ -23,13 +23,13 @@ aws-sdk@2.728.0: xml2js "0.4.19" base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== buffer@4.9.2: version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" @@ -38,52 +38,57 @@ buffer@4.9.2: events@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= -ieee754@1.1.13, ieee754@^1.1.4: +ieee754@1.1.13: version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + isarray@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -jmespath@0.15.0: - version "0.15.0" - resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" - integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= +jmespath@0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" + integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= sax@1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= sax@>=0.6.0: version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== typescript@^3.9.7: version "3.9.7" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== url@0.10.3: version "0.10.3" - resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" integrity sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ= dependencies: punycode "1.3.2" @@ -91,12 +96,12 @@ url@0.10.3: uuid@3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== xml2js@0.4.19: version "0.4.19" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== dependencies: sax ">=0.6.0" @@ -104,5 +109,5 @@ xml2js@0.4.19: xmlbuilder@~9.0.1: version "9.0.7" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= diff --git a/packages/libs/lambda-at-edge/.gitignore b/packages/libs/lambda-at-edge/.gitignore index bf28b6480f..870eb25b78 100644 --- a/packages/libs/lambda-at-edge/.gitignore +++ b/packages/libs/lambda-at-edge/.gitignore @@ -1,2 +1,3 @@ !tests/** -dist/ \ No newline at end of file +!sharp_node_modules/**/dist +/dist \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/CHANGELOG.md b/packages/libs/lambda-at-edge/CHANGELOG.md index 30edfb6bc9..2a57404dd1 100644 --- a/packages/libs/lambda-at-edge/CHANGELOG.md +++ b/packages/libs/lambda-at-edge/CHANGELOG.md @@ -3,208 +3,1187 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -# [1.6.0-alpha.7](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.6...@sls-next/lambda-at-edge@1.6.0-alpha.7) (2020-08-31) +# [1.20.0-alpha.102](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.102) (2023-09-15) ### Bug Fixes -- **lambda-at-edge:** fix data request routing / client-side navigation for SSR index page ([#574](https://github.com/danielcondemarin/serverless-next.js/issues/574)) ([f580786](https://github.com/danielcondemarin/serverless-next.js/commit/f580786e5859f217e5ce79824cdaa0ef17ef0e42)) -- **lambda-at-edge:** fix for 404s on public files ([#577](https://github.com/danielcondemarin/serverless-next.js/issues/577)) ([a854139](https://github.com/danielcondemarin/serverless-next.js/commit/a854139f4344530de1a42268828231a4d38c7c91)) +- redirect props got stored ([#59](https://github.com/getjerry/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/getjerry/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) -# [1.6.0-alpha.6](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.5...@sls-next/lambda-at-edge@1.6.0-alpha.6) (2020-08-29) +### Features + +- ab test enhancement ([#58](https://github.com/getjerry/serverless-next.js/issues/58)) ([f09b346](https://github.com/getjerry/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support ab test base on region ([#62](https://github.com/getjerry/serverless-next.js/issues/62)) ([6acb468](https://github.com/getjerry/serverless-next.js/commit/6acb4685b51f804c3498c940d2b139121cdd0785)) +- support rewrite has field ([#57](https://github.com/getjerry/serverless-next.js/issues/57)) ([b751580](https://github.com/getjerry/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [1.20.0-alpha.101](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.101) (2023-09-12) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/getjerry/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/getjerry/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/getjerry/serverless-next.js/issues/58)) ([f09b346](https://github.com/getjerry/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support abtest base on user region ([0c140a2](https://github.com/getjerry/serverless-next.js/commit/0c140a22881eaf4398a9ecf466af728be3b1d854)) +- support rewrite has field ([#57](https://github.com/getjerry/serverless-next.js/issues/57)) ([b751580](https://github.com/getjerry/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [1.20.0-alpha.100](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.100) (2023-09-12) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/getjerry/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/getjerry/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/getjerry/serverless-next.js/issues/58)) ([f09b346](https://github.com/getjerry/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support abtest base on user region ([0c140a2](https://github.com/getjerry/serverless-next.js/commit/0c140a22881eaf4398a9ecf466af728be3b1d854)) +- support rewrite has field ([#57](https://github.com/getjerry/serverless-next.js/issues/57)) ([b751580](https://github.com/getjerry/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [1.20.0-alpha.78](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.77...@getjerry/lambda-at-edge@1.20.0-alpha.78) (2023-09-06) + +### Features + +- use header to match ab test ([5c1f605](https://github.com/getjerry/serverless-next.js/commit/5c1f605b91ff783da855e4a3a0636ab50b4af54c)) + +# [1.20.0-alpha.77](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.75...@getjerry/lambda-at-edge@1.20.0-alpha.77) (2023-09-06) + +### Features + +- remove geoip-lite, using headers ([5e1f942](https://github.com/getjerry/serverless-next.js/commit/5e1f942645c4309eaf8eef24b6d357b0ed57e16e)) + +# [1.20.0-alpha.76](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.75...@getjerry/lambda-at-edge@1.20.0-alpha.76) (2023-09-06) + +### Features + +- remove geoip-lite, using headers ([5e1f942](https://github.com/getjerry/serverless-next.js/commit/5e1f942645c4309eaf8eef24b6d357b0ed57e16e)) + +# [1.20.0-alpha.75](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.74...@getjerry/lambda-at-edge@1.20.0-alpha.75) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.74](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.72...@getjerry/lambda-at-edge@1.20.0-alpha.74) (2023-09-06) + +### Bug Fixes + +- remove import geoip lite data ([7c7bb88](https://github.com/getjerry/serverless-next.js/commit/7c7bb88f89730c7f1ceccfaa219d7b2eb4dd7b9e)) + +# [1.20.0-alpha.73](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.72...@getjerry/lambda-at-edge@1.20.0-alpha.73) (2023-09-06) + +### Bug Fixes + +- remove import geoip lite data ([7c7bb88](https://github.com/getjerry/serverless-next.js/commit/7c7bb88f89730c7f1ceccfaa219d7b2eb4dd7b9e)) + +# [1.20.0-alpha.72](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.71...@getjerry/lambda-at-edge@1.20.0-alpha.72) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.71](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.70...@getjerry/lambda-at-edge@1.20.0-alpha.71) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.70](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.69...@getjerry/lambda-at-edge@1.20.0-alpha.70) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.69](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.68...@getjerry/lambda-at-edge@1.20.0-alpha.69) (2023-09-06) + +### Features + +- add data to npm files ([3abe77e](https://github.com/getjerry/serverless-next.js/commit/3abe77e7ebed787c9c8161be98e53941c8454725)) + +# [1.20.0-alpha.68](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.67...@getjerry/lambda-at-edge@1.20.0-alpha.68) (2023-09-06) + +### Features + +- add plugin to transform \_\_dirname ([54fa319](https://github.com/getjerry/serverless-next.js/commit/54fa319222a97fe6975eed31c867aa3730de4533)) + +# [1.20.0-alpha.67](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.66...@getjerry/lambda-at-edge@1.20.0-alpha.67) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.66](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.65...@getjerry/lambda-at-edge@1.20.0-alpha.66) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.65](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.64...@getjerry/lambda-at-edge@1.20.0-alpha.65) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.64](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.61...@getjerry/lambda-at-edge@1.20.0-alpha.64) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.63](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.61...@getjerry/lambda-at-edge@1.20.0-alpha.63) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.62](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.61...@getjerry/lambda-at-edge@1.20.0-alpha.62) (2023-09-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.61](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.61) (2023-09-05) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/getjerry/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/getjerry/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/getjerry/serverless-next.js/issues/58)) ([f09b346](https://github.com/getjerry/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/getjerry/serverless-next.js/issues/57)) ([b751580](https://github.com/getjerry/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) +- support to match user state in ab test ([da13354](https://github.com/getjerry/serverless-next.js/commit/da13354042cacefb074fbd6bc325f12c51cbc4f8)) + +# [1.20.0-alpha.36](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.35...@getjerry/lambda-at-edge@1.20.0-alpha.36) (2023-07-20) + +### Bug Fixes + +- support has in redirects ([cb5fc07](https://github.com/getjerry/serverless-next.js/commit/cb5fc07b7b2c0eeaee382c01a29dc8a08b99b1da)) +- support has in redirects ([8349382](https://github.com/getjerry/serverless-next.js/commit/8349382f2e1f3e1420ee6b776e94be674588ca75)) + +# [1.20.0-alpha.35](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.34...@getjerry/lambda-at-edge@1.20.0-alpha.35) (2023-07-20) + +### Bug Fixes + +- support has in redirects ([27067b9](https://github.com/getjerry/serverless-next.js/commit/27067b938b214efa279ebbc10a7f5a94c9bc411e)) + +# [1.20.0-alpha.34](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.33...@getjerry/lambda-at-edge@1.20.0-alpha.34) (2023-07-20) + +### Bug Fixes + +- support has in redirects ([f9a1ae9](https://github.com/getjerry/serverless-next.js/commit/f9a1ae9c6b9005079f608e700cb77c2bec302ac8)) + +# [1.20.0-alpha.33](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.32...@getjerry/lambda-at-edge@1.20.0-alpha.33) (2023-07-20) + +### Bug Fixes + +- support has in redirects ([8b95c0b](https://github.com/getjerry/serverless-next.js/commit/8b95c0badd881ed1a3eb594ca537b8cd8ff556fb)) + +# [1.20.0-alpha.32](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.31...@getjerry/lambda-at-edge@1.20.0-alpha.32) (2023-06-19) + +### Bug Fixes + +- supprot br ([59a8a54](https://github.com/getjerry/serverless-next.js/commit/59a8a544a43b9d580469299e70581de797bb59d8)) + +# [1.20.0-alpha.31](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.30...@getjerry/lambda-at-edge@1.20.0-alpha.31) (2023-06-19) + +### Bug Fixes + +- use lambdaAtEdgeCompat ([906de6f](https://github.com/getjerry/serverless-next.js/commit/906de6f71d8239beee0e46eb9c2cb61cb1400e63)) + +# [1.20.0-alpha.30](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.29...@getjerry/lambda-at-edge@1.20.0-alpha.30) (2023-06-19) + +### Bug Fixes + +- use lambdaAtEdgeCompat ([2999d65](https://github.com/getjerry/serverless-next.js/commit/2999d65e8f7359c1f5a57647ce8b41ae89ce7be0)) + +# [1.20.0-alpha.29](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.28...@getjerry/lambda-at-edge@1.20.0-alpha.29) (2023-06-19) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.28](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.28) (2023-06-19) + +### Bug Fixes + +- redirect props got stored ([#59](https://github.com/getjerry/serverless-next.js/issues/59)) ([12b5c0f](https://github.com/getjerry/serverless-next.js/commit/12b5c0fa214ee2193de2a665c9236e272f75489b)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/getjerry/serverless-next.js/issues/58)) ([f09b346](https://github.com/getjerry/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/getjerry/serverless-next.js/issues/57)) ([b751580](https://github.com/getjerry/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [1.20.0-alpha.27](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.26...@getjerry/lambda-at-edge@1.20.0-alpha.27) (2023-05-05) + +### Bug Fixes + +- add s3 delete policy. ([ec33344](https://github.com/getjerry/serverless-next.js/commit/ec33344351fe7730d66a2256a57394dc5cf5d2d0)) + +# [1.20.0-alpha.26](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.26) (2023-05-05) + +### Bug Fixes + +- redirect check when revalidate ([db88a29](https://github.com/getjerry/serverless-next.js/commit/db88a29fe9a85d6f14a55822abc3b1542a1bc3ca)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- ab test enhancement ([#58](https://github.com/getjerry/serverless-next.js/issues/58)) ([f09b346](https://github.com/getjerry/serverless-next.js/commit/f09b34614ede134fec890ee0a3ab480dd8bd96fd)) +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/getjerry/serverless-next.js/issues/57)) ([b751580](https://github.com/getjerry/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [1.20.0-alpha.25](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.24...@getjerry/lambda-at-edge@1.20.0-alpha.25) (2023-04-21) + +### Features + +- force test group ([5b176d7](https://github.com/getjerry/serverless-next.js/commit/5b176d774ac4e7ba5982cfa17bddfa83d4ed7c1a)) + +# [1.20.0-alpha.24](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.23...@getjerry/lambda-at-edge@1.20.0-alpha.24) (2023-04-21) + +### Features + +- force test group ([cff9adb](https://github.com/getjerry/serverless-next.js/commit/cff9adbfc8a5a1829d298749d0188cc2e910cdf0)) +- force test group ([55019ae](https://github.com/getjerry/serverless-next.js/commit/55019ae3bfb15e4e83826ac58f2df44a2b16c7a9)) +- force test group ([d6c8c01](https://github.com/getjerry/serverless-next.js/commit/d6c8c0197e94d06996997de53217e802e0f9ee27)) + +# [1.20.0-alpha.23](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.22...@getjerry/lambda-at-edge@1.20.0-alpha.23) (2023-04-20) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.22](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.21...@getjerry/lambda-at-edge@1.20.0-alpha.22) (2023-04-20) + +### Features + +- force test group ([ea28d6d](https://github.com/getjerry/serverless-next.js/commit/ea28d6d4ad3c95bac07d2b2356524d57953e7b14)) + +# [1.20.0-alpha.21](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.20...@getjerry/lambda-at-edge@1.20.0-alpha.21) (2023-04-20) + +### Features + +- force test group ([210ad87](https://github.com/getjerry/serverless-next.js/commit/210ad875c74684769f9606a1b3f238d2e5d241b6)) +- force test group ([d6ab9f3](https://github.com/getjerry/serverless-next.js/commit/d6ab9f36ca9a6e43f0237e4bd7003d9c77f483e9)) + +# [1.20.0-alpha.20](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.19...@getjerry/lambda-at-edge@1.20.0-alpha.20) (2023-04-20) + +### Features + +- force test group ([0d772bf](https://github.com/getjerry/serverless-next.js/commit/0d772bf464b860e04d14f69e955913dd7cec995b)) + +# [1.20.0-alpha.19](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.19) (2023-04-20) + +### Bug Fixes + +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- force test group ([16a57f1](https://github.com/getjerry/serverless-next.js/commit/16a57f1c3d0ddc4e2f29f27489bd254b214f5d16)) +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) +- support rewrite has field ([#57](https://github.com/getjerry/serverless-next.js/issues/57)) ([b751580](https://github.com/getjerry/serverless-next.js/commit/b751580ecf92be7825a9e74dce7c92a4c4fa71fd)) + +# [1.20.0-alpha.18](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.17...@getjerry/lambda-at-edge@1.20.0-alpha.18) (2023-03-22) + +### Bug Fixes + +- blocking fallback for static route ([870ed58](https://github.com/getjerry/serverless-next.js/commit/870ed58fd269d440a47406f146fb576d2d14fef4)) + +# [1.20.0-alpha.17](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.16...@getjerry/lambda-at-edge@1.20.0-alpha.17) (2023-03-22) + +### Bug Fixes + +- blocking fallback for static route ([8f711da](https://github.com/getjerry/serverless-next.js/commit/8f711da81cced8ad73baea8c45fcaa2b2841d1b6)) + +# [1.20.0-alpha.16](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.15...@getjerry/lambda-at-edge@1.20.0-alpha.16) (2023-03-21) + +### Bug Fixes + +- diff for publish ([db8f934](https://github.com/getjerry/serverless-next.js/commit/db8f93491dbf5396dc415a96f3e73f6cdb80819a)) + +# [1.20.0-alpha.15](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.14...@getjerry/lambda-at-edge@1.20.0-alpha.15) (2023-03-21) + +### Bug Fixes + +- redirect keeps query string ([ff05c2c](https://github.com/getjerry/serverless-next.js/commit/ff05c2cd48cbe01b56e3a0cb8ce5ae70298c1931)) +- test ([9e19cc4](https://github.com/getjerry/serverless-next.js/commit/9e19cc4519cf220d6426cc869ff6d23fae18b1bd)) + +# [1.20.0-alpha.14](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.13...@getjerry/lambda-at-edge@1.20.0-alpha.14) (2023-03-10) + +### Bug Fixes + +- support has field ([2f47367](https://github.com/getjerry/serverless-next.js/commit/2f47367386769767b74d23b8f76c6e3647ca33b2)) + +# [1.20.0-alpha.13](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.12...@getjerry/lambda-at-edge@1.20.0-alpha.13) (2023-03-10) + +### Bug Fixes + +- support has field ([68c6afc](https://github.com/getjerry/serverless-next.js/commit/68c6afcab53344cd82b58c11596355233197122a)) + +# [1.20.0-alpha.12](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.11...@getjerry/lambda-at-edge@1.20.0-alpha.12) (2023-03-10) + +### Bug Fixes + +- support empty param. ([b9f036e](https://github.com/getjerry/serverless-next.js/commit/b9f036e6e738c8605eea9f7b098a06804baaea9b)) + +# [1.20.0-alpha.11](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.11) (2023-02-23) + +### Bug Fixes + +- replace slash in request param rewrites ([a958cc5](https://github.com/getjerry/serverless-next.js/commit/a958cc57b3ac8d2eb586456b34aa95b0970d7324)) +- **default-handler:** add logic to handle not found from getStaticProps ([#55](https://github.com/getjerry/serverless-next.js/issues/55)) ([ba08d6e](https://github.com/getjerry/serverless-next.js/commit/ba08d6ef85b4b1f20674f815a6e6694e8bdf1bde)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) + +# [1.20.0-alpha.10](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.9...@getjerry/lambda-at-edge@1.20.0-alpha.10) (2023-02-06) + +### Bug Fixes + +- handle redirect in getStaticProps ([ab785bc](https://github.com/getjerry/serverless-next.js/commit/ab785bc0653ad972e522ae21d2232fb8070eca42)) + +# [1.20.0-alpha.9](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.8...@getjerry/lambda-at-edge@1.20.0-alpha.9) (2023-02-06) + +### Bug Fixes + +- handle redirect in getStaticProps ([1f8f0be](https://github.com/getjerry/serverless-next.js/commit/1f8f0be784738118d4bfeff81612d22cec5abe4c)) +- handle redirect in getStaticProps ([1b1f373](https://github.com/getjerry/serverless-next.js/commit/1b1f3738bdb2aa778ebe1add512f4300b03603a9)) + +# [1.20.0-alpha.8](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.7...@getjerry/lambda-at-edge@1.20.0-alpha.8) (2023-02-06) + +### Bug Fixes + +- handle redirect in getStaticProps ([de6a98f](https://github.com/getjerry/serverless-next.js/commit/de6a98f15ac193887484c7fed72a916f809b2c20)) + +# [1.20.0-alpha.7](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.7) (2023-02-06) + +### Bug Fixes + +- handle redirect in getStaticProps ([9f7c197](https://github.com/getjerry/serverless-next.js/commit/9f7c197189cdedd6b89124d0b7da0516b0fad800)) + +# [1.20.0-alpha.6](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.5...@getjerry/lambda-at-edge@1.20.0-alpha.6) (2023-02-06) + +### Bug Fixes + +- handle redirect in getStaticProps ([4d350cf](https://github.com/getjerry/serverless-next.js/commit/4d350cfad5ce0a005a928d4a99c0a20df7619570)) + +# [1.20.0-alpha.5](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.4...@getjerry/lambda-at-edge@1.20.0-alpha.5) (2023-02-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.4](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.3...@getjerry/lambda-at-edge@1.20.0-alpha.4) (2023-02-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.3](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.2...@getjerry/lambda-at-edge@1.20.0-alpha.3) (2023-02-06) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.20.0-alpha.2](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.2) (2023-02-06) + +### Bug Fixes + +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- modify content equals ([#54](https://github.com/getjerry/serverless-next.js/issues/54)) ([73c1a4a](https://github.com/getjerry/serverless-next.js/commit/73c1a4a92b1f3ed8b221739294bcf5827b48ac1c)) + +### Features + +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) + +# [1.20.0-alpha.1](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.20.0-alpha.0...@getjerry/lambda-at-edge@1.20.0-alpha.1) (2023-01-10) + +### Bug Fixes + +- compare all props ([3e99789](https://github.com/getjerry/serverless-next.js/commit/3e99789d4da92a133bf684b8b47410712ffbe8ef)) +- compare all props ([6c86d0b](https://github.com/getjerry/serverless-next.js/commit/6c86d0b184ef7d816b1875c48a4ea09795c959a2)) + +# [1.20.0-alpha.0](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.20.0-alpha.0) (2023-01-10) + +### Bug Fixes + +- compare all props ([9f6c9eb](https://github.com/getjerry/serverless-next.js/commit/9f6c9eb8ffe690fe7f1c5fcc8cf2b65831dae065)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) + +### Features + +- Modify SN to support A/B Test ([#51](https://github.com/getjerry/serverless-next.js/issues/51)) ([a801469](https://github.com/getjerry/serverless-next.js/commit/a8014698303611844d8dc5de0e4bd9b030472a4b)) + +# [1.14.0-alpha.2](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.14.0-alpha.1...@getjerry/lambda-at-edge@1.14.0-alpha.2) (2022-11-24) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.14.0-alpha.1](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.14.0-alpha.0...@getjerry/lambda-at-edge@1.14.0-alpha.1) (2022-11-24) + +### Bug Fixes + +- add more log ([17b3cfa](https://github.com/getjerry/serverless-next.js/commit/17b3cfa7789eb2891dbfe23828e7e42eb9b3f679)) + +### Features + +- Set the cache field ([0b65210](https://github.com/getjerry/serverless-next.js/commit/0b65210a77506f339e9cbe6ebeef7017acb82747)) + +# [1.14.0-alpha.0](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.14.0-alpha.0) (2022-11-23) + +### Bug Fixes + +- add comment ([2cfb743](https://github.com/getjerry/serverless-next.js/commit/2cfb743d60030849efafcda743efcf63aded93fb)) +- add log ([73cbb2e](https://github.com/getjerry/serverless-next.js/commit/73cbb2e5be2b47407bf6173b9e3bcdbf051d8744)) +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- rename ([7473b4f](https://github.com/getjerry/serverless-next.js/commit/7473b4f2a5f0ab6aff815adec063d768d2ec422b)) +- restore cache clear ([be95009](https://github.com/getjerry/serverless-next.js/commit/be9500906b1c893c0be91cede929bfe8ceb01bf6)) +- rewriteUrlWithExperimentGroups ([d7e9a93](https://github.com/getjerry/serverless-next.js/commit/d7e9a933c76cf354a78b07c6e496fc00095f5552)) +- test cache clean ([3cbd526](https://github.com/getjerry/serverless-next.js/commit/3cbd526397c7181b88f5f9e91b0bdc25af70181b)) + +### Features + +- implement checkABTestUrl ([5016372](https://github.com/getjerry/serverless-next.js/commit/5016372af6310704c55516d85ead73cd5f7293f5)) +- init ab test functionality ([890ad3c](https://github.com/getjerry/serverless-next.js/commit/890ad3cb3fab946606dcf68c21bea2b198125e8b)) + +### Reverts + +- Revert "refactor: add murmurhash" ([6db95b4](https://github.com/getjerry/serverless-next.js/commit/6db95b48ffefa6670d706140774c8a1c87b84bf3)) +- Revert "feat: implement checkABTestUrl in defaultHandler of lambda-at-edge" ([8c0bb98](https://github.com/getjerry/serverless-next.js/commit/8c0bb98b81bfd53481fa37ae84293730c17291bb)) +- Revert "refactor: update yarn.lock" ([af5a448](https://github.com/getjerry/serverless-next.js/commit/af5a448fb3378975404024a5ad692844568d6963)) + +## [1.13.2-alpha.4](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.13.2-alpha.3...@getjerry/lambda-at-edge@1.13.2-alpha.4) (2022-10-19) + +### Bug Fixes + +- fix showing redirect props ([6b3ea8c](https://github.com/getjerry/serverless-next.js/commit/6b3ea8c6d3945c345a3dc7c805279b670677e62d)) + +## [1.13.2-alpha.3](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.13.2-alpha.2...@getjerry/lambda-at-edge@1.13.2-alpha.3) (2022-08-22) + +### Bug Fixes + +- upgrade sentry ([9a1d62d](https://github.com/getjerry/serverless-next.js/commit/9a1d62dd6e22805b1ae2e4da77eee281f48ac1de)) + +## [1.13.2-alpha.2](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.13.2-alpha.1...@getjerry/lambda-at-edge@1.13.2-alpha.2) (2022-08-18) + +### Bug Fixes + +- preview handler NPE ([bd97c90](https://github.com/getjerry/serverless-next.js/commit/bd97c90bce26d4f7004416853073af36b3d99380)) +- render to html body string ([14c9349](https://github.com/getjerry/serverless-next.js/commit/14c9349f4fb14eaec4cd7d890176c5d8222c5b36)) +- render to html body string ([e0f7df9](https://github.com/getjerry/serverless-next.js/commit/e0f7df978c8acae2c5e85510b32ebab46477bf69)) +- render to html body string ([12c9c15](https://github.com/getjerry/serverless-next.js/commit/12c9c151013b50147dbff8a89bea476d9177cf2f)) + +## [1.13.2-alpha.1](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.13.2-alpha.0...@getjerry/lambda-at-edge@1.13.2-alpha.1) (2022-08-16) + +### Bug Fixes + +- render to html body string ([b92ce59](https://github.com/getjerry/serverless-next.js/commit/b92ce5957c99ea1b1c3d5f5dfe9eb8a900366597)) + +## [1.13.2-alpha.0](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.13.2-alpha.0) (2022-08-16) + +### Bug Fixes + +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) +- render to html body string ([516132a](https://github.com/getjerry/serverless-next.js/commit/516132a3cc9e998e40129c65ffaa62decfe606c4)) +- render to html body string ([c6d3993](https://github.com/getjerry/serverless-next.js/commit/c6d39938e51d2a8d814db281bdae21dacb907f13)) +- render to html body string ([f120dd6](https://github.com/getjerry/serverless-next.js/commit/f120dd610fa9451a4cfbb83a2c5ae1b66073df06)) + +## [1.13.1](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.13.1) (2022-08-16) + +### Bug Fixes + +- html string ([#45](https://github.com/getjerry/serverless-next.js/issues/45)) ([6920106](https://github.com/getjerry/serverless-next.js/commit/6920106340aeb42d00b97107313b18e42f5da385)) + +# [1.12.0-alpha.8](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.7...@getjerry/lambda-at-edge@1.12.0-alpha.8) (2022-08-15) + +### Bug Fixes + +- html body string ([83a3e75](https://github.com/getjerry/serverless-next.js/commit/83a3e759a19c182bc59810f6f23e0b5a925c9c8b)) + +# [1.12.0-alpha.7](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.12.0-alpha.7) (2022-08-15) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.12.0-alpha.6](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.6...@getjerry/lambda-at-edge@1.12.0-alpha.6) (2022-08-15) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.12.0-alpha.5](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.4...@getjerry/lambda-at-edge@1.12.0-alpha.5) (2022-08-15) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.12.0-alpha.4](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.3...@getjerry/lambda-at-edge@1.12.0-alpha.4) (2022-08-15) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.12.0-alpha.3](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.2...@getjerry/lambda-at-edge@1.12.0-alpha.3) (2022-08-15) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.12.0-alpha.2](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.1...@getjerry/lambda-at-edge@1.12.0-alpha.2) (2022-08-15) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.12.0-alpha.1](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.12.0-alpha.0...@getjerry/lambda-at-edge@1.12.0-alpha.1) (2022-08-15) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.12.0-alpha.0](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.11.6...@getjerry/lambda-at-edge@1.12.0-alpha.0) (2022-08-15) + +### Features + +- add missing js file for nextjs12 ([#43](https://github.com/getjerry/serverless-next.js/issues/43)) ([73573b1](https://github.com/getjerry/serverless-next.js/commit/73573b104591df924a7839b6adce61e59b272af0)) + +## [1.9.14](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.9.13...@getjerry/lambda-at-edge@1.9.14) (2022-01-11) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.9.13](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.9.12...@getjerry/lambda-at-edge@1.9.13) (2022-01-11) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.9.3](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.9.3-alpha.0...@getjerry/lambda-at-edge@1.9.3) (2022-01-07) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.9.3-alpha.0](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.9.2...@getjerry/lambda-at-edge@1.9.3-alpha.0) (2022-01-07) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.9.2](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.51...@getjerry/lambda-at-edge@1.9.2) (2022-01-07) + +### Reverts + +- Revert "Feature: add 404 status check (#33)" ([a87437f](https://github.com/getjerry/serverless-next.js/commit/a87437f0e9c4c4d0f956ae975e6c837c93bc633c)), closes [#33](https://github.com/getjerry/serverless-next.js/issues/33) +- Revert "Update default-handler.ts" ([8d89e9d](https://github.com/getjerry/serverless-next.js/commit/8d89e9d6fe4dafbe890fd7af1ba21357f0c8be96)) +- Revert "Update revalidate.handler.ts" ([6e7f6e7](https://github.com/getjerry/serverless-next.js/commit/6e7f6e72fcd6f4be6c57881c74d0c96080cc6e7d)) +- Revert "Update revalidate.handler.ts" ([cbfed41](https://github.com/getjerry/serverless-next.js/commit/cbfed411c8ebfc56036c5cedd9f2c9434cf518a2)) +- Revert "Update default-handler.ts" ([f43755d](https://github.com/getjerry/serverless-next.js/commit/f43755db5a11d391119350dcb66011188462aa64)) +- Revert "chore(release): publish" ([5e8539a](https://github.com/getjerry/serverless-next.js/commit/5e8539a48cc3fd4b233cdd0b75fe35519c9c0e00)) +- Revert "Update revalidate.handler.ts" ([44783fe](https://github.com/getjerry/serverless-next.js/commit/44783fe5d80704a1fba63e79167fdccc1154da09)) +- Revert "chore(release): publish" ([dff5de9](https://github.com/getjerry/serverless-next.js/commit/dff5de98c33bf7fafeb742ebbdfcbcddaaf45ca3)) +- Revert "Update revalidate.handler.ts" ([cdbe624](https://github.com/getjerry/serverless-next.js/commit/cdbe624ae416bd4667a4da54d37f0aa373aa5088)) +- Revert "chore(release): publish" ([c6c8861](https://github.com/getjerry/serverless-next.js/commit/c6c88611336f8004685f038bcde1d8020fcc3108)) +- Revert "Update revalidate.handler.ts" ([196ff16](https://github.com/getjerry/serverless-next.js/commit/196ff1654442450b0282c62c3ddead0e437fff16)) +- Revert "chore(release): publish" ([5aacb55](https://github.com/getjerry/serverless-next.js/commit/5aacb55ec751580e6f0ff345bc4ed01d03ffd70e)) + +## [1.8.46](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.45...@getjerry/lambda-at-edge@1.8.46) (2021-11-19) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.45](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.45-alpha.2...@getjerry/lambda-at-edge@1.8.45) (2021-11-17) + +### Reverts + +- Revert "add lodash" ([08d9280](https://github.com/getjerry/serverless-next.js/commit/08d9280281d94dbf6dcdaf9cbe53519cb85cf80c)) +- Revert "Fix lodash import" ([2d5a73d](https://github.com/getjerry/serverless-next.js/commit/2d5a73d4856136857b6ac6dc90db7ec87de2e859)) + +## [1.8.44](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.43...@getjerry/lambda-at-edge@1.8.44) (2021-09-24) + +### Reverts + +- Revert "chore(release): publish" ([0a87abd](https://github.com/getjerry/serverless-next.js/commit/0a87abd66df649ae11f5923adc78fdadba8a8c49)) +- Revert "add" ([610b933](https://github.com/getjerry/serverless-next.js/commit/610b9338a9e92b11220c03bcf13005e52048dfb5)) +- Revert "fix" ([256ae2f](https://github.com/getjerry/serverless-next.js/commit/256ae2fc3afda203bc77f665cc32dec48332640c)) +- Revert "Update revalidate.handler.ts" ([93d93ed](https://github.com/getjerry/serverless-next.js/commit/93d93edf9a3c3cd3f17815aec3460f1ca1e37fc5)) +- Revert "fix" ([5f51995](https://github.com/getjerry/serverless-next.js/commit/5f51995d9df7468efe32c5bdcc156ceacdc7e7eb)) + +## [1.8.43](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.42...@getjerry/lambda-at-edge@1.8.43) (2021-09-09) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.42](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.42...@getjerry/lambda-at-edge@1.8.42) (2021-09-09) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.41](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.31...@getjerry/lambda-at-edge@1.8.41) (2021-08-23) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.30](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.31...@getjerry/lambda-at-edge@1.8.30) (2021-08-23) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.31](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.30...@getjerry/lambda-at-edge@1.8.31) (2021-08-23) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.30](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.29...@getjerry/lambda-at-edge@1.8.30) (2021-08-23) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.29](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.28...@getjerry/lambda-at-edge@1.8.29) (2021-08-20) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.28](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.27...@getjerry/lambda-at-edge@1.8.28) (2021-08-20) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.27](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.26...@getjerry/lambda-at-edge@1.8.27) (2021-08-20) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.26](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.25...@getjerry/lambda-at-edge@1.8.26) (2021-08-05) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.25](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.24...@getjerry/lambda-at-edge@1.8.25) (2021-08-04) + +### Bug Fixes + +- **default-handler:** fix wrong response handler. ([086a4fb](https://github.com/getjerry/serverless-next.js/commit/086a4fbec8b4b9012084237dcab9898c14a26e0a)) +- **default-handler:** fix wrong response handler. ([e26f298](https://github.com/getjerry/serverless-next.js/commit/e26f298a99c7f587bfb402dd39fe1b17ffdf5ea1)) +- **default-handler:** fix wrong response handler. ([1acd94b](https://github.com/getjerry/serverless-next.js/commit/1acd94ba3e8df7e819bceabf4e08260c4631f7f3)) + +## [1.8.24](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.23...@getjerry/lambda-at-edge@1.8.24) (2021-08-03) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.23](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.22...@getjerry/lambda-at-edge@1.8.23) (2021-08-03) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.22](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.21...@getjerry/lambda-at-edge@1.8.22) (2021-08-03) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.21](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.20...@getjerry/lambda-at-edge@1.8.21) (2021-08-03) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.20](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.19...@getjerry/lambda-at-edge@1.8.20) (2021-08-03) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.19](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.18...@getjerry/lambda-at-edge@1.8.19) (2021-07-02) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.18](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.17...@getjerry/lambda-at-edge@1.8.18) (2021-06-23) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.17](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.16...@getjerry/lambda-at-edge@1.8.17) (2021-05-25) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.16](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.14...@getjerry/lambda-at-edge@1.8.16) (2021-04-13) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.15](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.14...@getjerry/lambda-at-edge@1.8.15) (2021-04-13) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.14](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.13...@getjerry/lambda-at-edge@1.8.14) (2021-03-24) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.13](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.12...@getjerry/lambda-at-edge@1.8.13) (2021-03-24) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.9](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.8...@getjerry/lambda-at-edge@1.8.9) (2021-02-11) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.8](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.7...@getjerry/lambda-at-edge@1.8.8) (2021-02-04) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +## [1.8.7](https://github.com/getjerry/serverless-next.js/compare/@getjerry/lambda-at-edge@1.8.6...@getjerry/lambda-at-edge@1.8.7) (2021-02-04) + +**Note:** Version bump only for package @getjerry/lambda-at-edge + +# [1.8.0-alpha.16](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.15...@sls-next/lambda-at-edge@1.8.0-alpha.16) (2020-12-11) + +**Note:** Version bump only for package @sls-next/lambda-at-edge + +# [1.8.0-alpha.15](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.14...@sls-next/lambda-at-edge@1.8.0-alpha.15) (2020-12-10) + +### Features + +- **lambda-at-edge:** support external rewrites ([#839](https://github.com/serverless-nextjs/serverless-next.js/issues/839)) ([d57f75f](https://github.com/serverless-nextjs/serverless-next.js/commit/d57f75fdcb9129bff9d9812cc0af937e8cb0bd3c)) + +# [1.8.0-alpha.14](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.13...@sls-next/lambda-at-edge@1.8.0-alpha.14) (2020-12-08) + +### Bug Fixes + +- **lambda-at-edge:** include all build files in sharp package.json ([7256ab9](https://github.com/serverless-nextjs/serverless-next.js/commit/7256ab9bbd090dc1503dfebf5c93fb0b3cb452bd)) + +# [1.8.0-alpha.13](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.12...@sls-next/lambda-at-edge@1.8.0-alpha.13) (2020-12-08) + +### Bug Fixes + +- **lambda-at-edge:** include all vendor files in sharp package.json so npm publish will copy all vendor libs correctly ([#842](https://github.com/serverless-nextjs/serverless-next.js/issues/842)) ([0f3c417](https://github.com/serverless-nextjs/serverless-next.js/commit/0f3c41730752ee3423a47d8c06fe34f4fe7b29b8)) + +# [1.8.0-alpha.12](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.11...@sls-next/lambda-at-edge@1.8.0-alpha.12) (2020-12-08) + +### Bug Fixes + +- **lambda-at-edge:** try to copy all files in sharp_node_modules ([#841](https://github.com/serverless-nextjs/serverless-next.js/issues/841)) ([9234c1a](https://github.com/serverless-nextjs/serverless-next.js/commit/9234c1a980010745153218c2ffcd6f286ad32c11)) + +# [1.8.0-alpha.11](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.10...@sls-next/lambda-at-edge@1.8.0-alpha.11) (2020-12-08) + +### Features + +- **lambda-at-edge:** support image optimization ([#829](https://github.com/serverless-nextjs/serverless-next.js/issues/829)) ([f6c5156](https://github.com/serverless-nextjs/serverless-next.js/commit/f6c5156bf8bb4912528dfb3723227cca0790218a)) + +# [1.8.0-alpha.10](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.9...@sls-next/lambda-at-edge@1.8.0-alpha.10) (2020-12-05) + +**Note:** Version bump only for package @sls-next/lambda-at-edge + +# [1.8.0-alpha.9](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.8...@sls-next/lambda-at-edge@1.8.0-alpha.9) (2020-11-30) + +### Bug Fixes + +- **lambda-at-edge:** fix not found for public files with encoded characters in path ([#825](https://github.com/serverless-nextjs/serverless-next.js/issues/825)) ([b63f199](https://github.com/serverless-nextjs/serverless-next.js/commit/b63f199e1c80f018eab1b0efabc1b337088e0aa0)) + +# [1.8.0-alpha.8](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.7...@sls-next/lambda-at-edge@1.8.0-alpha.8) (2020-11-26) + +### Bug Fixes + +- **lambda-at-edge:** minor fix to optional catch-all base route at root level ([#820](https://github.com/serverless-nextjs/serverless-next.js/issues/820)) ([60cee0d](https://github.com/serverless-nextjs/serverless-next.js/commit/60cee0d76b8593d38308e57f0feea02cb18905e1)) + +# [1.8.0-alpha.7](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.6...@sls-next/lambda-at-edge@1.8.0-alpha.7) (2020-11-24) + +### Bug Fixes + +- **lambda-at-edge:** handle/merge query params in redirect/rewrite destinat… ([#816](https://github.com/serverless-nextjs/serverless-next.js/issues/816)) ([cd03658](https://github.com/serverless-nextjs/serverless-next.js/commit/cd03658191182207d09a2c1c132d60971aac572c)) + +# [1.8.0-alpha.6](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.5...@sls-next/lambda-at-edge@1.8.0-alpha.6) (2020-11-17) + +### Bug Fixes + +- **lambda-at-edge:** fix fallback (non-prerendered) SSG requests not … ([#800](https://github.com/serverless-nextjs/serverless-next.js/issues/800)) ([29719f5](https://github.com/serverless-nextjs/serverless-next.js/commit/29719f59e5468a2815ec87171a456e4dfff5ef35)) + +### Features + +- **lambda-at-edge, nextjs-component, s3-static-assets:** support ver… ([#803](https://github.com/serverless-nextjs/serverless-next.js/issues/803)) ([015065d](https://github.com/serverless-nextjs/serverless-next.js/commit/015065d02c1d06659dc1d1a7258b89f9415c3721)) + +# [1.8.0-alpha.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.4...@sls-next/lambda-at-edge@1.8.0-alpha.5) (2020-11-13) + +### Features + +- **lambda-at-edge:** support optional catch-all ([#791](https://github.com/serverless-nextjs/serverless-next.js/issues/791)) ([ba9d409](https://github.com/serverless-nextjs/serverless-next.js/commit/ba9d4093ab9d1173b904f72146d0fa161d10b01e)) + +# [1.8.0-alpha.4](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.3...@sls-next/lambda-at-edge@1.8.0-alpha.4) (2020-11-11) + +### Features + +- **lambda-at-edge:** add baseDir and resolve build options to serverless-trace ([#779](https://github.com/serverless-nextjs/serverless-next.js/issues/779)) ([8f978bb](https://github.com/serverless-nextjs/serverless-next.js/commit/8f978bb1f8117d1c1a81d965be3aa23b9c14798c)), closes [vercel/nft#153](https://github.com/vercel/nft/issues/153) + +# [1.8.0-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.2...@sls-next/lambda-at-edge@1.8.0-alpha.3) (2020-11-07) + +### Bug Fixes + +- **lambda-at-edge:** handle preview request gracefully ([#780](https://github.com/serverless-nextjs/serverless-next.js/issues/780)) ([93b36a7](https://github.com/serverless-nextjs/serverless-next.js/commit/93b36a73a3cfd1426d8f252d663302299efb640f)) + +# [1.8.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.1...@sls-next/lambda-at-edge@1.8.0-alpha.2) (2020-11-06) + +### Features + +- **nextjs-component, lambda-at-edge:** support single username/password basic authen… ([#773](https://github.com/serverless-nextjs/serverless-next.js/issues/773)) ([220da4a](https://github.com/serverless-nextjs/serverless-next.js/commit/220da4a7274bc43408803bb831c2221a95a7d435)) + +# [1.8.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.8.0-alpha.0...@sls-next/lambda-at-edge@1.8.0-alpha.1) (2020-11-03) + +### Bug Fixes + +- **lambda-at-edge:** for serverless-trace, don't copy when source and destination are the same ([#760](https://github.com/serverless-nextjs/serverless-next.js/issues/760)) ([29ef6a6](https://github.com/serverless-nextjs/serverless-next.js/commit/29ef6a6f2e7ee4ef2c8b10f068d10707a9a90416)) + +# [1.8.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.1-alpha.0...@sls-next/lambda-at-edge@1.8.0-alpha.0) (2020-11-03) + +### Features + +- **lambda-at-edge:** no-op rewrite support ([#759](https://github.com/serverless-nextjs/serverless-next.js/issues/759)) ([2107ab1](https://github.com/serverless-nextjs/serverless-next.js/commit/2107ab1f3c0213dcfbd54521ff10811a2d58ca51)) + +## [1.7.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0...@sls-next/lambda-at-edge@1.7.1-alpha.0) (2020-11-02) + +### Bug Fixes + +- **lambda-at-edge:** for serverless-trace target, exclude files that are not in node-modules folder ([#758](https://github.com/serverless-nextjs/serverless-next.js/issues/758)) ([2d72f4f](https://github.com/serverless-nextjs/serverless-next.js/commit/2d72f4f7932124d136eb3cfc6c1134682ca36ef0)) + +# [1.7.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.23...@sls-next/lambda-at-edge@1.7.0) (2020-11-02) + +**Note:** Version bump only for package @sls-next/lambda-at-edge + +# [1.7.0-alpha.23](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.22...@sls-next/lambda-at-edge@1.7.0-alpha.23) (2020-10-29) + +### Bug Fixes + +- **lambda-at-edge:** add retries for s3 calls ([#720](https://github.com/serverless-nextjs/serverless-next.js/issues/720)) ([72252fc](https://github.com/serverless-nextjs/serverless-next.js/commit/72252fc08dbc90a7c487cbceb5d61a696594676c)) + +# [1.7.0-alpha.22](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.21...@sls-next/lambda-at-edge@1.7.0-alpha.22) (2020-10-28) + +### Bug Fixes + +- **lambda-at-edge:** don't rewrite data requests ([#719](https://github.com/serverless-nextjs/serverless-next.js/issues/719)) ([5b6f848](https://github.com/serverless-nextjs/serverless-next.js/commit/5b6f84891724c7d2b83d8ee6c2708bb3874f0ccd)) + +# [1.7.0-alpha.21](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.20...@sls-next/lambda-at-edge@1.7.0-alpha.21) (2020-10-27) + +### Bug Fixes + +- **lambda-at-edge:** fix dynamic route precedence conflicting with fallback pages ([#714](https://github.com/serverless-nextjs/serverless-next.js/issues/714)) ([e667e76](https://github.com/serverless-nextjs/serverless-next.js/commit/e667e76cef137d68ef215e91a72490dba7f7199f)) + +# [1.7.0-alpha.20](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.19...@sls-next/lambda-at-edge@1.7.0-alpha.20) (2020-10-23) + +### Bug Fixes + +- **lambda-at-edge:** fail build when "public/static" folder exists as this conflicts with static/\* cache behavior ([#709](https://github.com/serverless-nextjs/serverless-next.js/issues/709)) ([187bbc8](https://github.com/serverless-nextjs/serverless-next.js/commit/187bbc8bd3b4c5284db155dced94c8d857b7f68a)) + +# [1.7.0-alpha.19](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.18...@sls-next/lambda-at-edge@1.7.0-alpha.19) (2020-10-22) + +### Bug Fixes + +- **lambda-at-edge:** fix broken npm install by changing src/command.js -> dist/command.js ([fde41ee](https://github.com/serverless-nextjs/serverless-next.js/commit/fde41ee098c06759b3b71e9dc489a6aef98baff2)) + +# [1.7.0-alpha.18](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.17...@sls-next/lambda-at-edge@1.7.0-alpha.18) (2020-10-22) + +### Features + +- **lambda-at-edge:** add a binary to allow use without copying example ([#688](https://github.com/serverless-nextjs/serverless-next.js/issues/688)) ([0c138a2](https://github.com/serverless-nextjs/serverless-next.js/commit/0c138a2d63b230b3c0ec5a37080b8987bfcc86ff)) +- **lambda-at-edge-compat, lambda-at-edge, nextjs-component:** let CloudFront do the Gzipping ([#692](https://github.com/serverless-nextjs/serverless-next.js/issues/692)) ([05fb0eb](https://github.com/serverless-nextjs/serverless-next.js/commit/05fb0ebdf38096fb7e0427956c4747e782c680a8)) + +# [1.7.0-alpha.17](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.16...@sls-next/lambda-at-edge@1.7.0-alpha.17) (2020-10-21) + +### Bug Fixes + +- **lambda-at-edge:** non-dynamic routes for rewrite should not include routes in prerender manifest ([#700](https://github.com/serverless-nextjs/serverless-next.js/issues/700)) ([06d4edb](https://github.com/serverless-nextjs/serverless-next.js/commit/06d4edb72da2662affc9ad25a2e4eb5550d415e9)) +- **lambda-at-edge:** serve HTML pages with no props (i.e static pages) properly on preview mode enabled ([#701](https://github.com/serverless-nextjs/serverless-next.js/issues/701)) ([57cd668](https://github.com/serverless-nextjs/serverless-next.js/commit/57cd6689152530064635eb9d53c5201d580c9b61)) + +# [1.7.0-alpha.16](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.15...@sls-next/lambda-at-edge@1.7.0-alpha.16) (2020-10-21) + +### Bug Fixes + +- **lambda-at-edge, e2e-tests:** don't rewrite non-dynamic api routes ([#698](https://github.com/serverless-nextjs/serverless-next.js/issues/698)) ([27526e7](https://github.com/serverless-nextjs/serverless-next.js/commit/27526e70c57d3bab016f734a0672d62c9d43bcca)) + +# [1.7.0-alpha.15](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.14...@sls-next/lambda-at-edge@1.7.0-alpha.15) (2020-10-20) + +### Bug Fixes + +- **lambda-at-edge, e2e-tests:** non-dynamic routes should never be rewritten ([#697](https://github.com/serverless-nextjs/serverless-next.js/issues/697)) ([f16c9a0](https://github.com/serverless-nextjs/serverless-next.js/commit/f16c9a0811e80bb5d45d9ebd517c2ae8f3b35316)) + +# [1.7.0-alpha.14](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.13...@sls-next/lambda-at-edge@1.7.0-alpha.14) (2020-10-20) + +### Features + +- **lambda-at-edge, nextjs-component:** allow `handler` input for custom handler code ([#649](https://github.com/serverless-nextjs/serverless-next.js/issues/649)) ([cecd327](https://github.com/serverless-nextjs/serverless-next.js/commit/cecd327993d593c582eeb140538b271b2eef509a)) + +# [1.7.0-alpha.13](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.12...@sls-next/lambda-at-edge@1.7.0-alpha.13) (2020-10-18) + +**Note:** Version bump only for package @sls-next/lambda-at-edge + +# [1.7.0-alpha.12](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.11...@sls-next/lambda-at-edge@1.7.0-alpha.12) (2020-10-16) + +### Bug Fixes + +- **lambda-at-edge:** non-dynamic pages (SSG, SSR) should be prioritized over dynamic fallback pages ([#685](https://github.com/serverless-nextjs/serverless-next.js/issues/685)) ([71b61e7](https://github.com/serverless-nextjs/serverless-next.js/commit/71b61e7644874da15715c6ec9af60cdc3746f71a)) + +# [1.7.0-alpha.11](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.10...@sls-next/lambda-at-edge@1.7.0-alpha.11) (2020-10-15) + +**Note:** Version bump only for package @sls-next/lambda-at-edge + +# [1.7.0-alpha.10](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.9...@sls-next/lambda-at-edge@1.7.0-alpha.10) (2020-10-15) + +### Bug Fixes + +- **lambda-at-edge, e2e-tests:** PUT or DELETE S3 methods should just … ([#680](https://github.com/serverless-nextjs/serverless-next.js/issues/680)) ([f9910a0](https://github.com/serverless-nextjs/serverless-next.js/commit/f9910a023511240337ee62251a169f9504ffbfec)) + +### Features + +- **lambda-at-edge:** support fallback: false for getStaticPaths and fix cache-control header ([#681](https://github.com/serverless-nextjs/serverless-next.js/issues/681)) ([3ef5c17](https://github.com/serverless-nextjs/serverless-next.js/commit/3ef5c17032bd206f706323b9a85e940b594cfc38)) + +# [1.7.0-alpha.9](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.8...@sls-next/lambda-at-edge@1.7.0-alpha.9) (2020-10-15) + +### Bug Fixes + +- **lambda-at-edge:** fix dynamic routes with getStaticPaths interfering with public files ([#679](https://github.com/serverless-nextjs/serverless-next.js/issues/679)) ([17beb1f](https://github.com/serverless-nextjs/serverless-next.js/commit/17beb1f7a994ec17d3e378bee931237b2b5cc54f)) + +# [1.7.0-alpha.8](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.7...@sls-next/lambda-at-edge@1.7.0-alpha.8) (2020-10-13) + +### Bug Fixes + +- **lambda-at-edge:** fix possible redirect loop in API handler ([#671](https://github.com/serverless-nextjs/serverless-next.js/issues/671)) ([ed92ebc](https://github.com/serverless-nextjs/serverless-next.js/commit/ed92ebce73720c46fdb5c7c9065127d7f8a51078)) + +# [1.7.0-alpha.7](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.6...@sls-next/lambda-at-edge@1.7.0-alpha.7) (2020-10-10) + +### Features + +- **lambda-at-edge:** support custom headers (with caveats) ([#662](https://github.com/serverless-nextjs/serverless-next.js/issues/662)) ([8b9e822](https://github.com/serverless-nextjs/serverless-next.js/commit/8b9e822a7071fc3277711ed476860564577e0af3)) + +# [1.7.0-alpha.6](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.5...@sls-next/lambda-at-edge@1.7.0-alpha.6) (2020-10-09) + +### Features + +- **lambda-at-edge:** add minifyHandlers input to minify handler code using Terser ([#659](https://github.com/serverless-nextjs/serverless-next.js/issues/659)) ([1b33e72](https://github.com/serverless-nextjs/serverless-next.js/commit/1b33e72bf1e578e1a8bd6c7a77aeb99db412471a)) + +# [1.7.0-alpha.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.4...@sls-next/lambda-at-edge@1.7.0-alpha.5) (2020-10-07) + +**Note:** Version bump only for package @sls-next/lambda-at-edge + +# [1.7.0-alpha.4](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.3...@sls-next/lambda-at-edge@1.7.0-alpha.4) (2020-10-06) + +### Bug Fixes + +- **lambda-at-edge:** fix compilation of query strings in redirect des… ([#647](https://github.com/serverless-nextjs/serverless-next.js/issues/647)) ([9ed7159](https://github.com/serverless-nextjs/serverless-next.js/commit/9ed7159a759eccedd5cf6ee98a261c1cbcab1d90)) + +### Features + +- **lambda-at-edge:** support page and API rewrites ([#653](https://github.com/serverless-nextjs/serverless-next.js/issues/653)) ([f187b91](https://github.com/serverless-nextjs/serverless-next.js/commit/f187b91dd40012810cb96308d416736f2e032222)) +- **lambda-at-edge, nextjs-component:** add new input domainRedirects ([#639](https://github.com/serverless-nextjs/serverless-next.js/issues/639)) ([a12e31a](https://github.com/serverless-nextjs/serverless-next.js/commit/a12e31ac06378f9fe26189b95a9b032942656380)) + +# [1.7.0-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.2...@sls-next/lambda-at-edge@1.7.0-alpha.3) (2020-09-30) + +### Features + +- **lambda-at-edge:** support custom redirects from API routes ([#640](https://github.com/serverless-nextjs/serverless-next.js/issues/640)) ([b68d46a](https://github.com/serverless-nextjs/serverless-next.js/commit/b68d46a4592a48ee55a35e089e4d8554edadaa17)) + +# [1.7.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.7.0-alpha.1...@sls-next/lambda-at-edge@1.7.0-alpha.2) (2020-09-30) + +### Bug Fixes + +- **lambda-at-edge:** fix broken redirects with full URLs as destinations ([#638](https://github.com/serverless-nextjs/serverless-next.js/issues/638)) ([ee95e54](https://github.com/serverless-nextjs/serverless-next.js/commit/ee95e549cdb620865d536435e74e1ea3026ecd20)) + +# [1.7.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0...@sls-next/lambda-at-edge@1.7.0-alpha.1) (2020-09-29) + +### Features + +- **lambda-at-edge:** support custom redirects ([#627](https://github.com/serverless-nextjs/serverless-next.js/issues/627)) ([d2f9679](https://github.com/serverless-nextjs/serverless-next.js/commit/d2f9679a5074285cb8a5111d4c1e34f8bbde0b0f)) + +# [1.7.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0...@sls-next/lambda-at-edge@1.7.0-alpha.0) (2020-09-29) + +### Features + +- **lambda-at-edge:** support custom redirects ([#627](https://github.com/serverless-nextjs/serverless-next.js/issues/627)) ([d2f9679](https://github.com/serverless-nextjs/serverless-next.js/commit/d2f9679a5074285cb8a5111d4c1e34f8bbde0b0f)) + +# [1.6.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.11...@sls-next/lambda-at-edge@1.6.0) (2020-09-26) + +**Note:** Version bump only for package @sls-next/lambda-at-edge + +# [1.6.0-alpha.11](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.10...@sls-next/lambda-at-edge@1.6.0-alpha.11) (2020-09-23) + +### Bug Fixes + +- **lambda-at-edge, e2e-tests:** fix issue where SSR data request should be directly rendered in Lambda, not retrieved from S3 ([2fa8910](https://github.com/serverless-nextjs/serverless-next.js/commit/2fa8910aea85626a5ae37efd4c8a2e6ece86c4ce)) + +# [1.6.0-alpha.10](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.9...@sls-next/lambda-at-edge@1.6.0-alpha.10) (2020-09-16) + +### Bug Fixes + +- **lambda-at-edge:** exclude prerender js files from default handler if no API routes are used ([#600](https://github.com/serverless-nextjs/serverless-next.js/issues/600)) ([73d0f48](https://github.com/serverless-nextjs/serverless-next.js/commit/73d0f4821212ae7b3d0a46d3ca34fef6425277ab)) + +# [1.6.0-alpha.9](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.8...@sls-next/lambda-at-edge@1.6.0-alpha.9) (2020-09-10) + +### Bug Fixes + +- **lambda-at-edge:** move path-to-regexp to prod deps ([e4d9dbd](https://github.com/serverless-nextjs/serverless-next.js/commit/e4d9dbd3f12b12cd5f10936d0daf511134c70ae7)) + +# [1.6.0-alpha.8](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.7...@sls-next/lambda-at-edge@1.6.0-alpha.8) (2020-09-10) + +### Features + +- **lambda-at-edge:** use new aws s3 client for faster require time ([#583](https://github.com/serverless-nextjs/serverless-next.js/issues/583)) ([f9eef45](https://github.com/serverless-nextjs/serverless-next.js/commit/f9eef458552e5ff5ee60e9b43df7ccf221a2ec0c)) +- **lambda-at-edge, next-aws-cloudfront:** support Preview Mode ([#562](https://github.com/serverless-nextjs/serverless-next.js/issues/562)) ([5e1ea38](https://github.com/serverless-nextjs/serverless-next.js/commit/5e1ea3891e48d75de5973902a014b67f14c8380a)) + +# [1.6.0-alpha.7](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.6...@sls-next/lambda-at-edge@1.6.0-alpha.7) (2020-08-31) + +### Bug Fixes + +- **lambda-at-edge:** fix data request routing / client-side navigation for SSR index page ([#574](https://github.com/serverless-nextjs/serverless-next.js/issues/574)) ([f580786](https://github.com/serverless-nextjs/serverless-next.js/commit/f580786e5859f217e5ce79824cdaa0ef17ef0e42)) +- **lambda-at-edge:** fix for 404s on public files ([#577](https://github.com/serverless-nextjs/serverless-next.js/issues/577)) ([a854139](https://github.com/serverless-nextjs/serverless-next.js/commit/a854139f4344530de1a42268828231a4d38c7c91)) + +# [1.6.0-alpha.6](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.5...@sls-next/lambda-at-edge@1.6.0-alpha.6) (2020-08-29) ### Bug Fixes -- **lambda-at-edge:** fix reading next.config.js in build step when it exports a function ([#569](https://github.com/danielcondemarin/serverless-next.js/issues/569)) ([16272b4](https://github.com/danielcondemarin/serverless-next.js/commit/16272b43b8d1cfcdebe1eddad91a8bae7bcc890c)) -- **lambda-at-edge:** fix routing for pages with basePath ([#572](https://github.com/danielcondemarin/serverless-next.js/issues/572)) ([b185a7a](https://github.com/danielcondemarin/serverless-next.js/commit/b185a7a088b58651780542d1539660c951cd63a6)) -- **lambda-at-edge:** render Next 500 page when SSR render fails, and ensure 404 pages return 404 status codes ([#570](https://github.com/danielcondemarin/serverless-next.js/issues/570)) ([bdd1e3f](https://github.com/danielcondemarin/serverless-next.js/commit/bdd1e3f9feb7e0c9eec42de7298882dce084aa67)) +- **lambda-at-edge:** fix reading next.config.js in build step when it exports a function ([#569](https://github.com/serverless-nextjs/serverless-next.js/issues/569)) ([16272b4](https://github.com/serverless-nextjs/serverless-next.js/commit/16272b43b8d1cfcdebe1eddad91a8bae7bcc890c)) +- **lambda-at-edge:** fix routing for pages with basePath ([#572](https://github.com/serverless-nextjs/serverless-next.js/issues/572)) ([b185a7a](https://github.com/serverless-nextjs/serverless-next.js/commit/b185a7a088b58651780542d1539660c951cd63a6)) +- **lambda-at-edge:** render Next 500 page when SSR render fails, and ensure 404 pages return 404 status codes ([#570](https://github.com/serverless-nextjs/serverless-next.js/issues/570)) ([bdd1e3f](https://github.com/serverless-nextjs/serverless-next.js/commit/bdd1e3f9feb7e0c9eec42de7298882dce084aa67)) -# [1.6.0-alpha.5](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.4...@sls-next/lambda-at-edge@1.6.0-alpha.5) (2020-08-27) +# [1.6.0-alpha.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.4...@sls-next/lambda-at-edge@1.6.0-alpha.5) (2020-08-27) ### Features -- **lambda-at-edge:** support trailing slash / non-trailing slash redirects ([#556](https://github.com/danielcondemarin/serverless-next.js/issues/556)) ([ca63b80](https://github.com/danielcondemarin/serverless-next.js/commit/ca63b80d4bf784ebfdc5a32352a53dde85b4b4d9)) +- **lambda-at-edge:** support trailing slash / non-trailing slash redirects ([#556](https://github.com/serverless-nextjs/serverless-next.js/issues/556)) ([ca63b80](https://github.com/serverless-nextjs/serverless-next.js/commit/ca63b80d4bf784ebfdc5a32352a53dde85b4b4d9)) -# [1.6.0-alpha.4](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.3...@sls-next/lambda-at-edge@1.6.0-alpha.4) (2020-08-19) +# [1.6.0-alpha.4](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.3...@sls-next/lambda-at-edge@1.6.0-alpha.4) (2020-08-19) ### Bug Fixes -- **lambda-at-edge:** ignore package.json during serverless-trace ([#552](https://github.com/danielcondemarin/serverless-next.js/issues/552)) ([d21f1d5](https://github.com/danielcondemarin/serverless-next.js/commit/d21f1d56b8b21bad38b86ec91ae5f26c8c9472bc)) +- **lambda-at-edge:** ignore package.json during serverless-trace ([#552](https://github.com/serverless-nextjs/serverless-next.js/issues/552)) ([d21f1d5](https://github.com/serverless-nextjs/serverless-next.js/commit/d21f1d56b8b21bad38b86ec91ae5f26c8c9472bc)) ### Features -- **lambda-at-edge:** add opt in lambda execution times logging ([#549](https://github.com/danielcondemarin/serverless-next.js/issues/549)) ([066bd27](https://github.com/danielcondemarin/serverless-next.js/commit/066bd270ce8b8f915298b7bac51c2aeb3ab27126)) +- **lambda-at-edge:** add opt in lambda execution times logging ([#549](https://github.com/serverless-nextjs/serverless-next.js/issues/549)) ([066bd27](https://github.com/serverless-nextjs/serverless-next.js/commit/066bd270ce8b8f915298b7bac51c2aeb3ab27126)) -# [1.6.0-alpha.3](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.2...@sls-next/lambda-at-edge@1.6.0-alpha.3) (2020-08-14) +# [1.6.0-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.2...@sls-next/lambda-at-edge@1.6.0-alpha.3) (2020-08-14) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.6.0-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.1...@sls-next/lambda-at-edge@1.6.0-alpha.2) (2020-08-14) +# [1.6.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.1...@sls-next/lambda-at-edge@1.6.0-alpha.2) (2020-08-14) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.6.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.0...@sls-next/lambda-at-edge@1.6.0-alpha.1) (2020-08-14) +# [1.6.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.6.0-alpha.0...@sls-next/lambda-at-edge@1.6.0-alpha.1) (2020-08-14) ### Features -- **serverless-component, lambda-at-edge, lambda-at-edge-compat, s3-static-assets:** add support for getStaticPaths fallback true ([#544](https://github.com/danielcondemarin/serverless-next.js/issues/544)) ([a08217b](https://github.com/danielcondemarin/serverless-next.js/commit/a08217ba26ea90f67c562fe4ae9510b617d14d08)) +- **serverless-component, lambda-at-edge, lambda-at-edge-compat, s3-static-assets:** add support for getStaticPaths fallback true ([#544](https://github.com/serverless-nextjs/serverless-next.js/issues/544)) ([a08217b](https://github.com/serverless-nextjs/serverless-next.js/commit/a08217ba26ea90f67c562fe4ae9510b617d14d08)) -# [1.6.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.2...@sls-next/lambda-at-edge@1.6.0-alpha.0) (2020-08-06) +# [1.6.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.2...@sls-next/lambda-at-edge@1.6.0-alpha.0) (2020-08-06) ### Features -- **lambda-at-edge,serverless-component:** basePath support ([#510](https://github.com/danielcondemarin/serverless-next.js/issues/510)) ([b17ce30](https://github.com/danielcondemarin/serverless-next.js/commit/b17ce30b1f18f994f1d2e9ebfe833a74aae6676b)) +- **lambda-at-edge,serverless-component:** basePath support ([#510](https://github.com/serverless-nextjs/serverless-next.js/issues/510)) ([b17ce30](https://github.com/serverless-nextjs/serverless-next.js/commit/b17ce30b1f18f994f1d2e9ebfe833a74aae6676b)) -## [1.5.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.2-alpha.1...@sls-next/lambda-at-edge@1.5.2) (2020-08-01) +## [1.5.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.2-alpha.1...@sls-next/lambda-at-edge@1.5.2) (2020-08-01) ### Bug Fixes -- **lambda-at-edge:** fix next 9.5 root uri problem ([#528](https://github.com/danielcondemarin/serverless-next.js/issues/528)) ([ceb9218](https://github.com/danielcondemarin/serverless-next.js/commit/ceb9218dcdd15e1b36228fc3752e2f5e4b4082c0)) +- **lambda-at-edge:** fix next 9.5 root uri problem ([#528](https://github.com/serverless-nextjs/serverless-next.js/issues/528)) ([ceb9218](https://github.com/serverless-nextjs/serverless-next.js/commit/ceb9218dcdd15e1b36228fc3752e2f5e4b4082c0)) -## [1.5.2-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.2-alpha.0...@sls-next/lambda-at-edge@1.5.2-alpha.1) (2020-07-30) +## [1.5.2-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.2-alpha.0...@sls-next/lambda-at-edge@1.5.2-alpha.1) (2020-07-30) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.5.2-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.1...@sls-next/lambda-at-edge@1.5.2-alpha.0) (2020-07-14) +## [1.5.2-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.1...@sls-next/lambda-at-edge@1.5.2-alpha.0) (2020-07-14) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.5.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.0...@sls-next/lambda-at-edge@1.5.1) (2020-07-11) +## [1.5.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.0...@sls-next/lambda-at-edge@1.5.1) (2020-07-11) ### Bug Fixes -- **lambda-at-edge:** fix s3 bucket not being normalized for public assets ([#497](https://github.com/danielcondemarin/serverless-next.js/issues/497)) ([7e39902](https://github.com/danielcondemarin/serverless-next.js/commit/7e399022ebf9c45aa782c6bc9104c55192bb3af7)) +- **lambda-at-edge:** fix s3 bucket not being normalized for public assets ([#497](https://github.com/serverless-nextjs/serverless-next.js/issues/497)) ([7e39902](https://github.com/serverless-nextjs/serverless-next.js/commit/7e399022ebf9c45aa782c6bc9104c55192bb3af7)) -# [1.5.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.0-alpha.0...@sls-next/lambda-at-edge@1.5.0) (2020-07-11) +# [1.5.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.5.0-alpha.0...@sls-next/lambda-at-edge@1.5.0) (2020-07-11) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.5.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.5...@sls-next/lambda-at-edge@1.5.0-alpha.0) (2020-07-05) +# [1.5.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.5...@sls-next/lambda-at-edge@1.5.0-alpha.0) (2020-07-05) ### Features -- **lambda-at-edge:** use S3 regional endpoint when not in us-east-1 ([#474](https://github.com/danielcondemarin/serverless-next.js/issues/474)) ([5ecff1a](https://github.com/danielcondemarin/serverless-next.js/commit/5ecff1a50e26c22f7de9ec9da3cf2cba4390d77d)) +- **lambda-at-edge:** use S3 regional endpoint when not in us-east-1 ([#474](https://github.com/serverless-nextjs/serverless-next.js/issues/474)) ([5ecff1a](https://github.com/serverless-nextjs/serverless-next.js/commit/5ecff1a50e26c22f7de9ec9da3cf2cba4390d77d)) -## [1.4.1-alpha.5](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.4...@sls-next/lambda-at-edge@1.4.1-alpha.5) (2020-06-30) +## [1.4.1-alpha.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.4...@sls-next/lambda-at-edge@1.4.1-alpha.5) (2020-06-30) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.4.1-alpha.4](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.3...@sls-next/lambda-at-edge@1.4.1-alpha.4) (2020-06-29) +## [1.4.1-alpha.4](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.3...@sls-next/lambda-at-edge@1.4.1-alpha.4) (2020-06-29) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.4.1-alpha.3](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.2...@sls-next/lambda-at-edge@1.4.1-alpha.3) (2020-06-29) +## [1.4.1-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.2...@sls-next/lambda-at-edge@1.4.1-alpha.3) (2020-06-29) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.4.1-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.1...@sls-next/lambda-at-edge@1.4.1-alpha.2) (2020-06-28) +## [1.4.1-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.1...@sls-next/lambda-at-edge@1.4.1-alpha.2) (2020-06-28) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.4.1-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.0...@sls-next/lambda-at-edge@1.4.1-alpha.1) (2020-06-24) +## [1.4.1-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.0...@sls-next/lambda-at-edge@1.4.1-alpha.1) (2020-06-24) ### Bug Fixes -- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/danielcondemarin/serverless-next.js/issues/460)) ([12da1de](https://github.com/danielcondemarin/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) +- **serverless-component:** don't overwrite the cloudfront default.forward config ([#460](https://github.com/serverless-nextjs/serverless-next.js/issues/460)) ([12da1de](https://github.com/serverless-nextjs/serverless-next.js/commit/12da1de31855b68b9addef801ec21dffd3202a21)) -## [1.4.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.0...@sls-next/lambda-at-edge@1.4.1-alpha.0) (2020-06-21) +## [1.4.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.0...@sls-next/lambda-at-edge@1.4.1-alpha.0) (2020-06-21) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.4.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.0-alpha.0...@sls-next/lambda-at-edge@1.4.0) (2020-06-16) +# [1.4.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.0-alpha.0...@sls-next/lambda-at-edge@1.4.0) (2020-06-16) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.4.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.3.0...@sls-next/lambda-at-edge@1.4.0-alpha.0) (2020-06-12) +# [1.4.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.3.0...@sls-next/lambda-at-edge@1.4.0-alpha.0) (2020-06-12) ### Features -- **serverless-component, lambda-at-edge:** add support for static 404.html page ([#432](https://github.com/danielcondemarin/serverless-next.js/issues/432)) ([0ba8931](https://github.com/danielcondemarin/serverless-next.js/commit/0ba8931807258de58eeaccf449a7b714fc66e15c)) +- **serverless-component, lambda-at-edge:** add support for static 404.html page ([#432](https://github.com/serverless-nextjs/serverless-next.js/issues/432)) ([0ba8931](https://github.com/serverless-nextjs/serverless-next.js/commit/0ba8931807258de58eeaccf449a7b714fc66e15c)) -# [1.3.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0...@sls-next/lambda-at-edge@1.3.0) (2020-06-07) +# [1.3.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0...@sls-next/lambda-at-edge@1.3.0) (2020-06-07) ### Features -- **serverless-component,lambda-at-edge:** getServerSideProps support ([#429](https://github.com/danielcondemarin/serverless-next.js/issues/429)) ([7aeb26e](https://github.com/danielcondemarin/serverless-next.js/commit/7aeb26e5052498c580baf7db38e63fefafc38ea4)) +- **serverless-component,lambda-at-edge:** getServerSideProps support ([#429](https://github.com/serverless-nextjs/serverless-next.js/issues/429)) ([7aeb26e](https://github.com/serverless-nextjs/serverless-next.js/commit/7aeb26e5052498c580baf7db38e63fefafc38ea4)) -# [1.2.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.5...@sls-next/lambda-at-edge@1.2.0) (2020-06-05) +# [1.2.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.5...@sls-next/lambda-at-edge@1.2.0) (2020-06-05) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.2.0-alpha.5](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.4...@sls-next/lambda-at-edge@1.2.0-alpha.5) (2020-06-03) +# [1.2.0-alpha.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.4...@sls-next/lambda-at-edge@1.2.0-alpha.5) (2020-06-03) ### Bug Fixes -- **lambda-at-edge:** resolve dependencies using .next/serverless as base path ([#425](https://github.com/danielcondemarin/serverless-next.js/issues/425)) ([d60982f](https://github.com/danielcondemarin/serverless-next.js/commit/d60982f10e85f716badd1676c3f89a57a6c04019)) +- **lambda-at-edge:** resolve dependencies using .next/serverless as base path ([#425](https://github.com/serverless-nextjs/serverless-next.js/issues/425)) ([d60982f](https://github.com/serverless-nextjs/serverless-next.js/commit/d60982f10e85f716badd1676c3f89a57a6c04019)) -# [1.2.0-alpha.4](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.3...@sls-next/lambda-at-edge@1.2.0-alpha.4) (2020-05-31) +# [1.2.0-alpha.4](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.3...@sls-next/lambda-at-edge@1.2.0-alpha.4) (2020-05-31) ### Features -- **lambda-at-edge:** autogenerate serverless config ([#418](https://github.com/danielcondemarin/serverless-next.js/issues/418)) ([0f9a176](https://github.com/danielcondemarin/serverless-next.js/commit/0f9a176f65207d31d0b66a11d6fbceafe27fade5)) +- **lambda-at-edge:** autogenerate serverless config ([#418](https://github.com/serverless-nextjs/serverless-next.js/issues/418)) ([0f9a176](https://github.com/serverless-nextjs/serverless-next.js/commit/0f9a176f65207d31d0b66a11d6fbceafe27fade5)) -# [1.2.0-alpha.3](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.2...@sls-next/lambda-at-edge@1.2.0-alpha.3) (2020-05-23) +# [1.2.0-alpha.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.2...@sls-next/lambda-at-edge@1.2.0-alpha.3) (2020-05-23) ### Bug Fixes -- **lambda-at-edge:** explicitly set host header for s3 origin ([#412](https://github.com/danielcondemarin/serverless-next.js/issues/412)) ([2f44795](https://github.com/danielcondemarin/serverless-next.js/commit/2f44795aed0579acb5f1fea90370b0066c170bcb)) +- **lambda-at-edge:** explicitly set host header for s3 origin ([#412](https://github.com/serverless-nextjs/serverless-next.js/issues/412)) ([2f44795](https://github.com/serverless-nextjs/serverless-next.js/commit/2f44795aed0579acb5f1fea90370b0066c170bcb)) -# [1.2.0-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.1...@sls-next/lambda-at-edge@1.2.0-alpha.2) (2020-05-19) +# [1.2.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.1...@sls-next/lambda-at-edge@1.2.0-alpha.2) (2020-05-19) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.2.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.0...@sls-next/lambda-at-edge@1.2.0-alpha.1) (2020-05-17) +# [1.2.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.2.0-alpha.0...@sls-next/lambda-at-edge@1.2.0-alpha.1) (2020-05-17) ### Features -- **lambda-at-edge:** add serverless trace target support ([#405](https://github.com/danielcondemarin/serverless-next.js/issues/405)) ([d800951](https://github.com/danielcondemarin/serverless-next.js/commit/d800951673474965c386ab94b2d8db18790099f7)) +- **lambda-at-edge:** add serverless trace target support ([#405](https://github.com/serverless-nextjs/serverless-next.js/issues/405)) ([d800951](https://github.com/serverless-nextjs/serverless-next.js/commit/d800951673474965c386ab94b2d8db18790099f7)) -# [1.2.0-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.3...@sls-next/lambda-at-edge@1.2.0-alpha.0) (2020-05-15) +# [1.2.0-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.3...@sls-next/lambda-at-edge@1.2.0-alpha.0) (2020-05-15) ### Bug Fixes -- **lambda-at-edge:** fix routing issue when looking up root / path in prerender-manifest ([7eedd69](https://github.com/danielcondemarin/serverless-next.js/commit/7eedd6931923cb0c5ed87255075a401345505bc7)) +- **lambda-at-edge:** fix routing issue when looking up root / path in prerender-manifest ([7eedd69](https://github.com/serverless-nextjs/serverless-next.js/commit/7eedd6931923cb0c5ed87255075a401345505bc7)) ### Features -- **serverless-component:** implement getStaticProps / getStaticPaths [fallback: false](<[#390](https://github.com/danielcondemarin/serverless-next.js/issues/390)>) ([5185649](https://github.com/danielcondemarin/serverless-next.js/commit/518564944435767759fae8ae5978baf3afc49d7a)) +- **serverless-component:** implement getStaticProps / getStaticPaths [fallback: false](<[#390](https://github.com/serverless-nextjs/serverless-next.js/issues/390)>) ([5185649](https://github.com/serverless-nextjs/serverless-next.js/commit/518564944435767759fae8ae5978baf3afc49d7a)) -## [1.1.3](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.2...@sls-next/lambda-at-edge@1.1.3) (2020-05-07) +## [1.1.3](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.2...@sls-next/lambda-at-edge@1.1.3) (2020-05-07) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.1.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.2-alpha.1...@sls-next/lambda-at-edge@1.1.2) (2020-05-05) +## [1.1.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.2-alpha.1...@sls-next/lambda-at-edge@1.1.2) (2020-05-05) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.1.2-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.2-alpha.0...@sls-next/lambda-at-edge@1.1.2-alpha.1) (2020-05-05) +## [1.1.2-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.2-alpha.0...@sls-next/lambda-at-edge@1.1.2-alpha.1) (2020-05-05) ### Bug Fixes -- **lambda-at-edge:** dont throw when no prev .next dir ([8dfd19d](https://github.com/danielcondemarin/serverless-next.js/commit/8dfd19dc3b479edd43862051de756e895b56c88e)) +- **lambda-at-edge:** dont throw when no prev .next dir ([8dfd19d](https://github.com/serverless-nextjs/serverless-next.js/commit/8dfd19dc3b479edd43862051de756e895b56c88e)) -## [1.1.2-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.1...@sls-next/lambda-at-edge@1.1.2-alpha.0) (2020-05-05) +## [1.1.2-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.1...@sls-next/lambda-at-edge@1.1.2-alpha.0) (2020-05-05) ### Bug Fixes -- **serverless-component:** upload whole .next/static folder and dont clear cache between builds ([4406ebb](https://github.com/danielcondemarin/serverless-next.js/commit/4406ebbb8937c75dfbc5644913b7c0d05ff3a52f)) +- **serverless-component:** upload whole .next/static folder and dont clear cache between builds ([4406ebb](https://github.com/serverless-nextjs/serverless-next.js/commit/4406ebbb8937c75dfbc5644913b7c0d05ff3a52f)) -## [1.1.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.1-alpha.0...@sls-next/lambda-at-edge@1.1.1) (2020-05-04) +## [1.1.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.1-alpha.0...@sls-next/lambda-at-edge@1.1.1) (2020-05-04) **Note:** Version bump only for package @sls-next/lambda-at-edge -## [1.1.1-alpha.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0...@sls-next/lambda-at-edge@1.1.1-alpha.0) (2020-05-03) +## [1.1.1-alpha.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0...@sls-next/lambda-at-edge@1.1.1-alpha.0) (2020-05-03) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.1.0](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0-alpha.2...@sls-next/lambda-at-edge@1.1.0) (2020-04-25) +# [1.1.0](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0-alpha.2...@sls-next/lambda-at-edge@1.1.0) (2020-04-25) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.1.0-alpha.2](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0-alpha.1...@sls-next/lambda-at-edge@1.1.0-alpha.2) (2020-04-23) +# [1.1.0-alpha.2](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0-alpha.1...@sls-next/lambda-at-edge@1.1.0-alpha.2) (2020-04-23) **Note:** Version bump only for package @sls-next/lambda-at-edge -# [1.1.0-alpha.1](https://github.com/danielcondemarin/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0-alpha.0...@sls-next/lambda-at-edge@1.1.0-alpha.1) (2020-04-23) +# [1.1.0-alpha.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.1.0-alpha.0...@sls-next/lambda-at-edge@1.1.0-alpha.1) (2020-04-23) **Note:** Version bump only for package @sls-next/lambda-at-edge @@ -212,4 +1191,4 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ### Features -- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/danielcondemarin/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) +- **lambda-at-edge:** create new package with Lambda@Edge builder and handlers ([94f0a29](https://github.com/serverless-nextjs/serverless-next.js/commit/94f0a29f0654f51d60653c8218c15802b2abb476)) diff --git a/packages/libs/lambda-at-edge/LICENSE b/packages/libs/lambda-at-edge/LICENSE new file mode 100644 index 0000000000..bc4335ca30 --- /dev/null +++ b/packages/libs/lambda-at-edge/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Daniel Conde Marin + +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/packages/libs/lambda-at-edge/README.md b/packages/libs/lambda-at-edge/README.md index c1ec10a62a..8cea6c6537 100644 --- a/packages/libs/lambda-at-edge/README.md +++ b/packages/libs/lambda-at-edge/README.md @@ -1,4 +1,4 @@ -### AWS Lambda@Edge library to help you deploy serverless next.js applications to CloudFront +### AWS Lambda@ Edge library to help you deploy serverless next.js applications to CloudFront This library was created to decouple the core logic of deploying serverless rendered next.js applications on the Cloud agnostic of a specific provider. In other words, this library could be used to deploy via serverles components, AWS CDK, or any other providers you'd like. @@ -6,7 +6,7 @@ This library was created to decouple the core logic of deploying serverless rend ``` const path = require('path'); -const { Builder } = require("@sls-next/lambda-at-edge"); +const { Builder } = require("@getjerry/lambda-at-edge"); const nextConfigDir = '/dir/to/my/nextapp'; const outputDir = path.join(nextConfigDir, ".serverless_nextjs"); diff --git a/packages/libs/lambda-at-edge/package.json b/packages/libs/lambda-at-edge/package.json index 3d797c3450..f022119ce9 100644 --- a/packages/libs/lambda-at-edge/package.json +++ b/packages/libs/lambda-at-edge/package.json @@ -1,22 +1,26 @@ { - "name": "@sls-next/lambda-at-edge", + "name": "@getjerry/lambda-at-edge", "publishConfig": { "access": "public" }, - "version": "1.6.0-alpha.7", - "description": "Provides handlers that can be used in CloudFront Lambda@Edge to deploy next.js applications to the edge", + "version": "1.20.0-alpha.102", + "description": "Provides handlers that can be used in CloudFront Lambda@Edge to deploy next.js applications to the edge.", "main": "dist/index.js", "types": "dist/index.d.ts", + "bin": { + "build-lambda-at-edge": "dist/command.js" + }, "scripts": { "prepare": "yarn build", - "build": "rollup --config && tsc -p tsconfig.build.json" + "copy-sharp-modules": "ts-node scripts/copy-sharp-modules.ts", + "build": "rollup --config && tsc -p tsconfig.build.json && yarn copy-sharp-modules" }, "files": [ "dist" ], "repository": { "type": "git", - "url": "git+https://github.com/danielcondemarin/serverless-next.js.git", + "url": "git+https://github.com/getjerry/serverless-next.js.git", "directory": "packages/libs/lambda-at-edge" }, "keywords": [ @@ -25,36 +29,63 @@ "Next.js" ], "author": "Daniel Conde Marin ", - "license": "ISC", + "license": "MIT", "bugs": { - "url": "https://github.com/danielcondemarin/serverless-next.js/issues" + "url": "https://github.com/getjerry/serverless-next.js/issues" }, - "homepage": "https://github.com/danielcondemarin/serverless-next.js#readme", + "homepage": "https://github.com/getjerry/serverless-next.js#readme", "devDependencies": { - "@rollup/plugin-commonjs": "^15.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^9.0.0", - "@types/aws-lambda": "^8.10.57", + "@rollup/plugin-commonjs": "18.1.0", + "@rollup/plugin-json": "4.1.0", + "@rollup/plugin-node-resolve": "10.0.0", + "@types/aws-lambda": "^8.10.67", "@types/cookie": "^0.4.0", "@types/execa": "^2.0.0", + "@types/fresh": "^0.5.0", "@types/fs-extra": "^9.0.1", "@types/jsonwebtoken": "^8.5.0", + "@types/klaw": "^3.0.1", "@types/node": "^14.0.14", + "@types/node-fetch": "^2.5.7", "@types/path-to-regexp": "^1.7.0", - "path-to-regexp": "^6.1.0", + "@types/send": "^0.14.5", + "@types/sharp": "^0.26.1", + "@types/zen-observable": "0.8.3", + "fetch-mock-jest": "^1.5.1", "rollup": "^2.26.6", "rollup-plugin-node-externals": "^2.2.0", + "rollup-plugin-terser": "^7.0.2", "rollup-plugin-typescript2": "^0.27.2", + "sharp": "^0.26.3", "ts-loader": "^7.0.5", - "typescript": "^3.9.6" + "ts-node": "^9.0.0", + "typescript": "~4.1.0" }, "dependencies": { - "@aws-sdk/client-s3": "1.0.0-gamma.8", - "@zeit/node-file-trace": "^0.6.5", + "@aws-sdk/client-cloudfront": "1.0.0-rc.3", + "@aws-sdk/client-lambda": "1.0.0-rc.3", + "@aws-sdk/client-s3": "1.0.0-rc.3", + "@hapi/accept": "5.0.1", + "@sentry/node": "7.4.1", + "@sentry/tracing": "7.4.1", + "@vercel/nft": "0.17.5", "cookie": "^0.4.1", "execa": "^4.0.2", + "fresh": "^0.5.2", "fs-extra": "^9.0.1", "get-stream": "^6.0.0", - "jsonwebtoken": "^8.5.1" - } + "graphql": "^16.5.0", + "graphql-request": "^4.2.0", + "is-animated": "^2.0.1", + "jsonwebtoken": "^8.5.1", + "klaw": "^3.0.0", + "murmurhash": "^2.0.1", + "next": "12", + "node-fetch": "^2.6.1", + "path-to-regexp": "^6.1.0", + "querystring": "0.2.0", + "send": "^0.17.1", + "zen-observable": "0.8.15" + }, + "gitHead": "ff6891ab42e8df4add318d6c67af062c15b067cd" } diff --git a/packages/libs/lambda-at-edge/rollup.config.js b/packages/libs/lambda-at-edge/rollup.config.js index 8d797c77d8..ab1d168b77 100644 --- a/packages/libs/lambda-at-edge/rollup.config.js +++ b/packages/libs/lambda-at-edge/rollup.config.js @@ -3,33 +3,55 @@ import typescript from "rollup-plugin-typescript2"; import { nodeResolve } from "@rollup/plugin-node-resolve"; import externals from "rollup-plugin-node-externals"; import json from "@rollup/plugin-json"; +import { terser } from "rollup-plugin-terser"; const LOCAL_EXTERNALS = [ "./manifest.json", "./routes-manifest.json", - "./prerender-manifest.json" + "./prerender-manifest.json", + "./images-manifest.json" +]; +const NPM_EXTERNALS = [ + "aws-lambda", + "aws-sdk/clients/s3" + // "@aws-sdk/client-lambda", + // "@aws-sdk/client-s3", + // "@aws-sdk/client-cloudfront" ]; -const NPM_EXTERNALS = ["aws-lambda", "aws-sdk/clients/s3"]; -const generateConfig = (filename) => ({ - input: `./src/${filename}.ts`, +const generateConfig = (input) => ({ + input: `./src/${input.filename}.ts`, output: { - file: `./dist/${filename}.js`, + file: `./dist/${input.filename}${input.minify ? ".min" : ""}.js`, format: "cjs" }, plugins: [ json(), commonjs(), externals({ - exclude: "@sls-next/next-aws-cloudfront" + exclude: ["@getjerry/next-aws-cloudfront"] }), nodeResolve(), typescript({ tsconfig: "tsconfig.bundle.json" - }) + }), + input.minify + ? terser({ + compress: true, + mangle: true, + output: { comments: false } // Remove all comments, which is fine as the handler code is not distributed. + }) + : undefined ], external: [...NPM_EXTERNALS, ...LOCAL_EXTERNALS], inlineDynamicImports: true }); -export default ["default-handler", "api-handler"].map(generateConfig); +export default [ + { filename: "default-handler", minify: false }, + // { filename: "default-handler", minify: true }, + { filename: "api-handler", minify: false }, + // { filename: "api-handler", minify: true }, + { filename: "image-handler", minify: false } + // { filename: "image-handler", minify: true } +].map(generateConfig); diff --git a/packages/libs/lambda-at-edge/scripts/copy-sharp-modules.ts b/packages/libs/lambda-at-edge/scripts/copy-sharp-modules.ts new file mode 100644 index 0000000000..74de4216d1 --- /dev/null +++ b/packages/libs/lambda-at-edge/scripts/copy-sharp-modules.ts @@ -0,0 +1,9 @@ +import fse from "fs-extra"; +import { join } from "path"; + +// Copy sharp node_modules to the dist directory +fse.copySync( + join(process.cwd(), "sharp_node_modules"), + join(process.cwd(), "dist", "sharp_node_modules"), + { dereference: true } +); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/.bin/detect-libc b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/detect-libc new file mode 100755 index 0000000000..5486127f92 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/detect-libc @@ -0,0 +1,18 @@ +#!/usr/bin/env node + +'use strict'; + +var spawnSync = require('child_process').spawnSync; +var libc = require('../'); + +var spawnOptions = { + env: process.env, + shell: true, + stdio: 'inherit' +}; + +if (libc.isNonGlibcLinux) { + spawnOptions.env.LIBC = process.env.LIBC || libc.family; +} + +process.exit(spawnSync(process.argv[2], process.argv.slice(3), spawnOptions).status); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/.bin/prebuild-install b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/prebuild-install new file mode 100755 index 0000000000..37597276b7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/prebuild-install @@ -0,0 +1,83 @@ +#!/usr/bin/env node + +var path = require('path') +var fs = require('fs') +var whichPmRuns = require('which-pm-runs') +var napi = require('napi-build-utils') + +var pkg = require(path.resolve('package.json')) +var rc = require('./rc')(pkg) +var log = require('./log')(rc, process.env) +var download = require('./download') +var asset = require('./asset') +var util = require('./util') + +var prebuildClientVersion = require('./package.json').version +if (rc.version) { + console.log(prebuildClientVersion) + process.exit(0) +} + +if (rc.path) process.chdir(rc.path) + +if (rc.runtime === 'electron' && rc.target[0] === '4' && rc.abi === '64') { + log.error(`Electron version ${rc.target} found - skipping prebuild-install work due to known ABI issue`) + log.error('More information about this issue can be found at https://github.com/lgeiger/node-abi/issues/54') + process.exit(1) +} + +if (!fs.existsSync('package.json')) { + log.error('setup', 'No package.json found. Aborting...') + process.exit(1) +} + +if (rc.help) { + console.error(fs.readFileSync(path.join(__dirname, 'help.txt'), 'utf-8')) + process.exit(0) +} + +log.info('begin', 'Prebuild-install version', prebuildClientVersion) + +var opts = Object.assign({}, rc, { pkg: pkg, log: log }) + +if (napi.isNapiRuntime(rc.runtime)) napi.logUnsupportedVersion(rc.target, log) + +var pm = whichPmRuns() +var isNpm = !pm || pm.name === 'npm' +var origin = util.packageOrigin(process.env, pkg) + +if (!isNpm && /node_modules/.test(process.cwd())) { + // From yarn repository +} else if (opts.force) { + log.warn('install', 'prebuilt binaries enforced with --force!') + log.warn('install', 'prebuilt binaries may be out of date!') +} else if (origin && origin.length > 4 && origin.substr(0, 4) === 'git+') { + log.info('install', 'installing from git repository, skipping download.') + process.exit(1) +} else if (opts.buildFromSource) { + log.info('install', '--build-from-source specified, not attempting download.') + process.exit(1) +} + +var startDownload = function (downloadUrl) { + download(downloadUrl, opts, function (err) { + if (err) { + log.warn('install', err.message) + return process.exit(1) + } + log.info('install', 'Successfully installed prebuilt binary!') + }) +} + +if (opts.token) { + asset(opts, function (err, assetId) { + if (err) { + log.warn('install', err.message) + return process.exit(1) + } + + startDownload(util.getAssetUrl(opts, assetId)) + }) +} else { + startDownload(util.getDownloadUrl(opts)) +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/.bin/rc b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/rc new file mode 100755 index 0000000000..ab05b6072b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/rc @@ -0,0 +1,4 @@ +#! /usr/bin/env node +var rc = require('./index') + +console.log(JSON.stringify(rc(process.argv[2]), false, 2)) diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/.bin/semver b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/semver new file mode 100755 index 0000000000..73fe29538a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/.bin/semver @@ -0,0 +1,173 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +const argv = process.argv.slice(2) + +let versions = [] + +const range = [] + +let inc = null + +const version = require('../package.json').version + +let loose = false + +let includePrerelease = false + +let coerce = false + +let rtl = false + +let identifier + +const semver = require('../') + +let reverse = false + +const options = {} + +const main = () => { + if (!argv.length) return help() + while (argv.length) { + let a = argv.shift() + const indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + a = a.slice(0, indexOfEqualSign) + argv.unshift(a.slice(indexOfEqualSign + 1)) + } + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + switch (argv[0]) { + case 'major': case 'minor': case 'patch': case 'prerelease': + case 'premajor': case 'preminor': case 'prepatch': + inc = argv.shift() + break + default: + inc = 'patch' + break + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-c': case '--coerce': + coerce = true + break + case '--rtl': + rtl = true + break + case '--ltr': + rtl = false + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + const options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl } + + versions = versions.map((v) => { + return coerce ? (semver.coerce(v, options) || { version: v }).version : v + }).filter((v) => { + return semver.valid(v) + }) + if (!versions.length) return fail() + if (inc && (versions.length !== 1 || range.length)) { return failInc() } + + for (let i = 0, l = range.length; i < l; i++) { + versions = versions.filter((v) => { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) return fail() + } + return success(versions) +} + + +const failInc = () => { + console.error('--inc can only be used on a single version with no range') + fail() +} + +const fail = () => process.exit(1) + +const success = () => { + const compare = reverse ? 'rcompare' : 'compare' + versions.sort((a, b) => { + return semver[compare](a, b, options) + }).map((v) => { + return semver.clean(v, options) + }).map((v) => { + return inc ? semver.inc(v, inc, options, identifier) : v + }).forEach((v, i, _) => { console.log(v) }) +} + +const help = () => console.log( +`SemVer ${version} + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, or prerelease. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them.`) + +main() diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/index.js new file mode 100644 index 0000000000..0f6971e677 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/index.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = function () { + return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/license b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/package.json new file mode 100644 index 0000000000..4de0a2bacc --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/package.json @@ -0,0 +1,108 @@ +{ + "_from": "ansi-regex@^2.0.0", + "_id": "ansi-regex@2.1.1", + "_inBundle": false, + "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "_location": "/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ansi-regex@^2.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/strip-ansi" + ], + "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df", + "_spec": "ansi-regex@^2.0.0", + "_where": "/var/task/node_modules/strip-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "0.17.0", + "xo": "0.16.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava --verbose", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "2.1.1", + "xo": { + "rules": { + "guard-for-in": 0, + "no-loop-func": 0 + } + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/readme.md b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/readme.md new file mode 100644 index 0000000000..fd64f9352f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ansi-regex/readme.md @@ -0,0 +1,36 @@ +# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex) + +> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) + +## Install + +``` +$ npm install --save ansi-regex +``` + +## Usage + +```js +const ansiRegex = require("ansi-regex"); + +ansiRegex().test("\u001b[4mcake\u001b[0m"); +//=> true + +ansiRegex().test("cake"); +//=> false + +"\u001b[4mcake\u001b[0m".match(ansiRegex()); +//=> ['\u001b[4m', '\u001b[0m'] +``` + +## FAQ + +### Why do you test for codes not in the ECMA 48 standard? + +Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. + +On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/aproba/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/LICENSE new file mode 100644 index 0000000000..f4be44d881 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/LICENSE @@ -0,0 +1,14 @@ +Copyright (c) 2015, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. + diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/aproba/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/README.md new file mode 100644 index 0000000000..7807a87d0a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/README.md @@ -0,0 +1,92 @@ +# aproba + +A ridiculously light-weight function argument validator + +``` +var validate = require("aproba") + +function myfunc(a, b, c) { + // `a` must be a string, `b` a number, `c` a function + validate('SNF', arguments) // [a,b,c] is also valid +} + +myfunc('test', 23, function () {}) // ok +myfunc(123, 23, function () {}) // type error +myfunc('test', 23) // missing arg error +myfunc('test', 23, function () {}, true) // too many args error + +``` + +Valid types are: + +| type | description | +| :--: | :---------------------------------------------------- | +| \* | matches any type | +| A | `Array.isArray` OR an `arguments` object | +| S | typeof == string | +| N | typeof == number | +| F | typeof == function | +| O | typeof == object and not type A and not type E | +| B | typeof == boolean | +| E | `instanceof Error` OR `null` **(special: see below)** | +| Z | == `null` | + +Validation failures throw one of three exception types, distinguished by a +`code` property of `EMISSINGARG`, `EINVALIDTYPE` or `ETOOMANYARGS`. + +If you pass in an invalid type then it will throw with a code of +`EUNKNOWNTYPE`. + +If an **error** argument is found and is not null then the remaining +arguments are optional. That is, if you say `ESO` then that's like using a +non-magical `E` in: `E|ESO|ZSO`. + +### But I have optional arguments?! + +You can provide more than one signature by separating them with pipes `|`. +If any signature matches the arguments then they'll be considered valid. + +So for example, say you wanted to write a signature for +`fs.createWriteStream`. The docs for it describe it thusly: + +``` +fs.createWriteStream(path[, options]) +``` + +This would be a signature of `SO|S`. That is, a string and and object, or +just a string. + +Now, if you read the full `fs` docs, you'll see that actually path can ALSO +be a buffer. And options can be a string, that is: + +``` +path | +options | +``` + +To reproduce this you have to fully enumerate all of the possible +combinations and that implies a signature of `SO|SS|OO|OS|S|O`. The +awkwardness is a feature: It reminds you of the complexity you're adding to +your API when you do this sort of thing. + +### Browser support + +This has no dependencies and should work in browsers, though you'll have +noisier stack traces. + +### Why this exists + +I wanted a very simple argument validator. It needed to do two things: + +1. Be more concise and easier to use than assertions + +2. Not encourage an infinite bikeshed of DSLs + +This is why types are specified by a single character and there's no such +thing as an optional argument. + +This is not intended to validate user data. This is specifically about +asserting the interface of your functions. + +If you need greater validation, I encourage you to write them by hand or +look elsewhere. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/aproba/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/index.js new file mode 100644 index 0000000000..7044448c7f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/index.js @@ -0,0 +1,182 @@ +"use strict"; + +function isArguments(thingy) { + return ( + thingy != null && + typeof thingy === "object" && + thingy.hasOwnProperty("callee") + ); +} + +var types = { + "*": { + label: "any", + check: function () { + return true; + } + }, + A: { + label: "array", + check: function (thingy) { + return Array.isArray(thingy) || isArguments(thingy); + } + }, + S: { + label: "string", + check: function (thingy) { + return typeof thingy === "string"; + } + }, + N: { + label: "number", + check: function (thingy) { + return typeof thingy === "number"; + } + }, + F: { + label: "function", + check: function (thingy) { + return typeof thingy === "function"; + } + }, + O: { + label: "object", + check: function (thingy) { + return ( + typeof thingy === "object" && + thingy != null && + !types.A.check(thingy) && + !types.E.check(thingy) + ); + } + }, + B: { + label: "boolean", + check: function (thingy) { + return typeof thingy === "boolean"; + } + }, + E: { + label: "error", + check: function (thingy) { + return thingy instanceof Error; + } + }, + Z: { + label: "null", + check: function (thingy) { + return thingy == null; + } + } +}; + +function addSchema(schema, arity) { + var group = (arity[schema.length] = arity[schema.length] || []); + if (group.indexOf(schema) === -1) group.push(schema); +} + +var validate = (module.exports = function (rawSchemas, args) { + if (arguments.length !== 2) throw wrongNumberOfArgs(["SA"], arguments.length); + if (!rawSchemas) throw missingRequiredArg(0, "rawSchemas"); + if (!args) throw missingRequiredArg(1, "args"); + if (!types.S.check(rawSchemas)) throw invalidType(0, ["string"], rawSchemas); + if (!types.A.check(args)) throw invalidType(1, ["array"], args); + var schemas = rawSchemas.split("|"); + var arity = {}; + + schemas.forEach(function (schema) { + for (var ii = 0; ii < schema.length; ++ii) { + var type = schema[ii]; + if (!types[type]) throw unknownType(ii, type); + } + if (/E.*E/.test(schema)) throw moreThanOneError(schema); + addSchema(schema, arity); + if (/E/.test(schema)) { + addSchema(schema.replace(/E.*$/, "E"), arity); + addSchema(schema.replace(/E/, "Z"), arity); + if (schema.length === 1) addSchema("", arity); + } + }); + var matching = arity[args.length]; + if (!matching) { + throw wrongNumberOfArgs(Object.keys(arity), args.length); + } + for (var ii = 0; ii < args.length; ++ii) { + var newMatching = matching.filter(function (schema) { + var type = schema[ii]; + var typeCheck = types[type].check; + return typeCheck(args[ii]); + }); + if (!newMatching.length) { + var labels = matching + .map(function (schema) { + return types[schema[ii]].label; + }) + .filter(function (schema) { + return schema != null; + }); + throw invalidType(ii, labels, args[ii]); + } + matching = newMatching; + } +}); + +function missingRequiredArg(num) { + return newException("EMISSINGARG", "Missing required argument #" + (num + 1)); +} + +function unknownType(num, type) { + return newException( + "EUNKNOWNTYPE", + "Unknown type " + type + " in argument #" + (num + 1) + ); +} + +function invalidType(num, expectedTypes, value) { + var valueType; + Object.keys(types).forEach(function (typeCode) { + if (types[typeCode].check(value)) valueType = types[typeCode].label; + }); + return newException( + "EINVALIDTYPE", + "Argument #" + + (num + 1) + + ": Expected " + + englishList(expectedTypes) + + " but got " + + valueType + ); +} + +function englishList(list) { + return list.join(", ").replace(/, ([^,]+)$/, " or $1"); +} + +function wrongNumberOfArgs(expected, got) { + var english = englishList(expected); + var args = expected.every(function (ex) { + return ex.length === 1; + }) + ? "argument" + : "arguments"; + return newException( + "EWRONGARGCOUNT", + "Expected " + english + " " + args + " but got " + got + ); +} + +function moreThanOneError(schema) { + return newException( + "ETOOMANYERRORTYPES", + 'Only one error type per argument signature is allowed, more than one found in "' + + schema + + '"' + ); +} + +function newException(code, msg) { + var e = new Error(msg); + e.code = code; + if (Error.captureStackTrace) Error.captureStackTrace(e, validate); + return e; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/aproba/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/package.json new file mode 100644 index 0000000000..4c01a310a7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/aproba/package.json @@ -0,0 +1,62 @@ +{ + "_from": "aproba@^1.0.3", + "_id": "aproba@1.2.0", + "_inBundle": false, + "_integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "_location": "/aproba", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "aproba@^1.0.3", + "name": "aproba", + "escapedName": "aproba", + "rawSpec": "^1.0.3", + "saveSpec": null, + "fetchSpec": "^1.0.3" + }, + "_requiredBy": [ + "/gauge" + ], + "_resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "_shasum": "6802e6264efd18c790a1b0d517f0f2627bf2c94a", + "_spec": "aproba@^1.0.3", + "_where": "/var/task/node_modules/gauge", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org" + }, + "bugs": { + "url": "https://github.com/iarna/aproba/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "A ridiculously light-weight argument validator (now browser friendly)", + "devDependencies": { + "standard": "^10.0.3", + "tap": "^10.0.2" + }, + "directories": { + "test": "test" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/iarna/aproba", + "keywords": [ + "argument", + "validate" + ], + "license": "ISC", + "main": "index.js", + "name": "aproba", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/aproba.git" + }, + "scripts": { + "test": "standard && tap -j3 test/*.js" + }, + "version": "1.2.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/CHANGES.md b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/CHANGES.md new file mode 100644 index 0000000000..d032df7abf --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/CHANGES.md @@ -0,0 +1,37 @@ +Hi, figured we could actually use a changelog now: + +## 1.1.5 2018-05-24 + +- [#92](https://github.com/iarna/are-we-there-yet/pull/92) Fix bug where + `finish` would throw errors when including `TrackerStream` objects in + `TrackerGroup` collections. (@brianloveswords) + +## 1.1.4 2017-04-21 + +- Fix typo in package.json + +## 1.1.3 2017-04-21 + +- Improve documentation and limit files included in the distribution. + +## 1.1.2 2016-03-15 + +- Add tracker group cycle detection and tests for it + +## 1.1.1 2016-01-29 + +- Fix a typo in stream completion tracker + +## 1.1.0 2016-01-29 + +- Rewrote completion percent computation to be low impact– no more walking a + tree of completion groups every time we need this info. Previously, with + medium sized tree of completion groups, even a relatively modest number of + calls to the top level `completed()` method would result in absurd numbers + of calls overall as it walked down the tree. We now, instead, keep track as + we bubble up changes, so the computation is limited to when data changes and + to the depth of that one branch, instead of _every_ node. (Plus, we were already + incurring _this_ cost, since we already bubbled out changes.) +- Moved different tracker types out to their own files. +- Made tests test for TOO MANY events too. +- Standarized the source code formatting diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/LICENSE new file mode 100644 index 0000000000..af4588069d --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/LICENSE @@ -0,0 +1,5 @@ +Copyright (c) 2015, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +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. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/README.md new file mode 100644 index 0000000000..5b26e655bd --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/README.md @@ -0,0 +1,190 @@ +## are-we-there-yet + +Track complex hiearchies of asynchronous task completion statuses. This is +intended to give you a way of recording and reporting the progress of the big +recursive fan-out and gather type workflows that are so common in async. + +What you do with this completion data is up to you, but the most common use case is to +feed it to one of the many progress bar modules. + +Most progress bar modules include a rudamentary version of this, but my +needs were more complex. + +# Usage + +```javascript +var TrackerGroup = require("are-we-there-yet").TrackerGroup; + +var top = new TrackerGroup("program"); + +var single = top.newItem("one thing", 100); +single.completeWork(20); + +console.log(top.completed()); // 0.2 + +fs.stat("file", function (er, stat) { + if (er) throw er; + var stream = top.newStream("file", stat.size); + console.log(top.completed()); // now 0.1 as single is 50% of the job and is 20% complete + // and 50% * 20% == 10% + fs.createReadStream("file") + .pipe(stream) + .on("data", function (chunk) { + // do stuff with chunk + }); + top.on("change", function (name) { + // called each time a chunk is read from "file" + // top.completed() will start at 0.1 and fill up to 0.6 as the file is read + }); +}); +``` + +# Shared Methods + +- var completed = tracker.completed() + +Implemented in: `Tracker`, `TrackerGroup`, `TrackerStream` + +Returns the ratio of completed work to work to be done. Range of 0 to 1. + +- tracker.finish() + +Implemented in: `Tracker`, `TrackerGroup` + +Marks the tracker as completed. With a TrackerGroup this marks all of its +components as completed. + +Marks all of the components of this tracker as finished, which in turn means +that `tracker.completed()` for this will now be 1. + +This will result in one or more `change` events being emitted. + +# Events + +All tracker objects emit `change` events with the following arguments: + +``` +function (name, completed, tracker) +``` + +`name` is the name of the tracker that originally emitted the event, +or if it didn't have one, the first containing tracker group that had one. + +`completed` is the percent complete (as returned by `tracker.completed()` method). + +`tracker` is the tracker object that you are listening for events on. + +# TrackerGroup + +- var tracker = new TrackerGroup(**name**) + + - **name** _(optional)_ - The name of this tracker group, used in change + notifications if the component updating didn't have a name. Defaults to undefined. + +Creates a new empty tracker aggregation group. These are trackers whose +completion status is determined by the completion status of other trackers. + +- tracker.addUnit(**otherTracker**, **weight**) + + - **otherTracker** - Any of the other are-we-there-yet tracker objects + - **weight** _(optional)_ - The weight to give the tracker, defaults to 1. + +Adds the **otherTracker** to this aggregation group. The weight determines +how long you expect this tracker to take to complete in proportion to other +units. So for instance, if you add one tracker with a weight of 1 and +another with a weight of 2, you're saying the second will take twice as long +to complete as the first. As such, the first will account for 33% of the +completion of this tracker and the second will account for the other 67%. + +Returns **otherTracker**. + +- var subGroup = tracker.newGroup(**name**, **weight**) + +The above is exactly equivalent to: + +```javascript +var subGroup = tracker.addUnit(new TrackerGroup(name), weight); +``` + +- var subItem = tracker.newItem(**name**, **todo**, **weight**) + +The above is exactly equivalent to: + +```javascript +var subItem = tracker.addUnit(new Tracker(name, todo), weight); +``` + +- var subStream = tracker.newStream(**name**, **todo**, **weight**) + +The above is exactly equivalent to: + +```javascript +var subStream = tracker.addUnit(new TrackerStream(name, todo), weight); +``` + +- console.log( tracker.debug() ) + +Returns a tree showing the completion of this tracker group and all of its +children, including recursively entering all of the children. + +# Tracker + +- var tracker = new Tracker(**name**, **todo**) + + - **name** _(optional)_ The name of this counter to report in change + events. Defaults to undefined. + - **todo** _(optional)_ The amount of work todo (a number). Defaults to 0. + +Ordinarily these are constructed as a part of a tracker group (via +`newItem`). + +- var completed = tracker.completed() + +Returns the ratio of completed work to work to be done. Range of 0 to 1. If +total work to be done is 0 then it will return 0. + +- tracker.addWork(**todo**) + + - **todo** A number to add to the amount of work to be done. + +Increases the amount of work to be done, thus decreasing the completion +percentage. Triggers a `change` event. + +- tracker.completeWork(**completed**) + + - **completed** A number to add to the work complete + +Increase the amount of work complete, thus increasing the completion percentage. +Will never increase the work completed past the amount of work todo. That is, +percentages > 100% are not allowed. Triggers a `change` event. + +- tracker.finish() + +Marks this tracker as finished, tracker.completed() will now be 1. Triggers +a `change` event. + +# TrackerStream + +- var tracker = new TrackerStream(**name**, **size**, **options**) + + - **name** _(optional)_ The name of this counter to report in change + events. Defaults to undefined. + - **size** _(optional)_ The number of bytes being sent through this stream. + - **options** _(optional)_ A hash of stream options + +The tracker stream object is a pass through stream that updates an internal +tracker object each time a block passes through. It's intended to track +downloads, file extraction and other related activities. You use it by piping +your data source into it and then using it as your data source. + +If your data has a length attribute then that's used as the amount of work +completed when the chunk is passed through. If it does not (eg, object +streams) then each chunk counts as completing 1 unit of work, so your size +should be the total number of objects being streamed. + +- tracker.addWork(**todo**) + + - **todo** Increase the expected overall size by **todo** bytes. + +Increases the amount of work to be done, thus decreasing the completion +percentage. Triggers a `change` event. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/index.js new file mode 100644 index 0000000000..7338193b46 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/index.js @@ -0,0 +1,4 @@ +"use strict"; +exports.TrackerGroup = require("./tracker-group.js"); +exports.Tracker = require("./tracker.js"); +exports.TrackerStream = require("./tracker-stream.js"); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/package.json new file mode 100644 index 0000000000..07533ef182 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/package.json @@ -0,0 +1,63 @@ +{ + "_from": "are-we-there-yet@~1.1.2", + "_id": "are-we-there-yet@1.1.5", + "_inBundle": false, + "_integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "_location": "/are-we-there-yet", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "are-we-there-yet@~1.1.2", + "name": "are-we-there-yet", + "escapedName": "are-we-there-yet", + "rawSpec": "~1.1.2", + "saveSpec": null, + "fetchSpec": "~1.1.2" + }, + "_requiredBy": [ + "/npmlog" + ], + "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "_shasum": "4b35c2944f062a8bfcda66410760350fe9ddfc21", + "_spec": "are-we-there-yet@~1.1.2", + "_where": "/var/task/node_modules/npmlog", + "author": { + "name": "Rebecca Turner", + "url": "http://re-becca.org" + }, + "bugs": { + "url": "https://github.com/iarna/are-we-there-yet/issues" + }, + "bundleDependencies": false, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "deprecated": false, + "description": "Keep track of the overall completion of many disparate processes", + "devDependencies": { + "standard": "^11.0.1", + "tap": "^12.0.1" + }, + "files": [ + "index.js", + "tracker-base.js", + "tracker-group.js", + "tracker-stream.js", + "tracker.js", + "CHANGES.md" + ], + "homepage": "https://github.com/iarna/are-we-there-yet", + "license": "ISC", + "main": "index.js", + "name": "are-we-there-yet", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/are-we-there-yet.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "1.1.5" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-base.js b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-base.js new file mode 100644 index 0000000000..d7211b6cd5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-base.js @@ -0,0 +1,11 @@ +"use strict"; +var EventEmitter = require("events").EventEmitter; +var util = require("util"); + +var trackerId = 0; +var TrackerBase = (module.exports = function (name) { + EventEmitter.call(this); + this.id = ++trackerId; + this.name = name; +}); +util.inherits(TrackerBase, EventEmitter); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-group.js b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-group.js new file mode 100644 index 0000000000..baa650563a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-group.js @@ -0,0 +1,116 @@ +"use strict"; +var util = require("util"); +var TrackerBase = require("./tracker-base.js"); +var Tracker = require("./tracker.js"); +var TrackerStream = require("./tracker-stream.js"); + +var TrackerGroup = (module.exports = function (name) { + TrackerBase.call(this, name); + this.parentGroup = null; + this.trackers = []; + this.completion = {}; + this.weight = {}; + this.totalWeight = 0; + this.finished = false; + this.bubbleChange = bubbleChange(this); +}); +util.inherits(TrackerGroup, TrackerBase); + +function bubbleChange(trackerGroup) { + return function (name, completed, tracker) { + trackerGroup.completion[tracker.id] = completed; + if (trackerGroup.finished) return; + trackerGroup.emit( + "change", + name || trackerGroup.name, + trackerGroup.completed(), + trackerGroup + ); + }; +} + +TrackerGroup.prototype.nameInTree = function () { + var names = []; + var from = this; + while (from) { + names.unshift(from.name); + from = from.parentGroup; + } + return names.join("/"); +}; + +TrackerGroup.prototype.addUnit = function (unit, weight) { + if (unit.addUnit) { + var toTest = this; + while (toTest) { + if (unit === toTest) { + throw new Error( + "Attempted to add tracker group " + + unit.name + + " to tree that already includes it " + + this.nameInTree(this) + ); + } + toTest = toTest.parentGroup; + } + unit.parentGroup = this; + } + this.weight[unit.id] = weight || 1; + this.totalWeight += this.weight[unit.id]; + this.trackers.push(unit); + this.completion[unit.id] = unit.completed(); + unit.on("change", this.bubbleChange); + if (!this.finished) + this.emit("change", unit.name, this.completion[unit.id], unit); + return unit; +}; + +TrackerGroup.prototype.completed = function () { + if (this.trackers.length === 0) return 0; + var valPerWeight = 1 / this.totalWeight; + var completed = 0; + for (var ii = 0; ii < this.trackers.length; ii++) { + var trackerId = this.trackers[ii].id; + completed += + valPerWeight * this.weight[trackerId] * this.completion[trackerId]; + } + return completed; +}; + +TrackerGroup.prototype.newGroup = function (name, weight) { + return this.addUnit(new TrackerGroup(name), weight); +}; + +TrackerGroup.prototype.newItem = function (name, todo, weight) { + return this.addUnit(new Tracker(name, todo), weight); +}; + +TrackerGroup.prototype.newStream = function (name, todo, weight) { + return this.addUnit(new TrackerStream(name, todo), weight); +}; + +TrackerGroup.prototype.finish = function () { + this.finished = true; + if (!this.trackers.length) this.addUnit(new Tracker(), 1, true); + for (var ii = 0; ii < this.trackers.length; ii++) { + var tracker = this.trackers[ii]; + tracker.finish(); + tracker.removeListener("change", this.bubbleChange); + } + this.emit("change", this.name, 1, this); +}; + +var buffer = " "; +TrackerGroup.prototype.debug = function (depth) { + depth = depth || 0; + var indent = depth ? buffer.substr(0, depth) : ""; + var output = indent + (this.name || "top") + ": " + this.completed() + "\n"; + this.trackers.forEach(function (tracker) { + if (tracker instanceof TrackerGroup) { + output += tracker.debug(depth + 1); + } else { + output += indent + " " + tracker.name + ": " + tracker.completed() + "\n"; + } + }); + return output; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-stream.js b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-stream.js new file mode 100644 index 0000000000..a36aee6647 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker-stream.js @@ -0,0 +1,36 @@ +"use strict"; +var util = require("util"); +var stream = require("readable-stream"); +var delegate = require("delegates"); +var Tracker = require("./tracker.js"); + +var TrackerStream = (module.exports = function (name, size, options) { + stream.Transform.call(this, options); + this.tracker = new Tracker(name, size); + this.name = name; + this.id = this.tracker.id; + this.tracker.on("change", delegateChange(this)); +}); +util.inherits(TrackerStream, stream.Transform); + +function delegateChange(trackerStream) { + return function (name, completion, tracker) { + trackerStream.emit("change", name, completion, trackerStream); + }; +} + +TrackerStream.prototype._transform = function (data, encoding, cb) { + this.tracker.completeWork(data.length ? data.length : 1); + this.push(data); + cb(); +}; + +TrackerStream.prototype._flush = function (cb) { + this.tracker.finish(); + cb(); +}; + +delegate(TrackerStream.prototype, "tracker") + .method("completed") + .method("addWork") + .method("finish"); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker.js b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker.js new file mode 100644 index 0000000000..3b280fa3d5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/are-we-there-yet/tracker.js @@ -0,0 +1,30 @@ +"use strict"; +var util = require("util"); +var TrackerBase = require("./tracker-base.js"); + +var Tracker = (module.exports = function (name, todo) { + TrackerBase.call(this, name); + this.workDone = 0; + this.workTodo = todo || 0; +}); +util.inherits(Tracker, TrackerBase); + +Tracker.prototype.completed = function () { + return this.workTodo === 0 ? 0 : this.workDone / this.workTodo; +}; + +Tracker.prototype.addWork = function (work) { + this.workTodo += work; + this.emit("change", this.name, this.completed(), this); +}; + +Tracker.prototype.completeWork = function (work) { + this.workDone += work; + if (this.workDone > this.workTodo) this.workDone = this.workTodo; + this.emit("change", this.name, this.completed(), this); +}; + +Tracker.prototype.finish = function () { + this.workTodo = this.workDone = 1; + this.emit("change", this.name, 1, this); +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/LICENSE new file mode 100644 index 0000000000..983fbe8aec --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +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/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/README.md new file mode 100644 index 0000000000..06b711f449 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/README.md @@ -0,0 +1,43 @@ +# Array Flatten + +[![NPM version][npm-image]][npm-url] +[![NPM downloads][downloads-image]][downloads-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] +[![Bundle size][bundlephobia-image]][bundlephobia-url] + +> Flatten nested arrays. + +## Installation + +``` +npm install array-flatten --save +``` + +## Usage + +```js +import { flatten } from "array-flatten"; + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]); +//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] + +(function () { + flatten(arguments); //=> [1, 2, 3] +})(1, [2, 3]); +``` + +## License + +MIT + +[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat +[npm-url]: https://npmjs.org/package/array-flatten +[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat +[downloads-url]: https://npmjs.org/package/array-flatten +[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat +[travis-url]: https://travis-ci.org/blakeembrey/array-flatten +[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat +[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master +[bundlephobia-image]: https://img.shields.io/bundlephobia/minzip/array-flatten.svg +[bundlephobia-url]: https://bundlephobia.com/result?p=array-flatten diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.js new file mode 100644 index 0000000000..18f7baf4dc --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.js @@ -0,0 +1,22 @@ +/** + * Flatten an array indefinitely. + */ +export function flatten(array) { + var result = []; + $flatten(array, result); + return result; +} +/** + * Internal flatten function recursively passes `result`. + */ +function $flatten(array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i]; + if (Array.isArray(value)) { + $flatten(value, result); + } else { + result.push(value); + } + } +} +//# sourceMappingURL=index.js.map diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.js.map b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.js.map new file mode 100644 index 0000000000..c49f36c2c5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,UAAU,OAAO,CAA2B,KAAQ;IACxD,IAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,QAAQ,CAAI,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,KAAQ,EACR,MAAoB;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,QAAQ,CAAC,KAAY,EAAE,MAAM,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;KACF;AACH,CAAC","sourcesContent":["/**\n * Pick the value from an array.\n */\nexport type PickValue = T extends ReadonlyArray\n ? {\n [K in Extract]: PickValue;\n }[number]\n : T;\n\n/**\n * Flatten an `ArrayLike` object in TypeScript.\n */\nexport type FlatArray> = Array>;\n\n/**\n * Flatten an array indefinitely.\n */\nexport function flatten>(array: T): FlatArray {\n const result: FlatArray = [];\n $flatten(array, result);\n return result;\n}\n\n/**\n * Internal flatten function recursively passes `result`.\n */\nfunction $flatten>(\n array: T,\n result: FlatArray\n): void {\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n if (Array.isArray(value)) {\n $flatten(value as any, result);\n } else {\n result.push(value);\n }\n }\n}\n"]} \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.spec.js b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.spec.js new file mode 100644 index 0000000000..7198bd47d3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.spec.js @@ -0,0 +1,44 @@ +import { expectType } from "ts-expect"; +import { flatten } from "./index"; +describe("flatten", function () { + it("should flatten an array", function () { + var result = flatten([1, [2, [3, [4, [5]]], 6, [[7], 8], 9], 10]); + expectType(result); + expect(result).toStrictEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + }); + it("should work with array-like", function () { + var result = flatten("test"); + expectType(result); + expect(result).toStrictEqual(["t", "e", "s", "t"]); + }); + it("should work with readonly array", function () { + var input = [1, [2, [3, [4]]]]; + var result = flatten(input); + expectType(result); + expect(result).toStrictEqual([1, 2, 3, 4]); + }); + it("should work with arguments", function () { + var input = (function () { + return arguments; + })(); + var result = flatten(input); + expectType(result); + expect(result).toStrictEqual([]); + }); + it("should work with mixed types", function () { + var fn = function (x) { + return x; + }; + var input = [1, ["test", [fn, [true]]]]; + var result = flatten(input); + expectType(result); + expect(result).toStrictEqual([1, "test", fn, true]); + }); + it("should work with tuples", function () { + var input = [1, [1, 2], [3]]; + var result = flatten(input); + expectType(result); + expect(result).toStrictEqual([1, 1, 2, 3]); + }); +}); +//# sourceMappingURL=index.spec.js.map diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.spec.js.map b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.spec.js.map new file mode 100644 index 0000000000..3cf0329441 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist.es2015/index.spec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,QAAQ,CAAC,SAAS,EAAE;IAClB,EAAE,CAAC,yBAAyB,EAAE;QAC5B,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpE,UAAU,CAAW,MAAM,CAAC,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE;QAChC,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/B,UAAU,CAAW,MAAM,CAAC,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE;QACpC,IAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC;QAC1C,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,UAAU,CAAoB,MAAM,CAAC,CAAC;QAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAC/B,IAAM,KAAK,GAAG,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,EAAE,CAAC;QACL,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,UAAU,CAAQ,MAAM,CAAC,CAAC;QAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE;QACjC,IAAM,EAAE,GAAG,UAAC,CAAS,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC;QAC5B,IAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,UAAU,CAA4C,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE;QAC5B,IAAM,KAAK,GAAyC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,UAAU,CAAW,MAAM,CAAC,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expectType } from \"ts-expect\";\nimport { flatten } from \"./index\";\n\ndescribe(\"flatten\", () => {\n it(\"should flatten an array\", () => {\n const result = flatten([1, [2, [3, [4, [5]]], 6, [[7], 8], 9], 10]);\n\n expectType(result);\n\n expect(result).toStrictEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n\n it(\"should work with array-like\", () => {\n const result = flatten(\"test\");\n\n expectType(result);\n\n expect(result).toStrictEqual([\"t\", \"e\", \"s\", \"t\"]);\n });\n\n it(\"should work with readonly array\", () => {\n const input = [1, [2, [3, [4]]]] as const;\n const result = flatten(input);\n\n expectType<(1 | 2 | 3 | 4)[]>(result);\n\n expect(result).toStrictEqual([1, 2, 3, 4]);\n });\n\n it(\"should work with arguments\", () => {\n const input = (function() {\n return arguments;\n })();\n const result = flatten(input);\n\n expectType(result);\n\n expect(result).toStrictEqual([]);\n });\n\n it(\"should work with mixed types\", () => {\n const fn = (x: string) => x;\n const input = [1, [\"test\", [fn, [true]]]];\n const result = flatten(input);\n\n expectType<(number | string | boolean | typeof fn)[]>(result);\n\n expect(result).toStrictEqual([1, \"test\", fn, true]);\n });\n\n it(\"should work with tuples\", () => {\n const input: [number, [number, number], [number]] = [1, [1, 2], [3]];\n const result = flatten(input);\n\n expectType(result);\n\n expect(result).toStrictEqual([1, 1, 2, 3]);\n });\n});\n"]} \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.d.ts b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.d.ts new file mode 100644 index 0000000000..c2607c1094 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.d.ts @@ -0,0 +1,20 @@ +/** + * Pick the value from an array. + */ +export declare type PickValue = T extends ReadonlyArray + ? { + [K in Extract]: PickValue; + }[number] + : T; +/** + * Flatten an `ArrayLike` object in TypeScript. + */ +export declare type FlatArray> = Array< + PickValue +>; +/** + * Flatten an array indefinitely. + */ +export declare function flatten>( + array: T +): FlatArray; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.js new file mode 100644 index 0000000000..7b53b9cbc0 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Flatten an array indefinitely. + */ +function flatten(array) { + var result = []; + $flatten(array, result); + return result; +} +exports.flatten = flatten; +/** + * Internal flatten function recursively passes `result`. + */ +function $flatten(array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i]; + if (Array.isArray(value)) { + $flatten(value, result); + } else { + result.push(value); + } + } +} +//# sourceMappingURL=index.js.map diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.js.map b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.js.map new file mode 100644 index 0000000000..3ab13a8dc1 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAcA;;GAEG;AACH,SAAgB,OAAO,CAA2B,KAAQ;IACxD,IAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,QAAQ,CAAI,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC;AAChB,CAAC;AAJD,0BAIC;AAED;;GAEG;AACH,SAAS,QAAQ,CACf,KAAQ,EACR,MAAoB;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,QAAQ,CAAC,KAAY,EAAE,MAAM,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;KACF;AACH,CAAC","sourcesContent":["/**\n * Pick the value from an array.\n */\nexport type PickValue = T extends ReadonlyArray\n ? {\n [K in Extract]: PickValue;\n }[number]\n : T;\n\n/**\n * Flatten an `ArrayLike` object in TypeScript.\n */\nexport type FlatArray> = Array>;\n\n/**\n * Flatten an array indefinitely.\n */\nexport function flatten>(array: T): FlatArray {\n const result: FlatArray = [];\n $flatten(array, result);\n return result;\n}\n\n/**\n * Internal flatten function recursively passes `result`.\n */\nfunction $flatten>(\n array: T,\n result: FlatArray\n): void {\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n if (Array.isArray(value)) {\n $flatten(value as any, result);\n } else {\n result.push(value);\n }\n }\n}\n"]} \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.d.ts b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.d.ts new file mode 100644 index 0000000000..cb0ff5c3b5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.js b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.js new file mode 100644 index 0000000000..e379536878 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ts_expect_1 = require("ts-expect"); +var index_1 = require("./index"); +describe("flatten", function () { + it("should flatten an array", function () { + var result = index_1.flatten([1, [2, [3, [4, [5]]], 6, [[7], 8], 9], 10]); + ts_expect_1.expectType(result); + expect(result).toStrictEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + }); + it("should work with array-like", function () { + var result = index_1.flatten("test"); + ts_expect_1.expectType(result); + expect(result).toStrictEqual(["t", "e", "s", "t"]); + }); + it("should work with readonly array", function () { + var input = [1, [2, [3, [4]]]]; + var result = index_1.flatten(input); + ts_expect_1.expectType(result); + expect(result).toStrictEqual([1, 2, 3, 4]); + }); + it("should work with arguments", function () { + var input = (function () { + return arguments; + })(); + var result = index_1.flatten(input); + ts_expect_1.expectType(result); + expect(result).toStrictEqual([]); + }); + it("should work with mixed types", function () { + var fn = function (x) { + return x; + }; + var input = [1, ["test", [fn, [true]]]]; + var result = index_1.flatten(input); + ts_expect_1.expectType(result); + expect(result).toStrictEqual([1, "test", fn, true]); + }); + it("should work with tuples", function () { + var input = [1, [1, 2], [3]]; + var result = index_1.flatten(input); + ts_expect_1.expectType(result); + expect(result).toStrictEqual([1, 1, 2, 3]); + }); +}); +//# sourceMappingURL=index.spec.js.map diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.js.map b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.js.map new file mode 100644 index 0000000000..4d10f1dd36 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/dist/index.spec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";;AAAA,uCAAuC;AACvC,iCAAkC;AAElC,QAAQ,CAAC,SAAS,EAAE;IAClB,EAAE,CAAC,yBAAyB,EAAE;QAC5B,IAAM,MAAM,GAAG,eAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpE,sBAAU,CAAW,MAAM,CAAC,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE;QAChC,IAAM,MAAM,GAAG,eAAO,CAAC,MAAM,CAAC,CAAC;QAE/B,sBAAU,CAAW,MAAM,CAAC,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE;QACpC,IAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC;QAC1C,IAAM,MAAM,GAAG,eAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,sBAAU,CAAoB,MAAM,CAAC,CAAC;QAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAC/B,IAAM,KAAK,GAAG,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,EAAE,CAAC;QACL,IAAM,MAAM,GAAG,eAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,sBAAU,CAAQ,MAAM,CAAC,CAAC;QAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE;QACjC,IAAM,EAAE,GAAG,UAAC,CAAS,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC;QAC5B,IAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAM,MAAM,GAAG,eAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,sBAAU,CAA4C,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE;QAC5B,IAAM,KAAK,GAAyC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAM,MAAM,GAAG,eAAO,CAAC,KAAK,CAAC,CAAC;QAE9B,sBAAU,CAAW,MAAM,CAAC,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expectType } from \"ts-expect\";\nimport { flatten } from \"./index\";\n\ndescribe(\"flatten\", () => {\n it(\"should flatten an array\", () => {\n const result = flatten([1, [2, [3, [4, [5]]], 6, [[7], 8], 9], 10]);\n\n expectType(result);\n\n expect(result).toStrictEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);\n });\n\n it(\"should work with array-like\", () => {\n const result = flatten(\"test\");\n\n expectType(result);\n\n expect(result).toStrictEqual([\"t\", \"e\", \"s\", \"t\"]);\n });\n\n it(\"should work with readonly array\", () => {\n const input = [1, [2, [3, [4]]]] as const;\n const result = flatten(input);\n\n expectType<(1 | 2 | 3 | 4)[]>(result);\n\n expect(result).toStrictEqual([1, 2, 3, 4]);\n });\n\n it(\"should work with arguments\", () => {\n const input = (function() {\n return arguments;\n })();\n const result = flatten(input);\n\n expectType(result);\n\n expect(result).toStrictEqual([]);\n });\n\n it(\"should work with mixed types\", () => {\n const fn = (x: string) => x;\n const input = [1, [\"test\", [fn, [true]]]];\n const result = flatten(input);\n\n expectType<(number | string | boolean | typeof fn)[]>(result);\n\n expect(result).toStrictEqual([1, \"test\", fn, true]);\n });\n\n it(\"should work with tuples\", () => {\n const input: [number, [number, number], [number]] = [1, [1, 2], [3]];\n const result = flatten(input);\n\n expectType(result);\n\n expect(result).toStrictEqual([1, 1, 2, 3]);\n });\n});\n"]} \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/package.json new file mode 100644 index 0000000000..e18fd75cf9 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/array-flatten/package.json @@ -0,0 +1,126 @@ +{ + "_from": "array-flatten@^3.0.0", + "_id": "array-flatten@3.0.0", + "_inBundle": false, + "_integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", + "_location": "/array-flatten", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "array-flatten@^3.0.0", + "name": "array-flatten", + "escapedName": "array-flatten", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/sharp" + ], + "_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", + "_shasum": "6428ca2ee52c7b823192ec600fa3ed2f157cd541", + "_spec": "array-flatten@^3.0.0", + "_where": "/var/task/node_modules/sharp", + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "bugs": { + "url": "https://github.com/blakeembrey/array-flatten/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Flatten nested arrays", + "devDependencies": { + "@size-limit/preset-small-lib": "^2.2.1", + "@types/jest": "^24.0.23", + "@types/node": "^12.12.11", + "benchmarked": "^2.0.0", + "husky": "^3.1.0", + "jest": "^24.9.0", + "lint-staged": "^9.4.3", + "prettier": "^1.19.1", + "ts-expect": "^1.1.0", + "ts-jest": "^24.1.0", + "tslint": "^5.20.1", + "tslint-config-prettier": "^1.18.0", + "tslint-config-standard": "^9.0.0", + "typescript": "^3.7.2" + }, + "files": [ + "dist/", + "dist.es2015/", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/array-flatten", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "jest": { + "roots": [ + "/src/" + ], + "transform": { + "\\.tsx?$": "ts-jest" + }, + "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$", + "moduleFileExtensions": [ + "ts", + "tsx", + "js", + "jsx", + "json", + "node" + ] + }, + "jsnext:main": "dist.es2015/index.js", + "keywords": [ + "array", + "flatten", + "arguments", + "depth", + "fast", + "for" + ], + "license": "MIT", + "lint-staged": { + "*.{js,json,css,md}": [ + "npm run prettier", + "git add" + ] + }, + "main": "dist/index.js", + "module": "dist.es2015/index.js", + "name": "array-flatten", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "scripts": { + "benchmark": "node benchmark", + "build": "rimraf dist/ dist.es2015/ && tsc && tsc -P tsconfig.es2015.json", + "format": "npm run prettier -- \"{.,src/**,benchmark/**}/*.{js,ts}\"", + "lint": "tslint \"src/**/*\" --project tsconfig.json", + "prepare": "npm run build", + "prettier": "prettier --write", + "size": "size-limit", + "specs": "jest --coverage", + "test": "npm run build && npm run lint && npm run specs && npm run size" + }, + "sideEffects": false, + "size-limit": [ + { + "path": "dist/index.js", + "limit": "100 B" + } + ], + "typings": "dist/index.d.ts", + "version": "3.0.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/LICENSE new file mode 100644 index 0000000000..6d52b8acfb --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Jameson Little + +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/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/README.md new file mode 100644 index 0000000000..916b848a70 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/README.md @@ -0,0 +1,33 @@ +# base64-js + +`base64-js` does basic base64 encoding/decoding in pure JS. + +[![build status](https://secure.travis-ci.org/beatgammit/base64-js.png)](http://travis-ci.org/beatgammit/base64-js) + +Many browsers already have base64 encoding/decoding functionality, but it is for text data, not all-purpose binary data. + +Sometimes encoding/decoding binary data in the browser is useful, and that is what this module does. + +## install + +With [npm](https://npmjs.org) do: + +`npm install base64-js` and `var base64js = require('base64-js')` + +For use in web browsers do: + +`` + +[Get supported base64-js with the Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-base64-js?utm_source=npm-base64-js&utm_medium=referral&utm_campaign=readme) + +## methods + +`base64js` has three exposed functions, `byteLength`, `toByteArray` and `fromByteArray`, which both take a single argument. + +- `byteLength` - Takes a base64 string and returns length of byte array +- `toByteArray` - Takes a base64 string and returns a byte array +- `fromByteArray` - Takes a byte array and returns a base64 string + +## license + +MIT diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/base64js.min.js b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/base64js.min.js new file mode 100644 index 0000000000..3a776fd2c3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/base64js.min.js @@ -0,0 +1,174 @@ +(function (a) { + if ("object" == typeof exports && "undefined" != typeof module) + module.exports = a(); + else if ("function" == typeof define && define.amd) define([], a); + else { + var b; + (b = + "undefined" == typeof window + ? "undefined" == typeof global + ? "undefined" == typeof self + ? this + : self + : global + : window), + (b.base64js = a()); + } +})(function () { + return (function () { + function b(d, e, g) { + function a(j, i) { + if (!e[j]) { + if (!d[j]) { + var f = "function" == typeof require && require; + if (!i && f) return f(j, !0); + if (h) return h(j, !0); + var c = new Error("Cannot find module '" + j + "'"); + throw ((c.code = "MODULE_NOT_FOUND"), c); + } + var k = (e[j] = { exports: {} }); + d[j][0].call( + k.exports, + function (b) { + var c = d[j][1][b]; + return a(c || b); + }, + k, + k.exports, + b, + d, + e, + g + ); + } + return e[j].exports; + } + for ( + var h = "function" == typeof require && require, c = 0; + c < g.length; + c++ + ) + a(g[c]); + return a; + } + return b; + })()( + { + "/": [ + function (a, b, c) { + "use strict"; + function d(a) { + var b = a.length; + if (0 < b % 4) + throw new Error("Invalid string. Length must be a multiple of 4"); + var c = a.indexOf("="); + -1 === c && (c = b); + var d = c === b ? 0 : 4 - (c % 4); + return [c, d]; + } + function e(a, b, c) { + return (3 * (b + c)) / 4 - c; + } + function f(a) { + var b, + c, + f = d(a), + g = f[0], + h = f[1], + j = new m(e(a, g, h)), + k = 0, + n = 0 < h ? g - 4 : g; + for (c = 0; c < n; c += 4) + (b = + (l[a.charCodeAt(c)] << 18) | + (l[a.charCodeAt(c + 1)] << 12) | + (l[a.charCodeAt(c + 2)] << 6) | + l[a.charCodeAt(c + 3)]), + (j[k++] = 255 & (b >> 16)), + (j[k++] = 255 & (b >> 8)), + (j[k++] = 255 & b); + return ( + 2 === h && + ((b = + (l[a.charCodeAt(c)] << 2) | (l[a.charCodeAt(c + 1)] >> 4)), + (j[k++] = 255 & b)), + 1 === h && + ((b = + (l[a.charCodeAt(c)] << 10) | + (l[a.charCodeAt(c + 1)] << 4) | + (l[a.charCodeAt(c + 2)] >> 2)), + (j[k++] = 255 & (b >> 8)), + (j[k++] = 255 & b)), + j + ); + } + function g(a) { + return ( + k[63 & (a >> 18)] + + k[63 & (a >> 12)] + + k[63 & (a >> 6)] + + k[63 & a] + ); + } + function h(a, b, c) { + for (var d, e = [], f = b; f < c; f += 3) + (d = + (16711680 & (a[f] << 16)) + + (65280 & (a[f + 1] << 8)) + + (255 & a[f + 2])), + e.push(g(d)); + return e.join(""); + } + function j(a) { + for ( + var b, + c = a.length, + d = c % 3, + e = [], + f = 16383, + g = 0, + j = c - d; + g < j; + g += f + ) + e.push(h(a, g, g + f > j ? j : g + f)); + return ( + 1 === d + ? ((b = a[c - 1]), e.push(k[b >> 2] + k[63 & (b << 4)] + "==")) + : 2 === d && + ((b = (a[c - 2] << 8) + a[c - 1]), + e.push( + k[b >> 10] + k[63 & (b >> 4)] + k[63 & (b << 2)] + "=" + )), + e.join("") + ); + } + (c.byteLength = function (a) { + var b = d(a), + c = b[0], + e = b[1]; + return (3 * (c + e)) / 4 - e; + }), + (c.toByteArray = f), + (c.fromByteArray = j); + for ( + var k = [], + l = [], + m = "undefined" == typeof Uint8Array ? Array : Uint8Array, + n = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + o = 0, + p = n.length; + o < p; + ++o + ) + (k[o] = n[o]), (l[n.charCodeAt(o)] = o); + (l[45] = 62), (l[95] = 63); + }, + {} + ] + }, + {}, + [] + )("/"); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/index.d.ts b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/index.d.ts new file mode 100644 index 0000000000..7d9fa1d97c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/index.d.ts @@ -0,0 +1,3 @@ +export function byteLength(b64: string): number; +export function toByteArray(b64: string): Uint8Array; +export function fromByteArray(uint8: Uint8Array): string; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/index.js new file mode 100644 index 0000000000..261cca27b5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/index.js @@ -0,0 +1,150 @@ +"use strict"; + +exports.byteLength = byteLength; +exports.toByteArray = toByteArray; +exports.fromByteArray = fromByteArray; + +var lookup = []; +var revLookup = []; +var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + +var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; +} + +// Support decoding URL-safe base64 strings, as Node.js does. +// See: https://en.wikipedia.org/wiki/Base64#URL_applications +revLookup["-".charCodeAt(0)] = 62; +revLookup["_".charCodeAt(0)] = 63; + +function getLens(b64) { + var len = b64.length; + + if (len % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf("="); + if (validLen === -1) validLen = len; + + var placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4); + + return [validLen, placeHoldersLen]; +} + +// base64 is 4/3 + up to two characters of the original data +function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen; +} + +function _byteLength(b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen; +} + +function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + + var curByte = 0; + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 ? validLen - 4 : validLen; + + var i; + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)]; + arr[curByte++] = (tmp >> 16) & 0xff; + arr[curByte++] = (tmp >> 8) & 0xff; + arr[curByte++] = tmp & 0xff; + } + + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4); + arr[curByte++] = tmp & 0xff; + } + + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2); + arr[curByte++] = (tmp >> 8) & 0xff; + arr[curByte++] = tmp & 0xff; + } + + return arr; +} + +function tripletToBase64(num) { + return ( + lookup[(num >> 18) & 0x3f] + + lookup[(num >> 12) & 0x3f] + + lookup[(num >> 6) & 0x3f] + + lookup[num & 0x3f] + ); +} + +function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xff0000) + + ((uint8[i + 1] << 8) & 0xff00) + + (uint8[i + 2] & 0xff); + output.push(tripletToBase64(tmp)); + } + return output.join(""); +} + +function fromByteArray(uint8) { + var tmp; + var len = uint8.length; + var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes + var parts = []; + var maxChunkLength = 16383; // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push( + encodeChunk( + uint8, + i, + i + maxChunkLength > len2 ? len2 : i + maxChunkLength + ) + ); + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1]; + parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3f] + "=="); + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1]; + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3f] + + lookup[(tmp << 2) & 0x3f] + + "=" + ); + } + + return parts.join(""); +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/package.json new file mode 100644 index 0000000000..68e71294f4 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/base64-js/package.json @@ -0,0 +1,75 @@ +{ + "_from": "base64-js@^1.3.1", + "_id": "base64-js@1.5.1", + "_inBundle": false, + "_integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "_location": "/base64-js", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "base64-js@^1.3.1", + "name": "base64-js", + "escapedName": "base64-js", + "rawSpec": "^1.3.1", + "saveSpec": null, + "fetchSpec": "^1.3.1" + }, + "_requiredBy": [ + "/buffer" + ], + "_resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "_shasum": "1b1b440160a5bf7ad40b650f095963481903930a", + "_spec": "base64-js@^1.3.1", + "_where": "/var/task/node_modules/buffer", + "author": { + "name": "T. Jameson Little", + "email": "t.jameson.little@gmail.com" + }, + "bugs": { + "url": "https://github.com/beatgammit/base64-js/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Base64 encoding/decoding in pure JS", + "devDependencies": { + "babel-minify": "^0.5.1", + "benchmark": "^2.1.4", + "browserify": "^16.3.0", + "standard": "*", + "tape": "4.x" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/beatgammit/base64-js", + "keywords": [ + "base64" + ], + "license": "MIT", + "main": "index.js", + "name": "base64-js", + "repository": { + "type": "git", + "url": "git://github.com/beatgammit/base64-js.git" + }, + "scripts": { + "build": "browserify -s base64js -r ./ | minify > base64js.min.js", + "lint": "standard", + "test": "npm run lint && npm run unit", + "unit": "tape test/*.js" + }, + "typings": "index.d.ts", + "version": "1.5.1" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/.travis.yml b/packages/libs/lambda-at-edge/sharp_node_modules/bl/.travis.yml new file mode 100644 index 0000000000..cd2e9c8274 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/.travis.yml @@ -0,0 +1,16 @@ +sudo: false +language: node_js +node_js: + - "6" + - "8" + - "10" + - "12" + - "14" + - lts/* +branches: + only: + - master +notifications: + email: + - rod@vagg.org + - matteo.collina@gmail.com diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/BufferList.js b/packages/libs/lambda-at-edge/sharp_node_modules/bl/BufferList.js new file mode 100644 index 0000000000..7bc87c05be --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/BufferList.js @@ -0,0 +1,400 @@ +"use strict"; + +const { Buffer } = require("buffer"); +const symbol = Symbol.for("BufferList"); + +function BufferList(buf) { + if (!(this instanceof BufferList)) { + return new BufferList(buf); + } + + BufferList._init.call(this, buf); +} + +BufferList._init = function _init(buf) { + Object.defineProperty(this, symbol, { value: true }); + + this._bufs = []; + this.length = 0; + + if (buf) { + this.append(buf); + } +}; + +BufferList.prototype._new = function _new(buf) { + return new BufferList(buf); +}; + +BufferList.prototype._offset = function _offset(offset) { + if (offset === 0) { + return [0, 0]; + } + + let tot = 0; + + for (let i = 0; i < this._bufs.length; i++) { + const _t = tot + this._bufs[i].length; + if (offset < _t || i === this._bufs.length - 1) { + return [i, offset - tot]; + } + tot = _t; + } +}; + +BufferList.prototype._reverseOffset = function (blOffset) { + const bufferId = blOffset[0]; + let offset = blOffset[1]; + + for (let i = 0; i < bufferId; i++) { + offset += this._bufs[i].length; + } + + return offset; +}; + +BufferList.prototype.get = function get(index) { + if (index > this.length || index < 0) { + return undefined; + } + + const offset = this._offset(index); + + return this._bufs[offset[0]][offset[1]]; +}; + +BufferList.prototype.slice = function slice(start, end) { + if (typeof start === "number" && start < 0) { + start += this.length; + } + + if (typeof end === "number" && end < 0) { + end += this.length; + } + + return this.copy(null, 0, start, end); +}; + +BufferList.prototype.copy = function copy(dst, dstStart, srcStart, srcEnd) { + if (typeof srcStart !== "number" || srcStart < 0) { + srcStart = 0; + } + + if (typeof srcEnd !== "number" || srcEnd > this.length) { + srcEnd = this.length; + } + + if (srcStart >= this.length) { + return dst || Buffer.alloc(0); + } + + if (srcEnd <= 0) { + return dst || Buffer.alloc(0); + } + + const copy = !!dst; + const off = this._offset(srcStart); + const len = srcEnd - srcStart; + let bytes = len; + let bufoff = (copy && dstStart) || 0; + let start = off[1]; + + // copy/slice everything + if (srcStart === 0 && srcEnd === this.length) { + if (!copy) { + // slice, but full concat if multiple buffers + return this._bufs.length === 1 + ? this._bufs[0] + : Buffer.concat(this._bufs, this.length); + } + + // copy, need to copy individual buffers + for (let i = 0; i < this._bufs.length; i++) { + this._bufs[i].copy(dst, bufoff); + bufoff += this._bufs[i].length; + } + + return dst; + } + + // easy, cheap case where it's a subset of one of the buffers + if (bytes <= this._bufs[off[0]].length - start) { + return copy + ? this._bufs[off[0]].copy(dst, dstStart, start, start + bytes) + : this._bufs[off[0]].slice(start, start + bytes); + } + + if (!copy) { + // a slice, we need something to copy in to + dst = Buffer.allocUnsafe(len); + } + + for (let i = off[0]; i < this._bufs.length; i++) { + const l = this._bufs[i].length - start; + + if (bytes > l) { + this._bufs[i].copy(dst, bufoff, start); + bufoff += l; + } else { + this._bufs[i].copy(dst, bufoff, start, start + bytes); + bufoff += l; + break; + } + + bytes -= l; + + if (start) { + start = 0; + } + } + + // safeguard so that we don't return uninitialized memory + if (dst.length > bufoff) return dst.slice(0, bufoff); + + return dst; +}; + +BufferList.prototype.shallowSlice = function shallowSlice(start, end) { + start = start || 0; + end = typeof end !== "number" ? this.length : end; + + if (start < 0) { + start += this.length; + } + + if (end < 0) { + end += this.length; + } + + if (start === end) { + return this._new(); + } + + const startOffset = this._offset(start); + const endOffset = this._offset(end); + const buffers = this._bufs.slice(startOffset[0], endOffset[0] + 1); + + if (endOffset[1] === 0) { + buffers.pop(); + } else { + buffers[buffers.length - 1] = buffers[buffers.length - 1].slice( + 0, + endOffset[1] + ); + } + + if (startOffset[1] !== 0) { + buffers[0] = buffers[0].slice(startOffset[1]); + } + + return this._new(buffers); +}; + +BufferList.prototype.toString = function toString(encoding, start, end) { + return this.slice(start, end).toString(encoding); +}; + +BufferList.prototype.consume = function consume(bytes) { + // first, normalize the argument, in accordance with how Buffer does it + bytes = Math.trunc(bytes); + // do nothing if not a positive number + if (Number.isNaN(bytes) || bytes <= 0) return this; + + while (this._bufs.length) { + if (bytes >= this._bufs[0].length) { + bytes -= this._bufs[0].length; + this.length -= this._bufs[0].length; + this._bufs.shift(); + } else { + this._bufs[0] = this._bufs[0].slice(bytes); + this.length -= bytes; + break; + } + } + + return this; +}; + +BufferList.prototype.duplicate = function duplicate() { + const copy = this._new(); + + for (let i = 0; i < this._bufs.length; i++) { + copy.append(this._bufs[i]); + } + + return copy; +}; + +BufferList.prototype.append = function append(buf) { + if (buf == null) { + return this; + } + + if (buf.buffer) { + // append a view of the underlying ArrayBuffer + this._appendBuffer(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)); + } else if (Array.isArray(buf)) { + for (let i = 0; i < buf.length; i++) { + this.append(buf[i]); + } + } else if (this._isBufferList(buf)) { + // unwrap argument into individual BufferLists + for (let i = 0; i < buf._bufs.length; i++) { + this.append(buf._bufs[i]); + } + } else { + // coerce number arguments to strings, since Buffer(number) does + // uninitialized memory allocation + if (typeof buf === "number") { + buf = buf.toString(); + } + + this._appendBuffer(Buffer.from(buf)); + } + + return this; +}; + +BufferList.prototype._appendBuffer = function appendBuffer(buf) { + this._bufs.push(buf); + this.length += buf.length; +}; + +BufferList.prototype.indexOf = function (search, offset, encoding) { + if (encoding === undefined && typeof offset === "string") { + encoding = offset; + offset = undefined; + } + + if (typeof search === "function" || Array.isArray(search)) { + throw new TypeError( + 'The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.' + ); + } else if (typeof search === "number") { + search = Buffer.from([search]); + } else if (typeof search === "string") { + search = Buffer.from(search, encoding); + } else if (this._isBufferList(search)) { + search = search.slice(); + } else if (Array.isArray(search.buffer)) { + search = Buffer.from(search.buffer, search.byteOffset, search.byteLength); + } else if (!Buffer.isBuffer(search)) { + search = Buffer.from(search); + } + + offset = Number(offset || 0); + + if (isNaN(offset)) { + offset = 0; + } + + if (offset < 0) { + offset = this.length + offset; + } + + if (offset < 0) { + offset = 0; + } + + if (search.length === 0) { + return offset > this.length ? this.length : offset; + } + + const blOffset = this._offset(offset); + let blIndex = blOffset[0]; // index of which internal buffer we're working on + let buffOffset = blOffset[1]; // offset of the internal buffer we're working on + + // scan over each buffer + for (; blIndex < this._bufs.length; blIndex++) { + const buff = this._bufs[blIndex]; + + while (buffOffset < buff.length) { + const availableWindow = buff.length - buffOffset; + + if (availableWindow >= search.length) { + const nativeSearchResult = buff.indexOf(search, buffOffset); + + if (nativeSearchResult !== -1) { + return this._reverseOffset([blIndex, nativeSearchResult]); + } + + buffOffset = buff.length - search.length + 1; // end of native search window + } else { + const revOffset = this._reverseOffset([blIndex, buffOffset]); + + if (this._match(revOffset, search)) { + return revOffset; + } + + buffOffset++; + } + } + + buffOffset = 0; + } + + return -1; +}; + +BufferList.prototype._match = function (offset, search) { + if (this.length - offset < search.length) { + return false; + } + + for (let searchOffset = 0; searchOffset < search.length; searchOffset++) { + if (this.get(offset + searchOffset) !== search[searchOffset]) { + return false; + } + } + return true; +}; +(function () { + const methods = { + readDoubleBE: 8, + readDoubleLE: 8, + readFloatBE: 4, + readFloatLE: 4, + readInt32BE: 4, + readInt32LE: 4, + readUInt32BE: 4, + readUInt32LE: 4, + readInt16BE: 2, + readInt16LE: 2, + readUInt16BE: 2, + readUInt16LE: 2, + readInt8: 1, + readUInt8: 1, + readIntBE: null, + readIntLE: null, + readUIntBE: null, + readUIntLE: null + }; + + for (const m in methods) { + (function (m) { + if (methods[m] === null) { + BufferList.prototype[m] = function (offset, byteLength) { + return this.slice(offset, offset + byteLength)[m](0, byteLength); + }; + } else { + BufferList.prototype[m] = function (offset) { + return this.slice(offset, offset + methods[m])[m](0); + }; + } + })(m); + } +})(); + +// Used internally by the class and also as an indicator of this object being +// a `BufferList`. It's not possible to use `instanceof BufferList` in a browser +// environment because there could be multiple different copies of the +// BufferList class and some `BufferList`s might be `BufferList`s. +BufferList.prototype._isBufferList = function _isBufferList(b) { + return b instanceof BufferList || BufferList.isBufferList(b); +}; + +BufferList.isBufferList = function isBufferList(b) { + return b != null && b[symbol]; +}; + +module.exports = BufferList; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/LICENSE.md b/packages/libs/lambda-at-edge/sharp_node_modules/bl/LICENSE.md new file mode 100644 index 0000000000..89112cc9b5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/LICENSE.md @@ -0,0 +1,11 @@ +# The MIT License (MIT) + +## Copyright (c) 2013-2019 bl contributors + +_bl contributors listed at _ + +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/packages/libs/lambda-at-edge/sharp_node_modules/bl/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/bl/README.md new file mode 100644 index 0000000000..8b0d1d6a0e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/README.md @@ -0,0 +1,293 @@ +# bl _(BufferList)_ + +[![Build Status](https://api.travis-ci.com/rvagg/bl.svg?branch=master)](https://travis-ci.com/rvagg/bl/) + +**A Node.js Buffer list collector, reader and streamer thingy.** + +[![NPM](https://nodei.co/npm/bl.svg)](https://nodei.co/npm/bl/) + +**bl** is a storage object for collections of Node Buffers, exposing them with the main Buffer readable API. Also works as a duplex stream so you can collect buffers from a stream that emits them and emit buffers to a stream that consumes them! + +The original buffers are kept intact and copies are only done as necessary. Any reads that require the use of a single original buffer will return a slice of that buffer only (which references the same memory as the original buffer). Reads that span buffers perform concatenation as required and return the results transparently. + +```js +const { BufferList } = require("bl"); + +const bl = new BufferList(); +bl.append(Buffer.from("abcd")); +bl.append(Buffer.from("efg")); +bl.append("hi"); // bl will also accept & convert Strings +bl.append(Buffer.from("j")); +bl.append(Buffer.from([0x3, 0x4])); + +console.log(bl.length); // 12 + +console.log(bl.slice(0, 10).toString("ascii")); // 'abcdefghij' +console.log(bl.slice(3, 10).toString("ascii")); // 'defghij' +console.log(bl.slice(3, 6).toString("ascii")); // 'def' +console.log(bl.slice(3, 8).toString("ascii")); // 'defgh' +console.log(bl.slice(5, 10).toString("ascii")); // 'fghij' + +console.log(bl.indexOf("def")); // 3 +console.log(bl.indexOf("asdf")); // -1 + +// or just use toString! +console.log(bl.toString()); // 'abcdefghij\u0003\u0004' +console.log(bl.toString("ascii", 3, 8)); // 'defgh' +console.log(bl.toString("ascii", 5, 10)); // 'fghij' + +// other standard Buffer readables +console.log(bl.readUInt16BE(10)); // 0x0304 +console.log(bl.readUInt16LE(10)); // 0x0403 +``` + +Give it a callback in the constructor and use it just like **[concat-stream](https://github.com/maxogden/node-concat-stream)**: + +```js +const { BufferListStream } = require("bl"); +const fs = require("fs"); + +fs.createReadStream("README.md").pipe( + BufferListStream((err, data) => { + // note 'new' isn't strictly required + // `data` is a complete Buffer object containing the full data + console.log(data.toString()); + }) +); +``` + +Note that when you use the _callback_ method like this, the resulting `data` parameter is a concatenation of all `Buffer` objects in the list. If you want to avoid the overhead of this concatenation (in cases of extreme performance consciousness), then avoid the _callback_ method and just listen to `'end'` instead, like a standard Stream. + +Or to fetch a URL using [hyperquest](https://github.com/substack/hyperquest) (should work with [request](http://github.com/mikeal/request) and even plain Node http too!): + +```js +const hyperquest = require("hyperquest"); +const { BufferListStream } = require("bl"); + +const url = "https://raw.github.com/rvagg/bl/master/README.md"; + +hyperquest(url).pipe( + BufferListStream((err, data) => { + console.log(data.toString()); + }) +); +``` + +Or, use it as a readable stream to recompose a list of Buffers to an output source: + +```js +const { BufferListStream } = require("bl"); +const fs = require("fs"); + +var bl = new BufferListStream(); +bl.append(Buffer.from("abcd")); +bl.append(Buffer.from("efg")); +bl.append(Buffer.from("hi")); +bl.append(Buffer.from("j")); + +bl.pipe(fs.createWriteStream("gibberish.txt")); +``` + +## API + +- new BufferList([ buf ]) +- BufferList.isBufferList(obj) +- bl.length +- bl.append(buffer) +- bl.get(index) +- bl.indexOf(value[, byteOffset][, encoding]) +- bl.slice([ start[, end ] ]) +- bl.shallowSlice([ start[, end ] ]) +- bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) +- bl.duplicate() +- bl.consume(bytes) +- bl.toString([encoding, [ start, [ end ]]]) +- bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() +- new BufferListStream([ callback ]) + +--- + + + +### new BufferList([ Buffer | Buffer array | BufferList | BufferList array | String ]) + +No arguments are _required_ for the constructor, but you can initialise the list by passing in a single `Buffer` object or an array of `Buffer` objects. + +`new` is not strictly required, if you don't instantiate a new object, it will be done automatically for you so you can create a new instance simply with: + +```js +const { BufferList } = require("bl"); +const bl = BufferList(); + +// equivalent to: + +const { BufferList } = require("bl"); +const bl = new BufferList(); +``` + +--- + + + +### BufferList.isBufferList(obj) + +Determines if the passed object is a `BufferList`. It will return `true` if the passed object is an instance of `BufferList` **or** `BufferListStream` and `false` otherwise. + +N.B. this won't return `true` for `BufferList` or `BufferListStream` instances created by versions of this library before this static method was added. + +--- + + + +### bl.length + +Get the length of the list in bytes. This is the sum of the lengths of all of the buffers contained in the list, minus any initial offset for a semi-consumed buffer at the beginning. Should accurately represent the total number of bytes that can be read from the list. + +--- + + + +### bl.append(Buffer | Buffer array | BufferList | BufferList array | String) + +`append(buffer)` adds an additional buffer or BufferList to the internal list. `this` is returned so it can be chained. + +--- + + + +### bl.get(index) + +`get()` will return the byte at the specified index. + +--- + + + +### bl.indexOf(value[, byteOffset][, encoding]) + +`get()` will return the byte at the specified index. +`indexOf()` method returns the first index at which a given element can be found in the BufferList, or -1 if it is not present. + +--- + + + +### bl.slice([ start, [ end ] ]) + +`slice()` returns a new `Buffer` object containing the bytes within the range specified. Both `start` and `end` are optional and will default to the beginning and end of the list respectively. + +If the requested range spans a single internal buffer then a slice of that buffer will be returned which shares the original memory range of that Buffer. If the range spans multiple buffers then copy operations will likely occur to give you a uniform Buffer. + +--- + + + +### bl.shallowSlice([ start, [ end ] ]) + +`shallowSlice()` returns a new `BufferList` object containing the bytes within the range specified. Both `start` and `end` are optional and will default to the beginning and end of the list respectively. + +No copies will be performed. All buffers in the result share memory with the original list. + +--- + + + +### bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) + +`copy()` copies the content of the list in the `dest` buffer, starting from `destStart` and containing the bytes within the range specified with `srcStart` to `srcEnd`. `destStart`, `start` and `end` are optional and will default to the beginning of the `dest` buffer, and the beginning and end of the list respectively. + +--- + + + +### bl.duplicate() + +`duplicate()` performs a **shallow-copy** of the list. The internal Buffers remains the same, so if you change the underlying Buffers, the change will be reflected in both the original and the duplicate. This method is needed if you want to call `consume()` or `pipe()` and still keep the original list.Example: + +```js +var bl = new BufferListStream(); + +bl.append("hello"); +bl.append(" world"); +bl.append("\n"); + +bl.duplicate().pipe(process.stdout, { end: false }); + +console.log(bl.toString()); +``` + +--- + + + +### bl.consume(bytes) + +`consume()` will shift bytes _off the start of the list_. The number of bytes consumed don't need to line up with the sizes of the internal Buffers—initial offsets will be calculated accordingly in order to give you a consistent view of the data. + +--- + + + +### bl.toString([encoding, [ start, [ end ]]]) + +`toString()` will return a string representation of the buffer. The optional `start` and `end` arguments are passed on to `slice()`, while the `encoding` is passed on to `toString()` of the resulting Buffer. See the [Buffer#toString()](http://nodejs.org/docs/latest/api/buffer.html#buffer_buf_tostring_encoding_start_end) documentation for more information. + +--- + + + +### bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() + +All of the standard byte-reading methods of the `Buffer` interface are implemented and will operate across internal Buffer boundaries transparently. + +See the [Buffer](http://nodejs.org/docs/latest/api/buffer.html) documentation for how these work. + +--- + + + +### new BufferListStream([ callback | Buffer | Buffer array | BufferList | BufferList array | String ]) + +**BufferListStream** is a Node **[Duplex Stream](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_duplex)**, so it can be read from and written to like a standard Node stream. You can also `pipe()` to and from a **BufferListStream** instance. + +The constructor takes an optional callback, if supplied, the callback will be called with an error argument followed by a reference to the **bl** instance, when `bl.end()` is called (i.e. from a piped stream). This is a convenient method of collecting the entire contents of a stream, particularly when the stream is _chunky_, such as a network stream. + +Normally, no arguments are required for the constructor, but you can initialise the list by passing in a single `Buffer` object or an array of `Buffer` object. + +`new` is not strictly required, if you don't instantiate a new object, it will be done automatically for you so you can create a new instance simply with: + +```js +const { BufferListStream } = require("bl"); +const bl = BufferListStream(); + +// equivalent to: + +const { BufferListStream } = require("bl"); +const bl = new BufferListStream(); +``` + +N.B. For backwards compatibility reasons, `BufferListStream` is the **default** export when you `require('bl')`: + +```js +const { BufferListStream } = require("bl"); +// equivalent to: +const BufferListStream = require("bl"); +``` + +--- + +## Contributors + +**bl** is brought to you by the following hackers: + +- [Rod Vagg](https://github.com/rvagg) +- [Matteo Collina](https://github.com/mcollina) +- [Jarett Cruger](https://github.com/jcrugzz) + + + +## License & copyright + +Copyright (c) 2013-2019 bl contributors (listed above). + +bl is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/bl.js b/packages/libs/lambda-at-edge/sharp_node_modules/bl/bl.js new file mode 100644 index 0000000000..bbb1a50a18 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/bl.js @@ -0,0 +1,88 @@ +"use strict"; + +const DuplexStream = require("readable-stream").Duplex; +const inherits = require("inherits"); +const BufferList = require("./BufferList"); + +function BufferListStream(callback) { + if (!(this instanceof BufferListStream)) { + return new BufferListStream(callback); + } + + if (typeof callback === "function") { + this._callback = callback; + + const piper = function piper(err) { + if (this._callback) { + this._callback(err); + this._callback = null; + } + }.bind(this); + + this.on("pipe", function onPipe(src) { + src.on("error", piper); + }); + this.on("unpipe", function onUnpipe(src) { + src.removeListener("error", piper); + }); + + callback = null; + } + + BufferList._init.call(this, callback); + DuplexStream.call(this); +} + +inherits(BufferListStream, DuplexStream); +Object.assign(BufferListStream.prototype, BufferList.prototype); + +BufferListStream.prototype._new = function _new(callback) { + return new BufferListStream(callback); +}; + +BufferListStream.prototype._write = function _write(buf, encoding, callback) { + this._appendBuffer(buf); + + if (typeof callback === "function") { + callback(); + } +}; + +BufferListStream.prototype._read = function _read(size) { + if (!this.length) { + return this.push(null); + } + + size = Math.min(size, this.length); + this.push(this.slice(0, size)); + this.consume(size); +}; + +BufferListStream.prototype.end = function end(chunk) { + DuplexStream.prototype.end.call(this, chunk); + + if (this._callback) { + this._callback(null, this.slice()); + this._callback = null; + } +}; + +BufferListStream.prototype._destroy = function _destroy(err, cb) { + this._bufs.length = 0; + this.length = 0; + cb(err); +}; + +BufferListStream.prototype._isBufferList = function _isBufferList(b) { + return ( + b instanceof BufferListStream || + b instanceof BufferList || + BufferListStream.isBufferList(b) + ); +}; + +BufferListStream.isBufferList = BufferList.isBufferList; + +module.exports = BufferListStream; +module.exports.BufferListStream = BufferListStream; +module.exports.BufferList = BufferList; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/bl/package.json new file mode 100644 index 0000000000..1e0b06ebfa --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/package.json @@ -0,0 +1,69 @@ +{ + "_from": "bl@^4.0.3", + "_id": "bl@4.0.3", + "_inBundle": false, + "_integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", + "_location": "/bl", + "_phantomChildren": { + "inherits": "2.0.4", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + }, + "_requested": { + "type": "range", + "registry": true, + "raw": "bl@^4.0.3", + "name": "bl", + "escapedName": "bl", + "rawSpec": "^4.0.3", + "saveSpec": null, + "fetchSpec": "^4.0.3" + }, + "_requiredBy": [ + "/tar-stream" + ], + "_resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", + "_shasum": "12d6287adc29080e22a705e5764b2a9522cdc489", + "_spec": "bl@^4.0.3", + "_where": "/var/task/node_modules/tar-stream", + "authors": [ + "Rod Vagg (https://github.com/rvagg)", + "Matteo Collina (https://github.com/mcollina)", + "Jarett Cruger (https://github.com/jcrugzz)" + ], + "bugs": { + "url": "https://github.com/rvagg/bl/issues" + }, + "bundleDependencies": false, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "deprecated": false, + "description": "Buffer List: collect buffers and access with a standard readable Buffer interface, streamable too!", + "devDependencies": { + "faucet": "~0.0.1", + "standard": "^14.3.0", + "tape": "^4.11.0" + }, + "homepage": "https://github.com/rvagg/bl", + "keywords": [ + "buffer", + "buffers", + "stream", + "awesomesauce" + ], + "license": "MIT", + "main": "bl.js", + "name": "bl", + "repository": { + "type": "git", + "url": "git+https://github.com/rvagg/bl.git" + }, + "scripts": { + "lint": "standard *.js test/*.js", + "test": "npm run lint && node test/test.js | faucet" + }, + "version": "4.0.3" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/convert.js b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/convert.js new file mode 100644 index 0000000000..49ff56b829 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/convert.js @@ -0,0 +1,21 @@ +"use strict"; + +const tape = require("tape"); +const { BufferList, BufferListStream } = require("../"); +const { Buffer } = require("buffer"); + +tape("convert from BufferList to BufferListStream", (t) => { + const data = Buffer.from(`TEST-${Date.now()}`); + const bl = new BufferList(data); + const bls = new BufferListStream(bl); + t.ok(bl.slice().equals(bls.slice())); + t.end(); +}); + +tape("convert from BufferListStream to BufferList", (t) => { + const data = Buffer.from(`TEST-${Date.now()}`); + const bls = new BufferListStream(data); + const bl = new BufferList(bls); + t.ok(bl.slice().equals(bls.slice())); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/indexOf.js b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/indexOf.js new file mode 100644 index 0000000000..474d7f7f21 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/indexOf.js @@ -0,0 +1,522 @@ +"use strict"; + +const tape = require("tape"); +const BufferList = require("../"); +const { Buffer } = require("buffer"); + +tape("indexOf single byte needle", (t) => { + const bl = new BufferList(["abcdefg", "abcdefg", "12345"]); + + t.equal(bl.indexOf("e"), 4); + t.equal(bl.indexOf("e", 5), 11); + t.equal(bl.indexOf("e", 12), -1); + t.equal(bl.indexOf("5"), 18); + + t.end(); +}); + +tape("indexOf multiple byte needle", (t) => { + const bl = new BufferList(["abcdefg", "abcdefg"]); + + t.equal(bl.indexOf("ef"), 4); + t.equal(bl.indexOf("ef", 5), 11); + + t.end(); +}); + +tape("indexOf multiple byte needles across buffer boundaries", (t) => { + const bl = new BufferList(["abcdefg", "abcdefg"]); + + t.equal(bl.indexOf("fgabc"), 5); + + t.end(); +}); + +tape("indexOf takes a Uint8Array search", (t) => { + const bl = new BufferList(["abcdefg", "abcdefg"]); + const search = new Uint8Array([102, 103, 97, 98, 99]); // fgabc + + t.equal(bl.indexOf(search), 5); + + t.end(); +}); + +tape("indexOf takes a buffer list search", (t) => { + const bl = new BufferList(["abcdefg", "abcdefg"]); + const search = new BufferList("fgabc"); + + t.equal(bl.indexOf(search), 5); + + t.end(); +}); + +tape("indexOf a zero byte needle", (t) => { + const b = new BufferList("abcdef"); + const bufEmpty = Buffer.from(""); + + t.equal(b.indexOf(""), 0); + t.equal(b.indexOf("", 1), 1); + t.equal(b.indexOf("", b.length + 1), b.length); + t.equal(b.indexOf("", Infinity), b.length); + t.equal(b.indexOf(bufEmpty), 0); + t.equal(b.indexOf(bufEmpty, 1), 1); + t.equal(b.indexOf(bufEmpty, b.length + 1), b.length); + t.equal(b.indexOf(bufEmpty, Infinity), b.length); + + t.end(); +}); + +tape("indexOf buffers smaller and larger than the needle", (t) => { + const bl = new BufferList(["abcdefg", "a", "bcdefg", "a", "bcfgab"]); + + t.equal(bl.indexOf("fgabc"), 5); + t.equal(bl.indexOf("fgabc", 6), 12); + t.equal(bl.indexOf("fgabc", 13), -1); + + t.end(); +}); + +// only present in node 6+ +process.version.substr(1).split(".")[0] >= 6 && + tape("indexOf latin1 and binary encoding", (t) => { + const b = new BufferList("abcdef"); + + // test latin1 encoding + t.equal( + new BufferList(Buffer.from(b.toString("latin1"), "latin1")).indexOf( + "d", + 0, + "latin1" + ), + 3 + ); + t.equal( + new BufferList(Buffer.from(b.toString("latin1"), "latin1")).indexOf( + Buffer.from("d", "latin1"), + 0, + "latin1" + ), + 3 + ); + t.equal( + new BufferList(Buffer.from("aa\u00e8aa", "latin1")).indexOf( + "\u00e8", + "latin1" + ), + 2 + ); + t.equal( + new BufferList(Buffer.from("\u00e8", "latin1")).indexOf( + "\u00e8", + "latin1" + ), + 0 + ); + t.equal( + new BufferList(Buffer.from("\u00e8", "latin1")).indexOf( + Buffer.from("\u00e8", "latin1"), + "latin1" + ), + 0 + ); + + // test binary encoding + t.equal( + new BufferList(Buffer.from(b.toString("binary"), "binary")).indexOf( + "d", + 0, + "binary" + ), + 3 + ); + t.equal( + new BufferList(Buffer.from(b.toString("binary"), "binary")).indexOf( + Buffer.from("d", "binary"), + 0, + "binary" + ), + 3 + ); + t.equal( + new BufferList(Buffer.from("aa\u00e8aa", "binary")).indexOf( + "\u00e8", + "binary" + ), + 2 + ); + t.equal( + new BufferList(Buffer.from("\u00e8", "binary")).indexOf( + "\u00e8", + "binary" + ), + 0 + ); + t.equal( + new BufferList(Buffer.from("\u00e8", "binary")).indexOf( + Buffer.from("\u00e8", "binary"), + "binary" + ), + 0 + ); + + t.end(); + }); + +tape("indexOf the entire nodejs10 buffer test suite", (t) => { + const b = new BufferList("abcdef"); + const bufA = Buffer.from("a"); + const bufBc = Buffer.from("bc"); + const bufF = Buffer.from("f"); + const bufZ = Buffer.from("z"); + + const stringComparison = "abcdef"; + + t.equal(b.indexOf("a"), 0); + t.equal(b.indexOf("a", 1), -1); + t.equal(b.indexOf("a", -1), -1); + t.equal(b.indexOf("a", -4), -1); + t.equal(b.indexOf("a", -b.length), 0); + t.equal(b.indexOf("a", NaN), 0); + t.equal(b.indexOf("a", -Infinity), 0); + t.equal(b.indexOf("a", Infinity), -1); + t.equal(b.indexOf("bc"), 1); + t.equal(b.indexOf("bc", 2), -1); + t.equal(b.indexOf("bc", -1), -1); + t.equal(b.indexOf("bc", -3), -1); + t.equal(b.indexOf("bc", -5), 1); + t.equal(b.indexOf("bc", NaN), 1); + t.equal(b.indexOf("bc", -Infinity), 1); + t.equal(b.indexOf("bc", Infinity), -1); + t.equal(b.indexOf("f"), b.length - 1); + t.equal(b.indexOf("z"), -1); + + // empty search tests + t.equal(b.indexOf(bufA), 0); + t.equal(b.indexOf(bufA, 1), -1); + t.equal(b.indexOf(bufA, -1), -1); + t.equal(b.indexOf(bufA, -4), -1); + t.equal(b.indexOf(bufA, -b.length), 0); + t.equal(b.indexOf(bufA, NaN), 0); + t.equal(b.indexOf(bufA, -Infinity), 0); + t.equal(b.indexOf(bufA, Infinity), -1); + t.equal(b.indexOf(bufBc), 1); + t.equal(b.indexOf(bufBc, 2), -1); + t.equal(b.indexOf(bufBc, -1), -1); + t.equal(b.indexOf(bufBc, -3), -1); + t.equal(b.indexOf(bufBc, -5), 1); + t.equal(b.indexOf(bufBc, NaN), 1); + t.equal(b.indexOf(bufBc, -Infinity), 1); + t.equal(b.indexOf(bufBc, Infinity), -1); + t.equal(b.indexOf(bufF), b.length - 1); + t.equal(b.indexOf(bufZ), -1); + t.equal(b.indexOf(0x61), 0); + t.equal(b.indexOf(0x61, 1), -1); + t.equal(b.indexOf(0x61, -1), -1); + t.equal(b.indexOf(0x61, -4), -1); + t.equal(b.indexOf(0x61, -b.length), 0); + t.equal(b.indexOf(0x61, NaN), 0); + t.equal(b.indexOf(0x61, -Infinity), 0); + t.equal(b.indexOf(0x61, Infinity), -1); + t.equal(b.indexOf(0x0), -1); + + // test offsets + t.equal(b.indexOf("d", 2), 3); + t.equal(b.indexOf("f", 5), 5); + t.equal(b.indexOf("f", -1), 5); + t.equal(b.indexOf("f", 6), -1); + + t.equal(b.indexOf(Buffer.from("d"), 2), 3); + t.equal(b.indexOf(Buffer.from("f"), 5), 5); + t.equal(b.indexOf(Buffer.from("f"), -1), 5); + t.equal(b.indexOf(Buffer.from("f"), 6), -1); + + t.equal(Buffer.from("ff").indexOf(Buffer.from("f"), 1, "ucs2"), -1); + + // test invalid and uppercase encoding + t.equal(b.indexOf("b", "utf8"), 1); + t.equal(b.indexOf("b", "UTF8"), 1); + t.equal(b.indexOf("62", "HEX"), 1); + t.throws(() => b.indexOf("bad", "enc"), TypeError); + + // test hex encoding + t.equal(Buffer.from(b.toString("hex"), "hex").indexOf("64", 0, "hex"), 3); + t.equal( + Buffer.from(b.toString("hex"), "hex").indexOf( + Buffer.from("64", "hex"), + 0, + "hex" + ), + 3 + ); + + // test base64 encoding + t.equal( + Buffer.from(b.toString("base64"), "base64").indexOf("ZA==", 0, "base64"), + 3 + ); + t.equal( + Buffer.from(b.toString("base64"), "base64").indexOf( + Buffer.from("ZA==", "base64"), + 0, + "base64" + ), + 3 + ); + + // test ascii encoding + t.equal( + Buffer.from(b.toString("ascii"), "ascii").indexOf("d", 0, "ascii"), + 3 + ); + t.equal( + Buffer.from(b.toString("ascii"), "ascii").indexOf( + Buffer.from("d", "ascii"), + 0, + "ascii" + ), + 3 + ); + + // test optional offset with passed encoding + t.equal(Buffer.from("aaaa0").indexOf("30", "hex"), 4); + t.equal(Buffer.from("aaaa00a").indexOf("3030", "hex"), 4); + + { + // test usc2 encoding + const twoByteString = Buffer.from("\u039a\u0391\u03a3\u03a3\u0395", "ucs2"); + + t.equal(8, twoByteString.indexOf("\u0395", 4, "ucs2")); + t.equal(6, twoByteString.indexOf("\u03a3", -4, "ucs2")); + t.equal(4, twoByteString.indexOf("\u03a3", -6, "ucs2")); + t.equal( + 4, + twoByteString.indexOf(Buffer.from("\u03a3", "ucs2"), -6, "ucs2") + ); + t.equal(-1, twoByteString.indexOf("\u03a3", -2, "ucs2")); + } + + const mixedByteStringUcs2 = Buffer.from( + "\u039a\u0391abc\u03a3\u03a3\u0395", + "ucs2" + ); + + t.equal(6, mixedByteStringUcs2.indexOf("bc", 0, "ucs2")); + t.equal(10, mixedByteStringUcs2.indexOf("\u03a3", 0, "ucs2")); + t.equal(-1, mixedByteStringUcs2.indexOf("\u0396", 0, "ucs2")); + + t.equal(6, mixedByteStringUcs2.indexOf(Buffer.from("bc", "ucs2"), 0, "ucs2")); + t.equal( + 10, + mixedByteStringUcs2.indexOf(Buffer.from("\u03a3", "ucs2"), 0, "ucs2") + ); + t.equal( + -1, + mixedByteStringUcs2.indexOf(Buffer.from("\u0396", "ucs2"), 0, "ucs2") + ); + + { + const twoByteString = Buffer.from("\u039a\u0391\u03a3\u03a3\u0395", "ucs2"); + + // Test single char pattern + t.equal(0, twoByteString.indexOf("\u039a", 0, "ucs2")); + let index = twoByteString.indexOf("\u0391", 0, "ucs2"); + t.equal(2, index, `Alpha - at index ${index}`); + index = twoByteString.indexOf("\u03a3", 0, "ucs2"); + t.equal(4, index, `First Sigma - at index ${index}`); + index = twoByteString.indexOf("\u03a3", 6, "ucs2"); + t.equal(6, index, `Second Sigma - at index ${index}`); + index = twoByteString.indexOf("\u0395", 0, "ucs2"); + t.equal(8, index, `Epsilon - at index ${index}`); + index = twoByteString.indexOf("\u0392", 0, "ucs2"); + t.equal(-1, index, `Not beta - at index ${index}`); + + // Test multi-char pattern + index = twoByteString.indexOf("\u039a\u0391", 0, "ucs2"); + t.equal(0, index, `Lambda Alpha - at index ${index}`); + index = twoByteString.indexOf("\u0391\u03a3", 0, "ucs2"); + t.equal(2, index, `Alpha Sigma - at index ${index}`); + index = twoByteString.indexOf("\u03a3\u03a3", 0, "ucs2"); + t.equal(4, index, `Sigma Sigma - at index ${index}`); + index = twoByteString.indexOf("\u03a3\u0395", 0, "ucs2"); + t.equal(6, index, `Sigma Epsilon - at index ${index}`); + } + + const mixedByteStringUtf8 = Buffer.from("\u039a\u0391abc\u03a3\u03a3\u0395"); + + t.equal(5, mixedByteStringUtf8.indexOf("bc")); + t.equal(5, mixedByteStringUtf8.indexOf("bc", 5)); + t.equal(5, mixedByteStringUtf8.indexOf("bc", -8)); + t.equal(7, mixedByteStringUtf8.indexOf("\u03a3")); + t.equal(-1, mixedByteStringUtf8.indexOf("\u0396")); + + // Test complex string indexOf algorithms. Only trigger for long strings. + // Long string that isn't a simple repeat of a shorter string. + let longString = "A"; + for (let i = 66; i < 76; i++) { + // from 'B' to 'K' + longString = longString + String.fromCharCode(i) + longString; + } + + const longBufferString = Buffer.from(longString); + + // pattern of 15 chars, repeated every 16 chars in long + let pattern = "ABACABADABACABA"; + for (let i = 0; i < longBufferString.length - pattern.length; i += 7) { + const index = longBufferString.indexOf(pattern, i); + t.equal((i + 15) & ~0xf, index, `Long ABACABA...-string at index ${i}`); + } + + let index = longBufferString.indexOf("AJABACA"); + t.equal(510, index, `Long AJABACA, First J - at index ${index}`); + index = longBufferString.indexOf("AJABACA", 511); + t.equal(1534, index, `Long AJABACA, Second J - at index ${index}`); + + pattern = "JABACABADABACABA"; + index = longBufferString.indexOf(pattern); + t.equal(511, index, `Long JABACABA..., First J - at index ${index}`); + index = longBufferString.indexOf(pattern, 512); + t.equal(1535, index, `Long JABACABA..., Second J - at index ${index}`); + + // Search for a non-ASCII string in a pure ASCII string. + const asciiString = Buffer.from("somethingnotatallsinisterwhichalsoworks"); + t.equal(-1, asciiString.indexOf("\x2061")); + t.equal(3, asciiString.indexOf("eth", 0)); + + // Search in string containing many non-ASCII chars. + const allCodePoints = []; + for (let i = 0; i < 65536; i++) { + allCodePoints[i] = i; + } + + const allCharsString = String.fromCharCode.apply(String, allCodePoints); + const allCharsBufferUtf8 = Buffer.from(allCharsString); + const allCharsBufferUcs2 = Buffer.from(allCharsString, "ucs2"); + + // Search for string long enough to trigger complex search with ASCII pattern + // and UC16 subject. + t.equal(-1, allCharsBufferUtf8.indexOf("notfound")); + t.equal(-1, allCharsBufferUcs2.indexOf("notfound")); + + // Needle is longer than haystack, but only because it's encoded as UTF-16 + t.equal(Buffer.from("aaaa").indexOf("a".repeat(4), "ucs2"), -1); + + t.equal(Buffer.from("aaaa").indexOf("a".repeat(4), "utf8"), 0); + t.equal(Buffer.from("aaaa").indexOf("你好", "ucs2"), -1); + + // Haystack has odd length, but the needle is UCS2. + t.equal(Buffer.from("aaaaa").indexOf("b", "ucs2"), -1); + + { + // Find substrings in Utf8. + const lengths = [1, 3, 15]; // Single char, simple and complex. + const indices = [0x5, 0x60, 0x400, 0x680, 0x7ee, 0xff02, 0x16610, 0x2f77b]; + for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (let i = 0; i < indices.length; i++) { + const index = indices[i]; + let length = lengths[lengthIndex]; + + if (index + length > 0x7f) { + length = 2 * length; + } + + if (index + length > 0x7ff) { + length = 3 * length; + } + + if (index + length > 0xffff) { + length = 4 * length; + } + + const patternBufferUtf8 = allCharsBufferUtf8.slice( + index, + index + length + ); + t.equal(index, allCharsBufferUtf8.indexOf(patternBufferUtf8)); + + const patternStringUtf8 = patternBufferUtf8.toString(); + t.equal(index, allCharsBufferUtf8.indexOf(patternStringUtf8)); + } + } + } + + { + // Find substrings in Usc2. + const lengths = [2, 4, 16]; // Single char, simple and complex. + const indices = [0x5, 0x65, 0x105, 0x205, 0x285, 0x2005, 0x2085, 0xfff0]; + + for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (let i = 0; i < indices.length; i++) { + const index = indices[i] * 2; + const length = lengths[lengthIndex]; + + const patternBufferUcs2 = allCharsBufferUcs2.slice( + index, + index + length + ); + t.equal( + index, + allCharsBufferUcs2.indexOf(patternBufferUcs2, 0, "ucs2") + ); + + const patternStringUcs2 = patternBufferUcs2.toString("ucs2"); + t.equal( + index, + allCharsBufferUcs2.indexOf(patternStringUcs2, 0, "ucs2") + ); + } + } + } + + [() => {}, {}, []].forEach((val) => { + t.throws( + () => b.indexOf(val), + TypeError, + `"${JSON.stringify(val)}" should throw` + ); + }); + + // Test weird offset arguments. + // The following offsets coerce to NaN or 0, searching the whole Buffer + t.equal(b.indexOf("b", undefined), 1); + t.equal(b.indexOf("b", {}), 1); + t.equal(b.indexOf("b", 0), 1); + t.equal(b.indexOf("b", null), 1); + t.equal(b.indexOf("b", []), 1); + + // The following offset coerces to 2, in other words +[2] === 2 + t.equal(b.indexOf("b", [2]), -1); + + // Behavior should match String.indexOf() + t.equal(b.indexOf("b", undefined), stringComparison.indexOf("b", undefined)); + t.equal(b.indexOf("b", {}), stringComparison.indexOf("b", {})); + t.equal(b.indexOf("b", 0), stringComparison.indexOf("b", 0)); + t.equal(b.indexOf("b", null), stringComparison.indexOf("b", null)); + t.equal(b.indexOf("b", []), stringComparison.indexOf("b", [])); + t.equal(b.indexOf("b", [2]), stringComparison.indexOf("b", [2])); + + // test truncation of Number arguments to uint8 + { + const buf = Buffer.from("this is a test"); + + t.equal(buf.indexOf(0x6973), 3); + t.equal(buf.indexOf(0x697320), 4); + t.equal(buf.indexOf(0x69732069), 2); + t.equal(buf.indexOf(0x697374657374), 0); + t.equal(buf.indexOf(0x69737374), 0); + t.equal(buf.indexOf(0x69737465), 11); + t.equal(buf.indexOf(0x69737465), 11); + t.equal(buf.indexOf(-140), 0); + t.equal(buf.indexOf(-152), 1); + t.equal(buf.indexOf(0xff), -1); + t.equal(buf.indexOf(0xffff), -1); + } + + // Test that Uint8Array arguments are okay. + { + const needle = new Uint8Array([0x66, 0x6f, 0x6f]); + const haystack = new BufferList(Buffer.from("a foo b foo")); + t.equal(haystack.indexOf(needle), 2); + } + + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/isBufferList.js b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/isBufferList.js new file mode 100644 index 0000000000..ca5fec18f5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/isBufferList.js @@ -0,0 +1,32 @@ +"use strict"; + +const tape = require("tape"); +const { BufferList, BufferListStream } = require("../"); +const { Buffer } = require("buffer"); + +tape("isBufferList positives", (t) => { + t.ok(BufferList.isBufferList(new BufferList())); + t.ok(BufferList.isBufferList(new BufferListStream())); + + t.end(); +}); + +tape("isBufferList negatives", (t) => { + const types = [ + null, + undefined, + NaN, + true, + false, + {}, + [], + Buffer.alloc(0), + [Buffer.alloc(0)] + ]; + + for (const obj of types) { + t.notOk(BufferList.isBufferList(obj)); + } + + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/test.js b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/test.js new file mode 100644 index 0000000000..e53428e686 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/bl/test/test.js @@ -0,0 +1,896 @@ +"use strict"; + +const tape = require("tape"); +const crypto = require("crypto"); +const fs = require("fs"); +const path = require("path"); +const BufferList = require("../"); +const { Buffer } = require("buffer"); + +const encodings = ( + "hex utf8 utf-8 ascii binary base64" + + (process.browser ? "" : " ucs2 ucs-2 utf16le utf-16le") +).split(" "); + +require("./indexOf"); +require("./isBufferList"); +require("./convert"); + +tape("single bytes from single buffer", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abcd")); + + t.equal(bl.length, 4); + t.equal(bl.get(-1), undefined); + t.equal(bl.get(0), 97); + t.equal(bl.get(1), 98); + t.equal(bl.get(2), 99); + t.equal(bl.get(3), 100); + t.equal(bl.get(4), undefined); + + t.end(); +}); + +tape("single bytes from multiple buffers", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abcd")); + bl.append(Buffer.from("efg")); + bl.append(Buffer.from("hi")); + bl.append(Buffer.from("j")); + + t.equal(bl.length, 10); + + t.equal(bl.get(0), 97); + t.equal(bl.get(1), 98); + t.equal(bl.get(2), 99); + t.equal(bl.get(3), 100); + t.equal(bl.get(4), 101); + t.equal(bl.get(5), 102); + t.equal(bl.get(6), 103); + t.equal(bl.get(7), 104); + t.equal(bl.get(8), 105); + t.equal(bl.get(9), 106); + + t.end(); +}); + +tape("multi bytes from single buffer", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abcd")); + + t.equal(bl.length, 4); + + t.equal(bl.slice(0, 4).toString("ascii"), "abcd"); + t.equal(bl.slice(0, 3).toString("ascii"), "abc"); + t.equal(bl.slice(1, 4).toString("ascii"), "bcd"); + t.equal(bl.slice(-4, -1).toString("ascii"), "abc"); + + t.end(); +}); + +tape("multi bytes from single buffer (negative indexes)", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("buffer")); + + t.equal(bl.length, 6); + + t.equal(bl.slice(-6, -1).toString("ascii"), "buffe"); + t.equal(bl.slice(-6, -2).toString("ascii"), "buff"); + t.equal(bl.slice(-5, -2).toString("ascii"), "uff"); + + t.end(); +}); + +tape("multiple bytes from multiple buffers", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abcd")); + bl.append(Buffer.from("efg")); + bl.append(Buffer.from("hi")); + bl.append(Buffer.from("j")); + + t.equal(bl.length, 10); + + t.equal(bl.slice(0, 10).toString("ascii"), "abcdefghij"); + t.equal(bl.slice(3, 10).toString("ascii"), "defghij"); + t.equal(bl.slice(3, 6).toString("ascii"), "def"); + t.equal(bl.slice(3, 8).toString("ascii"), "defgh"); + t.equal(bl.slice(5, 10).toString("ascii"), "fghij"); + t.equal(bl.slice(-7, -4).toString("ascii"), "def"); + + t.end(); +}); + +tape("multiple bytes from multiple buffer lists", function (t) { + const bl = new BufferList(); + + bl.append(new BufferList([Buffer.from("abcd"), Buffer.from("efg")])); + bl.append(new BufferList([Buffer.from("hi"), Buffer.from("j")])); + + t.equal(bl.length, 10); + + t.equal(bl.slice(0, 10).toString("ascii"), "abcdefghij"); + + t.equal(bl.slice(3, 10).toString("ascii"), "defghij"); + t.equal(bl.slice(3, 6).toString("ascii"), "def"); + t.equal(bl.slice(3, 8).toString("ascii"), "defgh"); + t.equal(bl.slice(5, 10).toString("ascii"), "fghij"); + + t.end(); +}); + +// same data as previous test, just using nested constructors +tape("multiple bytes from crazy nested buffer lists", function (t) { + const bl = new BufferList(); + + bl.append( + new BufferList([ + new BufferList([ + new BufferList(Buffer.from("abc")), + Buffer.from("d"), + new BufferList(Buffer.from("efg")) + ]), + new BufferList([Buffer.from("hi")]), + new BufferList(Buffer.from("j")) + ]) + ); + + t.equal(bl.length, 10); + + t.equal(bl.slice(0, 10).toString("ascii"), "abcdefghij"); + + t.equal(bl.slice(3, 10).toString("ascii"), "defghij"); + t.equal(bl.slice(3, 6).toString("ascii"), "def"); + t.equal(bl.slice(3, 8).toString("ascii"), "defgh"); + t.equal(bl.slice(5, 10).toString("ascii"), "fghij"); + + t.end(); +}); + +tape("append accepts arrays of Buffers", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abc")); + bl.append([Buffer.from("def")]); + bl.append([Buffer.from("ghi"), Buffer.from("jkl")]); + bl.append([Buffer.from("mnop"), Buffer.from("qrstu"), Buffer.from("vwxyz")]); + t.equal(bl.length, 26); + t.equal(bl.slice().toString("ascii"), "abcdefghijklmnopqrstuvwxyz"); + + t.end(); +}); + +tape("append accepts arrays of Uint8Arrays", function (t) { + const bl = new BufferList(); + + bl.append(new Uint8Array([97, 98, 99])); + bl.append([Uint8Array.from([100, 101, 102])]); + bl.append([new Uint8Array([103, 104, 105]), new Uint8Array([106, 107, 108])]); + bl.append([ + new Uint8Array([109, 110, 111, 112]), + new Uint8Array([113, 114, 115, 116, 117]), + new Uint8Array([118, 119, 120, 121, 122]) + ]); + t.equal(bl.length, 26); + t.equal(bl.slice().toString("ascii"), "abcdefghijklmnopqrstuvwxyz"); + + t.end(); +}); + +tape("append accepts arrays of BufferLists", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abc")); + bl.append([new BufferList("def")]); + bl.append(new BufferList([Buffer.from("ghi"), new BufferList("jkl")])); + bl.append([ + Buffer.from("mnop"), + new BufferList([Buffer.from("qrstu"), Buffer.from("vwxyz")]) + ]); + t.equal(bl.length, 26); + t.equal(bl.slice().toString("ascii"), "abcdefghijklmnopqrstuvwxyz"); + + t.end(); +}); + +tape("append chainable", function (t) { + const bl = new BufferList(); + + t.ok(bl.append(Buffer.from("abcd")) === bl); + t.ok(bl.append([Buffer.from("abcd")]) === bl); + t.ok(bl.append(new BufferList(Buffer.from("abcd"))) === bl); + t.ok(bl.append([new BufferList(Buffer.from("abcd"))]) === bl); + + t.end(); +}); + +tape("append chainable (test results)", function (t) { + const bl = new BufferList("abc") + .append([new BufferList("def")]) + .append(new BufferList([Buffer.from("ghi"), new BufferList("jkl")])) + .append([ + Buffer.from("mnop"), + new BufferList([Buffer.from("qrstu"), Buffer.from("vwxyz")]) + ]); + + t.equal(bl.length, 26); + t.equal(bl.slice().toString("ascii"), "abcdefghijklmnopqrstuvwxyz"); + + t.end(); +}); + +tape("consuming from multiple buffers", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abcd")); + bl.append(Buffer.from("efg")); + bl.append(Buffer.from("hi")); + bl.append(Buffer.from("j")); + + t.equal(bl.length, 10); + + t.equal(bl.slice(0, 10).toString("ascii"), "abcdefghij"); + + bl.consume(3); + t.equal(bl.length, 7); + t.equal(bl.slice(0, 7).toString("ascii"), "defghij"); + + bl.consume(2); + t.equal(bl.length, 5); + t.equal(bl.slice(0, 5).toString("ascii"), "fghij"); + + bl.consume(1); + t.equal(bl.length, 4); + t.equal(bl.slice(0, 4).toString("ascii"), "ghij"); + + bl.consume(1); + t.equal(bl.length, 3); + t.equal(bl.slice(0, 3).toString("ascii"), "hij"); + + bl.consume(2); + t.equal(bl.length, 1); + t.equal(bl.slice(0, 1).toString("ascii"), "j"); + + t.end(); +}); + +tape("complete consumption", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("a")); + bl.append(Buffer.from("b")); + + bl.consume(2); + + t.equal(bl.length, 0); + t.equal(bl._bufs.length, 0); + + t.end(); +}); + +tape("test readUInt8 / readInt8", function (t) { + const buf1 = Buffer.alloc(1); + const buf2 = Buffer.alloc(3); + const buf3 = Buffer.alloc(3); + const bl = new BufferList(); + + buf2[1] = 0x3; + buf2[2] = 0x4; + buf3[0] = 0x23; + buf3[1] = 0x42; + + bl.append(buf1); + bl.append(buf2); + bl.append(buf3); + + t.equal(bl.readUInt8(2), 0x3); + t.equal(bl.readInt8(2), 0x3); + t.equal(bl.readUInt8(3), 0x4); + t.equal(bl.readInt8(3), 0x4); + t.equal(bl.readUInt8(4), 0x23); + t.equal(bl.readInt8(4), 0x23); + t.equal(bl.readUInt8(5), 0x42); + t.equal(bl.readInt8(5), 0x42); + + t.end(); +}); + +tape("test readUInt16LE / readUInt16BE / readInt16LE / readInt16BE", function ( + t +) { + const buf1 = Buffer.alloc(1); + const buf2 = Buffer.alloc(3); + const buf3 = Buffer.alloc(3); + const bl = new BufferList(); + + buf2[1] = 0x3; + buf2[2] = 0x4; + buf3[0] = 0x23; + buf3[1] = 0x42; + + bl.append(buf1); + bl.append(buf2); + bl.append(buf3); + + t.equal(bl.readUInt16BE(2), 0x0304); + t.equal(bl.readUInt16LE(2), 0x0403); + t.equal(bl.readInt16BE(2), 0x0304); + t.equal(bl.readInt16LE(2), 0x0403); + t.equal(bl.readUInt16BE(3), 0x0423); + t.equal(bl.readUInt16LE(3), 0x2304); + t.equal(bl.readInt16BE(3), 0x0423); + t.equal(bl.readInt16LE(3), 0x2304); + t.equal(bl.readUInt16BE(4), 0x2342); + t.equal(bl.readUInt16LE(4), 0x4223); + t.equal(bl.readInt16BE(4), 0x2342); + t.equal(bl.readInt16LE(4), 0x4223); + + t.end(); +}); + +tape("test readUInt32LE / readUInt32BE / readInt32LE / readInt32BE", function ( + t +) { + const buf1 = Buffer.alloc(1); + const buf2 = Buffer.alloc(3); + const buf3 = Buffer.alloc(3); + const bl = new BufferList(); + + buf2[1] = 0x3; + buf2[2] = 0x4; + buf3[0] = 0x23; + buf3[1] = 0x42; + + bl.append(buf1); + bl.append(buf2); + bl.append(buf3); + + t.equal(bl.readUInt32BE(2), 0x03042342); + t.equal(bl.readUInt32LE(2), 0x42230403); + t.equal(bl.readInt32BE(2), 0x03042342); + t.equal(bl.readInt32LE(2), 0x42230403); + + t.end(); +}); + +tape("test readUIntLE / readUIntBE / readIntLE / readIntBE", function (t) { + const buf1 = Buffer.alloc(1); + const buf2 = Buffer.alloc(3); + const buf3 = Buffer.alloc(3); + const bl = new BufferList(); + + buf2[0] = 0x2; + buf2[1] = 0x3; + buf2[2] = 0x4; + buf3[0] = 0x23; + buf3[1] = 0x42; + buf3[2] = 0x61; + + bl.append(buf1); + bl.append(buf2); + bl.append(buf3); + + t.equal(bl.readUIntBE(1, 1), 0x02); + t.equal(bl.readUIntBE(1, 2), 0x0203); + t.equal(bl.readUIntBE(1, 3), 0x020304); + t.equal(bl.readUIntBE(1, 4), 0x02030423); + t.equal(bl.readUIntBE(1, 5), 0x0203042342); + t.equal(bl.readUIntBE(1, 6), 0x020304234261); + t.equal(bl.readUIntLE(1, 1), 0x02); + t.equal(bl.readUIntLE(1, 2), 0x0302); + t.equal(bl.readUIntLE(1, 3), 0x040302); + t.equal(bl.readUIntLE(1, 4), 0x23040302); + t.equal(bl.readUIntLE(1, 5), 0x4223040302); + t.equal(bl.readUIntLE(1, 6), 0x614223040302); + t.equal(bl.readIntBE(1, 1), 0x02); + t.equal(bl.readIntBE(1, 2), 0x0203); + t.equal(bl.readIntBE(1, 3), 0x020304); + t.equal(bl.readIntBE(1, 4), 0x02030423); + t.equal(bl.readIntBE(1, 5), 0x0203042342); + t.equal(bl.readIntBE(1, 6), 0x020304234261); + t.equal(bl.readIntLE(1, 1), 0x02); + t.equal(bl.readIntLE(1, 2), 0x0302); + t.equal(bl.readIntLE(1, 3), 0x040302); + t.equal(bl.readIntLE(1, 4), 0x23040302); + t.equal(bl.readIntLE(1, 5), 0x4223040302); + t.equal(bl.readIntLE(1, 6), 0x614223040302); + + t.end(); +}); + +tape("test readFloatLE / readFloatBE", function (t) { + const buf1 = Buffer.alloc(1); + const buf2 = Buffer.alloc(3); + const buf3 = Buffer.alloc(3); + const bl = new BufferList(); + + buf2[1] = 0x00; + buf2[2] = 0x00; + buf3[0] = 0x80; + buf3[1] = 0x3f; + + bl.append(buf1); + bl.append(buf2); + bl.append(buf3); + + t.equal(bl.readFloatLE(2), 0x01); + + t.end(); +}); + +tape("test readDoubleLE / readDoubleBE", function (t) { + const buf1 = Buffer.alloc(1); + const buf2 = Buffer.alloc(3); + const buf3 = Buffer.alloc(10); + const bl = new BufferList(); + + buf2[1] = 0x55; + buf2[2] = 0x55; + buf3[0] = 0x55; + buf3[1] = 0x55; + buf3[2] = 0x55; + buf3[3] = 0x55; + buf3[4] = 0xd5; + buf3[5] = 0x3f; + + bl.append(buf1); + bl.append(buf2); + bl.append(buf3); + + t.equal(bl.readDoubleLE(2), 0.3333333333333333); + + t.end(); +}); + +tape("test toString", function (t) { + const bl = new BufferList(); + + bl.append(Buffer.from("abcd")); + bl.append(Buffer.from("efg")); + bl.append(Buffer.from("hi")); + bl.append(Buffer.from("j")); + + t.equal(bl.toString("ascii", 0, 10), "abcdefghij"); + t.equal(bl.toString("ascii", 3, 10), "defghij"); + t.equal(bl.toString("ascii", 3, 6), "def"); + t.equal(bl.toString("ascii", 3, 8), "defgh"); + t.equal(bl.toString("ascii", 5, 10), "fghij"); + + t.end(); +}); + +tape("test toString encoding", function (t) { + const bl = new BufferList(); + const b = Buffer.from("abcdefghij\xff\x00"); + + bl.append(Buffer.from("abcd")); + bl.append(Buffer.from("efg")); + bl.append(Buffer.from("hi")); + bl.append(Buffer.from("j")); + bl.append(Buffer.from("\xff\x00")); + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc), enc); + }); + + t.end(); +}); + +tape("uninitialized memory", function (t) { + const secret = crypto.randomBytes(256); + for (let i = 0; i < 1e6; i++) { + const clone = Buffer.from(secret); + const bl = new BufferList(); + bl.append(Buffer.from("a")); + bl.consume(-1024); + const buf = bl.slice(1); + if (buf.indexOf(clone) !== -1) { + t.fail(`Match (at ${i})`); + break; + } + } + t.end(); +}); + +!process.browser && + tape("test stream", function (t) { + const random = crypto.randomBytes(65534); + + const bl = new BufferList((err, buf) => { + t.ok(Buffer.isBuffer(buf)); + t.ok(err === null); + t.ok(random.equals(bl.slice())); + t.ok(random.equals(buf.slice())); + + bl.pipe(fs.createWriteStream("/tmp/bl_test_rnd_out.dat")).on( + "close", + function () { + const rndhash = crypto.createHash("md5").update(random).digest("hex"); + const md5sum = crypto.createHash("md5"); + const s = fs.createReadStream("/tmp/bl_test_rnd_out.dat"); + + s.on("data", md5sum.update.bind(md5sum)); + s.on("end", function () { + t.equal(rndhash, md5sum.digest("hex"), "woohoo! correct hash!"); + t.end(); + }); + } + ); + }); + + fs.writeFileSync("/tmp/bl_test_rnd.dat", random); + fs.createReadStream("/tmp/bl_test_rnd.dat").pipe(bl); + }); + +tape("instantiation with Buffer", function (t) { + const buf = crypto.randomBytes(1024); + const buf2 = crypto.randomBytes(1024); + let b = BufferList(buf); + + t.equal(buf.toString("hex"), b.slice().toString("hex"), "same buffer"); + b = BufferList([buf, buf2]); + t.equal( + b.slice().toString("hex"), + Buffer.concat([buf, buf2]).toString("hex"), + "same buffer" + ); + + t.end(); +}); + +tape("test String appendage", function (t) { + const bl = new BufferList(); + const b = Buffer.from("abcdefghij\xff\x00"); + + bl.append("abcd"); + bl.append("efg"); + bl.append("hi"); + bl.append("j"); + bl.append("\xff\x00"); + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc)); + }); + + t.end(); +}); + +tape("test Number appendage", function (t) { + const bl = new BufferList(); + const b = Buffer.from("1234567890"); + + bl.append(1234); + bl.append(567); + bl.append(89); + bl.append(0); + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc)); + }); + + t.end(); +}); + +tape("write nothing, should get empty buffer", function (t) { + t.plan(3); + BufferList(function (err, data) { + t.notOk(err, "no error"); + t.ok(Buffer.isBuffer(data), "got a buffer"); + t.equal(0, data.length, "got a zero-length buffer"); + t.end(); + }).end(); +}); + +tape("unicode string", function (t) { + t.plan(2); + + const inp1 = "\u2600"; + const inp2 = "\u2603"; + const exp = inp1 + " and " + inp2; + const bl = BufferList(); + + bl.write(inp1); + bl.write(" and "); + bl.write(inp2); + t.equal(exp, bl.toString()); + t.equal(Buffer.from(exp).toString("hex"), bl.toString("hex")); +}); + +tape("should emit finish", function (t) { + const source = BufferList(); + const dest = BufferList(); + + source.write("hello"); + source.pipe(dest); + + dest.on("finish", function () { + t.equal(dest.toString("utf8"), "hello"); + t.end(); + }); +}); + +tape("basic copy", function (t) { + const buf = crypto.randomBytes(1024); + const buf2 = Buffer.alloc(1024); + const b = BufferList(buf); + + b.copy(buf2); + t.equal(b.slice().toString("hex"), buf2.toString("hex"), "same buffer"); + + t.end(); +}); + +tape("copy after many appends", function (t) { + const buf = crypto.randomBytes(512); + const buf2 = Buffer.alloc(1024); + const b = BufferList(buf); + + b.append(buf); + b.copy(buf2); + t.equal(b.slice().toString("hex"), buf2.toString("hex"), "same buffer"); + + t.end(); +}); + +tape("copy at a precise position", function (t) { + const buf = crypto.randomBytes(1004); + const buf2 = Buffer.alloc(1024); + const b = BufferList(buf); + + b.copy(buf2, 20); + t.equal( + b.slice().toString("hex"), + buf2.slice(20).toString("hex"), + "same buffer" + ); + + t.end(); +}); + +tape("copy starting from a precise location", function (t) { + const buf = crypto.randomBytes(10); + const buf2 = Buffer.alloc(5); + const b = BufferList(buf); + + b.copy(buf2, 0, 5); + t.equal(b.slice(5).toString("hex"), buf2.toString("hex"), "same buffer"); + + t.end(); +}); + +tape("copy in an interval", function (t) { + const rnd = crypto.randomBytes(10); + const b = BufferList(rnd); // put the random bytes there + const actual = Buffer.alloc(3); + const expected = Buffer.alloc(3); + + rnd.copy(expected, 0, 5, 8); + b.copy(actual, 0, 5, 8); + + t.equal(actual.toString("hex"), expected.toString("hex"), "same buffer"); + + t.end(); +}); + +tape("copy an interval between two buffers", function (t) { + const buf = crypto.randomBytes(10); + const buf2 = Buffer.alloc(10); + const b = BufferList(buf); + + b.append(buf); + b.copy(buf2, 0, 5, 15); + + t.equal(b.slice(5, 15).toString("hex"), buf2.toString("hex"), "same buffer"); + + t.end(); +}); + +tape("shallow slice across buffer boundaries", function (t) { + const bl = new BufferList(["First", "Second", "Third"]); + + t.equal(bl.shallowSlice(3, 13).toString(), "stSecondTh"); + + t.end(); +}); + +tape("shallow slice within single buffer", function (t) { + t.plan(2); + + const bl = new BufferList(["First", "Second", "Third"]); + + t.equal(bl.shallowSlice(5, 10).toString(), "Secon"); + t.equal(bl.shallowSlice(7, 10).toString(), "con"); + + t.end(); +}); + +tape("shallow slice single buffer", function (t) { + t.plan(3); + + const bl = new BufferList(["First", "Second", "Third"]); + + t.equal(bl.shallowSlice(0, 5).toString(), "First"); + t.equal(bl.shallowSlice(5, 11).toString(), "Second"); + t.equal(bl.shallowSlice(11, 16).toString(), "Third"); +}); + +tape("shallow slice with negative or omitted indices", function (t) { + t.plan(4); + + const bl = new BufferList(["First", "Second", "Third"]); + + t.equal(bl.shallowSlice().toString(), "FirstSecondThird"); + t.equal(bl.shallowSlice(5).toString(), "SecondThird"); + t.equal(bl.shallowSlice(5, -3).toString(), "SecondTh"); + t.equal(bl.shallowSlice(-8).toString(), "ondThird"); +}); + +tape("shallow slice does not make a copy", function (t) { + t.plan(1); + + const buffers = [ + Buffer.from("First"), + Buffer.from("Second"), + Buffer.from("Third") + ]; + const bl = new BufferList(buffers).shallowSlice(5, -3); + + buffers[1].fill("h"); + buffers[2].fill("h"); + + t.equal(bl.toString(), "hhhhhhhh"); +}); + +tape("shallow slice with 0 length", function (t) { + t.plan(1); + + const buffers = [ + Buffer.from("First"), + Buffer.from("Second"), + Buffer.from("Third") + ]; + const bl = new BufferList(buffers).shallowSlice(0, 0); + + t.equal(bl.length, 0); +}); + +tape("shallow slice with 0 length from middle", function (t) { + t.plan(1); + + const buffers = [ + Buffer.from("First"), + Buffer.from("Second"), + Buffer.from("Third") + ]; + const bl = new BufferList(buffers).shallowSlice(10, 10); + + t.equal(bl.length, 0); +}); + +tape("duplicate", function (t) { + t.plan(2); + + const bl = new BufferList("abcdefghij\xff\x00"); + const dup = bl.duplicate(); + + t.equal(bl.prototype, dup.prototype); + t.equal(bl.toString("hex"), dup.toString("hex")); +}); + +tape("destroy no pipe", function (t) { + t.plan(2); + + const bl = new BufferList("alsdkfja;lsdkfja;lsdk"); + + bl.destroy(); + + t.equal(bl._bufs.length, 0); + t.equal(bl.length, 0); +}); + +tape("destroy with error", function (t) { + t.plan(3); + + const bl = new BufferList("alsdkfja;lsdkfja;lsdk"); + const err = new Error("kaboom"); + + bl.destroy(err); + bl.on("error", function (_err) { + t.equal(_err, err); + }); + + t.equal(bl._bufs.length, 0); + t.equal(bl.length, 0); +}); + +!process.browser && + tape("destroy with pipe before read end", function (t) { + t.plan(2); + + const bl = new BufferList(); + fs.createReadStream(path.join(__dirname, "/test.js")).pipe(bl); + + bl.destroy(); + + t.equal(bl._bufs.length, 0); + t.equal(bl.length, 0); + }); + +!process.browser && + tape("destroy with pipe before read end with race", function (t) { + t.plan(2); + + const bl = new BufferList(); + + fs.createReadStream(path.join(__dirname, "/test.js")).pipe(bl); + + setTimeout(function () { + bl.destroy(); + setTimeout(function () { + t.equal(bl._bufs.length, 0); + t.equal(bl.length, 0); + }, 500); + }, 500); + }); + +!process.browser && + tape("destroy with pipe after read end", function (t) { + t.plan(2); + + const bl = new BufferList(); + + fs.createReadStream(path.join(__dirname, "/test.js")) + .on("end", onEnd) + .pipe(bl); + + function onEnd() { + bl.destroy(); + + t.equal(bl._bufs.length, 0); + t.equal(bl.length, 0); + } + }); + +!process.browser && + tape("destroy with pipe while writing to a destination", function (t) { + t.plan(4); + + const bl = new BufferList(); + const ds = new BufferList(); + + fs.createReadStream(path.join(__dirname, "/test.js")) + .on("end", onEnd) + .pipe(bl); + + function onEnd() { + bl.pipe(ds); + + setTimeout(function () { + bl.destroy(); + + t.equals(bl._bufs.length, 0); + t.equals(bl.length, 0); + + ds.destroy(); + + t.equals(bl._bufs.length, 0); + t.equals(bl.length, 0); + }, 100); + } + }); + +!process.browser && + tape("handle error", function (t) { + t.plan(2); + + fs.createReadStream("/does/not/exist").pipe( + BufferList(function (err, data) { + t.ok(err instanceof Error, "has error"); + t.notOk(data, "no data"); + }) + ); + }); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/buffer/AUTHORS.md b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/AUTHORS.md new file mode 100644 index 0000000000..2e275a56a6 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/AUTHORS.md @@ -0,0 +1,70 @@ +# Authors + +#### Ordered by first contribution. + +- Romain Beauxis (toots@rastageeks.org) +- Tobias Koppers (tobias.koppers@googlemail.com) +- Janus (ysangkok@gmail.com) +- Rainer Dreyer (rdrey1@gmail.com) +- Tõnis Tiigi (tonistiigi@gmail.com) +- James Halliday (mail@substack.net) +- Michael Williamson (mike@zwobble.org) +- elliottcable (github@elliottcable.name) +- rafael (rvalle@livelens.net) +- Andrew Kelley (superjoe30@gmail.com) +- Andreas Madsen (amwebdk@gmail.com) +- Mike Brevoort (mike.brevoort@pearson.com) +- Brian White (mscdex@mscdex.net) +- Feross Aboukhadijeh (feross@feross.org) +- Ruben Verborgh (ruben@verborgh.org) +- eliang (eliang.cs@gmail.com) +- Jesse Tane (jesse.tane@gmail.com) +- Alfonso Boza (alfonso@cloud.com) +- Mathias Buus (mathiasbuus@gmail.com) +- Devon Govett (devongovett@gmail.com) +- Daniel Cousens (github@dcousens.com) +- Joseph Dykstra (josephdykstra@gmail.com) +- Parsha Pourkhomami (parshap+git@gmail.com) +- Damjan Košir (damjan.kosir@gmail.com) +- daverayment (dave.rayment@gmail.com) +- kawanet (u-suke@kawa.net) +- Linus Unnebäck (linus@folkdatorn.se) +- Nolan Lawson (nolan.lawson@gmail.com) +- Calvin Metcalf (calvin.metcalf@gmail.com) +- Koki Takahashi (hakatasiloving@gmail.com) +- Guy Bedford (guybedford@gmail.com) +- Jan Schär (jscissr@gmail.com) +- RaulTsc (tomescu.raul@gmail.com) +- Matthieu Monsch (monsch@alum.mit.edu) +- Dan Ehrenberg (littledan@chromium.org) +- Kirill Fomichev (fanatid@ya.ru) +- Yusuke Kawasaki (u-suke@kawa.net) +- DC (dcposch@dcpos.ch) +- John-David Dalton (john.david.dalton@gmail.com) +- adventure-yunfei (adventure030@gmail.com) +- Emil Bay (github@tixz.dk) +- Sam Sudar (sudar.sam@gmail.com) +- Volker Mische (volker.mische@gmail.com) +- David Walton (support@geekstocks.com) +- Сковорода Никита Андреевич (chalkerx@gmail.com) +- greenkeeper[bot](greenkeeper[bot]@users.noreply.github.com) +- ukstv (sergey.ukustov@machinomy.com) +- Renée Kooi (renee@kooi.me) +- ranbochen (ranbochen@qq.com) +- Vladimir Borovik (bobahbdb@gmail.com) +- greenkeeper[bot](23040076+greenkeeper[bot]@users.noreply.github.com) +- kumavis (aaron@kumavis.me) +- Sergey Ukustov (sergey.ukustov@machinomy.com) +- Fei Liu (liu.feiwood@gmail.com) +- Blaine Bublitz (blaine.bublitz@gmail.com) +- clement (clement@seald.io) +- Koushik Dutta (koushd@gmail.com) +- Jordan Harband (ljharb@gmail.com) +- Niklas Mischkulnig (mischnic@users.noreply.github.com) +- Nikolai Vavilov (vvnicholas@gmail.com) +- Fedor Nezhivoi (gyzerok@users.noreply.github.com) +- Peter Newman (peternewman@users.noreply.github.com) +- mathmakgakpak (44949126+mathmakgakpak@users.noreply.github.com) +- jkkang (jkkang@smartauth.kr) + +#### Generated by bin/update-authors.sh. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/buffer/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/LICENSE new file mode 100644 index 0000000000..d6bf75dcf1 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh, and other contributors. + +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/packages/libs/lambda-at-edge/sharp_node_modules/buffer/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/README.md new file mode 100644 index 0000000000..21aa751b8b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/README.md @@ -0,0 +1,407 @@ +# buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/buffer/master.svg +[travis-url]: https://travis-ci.org/feross/buffer +[npm-image]: https://img.shields.io/npm/v/buffer.svg +[npm-url]: https://npmjs.org/package/buffer +[downloads-image]: https://img.shields.io/npm/dm/buffer.svg +[downloads-url]: https://npmjs.org/package/buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### The buffer module from [node.js](https://nodejs.org/), for the browser. + +[![saucelabs][saucelabs-image]][saucelabs-url] + +[saucelabs-image]: https://saucelabs.com/browser-matrix/buffer.svg +[saucelabs-url]: https://saucelabs.com/u/buffer + +With [browserify](http://browserify.org), simply `require('buffer')` or use the `Buffer` global and you will get this module. + +The goal is to provide an API that is 100% identical to +[node's Buffer API](https://nodejs.org/api/buffer.html). Read the +[official docs](https://nodejs.org/api/buffer.html) for the full list of properties, +instance methods, and class methods that are supported. + +## features + +- Manipulate binary data like a boss, in all browsers! +- Super fast. Backed by Typed Arrays (`Uint8Array`/`ArrayBuffer`, not `Object`) +- Extremely small bundle size (**6.75KB minified + gzipped**, 51.9KB with comments) +- Excellent browser support (Chrome, Firefox, Edge, Safari 9+, IE 11, iOS 9+, Android, etc.) +- Preserves Node API exactly, with one minor difference (see below) +- Square-bracket `buf[4]` notation works! +- Does not modify any browser prototypes or put anything on `window` +- Comprehensive test suite (including all buffer tests from node.js core) + +## install + +To use this module directly (without browserify), install it: + +```bash +npm install buffer +``` + +This module was previously called **native-buffer-browserify**, but please use **buffer** +from now on. + +If you do not use a bundler, you can use the [standalone script](https://bundle.run/buffer). + +## usage + +The module's API is identical to node's `Buffer` API. Read the +[official docs](https://nodejs.org/api/buffer.html) for the full list of properties, +instance methods, and class methods that are supported. + +As mentioned above, `require('buffer')` or use the `Buffer` global with +[browserify](http://browserify.org) and this module will automatically be included +in your bundle. Almost any npm module will work in the browser, even if it assumes that +the node `Buffer` API will be available. + +To depend on this module explicitly (without browserify), require it like this: + +```js +var Buffer = require("buffer/").Buffer; // note: the trailing slash is important! +``` + +To require this module explicitly, use `require('buffer/')` which tells the node.js module +lookup algorithm (also used by browserify) to use the **npm module** named `buffer` +instead of the **node.js core** module named `buffer`! + +## how does it work? + +The Buffer constructor returns instances of `Uint8Array` that have their prototype +changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of `Uint8Array`, +so the returned instances will have all the node `Buffer` methods and the +`Uint8Array` methods. Square bracket notation works as expected -- it returns a +single octet. + +The `Uint8Array` prototype remains unmodified. + +## tracking the latest node api + +This module tracks the Buffer API in the latest (unstable) version of node.js. The Buffer +API is considered **stable** in the +[node stability index](https://nodejs.org/docs/latest/api/documentation.html#documentation_stability_index), +so it is unlikely that there will ever be breaking changes. +Nonetheless, when/if the Buffer API changes in node, this module's API will change +accordingly. + +## related packages + +- [`buffer-reverse`](https://www.npmjs.com/package/buffer-reverse) - Reverse a buffer +- [`buffer-xor`](https://www.npmjs.com/package/buffer-xor) - Bitwise xor a buffer +- [`is-buffer`](https://www.npmjs.com/package/is-buffer) - Determine if an object is a Buffer without including the whole `Buffer` package + +## conversion packages + +### convert typed array to buffer + +Use [`typedarray-to-buffer`](https://www.npmjs.com/package/typedarray-to-buffer) to convert any kind of typed array to a `Buffer`. Does not perform a copy, so it's super fast. + +### convert buffer to typed array + +`Buffer` is a subclass of `Uint8Array` (which is a typed array). So there is no need to explicitly convert to typed array. Just use the buffer as a `Uint8Array`. + +### convert blob to buffer + +Use [`blob-to-buffer`](https://www.npmjs.com/package/blob-to-buffer) to convert a `Blob` to a `Buffer`. + +### convert buffer to blob + +To convert a `Buffer` to a `Blob`, use the `Blob` constructor: + +```js +var blob = new Blob([buffer]); +``` + +Optionally, specify a mimetype: + +```js +var blob = new Blob([buffer], { type: "text/html" }); +``` + +### convert arraybuffer to buffer + +To convert an `ArrayBuffer` to a `Buffer`, use the `Buffer.from` function. Does not perform a copy, so it's super fast. + +```js +var buffer = Buffer.from(arrayBuffer); +``` + +### convert buffer to arraybuffer + +To convert a `Buffer` to an `ArrayBuffer`, use the `.buffer` property (which is present on all `Uint8Array` objects): + +```js +var arrayBuffer = buffer.buffer.slice( + buffer.byteOffset, + buffer.byteOffset + buffer.byteLength +); +``` + +Alternatively, use the [`to-arraybuffer`](https://www.npmjs.com/package/to-arraybuffer) module. + +## performance + +See perf tests in `/perf`. + +`BrowserBuffer` is the browser `buffer` module (this repo). `Uint8Array` is included as a +sanity check (since `BrowserBuffer` uses `Uint8Array` under the hood, `Uint8Array` will +always be at least a bit faster). Finally, `NodeBuffer` is the node.js buffer module, +which is included to compare against. + +NOTE: Performance has improved since these benchmarks were taken. PR welcome to update the README. + +### Chrome 38 + +| Method | Operations | Accuracy | Sampled | Fastest | +| :----------------------------- | :----------------- | :------- | :------ | :-----: | +| BrowserBuffer#bracket-notation | 11,457,464 ops/sec | ±0.86% | 66 | ✓ | +| Uint8Array#bracket-notation | 10,824,332 ops/sec | ±0.74% | 65 | | +| | | | | +| BrowserBuffer#concat | 450,532 ops/sec | ±0.76% | 68 | | +| Uint8Array#concat | 1,368,911 ops/sec | ±1.50% | 62 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 903,001 ops/sec | ±0.96% | 67 | | +| Uint8Array#copy(16000) | 1,422,441 ops/sec | ±1.04% | 66 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 11,431,358 ops/sec | ±0.46% | 69 | | +| Uint8Array#copy(16) | 13,944,163 ops/sec | ±1.12% | 68 | ✓ | +| | | | | +| BrowserBuffer#new(16000) | 106,329 ops/sec | ±6.70% | 44 | | +| Uint8Array#new(16000) | 131,001 ops/sec | ±2.85% | 31 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 1,554,491 ops/sec | ±1.60% | 65 | | +| Uint8Array#new(16) | 6,623,930 ops/sec | ±1.66% | 65 | ✓ | +| | | | | +| BrowserBuffer#readDoubleBE | 112,830 ops/sec | ±0.51% | 69 | ✓ | +| DataView#getFloat64 | 93,500 ops/sec | ±0.57% | 68 | | +| | | | | +| BrowserBuffer#readFloatBE | 146,678 ops/sec | ±0.95% | 68 | ✓ | +| DataView#getFloat32 | 99,311 ops/sec | ±0.41% | 67 | | +| | | | | +| BrowserBuffer#readUInt32LE | 843,214 ops/sec | ±0.70% | 69 | ✓ | +| DataView#getUint32 | 103,024 ops/sec | ±0.64% | 67 | | +| | | | | +| BrowserBuffer#slice | 1,013,941 ops/sec | ±0.75% | 67 | | +| Uint8Array#subarray | 1,903,928 ops/sec | ±0.53% | 67 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 61,387 ops/sec | ±0.90% | 67 | | +| DataView#setFloat32 | 141,249 ops/sec | ±0.40% | 66 | ✓ | + +### Firefox 33 + +| Method | Operations | Accuracy | Sampled | Fastest | +| :----------------------------- | :----------------- | :------- | :------ | :-----: | +| BrowserBuffer#bracket-notation | 20,800,421 ops/sec | ±1.84% | 60 | | +| Uint8Array#bracket-notation | 20,826,235 ops/sec | ±2.02% | 61 | ✓ | +| | | | | +| BrowserBuffer#concat | 153,076 ops/sec | ±2.32% | 61 | | +| Uint8Array#concat | 1,255,674 ops/sec | ±8.65% | 52 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 1,105,312 ops/sec | ±1.16% | 63 | | +| Uint8Array#copy(16000) | 1,615,911 ops/sec | ±0.55% | 66 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 16,357,599 ops/sec | ±0.73% | 68 | | +| Uint8Array#copy(16) | 31,436,281 ops/sec | ±1.05% | 68 | ✓ | +| | | | | +| BrowserBuffer#new(16000) | 52,995 ops/sec | ±6.01% | 35 | | +| Uint8Array#new(16000) | 87,686 ops/sec | ±5.68% | 45 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 252,031 ops/sec | ±1.61% | 66 | | +| Uint8Array#new(16) | 8,477,026 ops/sec | ±0.49% | 68 | ✓ | +| | | | | +| BrowserBuffer#readDoubleBE | 99,871 ops/sec | ±0.41% | 69 | | +| DataView#getFloat64 | 285,663 ops/sec | ±0.70% | 68 | ✓ | +| | | | | +| BrowserBuffer#readFloatBE | 115,540 ops/sec | ±0.42% | 69 | | +| DataView#getFloat32 | 288,722 ops/sec | ±0.82% | 68 | ✓ | +| | | | | +| BrowserBuffer#readUInt32LE | 633,926 ops/sec | ±1.08% | 67 | ✓ | +| DataView#getUint32 | 294,808 ops/sec | ±0.79% | 64 | | +| | | | | +| BrowserBuffer#slice | 349,425 ops/sec | ±0.46% | 69 | | +| Uint8Array#subarray | 5,965,819 ops/sec | ±0.60% | 65 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 59,980 ops/sec | ±0.41% | 67 | | +| DataView#setFloat32 | 317,634 ops/sec | ±0.63% | 68 | ✓ | + +### Safari 8 + +| Method | Operations | Accuracy | Sampled | Fastest | +| :----------------------------- | :----------------- | :------- | :------ | :-----: | +| BrowserBuffer#bracket-notation | 10,279,729 ops/sec | ±2.25% | 56 | ✓ | +| Uint8Array#bracket-notation | 10,030,767 ops/sec | ±2.23% | 59 | | +| | | | | +| BrowserBuffer#concat | 144,138 ops/sec | ±1.38% | 65 | | +| Uint8Array#concat | 4,950,764 ops/sec | ±1.70% | 63 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 1,058,548 ops/sec | ±1.51% | 64 | | +| Uint8Array#copy(16000) | 1,409,666 ops/sec | ±1.17% | 65 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 6,282,529 ops/sec | ±1.88% | 58 | | +| Uint8Array#copy(16) | 11,907,128 ops/sec | ±2.87% | 58 | ✓ | +| | | | | +| BrowserBuffer#new(16000) | 101,663 ops/sec | ±3.89% | 57 | | +| Uint8Array#new(16000) | 22,050,818 ops/sec | ±6.51% | 46 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 176,072 ops/sec | ±2.13% | 64 | | +| Uint8Array#new(16) | 24,385,731 ops/sec | ±5.01% | 51 | ✓ | +| | | | | +| BrowserBuffer#readDoubleBE | 41,341 ops/sec | ±1.06% | 67 | | +| DataView#getFloat64 | 322,280 ops/sec | ±0.84% | 68 | ✓ | +| | | | | +| BrowserBuffer#readFloatBE | 46,141 ops/sec | ±1.06% | 65 | | +| DataView#getFloat32 | 337,025 ops/sec | ±0.43% | 69 | ✓ | +| | | | | +| BrowserBuffer#readUInt32LE | 151,551 ops/sec | ±1.02% | 66 | | +| DataView#getUint32 | 308,278 ops/sec | ±0.94% | 67 | ✓ | +| | | | | +| BrowserBuffer#slice | 197,365 ops/sec | ±0.95% | 66 | | +| Uint8Array#subarray | 9,558,024 ops/sec | ±3.08% | 58 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 17,518 ops/sec | ±1.03% | 63 | | +| DataView#setFloat32 | 319,751 ops/sec | ±0.48% | 68 | ✓ | + +### Node 0.11.14 + +| Method | Operations | Accuracy | Sampled | Fastest | +| :----------------------------- | :----------------- | :------- | :------ | :-----: | +| BrowserBuffer#bracket-notation | 10,489,828 ops/sec | ±3.25% | 90 | | +| Uint8Array#bracket-notation | 10,534,884 ops/sec | ±0.81% | 92 | ✓ | +| NodeBuffer#bracket-notation | 10,389,910 ops/sec | ±0.97% | 87 | | +| | | | | +| BrowserBuffer#concat | 487,830 ops/sec | ±2.58% | 88 | | +| Uint8Array#concat | 1,814,327 ops/sec | ±1.28% | 88 | ✓ | +| NodeBuffer#concat | 1,636,523 ops/sec | ±1.88% | 73 | | +| | | | | +| BrowserBuffer#copy(16000) | 1,073,665 ops/sec | ±0.77% | 90 | | +| Uint8Array#copy(16000) | 1,348,517 ops/sec | ±0.84% | 89 | ✓ | +| NodeBuffer#copy(16000) | 1,289,533 ops/sec | ±0.82% | 93 | | +| | | | | +| BrowserBuffer#copy(16) | 12,782,706 ops/sec | ±0.74% | 85 | | +| Uint8Array#copy(16) | 14,180,427 ops/sec | ±0.93% | 92 | ✓ | +| NodeBuffer#copy(16) | 11,083,134 ops/sec | ±1.06% | 89 | | +| | | | | +| BrowserBuffer#new(16000) | 141,678 ops/sec | ±3.30% | 67 | | +| Uint8Array#new(16000) | 161,491 ops/sec | ±2.96% | 60 | | +| NodeBuffer#new(16000) | 292,699 ops/sec | ±3.20% | 55 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 1,655,466 ops/sec | ±2.41% | 82 | | +| Uint8Array#new(16) | 14,399,926 ops/sec | ±0.91% | 94 | ✓ | +| NodeBuffer#new(16) | 3,894,696 ops/sec | ±0.88% | 92 | | +| | | | | +| BrowserBuffer#readDoubleBE | 109,582 ops/sec | ±0.75% | 93 | ✓ | +| DataView#getFloat64 | 91,235 ops/sec | ±0.81% | 90 | | +| NodeBuffer#readDoubleBE | 88,593 ops/sec | ±0.96% | 81 | | +| | | | | +| BrowserBuffer#readFloatBE | 139,854 ops/sec | ±1.03% | 85 | ✓ | +| DataView#getFloat32 | 98,744 ops/sec | ±0.80% | 89 | | +| NodeBuffer#readFloatBE | 92,769 ops/sec | ±0.94% | 93 | | +| | | | | +| BrowserBuffer#readUInt32LE | 710,861 ops/sec | ±0.82% | 92 | | +| DataView#getUint32 | 117,893 ops/sec | ±0.84% | 91 | | +| NodeBuffer#readUInt32LE | 851,412 ops/sec | ±0.72% | 93 | ✓ | +| | | | | +| BrowserBuffer#slice | 1,673,877 ops/sec | ±0.73% | 94 | | +| Uint8Array#subarray | 6,919,243 ops/sec | ±0.67% | 90 | ✓ | +| NodeBuffer#slice | 4,617,604 ops/sec | ±0.79% | 93 | | +| | | | | +| BrowserBuffer#writeFloatBE | 66,011 ops/sec | ±0.75% | 93 | | +| DataView#setFloat32 | 127,760 ops/sec | ±0.72% | 93 | ✓ | +| NodeBuffer#writeFloatBE | 103,352 ops/sec | ±0.83% | 93 | | + +### iojs 1.8.1 + +| Method | Operations | Accuracy | Sampled | Fastest | +| :----------------------------- | :----------------- | :------- | :------ | :-----: | +| BrowserBuffer#bracket-notation | 10,990,488 ops/sec | ±1.11% | 91 | | +| Uint8Array#bracket-notation | 11,268,757 ops/sec | ±0.65% | 97 | | +| NodeBuffer#bracket-notation | 11,353,260 ops/sec | ±0.83% | 94 | ✓ | +| | | | | +| BrowserBuffer#concat | 378,954 ops/sec | ±0.74% | 94 | | +| Uint8Array#concat | 1,358,288 ops/sec | ±0.97% | 87 | | +| NodeBuffer#concat | 1,934,050 ops/sec | ±1.11% | 78 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 894,538 ops/sec | ±0.56% | 84 | | +| Uint8Array#copy(16000) | 1,442,656 ops/sec | ±0.71% | 96 | | +| NodeBuffer#copy(16000) | 1,457,898 ops/sec | ±0.53% | 92 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 12,870,457 ops/sec | ±0.67% | 95 | | +| Uint8Array#copy(16) | 16,643,989 ops/sec | ±0.61% | 93 | ✓ | +| NodeBuffer#copy(16) | 14,885,848 ops/sec | ±0.74% | 94 | | +| | | | | +| BrowserBuffer#new(16000) | 109,264 ops/sec | ±4.21% | 63 | | +| Uint8Array#new(16000) | 138,916 ops/sec | ±1.87% | 61 | | +| NodeBuffer#new(16000) | 281,449 ops/sec | ±3.58% | 51 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 1,362,935 ops/sec | ±0.56% | 99 | | +| Uint8Array#new(16) | 6,193,090 ops/sec | ±0.64% | 95 | ✓ | +| NodeBuffer#new(16) | 4,745,425 ops/sec | ±1.56% | 90 | | +| | | | | +| BrowserBuffer#readDoubleBE | 118,127 ops/sec | ±0.59% | 93 | ✓ | +| DataView#getFloat64 | 107,332 ops/sec | ±0.65% | 91 | | +| NodeBuffer#readDoubleBE | 116,274 ops/sec | ±0.94% | 95 | | +| | | | | +| BrowserBuffer#readFloatBE | 150,326 ops/sec | ±0.58% | 95 | ✓ | +| DataView#getFloat32 | 110,541 ops/sec | ±0.57% | 98 | | +| NodeBuffer#readFloatBE | 121,599 ops/sec | ±0.60% | 87 | | +| | | | | +| BrowserBuffer#readUInt32LE | 814,147 ops/sec | ±0.62% | 93 | | +| DataView#getUint32 | 137,592 ops/sec | ±0.64% | 90 | | +| NodeBuffer#readUInt32LE | 931,650 ops/sec | ±0.71% | 96 | ✓ | +| | | | | +| BrowserBuffer#slice | 878,590 ops/sec | ±0.68% | 93 | | +| Uint8Array#subarray | 2,843,308 ops/sec | ±1.02% | 90 | | +| NodeBuffer#slice | 4,998,316 ops/sec | ±0.68% | 90 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 65,927 ops/sec | ±0.74% | 93 | | +| DataView#setFloat32 | 139,823 ops/sec | ±0.97% | 89 | ✓ | +| NodeBuffer#writeFloatBE | 135,763 ops/sec | ±0.65% | 96 | | +| | | | | + +## Testing the project + +First, install the project: + + npm install + +Then, to run tests in Node.js, run: + + npm run test-node + +To test locally in a browser, you can run: + + npm run test-browser-es5-local # For ES5 browsers that don't support ES6 + npm run test-browser-es6-local # For ES6 compliant browsers + +This will print out a URL that you can then open in a browser to run the tests, using [airtap](https://www.npmjs.com/package/airtap). + +To run automated browser tests using Saucelabs, ensure that your `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` environment variables are set, then run: + + npm test + +This is what's run in Travis, to check against various browsers. The list of browsers is kept in the `bin/airtap-es5.yml` and `bin/airtap-es6.yml` files. + +## JavaScript Standard Style + +This module uses [JavaScript Standard Style](https://github.com/feross/standard). + +[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + +To test that the code conforms to the style, `npm install` and run: + + ./node_modules/.bin/standard + +## credit + +This was originally forked from [buffer-browserify](https://github.com/toots/buffer-browserify). + +## Security Policies and Procedures + +The `buffer` team and community take all security bugs in `buffer` seriously. Please see our [security policies and procedures](https://github.com/feross/security) document to learn how to report issues. + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org), and other contributors. Originally forked from an MIT-licensed module by Romain Beauxis. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/buffer/index.d.ts b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/index.d.ts new file mode 100644 index 0000000000..d0d88902ab --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/index.d.ts @@ -0,0 +1,242 @@ +export class Buffer extends Uint8Array { + length: number; + write( + string: string, + offset?: number, + length?: number, + encoding?: string + ): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: "Buffer"; data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare( + otherBuffer: Buffer, + targetStart?: number, + targetEnd?: number, + sourceStart?: number, + sourceEnd?: number + ): number; + copy( + targetBuffer: Buffer, + targetStart?: number, + sourceStart?: number, + sourceEnd?: number + ): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE( + value: number, + offset: number, + byteLength: number, + noAssert?: boolean + ): number; + writeUIntBE( + value: number, + offset: number, + byteLength: number, + noAssert?: boolean + ): number; + writeIntLE( + value: number, + offset: number, + byteLength: number, + noAssert?: boolean + ): number; + writeIntBE( + value: number, + offset: number, + byteLength: number, + noAssert?: boolean + ): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + reverse(): this; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf( + value: string | number | Buffer, + byteOffset?: number, + encoding?: string + ): number; + lastIndexOf( + value: string | number | Buffer, + byteOffset?: number, + encoding?: string + ): number; + includes( + value: string | number | Buffer, + byteOffset?: number, + encoding?: string + ): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor(str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor(size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor(array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor(arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor(array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor(buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from( + arrayBuffer: ArrayBuffer, + byteOffset?: number, + length?: number + ): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer | Uint8Array): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initializing + */ + static alloc( + size: number, + fill?: string | Buffer | number, + encoding?: string + ): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/buffer/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/index.js new file mode 100644 index 0000000000..c291508d98 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/index.js @@ -0,0 +1,1964 @@ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ + +"use strict"; + +var base64 = require("base64-js"); +var ieee754 = require("ieee754"); +var customInspectSymbol = + typeof Symbol === "function" && typeof Symbol["for"] === "function" // eslint-disable-line dot-notation + ? Symbol["for"]("nodejs.util.inspect.custom") // eslint-disable-line dot-notation + : null; + +exports.Buffer = Buffer; +exports.SlowBuffer = SlowBuffer; +exports.INSPECT_MAX_BYTES = 50; + +var K_MAX_LENGTH = 0x7fffffff; +exports.kMaxLength = K_MAX_LENGTH; + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Print warning and recommend using `buffer` v4.x which has an Object + * implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * We report that the browser does not support typed arrays if the are not subclassable + * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` + * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support + * for __proto__ and has a buggy typed array implementation. + */ +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport(); + +if ( + !Buffer.TYPED_ARRAY_SUPPORT && + typeof console !== "undefined" && + typeof console.error === "function" +) { + console.error( + "This browser lacks typed array (Uint8Array) support which is required by " + + "`buffer` v5.x. Use `buffer` v4.x if you require old browser support." + ); +} + +function typedArraySupport() { + // Can typed array instances can be augmented? + try { + var arr = new Uint8Array(1); + var proto = { + foo: function () { + return 42; + } + }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42; + } catch (e) { + return false; + } +} + +Object.defineProperty(Buffer.prototype, "parent", { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined; + return this.buffer; + } +}); + +Object.defineProperty(Buffer.prototype, "offset", { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined; + return this.byteOffset; + } +}); + +function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError( + 'The value "' + length + '" is invalid for option "size"' + ); + } + // Return an augmented `Uint8Array` instance + var buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer.prototype); + return buf; +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer(arg, encodingOrOffset, length) { + // Common case. + if (typeof arg === "number") { + if (typeof encodingOrOffset === "string") { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); +} + +Buffer.poolSize = 8192; // not used by this implementation + +function from(value, encodingOrOffset, length) { + if (typeof value === "string") { + return fromString(value, encodingOrOffset); + } + + if (ArrayBuffer.isView(value)) { + return fromArrayView(value); + } + + if (value == null) { + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, " + + "or Array-like Object. Received type " + + typeof value + ); + } + + if ( + isInstance(value, ArrayBuffer) || + (value && isInstance(value.buffer, ArrayBuffer)) + ) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + + if ( + typeof SharedArrayBuffer !== "undefined" && + (isInstance(value, SharedArrayBuffer) || + (value && isInstance(value.buffer, SharedArrayBuffer))) + ) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + + if (typeof value === "number") { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ); + } + + var valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length); + } + + var b = fromObject(value); + if (b) return b; + + if ( + typeof Symbol !== "undefined" && + Symbol.toPrimitive != null && + typeof value[Symbol.toPrimitive] === "function" + ) { + return Buffer.from( + value[Symbol.toPrimitive]("string"), + encodingOrOffset, + length + ); + } + + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, " + + "or Array-like Object. Received type " + + typeof value + ); +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); +}; + +// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: +// https://github.com/feross/buffer/pull/148 +Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype); +Object.setPrototypeOf(Buffer, Uint8Array); + +function assertSize(size) { + if (typeof size !== "number") { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError( + 'The value "' + size + '" is invalid for option "size"' + ); + } +} + +function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpreted as a start offset. + return typeof encoding === "string" + ? createBuffer(size).fill(fill, encoding) + : createBuffer(size).fill(fill); + } + return createBuffer(size); +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding); +}; + +function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(size); +}; +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size); +}; + +function fromString(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + + var length = byteLength(string, encoding) | 0; + var buf = createBuffer(length); + + var actual = buf.write(string, encoding); + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual); + } + + return buf; +} + +function fromArrayLike(array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0; + var buf = createBuffer(length); + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf; +} + +function fromArrayView(arrayView) { + if (isInstance(arrayView, Uint8Array)) { + var copy = new Uint8Array(arrayView); + return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength); + } + return fromArrayLike(arrayView); +} + +function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + + var buf; + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array); + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(buf, Buffer.prototype); + + return buf; +} + +function fromObject(obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0; + var buf = createBuffer(len); + + if (buf.length === 0) { + return buf; + } + + obj.copy(buf, 0, 0, len); + return buf; + } + + if (obj.length !== undefined) { + if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + + if (obj.type === "Buffer" && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } +} + +function checked(length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError( + "Attempt to allocate Buffer larger than maximum " + + "size: 0x" + + K_MAX_LENGTH.toString(16) + + " bytes" + ); + } + return length | 0; +} + +function SlowBuffer(length) { + if (+length != length) { + // eslint-disable-line eqeqeq + length = 0; + } + return Buffer.alloc(+length); +} + +Buffer.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false +}; + +Buffer.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength); + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ); + } + + if (a === b) return 0; + + var x = a.length; + var y = b.length; + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + + if (x < y) return -1; + if (y < x) return 1; + return 0; +}; + +Buffer.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } +}; + +Buffer.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + + if (list.length === 0) { + return Buffer.alloc(0); + } + + var i; + if (length === undefined) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + + var buffer = Buffer.allocUnsafe(length); + var pos = 0; + for (i = 0; i < list.length; ++i) { + var buf = list[i]; + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer.length) { + Buffer.from(buf).copy(buffer, pos); + } else { + Uint8Array.prototype.set.call(buffer, buf, pos); + } + } else if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } else { + buf.copy(buffer, pos); + } + pos += buf.length; + } + return buffer; +}; + +function byteLength(string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + "Received type " + + typeof string + ); + } + + var len = string.length; + var mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) return 0; + + // Use a for loop to avoid recursion + var loweredCase = false; + for (;;) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8 + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } +} +Buffer.byteLength = byteLength; + +function slowToString(encoding, start, end) { + var loweredCase = false; + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0; + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return ""; + } + + if (end === undefined || end > this.length) { + end = this.length; + } + + if (end <= 0) { + return ""; + } + + // Force coercion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0; + start >>>= 0; + + if (end <= start) { + return ""; + } + + if (!encoding) encoding = "utf8"; + + while (true) { + switch (encoding) { + case "hex": + return hexSlice(this, start, end); + + case "utf8": + case "utf-8": + return utf8Slice(this, start, end); + + case "ascii": + return asciiSlice(this, start, end); + + case "latin1": + case "binary": + return latin1Slice(this, start, end); + + case "base64": + return base64Slice(this, start, end); + + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return utf16leSlice(this, start, end); + + default: + if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); + encoding = (encoding + "").toLowerCase(); + loweredCase = true; + } + } +} + +// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) +// to detect a Buffer instance. It's not possible to use `instanceof Buffer` +// reliably in a browserify context because there could be multiple different +// copies of the 'buffer' package in use. This method works even for Buffer +// instances that were created from another copy of the `buffer` package. +// See: https://github.com/feross/buffer/issues/154 +Buffer.prototype._isBuffer = true; + +function swap(b, n, m) { + var i = b[n]; + b[n] = b[m]; + b[m] = i; +} + +Buffer.prototype.swap16 = function swap16() { + var len = this.length; + if (len % 2 !== 0) { + throw new RangeError("Buffer size must be a multiple of 16-bits"); + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this; +}; + +Buffer.prototype.swap32 = function swap32() { + var len = this.length; + if (len % 4 !== 0) { + throw new RangeError("Buffer size must be a multiple of 32-bits"); + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this; +}; + +Buffer.prototype.swap64 = function swap64() { + var len = this.length; + if (len % 8 !== 0) { + throw new RangeError("Buffer size must be a multiple of 64-bits"); + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this; +}; + +Buffer.prototype.toString = function toString() { + var length = this.length; + if (length === 0) return ""; + if (arguments.length === 0) return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); +}; + +Buffer.prototype.toLocaleString = Buffer.prototype.toString; + +Buffer.prototype.equals = function equals(b) { + if (!Buffer.isBuffer(b)) throw new TypeError("Argument must be a Buffer"); + if (this === b) return true; + return Buffer.compare(this, b) === 0; +}; + +Buffer.prototype.inspect = function inspect() { + var str = ""; + var max = exports.INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max) + .replace(/(.{2})/g, "$1 ") + .trim(); + if (this.length > max) str += " ... "; + return ""; +}; +if (customInspectSymbol) { + Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect; +} + +Buffer.prototype.compare = function compare( + target, + start, + end, + thisStart, + thisEnd +) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength); + } + if (!Buffer.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. ' + + "Received type " + + typeof target + ); + } + + if (start === undefined) { + start = 0; + } + if (end === undefined) { + end = target ? target.length : 0; + } + if (thisStart === undefined) { + thisStart = 0; + } + if (thisEnd === undefined) { + thisEnd = this.length; + } + + if ( + start < 0 || + end > target.length || + thisStart < 0 || + thisEnd > this.length + ) { + throw new RangeError("out of range index"); + } + + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + + if (this === target) return 0; + + var x = thisEnd - thisStart; + var y = end - start; + var len = Math.min(x, y); + + var thisCopy = this.slice(thisStart, thisEnd); + var targetCopy = target.slice(start, end); + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + + if (x < y) return -1; + if (y < x) return 1; + return 0; +}; + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1; + + // Normalize byteOffset + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff; + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000; + } + byteOffset = +byteOffset; // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : buffer.length - 1; + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset; + if (byteOffset >= buffer.length) { + if (dir) return -1; + else byteOffset = buffer.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0; + else return -1; + } + + // Normalize val + if (typeof val === "string") { + val = Buffer.from(val, encoding); + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 0xff; // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset); + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir); + } + + throw new TypeError("val must be string, number or Buffer"); +} + +function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + var indexSize = 1; + var arrLength = arr.length; + var valLength = val.length; + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase(); + if ( + encoding === "ucs2" || + encoding === "ucs-2" || + encoding === "utf16le" || + encoding === "utf-16le" + ) { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + + function read(buf, i) { + if (indexSize === 1) { + return buf[i]; + } else { + return buf.readUInt16BE(i * indexSize); + } + } + + var i; + if (dir) { + var foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + var found = true; + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) return i; + } + } + + return -1; +} + +Buffer.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; +}; + +Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); +}; + +Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); +}; + +function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + var remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + + var strLen = string.length; + + if (length > strLen / 2) { + length = strLen / 2; + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) return i; + buf[offset + i] = parsed; + } + return i; +} + +function utf8Write(buf, string, offset, length) { + return blitBuffer( + utf8ToBytes(string, buf.length - offset), + buf, + offset, + length + ); +} + +function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); +} + +function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); +} + +function ucs2Write(buf, string, offset, length) { + return blitBuffer( + utf16leToBytes(string, buf.length - offset), + buf, + offset, + length + ); +} + +Buffer.prototype.write = function write(string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = "utf8"; + length = this.length; + offset = 0; + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === "string") { + encoding = offset; + length = this.length; + offset = 0; + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === undefined) encoding = "utf8"; + } else { + encoding = length; + length = undefined; + } + } else { + throw new Error( + "Buffer.write(string, encoding, offset[, length]) is no longer supported" + ); + } + + var remaining = this.length - offset; + if (length === undefined || length > remaining) length = remaining; + + if ( + (string.length > 0 && (length < 0 || offset < 0)) || + offset > this.length + ) { + throw new RangeError("Attempt to write outside buffer bounds"); + } + + if (!encoding) encoding = "utf8"; + + var loweredCase = false; + for (;;) { + switch (encoding) { + case "hex": + return hexWrite(this, string, offset, length); + + case "utf8": + case "utf-8": + return utf8Write(this, string, offset, length); + + case "ascii": + case "latin1": + case "binary": + return asciiWrite(this, string, offset, length); + + case "base64": + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length); + + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(this, string, offset, length); + + default: + if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } +}; + +Buffer.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0) + }; +}; + +function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } +} + +function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + var res = []; + + var i = start; + while (i < end) { + var firstByte = buf[i]; + var codePoint = null; + var bytesPerSequence = + firstByte > 0xef ? 4 : firstByte > 0xdf ? 3 : firstByte > 0xbf ? 2 : 1; + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint; + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 0xc0) === 0x80) { + tempCodePoint = ((firstByte & 0x1f) << 0x6) | (secondByte & 0x3f); + if (tempCodePoint > 0x7f) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 0xc0) === 0x80 && (thirdByte & 0xc0) === 0x80) { + tempCodePoint = + ((firstByte & 0xf) << 0xc) | + ((secondByte & 0x3f) << 0x6) | + (thirdByte & 0x3f); + if ( + tempCodePoint > 0x7ff && + (tempCodePoint < 0xd800 || tempCodePoint > 0xdfff) + ) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ( + (secondByte & 0xc0) === 0x80 && + (thirdByte & 0xc0) === 0x80 && + (fourthByte & 0xc0) === 0x80 + ) { + tempCodePoint = + ((firstByte & 0xf) << 0x12) | + ((secondByte & 0x3f) << 0xc) | + ((thirdByte & 0x3f) << 0x6) | + (fourthByte & 0x3f); + if (tempCodePoint > 0xffff && tempCodePoint < 0x110000) { + codePoint = tempCodePoint; + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xfffd; + bytesPerSequence = 1; + } else if (codePoint > 0xffff) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000; + res.push(((codePoint >>> 10) & 0x3ff) | 0xd800); + codePoint = 0xdc00 | (codePoint & 0x3ff); + } + + res.push(codePoint); + i += bytesPerSequence; + } + + return decodeCodePointsArray(res); +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000; + +function decodeCodePointsArray(codePoints) { + var len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = ""; + var i = 0; + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, (i += MAX_ARGUMENTS_LENGTH)) + ); + } + return res; +} + +function asciiSlice(buf, start, end) { + var ret = ""; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7f); + } + return ret; +} + +function latin1Slice(buf, start, end) { + var ret = ""; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret; +} + +function hexSlice(buf, start, end) { + var len = buf.length; + + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + + var out = ""; + for (var i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]]; + } + return out; +} + +function utf16leSlice(buf, start, end) { + var bytes = buf.slice(start, end); + var res = ""; + // If bytes.length is odd, the last 8 bits must be ignored (same as node.js) + for (var i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res; +} + +Buffer.prototype.slice = function slice(start, end) { + var len = this.length; + start = ~~start; + end = end === undefined ? len : ~~end; + + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + + if (end < start) end = start; + + var newBuf = this.subarray(start, end); + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(newBuf, Buffer.prototype); + + return newBuf; +}; + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) + throw new RangeError("offset is not uint"); + if (offset + ext > length) + throw new RangeError("Trying to access beyond buffer length"); +} + +Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE( + offset, + byteLength, + noAssert +) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + + return val; +}; + +Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE( + offset, + byteLength, + noAssert +) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength, this.length); + } + + var val = this[offset + --byteLength]; + var mul = 1; + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul; + } + + return val; +}; + +Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8( + offset, + noAssert +) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + return this[offset]; +}; + +Buffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE( + offset, + noAssert +) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] | (this[offset + 1] << 8); +}; + +Buffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE( + offset, + noAssert +) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return (this[offset] << 8) | this[offset + 1]; +}; + +Buffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE( + offset, + noAssert +) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return ( + (this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + + this[offset + 3] * 0x1000000 + ); +}; + +Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE( + offset, + noAssert +) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return ( + this[offset] * 0x1000000 + + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) + ); +}; + +Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + mul *= 0x80; + + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + + return val; +}; + +Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var i = byteLength; + var mul = 1; + var val = this[offset + --i]; + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul; + } + mul *= 0x80; + + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + + return val; +}; + +Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + if (!(this[offset] & 0x80)) return this[offset]; + return (0xff - this[offset] + 1) * -1; +}; + +Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset] | (this[offset + 1] << 8); + return val & 0x8000 ? val | 0xffff0000 : val; +}; + +Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset + 1] | (this[offset] << 8); + return val & 0x8000 ? val | 0xffff0000 : val; +}; + +Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return ( + this[offset] | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) + ); +}; + +Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return ( + (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3] + ); +}; + +Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); +}; + +Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); +}; + +Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); +}; + +Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); +}; + +function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) + throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) + throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) throw new RangeError("Index out of range"); +} + +Buffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE( + value, + offset, + byteLength, + noAssert +) { + value = +value; + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var mul = 1; + var i = 0; + this[offset] = value & 0xff; + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xff; + } + + return offset + byteLength; +}; + +Buffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE( + value, + offset, + byteLength, + noAssert +) { + value = +value; + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var i = byteLength - 1; + var mul = 1; + this[offset + i] = value & 0xff; + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xff; + } + + return offset + byteLength; +}; + +Buffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8( + value, + offset, + noAssert +) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); + this[offset] = value & 0xff; + return offset + 1; +}; + +Buffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE( + value, + offset, + noAssert +) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + return offset + 2; +}; + +Buffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE( + value, + offset, + noAssert +) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 0xff; + return offset + 2; +}; + +Buffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE( + value, + offset, + noAssert +) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 0xff; + return offset + 4; +}; + +Buffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE( + value, + offset, + noAssert +) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 0xff; + return offset + 4; +}; + +Buffer.prototype.writeIntLE = function writeIntLE( + value, + offset, + byteLength, + noAssert +) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = 0; + var mul = 1; + var sub = 0; + this[offset] = value & 0xff; + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = (((value / mul) >> 0) - sub) & 0xff; + } + + return offset + byteLength; +}; + +Buffer.prototype.writeIntBE = function writeIntBE( + value, + offset, + byteLength, + noAssert +) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = byteLength - 1; + var mul = 1; + var sub = 0; + this[offset + i] = value & 0xff; + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = (((value / mul) >> 0) - sub) & 0xff; + } + + return offset + byteLength; +}; + +Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); + if (value < 0) value = 0xff + value + 1; + this[offset] = value & 0xff; + return offset + 1; +}; + +Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + return offset + 2; +}; + +Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + this[offset] = value >>> 8; + this[offset + 1] = value & 0xff; + return offset + 2; +}; + +Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; +}; + +Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + if (value < 0) value = 0xffffffff + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 0xff; + return offset + 4; +}; + +function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError("Index out of range"); + if (offset < 0) throw new RangeError("Index out of range"); +} + +function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754( + buf, + value, + offset, + 4, + 3.4028234663852886e38, + -3.4028234663852886e38 + ); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; +} + +Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); +}; + +Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); +}; + +function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754( + buf, + value, + offset, + 8, + 1.7976931348623157e308, + -1.7976931348623157e308 + ); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE( + value, + offset, + noAssert +) { + return writeDouble(this, value, offset, true, noAssert); +}; + +Buffer.prototype.writeDoubleBE = function writeDoubleBE( + value, + offset, + noAssert +) { + return writeDouble(this, value, offset, false, noAssert); +}; + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy(target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) + throw new TypeError("argument should be a Buffer"); + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; + + // Copy 0 bytes; we're done + if (end === start) return 0; + if (target.length === 0 || this.length === 0) return 0; + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError("targetStart out of bounds"); + } + if (start < 0 || start >= this.length) + throw new RangeError("Index out of range"); + if (end < 0) throw new RangeError("sourceEnd out of bounds"); + + // Are we oob? + if (end > this.length) end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + + var len = end - start; + + if ( + this === target && + typeof Uint8Array.prototype.copyWithin === "function" + ) { + // Use built-in when available, missing from IE11 + this.copyWithin(targetStart, start, end); + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ); + } + + return len; +}; + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill(val, start, end, encoding) { + // Handle string cases: + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + if (encoding !== undefined && typeof encoding !== "string") { + throw new TypeError("encoding must be a string"); + } + if (typeof encoding === "string" && !Buffer.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + if (val.length === 1) { + var code = val.charCodeAt(0); + if ((encoding === "utf8" && code < 128) || encoding === "latin1") { + // Fast path: If `val` fits into a single byte, use that numeric value. + val = code; + } + } + } else if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError("Out of range index"); + } + + if (end <= start) { + return this; + } + + start = start >>> 0; + end = end === undefined ? this.length : end >>> 0; + + if (!val) val = 0; + + var i; + if (typeof val === "number") { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding); + var len = bytes.length; + if (len === 0) { + throw new TypeError( + 'The value "' + val + '" is invalid for argument "value"' + ); + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + + return this; +}; + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + +function base64clean(str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split("=")[0]; + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, ""); + // Node converts strings with length < 2 to '' + if (str.length < 2) return ""; + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; +} + +function utf8ToBytes(string, units) { + units = units || Infinity; + var codePoint; + var length = string.length; + var leadSurrogate = null; + var bytes = []; + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + + // is surrogate component + if (codePoint > 0xd7ff && codePoint < 0xe000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xdbff) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + continue; + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + continue; + } + + // valid lead + leadSurrogate = codePoint; + + continue; + } + + // 2 leads in a row + if (codePoint < 0xdc00) { + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + leadSurrogate = codePoint; + continue; + } + + // valid surrogate pair + codePoint = + (((leadSurrogate - 0xd800) << 10) | (codePoint - 0xdc00)) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + } + + leadSurrogate = null; + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break; + bytes.push(codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break; + bytes.push((codePoint >> 0x6) | 0xc0, (codePoint & 0x3f) | 0x80); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break; + bytes.push( + (codePoint >> 0xc) | 0xe0, + ((codePoint >> 0x6) & 0x3f) | 0x80, + (codePoint & 0x3f) | 0x80 + ); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break; + bytes.push( + (codePoint >> 0x12) | 0xf0, + ((codePoint >> 0xc) & 0x3f) | 0x80, + ((codePoint >> 0x6) & 0x3f) | 0x80, + (codePoint & 0x3f) | 0x80 + ); + } else { + throw new Error("Invalid code point"); + } + } + + return bytes; +} + +function asciiToBytes(str) { + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xff); + } + return byteArray; +} + +function utf16leToBytes(str, units) { + var c, hi, lo; + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break; + + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + + return byteArray; +} + +function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); +} + +function blitBuffer(src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break; + dst[i + offset] = src[i]; + } + return i; +} + +// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass +// the `instanceof` check but they should be treated as of that type. +// See: https://github.com/feross/buffer/issues/166 +function isInstance(obj, type) { + return ( + obj instanceof type || + (obj != null && + obj.constructor != null && + obj.constructor.name != null && + obj.constructor.name === type.name) + ); +} +function numberIsNaN(obj) { + // For IE11 support + return obj !== obj; // eslint-disable-line no-self-compare +} + +// Create lookup table for `toString('hex')` +// See: https://github.com/feross/buffer/issues/219 +var hexSliceLookupTable = (function () { + var alphabet = "0123456789abcdef"; + var table = new Array(256); + for (var i = 0; i < 16; ++i) { + var i16 = i * 16; + for (var j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table; +})(); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/buffer/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/package.json new file mode 100644 index 0000000000..97514599e8 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/buffer/package.json @@ -0,0 +1,127 @@ +{ + "_from": "buffer@^5.5.0", + "_id": "buffer@5.7.1", + "_inBundle": false, + "_integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "_location": "/buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "buffer@^5.5.0", + "name": "buffer", + "escapedName": "buffer", + "rawSpec": "^5.5.0", + "saveSpec": null, + "fetchSpec": "^5.5.0" + }, + "_requiredBy": [ + "/bl" + ], + "_resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "_shasum": "ba62e7c13133053582197160851a8f648e99eed0", + "_spec": "buffer@^5.5.0", + "_where": "/var/task/node_modules/bl", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/buffer/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Romain Beauxis", + "email": "toots@rastageeks.org" + }, + { + "name": "James Halliday", + "email": "mail@substack.net" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + }, + "deprecated": false, + "description": "Node.js Buffer API, for the browser", + "devDependencies": { + "airtap": "^3.0.0", + "benchmark": "^2.1.4", + "browserify": "^17.0.0", + "concat-stream": "^2.0.0", + "hyperquest": "^2.1.3", + "is-buffer": "^2.0.4", + "is-nan": "^1.3.0", + "split": "^1.0.1", + "standard": "*", + "tape": "^5.0.1", + "through2": "^4.0.2", + "uglify-js": "^3.11.3" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/feross/buffer", + "jspm": { + "map": { + "./index.js": { + "node": "@node/buffer" + } + } + }, + "keywords": [ + "arraybuffer", + "browser", + "browserify", + "buffer", + "compatible", + "dataview", + "uint8array" + ], + "license": "MIT", + "main": "index.js", + "name": "buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/buffer.git" + }, + "scripts": { + "perf": "browserify --debug perf/bracket-notation.js > perf/bundle.js && open perf/index.html", + "perf-node": "node perf/bracket-notation.js && node perf/concat.js && node perf/copy-big.js && node perf/copy.js && node perf/new-big.js && node perf/new.js && node perf/readDoubleBE.js && node perf/readFloatBE.js && node perf/readUInt32LE.js && node perf/slice.js && node perf/writeFloatBE.js", + "size": "browserify -r ./ | uglifyjs -c -m | gzip | wc -c", + "test": "standard && node ./bin/test.js", + "test-browser-es5": "airtap -- test/*.js", + "test-browser-es5-local": "airtap --local -- test/*.js", + "test-browser-es6": "airtap -- test/*.js test/node/*.js", + "test-browser-es6-local": "airtap --local -- test/*.js test/node/*.js", + "test-node": "tape test/*.js test/node/*.js", + "update-authors": "./bin/update-authors.sh" + }, + "standard": { + "ignore": [ + "test/node/**/*.js", + "test/common.js", + "test/_polyfill.js", + "perf/**/*.js" + ], + "globals": [ + "SharedArrayBuffer" + ] + }, + "types": "index.d.ts", + "version": "5.7.1" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/chownr/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/LICENSE new file mode 100644 index 0000000000..19129e315f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/chownr/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/README.md new file mode 100644 index 0000000000..70e9a54a32 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/README.md @@ -0,0 +1,3 @@ +Like `chown -R`. + +Takes the same arguments as `fs.chown()` diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/chownr/chownr.js b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/chownr.js new file mode 100644 index 0000000000..9cfb1eb477 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/chownr.js @@ -0,0 +1,154 @@ +"use strict"; +const fs = require("fs"); +const path = require("path"); + +/* istanbul ignore next */ +const LCHOWN = fs.lchown ? "lchown" : "chown"; +/* istanbul ignore next */ +const LCHOWNSYNC = fs.lchownSync ? "lchownSync" : "chownSync"; + +/* istanbul ignore next */ +const needEISDIRHandled = + fs.lchown && + !process.version.match(/v1[1-9]+\./) && + !process.version.match(/v10\.[6-9]/); + +const lchownSync = (path, uid, gid) => { + try { + return fs[LCHOWNSYNC](path, uid, gid); + } catch (er) { + if (er.code !== "ENOENT") throw er; + } +}; + +/* istanbul ignore next */ +const chownSync = (path, uid, gid) => { + try { + return fs.chownSync(path, uid, gid); + } catch (er) { + if (er.code !== "ENOENT") throw er; + } +}; + +/* istanbul ignore next */ +const handleEISDIR = needEISDIRHandled + ? (path, uid, gid, cb) => (er) => { + // Node prior to v10 had a very questionable implementation of + // fs.lchown, which would always try to call fs.open on a directory + // Fall back to fs.chown in those cases. + if (!er || er.code !== "EISDIR") cb(er); + else fs.chown(path, uid, gid, cb); + } + : (_, __, ___, cb) => cb; + +/* istanbul ignore next */ +const handleEISDirSync = needEISDIRHandled + ? (path, uid, gid) => { + try { + return lchownSync(path, uid, gid); + } catch (er) { + if (er.code !== "EISDIR") throw er; + chownSync(path, uid, gid); + } + } + : (path, uid, gid) => lchownSync(path, uid, gid); + +// fs.readdir could only accept an options object as of node v6 +const nodeVersion = process.version; +let readdir = (path, options, cb) => fs.readdir(path, options, cb); +let readdirSync = (path, options) => fs.readdirSync(path, options); +/* istanbul ignore next */ +if (/^v4\./.test(nodeVersion)) + readdir = (path, options, cb) => fs.readdir(path, cb); + +const chown = (cpath, uid, gid, cb) => { + fs[LCHOWN]( + cpath, + uid, + gid, + handleEISDIR(cpath, uid, gid, (er) => { + // Skip ENOENT error + cb(er && er.code !== "ENOENT" ? er : null); + }) + ); +}; + +const chownrKid = (p, child, uid, gid, cb) => { + if (typeof child === "string") + return fs.lstat(path.resolve(p, child), (er, stats) => { + // Skip ENOENT error + if (er) return cb(er.code !== "ENOENT" ? er : null); + stats.name = child; + chownrKid(p, stats, uid, gid, cb); + }); + + if (child.isDirectory()) { + chownr(path.resolve(p, child.name), uid, gid, (er) => { + if (er) return cb(er); + const cpath = path.resolve(p, child.name); + chown(cpath, uid, gid, cb); + }); + } else { + const cpath = path.resolve(p, child.name); + chown(cpath, uid, gid, cb); + } +}; + +const chownr = (p, uid, gid, cb) => { + readdir(p, { withFileTypes: true }, (er, children) => { + // any error other than ENOTDIR or ENOTSUP means it's not readable, + // or doesn't exist. give up. + if (er) { + if (er.code === "ENOENT") return cb(); + else if (er.code !== "ENOTDIR" && er.code !== "ENOTSUP") return cb(er); + } + if (er || !children.length) return chown(p, uid, gid, cb); + + let len = children.length; + let errState = null; + const then = (er) => { + if (errState) return; + if (er) return cb((errState = er)); + if (--len === 0) return chown(p, uid, gid, cb); + }; + + children.forEach((child) => chownrKid(p, child, uid, gid, then)); + }); +}; + +const chownrKidSync = (p, child, uid, gid) => { + if (typeof child === "string") { + try { + const stats = fs.lstatSync(path.resolve(p, child)); + stats.name = child; + child = stats; + } catch (er) { + if (er.code === "ENOENT") return; + else throw er; + } + } + + if (child.isDirectory()) chownrSync(path.resolve(p, child.name), uid, gid); + + handleEISDirSync(path.resolve(p, child.name), uid, gid); +}; + +const chownrSync = (p, uid, gid) => { + let children; + try { + children = readdirSync(p, { withFileTypes: true }); + } catch (er) { + if (er.code === "ENOENT") return; + else if (er.code === "ENOTDIR" || er.code === "ENOTSUP") + return handleEISDirSync(p, uid, gid); + else throw er; + } + + if (children && children.length) + children.forEach((child) => chownrKidSync(p, child, uid, gid)); + + return handleEISDirSync(p, uid, gid); +}; + +module.exports = chownr; +chownr.sync = chownrSync; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/chownr/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/package.json new file mode 100644 index 0000000000..76bb00be34 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/chownr/package.json @@ -0,0 +1,62 @@ +{ + "_from": "chownr@^1.1.1", + "_id": "chownr@1.1.4", + "_inBundle": false, + "_integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "_location": "/chownr", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "chownr@^1.1.1", + "name": "chownr", + "escapedName": "chownr", + "rawSpec": "^1.1.1", + "saveSpec": null, + "fetchSpec": "^1.1.1" + }, + "_requiredBy": [ + "/tar-fs" + ], + "_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "_shasum": "6fc9d7b42d32a583596337666e7d08084da2cc6b", + "_spec": "chownr@^1.1.1", + "_where": "/var/task/node_modules/tar-fs", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/chownr/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "like `chown -R`", + "devDependencies": { + "mkdirp": "0.3", + "rimraf": "^2.7.1", + "tap": "^14.10.6" + }, + "files": [ + "chownr.js" + ], + "homepage": "https://github.com/isaacs/chownr#readme", + "license": "ISC", + "main": "chownr.js", + "name": "chownr", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/chownr.git" + }, + "scripts": { + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "test": "tap" + }, + "tap": { + "check-coverage": true + }, + "version": "1.1.4" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/index.js new file mode 100644 index 0000000000..163d11fe03 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/index.js @@ -0,0 +1,32 @@ +/* eslint-disable babel/new-cap, xo/throw-new-error */ +"use strict"; +module.exports = function (str, pos) { + if (str === null || str === undefined) { + throw TypeError(); + } + + str = String(str); + + var size = str.length; + var i = pos ? Number(pos) : 0; + + if (Number.isNaN(i)) { + i = 0; + } + + if (i < 0 || i >= size) { + return undefined; + } + + var first = str.charCodeAt(i); + + if (first >= 0xd800 && first <= 0xdbff && size > i + 1) { + var second = str.charCodeAt(i + 1); + + if (second >= 0xdc00 && second <= 0xdfff) { + return (first - 0xd800) * 0x400 + second - 0xdc00 + 0x10000; + } + } + + return first; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/license b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/package.json new file mode 100644 index 0000000000..b72cffc3b7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/package.json @@ -0,0 +1,70 @@ +{ + "_from": "code-point-at@^1.0.0", + "_id": "code-point-at@1.1.0", + "_inBundle": false, + "_integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "_location": "/code-point-at", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "code-point-at@^1.0.0", + "name": "code-point-at", + "escapedName": "code-point-at", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/string-width" + ], + "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", + "_spec": "code-point-at@^1.0.0", + "_where": "/var/task/node_modules/string-width", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/code-point-at/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "ES2015 `String#codePointAt()` ponyfill", + "devDependencies": { + "ava": "*", + "xo": "^0.16.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/code-point-at#readme", + "keywords": [ + "es2015", + "ponyfill", + "polyfill", + "shim", + "string", + "str", + "code", + "point", + "at", + "codepoint", + "unicode" + ], + "license": "MIT", + "name": "code-point-at", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/code-point-at.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/readme.md b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/readme.md new file mode 100644 index 0000000000..64720ea0b3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/code-point-at/readme.md @@ -0,0 +1,29 @@ +# code-point-at [![Build Status](https://travis-ci.org/sindresorhus/code-point-at.svg?branch=master)](https://travis-ci.org/sindresorhus/code-point-at) + +> ES2015 [`String#codePointAt()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt) [ponyfill](https://ponyfill.com) + +## Install + +``` +$ npm install --save code-point-at +``` + +## Usage + +```js +var codePointAt = require("code-point-at"); + +codePointAt("🐴"); +//=> 128052 + +codePointAt("abc", 2); +//=> 99 +``` + +## API + +### codePointAt(input, [position]) + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/CHANGELOG.md b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/CHANGELOG.md new file mode 100644 index 0000000000..2efecc4635 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/CHANGELOG.md @@ -0,0 +1,54 @@ +# 1.0.0 - 2016-01-07 + +- Removed: unused speed test +- Added: Automatic routing between previously unsupported conversions + ([#27](https://github.com/Qix-/color-convert/pull/27)) +- Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions + ([#27](https://github.com/Qix-/color-convert/pull/27)) +- Removed: `convert()` class + ([#27](https://github.com/Qix-/color-convert/pull/27)) +- Changed: all functions to lookup dictionary + ([#27](https://github.com/Qix-/color-convert/pull/27)) +- Changed: `ansi` to `ansi256` + ([#27](https://github.com/Qix-/color-convert/pull/27)) +- Fixed: argument grouping for functions requiring only one argument + ([#27](https://github.com/Qix-/color-convert/pull/27)) + +# 0.6.0 - 2015-07-23 + +- Added: methods to handle + [ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors: + - rgb2ansi16 + - rgb2ansi + - hsl2ansi16 + - hsl2ansi + - hsv2ansi16 + - hsv2ansi + - hwb2ansi16 + - hwb2ansi + - cmyk2ansi16 + - cmyk2ansi + - keyword2ansi16 + - keyword2ansi + - ansi162rgb + - ansi162hsl + - ansi162hsv + - ansi162hwb + - ansi162cmyk + - ansi162keyword + - ansi2rgb + - ansi2hsl + - ansi2hsv + - ansi2hwb + - ansi2cmyk + - ansi2keyword + ([#18](https://github.com/harthur/color-convert/pull/18)) + +# 0.5.3 - 2015-06-02 + +- Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]` + ([#15](https://github.com/harthur/color-convert/issues/15)) + +--- + +Check out commit logs for older releases diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/LICENSE new file mode 100644 index 0000000000..5b4c386f92 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2011-2016 Heather Arthur + +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/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/README.md new file mode 100644 index 0000000000..c6ff7e975a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/README.md @@ -0,0 +1,70 @@ +# color-convert + +[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) + +Color-convert is a color conversion library for JavaScript and node. +It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): + +```js +var convert = require("color-convert"); + +convert.rgb.hsl(140, 200, 100); // [96, 48, 59] +convert.keyword.rgb("blue"); // [0, 0, 255] + +var rgbChannels = convert.rgb.channels; // 3 +var cmykChannels = convert.cmyk.channels; // 4 +var ansiChannels = convert.ansi16.channels; // 1 +``` + +# Install + +```console +$ npm install color-convert +``` + +# API + +Simply get the property of the _from_ and _to_ conversion that you're looking for. + +All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. + +All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). + +```js +var convert = require("color-convert"); + +// Hex to LAB +convert.hex.lab("DEADBF"); // [ 76, 21, -2 ] +convert.hex.lab.raw("DEADBF"); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] + +// RGB to CMYK +convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] +convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] +``` + +### Arrays + +All functions that accept multiple arguments also support passing an array. + +Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) + +```js +var convert = require("color-convert"); + +convert.rgb.hex(123, 45, 67); // '7B2D43' +convert.rgb.hex([123, 45, 67]); // '7B2D43' +``` + +## Routing + +Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). + +Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). + +# Contribute + +If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. + +# License + +Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/conversions.js b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/conversions.js new file mode 100644 index 0000000000..5bbd0fb199 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/conversions.js @@ -0,0 +1,910 @@ +/* MIT license */ +var cssKeywords = require("color-name"); + +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) + +var reverseKeywords = {}; +for (var key in cssKeywords) { + if (cssKeywords.hasOwnProperty(key)) { + reverseKeywords[cssKeywords[key]] = key; + } +} + +var convert = (module.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"] } +}); + +// hide .channels and .labels properties +for (var model in convert) { + if (convert.hasOwnProperty(model)) { + if (!("channels" in convert[model])) { + throw new Error("missing channels property: " + model); + } + + if (!("labels" in convert[model])) { + throw new Error("missing channel labels property: " + model); + } + + if (convert[model].labels.length !== convert[model].channels) { + throw new Error("channel and label counts mismatch: " + model); + } + + var channels = convert[model].channels; + var labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], "channels", { value: channels }); + Object.defineProperty(convert[model], "labels", { value: labels }); + } +} + +convert.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; + + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + l = (min + max) / 2; + + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; +}; + +convert.rgb.hsv = function (rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + var diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = 1 / 3 + rdif - bdif; + } else if (b === v) { + h = 2 / 3 + gdif - rdif; + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + + return [h * 360, s * 100, v * 100]; +}; + +convert.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = (1 / 255) * Math.min(r, Math.min(g, b)); + + b = 1 - (1 / 255) * Math.max(r, Math.max(g, b)); + + return [h, w * 100, b * 100]; +}; + +convert.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; + + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + + return [c * 100, m * 100, y * 100, k * 100]; +}; + +/** + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ +function comparativeDistance(x, y) { + return ( + Math.pow(x[0] - y[0], 2) + + Math.pow(x[1] - y[1], 2) + + Math.pow(x[2] - y[2], 2) + ); +} + +convert.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + + var currentClosestDistance = Infinity; + var currentClosestKeyword; + + for (var keyword in cssKeywords) { + if (cssKeywords.hasOwnProperty(keyword)) { + var value = cssKeywords[keyword]; + + // Compute comparative distance + var distance = comparativeDistance(rgb, value); + + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } + + return currentClosestKeyword; +}; + +convert.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; +}; + +convert.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + + // assume sRGB + r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; + g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; + b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; + + var x = r * 0.4124 + g * 0.3576 + b * 0.1805; + var y = r * 0.2126 + g * 0.7152 + b * 0.0722; + var z = r * 0.0193 + g * 0.1192 + b * 0.9505; + + return [x * 100, y * 100, z * 100]; +}; + +convert.rgb.lab = function (rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + + t1 = 2 * l - t2; + + rgb = [0, 0, 0]; + for (var i = 0; i < 3; i++) { + t3 = h + (1 / 3) * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; +}; + +convert.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; + + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); + + return [h, sv * 100, v * 100]; +}; + +convert.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; + + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - s * f); + var t = 255 * v * (1 - s * (1 - f)); + v *= 255; + + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; + +convert.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; + + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + + return [h, sl * 100, l * 100]; +}; + +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; + + // wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; + } + + n = wh + f * (v - wh); // linear interpolation + + var r; + var g; + var b; + switch (i) { + default: + case 6: + case 0: + r = v; + g = n; + b = wh; + break; + case 1: + r = n; + g = v; + b = wh; + break; + case 2: + r = wh; + g = v; + b = n; + break; + case 3: + r = wh; + g = n; + b = v; + break; + case 4: + r = n; + g = wh; + b = v; + break; + case 5: + r = v; + g = wh; + b = n; + break; + } + + return [r * 255, g * 255, b * 255]; +}; + +convert.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; + + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; + + r = x * 3.2406 + y * -1.5372 + z * -0.4986; + g = x * -0.9689 + y * 1.8758 + z * 0.0415; + b = x * 0.0557 + y * -0.204 + z * 1.057; + + // assume sRGB + r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92; + + g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92; + + b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92; + + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; + + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + + x *= 95.047; + y *= 100; + z *= 108.883; + + return [x, y, z]; +}; + +convert.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; + + hr = Math.atan2(b, a); + h = (hr * 360) / 2 / Math.PI; + + if (h < 0) { + h += 360; + } + + c = Math.sqrt(a * a + b * b); + + return [l, c, h]; +}; + +convert.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + + hr = (h / 360) * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + + return [l, a, b]; +}; + +convert.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization + + value = Math.round(value / 50); + + if (value === 0) { + return 30; + } + + var ansi = + 30 + + ((Math.round(b / 255) << 2) | + (Math.round(g / 255) << 1) | + Math.round(r / 255)); + + if (value === 2) { + ansi += 60; + } + + return ansi; +}; + +convert.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; + +convert.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + + // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } + + if (r > 248) { + return 231; + } + + return Math.round(((r - 8) / 247) * 24) + 232; + } + + var ansi = + 16 + + 36 * Math.round((r / 255) * 5) + + 6 * Math.round((g / 255) * 5) + + Math.round((b / 255) * 5); + + return ansi; +}; + +convert.ansi16.rgb = function (args) { + var color = args % 10; + + // handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + + color = (color / 10.5) * 255; + + return [color, color, color]; + } + + var mult = (~~(args > 50) + 1) * 0.5; + var r = (color & 1) * mult * 255; + var g = ((color >> 1) & 1) * mult * 255; + var b = ((color >> 2) & 1) * mult * 255; + + return [r, g, b]; +}; + +convert.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; + } + + args -= 16; + + var rem; + var r = (Math.floor(args / 36) / 5) * 255; + var g = (Math.floor((rem = args % 36) / 6) / 5) * 255; + var b = ((rem % 6) / 5) * 255; + + return [r, g, b]; +}; + +convert.rgb.hex = function (args) { + var integer = + ((Math.round(args[0]) & 0xff) << 16) + + ((Math.round(args[1]) & 0xff) << 8) + + (Math.round(args[2]) & 0xff); + + var string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; +}; + +convert.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + + var colorString = match[0]; + + if (match[0].length === 3) { + colorString = colorString + .split("") + .map(function (char) { + return char + char; + }) + .join(""); + } + + var integer = parseInt(colorString, 16); + var r = (integer >> 16) & 0xff; + var g = (integer >> 8) & 0xff; + var b = integer & 0xff; + + return [r, g, b]; +}; + +convert.rgb.hcg = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = max - min; + var grayscale; + var hue; + + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = ((g - b) / chroma) % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } + + hue /= 6; + hue %= 1; + + return [hue * 360, chroma * 100, grayscale * 100]; +}; + +convert.hsl.hcg = function (hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; + + if (l < 0.5) { + c = 2.0 * s * l; + } else { + c = 2.0 * s * (1.0 - l); + } + + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } + + return [hsl[0], c * 100, f * 100]; +}; + +convert.hsv.hcg = function (hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; + + var c = s * v; + var f = 0; + + if (c < 1.0) { + f = (v - c) / (1 - c); + } + + return [hsv[0], c * 100, f * 100]; +}; + +convert.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } + + var pure = [0, 0, 0]; + var hi = (h % 1) * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; + + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + case 1: + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + case 2: + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + case 3: + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + case 4: + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + default: + pure[0] = 1; + pure[1] = 0; + pure[2] = w; + } + + mg = (1.0 - c) * g; + + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; + +convert.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + var v = c + g * (1.0 - c); + var f = 0; + + if (v > 0.0) { + f = c / v; + } + + return [hcg[0], f * 100, v * 100]; +}; + +convert.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; + + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } + + return [hcg[0], s * 100, l * 100]; +}; + +convert.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; + +convert.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; + + if (c < 1) { + g = (v - c) / (1 - c); + } + + return [hwb[0], c * 100, g * 100]; +}; + +convert.apple.rgb = function (apple) { + return [ + (apple[0] / 65535) * 255, + (apple[1] / 65535) * 255, + (apple[2] / 65535) * 255 + ]; +}; + +convert.rgb.apple = function (rgb) { + return [ + (rgb[0] / 255) * 65535, + (rgb[1] / 255) * 65535, + (rgb[2] / 255) * 65535 + ]; +}; + +convert.gray.rgb = function (args) { + return [(args[0] / 100) * 255, (args[0] / 100) * 255, (args[0] / 100) * 255]; +}; + +convert.gray.hsl = convert.gray.hsv = function (args) { + return [0, 0, args[0]]; +}; + +convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; + +convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; + +convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; + +convert.gray.hex = function (gray) { + var val = Math.round((gray[0] / 100) * 255) & 0xff; + var integer = (val << 16) + (val << 8) + val; + + var string = integer.toString(16).toUpperCase(); + return "000000".substring(string.length) + string; +}; + +convert.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [(val / 255) * 100]; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/index.js new file mode 100644 index 0000000000..8a1e36f15c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/index.js @@ -0,0 +1,82 @@ +var conversions = require("./conversions"); +var route = require("./route"); + +var convert = {}; + +var models = Object.keys(conversions); + +function wrapRaw(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + + return fn(args); + }; + + // preserve .conversion property if there is one + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +function wrapRounded(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } + + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } + + var result = fn(args); + + // we're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === "object") { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + + return result; + }; + + // preserve .conversion property if there is one + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +models.forEach(function (fromModel) { + convert[fromModel] = {}; + + Object.defineProperty(convert[fromModel], "channels", { + value: conversions[fromModel].channels + }); + Object.defineProperty(convert[fromModel], "labels", { + value: conversions[fromModel].labels + }); + + var routes = route(fromModel); + var routeModels = Object.keys(routes); + + routeModels.forEach(function (toModel) { + var fn = routes[toModel]; + + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); + +module.exports = convert; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/package.json new file mode 100644 index 0000000000..faac522e7c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/package.json @@ -0,0 +1,81 @@ +{ + "_from": "color-convert@^1.9.1", + "_id": "color-convert@1.9.3", + "_inBundle": false, + "_integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "_location": "/color-convert", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "color-convert@^1.9.1", + "name": "color-convert", + "escapedName": "color-convert", + "rawSpec": "^1.9.1", + "saveSpec": null, + "fetchSpec": "^1.9.1" + }, + "_requiredBy": [ + "/color" + ], + "_resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "_shasum": "bb71850690e1f136567de629d2d5471deda4c1e8", + "_spec": "color-convert@^1.9.1", + "_where": "/var/task/node_modules/color", + "author": { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + "bugs": { + "url": "https://github.com/Qix-/color-convert/issues" + }, + "bundleDependencies": false, + "dependencies": { + "color-name": "1.1.3" + }, + "deprecated": false, + "description": "Plain color conversion functions", + "devDependencies": { + "chalk": "1.1.1", + "xo": "0.11.2" + }, + "files": [ + "index.js", + "conversions.js", + "css-keywords.js", + "route.js" + ], + "homepage": "https://github.com/Qix-/color-convert#readme", + "keywords": [ + "color", + "colour", + "convert", + "converter", + "conversion", + "rgb", + "hsl", + "hsv", + "hwb", + "cmyk", + "ansi", + "ansi16" + ], + "license": "MIT", + "name": "color-convert", + "repository": { + "type": "git", + "url": "git+https://github.com/Qix-/color-convert.git" + }, + "scripts": { + "pretest": "xo", + "test": "node test/basic.js" + }, + "version": "1.9.3", + "xo": { + "rules": { + "default-case": 0, + "no-inline-comments": 0, + "operator-linebreak": 0 + } + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/route.js b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/route.js new file mode 100644 index 0000000000..821a98557b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-convert/route.js @@ -0,0 +1,96 @@ +var conversions = require("./conversions"); + +/* + this function routes a model to all other models. + + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). + + conversions that are not possible simply are not included. +*/ + +function buildGraph() { + var graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + var models = Object.keys(conversions); + + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + + return graph; +} + +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; // unshift -> queue -> pop + + graph[fromModel].distance = 0; + + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); + + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; + + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + + return graph; +} + +function link(from, to) { + return function (args) { + return to(from(args)); + }; +} + +function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; + + var cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + + fn.conversion = path; + return fn; +} + +module.exports = function (fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; + + var models = Object.keys(graph); + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; + + if (node.parent === null) { + // no possible conversion, or this node is the source model. + continue; + } + + conversion[toModel] = wrapConversion(toModel, graph); + } + + return conversion; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-name/.eslintrc.json b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/.eslintrc.json new file mode 100644 index 0000000000..c50c250446 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/.eslintrc.json @@ -0,0 +1,43 @@ +{ + "env": { + "browser": true, + "node": true, + "commonjs": true, + "es6": true + }, + "extends": "eslint:recommended", + "rules": { + "strict": 2, + "indent": 0, + "linebreak-style": 0, + "quotes": 0, + "semi": 0, + "no-cond-assign": 1, + "no-constant-condition": 1, + "no-duplicate-case": 1, + "no-empty": 1, + "no-ex-assign": 1, + "no-extra-boolean-cast": 1, + "no-extra-semi": 1, + "no-fallthrough": 1, + "no-func-assign": 1, + "no-global-assign": 1, + "no-implicit-globals": 2, + "no-inner-declarations": ["error", "functions"], + "no-irregular-whitespace": 2, + "no-loop-func": 1, + "no-multi-str": 1, + "no-mixed-spaces-and-tabs": 1, + "no-proto": 1, + "no-sequences": 1, + "no-throw-literal": 1, + "no-unmodified-loop-condition": 1, + "no-useless-call": 1, + "no-void": 1, + "no-with": 2, + "wrap-iife": 1, + "no-redeclare": 1, + "no-unused-vars": ["error", { "vars": "all", "args": "none" }], + "no-sparse-arrays": 1 + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-name/.npmignore b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/.npmignore new file mode 100644 index 0000000000..3854c07dc6 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/.npmignore @@ -0,0 +1,107 @@ +//this will affect all the git repos +git config --global core.excludesfile ~/.gitignore + + +//update files since .ignore won't if already tracked +git rm --cached + +# Compiled source # +################### +*.com +*.class +*.dll +*.exe +*.o +*.so + +# Packages # +############ +# it's better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +# Icon? +ehthumbs.db +Thumbs.db +.cache +.project +.settings +.tmproj +*.esproj +nbproject + +# Numerous always-ignore extensions # +##################################### +*.diff +*.err +*.orig +*.rej +*.swn +*.swo +*.swp +*.vi +*~ +*.sass-cache +*.grunt +*.tmp + +# Dreamweaver added files # +########################### +_notes +dwsync.xml + +# Komodo # +########################### +*.komodoproject +.komodotools + +# Node # +##################### +node_modules + +# Bower # +##################### +bower_components + +# Folders to ignore # +##################### +.hg +.svn +.CVS +intermediate +publish +.idea +.graphics +_test +_archive +uploads +tmp + +# Vim files to ignore # +####################### +.VimballRecord +.netrwhist + +bundle.* + +_demo \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-name/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/LICENSE new file mode 100644 index 0000000000..4d9802a89e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/LICENSE @@ -0,0 +1,8 @@ +The MIT License (MIT) +Copyright (c) 2015 Dmitry Ivanov + +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. \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-name/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/README.md new file mode 100644 index 0000000000..feea01354f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/README.md @@ -0,0 +1,10 @@ +A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. + +[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) + +```js +var colors = require("color-name"); +colors.red; //[255,0,0] +``` + + diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-name/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/index.js new file mode 100644 index 0000000000..eb47d2876a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/index.js @@ -0,0 +1,152 @@ +"use strict"; + +module.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] +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-name/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/package.json new file mode 100644 index 0000000000..3e8b0ca0a2 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/package.json @@ -0,0 +1,54 @@ +{ + "_from": "color-name@1.1.3", + "_id": "color-name@1.1.3", + "_inBundle": false, + "_integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "_location": "/color-name", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "color-name@1.1.3", + "name": "color-name", + "escapedName": "color-name", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/color-convert", + "/color-string" + ], + "_resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "_shasum": "a7d0558bd89c42f795dd42328f740831ca53bc25", + "_spec": "color-name@1.1.3", + "_where": "/var/task/node_modules/color-convert", + "author": { + "name": "DY", + "email": "dfcreative@gmail.com" + }, + "bugs": { + "url": "https://github.com/dfcreative/color-name/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A list of color names and its values", + "homepage": "https://github.com/dfcreative/color-name", + "keywords": [ + "color-name", + "color", + "color-keyword", + "keyword" + ], + "license": "MIT", + "main": "index.js", + "name": "color-name", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/dfcreative/color-name.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.1.3" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-name/test.js b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/test.js new file mode 100644 index 0000000000..1d8da9b351 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-name/test.js @@ -0,0 +1,7 @@ +"use strict"; + +var names = require("./"); +var assert = require("assert"); + +assert.deepEqual(names.red, [255, 0, 0]); +assert.deepEqual(names.aliceblue, [240, 248, 255]); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-string/CHANGELOG.md b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/CHANGELOG.md new file mode 100644 index 0000000000..c537fa61a2 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/CHANGELOG.md @@ -0,0 +1,18 @@ +# 0.4.0 + +- Changed: Invalid conversions now return `null` instead of `undefined` +- Changed: Moved to XO standard +- Fixed: a few details in package.json +- Fixed: readme output regarding wrapped hue values ([#21](https://github.com/MoOx/color-string/pull/21)) + +# 0.3.0 + +- Fixed: HSL alpha channel ([#16](https://github.com/harthur/color-string/pull/16)) +- Fixed: ability to parse signed number ([#15](https://github.com/harthur/color-string/pull/15)) +- Removed: component.json +- Removed: browser build +- Added: license field to package.json ([#17](https://github.com/harthur/color-string/pull/17)) + +--- + +Check out commit logs for earlier releases diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-string/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/LICENSE new file mode 100644 index 0000000000..a8b08d4f34 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2011 Heather Arthur + +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/packages/libs/lambda-at-edge/sharp_node_modules/color-string/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/README.md new file mode 100644 index 0000000000..77afec1f70 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/README.md @@ -0,0 +1,58 @@ +# color-string + +[![Build Status](https://travis-ci.org/Qix-/color-string.svg?branch=master)](https://travis-ci.org/Qix-/color-string) + +> library for parsing and generating CSS color strings. + +## Install + +With [npm](http://npmjs.org/): + +```console +$ npm install color-string +``` + +## Usage + +### Parsing + +```js +colorString.get("#FFF"); // {model: 'rgb', value: [255, 255, 255, 1]} +colorString.get("#FFFA"); // {model: 'rgb', value: [255, 255, 255, 0.67]} +colorString.get("#FFFFFFAA"); // {model: 'rgb', value: [255, 255, 255, 0.67]} +colorString.get("hsl(360, 100%, 50%)"); // {model: 'hsl', value: [0, 100, 50, 1]} +colorString.get("hwb(60, 3%, 60%)"); // {model: 'hwb', value: [60, 3, 60, 1]} + +colorString.get.rgb("#FFF"); // [255, 255, 255, 1] +colorString.get.rgb("blue"); // [0, 0, 255, 1] +colorString.get.rgb("rgba(200, 60, 60, 0.3)"); // [200, 60, 60, 0.3] +colorString.get.rgb("rgb(200, 200, 200)"); // [200, 200, 200, 1] + +colorString.get.hsl("hsl(360, 100%, 50%)"); // [0, 100, 50, 1] +colorString.get.hsl("hsla(360, 60%, 50%, 0.4)"); // [0, 60, 50, 0.4] + +colorString.get.hwb("hwb(60, 3%, 60%)"); // [60, 3, 60, 1] +colorString.get.hwb("hwb(60, 3%, 60%, 0.6)"); // [60, 3, 60, 0.6] + +colorString.get.rgb("invalid color string"); // null +``` + +### Generation + +```js +colorString.to.hex([255, 255, 255]); // "#FFFFFF" +colorString.to.hex([0, 0, 255, 0.4]); // "#0000FF66" +colorString.to.hex([0, 0, 255], 0.4); // "#0000FF66" +colorString.to.rgb([255, 255, 255]); // "rgb(255, 255, 255)" +colorString.to.rgb([0, 0, 255, 0.4]); // "rgba(0, 0, 255, 0.4)" +colorString.to.rgb([0, 0, 255], 0.4); // "rgba(0, 0, 255, 0.4)" +colorString.to.rgb.percent([0, 0, 255]); // "rgb(0%, 0%, 100%)" +colorString.to.keyword([255, 255, 0]); // "yellow" +colorString.to.hsl([360, 100, 100]); // "hsl(360, 100%, 100%)" +colorString.to.hwb([50, 3, 15]); // "hwb(50, 3%, 15%)" + +// all functions also support swizzling +colorString.to.rgb(0, [0, 255], 0.4); // "rgba(0, 0, 255, 0.4)" +colorString.to.rgb([0, 0], [255], 0.4); // "rgba(0, 0, 255, 0.4)" +colorString.to.rgb([0], 0, [255, 0.4]); // "rgba(0, 0, 255, 0.4)" +``` diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-string/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/index.js new file mode 100644 index 0000000000..63c4ba6266 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/index.js @@ -0,0 +1,254 @@ +/* MIT license */ +var colorNames = require("color-name"); +var swizzle = require("simple-swizzle"); + +var reverseNames = {}; + +// create a list of reverse color names +for (var name in colorNames) { + if (colorNames.hasOwnProperty(name)) { + reverseNames[colorNames[name]] = name; + } +} + +var cs = (module.exports = { + to: {}, + get: {} +}); + +cs.get = function (string) { + var prefix = string.substring(0, 3).toLowerCase(); + var val; + var model; + switch (prefix) { + case "hsl": + val = cs.get.hsl(string); + model = "hsl"; + break; + case "hwb": + val = cs.get.hwb(string); + model = "hwb"; + break; + default: + val = cs.get.rgb(string); + model = "rgb"; + break; + } + + if (!val) { + return null; + } + + return { model: model, value: val }; +}; + +cs.get.rgb = function (string) { + if (!string) { + return null; + } + + var abbr = /^#([a-f0-9]{3,4})$/i; + var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i; + var rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var keyword = /(\D+)/; + + var rgb = [0, 0, 0, 1]; + var match; + var i; + var hexAlpha; + + if ((match = string.match(hex))) { + hexAlpha = match[2]; + match = match[1]; + + for (i = 0; i < 3; i++) { + // https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19 + var i2 = i * 2; + rgb[i] = parseInt(match.slice(i2, i2 + 2), 16); + } + + if (hexAlpha) { + rgb[3] = parseInt(hexAlpha, 16) / 255; + } + } else if ((match = string.match(abbr))) { + match = match[1]; + hexAlpha = match[3]; + + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i] + match[i], 16); + } + + if (hexAlpha) { + rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255; + } + } else if ((match = string.match(rgba))) { + for (i = 0; i < 3; i++) { + rgb[i] = parseInt(match[i + 1], 0); + } + + if (match[4]) { + rgb[3] = parseFloat(match[4]); + } + } else if ((match = string.match(per))) { + for (i = 0; i < 3; i++) { + rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55); + } + + if (match[4]) { + rgb[3] = parseFloat(match[4]); + } + } else if ((match = string.match(keyword))) { + if (match[1] === "transparent") { + return [0, 0, 0, 0]; + } + + rgb = colorNames[match[1]]; + + if (!rgb) { + return null; + } + + rgb[3] = 1; + + return rgb; + } else { + return null; + } + + for (i = 0; i < 3; i++) { + rgb[i] = clamp(rgb[i], 0, 255); + } + rgb[3] = clamp(rgb[3], 0, 1); + + return rgb; +}; + +cs.get.hsl = function (string) { + if (!string) { + return null; + } + + var hsl = /^hsla?\(\s*([+-]?(?:\d*\.)?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var match = string.match(hsl); + + if (match) { + var alpha = parseFloat(match[4]); + var h = (parseFloat(match[1]) + 360) % 360; + var s = clamp(parseFloat(match[2]), 0, 100); + var l = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + + return [h, s, l, a]; + } + + return null; +}; + +cs.get.hwb = function (string) { + if (!string) { + return null; + } + + var hwb = /^hwb\(\s*([+-]?\d*[\.]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/; + var match = string.match(hwb); + + if (match) { + var alpha = parseFloat(match[4]); + var h = ((parseFloat(match[1]) % 360) + 360) % 360; + var w = clamp(parseFloat(match[2]), 0, 100); + var b = clamp(parseFloat(match[3]), 0, 100); + var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } + + return null; +}; + +cs.to.hex = function () { + var rgba = swizzle(arguments); + + return ( + "#" + + hexDouble(rgba[0]) + + hexDouble(rgba[1]) + + hexDouble(rgba[2]) + + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : "") + ); +}; + +cs.to.rgb = function () { + var rgba = swizzle(arguments); + + return rgba.length < 4 || rgba[3] === 1 + ? "rgb(" + + Math.round(rgba[0]) + + ", " + + Math.round(rgba[1]) + + ", " + + Math.round(rgba[2]) + + ")" + : "rgba(" + + Math.round(rgba[0]) + + ", " + + Math.round(rgba[1]) + + ", " + + Math.round(rgba[2]) + + ", " + + rgba[3] + + ")"; +}; + +cs.to.rgb.percent = function () { + var rgba = swizzle(arguments); + + var r = Math.round((rgba[0] / 255) * 100); + var g = Math.round((rgba[1] / 255) * 100); + var b = Math.round((rgba[2] / 255) * 100); + + return rgba.length < 4 || rgba[3] === 1 + ? "rgb(" + r + "%, " + g + "%, " + b + "%)" + : "rgba(" + r + "%, " + g + "%, " + b + "%, " + rgba[3] + ")"; +}; + +cs.to.hsl = function () { + var hsla = swizzle(arguments); + return hsla.length < 4 || hsla[3] === 1 + ? "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)" + : "hsla(" + + hsla[0] + + ", " + + hsla[1] + + "%, " + + hsla[2] + + "%, " + + hsla[3] + + ")"; +}; + +// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax +// (hwb have alpha optional & 1 is default value) +cs.to.hwb = function () { + var hwba = swizzle(arguments); + + var a = ""; + if (hwba.length >= 4 && hwba[3] !== 1) { + a = ", " + hwba[3]; + } + + return "hwb(" + hwba[0] + ", " + hwba[1] + "%, " + hwba[2] + "%" + a + ")"; +}; + +cs.to.keyword = function (rgb) { + return reverseNames[rgb.slice(0, 3)]; +}; + +// helpers +function clamp(num, min, max) { + return Math.min(Math.max(min, num), max); +} + +function hexDouble(num) { + var str = num.toString(16).toUpperCase(); + return str.length < 2 ? "0" + str : str; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color-string/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/package.json new file mode 100644 index 0000000000..2be4593f06 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color-string/package.json @@ -0,0 +1,81 @@ +{ + "_from": "color-string@^1.5.4", + "_id": "color-string@1.5.4", + "_inBundle": false, + "_integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "_location": "/color-string", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "color-string@^1.5.4", + "name": "color-string", + "escapedName": "color-string", + "rawSpec": "^1.5.4", + "saveSpec": null, + "fetchSpec": "^1.5.4" + }, + "_requiredBy": [ + "/color" + ], + "_resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "_shasum": "dd51cd25cfee953d138fe4002372cc3d0e504cb6", + "_spec": "color-string@^1.5.4", + "_where": "/var/task/node_modules/color", + "author": { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + "bugs": { + "url": "https://github.com/Qix-/color-string/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Maxime Thirouin" + }, + { + "name": "Dyma Ywanov", + "email": "dfcreative@gmail.com" + }, + { + "name": "Josh Junon" + } + ], + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + }, + "deprecated": false, + "description": "Parser and generator for CSS color strings", + "devDependencies": { + "xo": "^0.12.1" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/Qix-/color-string#readme", + "keywords": [ + "color", + "colour", + "rgb", + "css" + ], + "license": "MIT", + "name": "color-string", + "repository": { + "type": "git", + "url": "git+https://github.com/Qix-/color-string.git" + }, + "scripts": { + "pretest": "xo", + "test": "node test/basic.js" + }, + "version": "1.5.4", + "xo": { + "rules": { + "no-cond-assign": 0, + "operator-linebreak": 0 + } + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/color/LICENSE new file mode 100644 index 0000000000..68c864eee8 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2012 Heather Arthur + +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/packages/libs/lambda-at-edge/sharp_node_modules/color/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/color/README.md new file mode 100644 index 0000000000..114bfc8f7f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color/README.md @@ -0,0 +1,140 @@ +# color [![Build Status](https://travis-ci.org/Qix-/color.svg?branch=master)](https://travis-ci.org/Qix-/color) + +> JavaScript library for immutable color conversion and manipulation with support for CSS color strings. + +```js +var color = Color("#7743CE").alpha(0.5).lighten(0.5); +console.log(color.hsl().string()); // 'hsla(262, 59%, 81%, 0.5)' + +console.log(color.cmyk().round().array()); // [ 16, 25, 0, 8, 0.5 ] + +console.log(color.ansi256().object()); // { ansi256: 183, alpha: 0.5 } +``` + +## Install + +```console +$ npm install color +``` + +## Usage + +```js +var Color = require("color"); +``` + +### Constructors + +```js +var color = Color("rgb(255, 255, 255)"); +var color = Color({ r: 255, g: 255, b: 255 }); +var color = Color.rgb(255, 255, 255); +var color = Color.rgb([255, 255, 255]); +``` + +Set the values for individual channels with `alpha`, `red`, `green`, `blue`, `hue`, `saturationl` (hsl), `saturationv` (hsv), `lightness`, `whiteness`, `blackness`, `cyan`, `magenta`, `yellow`, `black` + +String constructors are handled by [color-string](https://www.npmjs.com/package/color-string) + +### Getters + +```js +color.hsl(); +``` + +Convert a color to a different space (`hsl()`, `cmyk()`, etc.). + +```js +color.object(); // {r: 255, g: 255, b: 255} +``` + +Get a hash of the color value. Reflects the color's current model (see above). + +```js +color.rgb().array(); // [255, 255, 255] +``` + +Get an array of the values with `array()`. Reflects the color's current model (see above). + +```js +color.rgbNumber(); // 16777215 (0xffffff) +``` + +Get the rgb number value. + +```js +color.hex(); // #ffffff +``` + +Get the hex value. + +```js +color.red(); // 255 +``` + +Get the value for an individual channel. + +### CSS Strings + +```js +color.hsl().string(); // 'hsl(320, 50%, 100%)' +``` + +Calling `.string()` with a number rounds the numbers to that decimal place. It defaults to 1. + +### Luminosity + +```js +color.luminosity(); // 0.412 +``` + +The [WCAG luminosity](http://www.w3.org/TR/WCAG20/#relativeluminancedef) of the color. 0 is black, 1 is white. + +```js +color.contrast(Color("blue")); // 12 +``` + +The [WCAG contrast ratio](http://www.w3.org/TR/WCAG20/#contrast-ratiodef) to another color, from 1 (same color) to 21 (contrast b/w white and black). + +```js +color.isLight(); // true +color.isDark(); // false +``` + +Get whether the color is "light" or "dark", useful for deciding text color. + +### Manipulation + +```js +color.negate(); // rgb(0, 100, 255) -> rgb(255, 155, 0) + +color.lighten(0.5); // hsl(100, 50%, 50%) -> hsl(100, 50%, 75%) +color.lighten(0.5); // hsl(100, 50%, 0) -> hsl(100, 50%, 0) +color.darken(0.5); // hsl(100, 50%, 50%) -> hsl(100, 50%, 25%) +color.darken(0.5); // hsl(100, 50%, 0) -> hsl(100, 50%, 0) + +color.lightness(50); // hsl(100, 50%, 10%) -> hsl(100, 50%, 50%) + +color.saturate(0.5); // hsl(100, 50%, 50%) -> hsl(100, 75%, 50%) +color.desaturate(0.5); // hsl(100, 50%, 50%) -> hsl(100, 25%, 50%) +color.grayscale(); // #5CBF54 -> #969696 + +color.whiten(0.5); // hwb(100, 50%, 50%) -> hwb(100, 75%, 50%) +color.blacken(0.5); // hwb(100, 50%, 50%) -> hwb(100, 50%, 75%) + +color.fade(0.5); // rgba(10, 10, 10, 0.8) -> rgba(10, 10, 10, 0.4) +color.opaquer(0.5); // rgba(10, 10, 10, 0.8) -> rgba(10, 10, 10, 1.0) + +color.rotate(180); // hsl(60, 20%, 20%) -> hsl(240, 20%, 20%) +color.rotate(-90); // hsl(60, 20%, 20%) -> hsl(330, 20%, 20%) + +color.mix(Color("yellow")); // cyan -> rgb(128, 255, 128) +color.mix(Color("yellow"), 0.3); // cyan -> rgb(77, 255, 179) + +// chaining +color.green(100).grayscale().lighten(0.6); +``` + +## Propers + +The API was inspired by [color-js](https://github.com/brehaut/color-js). Manipulation functions by CSS tools like Sass, LESS, and Stylus. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/color/index.js new file mode 100644 index 0000000000..c27c8956ec --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color/index.js @@ -0,0 +1,501 @@ +"use strict"; + +var colorString = require("color-string"); +var convert = require("color-convert"); + +var _slice = [].slice; + +var skippedModels = [ + // to be honest, I don't really feel like keyword belongs in color convert, but eh. + "keyword", + + // gray conflicts with some method names, and has its own method defined. + "gray", + + // shouldn't really be in color-convert either... + "hex" +]; + +var hashedModelKeys = {}; +Object.keys(convert).forEach(function (model) { + hashedModelKeys[_slice.call(convert[model].labels).sort().join("")] = model; +}); + +var limiters = {}; + +function Color(obj, model) { + if (!(this instanceof Color)) { + return new Color(obj, model); + } + + if (model && model in skippedModels) { + model = null; + } + + if (model && !(model in convert)) { + throw new Error("Unknown model: " + model); + } + + var i; + var channels; + + if (obj == null) { + // eslint-disable-line no-eq-null,eqeqeq + this.model = "rgb"; + this.color = [0, 0, 0]; + this.valpha = 1; + } else if (obj instanceof Color) { + this.model = obj.model; + this.color = obj.color.slice(); + this.valpha = obj.valpha; + } else if (typeof obj === "string") { + var result = colorString.get(obj); + if (result === null) { + throw new Error("Unable to parse color from string: " + obj); + } + + this.model = result.model; + channels = convert[this.model].channels; + this.color = result.value.slice(0, channels); + this.valpha = + typeof result.value[channels] === "number" ? result.value[channels] : 1; + } else if (obj.length) { + this.model = model || "rgb"; + channels = convert[this.model].channels; + var newArr = _slice.call(obj, 0, channels); + this.color = zeroArray(newArr, channels); + this.valpha = typeof obj[channels] === "number" ? obj[channels] : 1; + } else if (typeof obj === "number") { + // this is always RGB - can be converted later on. + obj &= 0xffffff; + this.model = "rgb"; + this.color = [(obj >> 16) & 0xff, (obj >> 8) & 0xff, obj & 0xff]; + this.valpha = 1; + } else { + this.valpha = 1; + + var keys = Object.keys(obj); + if ("alpha" in obj) { + keys.splice(keys.indexOf("alpha"), 1); + this.valpha = typeof obj.alpha === "number" ? obj.alpha : 0; + } + + var hashedKeys = keys.sort().join(""); + if (!(hashedKeys in hashedModelKeys)) { + throw new Error( + "Unable to parse color from object: " + JSON.stringify(obj) + ); + } + + this.model = hashedModelKeys[hashedKeys]; + + var labels = convert[this.model].labels; + var color = []; + for (i = 0; i < labels.length; i++) { + color.push(obj[labels[i]]); + } + + this.color = zeroArray(color); + } + + // perform limitations (clamping, etc.) + if (limiters[this.model]) { + channels = convert[this.model].channels; + for (i = 0; i < channels; i++) { + var limit = limiters[this.model][i]; + if (limit) { + this.color[i] = limit(this.color[i]); + } + } + } + + this.valpha = Math.max(0, Math.min(1, this.valpha)); + + if (Object.freeze) { + Object.freeze(this); + } +} + +Color.prototype = { + toString: function () { + return this.string(); + }, + + toJSON: function () { + return this[this.model](); + }, + + string: function (places) { + var self = this.model in colorString.to ? this : this.rgb(); + self = self.round(typeof places === "number" ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to[self.model](args); + }, + + percentString: function (places) { + var self = this.rgb().round(typeof places === "number" ? places : 1); + var args = self.valpha === 1 ? self.color : self.color.concat(this.valpha); + return colorString.to.rgb.percent(args); + }, + + array: function () { + return this.valpha === 1 + ? this.color.slice() + : this.color.concat(this.valpha); + }, + + object: function () { + var result = {}; + var channels = convert[this.model].channels; + var labels = convert[this.model].labels; + + for (var i = 0; i < channels; i++) { + result[labels[i]] = this.color[i]; + } + + if (this.valpha !== 1) { + result.alpha = this.valpha; + } + + return result; + }, + + unitArray: function () { + var rgb = this.rgb().color; + rgb[0] /= 255; + rgb[1] /= 255; + rgb[2] /= 255; + + if (this.valpha !== 1) { + rgb.push(this.valpha); + } + + return rgb; + }, + + unitObject: function () { + var rgb = this.rgb().object(); + rgb.r /= 255; + rgb.g /= 255; + rgb.b /= 255; + + if (this.valpha !== 1) { + rgb.alpha = this.valpha; + } + + return rgb; + }, + + round: function (places) { + places = Math.max(places || 0, 0); + return new Color( + this.color.map(roundToPlace(places)).concat(this.valpha), + this.model + ); + }, + + alpha: function (val) { + if (arguments.length) { + return new Color( + this.color.concat(Math.max(0, Math.min(1, val))), + this.model + ); + } + + return this.valpha; + }, + + // rgb + red: getset("rgb", 0, maxfn(255)), + green: getset("rgb", 1, maxfn(255)), + blue: getset("rgb", 2, maxfn(255)), + + hue: getset(["hsl", "hsv", "hsl", "hwb", "hcg"], 0, function (val) { + return ((val % 360) + 360) % 360; + }), // eslint-disable-line brace-style + + saturationl: getset("hsl", 1, maxfn(100)), + lightness: getset("hsl", 2, maxfn(100)), + + saturationv: getset("hsv", 1, maxfn(100)), + value: getset("hsv", 2, maxfn(100)), + + chroma: getset("hcg", 1, maxfn(100)), + gray: getset("hcg", 2, maxfn(100)), + + white: getset("hwb", 1, maxfn(100)), + wblack: getset("hwb", 2, maxfn(100)), + + cyan: getset("cmyk", 0, maxfn(100)), + magenta: getset("cmyk", 1, maxfn(100)), + yellow: getset("cmyk", 2, maxfn(100)), + black: getset("cmyk", 3, maxfn(100)), + + x: getset("xyz", 0, maxfn(100)), + y: getset("xyz", 1, maxfn(100)), + z: getset("xyz", 2, maxfn(100)), + + l: getset("lab", 0, maxfn(100)), + a: getset("lab", 1), + b: getset("lab", 2), + + keyword: function (val) { + if (arguments.length) { + return new Color(val); + } + + return convert[this.model].keyword(this.color); + }, + + hex: function (val) { + if (arguments.length) { + return new Color(val); + } + + return colorString.to.hex(this.rgb().round().color); + }, + + rgbNumber: function () { + var rgb = this.rgb().color; + return ((rgb[0] & 0xff) << 16) | ((rgb[1] & 0xff) << 8) | (rgb[2] & 0xff); + }, + + luminosity: function () { + // http://www.w3.org/TR/WCAG20/#relativeluminancedef + var rgb = this.rgb().color; + + var lum = []; + for (var i = 0; i < rgb.length; i++) { + var chan = rgb[i] / 255; + lum[i] = + chan <= 0.03928 ? chan / 12.92 : Math.pow((chan + 0.055) / 1.055, 2.4); + } + + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + + contrast: function (color2) { + // http://www.w3.org/TR/WCAG20/#contrast-ratiodef + var lum1 = this.luminosity(); + var lum2 = color2.luminosity(); + + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + + return (lum2 + 0.05) / (lum1 + 0.05); + }, + + level: function (color2) { + var contrastRatio = this.contrast(color2); + if (contrastRatio >= 7.1) { + return "AAA"; + } + + return contrastRatio >= 4.5 ? "AA" : ""; + }, + + isDark: function () { + // YIQ equation from http://24ways.org/2010/calculating-color-contrast + var rgb = this.rgb().color; + var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000; + return yiq < 128; + }, + + isLight: function () { + return !this.isDark(); + }, + + negate: function () { + var rgb = this.rgb(); + for (var i = 0; i < 3; i++) { + rgb.color[i] = 255 - rgb.color[i]; + } + return rgb; + }, + + lighten: function (ratio) { + var hsl = this.hsl(); + hsl.color[2] += hsl.color[2] * ratio; + return hsl; + }, + + darken: function (ratio) { + var hsl = this.hsl(); + hsl.color[2] -= hsl.color[2] * ratio; + return hsl; + }, + + saturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] += hsl.color[1] * ratio; + return hsl; + }, + + desaturate: function (ratio) { + var hsl = this.hsl(); + hsl.color[1] -= hsl.color[1] * ratio; + return hsl; + }, + + whiten: function (ratio) { + var hwb = this.hwb(); + hwb.color[1] += hwb.color[1] * ratio; + return hwb; + }, + + blacken: function (ratio) { + var hwb = this.hwb(); + hwb.color[2] += hwb.color[2] * ratio; + return hwb; + }, + + grayscale: function () { + // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale + var rgb = this.rgb().color; + var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + return Color.rgb(val, val, val); + }, + + fade: function (ratio) { + return this.alpha(this.valpha - this.valpha * ratio); + }, + + opaquer: function (ratio) { + return this.alpha(this.valpha + this.valpha * ratio); + }, + + rotate: function (degrees) { + var hsl = this.hsl(); + var hue = hsl.color[0]; + hue = (hue + degrees) % 360; + hue = hue < 0 ? 360 + hue : hue; + hsl.color[0] = hue; + return hsl; + }, + + mix: function (mixinColor, weight) { + // ported from sass implementation in C + // https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209 + if (!mixinColor || !mixinColor.rgb) { + throw new Error( + 'Argument to "mix" was not a Color instance, but rather an instance of ' + + typeof mixinColor + ); + } + var color1 = mixinColor.rgb(); + var color2 = this.rgb(); + var p = weight === undefined ? 0.5 : weight; + + var w = 2 * p - 1; + var a = color1.alpha() - color2.alpha(); + + var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0; + var w2 = 1 - w1; + + return Color.rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue(), + color1.alpha() * p + color2.alpha() * (1 - p) + ); + } +}; + +// model conversion methods and static constructors +Object.keys(convert).forEach(function (model) { + if (skippedModels.indexOf(model) !== -1) { + return; + } + + var channels = convert[model].channels; + + // conversion methods + Color.prototype[model] = function () { + if (this.model === model) { + return new Color(this); + } + + if (arguments.length) { + return new Color(arguments, model); + } + + var newAlpha = + typeof arguments[channels] === "number" ? channels : this.valpha; + return new Color( + assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), + model + ); + }; + + // 'static' construction methods + Color[model] = function (color) { + if (typeof color === "number") { + color = zeroArray(_slice.call(arguments), channels); + } + return new Color(color, model); + }; +}); + +function roundTo(num, places) { + return Number(num.toFixed(places)); +} + +function roundToPlace(places) { + return function (num) { + return roundTo(num, places); + }; +} + +function getset(model, channel, modifier) { + model = Array.isArray(model) ? model : [model]; + + model.forEach(function (m) { + (limiters[m] || (limiters[m] = []))[channel] = modifier; + }); + + model = model[0]; + + return function (val) { + var result; + + if (arguments.length) { + if (modifier) { + val = modifier(val); + } + + result = this[model](); + result.color[channel] = val; + return result; + } + + result = this[model]().color[channel]; + if (modifier) { + result = modifier(result); + } + + return result; + }; +} + +function maxfn(max) { + return function (v) { + return Math.max(0, Math.min(max, v)); + }; +} + +function assertArray(val) { + return Array.isArray(val) ? val : [val]; +} + +function zeroArray(arr, length) { + for (var i = 0; i < length; i++) { + if (typeof arr[i] !== "number") { + arr[i] = 0; + } + } + + return arr; +} + +module.exports = Color; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/color/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/color/package.json new file mode 100644 index 0000000000..6fc94b2d82 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/color/package.json @@ -0,0 +1,72 @@ +{ + "_from": "color@^3.1.3", + "_id": "color@3.1.3", + "_inBundle": false, + "_integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "_location": "/color", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "color@^3.1.3", + "name": "color", + "escapedName": "color", + "rawSpec": "^3.1.3", + "saveSpec": null, + "fetchSpec": "^3.1.3" + }, + "_requiredBy": [ + "/sharp" + ], + "_resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "_shasum": "ca67fb4e7b97d611dcde39eceed422067d91596e", + "_spec": "color@^3.1.3", + "_where": "/var/task/node_modules/sharp", + "authors": [ + "Josh Junon ", + "Heather Arthur ", + "Maxime Thirouin" + ], + "bugs": { + "url": "https://github.com/Qix-/color/issues" + }, + "bundleDependencies": false, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + }, + "deprecated": false, + "description": "Color conversion and manipulation with CSS string support", + "devDependencies": { + "mocha": "^6.1.4", + "xo": "0.12.1" + }, + "files": [ + "CHANGELOG.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/Qix-/color#readme", + "keywords": [ + "color", + "colour", + "css" + ], + "license": "MIT", + "name": "color", + "repository": { + "type": "git", + "url": "git+https://github.com/Qix-/color.git" + }, + "scripts": { + "pretest": "xo", + "test": "mocha" + }, + "version": "3.1.3", + "xo": { + "rules": { + "no-cond-assign": 0, + "new-cap": 0 + } + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/LICENSE new file mode 100644 index 0000000000..e756052969 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2014, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/README.md new file mode 100644 index 0000000000..491e9d369b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/README.md @@ -0,0 +1,148 @@ +# Console Control Strings + +A library of cross-platform tested terminal/console command strings for +doing things like color and cursor positioning. This is a subset of both +ansi and vt100. All control codes included work on both Windows & Unix-like +OSes, except where noted. + +## Usage + +```js +var consoleControl = require("console-control-strings"); + +console.log( + consoleControl.color("blue", "bgRed", "bold") + + "hi there" + + consoleControl.color("reset") +); +process.stdout.write(consoleControl.goto(75, 10)); +``` + +## Why Another? + +There are tons of libraries similar to this one. I wanted one that was: + +1. Very clear about compatibility goals. +2. Could emit, for instance, a start color code without an end one. +3. Returned strings w/o writing to streams. +4. Was not weighed down with other unrelated baggage. + +## Functions + +### var code = consoleControl.up(_num = 1_) + +Returns the escape sequence to move _num_ lines up. + +### var code = consoleControl.down(_num = 1_) + +Returns the escape sequence to move _num_ lines down. + +### var code = consoleControl.forward(_num = 1_) + +Returns the escape sequence to move _num_ lines righ. + +### var code = consoleControl.back(_num = 1_) + +Returns the escape sequence to move _num_ lines left. + +### var code = consoleControl.nextLine(_num = 1_) + +Returns the escape sequence to move _num_ lines down and to the beginning of +the line. + +### var code = consoleControl.previousLine(_num = 1_) + +Returns the escape sequence to move _num_ lines up and to the beginning of +the line. + +### var code = consoleControl.eraseData() + +Returns the escape sequence to erase everything from the current cursor +position to the bottom right of the screen. This is line based, so it +erases the remainder of the current line and all following lines. + +### var code = consoleControl.eraseLine() + +Returns the escape sequence to erase to the end of the current line. + +### var code = consoleControl.goto(_x_, _y_) + +Returns the escape sequence to move the cursor to the designated position. +Note that the origin is _1, 1_ not _0, 0_. + +### var code = consoleControl.gotoSOL() + +Returns the escape sequence to move the cursor to the beginning of the +current line. (That is, it returns a carriage return, `\r`.) + +### var code = consoleControl.beep() + +Returns the escape sequence to cause the termianl to beep. (That is, it +returns unicode character `\x0007`, a Control-G.) + +### var code = consoleControl.hideCursor() + +Returns the escape sequence to hide the cursor. + +### var code = consoleControl.showCursor() + +Returns the escape sequence to show the cursor. + +### var code = consoleControl.color(_colors = []_) + +### var code = consoleControl.color(_color1_, _color2_, _…_, _colorn_) + +Returns the escape sequence to set the current terminal display attributes +(mostly colors). Arguments can either be a list of attributes or an array +of attributes. The difference between passing in an array or list of colors +and calling `.color` separately for each one, is that in the former case a +single escape sequence will be produced where as in the latter each change +will have its own distinct escape sequence. Each attribute can be one of: + +- Reset: + - **reset** – Reset all attributes to the terminal default. +- Styles: + - **bold** – Display text as bold. In some terminals this means using a + bold font, in others this means changing the color. In some it means + both. + - **italic** – Display text as italic. This is not available in most Windows terminals. + - **underline** – Underline text. This is not available in most Windows Terminals. + - **inverse** – Invert the foreground and background colors. + - **stopBold** – Do not display text as bold. + - **stopItalic** – Do not display text as italic. + - **stopUnderline** – Do not underline text. + - **stopInverse** – Do not invert foreground and background. +- Colors: + - **white** + - **black** + - **blue** + - **cyan** + - **green** + - **magenta** + - **red** + - **yellow** + - **grey** / **brightBlack** + - **brightRed** + - **brightGreen** + - **brightYellow** + - **brightBlue** + - **brightMagenta** + - **brightCyan** + - **brightWhite** +- Background Colors: + - **bgWhite** + - **bgBlack** + - **bgBlue** + - **bgCyan** + - **bgGreen** + - **bgMagenta** + - **bgRed** + - **bgYellow** + - **bgGrey** / **bgBrightBlack** + - **bgBrightRed** + - **bgBrightGreen** + - **bgBrightYellow** + - **bgBrightBlue** + - **bgBrightMagenta** + - **bgBrightCyan** + - **bgBrightWhite** diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/index.js new file mode 100644 index 0000000000..9d410c1a96 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/index.js @@ -0,0 +1,126 @@ +"use strict"; + +// These tables borrowed from `ansi` + +var prefix = "\x1b["; + +exports.up = function up(num) { + return prefix + (num || "") + "A"; +}; + +exports.down = function down(num) { + return prefix + (num || "") + "B"; +}; + +exports.forward = function forward(num) { + return prefix + (num || "") + "C"; +}; + +exports.back = function back(num) { + return prefix + (num || "") + "D"; +}; + +exports.nextLine = function nextLine(num) { + return prefix + (num || "") + "E"; +}; + +exports.previousLine = function previousLine(num) { + return prefix + (num || "") + "F"; +}; + +exports.horizontalAbsolute = function horizontalAbsolute(num) { + if (num == null) + throw new Error("horizontalAboslute requires a column to position to"); + return prefix + num + "G"; +}; + +exports.eraseData = function eraseData() { + return prefix + "J"; +}; + +exports.eraseLine = function eraseLine() { + return prefix + "K"; +}; + +exports.goto = function (x, y) { + return prefix + y + ";" + x + "H"; +}; + +exports.gotoSOL = function () { + return "\r"; +}; + +exports.beep = function () { + return "\x07"; +}; + +exports.hideCursor = function hideCursor() { + return prefix + "?25l"; +}; + +exports.showCursor = function showCursor() { + return prefix + "?25h"; +}; + +var colors = { + reset: 0, + // styles + bold: 1, + italic: 3, + underline: 4, + inverse: 7, + // resets + stopBold: 22, + stopItalic: 23, + stopUnderline: 24, + stopInverse: 27, + // colors + white: 37, + black: 30, + blue: 34, + cyan: 36, + green: 32, + magenta: 35, + red: 31, + yellow: 33, + bgWhite: 47, + bgBlack: 40, + bgBlue: 44, + bgCyan: 46, + bgGreen: 42, + bgMagenta: 45, + bgRed: 41, + bgYellow: 43, + + grey: 90, + brightBlack: 90, + brightRed: 91, + brightGreen: 92, + brightYellow: 93, + brightBlue: 94, + brightMagenta: 95, + brightCyan: 96, + brightWhite: 97, + + bgGrey: 100, + bgBrightBlack: 100, + bgBrightRed: 101, + bgBrightGreen: 102, + bgBrightYellow: 103, + bgBrightBlue: 104, + bgBrightMagenta: 105, + bgBrightCyan: 106, + bgBrightWhite: 107 +}; + +exports.color = function color(colorWith) { + if (arguments.length !== 1 || !Array.isArray(colorWith)) { + colorWith = Array.prototype.slice.call(arguments); + } + return prefix + colorWith.map(colorNameToCode).join(";") + "m"; +}; + +function colorNameToCode(color) { + if (colors[color] != null) return colors[color]; + throw new Error("Unknown color or style name: " + color); +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/package.json new file mode 100644 index 0000000000..b0bf89e8ee --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/console-control-strings/package.json @@ -0,0 +1,61 @@ +{ + "_from": "console-control-strings@~1.1.0", + "_id": "console-control-strings@1.1.0", + "_inBundle": false, + "_integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "_location": "/console-control-strings", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "console-control-strings@~1.1.0", + "name": "console-control-strings", + "escapedName": "console-control-strings", + "rawSpec": "~1.1.0", + "saveSpec": null, + "fetchSpec": "~1.1.0" + }, + "_requiredBy": [ + "/gauge", + "/npmlog" + ], + "_resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "_shasum": "3d7cf4464db6446ea644bf4b39507f9851008e8e", + "_spec": "console-control-strings@~1.1.0", + "_where": "/var/task/node_modules/npmlog", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/console-control-strings/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A library of cross-platform tested terminal/console command strings for doing things like color and cursor positioning. This is a subset of both ansi and vt100. All control codes included work on both Windows & Unix-like OSes, except where noted.", + "devDependencies": { + "standard": "^7.1.2", + "tap": "^5.7.2" + }, + "directories": { + "test": "test" + }, + "files": [ + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/iarna/console-control-strings#readme", + "keywords": [], + "license": "ISC", + "main": "index.js", + "name": "console-control-strings", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/console-control-strings.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "1.1.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/LICENSE new file mode 100644 index 0000000000..d8d7f9437d --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/LICENSE @@ -0,0 +1,19 @@ +Copyright Node.js contributors. All rights reserved. + +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/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/README.md new file mode 100644 index 0000000000..5a76b4149c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/README.md @@ -0,0 +1,3 @@ +# core-util-is + +The `util.is*` functions introduced in Node v0.12. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/float.patch b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/float.patch new file mode 100644 index 0000000000..a06d5c05f7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/float.patch @@ -0,0 +1,604 @@ +diff --git a/lib/util.js b/lib/util.js +index a03e874..9074e8e 100644 +--- a/lib/util.js ++++ b/lib/util.js +@@ -19,430 +19,6 @@ + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. + +-var formatRegExp = /%[sdj%]/g; +-exports.format = function(f) { +- if (!isString(f)) { +- var objects = []; +- for (var i = 0; i < arguments.length; i++) { +- objects.push(inspect(arguments[i])); +- } +- return objects.join(' '); +- } +- +- var i = 1; +- var args = arguments; +- var len = args.length; +- var str = String(f).replace(formatRegExp, function(x) { +- if (x === '%%') return '%'; +- if (i >= len) return x; +- switch (x) { +- case '%s': return String(args[i++]); +- case '%d': return Number(args[i++]); +- case '%j': +- try { +- return JSON.stringify(args[i++]); +- } catch (_) { +- return '[Circular]'; +- } +- default: +- return x; +- } +- }); +- for (var x = args[i]; i < len; x = args[++i]) { +- if (isNull(x) || !isObject(x)) { +- str += ' ' + x; +- } else { +- str += ' ' + inspect(x); +- } +- } +- return str; +-}; +- +- +-// Mark that a method should not be used. +-// Returns a modified function which warns once by default. +-// If --no-deprecation is set, then it is a no-op. +-exports.deprecate = function(fn, msg) { +- // Allow for deprecating things in the process of starting up. +- if (isUndefined(global.process)) { +- return function() { +- return exports.deprecate(fn, msg).apply(this, arguments); +- }; +- } +- +- if (process.noDeprecation === true) { +- return fn; +- } +- +- var warned = false; +- function deprecated() { +- if (!warned) { +- if (process.throwDeprecation) { +- throw new Error(msg); +- } else if (process.traceDeprecation) { +- console.trace(msg); +- } else { +- console.error(msg); +- } +- warned = true; +- } +- return fn.apply(this, arguments); +- } +- +- return deprecated; +-}; +- +- +-var debugs = {}; +-var debugEnviron; +-exports.debuglog = function(set) { +- if (isUndefined(debugEnviron)) +- debugEnviron = process.env.NODE_DEBUG || ''; +- set = set.toUpperCase(); +- if (!debugs[set]) { +- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { +- var pid = process.pid; +- debugs[set] = function() { +- var msg = exports.format.apply(exports, arguments); +- console.error('%s %d: %s', set, pid, msg); +- }; +- } else { +- debugs[set] = function() {}; +- } +- } +- return debugs[set]; +-}; +- +- +-/** +- * Echos the value of a value. Trys to print the value out +- * in the best way possible given the different types. +- * +- * @param {Object} obj The object to print out. +- * @param {Object} opts Optional options object that alters the output. +- */ +-/* legacy: obj, showHidden, depth, colors*/ +-function inspect(obj, opts) { +- // default options +- var ctx = { +- seen: [], +- stylize: stylizeNoColor +- }; +- // legacy... +- if (arguments.length >= 3) ctx.depth = arguments[2]; +- if (arguments.length >= 4) ctx.colors = arguments[3]; +- if (isBoolean(opts)) { +- // legacy... +- ctx.showHidden = opts; +- } else if (opts) { +- // got an "options" object +- exports._extend(ctx, opts); +- } +- // set default options +- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; +- if (isUndefined(ctx.depth)) ctx.depth = 2; +- if (isUndefined(ctx.colors)) ctx.colors = false; +- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; +- if (ctx.colors) ctx.stylize = stylizeWithColor; +- return formatValue(ctx, obj, ctx.depth); +-} +-exports.inspect = inspect; +- +- +-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +-inspect.colors = { +- 'bold' : [1, 22], +- 'italic' : [3, 23], +- 'underline' : [4, 24], +- 'inverse' : [7, 27], +- 'white' : [37, 39], +- 'grey' : [90, 39], +- 'black' : [30, 39], +- 'blue' : [34, 39], +- 'cyan' : [36, 39], +- 'green' : [32, 39], +- 'magenta' : [35, 39], +- 'red' : [31, 39], +- 'yellow' : [33, 39] +-}; +- +-// Don't use 'blue' not visible on cmd.exe +-inspect.styles = { +- 'special': 'cyan', +- 'number': 'yellow', +- 'boolean': 'yellow', +- 'undefined': 'grey', +- 'null': 'bold', +- 'string': 'green', +- 'date': 'magenta', +- // "name": intentionally not styling +- 'regexp': 'red' +-}; +- +- +-function stylizeWithColor(str, styleType) { +- var style = inspect.styles[styleType]; +- +- if (style) { +- return '\u001b[' + inspect.colors[style][0] + 'm' + str + +- '\u001b[' + inspect.colors[style][1] + 'm'; +- } else { +- return str; +- } +-} +- +- +-function stylizeNoColor(str, styleType) { +- return str; +-} +- +- +-function arrayToHash(array) { +- var hash = {}; +- +- array.forEach(function(val, idx) { +- hash[val] = true; +- }); +- +- return hash; +-} +- +- +-function formatValue(ctx, value, recurseTimes) { +- // Provide a hook for user-specified inspect functions. +- // Check that value is an object with an inspect function on it +- if (ctx.customInspect && +- value && +- isFunction(value.inspect) && +- // Filter out the util module, it's inspect function is special +- value.inspect !== exports.inspect && +- // Also filter out any prototype objects using the circular check. +- !(value.constructor && value.constructor.prototype === value)) { +- var ret = value.inspect(recurseTimes, ctx); +- if (!isString(ret)) { +- ret = formatValue(ctx, ret, recurseTimes); +- } +- return ret; +- } +- +- // Primitive types cannot have properties +- var primitive = formatPrimitive(ctx, value); +- if (primitive) { +- return primitive; +- } +- +- // Look up the keys of the object. +- var keys = Object.keys(value); +- var visibleKeys = arrayToHash(keys); +- +- if (ctx.showHidden) { +- keys = Object.getOwnPropertyNames(value); +- } +- +- // Some type of object without properties can be shortcutted. +- if (keys.length === 0) { +- if (isFunction(value)) { +- var name = value.name ? ': ' + value.name : ''; +- return ctx.stylize('[Function' + name + ']', 'special'); +- } +- if (isRegExp(value)) { +- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); +- } +- if (isDate(value)) { +- return ctx.stylize(Date.prototype.toString.call(value), 'date'); +- } +- if (isError(value)) { +- return formatError(value); +- } +- } +- +- var base = '', array = false, braces = ['{', '}']; +- +- // Make Array say that they are Array +- if (isArray(value)) { +- array = true; +- braces = ['[', ']']; +- } +- +- // Make functions say that they are functions +- if (isFunction(value)) { +- var n = value.name ? ': ' + value.name : ''; +- base = ' [Function' + n + ']'; +- } +- +- // Make RegExps say that they are RegExps +- if (isRegExp(value)) { +- base = ' ' + RegExp.prototype.toString.call(value); +- } +- +- // Make dates with properties first say the date +- if (isDate(value)) { +- base = ' ' + Date.prototype.toUTCString.call(value); +- } +- +- // Make error with message first say the error +- if (isError(value)) { +- base = ' ' + formatError(value); +- } +- +- if (keys.length === 0 && (!array || value.length == 0)) { +- return braces[0] + base + braces[1]; +- } +- +- if (recurseTimes < 0) { +- if (isRegExp(value)) { +- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); +- } else { +- return ctx.stylize('[Object]', 'special'); +- } +- } +- +- ctx.seen.push(value); +- +- var output; +- if (array) { +- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); +- } else { +- output = keys.map(function(key) { +- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); +- }); +- } +- +- ctx.seen.pop(); +- +- return reduceToSingleString(output, base, braces); +-} +- +- +-function formatPrimitive(ctx, value) { +- if (isUndefined(value)) +- return ctx.stylize('undefined', 'undefined'); +- if (isString(value)) { +- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') +- .replace(/'/g, "\\'") +- .replace(/\\"/g, '"') + '\''; +- return ctx.stylize(simple, 'string'); +- } +- if (isNumber(value)) { +- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, +- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . +- if (value === 0 && 1 / value < 0) +- return ctx.stylize('-0', 'number'); +- return ctx.stylize('' + value, 'number'); +- } +- if (isBoolean(value)) +- return ctx.stylize('' + value, 'boolean'); +- // For some reason typeof null is "object", so special case here. +- if (isNull(value)) +- return ctx.stylize('null', 'null'); +-} +- +- +-function formatError(value) { +- return '[' + Error.prototype.toString.call(value) + ']'; +-} +- +- +-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { +- var output = []; +- for (var i = 0, l = value.length; i < l; ++i) { +- if (hasOwnProperty(value, String(i))) { +- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, +- String(i), true)); +- } else { +- output.push(''); +- } +- } +- keys.forEach(function(key) { +- if (!key.match(/^\d+$/)) { +- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, +- key, true)); +- } +- }); +- return output; +-} +- +- +-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { +- var name, str, desc; +- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; +- if (desc.get) { +- if (desc.set) { +- str = ctx.stylize('[Getter/Setter]', 'special'); +- } else { +- str = ctx.stylize('[Getter]', 'special'); +- } +- } else { +- if (desc.set) { +- str = ctx.stylize('[Setter]', 'special'); +- } +- } +- if (!hasOwnProperty(visibleKeys, key)) { +- name = '[' + key + ']'; +- } +- if (!str) { +- if (ctx.seen.indexOf(desc.value) < 0) { +- if (isNull(recurseTimes)) { +- str = formatValue(ctx, desc.value, null); +- } else { +- str = formatValue(ctx, desc.value, recurseTimes - 1); +- } +- if (str.indexOf('\n') > -1) { +- if (array) { +- str = str.split('\n').map(function(line) { +- return ' ' + line; +- }).join('\n').substr(2); +- } else { +- str = '\n' + str.split('\n').map(function(line) { +- return ' ' + line; +- }).join('\n'); +- } +- } +- } else { +- str = ctx.stylize('[Circular]', 'special'); +- } +- } +- if (isUndefined(name)) { +- if (array && key.match(/^\d+$/)) { +- return str; +- } +- name = JSON.stringify('' + key); +- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { +- name = name.substr(1, name.length - 2); +- name = ctx.stylize(name, 'name'); +- } else { +- name = name.replace(/'/g, "\\'") +- .replace(/\\"/g, '"') +- .replace(/(^"|"$)/g, "'"); +- name = ctx.stylize(name, 'string'); +- } +- } +- +- return name + ': ' + str; +-} +- +- +-function reduceToSingleString(output, base, braces) { +- var numLinesEst = 0; +- var length = output.reduce(function(prev, cur) { +- numLinesEst++; +- if (cur.indexOf('\n') >= 0) numLinesEst++; +- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; +- }, 0); +- +- if (length > 60) { +- return braces[0] + +- (base === '' ? '' : base + '\n ') + +- ' ' + +- output.join(',\n ') + +- ' ' + +- braces[1]; +- } +- +- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +-} +- +- + // NOTE: These type checking functions intentionally don't use `instanceof` + // because it is fragile and can be easily faked with `Object.create()`. + function isArray(ar) { +@@ -522,166 +98,10 @@ function isPrimitive(arg) { + exports.isPrimitive = isPrimitive; + + function isBuffer(arg) { +- return arg instanceof Buffer; ++ return Buffer.isBuffer(arg); + } + exports.isBuffer = isBuffer; + + function objectToString(o) { + return Object.prototype.toString.call(o); +-} +- +- +-function pad(n) { +- return n < 10 ? '0' + n.toString(10) : n.toString(10); +-} +- +- +-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', +- 'Oct', 'Nov', 'Dec']; +- +-// 26 Feb 16:19:34 +-function timestamp() { +- var d = new Date(); +- var time = [pad(d.getHours()), +- pad(d.getMinutes()), +- pad(d.getSeconds())].join(':'); +- return [d.getDate(), months[d.getMonth()], time].join(' '); +-} +- +- +-// log is just a thin wrapper to console.log that prepends a timestamp +-exports.log = function() { +- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +-}; +- +- +-/** +- * Inherit the prototype methods from one constructor into another. +- * +- * The Function.prototype.inherits from lang.js rewritten as a standalone +- * function (not on Function.prototype). NOTE: If this file is to be loaded +- * during bootstrapping this function needs to be rewritten using some native +- * functions as prototype setup using normal JavaScript does not work as +- * expected during bootstrapping (see mirror.js in r114903). +- * +- * @param {function} ctor Constructor function which needs to inherit the +- * prototype. +- * @param {function} superCtor Constructor function to inherit prototype from. +- */ +-exports.inherits = function(ctor, superCtor) { +- ctor.super_ = superCtor; +- ctor.prototype = Object.create(superCtor.prototype, { +- constructor: { +- value: ctor, +- enumerable: false, +- writable: true, +- configurable: true +- } +- }); +-}; +- +-exports._extend = function(origin, add) { +- // Don't do anything if add isn't an object +- if (!add || !isObject(add)) return origin; +- +- var keys = Object.keys(add); +- var i = keys.length; +- while (i--) { +- origin[keys[i]] = add[keys[i]]; +- } +- return origin; +-}; +- +-function hasOwnProperty(obj, prop) { +- return Object.prototype.hasOwnProperty.call(obj, prop); +-} +- +- +-// Deprecated old stuff. +- +-exports.p = exports.deprecate(function() { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- console.error(exports.inspect(arguments[i])); +- } +-}, 'util.p: Use console.error() instead'); +- +- +-exports.exec = exports.deprecate(function() { +- return require('child_process').exec.apply(this, arguments); +-}, 'util.exec is now called `child_process.exec`.'); +- +- +-exports.print = exports.deprecate(function() { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- process.stdout.write(String(arguments[i])); +- } +-}, 'util.print: Use console.log instead'); +- +- +-exports.puts = exports.deprecate(function() { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- process.stdout.write(arguments[i] + '\n'); +- } +-}, 'util.puts: Use console.log instead'); +- +- +-exports.debug = exports.deprecate(function(x) { +- process.stderr.write('DEBUG: ' + x + '\n'); +-}, 'util.debug: Use console.error instead'); +- +- +-exports.error = exports.deprecate(function(x) { +- for (var i = 0, len = arguments.length; i < len; ++i) { +- process.stderr.write(arguments[i] + '\n'); +- } +-}, 'util.error: Use console.error instead'); +- +- +-exports.pump = exports.deprecate(function(readStream, writeStream, callback) { +- var callbackCalled = false; +- +- function call(a, b, c) { +- if (callback && !callbackCalled) { +- callback(a, b, c); +- callbackCalled = true; +- } +- } +- +- readStream.addListener('data', function(chunk) { +- if (writeStream.write(chunk) === false) readStream.pause(); +- }); +- +- writeStream.addListener('drain', function() { +- readStream.resume(); +- }); +- +- readStream.addListener('end', function() { +- writeStream.end(); +- }); +- +- readStream.addListener('close', function() { +- call(); +- }); +- +- readStream.addListener('error', function(err) { +- writeStream.end(); +- call(err); +- }); +- +- writeStream.addListener('error', function(err) { +- readStream.destroy(); +- call(err); +- }); +-}, 'util.pump(): Use readableStream.pipe() instead'); +- +- +-var uv; +-exports._errnoException = function(err, syscall) { +- if (isUndefined(uv)) uv = process.binding('uv'); +- var errname = uv.errname(err); +- var e = new Error(syscall + ' ' + errname); +- e.code = errname; +- e.errno = errname; +- e.syscall = syscall; +- return e; +-}; ++} \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/lib/util.js b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/lib/util.js new file mode 100644 index 0000000000..daeb838ade --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/lib/util.js @@ -0,0 +1,109 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === "[object Array]"; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === "boolean"; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === "number"; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === "string"; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === "symbol"; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === "[object RegExp]"; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === "object" && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === "[object Date]"; +} +exports.isDate = isDate; + +function isError(e) { + return objectToString(e) === "[object Error]" || e instanceof Error; +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === "function"; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return ( + arg === null || + typeof arg === "boolean" || + typeof arg === "number" || + typeof arg === "string" || + typeof arg === "symbol" || // ES6 symbol + typeof arg === "undefined" + ); +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/package.json new file mode 100644 index 0000000000..f770b04792 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/package.json @@ -0,0 +1,62 @@ +{ + "_from": "core-util-is@~1.0.0", + "_id": "core-util-is@1.0.2", + "_inBundle": false, + "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "_location": "/core-util-is", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "core-util-is@~1.0.0", + "name": "core-util-is", + "escapedName": "core-util-is", + "rawSpec": "~1.0.0", + "saveSpec": null, + "fetchSpec": "~1.0.0" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "_spec": "core-util-is@~1.0.0", + "_where": "/var/task/node_modules/readable-stream", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/core-util-is/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "The `util.is*` functions introduced in Node v0.12.", + "devDependencies": { + "tap": "^2.3.0" + }, + "homepage": "https://github.com/isaacs/core-util-is#readme", + "keywords": [ + "util", + "isBuffer", + "isArray", + "isNumber", + "isString", + "isRegExp", + "isThis", + "isThat", + "polyfill" + ], + "license": "MIT", + "main": "lib/util.js", + "name": "core-util-is", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/core-util-is.git" + }, + "scripts": { + "test": "tap test.js" + }, + "version": "1.0.2" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/test.js b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/test.js new file mode 100644 index 0000000000..421081ca45 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/core-util-is/test.js @@ -0,0 +1,71 @@ +var assert = require("tap"); + +var t = require("./lib/util"); + +assert.equal(t.isArray([]), true); +assert.equal(t.isArray({}), false); + +assert.equal(t.isBoolean(null), false); +assert.equal(t.isBoolean(true), true); +assert.equal(t.isBoolean(false), true); + +assert.equal(t.isNull(null), true); +assert.equal(t.isNull(undefined), false); +assert.equal(t.isNull(false), false); +assert.equal(t.isNull(), false); + +assert.equal(t.isNullOrUndefined(null), true); +assert.equal(t.isNullOrUndefined(undefined), true); +assert.equal(t.isNullOrUndefined(false), false); +assert.equal(t.isNullOrUndefined(), true); + +assert.equal(t.isNumber(null), false); +assert.equal(t.isNumber("1"), false); +assert.equal(t.isNumber(1), true); + +assert.equal(t.isString(null), false); +assert.equal(t.isString("1"), true); +assert.equal(t.isString(1), false); + +assert.equal(t.isSymbol(null), false); +assert.equal(t.isSymbol("1"), false); +assert.equal(t.isSymbol(1), false); +assert.equal(t.isSymbol(Symbol()), true); + +assert.equal(t.isUndefined(null), false); +assert.equal(t.isUndefined(undefined), true); +assert.equal(t.isUndefined(false), false); +assert.equal(t.isUndefined(), true); + +assert.equal(t.isRegExp(null), false); +assert.equal(t.isRegExp("1"), false); +assert.equal(t.isRegExp(new RegExp()), true); + +assert.equal(t.isObject({}), true); +assert.equal(t.isObject([]), true); +assert.equal(t.isObject(new RegExp()), true); +assert.equal(t.isObject(new Date()), true); + +assert.equal(t.isDate(null), false); +assert.equal(t.isDate("1"), false); +assert.equal(t.isDate(new Date()), true); + +assert.equal(t.isError(null), false); +assert.equal(t.isError({ err: true }), false); +assert.equal(t.isError(new Error()), true); + +assert.equal(t.isFunction(null), false); +assert.equal(t.isFunction({}), false); +assert.equal( + t.isFunction(function () {}), + true +); + +assert.equal(t.isPrimitive(null), true); +assert.equal(t.isPrimitive(""), true); +assert.equal(t.isPrimitive(0), true); +assert.equal(t.isPrimitive(new Date()), false); + +assert.equal(t.isBuffer(null), false); +assert.equal(t.isBuffer({}), false); +assert.equal(t.isBuffer(new Buffer(0)), true); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/index.d.ts b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/index.d.ts new file mode 100644 index 0000000000..2f445ef606 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/index.d.ts @@ -0,0 +1,29 @@ +/// +import { IncomingMessage } from "http"; + +declare const decompressResponse: { + /** + Decompress a HTTP response if needed. + + @param response - The HTTP incoming stream with compressed data. + @returns The decompressed HTTP response stream. + + @example + ``` + import {http} from 'http'; + import decompressResponse = require('decompress-response'); + + http.get('https://sindresorhus.com', response => { + response = decompressResponse(response); + }); + ``` + */ + (response: IncomingMessage): IncomingMessage; + + // TODO: remove this in the next major version, refactor the whole definition to: + // declare function decompressResponse(response: IncomingMessage): IncomingMessage; + // export = decompressResponse; + default: typeof decompressResponse; +}; + +export = decompressResponse; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/index.js new file mode 100644 index 0000000000..f3fde95790 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/index.js @@ -0,0 +1,44 @@ +"use strict"; +const { PassThrough: PassThroughStream } = require("stream"); +const zlib = require("zlib"); +const mimicResponse = require("mimic-response"); + +const decompressResponse = (response) => { + const contentEncoding = ( + response.headers["content-encoding"] || "" + ).toLowerCase(); + + if (!["gzip", "deflate", "br"].includes(contentEncoding)) { + return response; + } + + const isBrotli = contentEncoding === "br"; + if (isBrotli && typeof zlib.createBrotliDecompress !== "function") { + return response; + } + + const decompress = isBrotli + ? zlib.createBrotliDecompress() + : zlib.createUnzip(); + const stream = new PassThroughStream(); + + mimicResponse(response, stream); + + decompress.on("error", (error) => { + // Ignore empty response + if (error.code === "Z_BUF_ERROR") { + stream.end(); + return; + } + + stream.emit("error", error); + }); + + response.pipe(decompress).pipe(stream); + + return stream; +}; + +module.exports = decompressResponse; +// TODO: remove this in the next major version +module.exports.default = decompressResponse; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/license b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/license new file mode 100644 index 0000000000..e7af2f7710 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/package.json new file mode 100644 index 0000000000..2ce8ba3512 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/package.json @@ -0,0 +1,82 @@ +{ + "_from": "decompress-response@^4.2.0", + "_id": "decompress-response@4.2.1", + "_inBundle": false, + "_integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "_location": "/decompress-response", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "decompress-response@^4.2.0", + "name": "decompress-response", + "escapedName": "decompress-response", + "rawSpec": "^4.2.0", + "saveSpec": null, + "fetchSpec": "^4.2.0" + }, + "_requiredBy": [ + "/prebuild-install/simple-get" + ], + "_resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "_shasum": "414023cc7a302da25ce2ec82d0d5238ccafd8986", + "_spec": "decompress-response@^4.2.0", + "_where": "/var/task/node_modules/prebuild-install/node_modules/simple-get", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/decompress-response/issues" + }, + "bundleDependencies": false, + "dependencies": { + "mimic-response": "^2.0.0" + }, + "deprecated": false, + "description": "Decompress a HTTP response if needed", + "devDependencies": { + "@types/node": "^12.7.1", + "ava": "^2.2.0", + "get-stream": "^5.0.0", + "pify": "^4.0.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/decompress-response#readme", + "keywords": [ + "decompress", + "response", + "http", + "https", + "zlib", + "gzip", + "zip", + "deflate", + "unzip", + "ungzip", + "incoming", + "message", + "stream", + "compressed", + "brotli" + ], + "license": "MIT", + "name": "decompress-response", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/decompress-response.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "4.2.1" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/readme.md b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/readme.md new file mode 100644 index 0000000000..efb442e793 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/decompress-response/readme.md @@ -0,0 +1,48 @@ +# decompress-response [![Build Status](https://travis-ci.org/sindresorhus/decompress-response.svg?branch=master)](https://travis-ci.org/sindresorhus/decompress-response) + +> Decompress a HTTP response if needed + +Decompresses the [response](https://nodejs.org/api/http.html#http_class_http_incomingmessage) from [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) if it's gzipped, deflated or compressed with Brotli, otherwise just passes it through. + +Used by [`got`](https://github.com/sindresorhus/got). + +## Install + +``` +$ npm install decompress-response +``` + +## Usage + +```js +const http = require("http"); +const decompressResponse = require("decompress-response"); + +http.get("https://sindresorhus.com", (response) => { + response = decompressResponse(response); +}); +``` + +## API + +### decompressResponse(response) + +Returns the decompressed HTTP response stream. + +#### response + +Type: [`http.IncomingMessage`](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +The HTTP incoming stream with compressed data. + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/CHANGELOG.md b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/CHANGELOG.md new file mode 100644 index 0000000000..56929ff78e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/CHANGELOG.md @@ -0,0 +1,39 @@ +# Changelog + +## v0.6.0 + +- Updated "devDependencies" versions to fix vulnerability alerts +- Dropped support of io.js and node.js v0.12.x and lower since new versions of + "devDependencies" couldn't work with those old node.js versions + (minimal supported version of node.js now is v4.0.0) + +## v0.5.1 + +- Fix prototype pollution vulnerability (thanks to @mwakerman for the PR) +- Avoid using deprecated Buffer API (thanks to @ChALkeR for the PR) + +## v0.5.0 + +- Auto-testing provided by Travis CI; +- Support older Node.JS versions (`v0.11.x` and `v0.10.x`); +- Removed tests files from npm package. + +## v0.4.2 + +- Fix for `null` as an argument. + +## v0.4.1 + +- Removed test code from npm package + ([see pull request #21](https://github.com/unclechu/node-deep-extend/pull/21)); +- Increased minimal version of Node from `0.4.0` to `0.12.0` + (because can't run tests on lesser version anyway). + +## v0.4.0 + +- **WARNING!** Broken backward compatibility with `v0.3.x`; +- Fixed bug with extending arrays instead of cloning; +- Deep cloning for arrays; +- Check for own property; +- Fixed some documentation issues; +- Strict JS mode. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/LICENSE new file mode 100644 index 0000000000..5c58916f2f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013-2018, Viacheslav Lotsmanov + +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/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/README.md new file mode 100644 index 0000000000..75ab09efa9 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/README.md @@ -0,0 +1,84 @@ +# Deep Extend + +Recursive object extending. + +[![Build Status](https://api.travis-ci.org/unclechu/node-deep-extend.svg?branch=master)](https://travis-ci.org/unclechu/node-deep-extend) + +[![NPM](https://nodei.co/npm/deep-extend.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/deep-extend/) + +## Install + +```bash +$ npm install deep-extend +``` + +## Usage + +```javascript +var deepExtend = require("deep-extend"); +var obj1 = { + a: 1, + b: 2, + d: { + a: 1, + b: [], + c: { test1: 123, test2: 321 } + }, + f: 5, + g: 123, + i: 321, + j: [1, 2] +}; +var obj2 = { + b: 3, + c: 5, + d: { + b: { first: "one", second: "two" }, + c: { test2: 222 } + }, + e: { one: 1, two: 2 }, + f: [], + g: void 0, + h: /abc/g, + i: null, + j: [3, 4] +}; + +deepExtend(obj1, obj2); + +console.log(obj1); +/* +{ a: 1, + b: 3, + d: + { a: 1, + b: { first: 'one', second: 'two' }, + c: { test1: 123, test2: 222 } }, + f: [], + g: undefined, + c: 5, + e: { one: 1, two: 2 }, + h: /abc/g, + i: null, + j: [3, 4] } +*/ +``` + +## Unit testing + +```bash +$ npm test +``` + +## Changelog + +[CHANGELOG.md](./CHANGELOG.md) + +## Any issues? + +Please, report about issues +[here](https://github.com/unclechu/node-deep-extend/issues). + +## License + +[MIT](./LICENSE) diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/index.js new file mode 100644 index 0000000000..55f153002b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/index.js @@ -0,0 +1 @@ +module.exports = require("./lib/deep-extend"); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/lib/deep-extend.js b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/lib/deep-extend.js new file mode 100644 index 0000000000..6af4e952ae --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/lib/deep-extend.js @@ -0,0 +1,150 @@ +/*! + * @description Recursive object extending + * @author Viacheslav Lotsmanov + * @license MIT + * + * The MIT License (MIT) + * + * Copyright (c) 2013-2018 Viacheslav Lotsmanov + * + * 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. + */ + +"use strict"; + +function isSpecificValue(val) { + return val instanceof Buffer || val instanceof Date || val instanceof RegExp + ? true + : false; +} + +function cloneSpecificValue(val) { + if (val instanceof Buffer) { + var x = Buffer.alloc ? Buffer.alloc(val.length) : new Buffer(val.length); + val.copy(x); + return x; + } else if (val instanceof Date) { + return new Date(val.getTime()); + } else if (val instanceof RegExp) { + return new RegExp(val); + } else { + throw new Error("Unexpected situation"); + } +} + +/** + * Recursive cloning array. + */ +function deepCloneArray(arr) { + var clone = []; + arr.forEach(function (item, index) { + if (typeof item === "object" && item !== null) { + if (Array.isArray(item)) { + clone[index] = deepCloneArray(item); + } else if (isSpecificValue(item)) { + clone[index] = cloneSpecificValue(item); + } else { + clone[index] = deepExtend({}, item); + } + } else { + clone[index] = item; + } + }); + return clone; +} + +function safeGetProperty(object, property) { + return property === "__proto__" ? undefined : object[property]; +} + +/** + * Extening object that entered in first argument. + * + * Returns extended object or false if have no target object or incorrect type. + * + * If you wish to clone source object (without modify it), just use empty new + * object as first argument, like this: + * deepExtend({}, yourObj_1, [yourObj_N]); + */ +var deepExtend = (module.exports = function (/*obj_1, [obj_2], [obj_N]*/) { + if (arguments.length < 1 || typeof arguments[0] !== "object") { + return false; + } + + if (arguments.length < 2) { + return arguments[0]; + } + + var target = arguments[0]; + + // convert arguments to array and cut off target object + var args = Array.prototype.slice.call(arguments, 1); + + var val, src, clone; + + args.forEach(function (obj) { + // skip argument if isn't an object, is null, or is an array + if (typeof obj !== "object" || obj === null || Array.isArray(obj)) { + return; + } + + Object.keys(obj).forEach(function (key) { + src = safeGetProperty(target, key); // source value + val = safeGetProperty(obj, key); // new value + + // recursion prevention + if (val === target) { + return; + + /** + * if new value isn't object then just overwrite by new value + * instead of extending. + */ + } else if (typeof val !== "object" || val === null) { + target[key] = val; + return; + + // just clone arrays (and recursive clone objects inside) + } else if (Array.isArray(val)) { + target[key] = deepCloneArray(val); + return; + + // custom cloning and overwrite for specific objects + } else if (isSpecificValue(val)) { + target[key] = cloneSpecificValue(val); + return; + + // overwrite by new value if source isn't object or array + } else if ( + typeof src !== "object" || + src === null || + Array.isArray(src) + ) { + target[key] = deepExtend({}, val); + return; + + // source value and new value is objects both, extending... + } else { + target[key] = deepExtend(src, val); + return; + } + }); + }); + + return target; +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/package.json new file mode 100644 index 0000000000..40e5819d8a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/deep-extend/package.json @@ -0,0 +1,92 @@ +{ + "_from": "deep-extend@^0.6.0", + "_id": "deep-extend@0.6.0", + "_inBundle": false, + "_integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "_location": "/deep-extend", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "deep-extend@^0.6.0", + "name": "deep-extend", + "escapedName": "deep-extend", + "rawSpec": "^0.6.0", + "saveSpec": null, + "fetchSpec": "^0.6.0" + }, + "_requiredBy": [ + "/rc" + ], + "_resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "_shasum": "c4fa7c95404a17a9c3e8ca7e1537312b736330ac", + "_spec": "deep-extend@^0.6.0", + "_where": "/var/task/node_modules/rc", + "author": { + "name": "Viacheslav Lotsmanov", + "email": "lotsmanov89@gmail.com" + }, + "bugs": { + "url": "https://github.com/unclechu/node-deep-extend/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Romain Prieto", + "url": "https://github.com/rprieto" + }, + { + "name": "Max Maximov", + "url": "https://github.com/maxmaximov" + }, + { + "name": "Marshall Bowers", + "url": "https://github.com/maxdeviant" + }, + { + "name": "Misha Wakerman", + "url": "https://github.com/mwakerman" + } + ], + "deprecated": false, + "description": "Recursive object extending", + "devDependencies": { + "mocha": "5.2.0", + "should": "13.2.1" + }, + "engines": { + "node": ">=4.0.0" + }, + "files": [ + "index.js", + "lib/" + ], + "homepage": "https://github.com/unclechu/node-deep-extend", + "keywords": [ + "deep-extend", + "extend", + "deep", + "recursive", + "xtend", + "clone", + "merge", + "json" + ], + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "https://raw.githubusercontent.com/unclechu/node-deep-extend/master/LICENSE" + } + ], + "main": "lib/deep-extend.js", + "name": "deep-extend", + "repository": { + "type": "git", + "url": "git://github.com/unclechu/node-deep-extend.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.6.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/delegates/.npmignore b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/.npmignore new file mode 100644 index 0000000000..c2658d7d1b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/.npmignore @@ -0,0 +1 @@ +node_modules/ diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/delegates/History.md b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/History.md new file mode 100644 index 0000000000..afccb63106 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/History.md @@ -0,0 +1,17 @@ +# 1.0.0 / 2015-12-14 + +- Merge pull request #12 from kasicka/master +- Add license text + +# 0.1.0 / 2014-10-17 + +- adds `.fluent()` to api + +# 0.0.3 / 2014-01-13 + +- fix receiver for .method() + +# 0.0.2 / 2014-01-13 + +- Object.defineProperty() sucks +- Initial commit diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/delegates/License b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/License new file mode 100644 index 0000000000..60de60addb --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/License @@ -0,0 +1,20 @@ +Copyright (c) 2015 TJ Holowaychuk + +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/packages/libs/lambda-at-edge/sharp_node_modules/delegates/Makefile b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/Makefile new file mode 100644 index 0000000000..a9dcfd50db --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/Makefile @@ -0,0 +1,8 @@ + +test: + @./node_modules/.bin/mocha \ + --require should \ + --reporter spec \ + --bail + +.PHONY: test \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/delegates/Readme.md b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/Readme.md new file mode 100644 index 0000000000..43f244a704 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/Readme.md @@ -0,0 +1,90 @@ +# delegates + +Node method and accessor delegation utilty. + +## Installation + +``` +$ npm install delegates +``` + +## Example + +```js +var delegate = require('delegates'); + +... + +delegate(proto, 'request') + .method('acceptsLanguages') + .method('acceptsEncodings') + .method('acceptsCharsets') + .method('accepts') + .method('is') + .access('querystring') + .access('idempotent') + .access('socket') + .access('length') + .access('query') + .access('search') + .access('status') + .access('method') + .access('path') + .access('body') + .access('host') + .access('url') + .getter('subdomains') + .getter('protocol') + .getter('header') + .getter('stale') + .getter('fresh') + .getter('secure') + .getter('ips') + .getter('ip') +``` + +# API + +## Delegate(proto, prop) + +Creates a delegator instance used to configure using the `prop` on the given +`proto` object. (which is usually a prototype) + +## Delegate#method(name) + +Allows the given method `name` to be accessed on the host. + +## Delegate#getter(name) + +Creates a "getter" for the property with the given `name` on the delegated +object. + +## Delegate#setter(name) + +Creates a "setter" for the property with the given `name` on the delegated +object. + +## Delegate#access(name) + +Creates an "accessor" (ie: both getter _and_ setter) for the property with the +given `name` on the delegated object. + +## Delegate#fluent(name) + +A unique type of "accessor" that works for a "fluent" API. When called as a +getter, the method returns the expected value. However, if the method is called +with a value, it will return itself so it can be chained. For example: + +```js +delegate(proto, "request").fluent("query"); + +// getter +var q = request.query(); + +// setter (chainable) +request.query({ a: 1 }).query({ b: 2 }); +``` + +# License + +MIT diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/delegates/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/index.js new file mode 100644 index 0000000000..53a57ba892 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/index.js @@ -0,0 +1,120 @@ +/** + * Expose `Delegator`. + */ + +module.exports = Delegator; + +/** + * Initialize a delegator. + * + * @param {Object} proto + * @param {String} target + * @api public + */ + +function Delegator(proto, target) { + if (!(this instanceof Delegator)) return new Delegator(proto, target); + this.proto = proto; + this.target = target; + this.methods = []; + this.getters = []; + this.setters = []; + this.fluents = []; +} + +/** + * Delegate method `name`. + * + * @param {String} name + * @return {Delegator} self + * @api public + */ + +Delegator.prototype.method = function (name) { + var proto = this.proto; + var target = this.target; + this.methods.push(name); + + proto[name] = function () { + return this[target][name].apply(this[target], arguments); + }; + + return this; +}; + +/** + * Delegator accessor `name`. + * + * @param {String} name + * @return {Delegator} self + * @api public + */ + +Delegator.prototype.access = function (name) { + return this.getter(name).setter(name); +}; + +/** + * Delegator getter `name`. + * + * @param {String} name + * @return {Delegator} self + * @api public + */ + +Delegator.prototype.getter = function (name) { + var proto = this.proto; + var target = this.target; + this.getters.push(name); + + proto.__defineGetter__(name, function () { + return this[target][name]; + }); + + return this; +}; + +/** + * Delegator setter `name`. + * + * @param {String} name + * @return {Delegator} self + * @api public + */ + +Delegator.prototype.setter = function (name) { + var proto = this.proto; + var target = this.target; + this.setters.push(name); + + proto.__defineSetter__(name, function (val) { + return (this[target][name] = val); + }); + + return this; +}; + +/** + * Delegator fluent accessor + * + * @param {String} name + * @return {Delegator} self + * @api public + */ + +Delegator.prototype.fluent = function (name) { + var proto = this.proto; + var target = this.target; + this.fluents.push(name); + + proto[name] = function (val) { + if ("undefined" != typeof val) { + this[target][name] = val; + return this; + } else { + return this[target][name]; + } + }; + + return this; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/delegates/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/package.json new file mode 100644 index 0000000000..73804e8b8f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/package.json @@ -0,0 +1,48 @@ +{ + "_from": "delegates@^1.0.0", + "_id": "delegates@1.0.0", + "_inBundle": false, + "_integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "_location": "/delegates", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "delegates@^1.0.0", + "name": "delegates", + "escapedName": "delegates", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/are-we-there-yet" + ], + "_resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "_shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a", + "_spec": "delegates@^1.0.0", + "_where": "/var/task/node_modules/are-we-there-yet", + "bugs": { + "url": "https://github.com/visionmedia/node-delegates/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "delegate methods and accessors to another property", + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "homepage": "https://github.com/visionmedia/node-delegates#readme", + "keywords": [ + "delegate", + "delegation" + ], + "license": "MIT", + "name": "delegates", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/node-delegates.git" + }, + "version": "1.0.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/delegates/test/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/test/index.js new file mode 100644 index 0000000000..9586eb6019 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/delegates/test/index.js @@ -0,0 +1,93 @@ +var assert = require("assert"); +var delegate = require(".."); + +describe(".method(name)", function () { + it("should delegate methods", function () { + var obj = {}; + + obj.request = { + foo: function (bar) { + assert(this == obj.request); + return bar; + } + }; + + delegate(obj, "request").method("foo"); + + obj.foo("something").should.equal("something"); + }); +}); + +describe(".getter(name)", function () { + it("should delegate getters", function () { + var obj = {}; + + obj.request = { + get type() { + return "text/html"; + } + }; + + delegate(obj, "request").getter("type"); + + obj.type.should.equal("text/html"); + }); +}); + +describe(".setter(name)", function () { + it("should delegate setters", function () { + var obj = {}; + + obj.request = { + get type() { + return this._type.toUpperCase(); + }, + + set type(val) { + this._type = val; + } + }; + + delegate(obj, "request").setter("type"); + + obj.type = "hey"; + obj.request.type.should.equal("HEY"); + }); +}); + +describe(".access(name)", function () { + it("should delegate getters and setters", function () { + var obj = {}; + + obj.request = { + get type() { + return this._type.toUpperCase(); + }, + + set type(val) { + this._type = val; + } + }; + + delegate(obj, "request").access("type"); + + obj.type = "hey"; + obj.type.should.equal("HEY"); + }); +}); + +describe(".fluent(name)", function () { + it("should delegate in a fluent fashion", function () { + var obj = { + settings: { + env: "development" + } + }; + + delegate(obj, "settings").fluent("env"); + + obj.env().should.equal("development"); + obj.env("production").should.equal(obj); + obj.settings.env.should.equal("production"); + }); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/.npmignore b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/.npmignore new file mode 100644 index 0000000000..8fc0e8d3b3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/.npmignore @@ -0,0 +1,7 @@ +.nyc_output +.travis.yml +coverage +test.js +node_modules +/.circleci +/tests/integration diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/README.md new file mode 100644 index 0000000000..4ba67941e7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/README.md @@ -0,0 +1,84 @@ +# detect-libc + +Node.js module to detect the C standard library (libc) implementation +family and version in use on a given Linux system. + +Provides a value suitable for use with the `LIBC` option of +[prebuild](https://www.npmjs.com/package/prebuild), +[prebuild-ci](https://www.npmjs.com/package/prebuild-ci) and +[prebuild-install](https://www.npmjs.com/package/prebuild-install), +therefore allowing build and provision of pre-compiled binaries +for musl-based Linux e.g. Alpine as well as glibc-based. + +Currently supports libc detection of `glibc` and `musl`. + +## Install + +```sh +npm install detect-libc +``` + +## Usage + +### API + +```js +const { + GLIBC, + MUSL, + family, + version, + isNonGlibcLinux +} = require("detect-libc"); +``` + +- `GLIBC` is a String containing the value "glibc" for comparison with `family`. +- `MUSL` is a String containing the value "musl" for comparison with `family`. +- `family` is a String representing the system libc family. +- `version` is a String representing the system libc version number. +- `isNonGlibcLinux` is a Boolean representing whether the system is a non-glibc Linux, e.g. Alpine. + +### detect-libc command line tool + +When run on a Linux system with a non-glibc libc, +the child command will be run with the `LIBC` environment variable +set to the relevant value. + +On all other platforms will run the child command as-is. + +The command line feature requires `spawnSync` provided by Node v0.12+. + +```sh +detect-libc child-command +``` + +## Integrating with prebuild + +```json + "scripts": { + "install": "detect-libc prebuild-install || node-gyp rebuild", + "test": "mocha && detect-libc prebuild-ci" + }, + "dependencies": { + "detect-libc": "^1.0.2", + "prebuild-install": "^2.2.0" + }, + "devDependencies": { + "prebuild": "^6.2.1", + "prebuild-ci": "^2.2.3" + } +``` + +## Licence + +Copyright 2017 Lovell Fuller + +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](http://www.apache.org/licenses/LICENSE-2.0.html) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/bin/detect-libc.js b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/bin/detect-libc.js new file mode 100755 index 0000000000..ecf31b6868 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/bin/detect-libc.js @@ -0,0 +1,20 @@ +#!/usr/bin/env node + +"use strict"; + +var spawnSync = require("child_process").spawnSync; +var libc = require("../"); + +var spawnOptions = { + env: process.env, + shell: true, + stdio: "inherit" +}; + +if (libc.isNonGlibcLinux) { + spawnOptions.env.LIBC = process.env.LIBC || libc.family; +} + +process.exit( + spawnSync(process.argv[2], process.argv.slice(3), spawnOptions).status +); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/lib/detect-libc.js b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/lib/detect-libc.js new file mode 100644 index 0000000000..db1ce88281 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/lib/detect-libc.js @@ -0,0 +1,95 @@ +"use strict"; + +var platform = require("os").platform(); +var spawnSync = require("child_process").spawnSync; +var readdirSync = require("fs").readdirSync; + +var GLIBC = "glibc"; +var MUSL = "musl"; + +var spawnOptions = { + encoding: "utf8", + env: process.env +}; + +if (!spawnSync) { + spawnSync = function () { + return { status: 126, stdout: "", stderr: "" }; + }; +} + +function contains(needle) { + return function (haystack) { + return haystack.indexOf(needle) !== -1; + }; +} + +function versionFromMuslLdd(out) { + return out + .split(/[\r\n]+/)[1] + .trim() + .split(/\s/)[1]; +} + +function safeReaddirSync(path) { + try { + return readdirSync(path); + } catch (e) {} + return []; +} + +var family = ""; +var version = ""; +var method = ""; + +if (platform === "linux") { + // Try getconf + var glibc = spawnSync("getconf", ["GNU_LIBC_VERSION"], spawnOptions); + if (glibc.status === 0) { + family = GLIBC; + version = glibc.stdout.trim().split(" ")[1]; + method = "getconf"; + } else { + // Try ldd + var ldd = spawnSync("ldd", ["--version"], spawnOptions); + if (ldd.status === 0 && ldd.stdout.indexOf(MUSL) !== -1) { + family = MUSL; + version = versionFromMuslLdd(ldd.stdout); + method = "ldd"; + } else if (ldd.status === 1 && ldd.stderr.indexOf(MUSL) !== -1) { + family = MUSL; + version = versionFromMuslLdd(ldd.stderr); + method = "ldd"; + } else { + // Try filesystem (family only) + var lib = safeReaddirSync("/lib"); + if (lib.some(contains("-linux-gnu"))) { + family = GLIBC; + method = "filesystem"; + } else if (lib.some(contains("libc.musl-"))) { + family = MUSL; + method = "filesystem"; + } else if (lib.some(contains("ld-musl-"))) { + family = MUSL; + method = "filesystem"; + } else { + var usrSbin = safeReaddirSync("/usr/sbin"); + if (usrSbin.some(contains("glibc"))) { + family = GLIBC; + method = "filesystem"; + } + } + } + } +} + +var isNonGlibcLinux = family !== "" && family !== GLIBC; + +module.exports = { + GLIBC: GLIBC, + MUSL: MUSL, + family: family, + version: version, + method: method, + isNonGlibcLinux: isNonGlibcLinux +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/package.json new file mode 100644 index 0000000000..3f47c98b54 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/detect-libc/package.json @@ -0,0 +1,71 @@ +{ + "_from": "detect-libc@^1.0.3", + "_id": "detect-libc@1.0.3", + "_inBundle": false, + "_integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "_location": "/detect-libc", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "detect-libc@^1.0.3", + "name": "detect-libc", + "escapedName": "detect-libc", + "rawSpec": "^1.0.3", + "saveSpec": null, + "fetchSpec": "^1.0.3" + }, + "_requiredBy": [ + "/prebuild-install", + "/sharp" + ], + "_resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "_shasum": "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b", + "_spec": "detect-libc@^1.0.3", + "_where": "/var/task/node_modules/sharp", + "author": { + "name": "Lovell Fuller", + "email": "npm@lovell.info" + }, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "bugs": { + "url": "https://github.com/lovell/detect-libc/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Niklas Salmoukas", + "email": "niklas@salmoukas.com" + } + ], + "deprecated": false, + "description": "Node.js module to detect the C standard library (libc) implementation family and version", + "devDependencies": { + "ava": "^0.23.0", + "nyc": "^11.3.0", + "proxyquire": "^1.8.0", + "semistandard": "^11.0.0" + }, + "engines": { + "node": ">=0.10" + }, + "homepage": "https://github.com/lovell/detect-libc#readme", + "keywords": [ + "libc", + "glibc", + "musl" + ], + "license": "Apache-2.0", + "main": "lib/detect-libc.js", + "name": "detect-libc", + "repository": { + "type": "git", + "url": "git://github.com/lovell/detect-libc.git" + }, + "scripts": { + "test": "semistandard && nyc --reporter=lcov ava" + }, + "version": "1.0.3" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/LICENSE new file mode 100644 index 0000000000..757562ec59 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Mathias Buus + +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. \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/README.md new file mode 100644 index 0000000000..b4f1e9c39a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/README.md @@ -0,0 +1,54 @@ +# end-of-stream + +A node module that calls a callback when a readable/writable/duplex stream has completed or failed. + + npm install end-of-stream + +[![Build status](https://travis-ci.org/mafintosh/end-of-stream.svg?branch=master)](https://travis-ci.org/mafintosh/end-of-stream) + +## Usage + +Simply pass a stream and a callback to the `eos`. +Both legacy streams, streams2 and stream3 are supported. + +```js +var eos = require("end-of-stream"); + +eos(readableStream, function (err) { + // this will be set to the stream instance + if (err) return console.log("stream had an error or closed early"); + console.log("stream has ended", this === readableStream); +}); + +eos(writableStream, function (err) { + if (err) return console.log("stream had an error or closed early"); + console.log("stream has finished", this === writableStream); +}); + +eos(duplexStream, function (err) { + if (err) return console.log("stream had an error or closed early"); + console.log("stream has ended and finished", this === duplexStream); +}); + +eos(duplexStream, { readable: false }, function (err) { + if (err) return console.log("stream had an error or closed early"); + console.log("stream has finished but might still be readable"); +}); + +eos(duplexStream, { writable: false }, function (err) { + if (err) return console.log("stream had an error or closed early"); + console.log("stream has ended but might still be writable"); +}); + +eos(readableStream, { error: false }, function (err) { + // do not treat emit('error', err) as a end-of-stream +}); +``` + +## License + +MIT + +## Related + +`end-of-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/index.js new file mode 100644 index 0000000000..7b45a08a47 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/index.js @@ -0,0 +1,102 @@ +var once = require("once"); + +var noop = function () {}; + +var isRequest = function (stream) { + return stream.setHeader && typeof stream.abort === "function"; +}; + +var isChildProcess = function (stream) { + return ( + stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 + ); +}; + +var eos = function (stream, opts, callback) { + if (typeof opts === "function") return eos(stream, null, opts); + if (!opts) opts = {}; + + callback = once(callback || noop); + + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + var cancelled = false; + + var onlegacyfinish = function () { + if (!stream.writable) onfinish(); + }; + + var onfinish = function () { + writable = false; + if (!readable) callback.call(stream); + }; + + var onend = function () { + readable = false; + if (!writable) callback.call(stream); + }; + + var onexit = function (exitCode) { + callback.call( + stream, + exitCode ? new Error("exited with error code: " + exitCode) : null + ); + }; + + var onerror = function (err) { + callback.call(stream, err); + }; + + var onclose = function () { + process.nextTick(onclosenexttick); + }; + + var onclosenexttick = function () { + if (cancelled) return; + if (readable && !(rs && rs.ended && !rs.destroyed)) + return callback.call(stream, new Error("premature close")); + if (writable && !(ws && ws.ended && !ws.destroyed)) + return callback.call(stream, new Error("premature close")); + }; + + var onrequest = function () { + stream.req.on("finish", onfinish); + }; + + if (isRequest(stream)) { + stream.on("complete", onfinish); + stream.on("abort", onclose); + if (stream.req) onrequest(); + else stream.on("request", onrequest); + } else if (writable && !ws) { + // legacy streams + stream.on("end", onlegacyfinish); + stream.on("close", onlegacyfinish); + } + + if (isChildProcess(stream)) stream.on("exit", onexit); + + stream.on("end", onend); + stream.on("finish", onfinish); + if (opts.error !== false) stream.on("error", onerror); + stream.on("close", onclose); + + return function () { + cancelled = true; + stream.removeListener("complete", onfinish); + stream.removeListener("abort", onclose); + stream.removeListener("request", onrequest); + if (stream.req) stream.req.removeListener("finish", onfinish); + stream.removeListener("end", onlegacyfinish); + stream.removeListener("close", onlegacyfinish); + stream.removeListener("finish", onfinish); + stream.removeListener("exit", onexit); + stream.removeListener("end", onend); + stream.removeListener("error", onerror); + stream.removeListener("close", onclose); + }; +}; + +module.exports = eos; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/package.json new file mode 100644 index 0000000000..684d64d3df --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/end-of-stream/package.json @@ -0,0 +1,66 @@ +{ + "_from": "end-of-stream@^1.1.0", + "_id": "end-of-stream@1.4.4", + "_inBundle": false, + "_integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "_location": "/end-of-stream", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "end-of-stream@^1.1.0", + "name": "end-of-stream", + "escapedName": "end-of-stream", + "rawSpec": "^1.1.0", + "saveSpec": null, + "fetchSpec": "^1.1.0" + }, + "_requiredBy": [ + "/pump", + "/tar-stream" + ], + "_resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "_shasum": "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0", + "_spec": "end-of-stream@^1.1.0", + "_where": "/var/task/node_modules/pump", + "author": { + "name": "Mathias Buus", + "email": "mathiasbuus@gmail.com" + }, + "bugs": { + "url": "https://github.com/mafintosh/end-of-stream/issues" + }, + "bundleDependencies": false, + "dependencies": { + "once": "^1.4.0" + }, + "deprecated": false, + "description": "Call a callback when a readable/writable/duplex stream has completed or failed.", + "devDependencies": { + "tape": "^4.11.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/mafintosh/end-of-stream", + "keywords": [ + "stream", + "streams", + "callback", + "finish", + "close", + "end", + "wait" + ], + "license": "MIT", + "main": "index.js", + "name": "end-of-stream", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/end-of-stream.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.4.4" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/.travis.yml b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/.travis.yml new file mode 100644 index 0000000000..1335a7708e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/.travis.yml @@ -0,0 +1,6 @@ +language: node_js + +node_js: + - 6 + - 8 + - 10 diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/LICENSE new file mode 100644 index 0000000000..814aef41de --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Lars-Magnus Skog + +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. \ No newline at end of file diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/README.md new file mode 100644 index 0000000000..436f4e62c6 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/README.md @@ -0,0 +1,48 @@ +# expand-template + +> Expand placeholders in a template string. + +[![npm](https://img.shields.io/npm/v/expand-template.svg)](https://www.npmjs.com/package/expand-template) +![Node version](https://img.shields.io/node/v/expand-template.svg) +[![Build Status](https://travis-ci.org/ralphtheninja/expand-template.svg?branch=master)](https://travis-ci.org/ralphtheninja/expand-template) +[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) + +## Install + +``` +$ npm i expand-template -S +``` + +## Usage + +Default functionality expands templates using `{}` as separators for string placeholders. + +```js +var expand = require("expand-template")(); +var template = "{foo}/{foo}/{bar}/{bar}"; +console.log( + expand(template, { + foo: "BAR", + bar: "FOO" + }) +); +// -> BAR/BAR/FOO/FOO +``` + +Custom separators: + +```js +var expand = require("expand-template")({ sep: "[]" }); +var template = "[foo]/[foo]/[bar]/[bar]"; +console.log( + expand(template, { + foo: "BAR", + bar: "FOO" + }) +); +// -> BAR/BAR/FOO/FOO +``` + +## License + +All code, unless stated otherwise, is dual-licensed under [`WTFPL`](http://www.wtfpl.net/txt/copying/) and [`MIT`](https://opensource.org/licenses/MIT). diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/index.js new file mode 100644 index 0000000000..bee0f1c9c6 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/index.js @@ -0,0 +1,28 @@ +module.exports = function (opts) { + var sep = opts ? opts.sep : "{}"; + var len = sep.length; + + var whitespace = "\\s*"; + var left = escape(sep.substring(0, len / 2)) + whitespace; + var right = whitespace + escape(sep.substring(len / 2, len)); + + return function (template, values) { + Object.keys(values).forEach(function (key) { + var value = String(values[key]).replace(/\$/g, "$$$$"); + template = template.replace(regExp(key), value); + }); + return template; + }; + + function escape(s) { + return [].map + .call(s, function (char) { + return "\\" + char; + }) + .join(""); + } + + function regExp(key) { + return new RegExp(left + key + right, "g"); + } +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/package.json new file mode 100644 index 0000000000..3113940c63 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/package.json @@ -0,0 +1,60 @@ +{ + "_from": "expand-template@^2.0.3", + "_id": "expand-template@2.0.3", + "_inBundle": false, + "_integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "_location": "/expand-template", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "expand-template@^2.0.3", + "name": "expand-template", + "escapedName": "expand-template", + "rawSpec": "^2.0.3", + "saveSpec": null, + "fetchSpec": "^2.0.3" + }, + "_requiredBy": [ + "/prebuild-install" + ], + "_resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "_shasum": "6e14b3fcee0f3a6340ecb57d2e8918692052a47c", + "_spec": "expand-template@^2.0.3", + "_where": "/var/task/node_modules/prebuild-install", + "author": { + "name": "LM", + "email": "ralphtheninja@riseup.net" + }, + "bugs": { + "url": "https://github.com/ralphtheninja/expand-template/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Expand placeholders in a template string", + "devDependencies": { + "standard": "^12.0.0", + "tape": "^4.2.2" + }, + "engines": { + "node": ">=6" + }, + "homepage": "https://github.com/ralphtheninja/expand-template", + "keywords": [ + "template", + "expand", + "replace" + ], + "license": "(MIT OR WTFPL)", + "main": "index.js", + "name": "expand-template", + "repository": { + "type": "git", + "url": "git+https://github.com/ralphtheninja/expand-template.git" + }, + "scripts": { + "test": "tape test.js && standard" + }, + "version": "2.0.3" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/test.js b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/test.js new file mode 100644 index 0000000000..c756f34ff1 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/expand-template/test.js @@ -0,0 +1,114 @@ +var test = require("tape"); +var Expand = require("./"); + +test("default expands {} placeholders", function (t) { + var expand = Expand(); + t.equal(typeof expand, "function", "is a function"); + t.equal( + expand("{foo}/{bar}", { + foo: "BAR", + bar: "FOO" + }), + "BAR/FOO" + ); + t.equal( + expand("{foo}{foo}{foo}", { + foo: "FOO" + }), + "FOOFOOFOO", + "expands one placeholder many times" + ); + t.end(); +}); + +test("support for custom separators", function (t) { + var expand = Expand({ sep: "[]" }); + t.equal( + expand("[foo]/[bar]", { + foo: "BAR", + bar: "FOO" + }), + "BAR/FOO" + ); + t.equal( + expand("[foo][foo][foo]", { + foo: "FOO" + }), + "FOOFOOFOO", + "expands one placeholder many times" + ); + t.end(); +}); + +test("support for longer custom separators", function (t) { + var expand = Expand({ sep: "[[]]" }); + t.equal( + expand("[[foo]]/[[bar]]", { + foo: "BAR", + bar: "FOO" + }), + "BAR/FOO" + ); + t.equal( + expand("[[foo]][[foo]][[foo]]", { + foo: "FOO" + }), + "FOOFOOFOO", + "expands one placeholder many times" + ); + t.end(); +}); + +test("whitespace-insensitive", function (t) { + var expand = Expand({ sep: "[]" }); + t.equal( + expand("[ foo ]/[ bar ]", { + foo: "BAR", + bar: "FOO" + }), + "BAR/FOO" + ); + t.equal( + expand("[ foo ][ foo ][ foo]", { + foo: "FOO" + }), + "FOOFOOFOO", + "expands one placeholder many times" + ); + t.end(); +}); + +test("dollar escape", function (t) { + var expand = Expand(); + t.equal( + expand("before {foo} after", { + foo: "$" + }), + "before $ after" + ); + t.equal( + expand("before {foo} after", { + foo: "$&" + }), + "before $& after" + ); + t.equal( + expand("before {foo} after", { + foo: "$`" + }), + "before $` after" + ); + t.equal( + expand("before {foo} after", { + foo: "$'" + }), + "before $' after" + ); + t.equal( + expand("before {foo} after", { + foo: "$0" + }), + "before $0 after" + ); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/LICENSE new file mode 100644 index 0000000000..cb757e5dbc --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Mathias Buus + +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/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/README.md new file mode 100644 index 0000000000..fcc6d8480d --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/README.md @@ -0,0 +1,25 @@ +# fs-constants + +Small module that allows you to get the fs constants across +Node and the browser. + +``` +npm install fs-constants +``` + +Previously you would use `require('constants')` for this in node but that has been +deprecated and changed to `require('fs').constants` which does not browserify. + +This module uses `require('constants')` in the browser and `require('fs').constants` in node to work around this + +## Usage + +```js +var constants = require("fs-constants"); + +console.log("constants:", constants); +``` + +## License + +MIT diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/browser.js b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/browser.js new file mode 100644 index 0000000000..5ae5b28698 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/browser.js @@ -0,0 +1 @@ +module.exports = require("constants"); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/index.js new file mode 100644 index 0000000000..7ce7f959bc --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/index.js @@ -0,0 +1 @@ +module.exports = require("fs").constants || require("constants"); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/package.json new file mode 100644 index 0000000000..2ce508e128 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/fs-constants/package.json @@ -0,0 +1,47 @@ +{ + "_from": "fs-constants@^1.0.0", + "_id": "fs-constants@1.0.0", + "_inBundle": false, + "_integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "_location": "/fs-constants", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "fs-constants@^1.0.0", + "name": "fs-constants", + "escapedName": "fs-constants", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/tar-stream" + ], + "_resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "_shasum": "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad", + "_spec": "fs-constants@^1.0.0", + "_where": "/var/task/node_modules/tar-stream", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/mafintosh/fs-constants/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Require constants across node and the browser", + "devDependencies": {}, + "homepage": "https://github.com/mafintosh/fs-constants", + "license": "MIT", + "main": "index.js", + "name": "fs-constants", + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/fs-constants.git" + }, + "version": "1.0.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/CHANGELOG.md b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/CHANGELOG.md new file mode 100644 index 0000000000..1c54b5ba6c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/CHANGELOG.md @@ -0,0 +1,160 @@ +### v2.7.4 + +- Reset colors prior to ending a line, to eliminate flicker when a line + is trucated between start and end color sequences. + +### v2.7.3 + +- Only create our onExit handler when we're enabled and remove it when we're + disabled. This stops us from creating multiple onExit handlers when + multiple gauge objects are being used. +- Fix bug where if a theme name were given instead of a theme object, it + would crash. +- Remove supports-color because it's not actually used. Uhm. Yes, I just + updated it. >.> + +### v2.7.2 + +- Use supports-color instead of has-color (as the module has been renamed) + +### v2.7.1 + +- Bug fix: Calls to show/pulse while the progress bar is disabled should still + update our internal representation of what would be shown should it be enabled. + +### v2.7.0 + +- New feature: Add new `isEnabled` method to allow introspection of the gauge's + "enabledness" as controlled by `.enable()` and `.disable()`. + +### v2.6.0 + +- Bug fix: Don't run the code associated with `enable`/`disable` if the gauge + is already enabled or disabled respectively. This prevents leaking event + listeners, amongst other weirdness. +- New feature: Template items can have default values that will be used if no + value was otherwise passed in. + +### v2.5.3 + +- Default to `enabled` only if we have a tty. Users can always override + this by passing in the `enabled` option explicitly or by calling calling + `gauge.enable()`. + +### v2.5.2 + +- Externalized `./console-strings.js` into `console-control-strings`. + +### v2.5.1 + +- Update to `signal-exit@3.0.0`, which fixes a compatibility bug with the + node profiler. +- [#39](https://github.com/iarna/gauge/pull/39) Fix tests on 0.10 and add + a missing devDependency. ([@helloyou2012](https://github.com/helloyou2012)) + +### v2.5.0 + +- Add way to programmatically fetch a list of theme names in a themeset + (`Themeset.getThemeNames`). + +### v2.4.0 + +- Add support for setting themesets on existing gauge objects. +- Add post-IO callback to `gauge.hide()` as it is somtetimes necessary when + your terminal is interleaving output from multiple filehandles (ie, stdout + & stderr). + +### v2.3.1 + +- Fix a refactor bug in setTheme where it wasn't accepting the various types + of args it should. + +### v2.3.0 + +#### FEATURES + +- Add setTemplate & setTheme back in. +- Add support for named themes, you can now ask for things like 'colorASCII' + and 'brailleSpinner'. Of course, you can still pass in theme objects. + Additionally you can now pass in an object with `hasUnicode`, `hasColor` and + `platform` keys in order to override our guesses as to those values when + selecting a default theme from the themeset. +- Make the output stream optional (it defaults to `process.stderr` now). +- Add `setWriteTo(stream[, tty])` to change the output stream and, + optionally, tty. + +#### BUG FIXES & REFACTORING + +- Abort the display phase early if we're supposed to be hidden and we are. +- Stop printing a bunch of spaces at the end of lines, since we're already + using an erase-to-end-of-line code anyway. +- The unicode themes were missing the subsection separator. + +### v2.2.1 + +- Fix image in readme + +### v2.2.0 + +- All new themes API– reference themes by name and pass in custom themes and + themesets (themesets get platform support autodetection done on them to + select the best theme). Theme mixins let you add features to all existing + themes. +- Much, much improved test coverage. + +### v2.1.0 + +- Got rid of ░ in the default platform, noUnicode, hasColor theme. Thanks + to @yongtw123 for pointing out this had snuck in. +- Fiddled with the demo output to make it easier to see the spinner spin. Also + added prints before each platforms test output. +- I forgot to include `signal-exit` in our deps. <.< Thank you @KenanY for + finding this. Then I was lazy and made a new commit instead of using his + PR. Again, thank you for your patience @KenenY. +- Drastically speed up travis testing. +- Add a small javascript demo (demo.js) for showing off the various themes + (and testing them on diff platforms). +- Change: The subsection separator from ⁄ and / (different chars) to >. +- Fix crasher: A show or pulse without a label would cause the template renderer + to complain about a missing value. +- New feature: Add the ability to disable the clean-up-on-exit behavior. + Not something I expect to be widely desirable, but important if you have + multiple distinct gauge instances in your app. +- Use our own color support detection. + The `has-color` module proved too magic for my needs, making assumptions + as to which stream we write to and reading command line arguments. + +### v2.0.0 + +This is a major rewrite of the internals. Externally there are fewer +changes: + +- On node>0.8 gauge object now prints updates at a fixed rate. This means + that when you call `show` it may wate up to `updateInterval` ms before it + actually prints an update. You override this behavior with the + `fixedFramerate` option. +- The gauge object now keeps the cursor hidden as long as it's enabled and + shown. +- The constructor's arguments have changed, now it takes a mandatory output + stream and an optional options object. The stream no longer needs to be + an `ansi`ified stream, although it can be if you want (but we won't make + use of its special features). +- Previously the gauge was disabled by default if `process.stdout` wasn't a + tty. Now it always defaults to enabled. If you want the previous + behavior set the `enabled` option to `process.stdout.isTTY`. +- The constructor's options have changed– see the docs for details. +- Themes are entirely different. If you were using a custom theme, or + referring to one directly (eg via `Gauge.unicode` or `Gauge.ascii`) then + you'll need to change your code. You can get the equivalent of the latter + with: + ``` + var themes = require('gauge/themes') + var unicodeTheme = themes(true, true) // returns the color unicode theme for your platform + ``` + The default themes no longer use any ambiguous width characters, so even + if you choose to display those as wide your progress bar should still + display correctly. +- Templates are entirely different and if you were using a custom one, you + should consult the documentation to learn how to recreate it. If you were + using the default, be aware that it has changed and the result looks quite + a bit different. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/LICENSE new file mode 100644 index 0000000000..e756052969 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2014, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/README.md new file mode 100644 index 0000000000..eb2e2a1597 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/README.md @@ -0,0 +1,401 @@ +# gauge + +A nearly stateless terminal based horizontal gauge / progress bar. + +```javascript +var Gauge = require("gauge"); + +var gauge = new Gauge(); + +gauge.show("test", 0.2); + +gauge.pulse("this"); + +gauge.hide(); +``` + +![](gauge-demo.gif) + +### CHANGES FROM 1.x + +Gauge 2.x is breaking release, please see the [changelog] for details on +what's changed if you were previously a user of this module. + +[changelog]: CHANGELOG.md + +### THE GAUGE CLASS + +This is the typical interface to the module– it provides a pretty +fire-and-forget interface to displaying your status information. + +``` +var Gauge = require("gauge") + +var gauge = new Gauge([stream], [options]) +``` + +- **stream** – _(optional, default STDERR)_ A stream that progress bar + updates are to be written to. Gauge honors backpressure and will pause + most writing if it is indicated. +- **options** – _(optional)_ An option object. + +Constructs a new gauge. Gauges are drawn on a single line, and are not drawn +if **stream** isn't a tty and a tty isn't explicitly provided. + +If **stream** is a terminal or if you pass in **tty** to **options** then we +will detect terminal resizes and redraw to fit. We do this by watching for +`resize` events on the tty. (To work around a bug in verisons of Node prior +to 2.5.0, we watch for them on stdout if the tty is stderr.) Resizes to +larger window sizes will be clean, but shrinking the window will always +result in some cruft. + +**IMPORTANT:** If you prevously were passing in a non-tty stream but you still +want output (for example, a stream wrapped by the `ansi` module) then you +need to pass in the **tty** option below, as `gauge` needs access to +the underlying tty in order to do things like terminal resizes and terminal +width detection. + +The **options** object can have the following properties, all of which are +optional: + +- **updateInterval**: How often gauge updates should be drawn, in miliseconds. +- **fixedFramerate**: Defaults to false on node 0.8, true on everything + else. When this is true a timer is created to trigger once every + `updateInterval` ms, when false, updates are printed as soon as they come + in but updates more often than `updateInterval` are ignored. The reason + 0.8 doesn't have this set to true is that it can't `unref` its timer and + so it would stop your program from exiting– if you want to use this + feature with 0.8 just make sure you call `gauge.disable()` before you + expect your program to exit. +- **themes**: A themeset to use when selecting the theme to use. Defaults + to `gauge/themes`, see the [themes] documentation for details. +- **theme**: Select a theme for use, it can be a: + + - Theme object, in which case the **themes** is not used. + - The name of a theme, which will be looked up in the current _themes_ + object. + - A configuration object with any of `hasUnicode`, `hasColor` or + `platform` keys, which if wlll be used to override our guesses when making + a default theme selection. + + If no theme is selected then a default is picked using a combination of our + best guesses at your OS, color support and unicode support. + +- **template**: Describes what you want your gauge to look like. The + default is what npm uses. Detailed [documentation] is later in this + document. +- **hideCursor**: Defaults to true. If true, then the cursor will be hidden + while the gauge is displayed. +- **tty**: The tty that you're ultimately writing to. Defaults to the same + as **stream**. This is used for detecting the width of the terminal and + resizes. The width used is `tty.columns - 1`. If no tty is available then + a width of `79` is assumed. +- **enabled**: Defaults to true if `tty` is a TTY, false otherwise. If true + the gauge starts enabled. If disabled then all update commands are + ignored and no gauge will be printed until you call `.enable()`. +- **Plumbing**: The class to use to actually generate the gauge for + printing. This defaults to `require('gauge/plumbing')` and ordinarly you + shouldn't need to override this. +- **cleanupOnExit**: Defaults to true. Ordinarily we register an exit + handler to make sure your cursor is turned back on and the progress bar + erased when your process exits, even if you Ctrl-C out or otherwise exit + unexpectedly. You can disable this and it won't register the exit handler. + +[has-unicode]: https://www.npmjs.com/package/has-unicode +[themes]: #themes +[documentation]: #templates + +#### `gauge.show(section | status, [completed])` + +The first argument is either the section, the name of the current thing +contributing to progress, or an object with keys like **section**, +**subsection** & **completed** (or any others you have types for in a custom +template). If you don't want to update or set any of these you can pass +`null` and it will be ignored. + +The second argument is the percent completed as a value between 0 and 1. +Without it, completion is just not updated. You'll also note that completion +can be passed in as part of a status object as the first argument. If both +it and the completed argument are passed in, the completed argument wins. + +#### `gauge.hide([cb])` + +Removes the gauge from the terminal. Optionally, callback `cb` after IO has +had an opportunity to happen (currently this just means after `setImmediate` +has called back.) + +It turns out this is important when you're pausing the progress bar on one +filehandle and printing to another– otherwise (with a big enough print) node +can end up printing the "end progress bar" bits to the progress bar filehandle +while other stuff is printing to another filehandle. These getting interleaved +can cause corruption in some terminals. + +#### `gauge.pulse([subsection])` + +- **subsection** – _(optional)_ The specific thing that triggered this pulse + +Spins the spinner in the gauge to show output. If **subsection** is +included then it will be combined with the last name passed to `gauge.show`. + +#### `gauge.disable()` + +Hides the gauge and ignores further calls to `show` or `pulse`. + +#### `gauge.enable()` + +Shows the gauge and resumes updating when `show` or `pulse` is called. + +#### `gauge.isEnabled()` + +Returns true if the gauge is enabled. + +#### `gauge.setThemeset(themes)` + +Change the themeset to select a theme from. The same as the `themes` option +used in the constructor. The theme will be reselected from this themeset. + +#### `gauge.setTheme(theme)` + +Change the active theme, will be displayed with the next show or pulse. This can be: + +- Theme object, in which case the **themes** is not used. +- The name of a theme, which will be looked up in the current _themes_ + object. +- A configuration object with any of `hasUnicode`, `hasColor` or + `platform` keys, which if wlll be used to override our guesses when making + a default theme selection. + +If no theme is selected then a default is picked using a combination of our +best guesses at your OS, color support and unicode support. + +#### `gauge.setTemplate(template)` + +Change the active template, will be displayed with the next show or pulse + +### Tracking Completion + +If you have more than one thing going on that you want to track completion +of, you may find the related [are-we-there-yet] helpful. It's `change` +event can be wired up to the `show` method to get a more traditional +progress bar interface. + +[are-we-there-yet]: https://www.npmjs.com/package/are-we-there-yet + +### THEMES + +``` +var themes = require('gauge/themes') + +// fetch the default color unicode theme for this platform +var ourTheme = themes({hasUnicode: true, hasColor: true}) + +// fetch the default non-color unicode theme for osx +var ourTheme = themes({hasUnicode: true, hasColor: false, platform: 'darwin'}) + +// create a new theme based on the color ascii theme for this platform +// that brackets the progress bar with arrows +var ourTheme = themes.newTheme(theme(hasUnicode: false, hasColor: true}), { + preProgressbar: '→', + postProgressbar: '←' +}) +``` + +The object returned by `gauge/themes` is an instance of the `ThemeSet` class. + +``` +var ThemeSet = require('gauge/theme-set') +var themes = new ThemeSet() +// or +var themes = require('gauge/themes') +var mythemes = themes.newThemeset() // creates a new themeset based on the default themes +``` + +#### themes(opts) + +#### themes.getDefault(opts) + +Theme objects are a function that fetches the default theme based on +platform, unicode and color support. + +Options is an object with the following properties: + +- **hasUnicode** - If true, fetch a unicode theme, if no unicode theme is + available then a non-unicode theme will be used. +- **hasColor** - If true, fetch a color theme, if no color theme is + available a non-color theme will be used. +- **platform** (optional) - Defaults to `process.platform`. If no + platform match is available then `fallback` is used instead. + +If no compatible theme can be found then an error will be thrown with a +`code` of `EMISSINGTHEME`. + +#### themes.addTheme(themeName, themeObj) + +#### themes.addTheme(themeName, [parentTheme], newTheme) + +Adds a named theme to the themeset. You can pass in either a theme object, +as returned by `themes.newTheme` or the arguments you'd pass to +`themes.newTheme`. + +#### themes.getThemeNames() + +Return a list of all of the names of the themes in this themeset. Suitable +for use in `themes.getTheme(…)`. + +#### themes.getTheme(name) + +Returns the theme object from this theme set named `name`. + +If `name` does not exist in this themeset an error will be thrown with +a `code` of `EMISSINGTHEME`. + +#### themes.setDefault([opts], themeName) + +`opts` is an object with the following properties. + +- **platform** - Defaults to `'fallback'`. If your theme is platform + specific, specify that here with the platform from `process.platform`, eg, + `win32`, `darwin`, etc. +- **hasUnicode** - Defaults to `false`. If your theme uses unicode you + should set this to true. +- **hasColor** - Defaults to `false`. If your theme uses color you should + set this to true. + +`themeName` is the name of the theme (as given to `addTheme`) to use for +this set of `opts`. + +#### themes.newTheme([parentTheme,] newTheme) + +Create a new theme object based on `parentTheme`. If no `parentTheme` is +provided then a minimal parentTheme that defines functions for rendering the +activity indicator (spinner) and progress bar will be defined. (This +fallback parent is defined in `gauge/base-theme`.) + +newTheme should be a bare object– we'll start by discussing the properties +defined by the default themes: + +- **preProgressbar** - displayed prior to the progress bar, if the progress + bar is displayed. +- **postProgressbar** - displayed after the progress bar, if the progress bar + is displayed. +- **progressBarTheme** - The subtheme passed through to the progress bar + renderer, it's an object with `complete` and `remaining` properties + that are the strings you want repeated for those sections of the progress + bar. +- **activityIndicatorTheme** - The theme for the activity indicator (spinner), + this can either be a string, in which each character is a different step, or + an array of strings. +- **preSubsection** - Displayed as a separator between the `section` and + `subsection` when the latter is printed. + +More generally, themes can have any value that would be a valid value when rendering +templates. The properties in the theme are used when their name matches a type in +the template. Their values can be: + +- **strings & numbers** - They'll be included as is +- **function (values, theme, width)** - Should return what you want in your output. + _values_ is an object with values provided via `gauge.show`, + _theme_ is the theme specific to this item (see below) or this theme object, + and _width_ is the number of characters wide your result should be. + +There are a couple of special prefixes: + +- **pre** - Is shown prior to the property, if its displayed. +- **post** - Is shown after the property, if its displayed. + +And one special suffix: + +- **Theme** - Its value is passed to a function-type item as the theme. + +#### themes.addToAllThemes(theme) + +This _mixes-in_ `theme` into all themes currently defined. It also adds it +to the default parent theme for this themeset, so future themes added to +this themeset will get the values from `theme` by default. + +#### themes.newThemeset() + +Copy the current themeset into a new one. This allows you to easily inherit +one themeset from another. + +### TEMPLATES + +A template is an array of objects and strings that, after being evaluated, +will be turned into the gauge line. The default template is: + +```javascript +[ + { type: "progressbar", length: 20 }, + { type: "activityIndicator", kerning: 1, length: 1 }, + { type: "section", kerning: 1, default: "" }, + { type: "subsection", kerning: 1, default: "" } +]; +``` + +The various template elements can either be **plain strings**, in which case they will +be be included verbatum in the output, or objects with the following properties: + +- _type_ can be any of the following plus any keys you pass into `gauge.show` plus + any keys you have on a custom theme. + - `section` – What big thing you're working on now. + - `subsection` – What component of that thing is currently working. + - `activityIndicator` – Shows a spinner using the `activityIndicatorTheme` + from your active theme. + - `progressbar` – A progress bar representing your current `completed` + using the `progressbarTheme` from your active theme. +- _kerning_ – Number of spaces that must be between this item and other + items, if this item is displayed at all. +- _maxLength_ – The maximum length for this element. If its value is longer it + will be truncated. +- _minLength_ – The minimum length for this element. If its value is shorter it + will be padded according to the _align_ value. +- _align_ – (Default: left) Possible values "left", "right" and "center". Works + as you'd expect from word processors. +- _length_ – Provides a single value for both _minLength_ and _maxLength_. If both + _length_ and *minLength or *maxLength\* are specifed then the latter take precedence. +- _value_ – A literal value to use for this template item. +- _default_ – A default value to use for this template item if a value + wasn't otherwise passed in. + +### PLUMBING + +This is the super simple, assume nothing, do no magic internals used by gauge to +implement its ordinary interface. + +``` +var Plumbing = require('gauge/plumbing') +var gauge = new Plumbing(theme, template, width) +``` + +- **theme**: The theme to use. +- **template**: The template to use. +- **width**: How wide your gauge should be + +#### `gauge.setTheme(theme)` + +Change the active theme. + +#### `gauge.setTemplate(template)` + +Change the active template. + +#### `gauge.setWidth(width)` + +Change the width to render at. + +#### `gauge.hide()` + +Return the string necessary to hide the progress bar + +#### `gauge.hideCursor()` + +Return a string to hide the cursor. + +#### `gauge.showCursor()` + +Return a string to show the cursor. + +#### `gauge.show(status)` + +Using `status` for values, render the provided template with the theme and return +a string that is suitable for printing to update the gauge. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/base-theme.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/base-theme.js new file mode 100644 index 0000000000..3e18bd7af1 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/base-theme.js @@ -0,0 +1,14 @@ +"use strict"; +var spin = require("./spin.js"); +var progressBar = require("./progress-bar.js"); + +module.exports = { + activityIndicator: function (values, theme, width) { + if (values.spun == null) return; + return spin(theme, values.spun); + }, + progressbar: function (values, theme, width) { + if (values.completed == null) return; + return progressBar(theme, width, values.completed); + } +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/error.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/error.js new file mode 100644 index 0000000000..45fe9094da --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/error.js @@ -0,0 +1,24 @@ +"use strict"; +var util = require("util"); + +var User = (exports.User = function User(msg) { + var err = new Error(msg); + Error.captureStackTrace(err, User); + err.code = "EGAUGE"; + return err; +}); + +exports.MissingTemplateValue = function MissingTemplateValue(item, values) { + var err = new User(util.format('Missing template value "%s"', item.type)); + Error.captureStackTrace(err, MissingTemplateValue); + err.template = item; + err.values = values; + return err; +}; + +exports.Internal = function Internal(msg) { + var err = new Error(msg); + Error.captureStackTrace(err, Internal); + err.code = "EGAUGEINTERNAL"; + return err; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/has-color.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/has-color.js new file mode 100644 index 0000000000..4cafae80c6 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/has-color.js @@ -0,0 +1,12 @@ +"use strict"; + +module.exports = isWin32() || isColorTerm(); + +function isWin32() { + return process.platform === "win32"; +} + +function isColorTerm() { + var termHasColor = /^screen|^xterm|^vt100|color|ansi|cygwin|linux/i; + return !!process.env.COLORTERM || termHasColor.test(process.env.TERM); +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/index.js new file mode 100644 index 0000000000..bf98d6caed --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/index.js @@ -0,0 +1,252 @@ +"use strict"; +var Plumbing = require("./plumbing.js"); +var hasUnicode = require("has-unicode"); +var hasColor = require("./has-color.js"); +var onExit = require("signal-exit"); +var defaultThemes = require("./themes"); +var setInterval = require("./set-interval.js"); +var process = require("./process.js"); +var setImmediate = require("./set-immediate"); + +module.exports = Gauge; + +function callWith(obj, method) { + return function () { + return method.call(obj); + }; +} + +function Gauge(arg1, arg2) { + var options, writeTo; + if (arg1 && arg1.write) { + writeTo = arg1; + options = arg2 || {}; + } else if (arg2 && arg2.write) { + writeTo = arg2; + options = arg1 || {}; + } else { + writeTo = process.stderr; + options = arg1 || arg2 || {}; + } + + this._status = { + spun: 0, + section: "", + subsection: "" + }; + this._paused = false; // are we paused for back pressure? + this._disabled = true; // are all progress bar updates disabled? + this._showing = false; // do we WANT the progress bar on screen + this._onScreen = false; // IS the progress bar on screen + this._needsRedraw = false; // should we print something at next tick? + this._hideCursor = options.hideCursor == null ? true : options.hideCursor; + this._fixedFramerate = + options.fixedFramerate == null + ? !/^v0\.8\./.test(process.version) + : options.fixedFramerate; + this._lastUpdateAt = null; + this._updateInterval = + options.updateInterval == null ? 50 : options.updateInterval; + + this._themes = options.themes || defaultThemes; + this._theme = options.theme; + var theme = this._computeTheme(options.theme); + var template = options.template || [ + { type: "progressbar", length: 20 }, + { type: "activityIndicator", kerning: 1, length: 1 }, + { type: "section", kerning: 1, default: "" }, + { type: "subsection", kerning: 1, default: "" } + ]; + this.setWriteTo(writeTo, options.tty); + var PlumbingClass = options.Plumbing || Plumbing; + this._gauge = new PlumbingClass(theme, template, this.getWidth()); + + this._$$doRedraw = callWith(this, this._doRedraw); + this._$$handleSizeChange = callWith(this, this._handleSizeChange); + + this._cleanupOnExit = options.cleanupOnExit == null || options.cleanupOnExit; + this._removeOnExit = null; + + if ( + options.enabled || + (options.enabled == null && this._tty && this._tty.isTTY) + ) { + this.enable(); + } else { + this.disable(); + } +} +Gauge.prototype = {}; + +Gauge.prototype.isEnabled = function () { + return !this._disabled; +}; + +Gauge.prototype.setTemplate = function (template) { + this._gauge.setTemplate(template); + if (this._showing) this._requestRedraw(); +}; + +Gauge.prototype._computeTheme = function (theme) { + if (!theme) theme = {}; + if (typeof theme === "string") { + theme = this._themes.getTheme(theme); + } else if ( + theme && + (Object.keys(theme).length === 0 || + theme.hasUnicode != null || + theme.hasColor != null) + ) { + var useUnicode = theme.hasUnicode == null ? hasUnicode() : theme.hasUnicode; + var useColor = theme.hasColor == null ? hasColor : theme.hasColor; + theme = this._themes.getDefault({ + hasUnicode: useUnicode, + hasColor: useColor, + platform: theme.platform + }); + } + return theme; +}; + +Gauge.prototype.setThemeset = function (themes) { + this._themes = themes; + this.setTheme(this._theme); +}; + +Gauge.prototype.setTheme = function (theme) { + this._gauge.setTheme(this._computeTheme(theme)); + if (this._showing) this._requestRedraw(); + this._theme = theme; +}; + +Gauge.prototype._requestRedraw = function () { + this._needsRedraw = true; + if (!this._fixedFramerate) this._doRedraw(); +}; + +Gauge.prototype.getWidth = function () { + return ((this._tty && this._tty.columns) || 80) - 1; +}; + +Gauge.prototype.setWriteTo = function (writeTo, tty) { + var enabled = !this._disabled; + if (enabled) this.disable(); + this._writeTo = writeTo; + this._tty = + tty || + (writeTo === process.stderr && process.stdout.isTTY && process.stdout) || + (writeTo.isTTY && writeTo) || + this._tty; + if (this._gauge) this._gauge.setWidth(this.getWidth()); + if (enabled) this.enable(); +}; + +Gauge.prototype.enable = function () { + if (!this._disabled) return; + this._disabled = false; + if (this._tty) this._enableEvents(); + if (this._showing) this.show(); +}; + +Gauge.prototype.disable = function () { + if (this._disabled) return; + if (this._showing) { + this._lastUpdateAt = null; + this._showing = false; + this._doRedraw(); + this._showing = true; + } + this._disabled = true; + if (this._tty) this._disableEvents(); +}; + +Gauge.prototype._enableEvents = function () { + if (this._cleanupOnExit) { + this._removeOnExit = onExit(callWith(this, this.disable)); + } + this._tty.on("resize", this._$$handleSizeChange); + if (this._fixedFramerate) { + this.redrawTracker = setInterval(this._$$doRedraw, this._updateInterval); + if (this.redrawTracker.unref) this.redrawTracker.unref(); + } +}; + +Gauge.prototype._disableEvents = function () { + this._tty.removeListener("resize", this._$$handleSizeChange); + if (this._fixedFramerate) clearInterval(this.redrawTracker); + if (this._removeOnExit) this._removeOnExit(); +}; + +Gauge.prototype.hide = function (cb) { + if (this._disabled) return cb && process.nextTick(cb); + if (!this._showing) return cb && process.nextTick(cb); + this._showing = false; + this._doRedraw(); + cb && setImmediate(cb); +}; + +Gauge.prototype.show = function (section, completed) { + this._showing = true; + if (typeof section === "string") { + this._status.section = section; + } else if (typeof section === "object") { + var sectionKeys = Object.keys(section); + for (var ii = 0; ii < sectionKeys.length; ++ii) { + var key = sectionKeys[ii]; + this._status[key] = section[key]; + } + } + if (completed != null) this._status.completed = completed; + if (this._disabled) return; + this._requestRedraw(); +}; + +Gauge.prototype.pulse = function (subsection) { + this._status.subsection = subsection || ""; + this._status.spun++; + if (this._disabled) return; + if (!this._showing) return; + this._requestRedraw(); +}; + +Gauge.prototype._handleSizeChange = function () { + this._gauge.setWidth(this._tty.columns - 1); + this._requestRedraw(); +}; + +Gauge.prototype._doRedraw = function () { + if (this._disabled || this._paused) return; + if (!this._fixedFramerate) { + var now = Date.now(); + if (this._lastUpdateAt && now - this._lastUpdateAt < this._updateInterval) + return; + this._lastUpdateAt = now; + } + if (!this._showing && this._onScreen) { + this._onScreen = false; + var result = this._gauge.hide(); + if (this._hideCursor) { + result += this._gauge.showCursor(); + } + return this._writeTo.write(result); + } + if (!this._showing && !this._onScreen) return; + if (this._showing && !this._onScreen) { + this._onScreen = true; + this._needsRedraw = true; + if (this._hideCursor) { + this._writeTo.write(this._gauge.hideCursor()); + } + } + if (!this._needsRedraw) return; + if (!this._writeTo.write(this._gauge.show(this._status))) { + this._paused = true; + this._writeTo.on( + "drain", + callWith(this, function () { + this._paused = false; + this._doRedraw(); + }) + ); + } +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/package.json new file mode 100644 index 0000000000..23345fb24a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/package.json @@ -0,0 +1,91 @@ +{ + "_from": "gauge@~2.7.3", + "_id": "gauge@2.7.4", + "_inBundle": false, + "_integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "_location": "/gauge", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "gauge@~2.7.3", + "name": "gauge", + "escapedName": "gauge", + "rawSpec": "~2.7.3", + "saveSpec": null, + "fetchSpec": "~2.7.3" + }, + "_requiredBy": [ + "/npmlog" + ], + "_resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "_shasum": "2c03405c7538c39d7eb37b317022e325fb018bf7", + "_spec": "gauge@~2.7.3", + "_where": "/var/task/node_modules/npmlog", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org" + }, + "bugs": { + "url": "https://github.com/iarna/gauge/issues" + }, + "bundleDependencies": false, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "deprecated": false, + "description": "A terminal based horizontal guage", + "devDependencies": { + "readable-stream": "^2.0.6", + "require-inject": "^1.4.0", + "standard": "^7.1.2", + "tap": "^5.7.2", + "through2": "^2.0.0" + }, + "files": [ + "base-theme.js", + "CHANGELOG.md", + "error.js", + "has-color.js", + "index.js", + "LICENSE", + "package.json", + "plumbing.js", + "process.js", + "progress-bar.js", + "README.md", + "render-template.js", + "set-immediate.js", + "set-interval.js", + "spin.js", + "template-item.js", + "theme-set.js", + "themes.js", + "wide-truncate.js" + ], + "homepage": "https://github.com/iarna/gauge", + "keywords": [ + "progressbar", + "progress", + "gauge" + ], + "license": "ISC", + "main": "index.js", + "name": "gauge", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/gauge.git" + }, + "scripts": { + "prepublish": "rm -f *~", + "test": "standard && tap test/*.js --coverage" + }, + "version": "2.7.4" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/plumbing.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/plumbing.js new file mode 100644 index 0000000000..1d79994c14 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/plumbing.js @@ -0,0 +1,51 @@ +"use strict"; +var consoleControl = require("console-control-strings"); +var renderTemplate = require("./render-template.js"); +var validate = require("aproba"); + +var Plumbing = (module.exports = function (theme, template, width) { + if (!width) width = 80; + validate("OAN", [theme, template, width]); + this.showing = false; + this.theme = theme; + this.width = width; + this.template = template; +}); +Plumbing.prototype = {}; + +Plumbing.prototype.setTheme = function (theme) { + validate("O", [theme]); + this.theme = theme; +}; + +Plumbing.prototype.setTemplate = function (template) { + validate("A", [template]); + this.template = template; +}; + +Plumbing.prototype.setWidth = function (width) { + validate("N", [width]); + this.width = width; +}; + +Plumbing.prototype.hide = function () { + return consoleControl.gotoSOL() + consoleControl.eraseLine(); +}; + +Plumbing.prototype.hideCursor = consoleControl.hideCursor; + +Plumbing.prototype.showCursor = consoleControl.showCursor; + +Plumbing.prototype.show = function (status) { + var values = Object.create(this.theme); + for (var key in status) { + values[key] = status[key]; + } + + return ( + renderTemplate(this.width, this.template, values).trim() + + consoleControl.color("reset") + + consoleControl.eraseLine() + + consoleControl.gotoSOL() + ); +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/process.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/process.js new file mode 100644 index 0000000000..56277ed4af --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/process.js @@ -0,0 +1,3 @@ +"use strict"; +// this exists so we can replace it during testing +module.exports = process; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/progress-bar.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/progress-bar.js new file mode 100644 index 0000000000..1dfe877338 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/progress-bar.js @@ -0,0 +1,35 @@ +"use strict"; +var validate = require("aproba"); +var renderTemplate = require("./render-template.js"); +var wideTruncate = require("./wide-truncate"); +var stringWidth = require("string-width"); + +module.exports = function (theme, width, completed) { + validate("ONN", [theme, width, completed]); + if (completed < 0) completed = 0; + if (completed > 1) completed = 1; + if (width <= 0) return ""; + var sofar = Math.round(width * completed); + var rest = width - sofar; + var template = [ + { type: "complete", value: repeat(theme.complete, sofar), length: sofar }, + { type: "remaining", value: repeat(theme.remaining, rest), length: rest } + ]; + return renderTemplate(width, template, theme); +}; + +// lodash's way of repeating +function repeat(string, width) { + var result = ""; + var n = width; + do { + if (n % 2) { + result += string; + } + n = Math.floor(n / 2); + /*eslint no-self-assign: 0*/ + string += string; + } while (n && stringWidth(result) < width); + + return wideTruncate(result, width); +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/render-template.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/render-template.js new file mode 100644 index 0000000000..0859786cd1 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/render-template.js @@ -0,0 +1,199 @@ +"use strict"; +var align = require("wide-align"); +var validate = require("aproba"); +var objectAssign = require("object-assign"); +var wideTruncate = require("./wide-truncate"); +var error = require("./error"); +var TemplateItem = require("./template-item"); + +function renderValueWithValues(values) { + return function (item) { + return renderValue(item, values); + }; +} + +var renderTemplate = (module.exports = function (width, template, values) { + var items = prepareItems(width, template, values); + var rendered = items.map(renderValueWithValues(values)).join(""); + return align.left(wideTruncate(rendered, width), width); +}); + +function preType(item) { + var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1); + return "pre" + cappedTypeName; +} + +function postType(item) { + var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1); + return "post" + cappedTypeName; +} + +function hasPreOrPost(item, values) { + if (!item.type) return; + return values[preType(item)] || values[postType(item)]; +} + +function generatePreAndPost(baseItem, parentValues) { + var item = objectAssign({}, baseItem); + var values = Object.create(parentValues); + var template = []; + var pre = preType(item); + var post = postType(item); + if (values[pre]) { + template.push({ value: values[pre] }); + values[pre] = null; + } + item.minLength = null; + item.length = null; + item.maxLength = null; + template.push(item); + values[item.type] = values[item.type]; + if (values[post]) { + template.push({ value: values[post] }); + values[post] = null; + } + return function ($1, $2, length) { + return renderTemplate(length, template, values); + }; +} + +function prepareItems(width, template, values) { + function cloneAndObjectify(item, index, arr) { + var cloned = new TemplateItem(item, width); + var type = cloned.type; + if (cloned.value == null) { + if (!(type in values)) { + if (cloned.default == null) { + throw new error.MissingTemplateValue(cloned, values); + } else { + cloned.value = cloned.default; + } + } else { + cloned.value = values[type]; + } + } + if (cloned.value == null || cloned.value === "") return null; + cloned.index = index; + cloned.first = index === 0; + cloned.last = index === arr.length - 1; + if (hasPreOrPost(cloned, values)) + cloned.value = generatePreAndPost(cloned, values); + return cloned; + } + + var output = template.map(cloneAndObjectify).filter(function (item) { + return item != null; + }); + + var outputLength = 0; + var remainingSpace = width; + var variableCount = output.length; + + function consumeSpace(length) { + if (length > remainingSpace) length = remainingSpace; + outputLength += length; + remainingSpace -= length; + } + + function finishSizing(item, length) { + if (item.finished) + throw new error.Internal( + "Tried to finish template item that was already finished" + ); + if (length === Infinity) + throw new error.Internal("Length of template item cannot be infinity"); + if (length != null) item.length = length; + item.minLength = null; + item.maxLength = null; + --variableCount; + item.finished = true; + if (item.length == null) item.length = item.getBaseLength(); + if (item.length == null) + throw new error.Internal("Finished template items must have a length"); + consumeSpace(item.getLength()); + } + + output.forEach(function (item) { + if (!item.kerning) return; + var prevPadRight = item.first ? 0 : output[item.index - 1].padRight; + if (!item.first && prevPadRight < item.kerning) + item.padLeft = item.kerning - prevPadRight; + if (!item.last) item.padRight = item.kerning; + }); + + // Finish any that have a fixed (literal or intuited) length + output.forEach(function (item) { + if (item.getBaseLength() == null) return; + finishSizing(item); + }); + + var resized = 0; + var resizing; + var hunkSize; + do { + resizing = false; + hunkSize = Math.round(remainingSpace / variableCount); + output.forEach(function (item) { + if (item.finished) return; + if (!item.maxLength) return; + if (item.getMaxLength() < hunkSize) { + finishSizing(item, item.maxLength); + resizing = true; + } + }); + } while (resizing && resized++ < output.length); + if (resizing) + throw new error.Internal( + "Resize loop iterated too many times while determining maxLength" + ); + + resized = 0; + do { + resizing = false; + hunkSize = Math.round(remainingSpace / variableCount); + output.forEach(function (item) { + if (item.finished) return; + if (!item.minLength) return; + if (item.getMinLength() >= hunkSize) { + finishSizing(item, item.minLength); + resizing = true; + } + }); + } while (resizing && resized++ < output.length); + if (resizing) + throw new error.Internal( + "Resize loop iterated too many times while determining minLength" + ); + + hunkSize = Math.round(remainingSpace / variableCount); + output.forEach(function (item) { + if (item.finished) return; + finishSizing(item, hunkSize); + }); + + return output; +} + +function renderFunction(item, values, length) { + validate("OON", arguments); + if (item.type) { + return item.value(values, values[item.type + "Theme"] || {}, length); + } else { + return item.value(values, {}, length); + } +} + +function renderValue(item, values) { + var length = item.getBaseLength(); + var value = + typeof item.value === "function" + ? renderFunction(item, values, length) + : item.value; + if (value == null || value === "") return ""; + var alignWith = align[item.align] || align.left; + var leftPadding = item.padLeft ? align.left("", item.padLeft) : ""; + var rightPadding = item.padRight ? align.right("", item.padRight) : ""; + var truncated = wideTruncate(String(value), length); + var aligned = alignWith(truncated, length); + return leftPadding + aligned + rightPadding; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/set-immediate.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/set-immediate.js new file mode 100644 index 0000000000..696b05eb23 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/set-immediate.js @@ -0,0 +1,7 @@ +"use strict"; +var process = require("./process"); +try { + module.exports = setImmediate; +} catch (ex) { + module.exports = process.nextTick; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/set-interval.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/set-interval.js new file mode 100644 index 0000000000..f06cb6a7a0 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/set-interval.js @@ -0,0 +1,3 @@ +"use strict"; +// this exists so we can replace it during testing +module.exports = setInterval; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/spin.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/spin.js new file mode 100644 index 0000000000..0b669cd874 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/spin.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = function spin(spinstr, spun) { + return spinstr[spun % spinstr.length]; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/template-item.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/template-item.js new file mode 100644 index 0000000000..1793239e3c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/template-item.js @@ -0,0 +1,81 @@ +"use strict"; +var stringWidth = require("string-width"); + +module.exports = TemplateItem; + +function isPercent(num) { + if (typeof num !== "string") return false; + return num.slice(-1) === "%"; +} + +function percent(num) { + return Number(num.slice(0, -1)) / 100; +} + +function TemplateItem(values, outputLength) { + this.overallOutputLength = outputLength; + this.finished = false; + this.type = null; + this.value = null; + this.length = null; + this.maxLength = null; + this.minLength = null; + this.kerning = null; + this.align = "left"; + this.padLeft = 0; + this.padRight = 0; + this.index = null; + this.first = null; + this.last = null; + if (typeof values === "string") { + this.value = values; + } else { + for (var prop in values) this[prop] = values[prop]; + } + // Realize percents + if (isPercent(this.length)) { + this.length = Math.round(this.overallOutputLength * percent(this.length)); + } + if (isPercent(this.minLength)) { + this.minLength = Math.round( + this.overallOutputLength * percent(this.minLength) + ); + } + if (isPercent(this.maxLength)) { + this.maxLength = Math.round( + this.overallOutputLength * percent(this.maxLength) + ); + } + return this; +} + +TemplateItem.prototype = {}; + +TemplateItem.prototype.getBaseLength = function () { + var length = this.length; + if ( + length == null && + typeof this.value === "string" && + this.maxLength == null && + this.minLength == null + ) { + length = stringWidth(this.value); + } + return length; +}; + +TemplateItem.prototype.getLength = function () { + var length = this.getBaseLength(); + if (length == null) return null; + return length + this.padLeft + this.padRight; +}; + +TemplateItem.prototype.getMaxLength = function () { + if (this.maxLength == null) return null; + return this.maxLength + this.padLeft + this.padRight; +}; + +TemplateItem.prototype.getMinLength = function () { + if (this.minLength == null) return null; + return this.minLength + this.padLeft + this.padRight; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/theme-set.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/theme-set.js new file mode 100644 index 0000000000..a4ced7bcdf --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/theme-set.js @@ -0,0 +1,130 @@ +"use strict"; +var objectAssign = require("object-assign"); + +module.exports = function () { + return ThemeSetProto.newThemeSet(); +}; + +var ThemeSetProto = {}; + +ThemeSetProto.baseTheme = require("./base-theme.js"); + +ThemeSetProto.newTheme = function (parent, theme) { + if (!theme) { + theme = parent; + parent = this.baseTheme; + } + return objectAssign({}, parent, theme); +}; + +ThemeSetProto.getThemeNames = function () { + return Object.keys(this.themes); +}; + +ThemeSetProto.addTheme = function (name, parent, theme) { + this.themes[name] = this.newTheme(parent, theme); +}; + +ThemeSetProto.addToAllThemes = function (theme) { + var themes = this.themes; + Object.keys(themes).forEach(function (name) { + objectAssign(themes[name], theme); + }); + objectAssign(this.baseTheme, theme); +}; + +ThemeSetProto.getTheme = function (name) { + if (!this.themes[name]) throw this.newMissingThemeError(name); + return this.themes[name]; +}; + +ThemeSetProto.setDefault = function (opts, name) { + if (name == null) { + name = opts; + opts = {}; + } + var platform = opts.platform == null ? "fallback" : opts.platform; + var hasUnicode = !!opts.hasUnicode; + var hasColor = !!opts.hasColor; + if (!this.defaults[platform]) + this.defaults[platform] = { true: {}, false: {} }; + this.defaults[platform][hasUnicode][hasColor] = name; +}; + +ThemeSetProto.getDefault = function (opts) { + if (!opts) opts = {}; + var platformName = opts.platform || process.platform; + var platform = this.defaults[platformName] || this.defaults.fallback; + var hasUnicode = !!opts.hasUnicode; + var hasColor = !!opts.hasColor; + if (!platform) + throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor); + if (!platform[hasUnicode][hasColor]) { + if (hasUnicode && hasColor && platform[!hasUnicode][hasColor]) { + hasUnicode = false; + } else if (hasUnicode && hasColor && platform[hasUnicode][!hasColor]) { + hasColor = false; + } else if (hasUnicode && hasColor && platform[!hasUnicode][!hasColor]) { + hasUnicode = false; + hasColor = false; + } else if (hasUnicode && !hasColor && platform[!hasUnicode][hasColor]) { + hasUnicode = false; + } else if (!hasUnicode && hasColor && platform[hasUnicode][!hasColor]) { + hasColor = false; + } else if (platform === this.defaults.fallback) { + throw this.newMissingDefaultThemeError( + platformName, + hasUnicode, + hasColor + ); + } + } + if (platform[hasUnicode][hasColor]) { + return this.getTheme(platform[hasUnicode][hasColor]); + } else { + return this.getDefault(objectAssign({}, opts, { platform: "fallback" })); + } +}; + +ThemeSetProto.newMissingThemeError = function newMissingThemeError(name) { + var err = new Error('Could not find a gauge theme named "' + name + '"'); + Error.captureStackTrace.call(err, newMissingThemeError); + err.theme = name; + err.code = "EMISSINGTHEME"; + return err; +}; + +ThemeSetProto.newMissingDefaultThemeError = function newMissingDefaultThemeError( + platformName, + hasUnicode, + hasColor +) { + var err = new Error( + "Could not find a gauge theme for your platform/unicode/color use combo:\n" + + " platform = " + + platformName + + "\n" + + " hasUnicode = " + + hasUnicode + + "\n" + + " hasColor = " + + hasColor + ); + Error.captureStackTrace.call(err, newMissingDefaultThemeError); + err.platform = platformName; + err.hasUnicode = hasUnicode; + err.hasColor = hasColor; + err.code = "EMISSINGTHEME"; + return err; +}; + +ThemeSetProto.newThemeSet = function () { + var themeset = function (opts) { + return themeset.getDefault(opts); + }; + return objectAssign(themeset, ThemeSetProto, { + themes: objectAssign({}, this.themes), + baseTheme: objectAssign({}, this.baseTheme), + defaults: JSON.parse(JSON.stringify(this.defaults || {})) + }); +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/themes.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/themes.js new file mode 100644 index 0000000000..b4e8b59b22 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/themes.js @@ -0,0 +1,57 @@ +"use strict"; +var consoleControl = require("console-control-strings"); +var ThemeSet = require("./theme-set.js"); + +var themes = (module.exports = new ThemeSet()); + +themes.addTheme("ASCII", { + preProgressbar: "[", + postProgressbar: "]", + progressbarTheme: { + complete: "#", + remaining: "." + }, + activityIndicatorTheme: "-\\|/", + preSubsection: ">" +}); + +themes.addTheme("colorASCII", themes.getTheme("ASCII"), { + progressbarTheme: { + preComplete: consoleControl.color("inverse"), + complete: " ", + postComplete: consoleControl.color("stopInverse"), + preRemaining: consoleControl.color("brightBlack"), + remaining: ".", + postRemaining: consoleControl.color("reset") + } +}); + +themes.addTheme("brailleSpinner", { + preProgressbar: "⸨", + postProgressbar: "⸩", + progressbarTheme: { + complete: "░", + remaining: "⠂" + }, + activityIndicatorTheme: "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏", + preSubsection: ">" +}); + +themes.addTheme("colorBrailleSpinner", themes.getTheme("brailleSpinner"), { + progressbarTheme: { + preComplete: consoleControl.color("inverse"), + complete: " ", + postComplete: consoleControl.color("stopInverse"), + preRemaining: consoleControl.color("brightBlack"), + remaining: "░", + postRemaining: consoleControl.color("reset") + } +}); + +themes.setDefault({}, "ASCII"); +themes.setDefault({ hasColor: true }, "colorASCII"); +themes.setDefault({ platform: "darwin", hasUnicode: true }, "brailleSpinner"); +themes.setDefault( + { platform: "darwin", hasUnicode: true, hasColor: true }, + "colorBrailleSpinner" +); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/gauge/wide-truncate.js b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/wide-truncate.js new file mode 100644 index 0000000000..ca44b1dd9e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/gauge/wide-truncate.js @@ -0,0 +1,25 @@ +"use strict"; +var stringWidth = require("string-width"); +var stripAnsi = require("strip-ansi"); + +module.exports = wideTruncate; + +function wideTruncate(str, target) { + if (stringWidth(str) === 0) return str; + if (target <= 0) return ""; + if (stringWidth(str) <= target) return str; + + // We compute the number of bytes of ansi sequences here and add + // that to our initial truncation to ensure that we don't slice one + // that we want to keep in half. + var noAnsi = stripAnsi(str); + var ansiSize = str.length + noAnsi.length; + var truncated = str.slice(0, target + ansiSize); + + // we have to shrink the result to account for our ansi sequence buffer + // (if an ansi sequence was truncated) and double width characters. + while (stringWidth(truncated) > target) { + truncated = truncated.slice(0, -1); + } + return truncated; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/.travis.yml b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/.travis.yml new file mode 100644 index 0000000000..895dbd3623 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.6 + - 0.8 diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/LICENSE new file mode 100644 index 0000000000..ee27ba4b44 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +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/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/example/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/example/package.json new file mode 100644 index 0000000000..03494f486e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/example/package.json @@ -0,0 +1,8 @@ +{ + "name": "beep-boop", + "version": "1.2.3", + "repository" : { + "type" : "git", + "url": "git@github.com:substack/beep-boop.git" + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/example/url.js b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/example/url.js new file mode 100644 index 0000000000..96074f7590 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/example/url.js @@ -0,0 +1,3 @@ +var github = require("../"); +var url = github(require("./package.json")); +console.log(url); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/index.js new file mode 100644 index 0000000000..6f03ca9f6a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/index.js @@ -0,0 +1,16 @@ +module.exports = function (pkg) { + var m; + if ((m = match(JSON.stringify(pkg.repository)))) { + return m; + } else if ((m = match(JSON.stringify(pkg)))) { + return m; + } + return undefined; +}; + +function match(str) { + var m = /\bgithub.com[:\/]([^\/"]+)\/([^\/"]+)/.exec(str); + if (m) { + return "https://github.com/" + m[1] + "/" + m[2].replace(/\.git$/, ""); + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/package.json new file mode 100644 index 0000000000..d869eae4d5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/package.json @@ -0,0 +1,58 @@ +{ + "_from": "github-from-package@0.0.0", + "_id": "github-from-package@0.0.0", + "_inBundle": false, + "_integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", + "_location": "/github-from-package", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "github-from-package@0.0.0", + "name": "github-from-package", + "escapedName": "github-from-package", + "rawSpec": "0.0.0", + "saveSpec": null, + "fetchSpec": "0.0.0" + }, + "_requiredBy": [ + "/prebuild-install" + ], + "_resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "_shasum": "97fb5d96bfde8973313f20e8288ef9a167fa64ce", + "_spec": "github-from-package@0.0.0", + "_where": "/var/task/node_modules/prebuild-install", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/github-from-package/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "return the github url from a package.json file", + "devDependencies": { + "tap": "~0.3.0", + "tape": "~0.1.5" + }, + "homepage": "https://github.com/substack/github-from-package", + "keywords": [ + "github", + "package.json", + "npm", + "repository" + ], + "license": "MIT", + "main": "index.js", + "name": "github-from-package", + "repository": { + "type": "git", + "url": "git://github.com/substack/github-from-package.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.0.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/readme.markdown b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/readme.markdown new file mode 100644 index 0000000000..5ba397da94 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/readme.markdown @@ -0,0 +1,53 @@ +# github-from-package + +return the github url from a package.json file + +[![build status](https://secure.travis-ci.org/substack/github-from-package.png)](http://travis-ci.org/substack/github-from-package) + +# example + +For the `./package.json` file: + +``` json +{ + "name": "beep-boop", + "version": "1.2.3", + "repository" : { + "type" : "git", + "url": "git@github.com:substack/beep-boop.git" + } +} +``` + +``` js +var github = require('github-from-package'); +var url = github(require('./package.json')); +console.log(url); +``` + +``` +https://github.com/substack/beep-boop +``` + +# methods + +``` js +var github = require('github-from-package') +``` + +## var url = github(pkg) + +Return the most likely github url from the package.json contents `pkg`. If no +github url can be determined, return `undefined`. + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install github-from-package +``` + +# license + +MIT diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/a.json b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/a.json new file mode 100644 index 0000000000..03494f486e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/a.json @@ -0,0 +1,8 @@ +{ + "name": "beep-boop", + "version": "1.2.3", + "repository" : { + "type" : "git", + "url": "git@github.com:substack/beep-boop.git" + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/b.json b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/b.json new file mode 100644 index 0000000000..02093257bf --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/b.json @@ -0,0 +1,5 @@ +{ + "name": "beep-boop", + "version": "1.2.3", + "repository" : "git@github.com:substack/beep-boop.git" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/c.json b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/c.json new file mode 100644 index 0000000000..65f6ddad5d --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/c.json @@ -0,0 +1,5 @@ +{ + "name": "beep-boop", + "version": "1.2.3", + "repository" : "https://github.com/substack/beep-boop.git" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/d.json b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/d.json new file mode 100644 index 0000000000..c61f3cd3bb --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/d.json @@ -0,0 +1,7 @@ +{ + "name": "beep-boop", + "version": "1.2.3", + "repository" : { + "url": "https://github.com/substack/beep-boop" + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/e.json b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/e.json new file mode 100644 index 0000000000..770b43846e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/e.json @@ -0,0 +1,5 @@ +{ + "name": "beep-boop", + "version": "1.2.3", + "homepage": "https://github.com/substack/beep-boop/issues" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/url.js b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/url.js new file mode 100644 index 0000000000..3abfea2913 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/github-from-package/test/url.js @@ -0,0 +1,19 @@ +var test = require("tape"); +var github = require("../"); +var packages = { + a: require("./a.json"), + b: require("./b.json"), + c: require("./c.json"), + d: require("./d.json"), + e: require("./e.json") +}; + +test(function (t) { + t.plan(5); + var url = "https://github.com/substack/beep-boop"; + t.equal(url, github(packages.a), "a.json comparison"); + t.equal(url, github(packages.b), "b.json comparison"); + t.equal(url, github(packages.c), "c.json comparison"); + t.equal(url, github(packages.d), "d.json comparison"); + t.equal(url, github(packages.e), "e.json comparison"); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/LICENSE new file mode 100644 index 0000000000..d42e25e956 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/LICENSE @@ -0,0 +1,14 @@ +Copyright (c) 2014, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. + diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/README.md new file mode 100644 index 0000000000..53da20c337 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/README.md @@ -0,0 +1,42 @@ +# has-unicode + +Try to guess if your terminal supports unicode + +```javascript +var hasUnicode = require("has-unicode"); + +if (hasUnicode()) { + // the terminal probably has unicode support +} +``` + +```javascript +var hasUnicode = require("has-unicode").tryHarder; +hasUnicode(function (unicodeSupported) { + if (unicodeSupported) { + // the terminal probably has unicode support + } +}); +``` + +## Detecting Unicode + +What we actually detect is UTF-8 support, as that's what Node itself supports. +If you have a UTF-16 locale then you won't be detected as unicode capable. + +### Windows + +Since at least Windows 7, `cmd` and `powershell` have been unicode capable, +but unfortunately even then it's not guaranteed. In many localizations it +still uses legacy code pages and there's no facility short of running +programs or linking C++ that will let us detect this. As such, we +report any Windows installation as NOT unicode capable, and recommend +that you encourage your users to override this via config. + +### Unix Like Operating Systems + +We look at the environment variables `LC_ALL`, `LC_CTYPE`, and `LANG` in +that order. For `LC_ALL` and `LANG`, it looks for `.UTF-8` in the value. +For `LC_CTYPE` it looks to see if the value is `UTF-8`. This is sufficient +for most POSIX systems. While locale data can be put in `/etc/locale.conf` +as well, AFAIK it's always copied into the environment. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/index.js new file mode 100644 index 0000000000..19e31a9d55 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/index.js @@ -0,0 +1,18 @@ +"use strict"; +var os = require("os"); + +var hasUnicode = (module.exports = function () { + // Recent Win32 platforms (>XP) CAN support unicode in the console but + // don't have to, and in non-english locales often use traditional local + // code pages. There's no way, short of windows system calls or execing + // the chcp command line program to figure this out. As such, we default + // this to false and encourage your users to override it via config if + // appropriate. + if (os.type() == "Windows_NT") { + return false; + } + + var isUTF8 = /UTF-?8$/i; + var ctype = process.env.LC_ALL || process.env.LC_CTYPE || process.env.LANG; + return isUTF8.test(ctype); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/package.json new file mode 100644 index 0000000000..d797603a11 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/has-unicode/package.json @@ -0,0 +1,58 @@ +{ + "_from": "has-unicode@^2.0.0", + "_id": "has-unicode@2.0.1", + "_inBundle": false, + "_integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "_location": "/has-unicode", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "has-unicode@^2.0.0", + "name": "has-unicode", + "escapedName": "has-unicode", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/gauge" + ], + "_resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "_shasum": "e0e6fe6a28cf51138855e086d1691e771de2a8b9", + "_spec": "has-unicode@^2.0.0", + "_where": "/var/task/node_modules/gauge", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org" + }, + "bugs": { + "url": "https://github.com/iarna/has-unicode/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Try to guess if your terminal supports unicode", + "devDependencies": { + "require-inject": "^1.3.0", + "tap": "^2.3.1" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/iarna/has-unicode", + "keywords": [ + "unicode", + "terminal" + ], + "license": "ISC", + "main": "index.js", + "name": "has-unicode", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/has-unicode.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.0.1" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/LICENSE new file mode 100644 index 0000000000..5aac82c78c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/LICENSE @@ -0,0 +1,11 @@ +Copyright 2008 Fair Oaks Labs, Inc. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/README.md new file mode 100644 index 0000000000..cb7527b3ce --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/README.md @@ -0,0 +1,51 @@ +# ieee754 [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/ieee754/master.svg +[travis-url]: https://travis-ci.org/feross/ieee754 +[npm-image]: https://img.shields.io/npm/v/ieee754.svg +[npm-url]: https://npmjs.org/package/ieee754 +[downloads-image]: https://img.shields.io/npm/dm/ieee754.svg +[downloads-url]: https://npmjs.org/package/ieee754 +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +[![saucelabs][saucelabs-image]][saucelabs-url] + +[saucelabs-image]: https://saucelabs.com/browser-matrix/ieee754.svg +[saucelabs-url]: https://saucelabs.com/u/ieee754 + +### Read/write IEEE754 floating point numbers from/to a Buffer or array-like object. + +## install + +``` +npm install ieee754 +``` + +## methods + +`var ieee754 = require('ieee754')` + +The `ieee754` object has the following functions: + +``` +ieee754.read = function (buffer, offset, isLE, mLen, nBytes) +ieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) +``` + +The arguments mean the following: + +- buffer = the buffer +- offset = offset into the buffer +- value = value to set (only for `write`) +- isLe = is little endian? +- mLen = mantissa length +- nBytes = number of bytes + +## what is ieee754? + +The IEEE Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point computation. [Read more](http://en.wikipedia.org/wiki/IEEE_floating_point). + +## license + +BSD 3 Clause. Copyright (c) 2008, Fair Oaks Labs, Inc. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/index.d.ts b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/index.d.ts new file mode 100644 index 0000000000..ef909ac8a5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/index.d.ts @@ -0,0 +1,19 @@ +declare namespace ieee754 { + export function read( + buffer: Uint8Array, + offset: number, + isLE: boolean, + mLen: number, + nBytes: number + ): number; + export function write( + buffer: Uint8Array, + value: number, + offset: number, + isLE: boolean, + mLen: number, + nBytes: number + ): void; +} + +export = ieee754; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/index.js new file mode 100644 index 0000000000..c0612351e7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/index.js @@ -0,0 +1,93 @@ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer[offset + i]; + + i += d; + + e = s & ((1 << -nBits) - 1); + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << -nBits) - 1); + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); +}; + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for ( + ; + mLen >= 8; + buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8 + ) {} + + e = (e << mLen) | m; + eLen += mLen; + for ( + ; + eLen > 0; + buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8 + ) {} + + buffer[offset + i - d] |= s * 128; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/package.json new file mode 100644 index 0000000000..1d76675dd6 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ieee754/package.json @@ -0,0 +1,84 @@ +{ + "_from": "ieee754@^1.1.13", + "_id": "ieee754@1.2.1", + "_inBundle": false, + "_integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "_location": "/ieee754", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ieee754@^1.1.13", + "name": "ieee754", + "escapedName": "ieee754", + "rawSpec": "^1.1.13", + "saveSpec": null, + "fetchSpec": "^1.1.13" + }, + "_requiredBy": [ + "/buffer" + ], + "_resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "_shasum": "8eb7a10a63fff25d15a57b001586d177d1b0d352", + "_spec": "ieee754@^1.1.13", + "_where": "/var/task/node_modules/buffer", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/ieee754/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Romain Beauxis", + "email": "toots@rastageeks.org" + } + ], + "deprecated": false, + "description": "Read/write IEEE754 floating point numbers from/to a Buffer or array-like object", + "devDependencies": { + "airtap": "^3.0.0", + "standard": "*", + "tape": "^5.0.1" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/feross/ieee754#readme", + "keywords": [ + "IEEE 754", + "buffer", + "convert", + "floating point", + "ieee754" + ], + "license": "BSD-3-Clause", + "main": "index.js", + "name": "ieee754", + "repository": { + "type": "git", + "url": "git://github.com/feross/ieee754.git" + }, + "scripts": { + "test": "standard && npm run test-node && npm run test-browser", + "test-browser": "airtap -- test/*.js", + "test-browser-local": "airtap --local -- test/*.js", + "test-node": "tape test/*.js" + }, + "types": "index.d.ts", + "version": "1.2.1" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/inherits/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/LICENSE new file mode 100644 index 0000000000..dea3013d67 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/LICENSE @@ -0,0 +1,16 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. + diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/inherits/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/README.md new file mode 100644 index 0000000000..4ab93a6a9a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/README.md @@ -0,0 +1,42 @@ +Browser-friendly inheritance fully compatible with standard node.js +[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). + +This package exports standard `inherits` from node.js `util` module in +node environment, but also provides alternative browser-friendly +implementation through [browser +field](https://gist.github.com/shtylman/4339901). Alternative +implementation is a literal copy of standard one located in standalone +module to avoid requiring of `util`. It also has a shim for old +browsers with no `Object.create` support. + +While keeping you sure you are using standard `inherits` +implementation in node.js environment, it allows bundlers such as +[browserify](https://github.com/substack/node-browserify) to not +include full `util` package to your client code if all you need is +just `inherits` function. It worth, because browser shim for `util` +package is large and `inherits` is often the single function you need +from it. + +It's recommended to use this package instead of +`require('util').inherits` for any code that has chances to be used +not only in node.js but in browser too. + +## usage + +```js +var inherits = require("inherits"); +// then use exactly as the standard one +``` + +## note on version ~1.0 + +Version ~1.0 had completely different motivation and is not compatible +neither with 2.0 nor with standard node.js `inherits`. + +If you are using version ~1.0 and planning to switch to ~2.0, be +careful: + +- new version uses `super_` instead of `super` for referencing + superclass +- new version overwrites current prototype while old one preserves any + existing fields on it diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/inherits/inherits.js b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/inherits.js new file mode 100644 index 0000000000..516cd373d3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/inherits.js @@ -0,0 +1,9 @@ +try { + var util = require("util"); + /* istanbul ignore next */ + if (typeof util.inherits !== "function") throw ""; + module.exports = util.inherits; +} catch (e) { + /* istanbul ignore next */ + module.exports = require("./inherits_browser.js"); +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/inherits/inherits_browser.js b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/inherits_browser.js new file mode 100644 index 0000000000..6b4d1a77d3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/inherits_browser.js @@ -0,0 +1,27 @@ +if (typeof Object.create === "function") { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function () {}; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/inherits/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/package.json new file mode 100644 index 0000000000..213f2a78aa --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/inherits/package.json @@ -0,0 +1,65 @@ +{ + "_from": "inherits@~2.0.3", + "_id": "inherits@2.0.4", + "_inBundle": false, + "_integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "_location": "/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "inherits@~2.0.3", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "~2.0.3", + "saveSpec": null, + "fetchSpec": "~2.0.3" + }, + "_requiredBy": [ + "/bl", + "/bl/readable-stream", + "/readable-stream", + "/tar-stream", + "/tar-stream/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "_shasum": "0fa2c64f932917c3433a0ded55363aae37416b7c", + "_spec": "inherits@~2.0.3", + "_where": "/var/task/node_modules/readable-stream", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", + "devDependencies": { + "tap": "^14.2.4" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ], + "homepage": "https://github.com/isaacs/inherits#readme", + "keywords": [ + "inheritance", + "class", + "klass", + "oop", + "object-oriented", + "inherits", + "browser", + "browserify" + ], + "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, + "scripts": { + "test": "tap" + }, + "version": "2.0.4" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ini/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/ini/LICENSE new file mode 100644 index 0000000000..19129e315f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ini/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ini/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/ini/README.md new file mode 100644 index 0000000000..206d503be9 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ini/README.md @@ -0,0 +1,101 @@ +An ini format parser and serializer for node. + +Sections are treated as nested objects. Items before the first +heading are saved on the object directly. + +## Usage + +Consider an ini-file `config.ini` that looks like this: + + ; this comment is being ignored + scope = global + + [database] + user = dbuser + password = dbpassword + database = use_this_database + + [paths.default] + datadir = /var/lib/data + array[] = first value + array[] = second value + array[] = third value + +You can read, manipulate and write the ini-file like so: + + var fs = require('fs') + , ini = require('ini') + + var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8')) + + config.scope = 'local' + config.database.database = 'use_another_database' + config.paths.default.tmpdir = '/tmp' + delete config.paths.default.datadir + config.paths.default.array.push('fourth value') + + fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' })) + +This will result in a file called `config_modified.ini` being written +to the filesystem with the following content: + + [section] + scope=local + [section.database] + user=dbuser + password=dbpassword + database=use_another_database + [section.paths.default] + tmpdir=/tmp + array[]=first value + array[]=second value + array[]=third value + array[]=fourth value + +## API + +### decode(inistring) + +Decode the ini-style formatted `inistring` into a nested object. + +### parse(inistring) + +Alias for `decode(inistring)` + +### encode(object, [options]) + +Encode the object `object` into an ini-style formatted string. If the +optional parameter `section` is given, then all top-level properties +of the object are put into this section and the `section`-string is +prepended to all sub-sections, see the usage example above. + +The `options` object may contain the following: + +- `section` A string which will be the first `section` in the encoded + ini data. Defaults to none. +- `whitespace` Boolean to specify whether to put whitespace around the + `=` character. By default, whitespace is omitted, to be friendly to + some persnickety old parsers that don't tolerate it well. But some + find that it's more human-readable and pretty with the whitespace. + +For backwards compatibility reasons, if a `string` options is passed +in, then it is assumed to be the `section` value. + +### stringify(object, [options]) + +Alias for `encode(object, [options])` + +### safe(val) + +Escapes the string `val` such that it is safe to be used as a key or +value in an ini-file. Basically escapes quotes. For example + + ini.safe('"unsafe string"') + +would result in + + "\"unsafe string\"" + +### unsafe(val) + +Unescapes the string `val` diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ini/ini.js b/packages/libs/lambda-at-edge/sharp_node_modules/ini/ini.js new file mode 100644 index 0000000000..5838e207f8 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ini/ini.js @@ -0,0 +1,203 @@ +exports.parse = exports.decode = decode; + +exports.stringify = exports.encode = encode; + +exports.safe = safe; +exports.unsafe = unsafe; + +var eol = + typeof process !== "undefined" && process.platform === "win32" + ? "\r\n" + : "\n"; + +function encode(obj, opt) { + var children = []; + var out = ""; + + if (typeof opt === "string") { + opt = { + section: opt, + whitespace: false + }; + } else { + opt = opt || {}; + opt.whitespace = opt.whitespace === true; + } + + var separator = opt.whitespace ? " = " : "="; + + Object.keys(obj).forEach(function (k, _, __) { + var val = obj[k]; + if (val && Array.isArray(val)) { + val.forEach(function (item) { + out += safe(k + "[]") + separator + safe(item) + "\n"; + }); + } else if (val && typeof val === "object") { + children.push(k); + } else { + out += safe(k) + separator + safe(val) + eol; + } + }); + + if (opt.section && out.length) { + out = "[" + safe(opt.section) + "]" + eol + out; + } + + children.forEach(function (k, _, __) { + var nk = dotSplit(k).join("\\."); + var section = (opt.section ? opt.section + "." : "") + nk; + var child = encode(obj[k], { + section: section, + whitespace: opt.whitespace + }); + if (out.length && child.length) { + out += eol; + } + out += child; + }); + + return out; +} + +function dotSplit(str) { + return str + .replace(/\1/g, "\u0002LITERAL\\1LITERAL\u0002") + .replace(/\\\./g, "\u0001") + .split(/\./) + .map(function (part) { + return part + .replace(/\1/g, "\\.") + .replace(/\2LITERAL\\1LITERAL\2/g, "\u0001"); + }); +} + +function decode(str) { + var out = {}; + var p = out; + var section = null; + // section |key = value + var re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i; + var lines = str.split(/[\r\n]+/g); + + lines.forEach(function (line, _, __) { + if (!line || line.match(/^\s*[;#]/)) return; + var match = line.match(re); + if (!match) return; + if (match[1] !== undefined) { + section = unsafe(match[1]); + p = out[section] = out[section] || {}; + return; + } + var key = unsafe(match[2]); + var value = match[3] ? unsafe(match[4]) : true; + switch (value) { + case "true": + case "false": + case "null": + value = JSON.parse(value); + } + + // Convert keys with '[]' suffix to an array + if (key.length > 2 && key.slice(-2) === "[]") { + key = key.substring(0, key.length - 2); + if (!p[key]) { + p[key] = []; + } else if (!Array.isArray(p[key])) { + p[key] = [p[key]]; + } + } + + // safeguard against resetting a previously defined + // array by accidentally forgetting the brackets + if (Array.isArray(p[key])) { + p[key].push(value); + } else { + p[key] = value; + } + }); + + // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}} + // use a filter to return the keys that have to be deleted. + Object.keys(out) + .filter(function (k, _, __) { + if (!out[k] || typeof out[k] !== "object" || Array.isArray(out[k])) { + return false; + } + // see if the parent section is also an object. + // if so, add it to that, and mark this one for deletion + var parts = dotSplit(k); + var p = out; + var l = parts.pop(); + var nl = l.replace(/\\\./g, "."); + parts.forEach(function (part, _, __) { + if (!p[part] || typeof p[part] !== "object") p[part] = {}; + p = p[part]; + }); + if (p === out && nl === l) { + return false; + } + p[nl] = out[k]; + return true; + }) + .forEach(function (del, _, __) { + delete out[del]; + }); + + return out; +} + +function isQuoted(val) { + return ( + (val.charAt(0) === '"' && val.slice(-1) === '"') || + (val.charAt(0) === "'" && val.slice(-1) === "'") + ); +} + +function safe(val) { + return typeof val !== "string" || + val.match(/[=\r\n]/) || + val.match(/^\[/) || + (val.length > 1 && isQuoted(val)) || + val !== val.trim() + ? JSON.stringify(val) + : val.replace(/;/g, "\\;").replace(/#/g, "\\#"); +} + +function unsafe(val, doUnesc) { + val = (val || "").trim(); + if (isQuoted(val)) { + // remove the single quotes before calling JSON.parse + if (val.charAt(0) === "'") { + val = val.substr(1, val.length - 2); + } + try { + val = JSON.parse(val); + } catch (_) {} + } else { + // walk the val to find the first not-escaped ; character + var esc = false; + var unesc = ""; + for (var i = 0, l = val.length; i < l; i++) { + var c = val.charAt(i); + if (esc) { + if ("\\;#".indexOf(c) !== -1) { + unesc += c; + } else { + unesc += "\\" + c; + } + esc = false; + } else if (";#".indexOf(c) !== -1) { + break; + } else if (c === "\\") { + esc = true; + } else { + unesc += c; + } + } + if (esc) { + unesc += "\\"; + } + return unesc.trim(); + } + return val; +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/ini/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/ini/package.json new file mode 100644 index 0000000000..0305a41749 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/ini/package.json @@ -0,0 +1,63 @@ +{ + "_from": "ini@~1.3.0", + "_id": "ini@1.3.5", + "_inBundle": false, + "_integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "_location": "/ini", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ini@~1.3.0", + "name": "ini", + "escapedName": "ini", + "rawSpec": "~1.3.0", + "saveSpec": null, + "fetchSpec": "~1.3.0" + }, + "_requiredBy": [ + "/rc" + ], + "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "_shasum": "eee25f56db1c9ec6085e0c22778083f596abf927", + "_spec": "ini@~1.3.0", + "_where": "/var/task/node_modules/rc", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/ini/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "An ini encoder/decoder for node", + "devDependencies": { + "standard": "^10.0.3", + "tap": "^10.7.3 || 11" + }, + "engines": { + "node": "*" + }, + "files": [ + "ini.js" + ], + "homepage": "https://github.com/isaacs/ini#readme", + "license": "ISC", + "main": "ini.js", + "name": "ini", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/ini.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "pretest": "standard ini.js", + "preversion": "npm test", + "test": "tap test/*.js --100 -J" + }, + "version": "1.3.5" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/LICENSE new file mode 100644 index 0000000000..0a5f461a69 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 JD Ballard + +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/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/README.md new file mode 100644 index 0000000000..9c3f6bbb97 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/README.md @@ -0,0 +1,19 @@ +# node-is-arrayish [![Travis-CI.org Build Status](https://img.shields.io/travis/Qix-/node-is-arrayish.svg?style=flat-square)](https://travis-ci.org/Qix-/node-is-arrayish) [![Coveralls.io Coverage Rating](https://img.shields.io/coveralls/Qix-/node-is-arrayish.svg?style=flat-square)](https://coveralls.io/r/Qix-/node-is-arrayish) + +> Determines if an object can be used like an Array + +## Example + +```javascript +var isArrayish = require("is-arrayish"); + +isArrayish([]); // true +isArrayish({ __proto__: [] }); // true +isArrayish({}); // false +isArrayish({ length: 10 }); // false +``` + +## License + +Licensed under the [MIT License](http://opensource.org/licenses/MIT). +You can find a copy of it in [LICENSE](LICENSE). diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/index.js new file mode 100644 index 0000000000..172fa93761 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/index.js @@ -0,0 +1,14 @@ +module.exports = function isArrayish(obj) { + if (!obj || typeof obj === "string") { + return false; + } + + return ( + obj instanceof Array || + Array.isArray(obj) || + (obj.length >= 0 && + (obj.splice instanceof Function || + (Object.getOwnPropertyDescriptor(obj, obj.length - 1) && + obj.constructor.name !== "String"))) + ); +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/package.json new file mode 100644 index 0000000000..18f77b3b1d --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-arrayish/package.json @@ -0,0 +1,77 @@ +{ + "_from": "is-arrayish@^0.3.1", + "_id": "is-arrayish@0.3.2", + "_inBundle": false, + "_integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "_location": "/is-arrayish", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-arrayish@^0.3.1", + "name": "is-arrayish", + "escapedName": "is-arrayish", + "rawSpec": "^0.3.1", + "saveSpec": null, + "fetchSpec": "^0.3.1" + }, + "_requiredBy": [ + "/simple-swizzle" + ], + "_resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "_shasum": "4574a2ae56f7ab206896fb431eaeed066fdf8f03", + "_spec": "is-arrayish@^0.3.1", + "_where": "/var/task/node_modules/simple-swizzle", + "author": { + "name": "Qix", + "url": "http://github.com/qix-" + }, + "bugs": { + "url": "https://github.com/qix-/node-is-arrayish/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Determines if an object can be used as an array", + "devDependencies": { + "@zeit/eslint-config-node": "^0.3.0", + "@zeit/git-hooks": "^0.1.4", + "coffeescript": "^2.3.1", + "coveralls": "^3.0.1", + "eslint": "^4.19.1", + "istanbul": "^0.4.5", + "mocha": "^5.2.0", + "should": "^13.2.1" + }, + "eslintConfig": { + "extends": [ + "@zeit/eslint-config-node" + ] + }, + "git": { + "pre-commit": "lint-staged" + }, + "homepage": "https://github.com/qix-/node-is-arrayish#readme", + "keywords": [ + "is", + "array", + "duck", + "type", + "arrayish", + "similar", + "proto", + "prototype", + "type" + ], + "license": "MIT", + "name": "is-arrayish", + "repository": { + "type": "git", + "url": "git+https://github.com/qix-/node-is-arrayish.git" + }, + "scripts": { + "lint": "zeit-eslint --ext .jsx,.js .", + "lint-staged": "git diff --diff-filter=ACMRT --cached --name-only '*.js' '*.jsx' | xargs zeit-eslint", + "test": "mocha --require coffeescript/register ./test/**/*.coffee" + }, + "version": "0.3.2" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/index.js new file mode 100644 index 0000000000..c01c64eef2 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/index.js @@ -0,0 +1,48 @@ +"use strict"; +var numberIsNan = require("number-is-nan"); + +module.exports = function (x) { + if (numberIsNan(x)) { + return false; + } + + // https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1369 + + // code points are derived from: + // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt + if ( + x >= 0x1100 && + (x <= 0x115f || // Hangul Jamo + 0x2329 === x || // LEFT-POINTING ANGLE BRACKET + 0x232a === x || // RIGHT-POINTING ANGLE BRACKET + // CJK Radicals Supplement .. Enclosed CJK Letters and Months + (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) || + // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A + (0x3250 <= x && x <= 0x4dbf) || + // CJK Unified Ideographs .. Yi Radicals + (0x4e00 <= x && x <= 0xa4c6) || + // Hangul Jamo Extended-A + (0xa960 <= x && x <= 0xa97c) || + // Hangul Syllables + (0xac00 <= x && x <= 0xd7a3) || + // CJK Compatibility Ideographs + (0xf900 <= x && x <= 0xfaff) || + // Vertical Forms + (0xfe10 <= x && x <= 0xfe19) || + // CJK Compatibility Forms .. Small Form Variants + (0xfe30 <= x && x <= 0xfe6b) || + // Halfwidth and Fullwidth Forms + (0xff01 <= x && x <= 0xff60) || + (0xffe0 <= x && x <= 0xffe6) || + // Kana Supplement + (0x1b000 <= x && x <= 0x1b001) || + // Enclosed Ideographic Supplement + (0x1f200 <= x && x <= 0x1f251) || + // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane + (0x20000 <= x && x <= 0x3fffd)) + ) { + return true; + } + + return false; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/license b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/package.json new file mode 100644 index 0000000000..40681444a4 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/package.json @@ -0,0 +1,77 @@ +{ + "_from": "is-fullwidth-code-point@^1.0.0", + "_id": "is-fullwidth-code-point@1.0.0", + "_inBundle": false, + "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "_location": "/is-fullwidth-code-point", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-fullwidth-code-point@^1.0.0", + "name": "is-fullwidth-code-point", + "escapedName": "is-fullwidth-code-point", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/string-width" + ], + "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb", + "_spec": "is-fullwidth-code-point@^1.0.0", + "_where": "/var/task/node_modules/string-width", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" + }, + "bundleDependencies": false, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "deprecated": false, + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "devDependencies": { + "ava": "0.0.4", + "code-point-at": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", + "keywords": [ + "fullwidth", + "full-width", + "full", + "width", + "unicode", + "character", + "char", + "string", + "str", + "codepoint", + "code", + "point", + "is", + "detect", + "check" + ], + "license": "MIT", + "name": "is-fullwidth-code-point", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/readme.md b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/readme.md new file mode 100644 index 0000000000..c003b128d7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/is-fullwidth-code-point/readme.md @@ -0,0 +1,35 @@ +# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point) + +> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) + +## Install + +``` +$ npm install --save is-fullwidth-code-point +``` + +## Usage + +```js +var isFullwidthCodePoint = require("is-fullwidth-code-point"); + +isFullwidthCodePoint("谢".codePointAt()); +//=> true + +isFullwidthCodePoint("a".codePointAt()); +//=> false +``` + +## API + +### isFullwidthCodePoint(input) + +#### input + +Type: `number` + +[Code point](https://en.wikipedia.org/wiki/Code_point) of a character. + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/isarray/.npmignore b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/.npmignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/isarray/.travis.yml b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/.travis.yml new file mode 100644 index 0000000000..cc4dba29d9 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - "0.8" + - "0.10" diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/isarray/Makefile b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/Makefile new file mode 100644 index 0000000000..787d56e1e9 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/Makefile @@ -0,0 +1,6 @@ + +test: + @node_modules/.bin/tape test.js + +.PHONY: test + diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/isarray/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/README.md new file mode 100644 index 0000000000..7758142353 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/README.md @@ -0,0 +1,59 @@ +# isarray + +`Array#isArray` for older browsers. + +[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) +[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) + +[![browser support](https://ci.testling.com/juliangruber/isarray.png) +](https://ci.testling.com/juliangruber/isarray) + +## Usage + +```js +var isArray = require("isarray"); + +console.log(isArray([])); // => true +console.log(isArray({})); // => false +``` + +## Installation + +With [npm](http://npmjs.org) do + +```bash +$ npm install isarray +``` + +Then bundle for the browser with +[browserify](https://github.com/substack/browserify). + +With [component](http://component.io) do + +```bash +$ component install juliangruber/isarray +``` + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +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/packages/libs/lambda-at-edge/sharp_node_modules/isarray/component.json b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/component.json new file mode 100644 index 0000000000..9e31b68388 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/component.json @@ -0,0 +1,19 @@ +{ + "name" : "isarray", + "description" : "Array#isArray for older browsers", + "version" : "0.0.1", + "repository" : "juliangruber/isarray", + "homepage": "https://github.com/juliangruber/isarray", + "main" : "index.js", + "scripts" : [ + "index.js" + ], + "dependencies" : {}, + "keywords": ["browser","isarray","array"], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/isarray/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/index.js new file mode 100644 index 0000000000..2542adc9e9 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/index.js @@ -0,0 +1,7 @@ +var toString = {}.toString; + +module.exports = + Array.isArray || + function (arr) { + return toString.call(arr) == "[object Array]"; + }; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/isarray/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/package.json new file mode 100644 index 0000000000..a73432ae03 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/package.json @@ -0,0 +1,73 @@ +{ + "_from": "isarray@~1.0.0", + "_id": "isarray@1.0.0", + "_inBundle": false, + "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "_location": "/isarray", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "isarray@~1.0.0", + "name": "isarray", + "escapedName": "isarray", + "rawSpec": "~1.0.0", + "saveSpec": null, + "fetchSpec": "~1.0.0" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "_shasum": "bb935d48582cba168c06834957a54a3e07124f11", + "_spec": "isarray@~1.0.0", + "_where": "/var/task/node_modules/readable-stream", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/isarray/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Array#isArray for older browsers", + "devDependencies": { + "tape": "~2.13.4" + }, + "homepage": "https://github.com/juliangruber/isarray", + "keywords": [ + "browser", + "isarray", + "array" + ], + "license": "MIT", + "main": "index.js", + "name": "isarray", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/isarray.git" + }, + "scripts": { + "test": "tape test.js" + }, + "testling": { + "files": "test.js", + "browsers": [ + "ie/8..latest", + "firefox/17..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "version": "1.0.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/isarray/test.js b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/test.js new file mode 100644 index 0000000000..84bfe1d12b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/isarray/test.js @@ -0,0 +1,19 @@ +var isArray = require("./"); +var test = require("tape"); + +test("is array", function (t) { + t.ok(isArray([])); + t.notOk(isArray({})); + t.notOk(isArray(null)); + t.notOk(isArray(false)); + + var obj = {}; + obj[0] = true; + t.notOk(isArray(obj)); + + var arr = []; + arr.foo = "bar"; + t.ok(isArray(arr)); + + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/LICENSE new file mode 100644 index 0000000000..19129e315f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/README.md new file mode 100644 index 0000000000..5d4a01623b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/README.md @@ -0,0 +1,172 @@ +# lru cache + +A cache object that deletes the least-recently-used items. + +[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache) + +## Installation: + +```javascript +npm install lru-cache --save +``` + +## Usage: + +```javascript +var LRU = require("lru-cache"), + options = { + max: 500, + length: function (n, key) { + return n * 2 + key.length; + }, + dispose: function (key, n) { + n.close(); + }, + maxAge: 1000 * 60 * 60 + }, + cache = new LRU(options), + otherCache = new LRU(50); // sets just the max size + +cache.set("key", "value"); +cache.get("key"); // "value" + +// non-string keys ARE fully supported +// but note that it must be THE SAME object, not +// just a JSON-equivalent object. +var someObject = { a: 1 }; +cache.set(someObject, "a value"); +// Object keys are not toString()-ed +cache.set("[object Object]", "a different value"); +assert.equal(cache.get(someObject), "a value"); +// A similar object with same keys/values won't work, +// because it's a different object identity +assert.equal(cache.get({ a: 1 }), undefined); + +cache.reset(); // empty the cache +``` + +If you put more stuff in it, then items will fall out. + +If you try to put an oversized thing in it, then it'll fall out right +away. + +## Options + +- `max` The maximum size of the cache, checked by applying the length + function to all values in the cache. Not setting this is kind of + silly, since that's the whole purpose of this lib, but it defaults + to `Infinity`. Setting it to a non-number or negative number will + throw a `TypeError`. Setting it to 0 makes it be `Infinity`. +- `maxAge` Maximum age in ms. Items are not pro-actively pruned out + as they age, but if you try to get an item that is too old, it'll + drop it and return undefined instead of giving it to you. + Setting this to a negative value will make everything seem old! + Setting it to a non-number will throw a `TypeError`. +- `length` Function that is used to calculate the length of stored + items. If you're storing strings or buffers, then you probably want + to do something like `function(n, key){return n.length}`. The default is + `function(){return 1}`, which is fine if you want to store `max` + like-sized things. The item is passed as the first argument, and + the key is passed as the second argumnet. +- `dispose` Function that is called on items when they are dropped + from the cache. This can be handy if you want to close file + descriptors or do other cleanup tasks when items are no longer + accessible. Called with `key, value`. It's called _before_ + actually removing the item from the internal cache, so if you want + to immediately put it back in, you'll have to do that in a + `nextTick` or `setTimeout` callback or it won't do anything. +- `stale` By default, if you set a `maxAge`, it'll only actually pull + stale items out of the cache when you `get(key)`. (That is, it's + not pre-emptively doing a `setTimeout` or anything.) If you set + `stale:true`, it'll return the stale value before deleting it. If + you don't set this, then it'll return `undefined` when you try to + get a stale entry, as if it had already been deleted. +- `noDisposeOnSet` By default, if you set a `dispose()` method, then + it'll be called whenever a `set()` operation overwrites an existing + key. If you set this option, `dispose()` will only be called when a + key falls out of the cache, not when it is overwritten. +- `updateAgeOnGet` When using time-expiring entries with `maxAge`, + setting this to `true` will make each item's effective time update + to the current time whenever it is retrieved from cache, causing it + to not expire. (It can still fall out of cache based on recency of + use, of course.) + +## API + +- `set(key, value, maxAge)` +- `get(key) => value` + + Both of these will update the "recently used"-ness of the key. + They do what you think. `maxAge` is optional and overrides the + cache `maxAge` option if provided. + + If the key is not found, `get()` will return `undefined`. + + The key and val can be any value. + +- `peek(key)` + + Returns the key value (or `undefined` if not found) without + updating the "recently used"-ness of the key. + + (If you find yourself using this a lot, you _might_ be using the + wrong sort of data structure, but there are some use cases where + it's handy.) + +- `del(key)` + + Deletes a key out of the cache. + +- `reset()` + + Clear the cache entirely, throwing away all values. + +- `has(key)` + + Check if a key is in the cache, without updating the recent-ness + or deleting it for being stale. + +- `forEach(function(value,key,cache), [thisp])` + + Just like `Array.prototype.forEach`. Iterates over all the keys + in the cache, in order of recent-ness. (Ie, more recently used + items are iterated over first.) + +- `rforEach(function(value,key,cache), [thisp])` + + The same as `cache.forEach(...)` but items are iterated over in + reverse order. (ie, less recently used items are iterated over + first.) + +- `keys()` + + Return an array of the keys in the cache. + +- `values()` + + Return an array of the values in the cache. + +- `length` + + Return total length of objects in cache taking into account + `length` options function. + +- `itemCount` + + Return total quantity of objects currently in cache. Note, that + `stale` (see options) items are returned as part of this item + count. + +- `dump()` + + Return an array of the cache entries ready for serialization and usage + with 'destinationCache.load(arr)`. + +- `load(cacheEntriesArray)` + + Loads another cache entries array, obtained with `sourceCache.dump()`, + into the cache. The destination cache is reset before loading new entries + +- `prune()` + + Manually iterates over the entire cache proactively pruning old entries diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/index.js new file mode 100644 index 0000000000..fbf57c4531 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/index.js @@ -0,0 +1,333 @@ +"use strict"; + +// A linked list to keep track of recently-used-ness +const Yallist = require("yallist"); + +const MAX = Symbol("max"); +const LENGTH = Symbol("length"); +const LENGTH_CALCULATOR = Symbol("lengthCalculator"); +const ALLOW_STALE = Symbol("allowStale"); +const MAX_AGE = Symbol("maxAge"); +const DISPOSE = Symbol("dispose"); +const NO_DISPOSE_ON_SET = Symbol("noDisposeOnSet"); +const LRU_LIST = Symbol("lruList"); +const CACHE = Symbol("cache"); +const UPDATE_AGE_ON_GET = Symbol("updateAgeOnGet"); + +const naiveLength = () => 1; + +// lruList is a yallist where the head is the youngest +// item, and the tail is the oldest. the list contains the Hit +// objects as the entries. +// Each Hit object has a reference to its Yallist.Node. This +// never changes. +// +// cache is a Map (or PseudoMap) that matches the keys to +// the Yallist.Node object. +class LRUCache { + constructor(options) { + if (typeof options === "number") options = { max: options }; + + if (!options) options = {}; + + if (options.max && (typeof options.max !== "number" || options.max < 0)) + throw new TypeError("max must be a non-negative number"); + // Kind of weird to have a default max of Infinity, but oh well. + const max = (this[MAX] = options.max || Infinity); + + const lc = options.length || naiveLength; + this[LENGTH_CALCULATOR] = typeof lc !== "function" ? naiveLength : lc; + this[ALLOW_STALE] = options.stale || false; + if (options.maxAge && typeof options.maxAge !== "number") + throw new TypeError("maxAge must be a number"); + this[MAX_AGE] = options.maxAge || 0; + this[DISPOSE] = options.dispose; + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; + this.reset(); + } + + // resize the cache when the max changes. + set max(mL) { + if (typeof mL !== "number" || mL < 0) + throw new TypeError("max must be a non-negative number"); + + this[MAX] = mL || Infinity; + trim(this); + } + get max() { + return this[MAX]; + } + + set allowStale(allowStale) { + this[ALLOW_STALE] = !!allowStale; + } + get allowStale() { + return this[ALLOW_STALE]; + } + + set maxAge(mA) { + if (typeof mA !== "number") + throw new TypeError("maxAge must be a non-negative number"); + + this[MAX_AGE] = mA; + trim(this); + } + get maxAge() { + return this[MAX_AGE]; + } + + // resize the cache when the lengthCalculator changes. + set lengthCalculator(lC) { + if (typeof lC !== "function") lC = naiveLength; + + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC; + this[LENGTH] = 0; + this[LRU_LIST].forEach((hit) => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); + this[LENGTH] += hit.length; + }); + } + trim(this); + } + get lengthCalculator() { + return this[LENGTH_CALCULATOR]; + } + + get length() { + return this[LENGTH]; + } + get itemCount() { + return this[LRU_LIST].length; + } + + rforEach(fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].tail; walker !== null; ) { + const prev = walker.prev; + forEachStep(this, fn, walker, thisp); + walker = prev; + } + } + + forEach(fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].head; walker !== null; ) { + const next = walker.next; + forEachStep(this, fn, walker, thisp); + walker = next; + } + } + + keys() { + return this[LRU_LIST].toArray().map((k) => k.key); + } + + values() { + return this[LRU_LIST].toArray().map((k) => k.value); + } + + reset() { + if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { + this[LRU_LIST].forEach((hit) => this[DISPOSE](hit.key, hit.value)); + } + + this[CACHE] = new Map(); // hash of items by key + this[LRU_LIST] = new Yallist(); // list of items in order of use recency + this[LENGTH] = 0; // length of items in the list + } + + dump() { + return this[LRU_LIST].map((hit) => + isStale(this, hit) + ? false + : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + } + ) + .toArray() + .filter((h) => h); + } + + dumpLru() { + return this[LRU_LIST]; + } + + set(key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; + + if (maxAge && typeof maxAge !== "number") + throw new TypeError("maxAge must be a number"); + + const now = maxAge ? Date.now() : 0; + const len = this[LENGTH_CALCULATOR](value, key); + + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)); + return false; + } + + const node = this[CACHE].get(key); + const item = node.value; + + // dispose of the old one before overwriting + // split out into 2 ifs for better coverage tracking + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value); + } + + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true; + } + + const hit = new Entry(key, value, len, now, maxAge); + + // oversized objects fall out of cache automatically. + if (hit.length > this[MAX]) { + if (this[DISPOSE]) this[DISPOSE](key, value); + + return false; + } + + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); + trim(this); + return true; + } + + has(key) { + if (!this[CACHE].has(key)) return false; + const hit = this[CACHE].get(key).value; + return !isStale(this, hit); + } + + get(key) { + return get(this, key, true); + } + + peek(key) { + return get(this, key, false); + } + + pop() { + const node = this[LRU_LIST].tail; + if (!node) return null; + + del(this, node); + return node.value; + } + + del(key) { + del(this, this[CACHE].get(key)); + } + + load(arr) { + // reset the cache + this.reset(); + + const now = Date.now(); + // A previous serialized cache has the most recent items first + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l]; + const expiresAt = hit.e || 0; + if (expiresAt === 0) + // the item was created without expiration in a non aged cache + this.set(hit.k, hit.v); + else { + const maxAge = expiresAt - now; + // dont add already expired items + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge); + } + } + } + } + + prune() { + this[CACHE].forEach((value, key) => get(this, key, false)); + } +} + +const get = (self, key, doUse) => { + const node = self[CACHE].get(key); + if (node) { + const hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) return undefined; + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now(); + self[LRU_LIST].unshiftNode(node); + } + } + return hit.value; + } +}; + +const isStale = (self, hit) => { + if (!hit || (!hit.maxAge && !self[MAX_AGE])) return false; + + const diff = Date.now() - hit.now; + return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE]; +}; + +const trim = (self) => { + if (self[LENGTH] > self[MAX]) { + for ( + let walker = self[LRU_LIST].tail; + self[LENGTH] > self[MAX] && walker !== null; + + ) { + // We know that we're about to delete this one, and also + // what the next least recently used key will be, so just + // go ahead and set it now. + const prev = walker.prev; + del(self, walker); + walker = prev; + } + } +}; + +const del = (self, node) => { + if (node) { + const hit = node.value; + if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value); + + self[LENGTH] -= hit.length; + self[CACHE].delete(hit.key); + self[LRU_LIST].removeNode(node); + } +}; + +class Entry { + constructor(key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; + } +} + +const forEachStep = (self, fn, node, thisp) => { + let hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) hit = undefined; + } + if (hit) fn.call(thisp, hit.value, hit.key, self); +}; + +module.exports = LRUCache; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/package.json new file mode 100644 index 0000000000..43b7502c3e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/lru-cache/package.json @@ -0,0 +1,34 @@ +{ + "name": "lru-cache", + "description": "A cache object that deletes the least-recently-used items.", + "version": "6.0.0", + "author": "Isaac Z. Schlueter ", + "keywords": [ + "mru", + "lru", + "cache" + ], + "scripts": { + "test": "tap", + "snap": "tap", + "preversion": "npm test", + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags" + }, + "main": "index.js", + "repository": "git://github.com/isaacs/node-lru-cache.git", + "devDependencies": { + "benchmark": "^2.1.4", + "tap": "^14.10.7" + }, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "files": [ + "index.js" + ], + "engines": { + "node": ">=10" + } +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/index.d.ts b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/index.d.ts new file mode 100644 index 0000000000..e009f2949e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/index.d.ts @@ -0,0 +1,17 @@ +import { IncomingMessage } from "http"; + +/** +Mimic a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +Makes `toStream` include the properties from `fromStream`. + +@param fromStream - The stream to copy the properties from. +@param toStream - The stream to copy the properties to. +@return The same object as `toStream`. +*/ +declare function mimicResponse( + fromStream: IncomingMessage, + toStream: T +): IncomingMessage & T; + +export = mimicResponse; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/index.js new file mode 100644 index 0000000000..28c8fddfd3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/index.js @@ -0,0 +1,43 @@ +"use strict"; + +// We define these manually to ensure they're always copied +// even if they would move up the prototype chain +// https://nodejs.org/api/http.html#http_class_http_incomingmessage +const knownProperties = [ + "aborted", + "complete", + "destroy", + "headers", + "httpVersion", + "httpVersionMinor", + "httpVersionMajor", + "method", + "rawHeaders", + "rawTrailers", + "setTimeout", + "socket", + "statusCode", + "statusMessage", + "trailers", + "url" +]; + +module.exports = (fromStream, toStream) => { + const fromProperties = new Set( + Object.keys(fromStream).concat(knownProperties) + ); + + for (const property of fromProperties) { + // Don't overwrite existing properties. + if (property in toStream) { + continue; + } + + toStream[property] = + typeof fromStream[property] === "function" + ? fromStream[property].bind(fromStream) + : fromStream[property]; + } + + return toStream; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/license b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/license new file mode 100644 index 0000000000..fa7ceba3eb --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +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/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/package.json new file mode 100644 index 0000000000..4d63dee191 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/package.json @@ -0,0 +1,74 @@ +{ + "_from": "mimic-response@^2.0.0", + "_id": "mimic-response@2.1.0", + "_inBundle": false, + "_integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "_location": "/mimic-response", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "mimic-response@^2.0.0", + "name": "mimic-response", + "escapedName": "mimic-response", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/decompress-response" + ], + "_resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "_shasum": "d13763d35f613d09ec37ebb30bac0469c0ee8f43", + "_spec": "mimic-response@^2.0.0", + "_where": "/var/task/node_modules/decompress-response", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/mimic-response/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Mimic a Node.js HTTP response stream", + "devDependencies": { + "@sindresorhus/tsconfig": "^0.3.0", + "@types/node": "^12.0.0", + "ava": "^1.1.0", + "create-test-server": "^2.4.0", + "pify": "^4.0.1", + "tsd": "^0.7.3", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.d.ts", + "index.js" + ], + "funding": "https://github.com/sponsors/sindresorhus", + "homepage": "https://github.com/sindresorhus/mimic-response#readme", + "keywords": [ + "mimic", + "response", + "stream", + "http", + "https", + "request", + "get", + "core" + ], + "license": "MIT", + "name": "mimic-response", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/mimic-response.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/readme.md b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/readme.md new file mode 100644 index 0000000000..ee5d15e96d --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mimic-response/readme.md @@ -0,0 +1,57 @@ +# mimic-response [![Build Status](https://travis-ci.org/sindresorhus/mimic-response.svg?branch=master)](https://travis-ci.org/sindresorhus/mimic-response) + +> Mimic a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +## Install + +``` +$ npm install mimic-response +``` + +## Usage + +```js +const stream = require("stream"); +const mimicResponse = require("mimic-response"); + +const responseStream = getHttpResponseStream(); +const myStream = new stream.PassThrough(); + +mimicResponse(responseStream, myStream); + +console.log(myStream.statusCode); +//=> 200 +``` + +## API + +### mimicResponse(from, to) + +#### from + +Type: `Stream` + +[Node.js HTTP response stream.](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +#### to + +Type: `Stream` + +Any stream. + +## Related + +- [mimic-fn](https://github.com/sindresorhus/mimic-fn) - Make a function mimic another one +- [clone-response](https://github.com/lukechilds/clone-response) - Clone a Node.js response stream + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/.travis.yml b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/.travis.yml new file mode 100644 index 0000000000..74c57bf15e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - "0.8" + - "0.10" + - "0.12" + - "iojs" +before_install: + - npm install -g npm@~1.4.6 diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/LICENSE new file mode 100644 index 0000000000..ee27ba4b44 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +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/packages/libs/lambda-at-edge/sharp_node_modules/minimist/example/parse.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/example/parse.js new file mode 100644 index 0000000000..721c99a9b5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/example/parse.js @@ -0,0 +1,2 @@ +var argv = require("../")(process.argv.slice(2)); +console.log(argv); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/index.js new file mode 100644 index 0000000000..9e27c12dc2 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/index.js @@ -0,0 +1,260 @@ +module.exports = function (args, opts) { + if (!opts) opts = {}; + + var flags = { bools: {}, strings: {}, unknownFn: null }; + + if (typeof opts["unknown"] === "function") { + flags.unknownFn = opts["unknown"]; + } + + if (typeof opts["boolean"] === "boolean" && opts["boolean"]) { + flags.allBools = true; + } else { + [] + .concat(opts["boolean"]) + .filter(Boolean) + .forEach(function (key) { + flags.bools[key] = true; + }); + } + + var aliases = {}; + Object.keys(opts.alias || {}).forEach(function (key) { + aliases[key] = [].concat(opts.alias[key]); + aliases[key].forEach(function (x) { + aliases[x] = [key].concat( + aliases[key].filter(function (y) { + return x !== y; + }) + ); + }); + }); + + [] + .concat(opts.string) + .filter(Boolean) + .forEach(function (key) { + flags.strings[key] = true; + if (aliases[key]) { + flags.strings[aliases[key]] = true; + } + }); + + var defaults = opts["default"] || {}; + + var argv = { _: [] }; + Object.keys(flags.bools).forEach(function (key) { + setArg(key, defaults[key] === undefined ? false : defaults[key]); + }); + + var notFlags = []; + + if (args.indexOf("--") !== -1) { + notFlags = args.slice(args.indexOf("--") + 1); + args = args.slice(0, args.indexOf("--")); + } + + function argDefined(key, arg) { + return ( + (flags.allBools && /^--[^=]+$/.test(arg)) || + flags.strings[key] || + flags.bools[key] || + aliases[key] + ); + } + + function setArg(key, val, arg) { + if (arg && flags.unknownFn && !argDefined(key, arg)) { + if (flags.unknownFn(arg) === false) return; + } + + var value = !flags.strings[key] && isNumber(val) ? Number(val) : val; + setKey(argv, key.split("."), value); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split("."), value); + }); + } + + function setKey(obj, keys, value) { + var o = obj; + for (var i = 0; i < keys.length - 1; i++) { + var key = keys[i]; + if (key === "__proto__") return; + if (o[key] === undefined) o[key] = {}; + if ( + o[key] === Object.prototype || + o[key] === Number.prototype || + o[key] === String.prototype + ) + o[key] = {}; + if (o[key] === Array.prototype) o[key] = []; + o = o[key]; + } + + var key = keys[keys.length - 1]; + if (key === "__proto__") return; + if ( + o === Object.prototype || + o === Number.prototype || + o === String.prototype + ) + o = {}; + if (o === Array.prototype) o = []; + if ( + o[key] === undefined || + flags.bools[key] || + typeof o[key] === "boolean" + ) { + o[key] = value; + } else if (Array.isArray(o[key])) { + o[key].push(value); + } else { + o[key] = [o[key], value]; + } + } + + function aliasIsBoolean(key) { + return aliases[key].some(function (x) { + return flags.bools[x]; + }); + } + + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + + if (/^--.+=/.test(arg)) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + var key = m[1]; + var value = m[2]; + if (flags.bools[key]) { + value = value !== "false"; + } + setArg(key, value, arg); + } else if (/^--no-.+/.test(arg)) { + var key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false, arg); + } else if (/^--.+/.test(arg)) { + var key = arg.match(/^--(.+)/)[1]; + var next = args[i + 1]; + if ( + next !== undefined && + !/^-/.test(next) && + !flags.bools[key] && + !flags.allBools && + (aliases[key] ? !aliasIsBoolean(key) : true) + ) { + setArg(key, next, arg); + i++; + } else if (/^(true|false)$/.test(next)) { + setArg(key, next === "true", arg); + i++; + } else { + setArg(key, flags.strings[key] ? "" : true, arg); + } + } else if (/^-[^-]+/.test(arg)) { + var letters = arg.slice(1, -1).split(""); + + var broken = false; + for (var j = 0; j < letters.length; j++) { + var next = arg.slice(j + 2); + + if (next === "-") { + setArg(letters[j], next, arg); + continue; + } + + if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { + setArg(letters[j], next.split("=")[1], arg); + broken = true; + break; + } + + if ( + /[A-Za-z]/.test(letters[j]) && + /-?\d+(\.\d*)?(e-?\d+)?$/.test(next) + ) { + setArg(letters[j], next, arg); + broken = true; + break; + } + + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], arg.slice(j + 2), arg); + broken = true; + break; + } else { + setArg(letters[j], flags.strings[letters[j]] ? "" : true, arg); + } + } + + var key = arg.slice(-1)[0]; + if (!broken && key !== "-") { + if ( + args[i + 1] && + !/^(-|--)[^-]/.test(args[i + 1]) && + !flags.bools[key] && + (aliases[key] ? !aliasIsBoolean(key) : true) + ) { + setArg(key, args[i + 1], arg); + i++; + } else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) { + setArg(key, args[i + 1] === "true", arg); + i++; + } else { + setArg(key, flags.strings[key] ? "" : true, arg); + } + } + } else { + if (!flags.unknownFn || flags.unknownFn(arg) !== false) { + argv._.push(flags.strings["_"] || !isNumber(arg) ? arg : Number(arg)); + } + if (opts.stopEarly) { + argv._.push.apply(argv._, args.slice(i + 1)); + break; + } + } + } + + Object.keys(defaults).forEach(function (key) { + if (!hasKey(argv, key.split("."))) { + setKey(argv, key.split("."), defaults[key]); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split("."), defaults[key]); + }); + } + }); + + if (opts["--"]) { + argv["--"] = new Array(); + notFlags.forEach(function (key) { + argv["--"].push(key); + }); + } else { + notFlags.forEach(function (key) { + argv._.push(key); + }); + } + + return argv; +}; + +function hasKey(obj, keys) { + var o = obj; + keys.slice(0, -1).forEach(function (key) { + o = o[key] || {}; + }); + + var key = keys[keys.length - 1]; + return key in o; +} + +function isNumber(x) { + if (typeof x === "number") return true; + if (/^0x[0-9a-f]+$/i.test(x)) return true; + return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/package.json new file mode 100644 index 0000000000..4c696a18d0 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/package.json @@ -0,0 +1,74 @@ +{ + "_from": "minimist@^1.2.3", + "_id": "minimist@1.2.5", + "_inBundle": false, + "_integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "_location": "/minimist", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "minimist@^1.2.3", + "name": "minimist", + "escapedName": "minimist", + "rawSpec": "^1.2.3", + "saveSpec": null, + "fetchSpec": "^1.2.3" + }, + "_requiredBy": [ + "/prebuild-install", + "/rc" + ], + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "_shasum": "67d66014b66a6a8aaa0c083c5fd58df4e4e97602", + "_spec": "minimist@^1.2.3", + "_where": "/var/task/node_modules/prebuild-install", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/minimist/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "parse argument options", + "devDependencies": { + "covert": "^1.0.0", + "tap": "~0.4.0", + "tape": "^3.5.0" + }, + "homepage": "https://github.com/substack/minimist", + "keywords": [ + "argv", + "getopt", + "parser", + "optimist" + ], + "license": "MIT", + "main": "index.js", + "name": "minimist", + "repository": { + "type": "git", + "url": "git://github.com/substack/minimist.git" + }, + "scripts": { + "coverage": "covert test/*.js", + "test": "tap test/*.js" + }, + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/6..latest", + "ff/5", + "firefox/latest", + "chrome/10", + "chrome/latest", + "safari/5.1", + "safari/latest", + "opera/12" + ] + }, + "version": "1.2.5" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/readme.markdown b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/readme.markdown new file mode 100644 index 0000000000..5fd97ab11e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/readme.markdown @@ -0,0 +1,95 @@ +# minimist + +parse argument options + +This module is the guts of optimist's argument parser without all the +fanciful decoration. + +# example + +``` js +var argv = require('minimist')(process.argv.slice(2)); +console.log(argv); +``` + +``` +$ node example/parse.js -a beep -b boop +{ _: [], a: 'beep', b: 'boop' } +``` + +``` +$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz +{ _: [ 'foo', 'bar', 'baz' ], + x: 3, + y: 4, + n: 5, + a: true, + b: true, + c: true, + beep: 'boop' } +``` + +# security + +Previous versions had a prototype pollution bug that could cause privilege +escalation in some circumstances when handling untrusted user input. + +Please use version 1.2.3 or later: https://snyk.io/vuln/SNYK-JS-MINIMIST-559764 + +# methods + +``` js +var parseArgs = require('minimist') +``` + +## var argv = parseArgs(args, opts={}) + +Return an argument object `argv` populated with the array arguments from `args`. + +`argv._` contains all the arguments that didn't have an option associated with +them. + +Numeric-looking arguments will be returned as numbers unless `opts.string` or +`opts.boolean` is set for that argument name. + +Any arguments after `'--'` will not be parsed and will end up in `argv._`. + +options can be: + +* `opts.string` - a string or array of strings argument names to always treat as +strings +* `opts.boolean` - a boolean, string or array of strings to always treat as +booleans. if `true` will treat all double hyphenated arguments without equal signs +as boolean (e.g. affects `--foo`, not `-f` or `--foo=bar`) +* `opts.alias` - an object mapping string names to strings or arrays of string +argument names to use as aliases +* `opts.default` - an object mapping string argument names to default values +* `opts.stopEarly` - when true, populate `argv._` with everything after the +first non-option +* `opts['--']` - when true, populate `argv._` with everything before the `--` +and `argv['--']` with everything after the `--`. Here's an example: + + ``` + > require('./')('one two three -- four five --six'.split(' '), { '--': true }) + { _: [ 'one', 'two', 'three' ], + '--': [ 'four', 'five', '--six' ] } + ``` + + Note that with `opts['--']` set, parsing for arguments still stops after the + `--`. + +* `opts.unknown` - a function which is invoked with a command line parameter not +defined in the `opts` configuration object. If the function returns `false`, the +unknown option is not added to `argv`. + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install minimist +``` + +# license + +MIT diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/all_bool.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/all_bool.js new file mode 100644 index 0000000000..276e6619ed --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/all_bool.js @@ -0,0 +1,32 @@ +var parse = require("../"); +var test = require("tape"); + +test("flag boolean true (default all --args to boolean)", function (t) { + var argv = parse(["moo", "--honk", "cow"], { + boolean: true + }); + + t.deepEqual(argv, { + honk: true, + _: ["moo", "cow"] + }); + + t.deepEqual(typeof argv.honk, "boolean"); + t.end(); +}); + +test("flag boolean true only affects double hyphen arguments without equals signs", function (t) { + var argv = parse(["moo", "--honk", "cow", "-p", "55", "--tacos=good"], { + boolean: true + }); + + t.deepEqual(argv, { + honk: true, + tacos: "good", + p: 55, + _: ["moo", "cow"] + }); + + t.deepEqual(typeof argv.honk, "boolean"); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/bool.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/bool.js new file mode 100644 index 0000000000..af5d5d1ce5 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/bool.js @@ -0,0 +1,177 @@ +var parse = require("../"); +var test = require("tape"); + +test("flag boolean default false", function (t) { + var argv = parse(["moo"], { + boolean: ["t", "verbose"], + default: { verbose: false, t: false } + }); + + t.deepEqual(argv, { + verbose: false, + t: false, + _: ["moo"] + }); + + t.deepEqual(typeof argv.verbose, "boolean"); + t.deepEqual(typeof argv.t, "boolean"); + t.end(); +}); + +test("boolean groups", function (t) { + var argv = parse(["-x", "-z", "one", "two", "three"], { + boolean: ["x", "y", "z"] + }); + + t.deepEqual(argv, { + x: true, + y: false, + z: true, + _: ["one", "two", "three"] + }); + + t.deepEqual(typeof argv.x, "boolean"); + t.deepEqual(typeof argv.y, "boolean"); + t.deepEqual(typeof argv.z, "boolean"); + t.end(); +}); +test("boolean and alias with chainable api", function (t) { + var aliased = ["-h", "derp"]; + var regular = ["--herp", "derp"]; + var opts = { + herp: { alias: "h", boolean: true } + }; + var aliasedArgv = parse(aliased, { + boolean: "herp", + alias: { h: "herp" } + }); + var propertyArgv = parse(regular, { + boolean: "herp", + alias: { h: "herp" } + }); + var expected = { + herp: true, + h: true, + _: ["derp"] + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +test("boolean and alias with options hash", function (t) { + var aliased = ["-h", "derp"]; + var regular = ["--herp", "derp"]; + var opts = { + alias: { h: "herp" }, + boolean: "herp" + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + _: ["derp"] + }; + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +test("boolean and alias array with options hash", function (t) { + var aliased = ["-h", "derp"]; + var regular = ["--herp", "derp"]; + var alt = ["--harp", "derp"]; + var opts = { + alias: { h: ["herp", "harp"] }, + boolean: "h" + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var altPropertyArgv = parse(alt, opts); + var expected = { + harp: true, + herp: true, + h: true, + _: ["derp"] + }; + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.same(altPropertyArgv, expected); + t.end(); +}); + +test("boolean and alias using explicit true", function (t) { + var aliased = ["-h", "true"]; + var regular = ["--herp", "true"]; + var opts = { + alias: { h: "herp" }, + boolean: "h" + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + _: [] + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +// regression, see https://github.com/substack/node-optimist/issues/71 +test("boolean and --x=true", function (t) { + var parsed = parse(["--boool", "--other=true"], { + boolean: "boool" + }); + + t.same(parsed.boool, true); + t.same(parsed.other, "true"); + + parsed = parse(["--boool", "--other=false"], { + boolean: "boool" + }); + + t.same(parsed.boool, true); + t.same(parsed.other, "false"); + t.end(); +}); + +test("boolean --boool=true", function (t) { + var parsed = parse(["--boool=true"], { + default: { + boool: false + }, + boolean: ["boool"] + }); + + t.same(parsed.boool, true); + t.end(); +}); + +test("boolean --boool=false", function (t) { + var parsed = parse(["--boool=false"], { + default: { + boool: true + }, + boolean: ["boool"] + }); + + t.same(parsed.boool, false); + t.end(); +}); + +test("boolean using something similar to true", function (t) { + var opts = { boolean: "h" }; + var result = parse(["-h", "true.txt"], opts); + var expected = { + h: true, + _: ["true.txt"] + }; + + t.same(result, expected); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/dash.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/dash.js new file mode 100644 index 0000000000..f8a7cbf15e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/dash.js @@ -0,0 +1,26 @@ +var parse = require("../"); +var test = require("tape"); + +test("-", function (t) { + t.plan(5); + t.deepEqual(parse(["-n", "-"]), { n: "-", _: [] }); + t.deepEqual(parse(["-"]), { _: ["-"] }); + t.deepEqual(parse(["-f-"]), { f: "-", _: [] }); + t.deepEqual(parse(["-b", "-"], { boolean: "b" }), { b: true, _: ["-"] }); + t.deepEqual(parse(["-s", "-"], { string: "s" }), { s: "-", _: [] }); +}); + +test("-a -- b", function (t) { + t.plan(3); + t.deepEqual(parse(["-a", "--", "b"]), { a: true, _: ["b"] }); + t.deepEqual(parse(["--a", "--", "b"]), { a: true, _: ["b"] }); + t.deepEqual(parse(["--a", "--", "b"]), { a: true, _: ["b"] }); +}); + +test("move arguments after the -- into their own `--` array", function (t) { + t.plan(1); + t.deepEqual( + parse(["--name", "John", "before", "--", "after"], { "--": true }), + { name: "John", _: ["before"], "--": ["after"] } + ); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/default_bool.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/default_bool.js new file mode 100644 index 0000000000..8b251f3db2 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/default_bool.js @@ -0,0 +1,34 @@ +var test = require("tape"); +var parse = require("../"); + +test("boolean default true", function (t) { + var argv = parse([], { + boolean: "sometrue", + default: { sometrue: true } + }); + t.equal(argv.sometrue, true); + t.end(); +}); + +test("boolean default false", function (t) { + var argv = parse([], { + boolean: "somefalse", + default: { somefalse: false } + }); + t.equal(argv.somefalse, false); + t.end(); +}); + +test("boolean default to null", function (t) { + var argv = parse([], { + boolean: "maybe", + default: { maybe: null } + }); + t.equal(argv.maybe, null); + var argv = parse(["--maybe"], { + boolean: "maybe", + default: { maybe: null } + }); + t.equal(argv.maybe, true); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/dotted.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/dotted.js new file mode 100644 index 0000000000..4f8a3b0619 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/dotted.js @@ -0,0 +1,25 @@ +var parse = require("../"); +var test = require("tape"); + +test("dotted alias", function (t) { + var argv = parse(["--a.b", "22"], { + default: { "a.b": 11 }, + alias: { "a.b": "aa.bb" } + }); + t.equal(argv.a.b, 22); + t.equal(argv.aa.bb, 22); + t.end(); +}); + +test("dotted default", function (t) { + var argv = parse("", { default: { "a.b": 11 }, alias: { "a.b": "aa.bb" } }); + t.equal(argv.a.b, 11); + t.equal(argv.aa.bb, 11); + t.end(); +}); + +test("dotted default with no alias", function (t) { + var argv = parse("", { default: { "a.b": 11 } }); + t.equal(argv.a.b, 11); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/kv_short.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/kv_short.js new file mode 100644 index 0000000000..9b91f9033c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/kv_short.js @@ -0,0 +1,16 @@ +var parse = require("../"); +var test = require("tape"); + +test("short -k=v", function (t) { + t.plan(1); + + var argv = parse(["-b=123"]); + t.deepEqual(argv, { b: 123, _: [] }); +}); + +test("multi short -k=v", function (t) { + t.plan(1); + + var argv = parse(["-a=whatever", "-b=robots"]); + t.deepEqual(argv, { a: "whatever", b: "robots", _: [] }); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/long.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/long.js new file mode 100644 index 0000000000..ee6ffa6c1e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/long.js @@ -0,0 +1,27 @@ +var test = require("tape"); +var parse = require("../"); + +test("long opts", function (t) { + t.deepEqual(parse(["--bool"]), { bool: true, _: [] }, "long boolean"); + t.deepEqual( + parse(["--pow", "xixxle"]), + { pow: "xixxle", _: [] }, + "long capture sp" + ); + t.deepEqual( + parse(["--pow=xixxle"]), + { pow: "xixxle", _: [] }, + "long capture eq" + ); + t.deepEqual( + parse(["--host", "localhost", "--port", "555"]), + { host: "localhost", port: 555, _: [] }, + "long captures sp" + ); + t.deepEqual( + parse(["--host=localhost", "--port=555"]), + { host: "localhost", port: 555, _: [] }, + "long captures eq" + ); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/num.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/num.js new file mode 100644 index 0000000000..16b165bcb0 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/num.js @@ -0,0 +1,41 @@ +var parse = require("../"); +var test = require("tape"); + +test("nums", function (t) { + var argv = parse([ + "-x", + "1234", + "-y", + "5.67", + "-z", + "1e7", + "-w", + "10f", + "--hex", + "0xdeadbeef", + "789" + ]); + t.deepEqual(argv, { + x: 1234, + y: 5.67, + z: 1e7, + w: "10f", + hex: 0xdeadbeef, + _: [789] + }); + t.deepEqual(typeof argv.x, "number"); + t.deepEqual(typeof argv.y, "number"); + t.deepEqual(typeof argv.z, "number"); + t.deepEqual(typeof argv.w, "string"); + t.deepEqual(typeof argv.hex, "number"); + t.deepEqual(typeof argv._[0], "number"); + t.end(); +}); + +test("already a number", function (t) { + var argv = parse(["-x", 1234, 789]); + t.deepEqual(argv, { x: 1234, _: [789] }); + t.deepEqual(typeof argv.x, "number"); + t.deepEqual(typeof argv._[0], "number"); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/parse.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/parse.js new file mode 100644 index 0000000000..fd1dcb1d20 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/parse.js @@ -0,0 +1,207 @@ +var parse = require("../"); +var test = require("tape"); + +test("parse args", function (t) { + t.deepEqual(parse(["--no-moo"]), { moo: false, _: [] }, "no"); + t.deepEqual( + parse(["-v", "a", "-v", "b", "-v", "c"]), + { v: ["a", "b", "c"], _: [] }, + "multi" + ); + t.end(); +}); + +test("comprehensive", function (t) { + t.deepEqual( + parse([ + "--name=meowmers", + "bare", + "-cats", + "woo", + "-h", + "awesome", + "--multi=quux", + "--key", + "value", + "-b", + "--bool", + "--no-meep", + "--multi=baz", + "--", + "--not-a-flag", + "eek" + ]), + { + c: true, + a: true, + t: true, + s: "woo", + h: "awesome", + b: true, + bool: true, + key: "value", + multi: ["quux", "baz"], + meep: false, + name: "meowmers", + _: ["bare", "--not-a-flag", "eek"] + } + ); + t.end(); +}); + +test("flag boolean", function (t) { + var argv = parse(["-t", "moo"], { boolean: "t" }); + t.deepEqual(argv, { t: true, _: ["moo"] }); + t.deepEqual(typeof argv.t, "boolean"); + t.end(); +}); + +test("flag boolean value", function (t) { + var argv = parse(["--verbose", "false", "moo", "-t", "true"], { + boolean: ["t", "verbose"], + default: { verbose: true } + }); + + t.deepEqual(argv, { + verbose: false, + t: true, + _: ["moo"] + }); + + t.deepEqual(typeof argv.verbose, "boolean"); + t.deepEqual(typeof argv.t, "boolean"); + t.end(); +}); + +test("newlines in params", function (t) { + var args = parse(["-s", "X\nX"]); + t.deepEqual(args, { _: [], s: "X\nX" }); + + // reproduce in bash: + // VALUE="new + // line" + // node program.js --s="$VALUE" + args = parse(["--s=X\nX"]); + t.deepEqual(args, { _: [], s: "X\nX" }); + t.end(); +}); + +test("strings", function (t) { + var s = parse(["-s", "0001234"], { string: "s" }).s; + t.equal(s, "0001234"); + t.equal(typeof s, "string"); + + var x = parse(["-x", "56"], { string: "x" }).x; + t.equal(x, "56"); + t.equal(typeof x, "string"); + t.end(); +}); + +test("stringArgs", function (t) { + var s = parse([" ", " "], { string: "_" })._; + t.same(s.length, 2); + t.same(typeof s[0], "string"); + t.same(s[0], " "); + t.same(typeof s[1], "string"); + t.same(s[1], " "); + t.end(); +}); + +test("empty strings", function (t) { + var s = parse(["-s"], { string: "s" }).s; + t.equal(s, ""); + t.equal(typeof s, "string"); + + var str = parse(["--str"], { string: "str" }).str; + t.equal(str, ""); + t.equal(typeof str, "string"); + + var letters = parse(["-art"], { + string: ["a", "t"] + }); + + t.equal(letters.a, ""); + t.equal(letters.r, true); + t.equal(letters.t, ""); + + t.end(); +}); + +test("string and alias", function (t) { + var x = parse(["--str", "000123"], { + string: "s", + alias: { s: "str" } + }); + + t.equal(x.str, "000123"); + t.equal(typeof x.str, "string"); + t.equal(x.s, "000123"); + t.equal(typeof x.s, "string"); + + var y = parse(["-s", "000123"], { + string: "str", + alias: { str: "s" } + }); + + t.equal(y.str, "000123"); + t.equal(typeof y.str, "string"); + t.equal(y.s, "000123"); + t.equal(typeof y.s, "string"); + t.end(); +}); + +test("slashBreak", function (t) { + t.same(parse(["-I/foo/bar/baz"]), { I: "/foo/bar/baz", _: [] }); + t.same(parse(["-xyz/foo/bar/baz"]), { + x: true, + y: true, + z: "/foo/bar/baz", + _: [] + }); + t.end(); +}); + +test("alias", function (t) { + var argv = parse(["-f", "11", "--zoom", "55"], { + alias: { z: "zoom" } + }); + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.f, 11); + t.end(); +}); + +test("multiAlias", function (t) { + var argv = parse(["-f", "11", "--zoom", "55"], { + alias: { z: ["zm", "zoom"] } + }); + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.z, argv.zm); + t.equal(argv.f, 11); + t.end(); +}); + +test("nested dotted objects", function (t) { + var argv = parse([ + "--foo.bar", + "3", + "--foo.baz", + "4", + "--foo.quux.quibble", + "5", + "--foo.quux.o_O", + "--beep.boop" + ]); + + t.same(argv.foo, { + bar: 3, + baz: 4, + quux: { + quibble: 5, + o_O: true + } + }); + t.same(argv.beep, { boop: true }); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/parse_modified.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/parse_modified.js new file mode 100644 index 0000000000..0166f311f7 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/parse_modified.js @@ -0,0 +1,9 @@ +var parse = require("../"); +var test = require("tape"); + +test("parse with modifier functions", function (t) { + t.plan(1); + + var argv = parse(["-b", "123"], { boolean: "b" }); + t.deepEqual(argv, { b: true, _: [123] }); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/proto.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/proto.js new file mode 100644 index 0000000000..165fee840d --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/proto.js @@ -0,0 +1,44 @@ +var parse = require("../"); +var test = require("tape"); + +test("proto pollution", function (t) { + var argv = parse(["--__proto__.x", "123"]); + t.equal({}.x, undefined); + t.equal(argv.__proto__.x, undefined); + t.equal(argv.x, undefined); + t.end(); +}); + +test("proto pollution (array)", function (t) { + var argv = parse(["--x", "4", "--x", "5", "--x.__proto__.z", "789"]); + t.equal({}.z, undefined); + t.deepEqual(argv.x, [4, 5]); + t.equal(argv.x.z, undefined); + t.equal(argv.x.__proto__.z, undefined); + t.end(); +}); + +test("proto pollution (number)", function (t) { + var argv = parse(["--x", "5", "--x.__proto__.z", "100"]); + t.equal({}.z, undefined); + t.equal((4).z, undefined); + t.equal(argv.x, 5); + t.equal(argv.x.z, undefined); + t.end(); +}); + +test("proto pollution (string)", function (t) { + var argv = parse(["--x", "abc", "--x.__proto__.z", "def"]); + t.equal({}.z, undefined); + t.equal("...".z, undefined); + t.equal(argv.x, "abc"); + t.equal(argv.x.z, undefined); + t.end(); +}); + +test("proto pollution (constructor)", function (t) { + var argv = parse(["--constructor.prototype.y", "123"]); + t.equal({}.y, undefined); + t.equal(argv.y, undefined); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/short.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/short.js new file mode 100644 index 0000000000..bbe89c7709 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/short.js @@ -0,0 +1,58 @@ +var parse = require("../"); +var test = require("tape"); + +test("numeric short args", function (t) { + t.plan(2); + t.deepEqual(parse(["-n123"]), { n: 123, _: [] }); + t.deepEqual(parse(["-123", "456"]), { 1: true, 2: true, 3: 456, _: [] }); +}); + +test("short", function (t) { + t.deepEqual(parse(["-b"]), { b: true, _: [] }, "short boolean"); + t.deepEqual( + parse(["foo", "bar", "baz"]), + { _: ["foo", "bar", "baz"] }, + "bare" + ); + t.deepEqual( + parse(["-cats"]), + { c: true, a: true, t: true, s: true, _: [] }, + "group" + ); + t.deepEqual( + parse(["-cats", "meow"]), + { c: true, a: true, t: true, s: "meow", _: [] }, + "short group next" + ); + t.deepEqual( + parse(["-h", "localhost"]), + { h: "localhost", _: [] }, + "short capture" + ); + t.deepEqual( + parse(["-h", "localhost", "-p", "555"]), + { h: "localhost", p: 555, _: [] }, + "short captures" + ); + t.end(); +}); + +test("mixed short bool and capture", function (t) { + t.same(parse(["-h", "localhost", "-fp", "555", "script.js"]), { + f: true, + p: 555, + h: "localhost", + _: ["script.js"] + }); + t.end(); +}); + +test("short and long", function (t) { + t.deepEqual(parse(["-h", "localhost", "-fp", "555", "script.js"]), { + f: true, + p: 555, + h: "localhost", + _: ["script.js"] + }); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/stop_early.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/stop_early.js new file mode 100644 index 0000000000..9b983e6c52 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/stop_early.js @@ -0,0 +1,15 @@ +var parse = require("../"); +var test = require("tape"); + +test("stops parsing on the first non-option when stopEarly is set", function (t) { + var argv = parse(["--aaa", "bbb", "ccc", "--ddd"], { + stopEarly: true + }); + + t.deepEqual(argv, { + aaa: "bbb", + _: ["ccc", "--ddd"] + }); + + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/unknown.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/unknown.js new file mode 100644 index 0000000000..8acb94fd13 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/unknown.js @@ -0,0 +1,102 @@ +var parse = require("../"); +var test = require("tape"); + +test("boolean and alias is not unknown", function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ["-h", "true", "--derp", "true"]; + var regular = ["--herp", "true", "-d", "true"]; + var opts = { + alias: { h: "herp" }, + boolean: "h", + unknown: unknownFn + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + + t.same(unknown, ["--derp", "-d"]); + t.end(); +}); + +test("flag boolean true any double hyphen argument is not unknown", function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var argv = parse(["--honk", "--tacos=good", "cow", "-p", "55"], { + boolean: true, + unknown: unknownFn + }); + t.same(unknown, ["--tacos=good", "cow", "-p"]); + t.same(argv, { + honk: true, + _: [] + }); + t.end(); +}); + +test("string and alias is not unknown", function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ["-h", "hello", "--derp", "goodbye"]; + var regular = ["--herp", "hello", "-d", "moon"]; + var opts = { + alias: { h: "herp" }, + string: "h", + unknown: unknownFn + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + + t.same(unknown, ["--derp", "-d"]); + t.end(); +}); + +test("default and alias is not unknown", function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ["-h", "hello"]; + var regular = ["--herp", "hello"]; + var opts = { + default: { h: "bar" }, + alias: { h: "herp" }, + unknown: unknownFn + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + + t.same(unknown, []); + t.end(); + unknownFn(); // exercise fn for 100% coverage +}); + +test("value following -- is not unknown", function (t) { + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ["--bad", "--", "good", "arg"]; + var opts = { + "--": true, + unknown: unknownFn + }; + var argv = parse(aliased, opts); + + t.same(unknown, ["--bad"]); + t.same(argv, { + "--": ["good", "arg"], + _: [] + }); + t.end(); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/whitespace.js b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/whitespace.js new file mode 100644 index 0000000000..0971bdf603 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/minimist/test/whitespace.js @@ -0,0 +1,8 @@ +var parse = require("../"); +var test = require("tape"); + +test("whitespace should be whitespace", function (t) { + t.plan(1); + var x = parse(["-x", "\t"]).x; + t.equal(x, "\t"); +}); diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/LICENSE new file mode 100644 index 0000000000..f6b3a0d12f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2020 James Halliday (mail@substack.net) and Mathias Buus + +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/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/README.md new file mode 100644 index 0000000000..184065b04f --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/README.md @@ -0,0 +1,18 @@ +# mkdirp-classic + +Just a non-deprecated mirror of [mkdirp 0.5.2](https://github.com/substack/node-mkdirp/tree/0.5.1) +for use in modules where we depend on the non promise interface. + +``` +npm install mkdirp-classic +``` + +## Usage + +```js +// See the above link +``` + +## License + +MIT diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/index.js new file mode 100644 index 0000000000..5c74790746 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/index.js @@ -0,0 +1,95 @@ +var path = require("path"); +var fs = require("fs"); +var _0777 = parseInt("0777", 8); + +module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; + +function mkdirP(p, opts, f, made) { + if (typeof opts === "function") { + f = opts; + opts = {}; + } else if (!opts || typeof opts !== "object") { + opts = { mode: opts }; + } + + var mode = opts.mode; + var xfs = opts.fs || fs; + + if (mode === undefined) { + mode = _0777 & ~process.umask(); + } + if (!made) made = null; + + var cb = f || function () {}; + p = path.resolve(p); + + xfs.mkdir(p, mode, function (er) { + if (!er) { + made = made || p; + return cb(null, made); + } + switch (er.code) { + case "ENOENT": + mkdirP(path.dirname(p), opts, function (er, made) { + if (er) cb(er, made); + else mkdirP(p, opts, cb, made); + }); + break; + + // In the case of any other error, just see if there's a dir + // there already. If so, then hooray! If not, then something + // is borked. + default: + xfs.stat(p, function (er2, stat) { + // if the stat fails, then that's super weird. + // let the original error be the failure reason. + if (er2 || !stat.isDirectory()) cb(er, made); + else cb(null, made); + }); + break; + } + }); +} + +mkdirP.sync = function sync(p, opts, made) { + if (!opts || typeof opts !== "object") { + opts = { mode: opts }; + } + + var mode = opts.mode; + var xfs = opts.fs || fs; + + if (mode === undefined) { + mode = _0777 & ~process.umask(); + } + if (!made) made = null; + + p = path.resolve(p); + + try { + xfs.mkdirSync(p, mode); + made = made || p; + } catch (err0) { + switch (err0.code) { + case "ENOENT": + made = sync(path.dirname(p), opts, made); + sync(p, opts, made); + break; + + // In the case of any other error, just see if there's a dir + // there already. If so, then hooray! If not, then something + // is borked. + default: + var stat; + try { + stat = xfs.statSync(p); + } catch (err1) { + throw err0; + } + if (!stat.isDirectory()) throw err0; + break; + } + } + + return made; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/package.json new file mode 100644 index 0000000000..a25af0e8d8 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/mkdirp-classic/package.json @@ -0,0 +1,47 @@ +{ + "_from": "mkdirp-classic@^0.5.3", + "_id": "mkdirp-classic@0.5.3", + "_inBundle": false, + "_integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "_location": "/mkdirp-classic", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "mkdirp-classic@^0.5.3", + "name": "mkdirp-classic", + "escapedName": "mkdirp-classic", + "rawSpec": "^0.5.3", + "saveSpec": null, + "fetchSpec": "^0.5.3" + }, + "_requiredBy": [ + "/prebuild-install", + "/tar-fs" + ], + "_resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "_shasum": "fa10c9115cc6d8865be221ba47ee9bed78601113", + "_spec": "mkdirp-classic@^0.5.3", + "_where": "/var/task/node_modules/prebuild-install", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bugs": { + "url": "https://github.com/mafintosh/mkdirp-classic/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Mirror of mkdirp 0.5.2", + "devDependencies": {}, + "homepage": "https://github.com/mafintosh/mkdirp-classic", + "license": "MIT", + "main": "index.js", + "name": "mkdirp-classic", + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/mkdirp-classic.git" + }, + "version": "0.5.3" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/LICENSE b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/LICENSE new file mode 100644 index 0000000000..8e0248a4e3 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 inspiredware + +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/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/README.md b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/README.md new file mode 100644 index 0000000000..410b105f87 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/README.md @@ -0,0 +1,48 @@ +# napi-build-utils + +[![npm](https://img.shields.io/npm/v/napi-build-utils.svg)](https://www.npmjs.com/package/napi-build-utils) +![Node version](https://img.shields.io/node/v/prebuild.svg) +[![Build Status](https://travis-ci.org/inspiredware/napi-build-utils.svg?branch=master)](https://travis-ci.org/inspiredware/napi-build-utils) +[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +A set of utilities to assist developers of tools that build [N-API](https://nodejs.org/api/n-api.html#n_api_n_api) native add-ons. + +## Background + +This module is targeted to developers creating tools that build N-API native add-ons. + +It implements a set of functions that aid in determining the N-API version supported by the currently running Node instance and the set of N-API versions against which the N-API native add-on is designed to be built. Other functions determine whether a particular N-API version can be built and can issue console warnings for unsupported N-API versions. + +Unlike the modules this code is designed to facilitate building, this module is written entirely in JavaScript. + +## Quick start + +```bash +$ npm install napi-build-utils +``` + +The module exports a set of functions documented [here](./index.md). For example: + +```javascript +var napiBuildUtils = require("napi-build-utils"); +var napiVersion = napiBuildUtils.getNapiVersion(); // N-API version supported by Node, or undefined. +``` + +## Declaring supported N-API versions + +Native modules that are designed to work with [N-API](https://nodejs.org/api/n-api.html#n_api_n_api) must explicitly declare the N-API version(s) against which they are coded to build. This is accomplished by including a `binary.napi_versions` property in the module's `package.json` file. For example: + +```json +"binary": { + "napi_versions": [2,3] +} +``` + +In the absence of a need to compile against a specific N-API version, the value `3` is a good choice as this is the N-API version that was supported when N-API left experimental status. + +Modules that are built against a specific N-API version will continue to operate indefinitely, even as later versions of N-API are introduced. + +## Support + +If you run into problems or limitations, please file an issue and we'll take a look. Pull requests are also welcome. diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/index.js b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/index.js new file mode 100644 index 0000000000..978cbbda9b --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/index.js @@ -0,0 +1,231 @@ +"use strict"; +// Copyright (c) 2018 inspiredware + +var path = require("path"); +var pkg = require(path.resolve("package.json")); + +var versionArray = process.version + .substr(1) + .replace(/-.*$/, "") + .split(".") + .map(function (item) { + return +item; + }); + +/** + * + * A set of utilities to assist developers of tools that build + * [N-API](https://nodejs.org/api/n-api.html#n_api_n_api) native add-ons. + * + * The main repository can be found + * [here](https://github.com/inspiredware/napi-build-utils#napi-build-utils). + * + * @module napi-build-utils + */ + +/** + * Implements a consistent name of `napi` for N-API runtimes. + * + * @param {string} runtime The runtime string. + * @returns {boolean} + */ +exports.isNapiRuntime = function (runtime) { + return runtime === "napi"; +}; + +/** + * Determines whether the specified N-API version is supported + * by both the currently running Node instance and the package. + * + * @param {string} napiVersion The N-API version to check. + * @returns {boolean} + */ +exports.isSupportedVersion = function (napiVersion) { + var version = parseInt(napiVersion, 10); + return ( + version <= exports.getNapiVersion() && + exports.packageSupportsVersion(version) + ); +}; + +/** + * Determines whether the specified N-API version is supported by the package. + * The N-API version must be preseent in the `package.json` + * `binary.napi_versions` array. + * + * @param {number} napiVersion The N-API version to check. + * @returns {boolean} + * @private + */ +exports.packageSupportsVersion = function (napiVersion) { + if ( + pkg.binary && + pkg.binary.napi_versions && + pkg.binary.napi_versions instanceof Array + ) { + for (var i = 0; i < pkg.binary.napi_versions.length; i++) { + if (pkg.binary.napi_versions[i] === napiVersion) return true; + } + } + return false; +}; + +/** + * Issues a warning to the supplied log if the N-API version is not supported + * by the current Node instance or if the N-API version is not supported + * by the package. + * + * @param {string} napiVersion The N-API version to check. + * @param {Object} log The log object to which the warnings are to be issued. + * Must implement the `warn` method. + */ +exports.logUnsupportedVersion = function (napiVersion, log) { + if (!exports.isSupportedVersion(napiVersion)) { + if (exports.packageSupportsVersion(napiVersion)) { + log.warn( + "This Node instance does not support N-API version " + napiVersion + ); + } else { + log.warn("This package does not support N-API version " + napiVersion); + } + } +}; + +/** + * Issues warnings to the supplied log for those N-API versions not supported + * by the N-API runtime or the package. + * + * Note that this function is specific to the + * [`prebuild`](https://github.com/prebuild/prebuild#prebuild) package. + * + * `target` is the list of targets to be built and is determined in one of + * three ways from the command line arguments: + * (1) `--target` specifies a specific target to build. + * (2) `--all` specifies all N-API versions supported by the package. + * (3) Neither of these specifies to build the single "best version available." + * + * `prebuild` is an array of objects in the form `{runtime: 'napi', target: '2'}`. + * The array contains the list of N-API versions that are supported by both the + * package being built and the currently running Node instance. + * + * The objective of this function is to issue a warning for those items that appear + * in the `target` argument but not in the `prebuild` argument. + * If a specific target is supported by the package (`packageSupportsVersion`) but + * but note in `prebuild`, the assumption is that the target is not supported by + * Node. + * + * @param {(Array|string)} target The N-API version(s) to check. Target is + * @param {Array} prebuild A config object created by the `prebuild` package. + * @param {Object} log The log object to which the warnings are to be issued. + * Must implement the `warn` method. + * @private + */ +exports.logMissingNapiVersions = function (target, prebuild, log) { + if (exports.getNapiBuildVersions()) { + var targets = [].concat(target); + targets.forEach(function (napiVersion) { + if (!prebuildExists(prebuild, napiVersion)) { + if (exports.packageSupportsVersion(parseInt(napiVersion, 10))) { + log.warn( + "This Node instance does not support N-API version " + napiVersion + ); + } else { + log.warn( + "This package does not support N-API version " + napiVersion + ); + } + } + }); + } else { + log.error( + "Builds with runtime 'napi' require a binary.napi_versions " + + "property on the package.json file" + ); + } +}; + +/** + * Determines whether the specified N-API version exists in the prebuild + * configuration object. + * + * Note that this function is speicifc to the `prebuild` and `prebuild-install` + * packages. + * + * @param {Object} prebuild A config object created by the `prebuild` package. + * @param {string} napiVersion The N-APi version to be checked. + * @return {boolean} + * @private + */ +var prebuildExists = function (prebuild, napiVersion) { + if (prebuild) { + for (var i = 0; i < prebuild.length; i++) { + if (prebuild[i].target === napiVersion) return true; + } + } + return false; +}; + +/** + * Returns the best N-API version to build given the highest N-API + * version supported by the current Node instance and the N-API versions + * supported by the package, or undefined if a suitable N-API version + * cannot be determined. + * + * The best build version is the greatest N-API version supported by + * the package that is less than or equal to the highest N-API version + * supported by the current Node instance. + * + * @returns {number|undefined} + */ +exports.getBestNapiBuildVersion = function () { + var bestNapiBuildVersion = 0; + var napiBuildVersions = exports.getNapiBuildVersions(pkg); + if (napiBuildVersions) { + var ourNapiVersion = exports.getNapiVersion(); + napiBuildVersions.forEach(function (napiBuildVersion) { + if ( + napiBuildVersion > bestNapiBuildVersion && + napiBuildVersion <= ourNapiVersion + ) { + bestNapiBuildVersion = napiBuildVersion; + } + }); + } + return bestNapiBuildVersion === 0 ? undefined : bestNapiBuildVersion; +}; + +/** + * Returns an array of N-API versions supported by the package. + * + * @returns {Array} + */ +exports.getNapiBuildVersions = function () { + var napiBuildVersions = []; + // remove duplicates, convert to text + if (pkg.binary && pkg.binary.napi_versions) { + pkg.binary.napi_versions.forEach(function (napiVersion) { + var duplicated = napiBuildVersions.indexOf("" + napiVersion) !== -1; + if (!duplicated) { + napiBuildVersions.push("" + napiVersion); + } + }); + } + return napiBuildVersions.length ? napiBuildVersions : undefined; +}; + +/** + * Returns the highest N-API version supported by the current node instance + * or undefined if N-API is not supported. + * + * @returns {string|undefined} + */ +exports.getNapiVersion = function () { + var version = process.versions.napi; // string, can be undefined + if (!version) { + // this code should never need to be updated + if (versionArray[0] === 9 && versionArray[1] >= 3) version = "2"; + // 9.3.0+ + else if (versionArray[0] === 8) version = "1"; // 8.0.0+ + } + return version; +}; diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/index.md b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/index.md new file mode 100644 index 0000000000..28300d535c --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/index.md @@ -0,0 +1,87 @@ + + +## napi-build-utils + +A set of utilities to assist developers of tools that build +[N-API](https://nodejs.org/api/n-api.html#n_api_n_api) native add-ons. + +The main repository can be found +[here](https://github.com/inspiredware/napi-build-utils#napi-build-utils). + +- [napi-build-utils](#module_napi-build-utils) + - [.isNapiRuntime(runtime)](#module_napi-build-utils.isNapiRuntime) ⇒ boolean + - [.isSupportedVersion(napiVersion)](#module_napi-build-utils.isSupportedVersion) ⇒ boolean + - [.logUnsupportedVersion(napiVersion, log)](#module_napi-build-utils.logUnsupportedVersion) + - [.getBestNapiBuildVersion()](#module_napi-build-utils.getBestNapiBuildVersion) ⇒ number \| undefined + - [.getNapiBuildVersions()](#module_napi-build-utils.getNapiBuildVersions) ⇒ Array.<string> + - [.getNapiVersion()](#module_napi-build-utils.getNapiVersion) ⇒ string \| undefined + + + +### napi-build-utils.isNapiRuntime(runtime) ⇒ boolean + +Implements a consistent name of `napi` for N-API runtimes. + +**Kind**: static method of [napi-build-utils](#module_napi-build-utils) + +| Param | Type | Description | +| ------- | ------------------- | ------------------- | +| runtime | string | The runtime string. | + + + +### napi-build-utils.isSupportedVersion(napiVersion) ⇒ boolean + +Determines whether the specified N-API version is supported +by both the currently running Node instance and the package. + +**Kind**: static method of [napi-build-utils](#module_napi-build-utils) + +| Param | Type | Description | +| ----------- | ------------------- | --------------------------- | +| napiVersion | string | The N-API version to check. | + + + +### napi-build-utils.logUnsupportedVersion(napiVersion, log) + +Issues a warning to the supplied log if the N-API version is not supported +by the current Node instance or if the N-API version is not supported +by the package. + +**Kind**: static method of [napi-build-utils](#module_napi-build-utils) + +| Param | Type | Description | +| ----------- | ------------------- | ---------------------------------------------------------------------------------------- | +| napiVersion | string | The N-API version to check. | +| log | Object | The log object to which the warnings are to be issued. Must implement the `warn` method. | + + + +### napi-build-utils.getBestNapiBuildVersion() ⇒ number \| undefined + +Returns the best N-API version to build given the highest N-API +version supported by the current Node instance and the N-API versions +supported by the package, or undefined if a suitable N-API version +cannot be determined. + +The best build version is the greatest N-API version supported by +the package that is less than or equal to the highest N-API version +supported by the current Node instance. + +**Kind**: static method of [napi-build-utils](#module_napi-build-utils) + + +### napi-build-utils.getNapiBuildVersions() ⇒ Array.<string> + +Returns an array of N-API versions supported by the package. + +**Kind**: static method of [napi-build-utils](#module_napi-build-utils) + + +### napi-build-utils.getNapiVersion() ⇒ string \| undefined + +Returns the highest N-API version supported by the current node instance +or undefined if N-API is not supported. + +**Kind**: static method of [napi-build-utils](#module_napi-build-utils) diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/package.json b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/package.json new file mode 100644 index 0000000000..ef299b7477 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/napi-build-utils/package.json @@ -0,0 +1,68 @@ +{ + "_from": "napi-build-utils@^1.0.1", + "_id": "napi-build-utils@1.0.2", + "_inBundle": false, + "_integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "_location": "/napi-build-utils", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "napi-build-utils@^1.0.1", + "name": "napi-build-utils", + "escapedName": "napi-build-utils", + "rawSpec": "^1.0.1", + "saveSpec": null, + "fetchSpec": "^1.0.1" + }, + "_requiredBy": [ + "/prebuild-install" + ], + "_resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "_shasum": "b1fddc0b2c46e380a0b7a76f984dd47c41a13806", + "_spec": "napi-build-utils@^1.0.1", + "_where": "/var/task/node_modules/prebuild-install", + "author": { + "name": "Jim Schlight" + }, + "binary": { + "note": "napi-build-tools is not an N-API module. This entry is for unit testing.", + "napi_versions": [ + 2, + 2, + 3 + ] + }, + "bugs": { + "url": "https://github.com/inspiredware/napi-build-utils/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A set of utilities to assist developers of tools that build N-API native add-ons", + "devDependencies": { + "chai": "^4.1.2", + "jsdoc-to-markdown": "^4.0.1", + "mocha": "^5.2.0", + "standard": "^12.0.1" + }, + "homepage": "https://github.com/inspiredware/napi-build-utils#readme", + "keywords": [ + "n-api", + "prebuild", + "prebuild-install" + ], + "license": "MIT", + "main": "index.js", + "name": "napi-build-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/inspiredware/napi-build-utils.git" + }, + "scripts": { + "doc": "jsdoc2md index.js >index.md", + "lint": "standard", + "prepublishOnly": "npm run test && npm run doc", + "test": "mocha test/ && npm run lint" + }, + "version": "1.0.2" +} diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/.github/workflows/update-abi.yml b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/.github/workflows/update-abi.yml new file mode 100644 index 0000000000..4b3856b88a --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/.github/workflows/update-abi.yml @@ -0,0 +1,41 @@ +name: Auto-update ABI JSON file +on: + schedule: + - cron: "0 0 * * *" +jobs: + autoupdate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: "12.x" + - name: Get npm cache directory + id: npm-cache + run: | + echo "::set-output name=dir::$(npm config get cache)" + - uses: actions/cache@v1 + with: + path: ${{ steps.npm-cache.outputs.dir }} + key: ${{ runner.os }}-node-${{ hashFiles('**/package.json') }} + restore-keys: | + ${{ runner.os }}-node- + - run: npm install --no-package-lock + - name: Update ABI registry + run: npm run update-abi-registry + - name: Commit Changes to ABI registry + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + echo "machine github.com login $GITHUB_ACTOR password $GITHUB_TOKEN" > ~/.netrc + chmod 600 ~/.netrc + git add abi_registry.json + if test -n "$(git status -s)"; then + git config user.name "GitHub Actions" + git config user.email "github-actions@users.noreply.github.com" + git diff --cached + git commit -m "feat: update ABI registry" + git push origin HEAD:$GITHUB_REF + else + echo No update needed + fi diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/.travis.yml b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/.travis.yml new file mode 100644 index 0000000000..d62711125e --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/.travis.yml @@ -0,0 +1,19 @@ +language: node_js +cache: + directories: + - ~/.npm +notifications: + email: false +node_js: + - "10" + - "9" + - "8" + - "6" + - "4" + - "0.12" + - "0.10" +after_success: + - npm run travis-deploy-once "npm run semantic-release" +branches: + except: + - /^v\d+\.\d+\.\d+$/ diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/CODE_OF_CONDUCT.md b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..0338dfc0ad --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/CODE_OF_CONDUCT.md @@ -0,0 +1,73 @@ +# 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 lukas.geiger94@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and 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 https://www.contributor-covenant.org/version/1/4/code-of-conduct/ + +[homepage]: https://www.contributor-covenant.org diff --git a/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/CONTRIBUTING.md b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/CONTRIBUTING.md new file mode 100644 index 0000000000..2e4114c8c4 --- /dev/null +++ b/packages/libs/lambda-at-edge/sharp_node_modules/node-abi/CONTRIBUTING.md @@ -0,0 +1,52 @@ +# Contributing to `node-abi` + +:+1::tada: First off, thanks for taking the time to contribute to `node-abi`! :tada::+1: + +## Commit Message Guidelines + +This module uses [`semantic-release`](https://github.com/semantic-release/semantic-release) to automatically release new versions via Travis. +Therefor we have very precise rules over how our git commit messages can be formatted. + +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special +format that includes a **type**, a **scope** and a **subject** ([full explanation](https://github.com/stevemao/conventional-changelog-angular/blob/master/convention.md)): + +``` +(): + + + +