diff --git a/.github/workflows/trigger-examples-docs.yml b/.github/workflows/trigger-examples-docs.yml
new file mode 100644
index 000000000..7f6f5c4cd
--- /dev/null
+++ b/.github/workflows/trigger-examples-docs.yml
@@ -0,0 +1,42 @@
+name: Trigger Sync Examples
+
+on:
+ push:
+ branches:
+ - v4
+ paths:
+ - "examples.json"
+ workflow_dispatch:
+ inputs:
+ stage:
+ description: "Deployment stage"
+ required: true
+ default: "dev"
+ type: choice
+ options:
+ - dev
+ - prod
+
+jobs:
+ trigger:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+
+ - name: Trigger Sync Docs Workflow
+ uses: actions/github-script@v6
+ with:
+ github-token: ${{ secrets.CI_BOT_GITHUB_TOKEN }}
+ script: |
+ console.log(`Triggering sync-examples workflow for stage: ${{ github.event.inputs.stage || 'dev' }}`);
+ await github.rest.actions.createWorkflowDispatch({
+ owner: 'serverlessinc',
+ repo: 'growth',
+ workflow_id: 'sync-examples.yml', // Replace with the actual workflow file name in the target repo
+ ref: 'main',
+ inputs: {
+ stage: '${{ github.event.inputs.stage || 'dev' }}'
+ }
+ });
diff --git a/README.md b/README.md
index 52c76bab4..3bbf2a69e 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,40 @@
-[Website](http://www.serverless.com) • [Email Updates](http://eepurl.com/b8dv4P) • [Gitter](https://gitter.im/serverless/serverless) • [Forum](http://forum.serverless.com) • [Meetups](https://github.com/serverless/meetups) • [Twitter](https://twitter.com/goserverless) • [Facebook](https://www.facebook.com/serverless) • [Contact Us](mailto:hello@serverless.com)
+
-# Serverless Examples
+
+
+
+
+
+
-
+# Serverless Examples
A collection of ready-to-deploy [Serverless Framework](https://github.com/serverless/serverless) services.
## Table of Contents
+
Click to expand
-- [Serverless Examples](#serverless-examples)
- - [Table of Contents](#table-of-contents)
- - [Getting Started](#getting-started)
- - [Examples](#examples)
- - [Community Examples](#community-examples)
- - [Contributing](#contributing)
- - [Adding example code](#adding-example-code)
- - [Adding a community example](#adding-a-community-example)
+- [Getting Started](#getting-started)
+- [Examples](#examples)
+- [Community Examples](#community-examples)
+- [Contributing](#contributing)
+ - [Adding example code](#adding-example-code)
+ - [Adding a community example](#adding-a-community-example)
@@ -42,121 +56,234 @@ serverless install -u https://github.com/serverless/examples/tree/master/folder-
```
-| Example | Runtime |
-|:--------------------------- |:-----|
-| [Aws Dotnet Rest Api With Dynamodb](https://github.com/serverless/examples/tree/master/aws-dotnet-rest-api-with-dynamodb/src/DotNetServerless.Lambda)
Reading/Writing operations using .NET Core and DynamoDB | dotnet |
-| [Aws Lambda Layer](https://github.com/serverless/examples/tree/master/aws-ffmpeg-layer) | nodeJS |
-| [Aws Golang Auth Examples](https://github.com/serverless/examples/tree/master/aws-golang-auth-examples)
These example shows how to run a Golang lambda with authentication | golang |
-| [Aws Golang Dynamo Stream To Elasticsearch](https://github.com/serverless/examples/tree/master/aws-golang-dynamo-stream-to-elasticsearch)
This example deploys a DynamoDB Table, an Elasticsearch Node, and a lambda triggered off of a Dynamo Stream which updates an elasticsearch index with the data from the Dynamo Table | golang |
-| [Aws Golang Http Get Post](https://github.com/serverless/examples/tree/master/aws-golang-http-get-post)
Example on Making Parameterized Get and Post Request with Golang | golang |
-| [Aws Golang Rest Api With Dynamodb](https://github.com/serverless/examples/tree/master/aws-golang-rest-api-with-dynamodb)
Serverless CRUD service exposing a REST HTTP interface | golang |
-| [Aws Golang Simple Http Endpoint](https://github.com/serverless/examples/tree/master/aws-golang-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint with golang | golang |
-| [Aws Golang Stream Kinesis To Elasticsearch](https://github.com/serverless/examples/tree/master/aws-golang-stream-kinesis-to-elasticsearch)
Pull data from AWS Kinesis streams and forward to elasticsearch | golang |
-| [Aws Alexa Skill](https://github.com/serverless/examples/tree/master/aws-node-alexa-skill)
This example demonstrates how to use an AWS Lambdas for your custom Alexa skill. | nodeJS |
-| [Aws Node Auth0 Cognito Custom Authorizers Api](https://github.com/serverless/examples/tree/master/aws-node-auth0-cognito-custom-authorizers-api)
Authorize your API Gateway with either Auth0 or Cognito RS256 tokens. | nodeJS |
-| [Aws Auth0 Api Gateway](https://github.com/serverless/examples/tree/master/aws-node-auth0-custom-authorizers-api)
Demonstration of protecting API gateway endpoints with auth0 | nodeJS |
-| [Aws Node Dynamic Image Resizer](https://github.com/serverless/examples/tree/master/aws-node-dynamic-image-resizer) | nodeJS |
-| [Aws Node Dynamodb Backup](https://github.com/serverless/examples/tree/master/aws-node-dynamodb-backup)
Serverless DynamoDB changes backed up to S3 | nodeJS |
-| [Aws Env Variables Encrypted In A File](https://github.com/serverless/examples/tree/master/aws-node-env-variables-encrypted-in-a-file)
Serverless example managing secrets in an encrypted file | nodeJS |
-| [Aws Env Variables](https://github.com/serverless/examples/tree/master/aws-node-env-variables)
This example demonstrates how to use environment variables for AWS Lambdas. | nodeJS |
-| [Aws Node Express Api](https://github.com/serverless/examples/tree/master/aws-node-express-api) | nodeJS |
-| [Aws Node Express Dynamodb Api](https://github.com/serverless/examples/tree/master/aws-node-express-dynamodb-api) | nodeJS |
-| [Aws Fetch File And Store In S3](https://github.com/serverless/examples/tree/master/aws-node-fetch-file-and-store-in-s3)
Fetch an image from remote source (URL) and then upload the image to a S3 bucket. | nodeJS |
-| [Sfe Demo Leadcapture](https://github.com/serverless/examples/tree/master/aws-node-fullstack/backend) | nodeJS |
-| [Frontend](https://github.com/serverless/examples/tree/master/aws-node-fullstack/frontend) | nodeJS |
-| [Aws Function Compiled With Babel](https://github.com/serverless/examples/tree/master/aws-node-function-compiled-with-babel)
Demonstrating how to compile all your code with Babel | nodeJS |
-| [Serverless Github Check](https://github.com/serverless/examples/tree/master/aws-node-github-check) | nodeJS |
-| [Aws Github Webhook Listener](https://github.com/serverless/examples/tree/master/aws-node-github-webhook-listener)
Extend your github repositories with this github webhook listener | nodeJS |
-| [Graphql Api And Serverless](https://github.com/serverless/examples/tree/master/aws-node-graphql-and-rds) | nodeJS |
-| [Aws Node Graphql Api With Dynamodb](https://github.com/serverless/examples/tree/master/aws-node-graphql-api-with-dynamodb)
A single-module GraphQL endpoint with query and mutation functionality. | nodeJS |
-| [Aws Lambda And Heroku Postgres](https://github.com/serverless/examples/tree/master/aws-node-heroku-postgres)
Shows how to connect AWS Lambda to Heroku Postgres. Uses an api:release Heroku webhook and the Heroku API to handle automatic Heroku Postgres credential rotation. | nodeJS |
-| [Aws Iot Event](https://github.com/serverless/examples/tree/master/aws-node-iot-event)
Example on how to setup a AWS IoT Rule to send events to a Lambda function | nodeJS |
-| [Aws Lambda And Mongodb Atlas](https://github.com/serverless/examples/tree/master/aws-node-mongodb-atlas)
Shows how to connect AWS Lambda to MongoDB Atlas. | nodeJS |
-| [Dropbox](https://github.com/serverless/examples/tree/master/aws-node-oauth-dropbox-api)
dropbox integration | nodeJS |
-| [Aws Node Puppeteer](https://github.com/serverless/examples/tree/master/aws-node-puppeteer)
When it comes to AWS Lambda function , they have their own limits as follows  So , When you try to use Puppeteer your deployment package size(unzipped) easily go's above 250 mb because When you install Puppeteer, it downloads a recent version of Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) that is guaranteed to work with the API. | nodeJS |
-| [Aws Node Rekognition Analysis S3 Image](https://github.com/serverless/examples/tree/master/aws-node-rekognition-analysis-s3-image)
Analyse an Image from an S3 Bucket with Amazon Rekognition | nodeJS |
-| [Aws Node Restapi Mongodb](https://github.com/serverless/examples/tree/master/aws-node-rest-api-mongodb)
Serverless REST API with MongoDB using Mongoose and Bluebird | nodeJS |
-| [Aws Node Rest Api Typescript](https://github.com/serverless/examples/tree/master/aws-node-rest-api-typescript-simple) | nodeJS |
-| [Aws Node Typescript Rest Api](https://github.com/serverless/examples/tree/master/aws-node-rest-api-typescript)
This is simple REST API example for AWS Lambda By Serverless framwork with TypeScript and MongoDB Atlas. | nodeJS |
-| [Aws Rest Api Offline](https://github.com/serverless/examples/tree/master/aws-node-rest-api-with-dynamodb-and-offline)
Serverless REST API with DynamoDB and offline support | nodeJS |
-| [Aws Rest With Dynamodb](https://github.com/serverless/examples/tree/master/aws-node-rest-api-with-dynamodb)
Serverless CRUD service exposing a REST HTTP interface | nodeJS |
-| [Aws Fetch File And Store In S3](https://github.com/serverless/examples/tree/master/aws-node-s3-file-replicator)
Fetch an image from remote source (URL) and then upload the image to a S3 bucket. | nodeJS |
-| [Aws Scheduled Cron](https://github.com/serverless/examples/tree/master/aws-node-scheduled-cron)
Example of creating a function that runs as a cron job using the serverless `schedule` event | nodeJS |
-| [Aws Scheduled Weather](https://github.com/serverless/examples/tree/master/aws-node-scheduled-weather)
Example of creating a function that runs as a cron job using the serverless `schedule` event through pulling weather and sending an email daily. | nodeJS |
-| [Aws Serve Dynamic Html Via Http Endpoint](https://github.com/serverless/examples/tree/master/aws-node-serve-dynamic-html-via-http-endpoint)
Hookup an AWS API Gateway endpoint to a Lambda function to render HTML on a `GET` request | nodeJS |
-| [Aws Node Serverless Gong](https://github.com/serverless/examples/tree/master/aws-node-serverless-gong)
A simple serverless gong using GitHub webhooks and a Slack app | nodeJS |
-| [Aws Node Ses Receive Email Body](https://github.com/serverless/examples/tree/master/aws-node-ses-receive-email-body)
Receive an email, store in S3 bucket, trigger a lambda function. | nodeJS |
-| [Aws Node Ses Receive Email Header](https://github.com/serverless/examples/tree/master/aws-node-ses-receive-email-header)
Receive an email, trigger a lambda function to process header. | nodeJS |
-| [Shared Aws Api Gateway Nodejs](https://github.com/serverless/examples/tree/master/aws-node-shared-gateway)
A sample of implementing shared API gateway with multiple Node Lambdas. | nodeJS |
-| [Aws Node Signed Uploads](https://github.com/serverless/examples/tree/master/aws-node-signed-uploads)
Serverless example for S3 signed uploads | nodeJS |
-| [Aws Serve Simple Http Endpoint](https://github.com/serverless/examples/tree/master/aws-node-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint | nodeJS |
-| [Aws Node Simple Transcribe S3](https://github.com/serverless/examples/tree/master/aws-node-simple-transcribe-s3)
Example demonstrates how to setup a lambda function to transcribe audio file | nodeJS |
-| [Aws Single Page App Via Cloudfront](https://github.com/serverless/examples/tree/master/aws-node-single-page-app-via-cloudfront)
Demonstrating how to deploy a Single Page Application with Serverless | nodeJS |
-| [Serverless Single Page App Plugin](https://github.com/serverless/examples/tree/master/aws-node-single-page-app-via-cloudfront/serverless-single-page-app-plugin)
A plugin to simplify deploying Single Page Application using S3 and CloudFront | nodeJS |
-| [Aws Node Sqs Worker](https://github.com/serverless/examples/tree/master/aws-node-sqs-worker)
Serverless Framework Node SQS Producer-Consumer on AWS | nodeJS |
-| [Aws Node Stripe Integration](https://github.com/serverless/examples/tree/master/aws-node-stripe-integration)
This example for Stripe integration using AWS Lambda and API Gateway. | nodeJS |
-| [Aws Node Line Echo Bot](https://github.com/serverless/examples/tree/master/aws-node-telegram-echo-bot)
This is a simple echo bot on Telegram | nodeJS |
-| [Aws Text Analysis Via Sns Post Processing](https://github.com/serverless/examples/tree/master/aws-node-text-analysis-via-sns-post-processing)
Example demonstrates how to setup a simple data processing pipeline | nodeJS |
-| [Aws Node Twilio Send Text Message](https://github.com/serverless/examples/tree/master/aws-node-twilio-send-text-message)
Send a text message via twilio from aws lambda. [See live demo](http://twilio-serverless-example.surge.sh) | nodeJS |
-| [Baddadjokesbot](https://github.com/serverless/examples/tree/master/aws-node-twitter-joke-bot) | nodeJS |
-| [Aws Node Typescript Apollo Lambda](https://github.com/serverless/examples/tree/master/aws-node-typescript-apollo-lambda)
Serverless example for apollo lambda | nodeJS |
-| [Aws Node Typescript Kinesis](https://github.com/serverless/examples/tree/master/aws-node-typescript-kinesis)
Serverless example using Kinesis with TypeScript | nodeJS |
-| [Nest Serverless](https://github.com/serverless/examples/tree/master/aws-node-typescript-nest)
serverless app | nodeJS |
-| [Typescript Example](https://github.com/serverless/examples/tree/master/aws-node-typescript-rest-api-with-dynamodb) | nodeJS |
-| [Aws Node Typescript Sqs Standard](https://github.com/serverless/examples/tree/master/aws-node-typescript-sqs-standard)
Serverless example using Standard SQS with TypeScript | nodeJS |
-| [Upload To S3 And Postprocess](https://github.com/serverless/examples/tree/master/aws-node-upload-to-s3-and-postprocess)
Upload a files to S3 to trigger a lambda function. | nodeJS |
-| [Aws Node Vue Nuxt Ssr](https://github.com/serverless/examples/tree/master/aws-node-vue-nuxt-ssr)
Sample project for using Nuxt.js to create a server-side rendered Vue.js app on AWS Lambda and AWS API Gateway. Can easily integrate with your own API or 3rd party APIs such as headless CMS, e-commerce or serverless architecture. | nodeJS |
-| [Aws Nodejs Websockets Authorizers](https://github.com/serverless/examples/tree/master/aws-node-websockets-authorizers)
Simple example that demonstrates how to use authorizer functions with websocket events | nodeJS |
-| [Aws Alexa Skill](https://github.com/serverless/examples/tree/master/aws-python-alexa-skill)
This example demonstrates how to use an AWS Lambdas for your custom Alexa skill. | python |
-| [Aws Auth0 Api Gateway](https://github.com/serverless/examples/tree/master/aws-python-auth0-custom-authorizers-api)
Demonstration of protecting API gateway endpoints with auth0 | python |
-| [Aws Python Flask Api](https://github.com/serverless/examples/tree/master/aws-python-flask-api)
Example of a Python Flask API service with traditional Serverless Framework | python |
-| [Aws Python Flask Dynamodb Api](https://github.com/serverless/examples/tree/master/aws-python-flask-dynamodb-api)
Example of a Python Flask API service backed by DynamoDB with traditional Serverless Framework | python |
-| [Aws Python Line Echo Bot](https://github.com/serverless/examples/tree/master/aws-python-line-echo-bot)
this is echo bot on LINE message | python |
-| [Aws Python Pynamodb S3 Sigurl](https://github.com/serverless/examples/tree/master/aws-python-pynamodb-s3-sigurl)
Serverless signed uploader REST API using pynamodb, s3 generated events, custom log format, and DRY serverless.yml with custom section | python |
-| [Aws Rest With Dynamodb](https://github.com/serverless/examples/tree/master/aws-python-rest-api-with-dynamodb)
Serverless CRUD service exposing a REST HTTP interface | python |
-| [Aws Rest With Faunadb](https://github.com/serverless/examples/tree/master/aws-python-rest-api-with-faunadb)
Serverless CRUD service exposing a REST HTTP interface | python |
-| [Aws Python Rest Api With Pymongo](https://github.com/serverless/examples/tree/master/aws-python-rest-api-with-pymongo)
Serverless pymongo example | python |
-| [Aws Rest With Pynamodb](https://github.com/serverless/examples/tree/master/aws-python-rest-api-with-pynamodb)
Serverless CRUD service exposing a REST HTTP interface | python |
-| [Aws Scheduled Cron](https://github.com/serverless/examples/tree/master/aws-python-scheduled-cron)
Example of creating a function that runs as a cron job using the serverless `schedule` event | python |
-| [Aws Simple Http Endpoint](https://github.com/serverless/examples/tree/master/aws-python-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint with python | python |
-| [Aws Python Sqs Worker](https://github.com/serverless/examples/tree/master/aws-python-sqs-worker)
Serverless Framework Python SQS Producer-Consumer on AWS | python |
-| [Serverless Telegram Bot](https://github.com/serverless/examples/tree/master/aws-python-telegram-bot)
This example demonstrates how to setup an echo Telegram Bot using the Serverless Framework ⚡🤖 | python |
-| [Serverless Ruby Dynamodb Cron](https://github.com/serverless/examples/tree/master/aws-ruby-cron-with-dynamodb)
This is an example of creating a function that runs as a cron job using the serverless 'schedule' event. With the usage of the AWS Lambda function, it creates a record to the DynamoDB each and every 30 minutes. | ruby |
-| [Aws Ruby Line Bot](https://github.com/serverless/examples/tree/master/aws-ruby-line-bot)
Example demonstrates how to setup a simple Line echo bot on AWS | ruby |
-| [Aws Ruby Simple Http Endpoint](https://github.com/serverless/examples/tree/master/aws-ruby-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint | ruby |
-| [Aws Ruby Sinatra Dynamodb Api](https://github.com/serverless/examples/tree/master/aws-ruby-sinatra-dynamodb-api)
Example of a Ruby Sinatra API service backed by DynamoDB with traditional Serverless Framework | ruby |
-| [Aws Ruby Step Functions Callback](https://github.com/serverless/examples/tree/master/aws-ruby-step-functions-with-callback)
Ruby example that make usage of AWS Step Functions with callback pattern, AWS Lambda, DynamoDB, Amazon Comprehend, API Gateway, and Step Functions flows | ruby |
-| [Serverless Ruby Sqs Dynamodb](https://github.com/serverless/examples/tree/master/aws-ruby-sqs-with-dynamodb)
A serverless ruby example that creates DynamoDB records with the usage of SQS, API Gateway, and AWS Lambda functions. | ruby |
-| [Aws Ruby Step Functions](https://github.com/serverless/examples/tree/master/aws-ruby-step-functions)
Ruby example that make usage of AWS Step Functions with AWS Lambda, DynamoDB and Step Functions flows. | ruby |
-| [Aws Ruby Step Functions Express Workflow](https://github.com/serverless/examples/tree/master/aws-ruby-step-functions-express)
Ruby example that make usage of AWS Step Functions Express Type with AWS Lambda, DynamoDB, Amazon SES, API Gateway, and Step Functions flows | ruby |
-| [Aws Rust Simple Http Endpoint](https://github.com/serverless/examples/tree/master/aws-rust-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint with rust | nodeJS |
-| [Azure Nodejs](https://github.com/serverless/examples/tree/master/azure-node-line-bot)
Azure Functions sample for the Serverless framework | nodeJS |
-| [Azure Node Simple Http Endpoint](https://github.com/serverless/examples/tree/master/azure-node-simple-http-endpoint)
An example of making http endpoints with the Azure Functions Serverless Framework plugin | nodeJS |
-| [Azure Nodejs](https://github.com/serverless/examples/tree/master/azure-node-telegram-bot)
Azure Functions sample for the Serverless framework | nodeJS |
-| [Service Bus Trigger Example](https://github.com/serverless/examples/tree/master/azure-node-typescript-servicebus-trigger-endpoint)
Serverless application for asset model creation | nodeJS |
-| [Google Golang Simple Http Endpoint](https://github.com/serverless/examples/tree/master/google-golang-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint with golang | golang |
-| [Google Node Simple Http Endpoint](https://github.com/serverless/examples/tree/master/google-node-simple-http-endpoint)
An example of making http endpoints with the Google Cloud Functions Serverless Framework plugin. | nodeJS |
-| [Gcp Node Typescript Simple](https://github.com/serverless/examples/tree/master/google-node-typescript-http-endpoint)
Simple HTTP example for GCP functions by Serverless framework with Typescript | nodeJS |
-| [Google Python Simple Http Endpoint](https://github.com/serverless/examples/tree/master/google-python-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint with python | python |
-| [Kubeless Python Simple Function](https://github.com/serverless/examples/tree/master/kubeless-python-simple-function)
This example demonstrates how to setup a simple Python function with Kubeless | python |
-| [Kubeless Python Simple Scheduled Function](https://github.com/serverless/examples/tree/master/kubeless-python-simple-scheduled-function)
This example demonstrates how to setup a simple Python function with Kubeless | python |
-| [Openwhisk Go Simple](https://github.com/serverless/examples/tree/master/openwhisk-go-simple)
Example demonstrates how to setup a simple Go function with OpenWhisk. | nodeJS |
-| [Openwhisk Node And Docker Chaining Functions](https://github.com/serverless/examples/tree/master/openwhisk-node-and-docker-chaining-functions)
Example of chaining function calls using sequences and docker images. | nodeJS |
-| [Openwhisk Node Chaining Functions](https://github.com/serverless/examples/tree/master/openwhisk-node-chaining-functions)
Example of chaining function calls using sequences and the sdk. | nodeJS |
-| [Openwhisk Node Scheduled Cron](https://github.com/serverless/examples/tree/master/openwhisk-node-scheduled-cron)
Example of creating a function that runs as a cron job using the serverless schedule event. | nodeJS |
-| [Openwhisk Node Simple Http](https://github.com/serverless/examples/tree/master/openwhisk-node-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint with OpenWhisk. | nodeJS |
-| [Openwhisk Node Simple](https://github.com/serverless/examples/tree/master/openwhisk-node-simple)
Simple example demonstrating OpenWhisk provider support. | nodeJS |
-| [Openwhisk Php Simple](https://github.com/serverless/examples/tree/master/openwhisk-php-simple)
Example demonstrates how to setup a simple PHP function with OpenWhisk. | php |
-| [Openwhisk Python Scheduled Cron](https://github.com/serverless/examples/tree/master/openwhisk-python-scheduled-cron)
Example of creating a Python function that runs as a cron job using the serverless schedule event. | python |
-| [Openwhisk Python Simple Http Endpoint](https://github.com/serverless/examples/tree/master/openwhisk-python-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP GET endpoint with OpenWhisk. | python |
-| [Openwhisk Python Simple](https://github.com/serverless/examples/tree/master/openwhisk-python-simple)
Example demonstrates how to setup a simple Python function with OpenWhisk. | python |
-| [Openwhisk Ruby Simple](https://github.com/serverless/examples/tree/master/openwhisk-ruby-simple)
Example demonstrates how to setup a simple Ruby function with OpenWhisk. | ruby |
-| [Openwhisk Rust Simple Http Endpoint](https://github.com/serverless/examples/tree/master/openwhisk-rust-simple-http-endpoint)
Example demonstrates how to setup a simple Rust function with OpenWhisk. | nodeJS |
-| [Openwhisk Swift Package With Precompiled Binaries](https://github.com/serverless/examples/tree/master/openwhisk-swift-precompiled-binaries)
Swift packages and pre-compiled binaries on OpenWhisk. | swift |
-| [Openwhisk Swift Scheduled Cron](https://github.com/serverless/examples/tree/master/openwhisk-swift-scheduled-cron)
Example of creating a Swift function that runs as a cron job using the serverless schedule event. | swift |
-| [Openwhisk Swift Simple Http Endpoint](https://github.com/serverless/examples/tree/master/openwhisk-swift-simple-http-endpoint)
Example demonstrates how to setup a simple HTTP endpoint using Swift function with OpenWhisk. | swift |
-| [Openwhisk Swift Simple](https://github.com/serverless/examples/tree/master/openwhisk-swift-simple)
Example demonstrates how to setup a simple Swift function with OpenWhisk. | swift |
-| [Twilio.node Forward Call](https://github.com/serverless/examples/tree/master/twilio-node-forward-call)
Example demonstrating Twilio Runtime support with an endpoint that returns TwiML to forward a phone call | nodeJS |
+
+| Example | Runtime |
+| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |
+| [Dot Net REST API with DynamoDB](https://github.com/serverless/examples/tree/master/)
Setup a REST API w/ DynamoDB using Dot Net Core 2.1 | unknown |
+| [AWS FFmepg Layer](https://github.com/serverless/examples/tree/master/)
AWS FFmepg Layer & a service using it to create GIFs | unknown |
+| [AWS Golang Auth](https://github.com/serverless/examples/tree/master/)
This example shows you how to setup auth in front of a AWS Lambda function | unknown |
+| [DynamoDB Stream To Elasticsearch](https://github.com/serverless/examples/tree/master/)
Stream data from DynamoDB to Elasticsearch | unknown |
+| [Google map api](https://github.com/serverless/examples/tree/master/)
Serverless example using golang to hit google map api | unknown |
+| [HTTP GET and POST](https://github.com/serverless/examples/tree/master/)
Boilerplate code for Golang with GET and POST example | unknown |
+| [Aws golang rest api with dynamodb](https://github.com/serverless/examples/tree/master/)
Boilerplate code for Golang CRUD Operations | unknown |
+| [AWS S3 Bucket Replicator in Golang](https://github.com/serverless/examples/tree/master/)
Boilerplate code for Golang with S3 object create event and replicator example | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP endpoint in Go. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to stream kinesis information into elasticsearch in a golang runtime | unknown |
+| [AWS Simple HTTP Endpoint example in Java](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint using Java. Once you ping it, it will reply with the current time. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example demonstrates how you can run multiple runtimes in AWS Lambda. | unknown |
+| [AWS Serverless Alexa Skill example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup your own Alexa skill using AWS Lambdas. | unknown |
+| [API Gateway Authorizer Function for Auth0 or AWS Cognito using RS256 JSON Web Key Sets tokens.](https://github.com/serverless/examples/tree/master/)
Authorize your API Gateway with either Auth0 or Cognito JWKS RS256 tokens. | unknown |
+| [AWS API Gateway Custom Authorizer Function with Auth0 example in NodeJS](https://github.com/serverless/examples/tree/master/)
This is an example of how to protect API endpoints with Auth0, JSON Web Tokens (jwt) and a custom authorizer lambda function. | unknown |
+| [Dynamic Image Resizing API](https://github.com/serverless/examples/tree/master/)
This example shows you how to setup a dynamic image resizer API | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This examples shows your how to create a backup of your DynamoDB table to S3. | unknown |
+| [AWS Storing Encrypted Secrets example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to store secrets like API keys encrypted in your repository while providing them as environment variables to your AWS Lambda functions. | unknown |
+| [AWS Serverless Environment Variables Usage example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to use environment variables for AWS Lambdas. | unknown |
+| [Node Express API on AWS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to develop and deploy a simple Node Express API running on AWS Lambda using the Serverless Framework. | unknown |
+| [Node Express API service backed by DynamoDB on AWS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to develop and deploy a simple Node Express API service backed by DynamoDB running on AWS Lambda using the Serverless Framework. | unknown |
+| [AWS Fetch image from URL and upload to S3 example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example display how to fetch an image from remote source (URL) and then upload this image to a S3 bucket. | unknown |
+| [Serverless Email Sign Up Form](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to deploy a Fullstack serverless application | unknown |
+| [AWS Function compiled with Babel example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to compile your JavaScript code with Babel. In order to do so the 'serverless-babel-plugin' is leveraged. | unknown |
+| [Serverless Github Check](https://github.com/serverless/examples/tree/master/)
The idea is to validate that all Pull Requests are related to a specific trello card. | unknown |
+| [AWS Serverless Github Webhook Listener example in NodeJS](https://github.com/serverless/examples/tree/master/)
This service will listen to github webhooks fired by a given repository. | unknown |
+| [A Simple Serverless GraphQL API for MySQL, Postgres and Aurora](https://github.com/serverless/examples/tree/master/)
This is an example project that uses 3 RDS databases to illustrate the differences between using each of them | unknown |
+| [GraphQL query endpoint in NodeJS on AWS with DynamoDB](https://github.com/serverless/examples/tree/master/)
A single-module GraphQL endpoint with query and mutation functionality. | unknown |
+| [Node.js AWS Lambda connecting to Heroku Postgres](https://github.com/serverless/examples/tree/master/)
Shows how to connect AWS Lambda to Heroku Postgres. Uses an api:release Heroku webhook and the Heroku API to handle automatic Heroku Postgres credential rotation. | unknown |
+| [AWS Serverless IoT Event example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a AWS IoT Rule to send events to a Lambda function. | unknown |
+| [Node.js AWS Lambda connecting to MongoDB Atlas](https://github.com/serverless/examples/tree/master/)
Shows how to connect AWS Lambda to MongoDB Atlas. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
Connect to Dropbox's API using AWS Lambda. | unknown |
+| [Running Puppeteer on AWS Lambda](https://github.com/serverless/examples/tree/master/)
This example shows you how to run Puppeteer on AWS Lambda | unknown |
+| [AWS Recursive Lambda function Invocation example in NodeJS](https://github.com/serverless/examples/tree/master/)
This is an example of a function that will recursively call itself. | unknown |
+| [AWS Analyse Image from S3 with Amazon Rekognition example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example shows how to analyze an image in an S3 bucket with Amazon Rekognition and return a list of labels. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example demonstrate how to use MongoDB with AWS and Serverless. | unknown |
+| [AWS Simple HTTP Endpoint example in NodeJS with Typescript](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to make a simple REST API with Node.js and Typescript running on AWS Lambda and API Gateway using the Serverless Framework v1. | unknown |
+| [Serverless Nodejs Rest API with TypeScript And MongoDB Atlas](https://github.com/serverless/examples/tree/master/)
This is simple REST API example for AWS Lambda By Serverless framwork with TypeScript and MongoDB Atlas. | unknown |
+| [AWS Serverless REST API with DynamoDB and offline support example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to run a service locally, using the 'serverless-offline' plugin. It provides a REST API to manage Todos stored in DynamoDB. | unknown |
+| [AWS Serverless REST API example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a RESTful Web Service allowing you to create, list, get, update and delete Todos. DynamoDB is used to store the data. | unknown |
+| [AWS Simple HTTP Endpoint example in NodeJS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to make a simple REST API with Node.js running on AWS Lambda and API Gateway using the traditional Serverless Framework. | unknown |
+| [AWS Simple HTTP Endpoint example in NodeJS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to make a simple HTTP API with Node.js running on AWS Lambda and API Gateway using the Serverless Framework. | unknown |
+| [AWS S3 File Replicator](https://github.com/serverless/examples/tree/master/)
This example creates 2 AWS S3 buckets and copies files in one bucket to the other | unknown |
+| [AWS Node Scheduled Cron example in NodeJS](https://github.com/serverless/examples/tree/master/)
This is an example of creating a function that runs as a cron job using the serverless ''schedule'' event. | unknown |
+| [AWS Node Scheduled Weather example in NodeJS](https://github.com/serverless/examples/tree/master/)
This is an example of creating a function that runs as a cron job using the serverless 'schedule' event. It retrieves weather information at 10am (UTC) and emails it to a predefined recipient. | unknown |
+| [AWS Serving Dynamic HTML via API Gateway example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example illustrates how to hookup an API Gateway endpoint to a Lambda function to render HTML on a GET request. | unknown |
+| [The Serverless Gong](https://github.com/serverless/examples/tree/master/)
A serverless gong with GitHub and Slack webhooks | unknown |
+| [AWS SES receive emails and process body](https://github.com/serverless/examples/tree/master/)
This example shows how to process receiving emails, and have S3 trigger a lambda function. | unknown |
+| [AWS SES receive an email, trigger a lambda function to process header.](https://github.com/serverless/examples/tree/master/)
This example shows how to process receiving email header, and trigger a lambda function. | unknown |
+| [Shared AWS API Gateway with multiple Node Lambdas](https://github.com/serverless/examples/tree/master/)
A sample of implementing shared API gateway with multiple Node Lambdas | unknown |
+| [AWS Node Signed Uploads](https://github.com/serverless/examples/tree/master/)
The approach implemented in this service is useful when you want to use Amazon API Gateway and you want to solve the 10MB payload limit | unknown |
+| [AWS Simple HTTP Endpoint example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint. Once you ping it, it will reply with the current time. | unknown |
+| [Simple AWS Transcribe example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a lambda function to transcribe your audio file (.wav format) into a text transcription. The lambda will be triggered whenever a new audio file is uploaded to S3 and the transcription (JSON format) will be saved to a S3 bucket. | unknown |
+| [AWS Single Page Application example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a Single Page Application. | unknown |
+| [Node SQS Producer Consumer on AWS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to develop and deploy a simple SQS-based producer-consumer service running on AWS Lambda using the traditional Serverless Framework. | unknown |
+| [AWS Stripe Integration example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example for Stripe integration using AWS Lambda and API Gateway. | unknown |
+| [Simple Telegram bot](https://github.com/serverless/examples/tree/master/)
This is a simple echo bot on Telegram. | unknown |
+| [AWS Data Processing example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple data processing pipeline. | unknown |
+| [AWS Send SMS Message with Twilio example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to send SMS messages with the Twilio SDK and AWS lambda. | unknown |
+| [Joke Twitter Bot](https://github.com/serverless/examples/tree/master/)
Twitter bot that will periodically tweet out a joke obtained from a joke API. | unknown |
+| [AWS Apollo Lambda (NodeJS & Typescript)](https://github.com/serverless/examples/tree/master/)
This example provides a setup for a Lambda Graphql API with apollo | unknown |
+| [AWS Kinesis Data Streams Example (NodeJS & Typescript)](https://github.com/serverless/examples/tree/master/)
Produce and Consume data on a Kinesis Data Stream with Typescript. | unknown |
+| [AWS Nest application example (NodeJS & Typescript)](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple [Nest](https://github.com/nestjs/nest) application. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example shows your how to create a TypeScript powered REST API with DynamoDB. | unknown |
+| [AWS SQS Standard Example (NodeJS & Typescript)](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a SQS with Typescript. | unknown |
+| [AWS Upload a file to S3 to trigger a Lambda function example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example shows how to upload a file to S3 using a HTML form, and have S3 trigger a lambda function. | unknown |
+| [Serverless side rendering with Vue.js and Nuxt.js](https://github.com/serverless/examples/tree/master/)
This project demonstrates how to use Nuxt.js to create a server-side rendered Vue.js app on AWS Lambda and AWS API Gateway. | unknown |
+| [Simple Websocket Authorizers](https://github.com/serverless/examples/tree/master/)
The example shows you how to deploy simple websocket authorizers | unknown |
+| [AWS NodeJS Example](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to deploy a simple NodeJS function running on AWS Lambda using the Serverless Framework. | unknown |
+| [AWS Serverless Alexa Skill example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup your own Alexa skill using AWS Lambdas. | unknown |
+| [AWS API Gateway Custom Authorizer Function with Auth0 example in Python](https://github.com/serverless/examples/tree/master/)
This is an example of how to protect API endpoints with Auth0, JSON Web Tokens (jwt) and a custom authorizer lambda function in Python 3. | unknown |
+| [Python Flask API on AWS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to develop and deploy a simple Python Flask API running on AWS Lambda using the Serverless Framework. | unknown |
+| [Python Flask API backed by DynamoDB on AWS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to develop and deploy a simple Python Flask API service backed by DynamoDB running on AWS Lambda using the Serverless Framework. | unknown |
+| [Simple LINE bot](https://github.com/serverless/examples/tree/master/)
This is a simple echo bot on LINE bot. | unknown |
+| [AWS Serverless REST API with DynamoDB store and presigned URLs example in Python 3.6.](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a RESTful Web Service allowing you to create, list, get, update and delete Assets. DynamoDB is used to store the data. | unknown |
+| [AWS Serverless REST API with DynamoDB store example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a RESTful Web Service allowing you to create, list, get, update and delete Todos. DynamoDB is used to store the data. | unknown |
+| [AWS Serverless REST API with FaunaDB store example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a RESTful Web Service allowing you to create, list, get, update and delete Todos. FaunaDB is used to store the data. | unknown |
+| [AWS Python Rest API with Pymongo](https://github.com/serverless/examples/tree/master/)
AWS Python Rest API with Pymongo Example | unknown |
+| [AWS Serverless REST API with DynamoDB store example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a RESTful Web Service allowing you to create, list, get, update and delete Todos. DynamoDB is used to store the data. | unknown |
+| [AWS Simple HTTP Endpoint example in Python](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to make a simple REST API with Python running on AWS Lambda and API Gateway using the traditional Serverless Framework. | unknown |
+| [AWS Simple HTTP Endpoint example in Python](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to make a simple HTTP API with Python running on AWS Lambda and API Gateway using the Serverless Framework. | unknown |
+| [AWS Python Scheduled Cron example in Python](https://github.com/serverless/examples/tree/master/)
This is an example of creating a function that runs as a cron job using the serverless ''schedule'' event. | unknown |
+| [AWS Simple HTTP Endpoint example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint. Once you ping it, it will reply with the current time. | unknown |
+| [Python SQS Producer Consumer on AWS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to develop and deploy a simple SQS-based producer-consumer service running on AWS Lambda using the traditional Serverless Framework. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup an echo Telegram Bot using the Serverless Framework. | unknown |
+| [AWS Python Example](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to deploy a Python function running on AWS Lambda using the Serverless Framework. | unknown |
+| [Ruby LINE bot](https://github.com/serverless/examples/tree/master/)
This example shows you how to create a LINE bot using Ruby. | unknown |
+| [AWS Simple HTTP Endpoint example in Ruby](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint. Once you ping it, it will reply with the current time. | unknown |
+| [Ruby Sinatra API backed by DynamoDB on AWS](https://github.com/serverless/examples/tree/master/)
This template demonstrates how to develop and deploy a simple Ruby Sinatra API service backed by DynamoDB running on AWS Lambda using the traditional Serverless Framework. | unknown |
+| [AWS Ruby scheduled cron example backed by DynamoDB](https://github.com/serverless/examples/tree/master/)
This is an example of creating a function that runs as a cron job using the serverless 'schedule' event. With the usage of the AWS Lambda function, it creates a record to the DynamoDB each and every 30 minutes. | unknown |
+| [AWS Ruby Step Functions](https://github.com/serverless/examples/tree/master/)
AWS Ruby example that make usage of AWS Step Functions with AWS Lambda, DynamoDB and Step Functions flows. | unknown |
+| [Serverless AWS Ruby SQS with DynamoDB example](https://github.com/serverless/examples/tree/master/)
A serverless ruby example that creates DynamoDB records with the usage of SQS, API Gateway, and AWS Lambda functions. | unknown |
+| [AWS Serverless Boilerplate example in Rust](https://github.com/serverless/examples/tree/master/)
This example shows a Serverless boilerplate in Rust. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a serverless Line Bot using Node.js. | unknown |
+| [Azure Simple HTTP Endpoint example in NodeJS](https://github.com/serverless/examples/tree/master/)
In this example, we deploy an HTTP Node.js Azure Function. This example shows you how to read properties off of a query string or the request body, then set a result back to Azure. | unknown |
+| [TODO](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a serverless Telegram Bot on Azure. | unknown |
+| [Using Azure Service Queue to trigger Azure Function](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to trigger an Azure function when a message arrives in Service Bus Queue | unknown |
+| [GCF Simple HTTP Endpoint example in golang](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple golang HTTP GET endpoint on GCP Cloud Functions. When you ping the endpoint we've set up you'll see the time returned for the given request type. | unknown |
+| [GCF Simple HTTP Endpoint example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint. | unknown |
+| [Typescript HTTP Endpoint](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple Typescript HTTP endpoint on GCP. | unknown |
+| [GCF Simple HTTP Endpoint example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple python HTTP GET endpoint on GCP Cloud Functions. When you ping the endpoint we've set up you'll see the time returned for the given request type. | unknown |
+| [Kubeless Serverless Simple function example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates a simple function example in Python. | unknown |
+| [Kubeless Serverless Simple scheduled function example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates a simple sexample in Python for a scheduled function. | unknown |
+| [OpenWhisk Serverless Boilerplate example in Go](https://github.com/serverless/examples/tree/master/)
This example shows a Serverless boilerplate in Go. | unknown |
+| [OpenWhisk Serverless Boilerplate using Docker example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example shows a Serverless boilerplate using Docker in NodeJS. | unknown |
+| [OpenWhisk Serverless Chaining Functions example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates chaining functions in NodeJS. | unknown |
+| [OpenWhisk Serverless Scheduled Cron job example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates scheduleding a cron job in NodeJS. | unknown |
+| [OpenWhisk Simple HTTP Endpoint example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint. | unknown |
+| [OpenWhisk Serverless Simple example in NodeJS](https://github.com/serverless/examples/tree/master/)
This example demonstrates a simple example in NodeJS. | unknown |
+| [OpenWhisk Serverless Simple example in PHP](https://github.com/serverless/examples/tree/master/)
This example demonstrates a simple example in PHP. | unknown |
+| [OpenWhisk Serverless Scheduled Cron job example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates scheduleding a cron job. | unknown |
+| [OpenWhisk Simple HTTP Endpoint example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint. | unknown |
+| [OpenWhisk Serverless Simple example in Python](https://github.com/serverless/examples/tree/master/)
This example demonstrates a simple example in Python. | unknown |
+| [OpenWhisk Serverless Simple example in Ruby](https://github.com/serverless/examples/tree/master/)
This example demonstrates a simple example in Ruby. | unknown |
+| [OpenWhisk Serverless Boilerplate example in Rust](https://github.com/serverless/examples/tree/master/)
This example shows a Serverless boilerplate in Rust. | unknown |
+| [OpenWhisk Swift example with external libraries and pre compiled binaries](https://github.com/serverless/examples/tree/master/)
This example shows you how to use external packages and deploy binaries | unknown |
+| [OpenWhisk Serverless Scheduled Cron job example in Swift](https://github.com/serverless/examples/tree/master/)
This example demonstrates scheduling a cron job. | unknown |
+| [OpenWhisk Simple HTTP Endpoint example in Swift](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup a simple HTTP GET endpoint. | unknown |
+| [OpenWhisk Serverless Simple example in Swift](https://github.com/serverless/examples/tree/master/)
This example demonstrates a simple example in Swift. | unknown |
+| [Twilio Forward a Call](https://github.com/serverless/examples/tree/master/)
This example projects helps you deploy a serverless function to the Twilio runtime. The function responds the TwiML configuration to forward phone call. | unknown |
+| [Serverless Lambda S3 Demonstration](https://github.com/serverless/examples/tree/master/)
This project demonstrates how the Serverless Framework can be used to deploy a NodeJS Lambda function that responds to events in an S3 bucket. | unknown |
+| [Spiderless, Web Spider on Serverless](https://github.com/serverless/examples/tree/master/)
A web spider / scraper / website change detector built with Lambda, API Gateway, DynamoDB and SNS | unknown |
+| [AWS Demo Java Spring Cloud Function Serverless](https://github.com/serverless/examples/tree/master/)
If Java is your choice of programming language-Spring Cloud Function,Serverless Framework makes a great technology stack. It boosts developer productivity by decoupling from Vendor specific FaaS API, and deployment activities. | unknown |
+| [Serverless Architecture Boilerplate](https://github.com/serverless/examples/tree/master/)
Boilerplate to organize and deploy big projects using Serverless and CloudFormation on AWS | unknown |
+| [JwtAuthorizr](https://github.com/serverless/examples/tree/master/)
Custom JWT Authorizer Lambda function for Amazon API Gateway with Bearer JWT | unknown |
+| [Slack signup serverless](https://github.com/serverless/examples/tree/master/)
Serverless signup to Slack and more. Lambda with Python, StepFunctions, and Web front end. Python boilerplate included. | unknown |
+| [Serverless graphql api](https://github.com/serverless/examples/tree/master/)
Serverless GraphQL API using Lambda and DynamoDB | unknown |
+| [Serverless screenshot](https://github.com/serverless/examples/tree/master/)
Serverless Screenshot Service using PhantomJS | unknown |
+| [Serverless postgraphql](https://github.com/serverless/examples/tree/master/)
GraphQL endpoint for PostgreSQL using postgraphql | unknown |
+| [Serverless messenger boilerplate](https://github.com/serverless/examples/tree/master/)
Serverless messenger bot boilerplate | unknown |
+| [Serverless npm registry](https://github.com/serverless/examples/tree/master/)
Serverless private npm registry, proxy and cache. | unknown |
+| [Serverless facebook quotebot](https://github.com/serverless/examples/tree/master/)
100% Serverless Facebook messenger chatbot which will respond with inspiring quotes | unknown |
+| [Serverless slack trevorbot](https://github.com/serverless/examples/tree/master/)
Slack bot for info on where in the world is Trevor Gerhardt? | unknown |
+| [Pfs email serverless](https://github.com/serverless/examples/tree/master/)
This is a lambda function created by the serverless framework. It searches through members in our mongodb who have not been sent emails and sends them an email with their custom token to unlock the pledge free stream. It then marks those members off as already receiving the email. | unknown |
+| [Plaid cashburndown service](https://github.com/serverless/examples/tree/master/)
Service for calculating cash burndown with plaid. Frontend code can be found here: https://github.com/cplee/cashburndown-site | unknown |
+| [Cordis serverless](https://github.com/serverless/examples/tree/master/)
A serverless API for EU Cordis data | unknown |
+| [Serverless newsletter signup](https://github.com/serverless/examples/tree/master/)
Saves user details into DynamoDB table. Required values are email, first_name and last_name. | unknown |
+| [Serverless slack cron](https://github.com/serverless/examples/tree/master/)
Lambda function which sends messages to Slack channel in regular intervals via cron trigger. | unknown |
+| [Sls access counter](https://github.com/serverless/examples/tree/master/)
Site visitor counter | unknown |
+| [Sls form mail](https://github.com/serverless/examples/tree/master/)
Send SNS email from form data | unknown |
+| [Serverless python sample](https://github.com/serverless/examples/tree/master/)
A simple serverless python sample with REST API endpoints and dependencies | unknown |
+| [Serverless slack emojibot](https://github.com/serverless/examples/tree/master/)
Serverless slack bot for emoji | unknown |
+| [Serverless cloudwatch rds custom metrics](https://github.com/serverless/examples/tree/master/)
A NodeJS-based MySQL RDS Data Collection script to push Custom Metrics to Cloudwatch with Serverless | unknown |
+| [Sc5 serverless boilerplate](https://github.com/serverless/examples/tree/master/)
A boilerplate that contains setup for test-driven development | unknown |
+| [Serverless blog to podcast](https://github.com/serverless/examples/tree/master/)
Service that reads RSS feed and converts the entries to a podcast feed and audio files using Amazon Polly | unknown |
+| [Offset trump](https://github.com/serverless/examples/tree/master/)
Single page app using Serverless (C# runtime) and S3 site hosting. Pledge to do a good thing for the next four years to offset the potential negative effects of the US Presidency | unknown |
+| [Serverless url shortener](https://github.com/serverless/examples/tree/master/)
A simple url-shortener, using Serverless framework | unknown |
+| [Serverless html pdf](https://github.com/serverless/examples/tree/master/)
Service that convert HTML to PDF using PhantomJS's rasterize example. | unknown |
+| [Serverless examples cached rds ws](https://github.com/serverless/examples/tree/master/)
A serverless framework example project that uses API Gateway, ElastiCache, and RDS PostgreSQL. | unknown |
+| [Bittman](https://github.com/serverless/examples/tree/master/)
A serverless project that follows a stock trading algorithm and uses scheduled functions to save data to DynamoDB and send emails through Mailgun. | unknown |
+| [Adoptable pet bot](https://github.com/serverless/examples/tree/master/)
Tweets adoptable pets using Serverless (Node.js) and AWS Lambda | unknown |
+| [Owntracks serverless](https://github.com/serverless/examples/tree/master/)
A serverless implementation of the OwnTracks HTTP backend | unknown |
+| [Serverless modern koa](https://github.com/serverless/examples/tree/master/)
Serverless modern koa starter kit | unknown |
+| [Serverless ReactJS Universal Rendering Boilerplate](https://github.com/serverless/examples/tree/master/)
ReactJS web app Starter kit does universal (isomorphic) rendering with Serverless | unknown |
+| [Open Bot](https://github.com/serverless/examples/tree/master/)
An unoptionated Github bot driven by a configuration file in the repository | unknown |
+| [Aws ses serverless example](https://github.com/serverless/examples/tree/master/)
AWS SES example in NodeJS using lambda | unknown |
+| [Aws node signed uploads](https://github.com/serverless/examples/tree/master/)
Upload files larger than 10MB with AWS Lambda and API Gateway. Can be developed and tested locally. | unknown |
+| [SQS Worker with AWS Lambda and CloudWatch Alarms](https://github.com/serverless/examples/tree/master/)
Process messages stored in SQS with an [auto-scaled AWS Lambda worker](https://sbstjn.com/serverless-sqs-worker-with-aws-lambda.html) function. | unknown |
+| [Serverless image manager](https://github.com/serverless/examples/tree/master/)
image upload / download with resizing. Used API gateway's binary support & serverless | unknown |
+| [Amazon Kinesis Streams fan out via Kinesis Analytics](https://github.com/serverless/examples/tree/master/)
Use Amazon Kinesis Analytics to fan-out your Kinesis Streams and avoid read throttling. | unknown |
+| [HoneyLambda](https://github.com/serverless/examples/tree/master/)
a simple, serverless application designed to create and monitor URL {honey}tokens, on top of AWS Lambda and Amazon API Gateway | unknown |
+| [Faultline](https://github.com/serverless/examples/tree/master/)
Error tracking tool on AWS managed services. | unknown |
+| [Stack Overflow Monitor](https://github.com/serverless/examples/tree/master/)
Monitor Stack Overflow questions and post them in a Slack channel | unknown |
+| [Serverless Analytics](https://github.com/serverless/examples/tree/master/)
Write your own Google Analytics clone and track website visitors serverless with API Gateway, Kinesis, Lambda, and DynamoDB. | unknown |
+| [Serverless + medium text to speech](https://github.com/serverless/examples/tree/master/)
Serverless-based, text-to-speech service for Medium articles | unknown |
+| [Serverless + java DynamoDB imlementation example](https://github.com/serverless/examples/tree/master/)
example for java programmers that want to work with AWS-Lambda and DynamoDB | unknown |
+| [AWS Cognito Custom User Pool Example](https://github.com/serverless/examples/tree/master/)
Example CloudFormation custom resource backed by a lambda using Cognito User Pools | unknown |
+| [AWS Lambda, Amazon API Gateway, S3, DynamoDB and Cognito Example](https://github.com/serverless/examples/tree/master/)
Step by step guide how to deploy simple web application on top of AWS Lambda, Amazon API Gateway, S3, DynamoDB and Cognito. | unknown |
+| [Run your Kubernetes Workloads on Amazon EC2 Spot Instances with Amazon EKS and Lambda Part 1](https://github.com/serverless/examples/tree/master/)
From this tutorial you'll learn how to add AWS EKS Cluster with Spot Instances to your cloud environment managed by Serverless framework | unknown |
+| [Serverless + lambda protobuf responses](https://github.com/serverless/examples/tree/master/)
Demo using API Gateway and Lambda with Protocol Buffer | unknown |
+| [Serverless Telegram Bot](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to setup an echo Telegram Bot using the Serverless Framework ⚡🤖 | unknown |
+| [Serverless + lambda + vpc + nat + redis](https://github.com/serverless/examples/tree/master/)
Demo using API Gateway and Lambda with VPC and NAT to access Internet and AWS Resource | unknown |
+| [Serverless Gitlab CI](https://github.com/serverless/examples/tree/master/)
Simple Gitlab CI template for automatic testing and deployments | unknown |
+| [Serverless ffmpeg](https://github.com/serverless/examples/tree/master/)
Bucket event driven FFMPEG using serverless. Input bucket => Serverless ffmpeg => Output bucket. | unknown |
+| [Realtime WW2 Alexa Skill](https://github.com/serverless/examples/tree/master/)
An alexa skill project that's using Alexa SDK. Can also be used for a working example of serverless-webpack (with use of async/await via babel). | unknown |
+| [Serverless Kakao Bot](https://github.com/serverless/examples/tree/master/)
Easy development for Kakaotalk Bot with Serverless | unknown |
+| [Personal Access Tokens Cron Check](https://github.com/serverless/examples/tree/master/)
Audit for leaked PAT in your Contentful organization. How to use serverless as cronjobs to keep your Personal Access Tokens secure | unknown |
+| [Daily Instance Backups with AMI Rotation](https://github.com/serverless/examples/tree/master/)
A simple Python application which scans through your entire AWS account for tagged instances, makes daily AMIs of them, and rotates their backups automatically | unknown |
+| [Serverless Instagram Crawler](https://github.com/serverless/examples/tree/master/)
Instagram hashtag Crawler with Lambda & DynamoDB. | unknown |
+| [Serverless Next.js Example](https://github.com/serverless/examples/tree/master/)
Next.js example project for development & deploy. | unknown |
+| [Serving binary files](https://github.com/serverless/examples/tree/master/)
Small example showing how to serve binary files using Serverless on AWS with the serverless-apigw-binary plugin, using generated Excel files as an example | unknown |
+| [Lambda PubSub via SNS Example](https://github.com/serverless/examples/tree/master/)
Example illustrating the flow: Lambda (publisher) => SNS => Lambda (consumer) | unknown |
+| [Serverless CloudWatch Proxy](https://github.com/serverless/examples/tree/master/)
Logging adapter that consumes log streams from AWS CloudWatch, streams them to other log destinations. Also capable of identying alerts and sending notifications via Slack/Email | unknown |
+| [Serverless side rendering with Vue.js and Nuxt.js](https://github.com/serverless/examples/tree/master/)
Sample project for using Nuxt.js to create a server-side rendered Vue.js app on AWS Lambda and AWS API Gateway. Can easily integrate with your own API or 3rd party APIs such as headless CMS, e-commerce or serverless architecture. | unknown |
+| [Aws mfa enforce](https://github.com/serverless/examples/tree/master/)
Serverless function to automate enforcement of Multi-Factor Authentication (MFA) to all AWS IAM users with access to AWS Management Console. | unknown |
+| [Vanity stargazer](https://github.com/serverless/examples/tree/master/)
Github vanity-stargazer is a serverless application to handle posting Github new star gazers to Slack | unknown |
+| [Fotopia Serverless](https://github.com/serverless/examples/tree/master/)
A photo archive web app including API, storage and face detection using serverless framework | unknown |
+| [Commenting API](https://github.com/serverless/examples/tree/master/)
A commenting api using Serverless Typescript GraphQl and Redis | unknown |
+| [Serverless node api dynamodb neo4j](https://github.com/serverless/examples/tree/master/)
Architecture example to stream DynamoDB data to a read-model using Neo4j | unknown |
+| [Serverless python rds cron](https://github.com/serverless/examples/tree/master/)
A serverless python example that periodically removes entries from AWS RDS | unknown |
+| [Nietzsche](https://github.com/serverless/examples/tree/master/)
A serverless application that fetches quotes from Goodreads and saves it to DynamoDB with example use cases using `Lambda`, `SNS`, `SQS`, `Step Functions`, `DynamoDB`, `API Gateway`, `CloudWatch` | unknown |
+| [Serverless DotNet BoilerPlate](https://github.com/serverless/examples/tree/master/)
A serverless starter solution for .NET Core, ready for local debugging in VS Code, HTTP Endpoint, etc. | unknown |
+| [Serverless Load Balancer](https://github.com/serverless/examples/tree/master/)
A sample that shows how to combine a load balancer with (vpc/subnet configuration) with a lambda. | unknown |
+| [Serverless api typescript template](https://github.com/serverless/examples/tree/master/)
A starter template for a Serverless API using Typescript and Jest | unknown |
+| [Serverless SNS SQS offline Example ](https://github.com/serverless/examples/tree/master/)
Minimal example of running serverless-offline with SQS and SNS in local environment. | unknown |
+| [Serverless RDS Log Sync S3](https://github.com/serverless/examples/tree/master/)
Annotated exmaple of a periodic scheduled task to sync changed RDS log files to an S3 bucket. | unknown |
+| [HTTP Headers Checks](https://github.com/serverless/examples/tree/master/)
Serverless Application to check integrity of the headers of a given HTTP server | unknown |
+| [Serverless Image Labeller](https://github.com/serverless/examples/tree/master/)
Serverless image labelling using Rekognition, s3, DynamoDB. | unknown |
+| [Serverless AppSync offline TypeScript with CircleCI](https://github.com/serverless/examples/tree/master/)
A Serverless Framework template that allows you to launch an AppSync emulator locally and proceed with development. Lambda Function build by TypeScript/Webpack. | unknown |
+| [Serverless Screenshot to S3](https://github.com/serverless/examples/tree/master/)
An example serverless stack which takes a screenshot using aws-chrome-lambda and puts it in s3. NodeJS. | unknown |
+| [Express Application With Lambda](https://github.com/serverless/examples/tree/master/)
This example demonstrates how to build an express application for AWS Lambda based on serverless framework. | unknown |
+| [DropBucket - Serverless file sharing](https://github.com/serverless/examples/tree/master/)
A serverless file sharing app powered by Cognito/S3/Lambda/API Gateway. Includes a React single-page app UI and virus scanning. | unknown |
+| [serverless-pokego](https://github.com/serverless/examples/tree/master/)
Serverless-powered API to fetch nearby Pokemon Go data | unknown |
+| [serverless-garden-aid](https://github.com/serverless/examples/tree/master/)
IoT Garden Aid Backend | unknown |
+| [serverless-react-boilerplate](https://github.com/serverless/examples/tree/master/)
A serverless react boilerplate for offline development | unknown |
+| [serverless-delivery-framework](https://github.com/serverless/examples/tree/master/)
This is a boilerplate for version release pipeline with serverless framework | unknown |
+| [serverless-mailgun-slack](https://github.com/serverless/examples/tree/master/)
A Serverless function for posting to a Slack Webhook in response to a Mailgun route | unknown |
+| [serverless-AWS-Rekognition-finpics](https://github.com/serverless/examples/tree/master/)
Use AWS Rekognition to provide a faces search of finpics.com | unknown |
+| [jrestless-examples](https://github.com/serverless/examples/tree/master/)
JRestless (Java / JAX-RS) examples for API Gateway Functions (plain JAX-RS), Spring, binary data requests/responses, custom authorizers and Cognito User Pool authorizers), SNS Functions) (asynchronous communication between functions) and Service Functions) (synchronous HTTP-like communication between functions - transparent through Feign) | unknown |
+| [AWS API Gateway Serverless project written in Go](https://github.com/serverless/examples/tree/master/)
A serverless project that contains an API Gateway endpoint powered by a Lambda function written in golang and built using [eawsy/aws-lambda-go-shim](https://github.com/eawsy/aws-lambda-go-shim). | unknown |
+| [video-preview-and-analysis-service](https://github.com/serverless/examples/tree/master/)
An event-driven service that generates labels using Amazon Rekognition and creates preview GIF animation from a video file. | unknown |
+| [Serverless ES6/7 CRUD API](https://github.com/serverless/examples/tree/master/)
Serverless Stack examples of backend CRUD APIs (DynamoDB + Lambda + API Gateway + Cognito User Pool authorizer) for React.js single-page app | unknown |
+| [AWS Lambda Power Tuning (powered by Step Functions)](https://github.com/serverless/examples/tree/master/)
Build a Step Functions state machine to optimize your AWS Lambda Function memory/power configuration. | unknown |
+| [React & Stripe Serverless Ecommerce](https://github.com/serverless/examples/tree/master/)
Serverless E-Commerce App with AWS Lambda, Stripe and React | unknown |
+| [Run your Kubernetes Workloads on Amazon EC2 Spot Instances with Amazon EKS and Lambda - Part 2](https://github.com/serverless/examples/tree/master/)
From this article you'll learn how to configure AWS Lambda functions to allow them manage your EKS Kubernetes cluster and run triggered jobs | unknown |
+| [Serverless Dashboard For Atom Editor](https://github.com/serverless/examples/tree/master/)
Atom editor package which allows you to deploy and visualize your serverless services with Serverless Framework on your editor. | unknown |
+| [Serverless SSH Command](https://github.com/serverless/examples/tree/master/)
Example of executing ssh command with OpenWhisk | unknown |
+| [JSON-Serverless](https://github.com/serverless/examples/tree/master/)
A simple & cheap serverless REST API using [json-server](https://github.com/typicode/json-server) in combination with AWS Lambda / S3 and the serverless framework | unknown |
+| [[Unly] Boilerplates Generator](https://github.com/serverless/examples/tree/master/)
A boilerplates generator, meant to help to quick-start Serverless (AWS Lambda/API GW) and OSS projects, using good defaults _(sentry for automated error handling, staging/prod environments, built-in support for env vars, jest support, babel/webpack)_, yet flexible to fit your needs. | unknown |
+| [Demo project for serverless-migrate-plugin](https://github.com/serverless/examples/tree/master/)
An example about how to use migrations in your serverless project with serverless-migrate-plugin | unknown |
+| [GoLive](https://github.com/serverless/examples/tree/master/)
Boilerplate to live stream using AWS MediaLive and MediaStore | unknown |
+| [Idempotent Serverless Functions](https://github.com/serverless/examples/tree/master/)
This repository demonstrates how to ensure the idempotence of serverless functions running on AWS Lambda. | unknown |
+| [File uploads using S3 presigned URLs](https://github.com/serverless/examples/tree/master/)
A Serverless photo upload service with API Gateway, S3 presigned URLs and Lambda. | unknown |
+| [Monorepo Typescript microservices](https://github.com/serverless/examples/tree/master/)
An opinionated Serverless template with several Typescript microservices in a monorepo | unknown |
+| [Serverless Python Twitch EventSub to Discord Webhook on AWS](https://github.com/serverless/examples/tree/master/)
This template takes go-live events from Twitch EventSub, and publishes the events through a Discord webhook | unknown |
@@ -170,123 +297,6 @@ To install any of these you can run:
serverless install -u https://github.com/author/project -n my-project
```
-
-| Example | Author |
-|:-------|:------:|
-| **[Aws Api Gateway Serverless Project Written In Go](https://github.com/yunspace/serverless-golang)**
A serverless project that contains an API Gateway endpoint powered by a Lambda function written in golang and built using [eawsy/aws-lambda-go-shim](https://github.com/eawsy/aws-lambda-go-shim). | [yunspace](http://github.com/yunspace) |
-| **[Aws Cognito Custom User Pool Example](https://github.com/bsdkurt/aws-node-custom-user-pool)**
Example CloudFormation custom resource backed by a lambda using Cognito User Pools | [bsdkurt](http://github.com/bsdkurt) |
-| **[Aws Lambda Power Tuning (Powered By Step Functions)](https://github.com/alexcasalboni/aws-lambda-power-tuning)**
Build a [Step Functions](https://aws.amazon.com/step-functions/) state machine to optimize your AWS Lambda Function memory/power configuration. | [alexcasalboni](http://github.com/alexcasalboni) |
-| **[Aws Lambda, Amazon Api Gateway, S3, Dynamodb And Cognito Example](https://github.com/andreivmaksimov/serverless-framework-aws-lambda-amazon-api-gateway-s3-dynamodb-and-cognito)**
Step by step guide how to deploy simple web application on top of AWS Lambda, Amazon API Gateway, S3, DynamoDB and Cognito. | [andreivmaksimov](http://github.com/andreivmaksimov) |
-| **[Aws Demo Java Spring Cloud Function Serverless](https://github.com/mbsambangi/aws-java-spring-cloud-function-demo)**
If Java is your choice of programming language-Spring Cloud Function,Serverless Framework makes a great technology stack. It boosts developer productivity by decoupling from Vendor specific FaaS API, and deployment activities. | [mbsambangi](http://github.com/mbsambangi) |
-| **[Amazon Kinesis Streams Fan Out Via Kinesis Analytics](https://github.com/alexcasalboni/kinesis-streams-fan-out-kinesis-analytics)**
Use [Amazon Kinesis Analytics](https://aws.amazon.com/kinesis/analytics/) to fan-out your Kinesis Streams and avoid read throttling. | [alexcasalboni](http://github.com/alexcasalboni) |
-| **[Commenting Api](https://github.com/AyoubEd/serverless_typescript_graphQl_commentingService)**
A commenting api using Serverless Typescript GraphQl and Redis | [AyoubEd](http://github.com/AyoubEd) |
-| **[Daily Instance Backups With Ami Rotation](https://github.com/AndrewFarley/AWSAutomatedDailyInstanceAMISnapshots)**
A simple Python application which scans through your entire AWS account for tagged instances, makes daily AMIs of them, and rotates their backups automatically | [AndrewFarley](http://github.com/AndrewFarley) |
-| **[Demo Project For Serverless Migrate Plugin](https://github.com/EliuX/serverless-migrate-plugin/tree/master/example)**
An example about how to use migrations in your serverless project with serverless-migrate-plugin | [EliuX](http://github.com/EliuX) |
-| **[Express Application With Lambda](https://github.com/HoseungJang/serverless-lambda-express-example)**
This example demonstrates how to build an express application for AWS Lambda based on serverless framework. | [HoseungJang](http://github.com/HoseungJang) |
-| **[File uploads using S3 presigned URLs](https://github.com/marchetti2/aws-node-serverless-upload-presigned-url)**
A Serverless photo upload service with API Gateway, S3 presigned URLs and Lambda. | [marchetti2](https://github.com/marchetti2) |
-| **[Fotopia Serverless](https://github.com/mbudm/fotopia-serverless)**
A photo archive web app including API, storage and face detection using serverless framework | [mbudm](http://github.com/mbudm) |
-| **[Golive](https://github.com/adimoraret/golive/)**
Boilerplate to live stream using AWS MediaLive and MediaStore | [adimoraret](http://github.com/adimoraret) |
-| **[Http Headers Checks](https://github.com/authdog/http-headers-check)**
Serverless Application to check integrity of the headers of a given HTTP server | [authdog](http://github.com/authdog) |
-| **[Json Serverless](https://github.com/pharindoko/json-serverless)**
A simple & cheap serverless REST API using [json-server](https://github.com/typicode/json-server) in combination with AWS Lambda / S3 and the serverless framework | [pharindoko](http://github.com/pharindoko) |
-| **[Lambda Pubsub Via Sns Example](https://github.com/didil/serverless-lambda-sns-example)**
Example illustrating the flow: Lambda (publisher) => SNS => Lambda (consumer) | [didil](http://github.com/didil) |
-| **[Monorepo Typescript microservices](https://github.com/fargito/serverless-monorepo-microservices-template)**
An opinionated Serverless template with several Typescript microservices in a monorepo | [fargito](http://github.com/fargito) |
-| **[Nietzsche](https://github.com/rpidanny/Nietzsche)**
A serverless application that fetches quotes from Goodreads and saves it to DynamoDB with example use cases using `Lambda`, `SNS`, `SQS`, `Step Functions`, `DynamoDB`, `API Gateway`, `CloudWatch` | [rpidanny](http://github.com/rpidanny) |
-| **[Open Bot](https://github.com/open-bot/open-bot)**
An unoptionated Github bot driven by a configuration file in the repository | [open-bot](http://github.com/open-bot) |
-| **[Personal Access Tokens Cron Check](https://github.com/madtrick/cfpat-audit)**
Audit for leaked PAT in your Contentful organization. How to use serverless as cronjobs to keep your Personal Access Tokens secure | [madtrick](http://github.com/madtrick) |
-| **[React & Stripe Serverless Ecommerce](https://github.com/patrick-michelberger/serverless-shop)**
Serverless E-Commerce App with AWS Lambda, Stripe and React | [patrick-michelberger](http://github.com/patrick-michelberger) |
-| **[Realtime Ww2 Alexa Skill](https://github.com/ceilfors/realtime-ww2-alexa)**
An alexa skill project that's using Alexa SDK. Can also be used for a working example of serverless-webpack (with use of async/await via babel). | [ceilfors](http://github.com/ceilfors) |
-| **[Run Your Kubernetes Workloads On Amazon Ec2 Spot Instances With Amazon Eks And Lambda Part 1](https://github.com/andreivmaksimov/aws-eks-spot-instances-serverless-framework-demo)**
From this tutorial you'll learn how to add AWS EKS Cluster with Spot Instances to your cloud environment managed by Serverless framework | [andreivmaksimov](http://github.com/andreivmaksimov) |
-| **[Run Your Kubernetes Workloads On Amazon Ec2 Spot Instances With Amazon Eks And Lambda Part 2](https://github.com/andreivmaksimov/aws-eks-spot-instances-serverless-framework-demo/tree/part2)**
From this article you'll learn how to configure AWS Lambda functions to allow them manage your EKS Kubernetes cluster and run triggered jobs | [andreivmaksimov](http://github.com/andreivmaksimov) |
-| **[Sqs Worker With Aws Lambda And Cloudwatch Alarms](https://github.com/sbstjn/sqs-worker-serverless)**
Process messages stored in SQS with an [auto-scaled AWS Lambda worker](https://sbstjn.com/serverless-sqs-worker-with-aws-lambda.html) function. | [sbstjn](http://github.com/sbstjn) |
-| **[Serverless + Lambda + Vpc + Nat + Redis](https://github.com/ittus/aws-lambda-vpc-nat-examples)**
Demo using API Gateway and Lambda with VPC and NAT to access Internet and AWS Resource | [ittus](http://github.com/ittus) |
-| **[Serverless Analytics](https://github.com/sbstjn/serverless-analytics)**
Write your own Google Analytics clone and track website visitors serverless with API Gateway, Kinesis, Lambda, and DynamoDB. | [sbstjn](http://github.com/sbstjn) |
-| **[Serverless Appsync Offline Typescript With Circleci](https://github.com/daisuke-awaji/serverless-appsync-offline-typescript-template)**
A Serverless Framework template that allows you to launch an AppSync emulator locally and proceed with development. Lambda Function build by TypeScript/Webpack. | [daisuke-awaji](http://github.com/daisuke-awaji) |
-| **[Serverless Architecture Boilerplate](https://github.com/msfidelis/serverless-architecture-boilerplate)**
Boilerplate to organize and deploy big projects using Serverless and CloudFormation on AWS | [msfidelis](http://github.com/msfidelis) |
-| **[Serverless Cloudwatch Proxy](https://github.com/abbasdgr8/cloudwatch-proxy)**
Logging adapter that consumes log streams from AWS CloudWatch, streams them to other log destinations. Also capable of identying alerts and sending notifications via Slack/Email | [abbasdgr8](http://github.com/abbasdgr8) |
-| **[Serverless Dashboard For Atom Editor](https://github.com/horike37/serverless-dashboard-for-atom)**
Atom editor package which allows you to deploy and visualize your serverless services with Serverless Framework on your editor. | [horike37](http://github.com/horike37) |
-| **[Serverless Es6/7 Crud Api](https://github.com/AnomalyInnovations/serverless-stack-demo-api)**
[Serverless Stack](http://serverless-stack.com) examples of backend CRUD APIs (DynamoDB + Lambda + API Gateway + Cognito User Pool authorizer) for [React.js single-page app](http://demo.serverless-stack.com) | [AnomalyInnovations](http://github.com/AnomalyInnovations) |
-| **[Serverless Gitlab Ci](https://github.com/bvincent1/serverless-gitlab-ci)**
Simple Gitlab CI template for automatic testing and deployments | [bvincent1](http://github.com/bvincent1) |
-| **[Serverless Image Labeller](https://github.com/nileshprasad137/serverless-image-labeller)**
Serverless image labelling using Rekognition, s3, DynamoDB. | [nileshprasad137](http://github.com/nileshprasad137) |
-| **[Serverless Instagram Crawler](https://github.com/kimcoder/serverless-instagram-crawler)**
Instagram hashtag Crawler with Lambda & DynamoDB. | [kimcoder](http://github.com/kimcoder) |
-| **[Serverless Kakao Bot](https://github.com/JisuPark/serverless-kakao-bot)**
Easy development for Kakaotalk Bot with Serverless | [JisuPark](http://github.com/JisuPark) |
-| **[Serverless Lambda S3 Demonstration](https://github.com/johncmunson/serverless-lambda-s3)**
This project demonstrates how the Serverless Framework can be used to deploy a NodeJS Lambda function that responds to events in an S3 bucket. | [johncmunson](http://github.com/johncmunson) |
-| **[Serverless Load Balancer](https://github.com/pharindoko/serverless-load-balancer)**
A sample that shows how to combine a load balancer with (vpc/subnet configuration) with a lambda. | [pharindoko](http://github.com/pharindoko) |
-| **[Serverless Next.js Example](https://github.com/kimcoder/serverless-nextjs)**
Next.js example project for development & deploy. | [kimcoder](http://github.com/kimcoder) |
-| **[Serverless Python Twitch Eventsub To Discord Webhook On Aws](https://github.com/dylmye/aws-python-twitch-eventsub-to-discord-webhook)**
This template takes go-live events from Twitch EventSub, and publishes the events through a Discord webhook | [dylmye](http://github.com/dylmye) |
-| **[Serverless Rds Log Sync S3](https://github.com/drocco007/serverless-aws-rds-logs-s3)**
Annotated exmaple of a periodic scheduled task to sync changed RDS log files to an S3 bucket. | [drocco007](http://github.com/drocco007) |
-| **[Serverless Reactjs Universal Rendering Boilerplate](https://github.com/TylorShin/react-universal-in-serverless)**
ReactJS web app Starter kit does universal (isomorphic) rendering with Serverless | [TylorShin](http://github.com/TylorShin) |
-| **[Serverless Sns Sqs Offline Example ](https://github.com/kenyipp/serverless-sns-sqs-offline-example)**
Minimal example of running serverless-offline with SQS and SNS in local environment. | [kenyipp](http://github.com/kenyipp) |
-| **[Serverless Ssh Command](https://github.com/upgle/serverless-openwhisk-ssh)**
Example of executing ssh command with OpenWhisk | [upgle](http://github.com/upgle) |
-| **[Serverless Screenshot To S3](https://github.com/slaytr/aws-node-screenshot-to-s3)**
An example serverless stack which takes a screenshot using aws-chrome-lambda and puts it in s3. NodeJS. | [slaytr](http://github.com/slaytr) |
-| **[Serverless Telegram Bot](https://github.com/jonatasbaldin/serverless-telegram-bot)**
This example demonstrates how to setup an echo Telegram Bot using the Serverless Framework ⚡🤖 | [jonatasbaldin](http://github.com/jonatasbaldin) |
-| **[Serverless Ffmpeg](https://github.com/kvaggelakos/serverless-ffmpeg)**
Bucket event driven FFMPEG using serverless. Input bucket => Serverless ffmpeg => Output bucket. | [kvaggelakos](http://github.com/kvaggelakos) |
-| **[Serverless Sns Api](https://github.com/eddielisc/serverless-sns-api)**
Build a SNS service on AWS, support backend API for SNS by device, by group and by user | [eddielisc](http://github.com/eddielisc) |
-| **[Serverless Side Rendering With Vue.js And Nuxt.js](https://github.com/adnanrahic/serverless-side-rendering-vue-nuxt)**
Sample project for using Nuxt.js to create a server-side rendered Vue.js app on AWS Lambda and AWS API Gateway. Can easily integrate with your own API or 3rd party APIs such as headless CMS, e-commerce or serverless architecture. | [adnanrahic](http://github.com/adnanrahic) |
-| **[Serving Binary Files](https://github.com/thomastoye/serverless-binary-files-xlsx)**
Small example showing how to serve binary files using Serverless on AWS with the serverless-apigw-binary plugin, using generated Excel files as an example | [thomastoye](http://github.com/thomastoye) |
-| **[Spiderless, Web Spider On Serverless](https://github.com/slashbit/spider-less)**
A web spider / scraper / website change detector built with Lambda, API Gateway, DynamoDB and SNS | [slashbit](http://github.com/slashbit) |
-| **[Stack Overflow Monitor](https://github.com/picsoung/stackoverflowmonitor)**
Monitor Stack Overflow questions and post them in a Slack channel | [picsoung](http://github.com/picsoung) |
-| **[[Unly] Boilerplates Generator](https://github.com/UnlyEd/boilerplates-generator)**
A boilerplates generator, meant to help to quick-start Serverless (AWS Lambda/API GW) and OSS projects, using good defaults _(sentry for automated error handling, staging/prod environments, built-in support for env vars, jest support, babel/webpack)_, yet flexible to fit your needs. | [UnlyEd](http://github.com/UnlyEd) |
-| **[Adoptable Pet Bot](https://github.com/lynnaloo/adoptable-pet-bot)**
Tweets adoptable pets using Serverless (Node.js) and AWS Lambda | [lynnaloo](http://github.com/lynnaloo) |
-| **[Aws Mfa Enforce](https://github.com/Chan9390/aws-mfa-enforce)**
Serverless function to automate enforcement of Multi-Factor Authentication (MFA) to all AWS IAM users with access to AWS Management Console. | [Chan9390](http://github.com/Chan9390) |
-| **[Aws Node Signed Uploads](https://github.com/kalinchernev/aws-node-signed-uploads)**
Upload files larger than 10MB with AWS Lambda and API Gateway. Can be developed and tested locally. | [kalinchernev](http://github.com/kalinchernev) |
-| **[Aws Ses Serverless Example](https://github.com/lakshmantgld/aws-ses-serverless-example)**
AWS SES example in NodeJS using lambda | [lakshmantgld](http://github.com/lakshmantgld) |
-| **[Bablebot](https://github.com/abiglobalhealth/babelbot)**
Lambda + API Gateway: Zero-to-chatbot in <10 lines of JS. Built-in integrations for Messenger, Telegram, Kik, Line, Twilio, Skype, and Wechat. Or roll your own! | [abiglobalhealth](http://github.com/abiglobalhealth) |
-| **[Bittman](https://github.com/rhlsthrm/bittman)**
A serverless project that follows a stock trading algorithm and uses scheduled functions to save data to DynamoDB and send emails through Mailgun. | [rhlsthrm](http://github.com/rhlsthrm) |
-| **[Cordis Serverless](https://github.com/marzeelabs/cordis-serverless)**
A serverless API for EU Cordis data | [marzeelabs](http://github.com/marzeelabs) |
-| **[Faultline](https://github.com/faultline/faultline)**
Error tracking tool on AWS managed services. | [faultline](http://github.com/faultline) |
-| **[Giphy Bot](https://github.com/tywong/lambda-workshop-2016/tree/master/giphy-bot)**
giphy-bot for Facebook chat | [tywong](http://github.com/tywong) |
-| **[Grants Api Serverless](https://github.com/comicrelief/grants-api-serverless)**
ES6 API to consume data from an external API, ingest into Elasticsearch and return a queryable endpoint on top of Elasticsearch | [comicrelief](http://github.com/comicrelief) |
-| **[Honeylambda](https://github.com/0x4D31/honeyLambda)**
a simple, serverless application designed to create and monitor URL {honey}tokens, on top of AWS Lambda and Amazon API Gateway | [0x4D31](http://github.com/0x4D31) |
-| **[Jrestless Examples](https://github.com/bbilger/jrestless-examples)**
[JRestless](https://github.com/bbilger/jrestless) (Java / JAX-RS) examples for [API Gateway Functions](https://github.com/bbilger/jrestless-examples/tree/master/aws/gateway) ([plain JAX-RS](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-showcase), [Spring](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-spring), [binary data requests/responses](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-binary), [custom authorizers](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-security-custom-authorizer) and [Cognito User Pool authorizers](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-security-cognito-authorizer)), [SNS Functions](https://github.com/bbilger/jrestless-examples/blob/master/aws/sns/aws-sns-usage-example) (asynchronous communication between functions) and [Service Functions](https://github.com/bbilger/jrestless-examples/blob/master/aws/service/aws-service-usage-example) (synchronous HTTP-like communication between functions - transparent through Feign) | [bbilger](http://github.com/bbilger) |
-| **[Jwt Lambda Python](https://github.com/mikaelmork/jwt-auth.serverless)**
Minimal proof-of-concept implementation of JWT with Serverless / AWS Lambda | [mikaelmork](http://github.com/mikaelmork) |
-| **[Jwtauthorizr](https://github.com/serverlessbuch/jwtAuthorizr)**
Custom JWT Authorizer Lambda function for Amazon API Gateway with Bearer JWT | [serverlessbuch](http://github.com/serverlessbuch) |
-| **[Keboola Developer Portal](https://github.com/keboola/developer-portal)**
Keboola developer portal built with Serverless | [keboola](http://github.com/keboola) |
-| **[Offset Trump](https://github.com/FLGMwt/offset-trump)**
Single page app using Serverless (C# runtime) and S3 site hosting. Pledge to do a good thing for the next four years to offset the potential negative effects of the US Presidency | [FLGMwt](http://github.com/FLGMwt) |
-| **[Owntracks Serverless](https://github.com/dschep/owntracks-serverless)**
A serverless implementation of the OwnTracks HTTP backend | [dschep](http://github.com/dschep) |
-| **[Pfs Email Serverless](https://github.com/SCPR/pfs-email-serverless)**
This is a lambda function created by the serverless framework. It searches through members in our mongodb who have not been sent emails and sends them an email with their custom token to unlock the pledge free stream. It then marks those members off as already receiving the email. | [SCPR](http://github.com/SCPR) |
-| **[Plaid Cashburndown Service](https://github.com/cplee/cashburndown-service)**
Service for calculating cash burndown with plaid. Frontend code can be found here: https://github.com/cplee/cashburndown-site | [cplee](http://github.com/cplee) |
-| **[Sc5 Serverless Boilerplate](https://github.com/SC5/sc5-serverless-boilerplate)**
A boilerplate that contains setup for test-driven development | [SC5](http://github.com/SC5) |
-| **[Serverless + Java Dynamodb Imlementation Example](https://github.com/igorbakman/java-lambda-dynamodb)**
example for java programmers that want to work with AWS-Lambda and DynamoDB | [igorbakman](http://github.com/igorbakman) |
-| **[Serverless + Lambda Protobuf Responses](https://github.com/theburningmonk/lambda-protobuf-demo)**
Demo using API Gateway and Lambda with Protocol Buffer | [theburningmonk](http://github.com/theburningmonk) |
-| **[Serverless + Medium Text To Speech](https://github.com/RafalWilinski/serverless-medium-text-to-speech)**
Serverless-based, text-to-speech service for Medium articles | [RafalWilinski](http://github.com/RafalWilinski) |
-| **[Serverless Dotnet Boilerplate](https://github.com/pharindoko/serverlessDotNetSample)**
A serverless starter solution for .NET Core, ready for local debugging in VS Code, HTTP Endpoint, etc. | [pharindoko](http://github.com/pharindoko) |
-| **[Serverless Aws Rekognition Finpics](https://github.com/rgfindl/finpics)**
Use AWS Rekognition to provide a faces search of finpics.com | [rgfindl](http://github.com/rgfindl) |
-| **[Serverless Api Typescript Template](https://github.com/JoshuaToth/serverless-api-typescript-template)**
A starter template for a Serverless API using Typescript and Jest | [JoshuaToth](http://github.com/JoshuaToth) |
-| **[Serverless Blog To Podcast](https://github.com/SC5/serverless-blog-to-podcast)**
Service that reads RSS feed and converts the entries to a podcast feed and audio files using Amazon Polly | [SC5](http://github.com/SC5) |
-| **[Serverless Cloudwatch Rds Custom Metrics](https://github.com/AndrewFarley/serverless-cloudwatch-rds-custom-metrics)**
A NodeJS-based MySQL RDS Data Collection script to push Custom Metrics to Cloudwatch with Serverless | [AndrewFarley](http://github.com/AndrewFarley) |
-| **[Serverless Delivery Framework](https://github.com/99xt/serverless-delivery-framework)**
This is a boilerplate for version release pipeline with serverless framework | [99xt](http://github.com/99xt) |
-| **[Serverless Examples Cached Rds Ws](https://github.com/mugglmenzel/serverless-examples-cached-rds-ws)**
A serverless framework example project that uses API Gateway, ElastiCache, and RDS PostgreSQL. | [mugglmenzel](http://github.com/mugglmenzel) |
-| **[Serverless Facebook Quotebot](https://github.com/pmuens/quotebot)**
100% Serverless Facebook messenger chatbot which will respond with inspiring quotes | [pmuens](http://github.com/pmuens) |
-| **[Serverless Garden Aid](https://github.com/garden-aid/web-bff)**
IoT Garden Aid Backend | [garden-aid](http://github.com/garden-aid) |
-| **[Serverless Graphql Api](https://github.com/boazdejong/serverless-graphql-api)**
Serverless GraphQL API using Lambda and DynamoDB | [boazdejong](http://github.com/boazdejong) |
-| **[Serverless Html Pdf](https://github.com/calvintychan/serverless-html-pdf)**
Service that convert HTML to PDF using PhantomJS's rasterize example. | [calvintychan](http://github.com/calvintychan) |
-| **[Serverless Image Manager](https://github.com/TylorShin/lambda-image-manager)**
image upload / download with resizing. Used API gateway's binary support & serverless | [TylorShin](http://github.com/TylorShin) |
-| **[Serverless Mailgun Slack](https://github.com/Marcus-L/serverless-mailgun-slack)**
A Serverless function for posting to a Slack Webhook in response to a Mailgun route | [Marcus-L](http://github.com/Marcus-L) |
-| **[Serverless Messenger Boilerplate](https://github.com/SC5/serverless-messenger-boilerplate)**
Serverless messenger bot boilerplate | [SC5](http://github.com/SC5) |
-| **[Serverless Modern Koa](https://github.com/barczaG/serverless-modern-koa)**
Serverless modern koa starter kit | [barczaG](http://github.com/barczaG) |
-| **[Serverless Msg Gateway](https://github.com/yonahforst/msg-gateway)**
A messaging aggregator for kik, skype, twilio, telegram, & messenger. Send and receive messages in a standard format. | [yonahforst](http://github.com/yonahforst) |
-| **[Serverless Newsletter Signup](https://github.com/dschep/serverless-newsletter-signup)**
Saves user details into DynamoDB table. Required values are email, first_name and last_name. | [dschep](http://github.com/dschep) |
-| **[Serverless Node Api Dynamodb Neo4j](https://github.com/noetix/serverless-node-api-dynamodb-neo4j)**
Architecture example to stream DynamoDB data to a read-model using Neo4j | [noetix](http://github.com/noetix) |
-| **[Serverless Npm Registry](https://github.com/craftship/yith)**
Serverless private npm registry, proxy and cache. | [craftship](http://github.com/craftship) |
-| **[Serverless Pokego](https://github.com/jch254/pokego-serverless)**
Serverless-powered API to fetch nearby Pokemon Go data | [jch254](http://github.com/jch254) |
-| **[Serverless Postgraphql](https://github.com/rentrop/serverless-postgraphql)**
GraphQL endpoint for PostgreSQL using postgraphql | [rentrop](http://github.com/rentrop) |
-| **[Serverless Python Rds Cron](https://github.com/caulagi/serverless-python-rds-cron)**
A serverless python example that periodically removes entries from AWS RDS | [caulagi](http://github.com/caulagi) |
-| **[Serverless Python Sample](https://github.com/bennybauer/serverless-python-sample)**
A simple serverless python sample with REST API endpoints and dependencies | [bennybauer](http://github.com/bennybauer) |
-| **[Serverless React Boilerplate](https://github.com/99xt/serverless-react-boilerplate)**
A serverless react boilerplate for offline development | [99xt](http://github.com/99xt) |
-| **[Serverless Screenshot](https://github.com/svdgraaf/serverless-screenshot)**
Serverless Screenshot Service using PhantomJS | [svdgraaf](http://github.com/svdgraaf) |
-| **[Serverless Slack Cron](https://github.com/ivanderbu2/serverless-slack-cron)**
Lambda function which sends messages to Slack channel in regular intervals via cron trigger. | [ivanderbu2](http://github.com/ivanderbu2) |
-| **[Serverless Slack Emojibot](https://github.com/markhobson/emojibot)**
Serverless slack bot for emoji | [markhobson](http://github.com/markhobson) |
-| **[Serverless Slack Trevorbot](https://github.com/conveyal/trevorbot)**
Slack bot for info on where in the world is Trevor Gerhardt? | [conveyal](http://github.com/conveyal) |
-| **[Serverless Url Shortener](https://github.com/aletheia/serverless-url-shortener)**
A simple url-shortener, using Serverless framework | [aletheia](http://github.com/aletheia) |
-| **[Serverless Weekly2pocket App](https://github.com/s0enke/weekly2pocket)**
Serverless-powered API for sending posts to pocket app | [s0enke](http://github.com/s0enke) |
-| **[Slack Signup Serverless](https://github.com/dzimine/slack-signup-serverless)**
Serverless signup to Slack and more. Lambda with Python, StepFunctions, and Web front end. Python boilerplate included. | [dzimine](http://github.com/dzimine) |
-| **[Sls Access Counter](https://github.com/takahashim/sls-access-counter)**
Site visitor counter | [takahashim](http://github.com/takahashim) |
-| **[Sls Form Mail](https://github.com/takahashim/sls-form-mail)**
Send SNS email from form data | [takahashim](http://github.com/takahashim) |
-| **[Vanity Stargazer](https://github.com/silvermullet/vanity-stargazer)**
Github vanity-stargazer is a serverless application to handle posting Github new star gazers to Slack | [silvermullet](http://github.com/silvermullet) |
-| **[Video Preview And Analysis Service](https://github.com/laardee/video-preview-and-analysis-service)**
An event-driven service that generates labels using Amazon Rekognition and creates preview GIF animation from a video file. | [laardee](http://github.com/laardee) |
-| **[Idempotent Serverless Applications Examples](https://github.com/Nsupyq/idempotent-serverless-functions)**
Examples of how to write idempotent serverless functions. | [Nsupyq](https://github.com/Nsupyq) |
-
-
## Contributing
We are happy to accept more examples from the community. 🎉
@@ -295,19 +305,19 @@ We are happy to accept more examples from the community. 🎉
1. Make sure your contribution matches the linting setup for this repo:
- Run the linting via
+Run the linting via
- ```bash
- npm run lint
- ```
+```bash
+npm run lint
+```
2. Add a `package.json` file in your example with the name of the example and a `description` and any `dependencies` used.
3. Regenerate the README.md with the following command
- ```bash
- npm run docs
- ```
+```bash
+npm run docs
+```
4. Open a new pull request with your example. ⚡️
diff --git a/aws-node-cdk-extension/README.md b/aws-node-cdk-extension/README.md
new file mode 100644
index 000000000..b1ba00e16
--- /dev/null
+++ b/aws-node-cdk-extension/README.md
@@ -0,0 +1,11 @@
+# Welcome to your CDK JavaScript project
+
+This is a blank project for CDK development with JavaScript.
+
+The `cdk.json` file tells the CDK Toolkit how to execute your app. The build step is not required when using JavaScript.
+
+## Useful commands
+
+* `serverless ext cdk deploy` deploy this stack to your default AWS account/region
+* `serverless ext cdk diff` compare deployed stack with current state
+* `serverless ext cdk synth` emits the synthesized CloudFormation template
\ No newline at end of file
diff --git a/aws-node-cdk-extension/bin/example.js b/aws-node-cdk-extension/bin/example.js
new file mode 100644
index 000000000..f92e13f60
--- /dev/null
+++ b/aws-node-cdk-extension/bin/example.js
@@ -0,0 +1,21 @@
+#!/usr/bin/env node
+
+const cdk = require('aws-cdk-lib');
+const { ExampleStack } = require('../lib/example-stack');
+
+const app = new cdk.App();
+new ExampleStack(app, 'ExampleStack', {
+ /* If you don't specify 'env', this stack will be environment-agnostic.
+ * Account/Region-dependent features and context lookups will not work,
+ * but a single synthesized template can be deployed anywhere. */
+
+ /* Uncomment the next line to specialize this stack for the AWS Account
+ * and Region that are implied by the current CLI configuration. */
+ // env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },
+
+ /* Uncomment the next line if you know exactly what Account and Region you
+ * want to deploy the stack to. */
+ // env: { account: '123456789012', region: 'us-east-1' },
+
+ /* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */
+});
\ No newline at end of file
diff --git a/aws-node-cdk-extension/cdk.json b/aws-node-cdk-extension/cdk.json
new file mode 100644
index 000000000..6e99ba065
--- /dev/null
+++ b/aws-node-cdk-extension/cdk.json
@@ -0,0 +1,63 @@
+{
+ "app": "node bin/example.js",
+ "progress": "events",
+ "watch": {
+ "include": [
+ "**"
+ ],
+ "exclude": [
+ "README.md",
+ "cdk*.json",
+ "jest.config.js",
+ "package*.json",
+ "yarn.lock",
+ "node_modules",
+ "test"
+ ]
+ },
+ "context": {
+ "@aws-cdk/aws-lambda:recognizeLayerVersion": true,
+ "@aws-cdk/core:checkSecretUsage": true,
+ "@aws-cdk/core:target-partitions": [
+ "aws",
+ "aws-cn"
+ ],
+ "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
+ "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
+ "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true,
+ "@aws-cdk/aws-iam:minimizePolicies": true,
+ "@aws-cdk/core:validateSnapshotRemovalPolicy": true,
+ "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true,
+ "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true,
+ "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true,
+ "@aws-cdk/aws-apigateway:disableCloudWatchRole": true,
+ "@aws-cdk/core:enablePartitionLiterals": true,
+ "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true,
+ "@aws-cdk/aws-iam:standardizedServicePrincipals": true,
+ "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true,
+ "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true,
+ "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true,
+ "@aws-cdk/aws-route53-patters:useCertificate": true,
+ "@aws-cdk/customresources:installLatestAwsSdkDefault": false,
+ "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true,
+ "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true,
+ "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true,
+ "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true,
+ "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true,
+ "@aws-cdk/aws-redshift:columnId": true,
+ "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true,
+ "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true,
+ "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true,
+ "@aws-cdk/aws-kms:aliasNameRef": true,
+ "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true,
+ "@aws-cdk/core:includePrefixInUniqueNameGeneration": true,
+ "@aws-cdk/aws-efs:denyAnonymousAccess": true,
+ "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true,
+ "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true,
+ "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true,
+ "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true,
+ "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true,
+ "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true,
+ "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true
+ }
+}
\ No newline at end of file
diff --git a/aws-node-cdk-extension/lib/example-stack.js b/aws-node-cdk-extension/lib/example-stack.js
new file mode 100644
index 000000000..00f4bb03a
--- /dev/null
+++ b/aws-node-cdk-extension/lib/example-stack.js
@@ -0,0 +1,34 @@
+const { Stack, Duration, CfnOutput } = require('aws-cdk-lib')
+const sqs = require('aws-cdk-lib/aws-sqs')
+
+class ExampleStack extends Stack {
+ /**
+ *
+ * @param {Construct} scope
+ * @param {string} id
+ * @param {StackProps=} props
+ */
+ constructor (scope, id, props) {
+ super(scope, id, props)
+
+ // The code that defines your stack goes here
+
+ // example resource
+ const queue = new sqs.Queue(this, 'ExampleQueue', {
+ visibilityTimeout: Duration.seconds(300)
+ })
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const queueUrlOutput = new CfnOutput(this, 'queueUrl', {
+ value: queue.queueUrl
+ })
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const customOutput = new CfnOutput(this, 'customOutput', {
+ value: 'customOutputValue',
+ description: 'This is a custom output'
+ })
+ }
+}
+
+module.exports = { ExampleStack }
\ No newline at end of file
diff --git a/aws-node-cdk-extension/package.json b/aws-node-cdk-extension/package.json
new file mode 100644
index 000000000..42f928784
--- /dev/null
+++ b/aws-node-cdk-extension/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "example",
+ "version": "0.1.0",
+ "bin": {
+ "example": "bin/example.js"
+ },
+ "devDependencies": {
+ "aws-cdk": "2.131.0",
+ "jest": "^29.7.0"
+ },
+ "dependencies": {
+ "aws-cdk-lib": "2.131.0",
+ "constructs": "^10.0.0"
+ }
+}
\ No newline at end of file
diff --git a/aws-node-cdk-extension/serverless.yml b/aws-node-cdk-extension/serverless.yml
new file mode 100644
index 000000000..5ea1f55f5
--- /dev/null
+++ b/aws-node-cdk-extension/serverless.yml
@@ -0,0 +1,6 @@
+service: aws-node-cdk-extension
+
+cdk-instance:
+ extension: serverless/cdk@latest
+ config:
+ region: us-east-2
\ No newline at end of file
diff --git a/aws-node-express-api/README.md b/aws-node-express-api/README.md
index fea525540..2f7bf87be 100644
--- a/aws-node-express-api/README.md
+++ b/aws-node-express-api/README.md
@@ -1,23 +1,21 @@
# Serverless Framework Node Express API on AWS
-This template demonstrates how to develop and deploy a simple Node Express API service running on AWS Lambda using the traditional Serverless Framework.
+This template demonstrates how to develop and deploy a simple Node Express API service running on AWS Lambda using the Serverless Framework.
-## Anatomy of the template
-
-This template configures a single function, `api`, which is responsible for handling all incoming requests thanks to the `httpApi` event. To learn more about `httpApi` event configuration options, please refer to [httpApi event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api/). As the event is configured in a way to accept all incoming requests, `express` framework is responsible for routing and handling requests internally. Implementation takes advantage of `serverless-http` package, which allows you to wrap existing `express` applications. To learn more about `serverless-http`, please refer to corresponding [GitHub repository](https://github.com/dougmoscrop/serverless-http).
+This template configures a single function, `api`, which is responsible for handling all incoming requests using the `httpApi` event. To learn more about `httpApi` event configuration options, please refer to [httpApi event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api/). As the event is configured in a way to accept all incoming requests, the Express.js framework is responsible for routing and handling requests internally. This implementation uses the `serverless-http` package to transform the incoming event request payloads to payloads compatible with Express.js. To learn more about `serverless-http`, please refer to the [serverless-http README](https://github.com/dougmoscrop/serverless-http).
## Usage
@@ -37,35 +35,14 @@ serverless deploy
After running deploy, you should see output similar to:
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-node-express-api.zip file to S3 (711.23 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.................................
-Serverless: Stack update finished...
-Service Information
-service: aws-node-express-api
-stage: dev
-region: us-east-1
-stack: aws-node-express-api-dev
-resources: 12
-api keys:
- None
-endpoints:
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/
+```
+Deploying "aws-node-express-api" to stage "dev" (us-east-1)
+
+✔ Service deployed to stack aws-node-express-api-dev (96s)
+
+endpoint: ANY - https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com
functions:
- api: aws-node-express-api-dev-api
-layers:
- None
+ api: aws-node-express-api-dev-api (2.3 kB)
```
_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [`httpApi` event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api/).
@@ -74,54 +51,26 @@ _Note_: In current form, after deployment, your API is public and can be invoked
After successful deployment, you can call the created application via HTTP:
-```bash
+```
curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/
```
Which should result in the following response:
-```
-{"message":"Hello from root!"}
-```
-
-Calling the `/hello` path with:
-
-```bash
-curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/hello
-```
-
-Should result in the following response:
-
-```bash
-{"message":"Hello from path!"}
-```
-
-If you try to invoke a path or method that does not have a configured handler, e.g. with:
-
-```bash
-curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/nonexistent
-```
-
-You should receive the following response:
-
-```bash
-{"error":"Not Found"}
+```json
+{ "message": "Hello from root!" }
```
### Local development
-It is also possible to emulate API Gateway and Lambda locally by using `serverless-offline` plugin. In order to do that, execute the following command:
+The easiest way to develop and test your function is to use the `dev` command:
-```bash
-serverless plugin install -n serverless-offline
+```
+serverless dev
```
-It will add the `serverless-offline` plugin to `devDependencies` in `package.json` file as well as will add it to `plugins` in `serverless.yml`.
-
-After installation, you can start local emulation with:
+This will start a local emulator of AWS Lambda and tunnel your requests to and from AWS Lambda, allowing you to interact with your function as if it were running in the cloud.
-```
-serverless offline
-```
+Now you can invoke the function as before, but this time the function will be executed locally. Now you can develop your function locally, invoke it, and see the results immediately without having to re-deploy.
-To learn more about the capabilities of `serverless-offline`, please refer to its [GitHub repository](https://github.com/dherault/serverless-offline).
+When you are done developing, don't forget to run `serverless deploy` to deploy the function to the cloud.
diff --git a/aws-node-express-api/handler.js b/aws-node-express-api/handler.js
index 73a78fada..4ff86d4de 100644
--- a/aws-node-express-api/handler.js
+++ b/aws-node-express-api/handler.js
@@ -20,4 +20,4 @@ app.use((req, res, next) => {
});
});
-module.exports.handler = serverless(app);
+exports.handler = serverless(app);
diff --git a/aws-node-express-api/package.json b/aws-node-express-api/package.json
index b16219146..69810702b 100644
--- a/aws-node-express-api/package.json
+++ b/aws-node-express-api/package.json
@@ -3,7 +3,7 @@
"version": "1.0.0",
"description": "",
"dependencies": {
- "express": "^4.17.1",
- "serverless-http": "^2.7.0"
+ "express": "^4.19.2",
+ "serverless-http": "^3.2.0"
}
}
diff --git a/aws-node-express-api/serverless.template.yml b/aws-node-express-api/serverless.template.yml
deleted file mode 100644
index f29ef7f8e..000000000
--- a/aws-node-express-api/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-node-express-api
-org: serverlessinc
-description: Deploys a Node Express API service with Serverless Framework
-keywords: aws, serverless, faas, lambda, node, express
-repo: https://github.com/serverless/examples/aws-node-express-api
-license: MIT
diff --git a/aws-node-express-api/serverless.yml b/aws-node-express-api/serverless.yml
index 8a1fff8cd..7c0055d8b 100644
--- a/aws-node-express-api/serverless.yml
+++ b/aws-node-express-api/serverless.yml
@@ -1,13 +1,16 @@
service: aws-node-express-api
-frameworkVersion: '2 || 3'
+
+frameworkVersion: "4"
provider:
name: aws
- runtime: nodejs12.x
- lambdaHashingVersion: '20201221'
+ runtime: nodejs20.x
+ # Uncomment to easily set up a custom domain. Read the docs for more details:
+ # https://www.serverless.com/framework/docs/providers/aws/guide/domains
+ # domain: api.example.com
functions:
api:
handler: handler.handler
events:
- - httpApi: '*'
+ - httpApi: "*"
diff --git a/aws-node-express-dynamodb-api/README.md b/aws-node-express-dynamodb-api/README.md
index d3fdf78bc..7bfa9fed4 100644
--- a/aws-node-express-dynamodb-api/README.md
+++ b/aws-node-express-dynamodb-api/README.md
@@ -1,24 +1,23 @@
# Serverless Framework Node Express API on AWS
-This template demonstrates how to develop and deploy a simple Node Express API service, backed by DynamoDB database, running on AWS Lambda using the traditional Serverless Framework.
+This template demonstrates how to develop and deploy a simple Node Express API service, backed by DynamoDB table, running on AWS Lambda using the Serverless Framework.
+This template configures a single function, `api`, which is responsible for handling all incoming requests using the `httpApi` event. To learn more about `httpApi` event configuration options, please refer to [httpApi event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api/). As the event is configured in a way to accept all incoming requests, the Express.js framework is responsible for routing and handling requests internally. This implementation uses the `serverless-http` package to transform the incoming event request payloads to payloads compatible with Express.js. To learn more about `serverless-http`, please refer to the [serverless-http README](https://github.com/dougmoscrop/serverless-http).
-## Anatomy of the template
-
-This template configures a single function, `api`, which is responsible for handling all incoming requests thanks to the `httpApi` event. To learn more about `httpApi` event configuration options, please refer to [httpApi event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api/). As the event is configured in a way to accept all incoming requests, `express` framework is responsible for routing and handling requests internally. Implementation takes advantage of `serverless-http` package, which allows you to wrap existing `express` applications. To learn more about `serverless-http`, please refer to corresponding [GitHub repository](https://github.com/dougmoscrop/serverless-http). Additionally, it also handles provisioning of a DynamoDB database that is used for storing data about users. The `express` application exposes two endpoints, `POST /users` and `GET /user/{userId}`, which allow to create and retrieve users.
+Additionally, it also handles provisioning of a DynamoDB database that is used for storing data about users. The Express.js application exposes two endpoints, `POST /users` and `GET /user/:userId`, which create and retrieve a user record.
## Usage
@@ -38,35 +37,14 @@ serverless deploy
After running deploy, you should see output similar to:
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-node-express-dynamodb-api.zip file to S3 (718.53 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-....................................
-Serverless: Stack update finished...
-Service Information
-service: aws-node-express-dynamodb-api
-stage: dev
-region: us-east-1
-stack: aws-node-express-dynamodb-api-dev
-resources: 13
-api keys:
- None
-endpoints:
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/
+```
+Deploying "aws-node-express-dynamodb-api" to stage "dev" (us-east-1)
+
+✔ Service deployed to stack aws-node-express-dynamodb-api-dev (109s)
+
+endpoint: ANY - https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com
functions:
- api: aws-node-express-dynamodb-api-dev-api
-layers:
- None
+ api: aws-node-express-dynamodb-api-dev-api (3.8 MB)
```
_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [`httpApi` event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api/). Additionally, in current configuration, the DynamoDB table will be removed when running `serverless remove`. To retain the DynamoDB table even after removal of the stack, add `DeletionPolicy: Retain` to its resource definition.
@@ -75,86 +53,38 @@ _Note_: In current form, after deployment, your API is public and can be invoked
After successful deployment, you can create a new user by calling the corresponding endpoint:
-```bash
+```
curl --request POST 'https://xxxxxx.execute-api.us-east-1.amazonaws.com/users' --header 'Content-Type: application/json' --data-raw '{"name": "John", "userId": "someUserId"}'
```
Which should result in the following response:
-```bash
-{"userId":"someUserId","name":"John"}
+```json
+{ "userId": "someUserId", "name": "John" }
```
You can later retrieve the user by `userId` by calling the following endpoint:
-```bash
+```
curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/users/someUserId
```
Which should result in the following response:
-```bash
-{"userId":"someUserId","name":"John"}
-```
-
-If you try to retrieve user that does not exist, you should receive the following response:
-
-```bash
-{"error":"Could not find user with provided \"userId\""}
+```json
+{ "userId": "someUserId", "name": "John" }
```
### Local development
-It is also possible to emulate DynamoDB, API Gateway and Lambda locally using the `serverless-dynamodb-local` and `serverless-offline` plugins. In order to do that, run:
-
-```bash
-serverless plugin install -n serverless-dynamodb-local
-serverless plugin install -n serverless-offline
-```
-
-It will add both plugins to `devDependencies` in `package.json` file as well as will add it to `plugins` in `serverless.yml`. Make sure that `serverless-offline` is listed as last plugin in `plugins` section:
+The easiest way to develop and test your function is to use the `dev` command:
```
-plugins:
- - serverless-dynamodb-local
- - serverless-offline
+serverless dev
```
-You should also add the following config to `custom` section in `serverless.yml`:
+This will start a local emulator of AWS Lambda and tunnel your requests to and from AWS Lambda, allowing you to interact with your function as if it were running in the cloud.
-```
-custom:
- (...)
- dynamodb:
- start:
- migrate: true
- stages:
- - dev
-```
-
-Additionally, we need to reconfigure `AWS.DynamoDB.DocumentClient` to connect to our local instance of DynamoDB. We can take advantage of `IS_OFFLINE` environment variable set by `serverless-offline` plugin and replace:
-
-```javascript
-const dynamoDbClient = new AWS.DynamoDB.DocumentClient();
-```
-
-with the following:
-
-```javascript
-const dynamoDbClientParams = {};
-if (process.env.IS_OFFLINE) {
- dynamoDbClientParams.region = 'localhost'
- dynamoDbClientParams.endpoint = 'http://localhost:8000'
-}
-const dynamoDbClient = new AWS.DynamoDB.DocumentClient(dynamoDbClientParams);
-```
-
-After that, running the following command with start both local API Gateway emulator as well as local instance of emulated DynamoDB:
-
-```bash
-serverless offline start
-```
+Now you can invoke the function as before, but this time the function will be executed locally. Now you can develop your function locally, invoke it, and see the results immediately without having to re-deploy.
-To learn more about the capabilities of `serverless-offline` and `serverless-dynamodb-local`, please refer to their corresponding GitHub repositories:
-- https://github.com/dherault/serverless-offline
-- https://github.com/99x/serverless-dynamodb-local
+When you are done developing, don't forget to run `serverless deploy` to deploy the function to the cloud.
diff --git a/aws-node-express-dynamodb-api/handler.js b/aws-node-express-dynamodb-api/handler.js
index 8bc34d33e..0a548cb76 100644
--- a/aws-node-express-dynamodb-api/handler.js
+++ b/aws-node-express-dynamodb-api/handler.js
@@ -1,15 +1,23 @@
-const AWS = require("aws-sdk");
+const { DynamoDBClient } = require("@aws-sdk/client-dynamodb");
+
+const {
+ DynamoDBDocumentClient,
+ GetCommand,
+ PutCommand,
+} = require("@aws-sdk/lib-dynamodb");
+
const express = require("express");
const serverless = require("serverless-http");
const app = express();
const USERS_TABLE = process.env.USERS_TABLE;
-const dynamoDbClient = new AWS.DynamoDB.DocumentClient();
+const client = new DynamoDBClient();
+const docClient = DynamoDBDocumentClient.from(client);
app.use(express.json());
-app.get("/users/:userId", async function (req, res) {
+app.get("/users/:userId", async (req, res) => {
const params = {
TableName: USERS_TABLE,
Key: {
@@ -18,7 +26,8 @@ app.get("/users/:userId", async function (req, res) {
};
try {
- const { Item } = await dynamoDbClient.get(params).promise();
+ const command = new GetCommand(params);
+ const { Item } = await docClient.send(command);
if (Item) {
const { userId, name } = Item;
res.json({ userId, name });
@@ -29,11 +38,11 @@ app.get("/users/:userId", async function (req, res) {
}
} catch (error) {
console.log(error);
- res.status(500).json({ error: "Could not retreive user" });
+ res.status(500).json({ error: "Could not retrieve user" });
}
});
-app.post("/users", async function (req, res) {
+app.post("/users", async (req, res) => {
const { userId, name } = req.body;
if (typeof userId !== "string") {
res.status(400).json({ error: '"userId" must be a string' });
@@ -43,17 +52,15 @@ app.post("/users", async function (req, res) {
const params = {
TableName: USERS_TABLE,
- Item: {
- userId: userId,
- name: name,
- },
+ Item: { userId, name },
};
try {
- await dynamoDbClient.put(params).promise();
+ const command = new PutCommand(params);
+ await docClient.send(command);
res.json({ userId, name });
} catch (error) {
- console.log(error);
+ console.error(error);
res.status(500).json({ error: "Could not create user" });
}
});
@@ -64,5 +71,4 @@ app.use((req, res, next) => {
});
});
-
-module.exports.handler = serverless(app);
+exports.handler = serverless(app);
diff --git a/aws-node-express-dynamodb-api/package.json b/aws-node-express-dynamodb-api/package.json
index 2e1c7cd4f..5cf047e19 100644
--- a/aws-node-express-dynamodb-api/package.json
+++ b/aws-node-express-dynamodb-api/package.json
@@ -3,7 +3,9 @@
"version": "1.0.0",
"description": "",
"dependencies": {
- "express": "^4.17.1",
- "serverless-http": "^2.7.0"
+ "@aws-sdk/client-dynamodb": "^3.585.0",
+ "@aws-sdk/lib-dynamodb": "^3.585.0",
+ "express": "^4.19.2",
+ "serverless-http": "^3.2.0"
}
}
diff --git a/aws-node-express-dynamodb-api/serverless.template.yml b/aws-node-express-dynamodb-api/serverless.template.yml
deleted file mode 100644
index 520752083..000000000
--- a/aws-node-express-dynamodb-api/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-node-express-dynamodb-api
-org: serverlessinc
-description: Deploys a Node Express API service backed by DynamoDB with Serverless Framework
-keywords: aws, serverless, faas, lambda, node, express, dynamodb
-repo: https://github.com/serverless/examples/aws-node-express-dynamodb-api
-license: MIT
diff --git a/aws-node-express-dynamodb-api/serverless.yml b/aws-node-express-dynamodb-api/serverless.yml
index ac64d2e65..3c4f854d7 100644
--- a/aws-node-express-dynamodb-api/serverless.yml
+++ b/aws-node-express-dynamodb-api/serverless.yml
@@ -1,13 +1,18 @@
service: aws-node-express-dynamodb-api
-frameworkVersion: '2 || 3'
-custom:
- tableName: 'users-table-${sls:stage}'
+frameworkVersion: "4"
+
+stages:
+ default:
+ params:
+ tableName: "users-table-${sls:stage}"
provider:
name: aws
- runtime: nodejs12.x
- lambdaHashingVersion: '20201221'
+ runtime: nodejs20.x
+ # Uncomment to easily set up a custom domain. Read the docs for more details:
+ # https://www.serverless.com/framework/docs/providers/aws/guide/domains
+ # domain: api.example.com
iam:
role:
statements:
@@ -20,15 +25,15 @@ provider:
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- - Fn::GetAtt: [ UsersTable, Arn ]
+ - Fn::GetAtt: [UsersTable, Arn]
environment:
- USERS_TABLE: ${self:custom.tableName}
+ USERS_TABLE: ${param:tableName}
functions:
api:
handler: handler.handler
events:
- - httpApi: '*'
+ - httpApi: "*"
resources:
Resources:
@@ -42,4 +47,4 @@ resources:
- AttributeName: userId
KeyType: HASH
BillingMode: PAY_PER_REQUEST
- TableName: ${self:custom.tableName}
+ TableName: ${param:tableName}
diff --git a/aws-node-http-api/.gitignore b/aws-node-http-api/.gitignore
index 2b48c8bd5..2c4448065 100644
--- a/aws-node-http-api/.gitignore
+++ b/aws-node-http-api/.gitignore
@@ -1,6 +1,2 @@
-# package directories
node_modules
-jspm_packages
-
-# Serverless directories
-.serverless
\ No newline at end of file
+.serverless
diff --git a/aws-node-http-api/README.md b/aws-node-http-api/README.md
index 23c71d6dc..261011247 100644
--- a/aws-node-http-api/README.md
+++ b/aws-node-http-api/README.md
@@ -2,11 +2,11 @@
title: 'AWS Simple HTTP Endpoint example in NodeJS'
description: 'This template demonstrates how to make a simple HTTP API with Node.js running on AWS Lambda and API Gateway using the Serverless Framework.'
layout: Doc
-framework: v2
+framework: v4
platform: AWS
language: nodeJS
authorLink: 'https://github.com/serverless'
-authorName: 'Serverless, inc.'
+authorName: 'Serverless, Inc.'
authorAvatar: 'https://avatars1.githubusercontent.com/u/13742415?s=200&v=4'
-->
@@ -20,94 +20,50 @@ This template does not include any kind of persistence (database). For more adva
### Deployment
+In order to deploy the example, you need to run the following command:
+
+```
+serverless deploy
```
-$ serverless deploy
+
+After running deploy, you should see output similar to:
+
```
+Deploying "serverless-http-api" to stage "dev" (us-east-1)
-After deploying, you should see output similar to:
-
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-node-http-api.zip file to S3 (711.23 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.................................
-Serverless: Stack update finished...
-Service Information
-service: serverless-http-api
-stage: dev
-region: us-east-1
-stack: serverless-http-api-dev
-resources: 12
-api keys:
- None
-endpoints:
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/
+✔ Service deployed to stack serverless-http-api-dev (91s)
+
+endpoint: GET - https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/
functions:
- api: serverless-http-api-dev-hello
-layers:
- None
+ hello: serverless-http-api-dev-hello (1.6 kB)
```
-_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/apigateway/).
+_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [HTTP API (API Gateway V2) event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api).
### Invocation
After successful deployment, you can call the created application via HTTP:
-```bash
+```
curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/
```
-Which should result in response similar to the following (removed `input` content for brevity):
+Which should result in response similar to:
```json
-{
- "message": "Go Serverless v2.0! Your function executed successfully!",
- "input": {
- ...
- }
-}
+{ "message": "Go Serverless v4! Your function executed successfully!" }
```
### Local development
-You can invoke your function locally by using the following command:
-
-```bash
-serverless invoke local --function hello
-```
-
-Which should result in response similar to the following:
+The easiest way to develop and test your function is to use the `dev` command:
```
-{
- "statusCode": 200,
- "body": "{\n \"message\": \"Go Serverless v2.0! Your function executed successfully!\",\n \"input\": \"\"\n}"
-}
-```
-
-
-Alternatively, it is also possible to emulate API Gateway and Lambda locally by using `serverless-offline` plugin. In order to do that, execute the following command:
-
-```bash
-serverless plugin install -n serverless-offline
+serverless dev
```
-It will add the `serverless-offline` plugin to `devDependencies` in `package.json` file as well as will add it to `plugins` in `serverless.yml`.
-
-After installation, you can start local emulation with:
+This will start a local emulator of AWS Lambda and tunnel your requests to and from AWS Lambda, allowing you to interact with your function as if it were running in the cloud.
-```
-serverless offline
-```
+Now you can invoke the function as before, but this time the function will be executed locally. Now you can develop your function locally, invoke it, and see the results immediately without having to re-deploy.
-To learn more about the capabilities of `serverless-offline`, please refer to its [GitHub repository](https://github.com/dherault/serverless-offline).
+When you are done developing, don't forget to run `serverless deploy` to deploy the function to the cloud.
diff --git a/aws-node-http-api/handler.js b/aws-node-http-api/handler.js
index 69bddf913..6fcd10e65 100644
--- a/aws-node-http-api/handler.js
+++ b/aws-node-http-api/handler.js
@@ -1,15 +1,8 @@
-"use strict";
-
-module.exports.hello = async (event) => {
+exports.hello = async (event) => {
return {
statusCode: 200,
- body: JSON.stringify(
- {
- message: "Go Serverless v2.0! Your function executed successfully!",
- input: event,
- },
- null,
- 2
- ),
+ body: JSON.stringify({
+ message: "Go Serverless v4! Your function executed successfully!",
+ }),
};
};
diff --git a/aws-node-http-api/serverless.template.yml b/aws-node-http-api/serverless.template.yml
deleted file mode 100644
index e6dd8879c..000000000
--- a/aws-node-http-api/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-node-http-api
-org: serverlessinc
-description: Deploys a Node HTTP API service with traditional Serverless Framework
-keywords: aws, serverless, faas, lambda, node
-repo: https://github.com/serverless/examples/aws-node-http-api
-license: MIT
diff --git a/aws-node-http-api/serverless.yml b/aws-node-http-api/serverless.yml
index 8865fc18a..eaae95458 100644
--- a/aws-node-http-api/serverless.yml
+++ b/aws-node-http-api/serverless.yml
@@ -1,10 +1,12 @@
service: serverless-http-api
-frameworkVersion: '2 || 3'
+frameworkVersion: "4"
provider:
name: aws
- runtime: nodejs12.x
- lambdaHashingVersion: '20201221'
+ runtime: nodejs20.x
+ # Uncomment to easily set up a custom domain. Read the docs for more details:
+ # https://www.serverless.com/framework/docs/providers/aws/guide/domains
+ # domain: api.example.com
functions:
hello:
diff --git a/aws-node-scheduled-cron/README.md b/aws-node-scheduled-cron/README.md
index 396d83d5d..4858d1127 100644
--- a/aws-node-scheduled-cron/README.md
+++ b/aws-node-scheduled-cron/README.md
@@ -2,7 +2,7 @@
title: 'AWS Node Scheduled Cron example in NodeJS'
description: 'This is an example of creating a function that runs as a cron job using the serverless ''schedule'' event.'
layout: Doc
-framework: v1
+framework: v4
platform: AWS
language: nodeJS
priority: 1
@@ -13,133 +13,44 @@ authorAvatar: 'https://avatars3.githubusercontent.com/u/5679763?v=4&s=140'
# Serverless Framework Node Scheduled Cron on AWS
-This template demonstrates how to develop and deploy a simple cron-like service running on AWS Lambda using the traditional Serverless Framework.
-
-## Schedule event type
-
-This examples defines two functions, `cron` and `secondCron`, both of which are triggered by an event of `schedule` type, which is used for configuring functions to be executed at specific time or in specific intervals. For detailed information about `schedule` event, please refer to corresponding section of Serverless [docs](https://serverless.com/framework/docs/providers/aws/events/schedule/).
-
-When defining `schedule` events, we need to use `rate` or `cron` expression syntax.
-
-### Rate expressions syntax
-
-```pseudo
-rate(value unit)
-```
-
-`value` - A positive number
-
-`unit` - The unit of time. ( minute | minutes | hour | hours | day | days )
-
-In below example, we use `rate` syntax to define `schedule` event that will trigger our `rateHandler` function every minute
-
-```yml
-functions:
- rateHandler:
- handler: handler.run
- events:
- - schedule: rate(1 minute)
-```
-
-Detailed information about rate expressions is available in official [AWS docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#RateExpressions).
-
-
-### Cron expressions syntax
-
-```pseudo
-cron(Minutes Hours Day-of-month Month Day-of-week Year)
-```
-
-All fields are required and time zone is UTC only.
-
-| Field | Values | Wildcards |
-| ------------- |:--------------:|:-------------:|
-| Minutes | 0-59 | , - * / |
-| Hours | 0-23 | , - * / |
-| Day-of-month | 1-31 | , - * ? / L W |
-| Month | 1-12 or JAN-DEC| , - * / |
-| Day-of-week | 1-7 or SUN-SAT | , - * ? / L # |
-| Year | 192199 | , - * / |
-
-In below example, we use `cron` syntax to define `schedule` event that will trigger our `cronHandler` function every second minute every Monday through Friday
-
-```yml
-functions:
- cronHandler:
- handler: handler.run
- events:
- - schedule: cron(0/2 * ? * MON-FRI *)
-```
-
-Detailed information about cron expressions in available in official [AWS docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions).
+This template demonstrates how to develop and deploy a simple cron-like service running on AWS Lambda using the Serverless Framework.
+This examples defines a single function, `rateHandler` which is triggered by an event of `schedule` type at a rate of 1 per minute. For detailed information about `schedule` event, please refer to corresponding section of Serverless [docs](https://serverless.com/framework/docs/providers/aws/events/schedule/).
## Usage
### Deployment
-This example is made to work with the Serverless Framework dashboard, which includes advanced features such as CI/CD, monitoring, metrics, etc.
-
-In order to deploy with dashboard, you need to first login with:
+In order to deploy the example, you need to run the following command:
```
-serverless login
+serverless deploy
```
-and then perform deployment with:
+After running deploy, you should see output similar to:
```
-serverless deploy
-```
+Deploying "aws-node-scheduled-cron" to stage "dev" (us-east-1)
-After running deploy, you should see output similar to:
+✔ Service deployed to stack aws-node-scheduled-cron-dev (151s)
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-node-scheduled-cron.zip file to S3 (124.47 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.............................................
-Serverless: Stack update finished...
-Service Information
-service: aws-node-scheduled-cron
-stage: dev
-region: us-east-1
-stack: aws-node-scheduled-cron-dev
-resources: 16
-api keys:
- None
-endpoints:
- None
functions:
- rateHandler: aws-node-scheduled-cron-dev-rateHandler
- cronHandler: aws-node-scheduled-cron-dev-cronHandler
-layers:
- None
-Serverless: Publishing service to the Serverless Dashboard...
-Serverless: Successfully published your service to the Serverless Dashboard: https://app.serverless.com/xxxx/apps/xxxx/aws-node-scheduled-cron/dev/us-east-1
+ rateHandler: aws-node-scheduled-cron-dev-rateHandler (2.3 kB)
+
```
There is no additional step required. Your defined schedules becomes active right away after deployment.
-### Local invocation
+### Local development
-In order to test out your functions locally, you can invoke them with the following command:
+The easiest way to develop and test your function is to use the `dev` command:
```
-serverless invoke local --function rateHandler
+serverless dev
```
-After invocation, you should see output similar to:
+This will start a local emulator of AWS Lambda and tunnel your requests to and from AWS Lambda, allowing you to interact with your function as if it were running in the cloud.
-```bash
-Your cron function "aws-node-scheduled-cron-dev-rateHandler" ran at Fri Mar 05 2021 15:14:39 GMT+0100 (Central European Standard Time)
-```
+Now you can invoke the function as before, but this time the function will be executed locally. Now you can develop your function locally, invoke it, and see the results immediately without having to re-deploy.
+
+When you are done developing, don't forget to run `serverless deploy` to deploy the function to the cloud.
diff --git a/aws-node-scheduled-cron/handler.js b/aws-node-scheduled-cron/handler.js
index 488c903de..ab39e54bc 100644
--- a/aws-node-scheduled-cron/handler.js
+++ b/aws-node-scheduled-cron/handler.js
@@ -1,6 +1,4 @@
-'use strict';
-
-module.exports.run = async (event, context) => {
+exports.run = async () => {
const time = new Date();
- console.log(`Your cron function "${context.functionName}" ran at ${time}`);
+ console.log(`Your cron function ran at ${time}`);
};
diff --git a/aws-node-scheduled-cron/package.json b/aws-node-scheduled-cron/package.json
deleted file mode 100644
index e2d8736b3..000000000
--- a/aws-node-scheduled-cron/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "aws-scheduled-cron",
- "version": "1.0.0",
- "description": "Example of creating a function that runs as a cron job using the serverless `schedule` event",
- "author": "",
- "license": "MIT"
-}
diff --git a/aws-node-scheduled-cron/serverless.template.yml b/aws-node-scheduled-cron/serverless.template.yml
deleted file mode 100644
index aeb176d18..000000000
--- a/aws-node-scheduled-cron/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-node-scheduled-cron
-org: serverlessinc
-description: Deploys a Node Scheduled Cron service with traditional Serverless Framework
-keywords: aws, serverless, faas, lambda, node
-repo: https://github.com/serverless/examples/aws-node-scheduled-cron
-license: MIT
diff --git a/aws-node-scheduled-cron/serverless.yml b/aws-node-scheduled-cron/serverless.yml
index c1e83feaa..fdfdc26c4 100644
--- a/aws-node-scheduled-cron/serverless.yml
+++ b/aws-node-scheduled-cron/serverless.yml
@@ -1,21 +1,13 @@
service: aws-node-scheduled-cron
-frameworkVersion: '2 || 3'
-
+frameworkVersion: "4"
provider:
name: aws
- runtime: nodejs12.x
- lambdaHashingVersion: 20201221
+ runtime: nodejs20.x
functions:
rateHandler:
handler: handler.run
events:
- # Invoke Lambda function every minute
- schedule: rate(1 minute)
- cronHandler:
- handler: handler.run
- events:
- # Invoke Lambda function every 2nd minute from Mon-Fri
- - schedule: cron(0/2 * ? * MON-FRI *)
diff --git a/aws-node-sqs-worker/handler.js b/aws-node-sqs-worker/handler.js
index a97c66cab..cf3d2cde5 100644
--- a/aws-node-sqs-worker/handler.js
+++ b/aws-node-sqs-worker/handler.js
@@ -1,61 +1,5 @@
-const { SQS } = require("aws-sdk");
-
-const sqs = new SQS();
-
-const producer = async (event) => {
- let statusCode = 200;
- let message;
-
- if (!event.body) {
- return {
- statusCode: 400,
- body: JSON.stringify({
- message: "No body was found",
- }),
- };
- }
-
- try {
- await sqs
- .sendMessage({
- QueueUrl: process.env.QUEUE_URL,
- MessageBody: event.body,
- MessageAttributes: {
- AttributeName: {
- StringValue: "Attribute Value",
- DataType: "String",
- },
- },
- })
- .promise();
-
- message = "Message accepted!";
- } catch (error) {
- console.log(error);
- message = error;
- statusCode = 500;
- }
-
- return {
- statusCode,
- body: JSON.stringify({
- message,
- }),
- };
-};
-
-const consumer = async (event) => {
+exports.consumer = async (event) => {
for (const record of event.Records) {
- const messageAttributes = record.messageAttributes;
- console.log(
- "Message Attribute: ",
- messageAttributes.AttributeName.stringValue
- );
console.log("Message Body: ", record.body);
}
};
-
-module.exports = {
- producer,
- consumer,
-};
diff --git a/aws-node-sqs-worker/package.json b/aws-node-sqs-worker/package.json
index 8398f017c..aeb268535 100644
--- a/aws-node-sqs-worker/package.json
+++ b/aws-node-sqs-worker/package.json
@@ -3,8 +3,5 @@
"version": "1.0.0",
"description": "Serverless Framework Node SQS Producer-Consumer on AWS",
"author": "",
- "license": "MIT",
- "devDependencies": {
- "serverless-lift": "^1.1.2"
- }
+ "license": "MIT"
}
diff --git a/aws-node-sqs-worker/serverless.yml b/aws-node-sqs-worker/serverless.yml
index 33bdfe3f7..2eab0f0b5 100644
--- a/aws-node-sqs-worker/serverless.yml
+++ b/aws-node-sqs-worker/serverless.yml
@@ -1,26 +1,20 @@
service: aws-node-sqs-worker
-frameworkVersion: '2 || 3'
+frameworkVersion: '4'
provider:
name: aws
- runtime: nodejs12.x
- lambdaHashingVersion: '20201221'
-
-constructs:
- jobs:
- type: queue
- worker:
- handler: handler.consumer
+ runtime: nodejs20.x
functions:
producer:
- handler: handler.producer
+ handler: handler.consumer
events:
- - httpApi:
- method: post
- path: /produce
- environment:
- QUEUE_URL: ${construct:jobs.queueUrl}
+ - sqs: arn:aws:sqs:${aws:region}:${aws:accountId}:MyFirstQueue
+
+resources:
+ Resources:
+ JobQueue:
+ Type: AWS::SQS::Queue
+ Properties:
+ QueueName: MyFirstQueue
-plugins:
- - serverless-lift
diff --git a/aws-node/.gitignore b/aws-node/.gitignore
index 2b48c8bd5..d19fb7df5 100644
--- a/aws-node/.gitignore
+++ b/aws-node/.gitignore
@@ -1,6 +1,2 @@
-# package directories
node_modules
-jspm_packages
-
-# Serverless directories
.serverless
\ No newline at end of file
diff --git a/aws-node/README.md b/aws-node/README.md
index 878f0d933..3c7c034a4 100644
--- a/aws-node/README.md
+++ b/aws-node/README.md
@@ -1,20 +1,19 @@
-
# Serverless Framework AWS NodeJS Example
-This template demonstrates how to deploy a NodeJS function running on AWS Lambda using the traditional Serverless Framework. The deployed function does not include any event definitions as well as any kind of persistence (database). For more advanced configurations check out the [examples repo](https://github.com/serverless/examples/) which includes integrations with SQS, DynamoDB or examples of functions that are triggered in `cron`-like manner. For details about configuration of specific `events`, please refer to our [documentation](https://www.serverless.com/framework/docs/providers/aws/events/).
+This template demonstrates how to deploy a simple NodeJS function running on AWS Lambda using the Serverless Framework. The deployed function does not include any event definitions or any kind of persistence (database). For more advanced configurations check out the [examples repo](https://github.com/serverless/examples/) which include use cases like API endpoints, workers triggered by SQS, persistence with DynamoDB, and scheduled tasks. For details about configuration of specific events, please refer to our [documentation](https://www.serverless.com/framework/docs/providers/aws/events/).
## Usage
@@ -23,43 +22,25 @@ This template demonstrates how to deploy a NodeJS function running on AWS Lambda
In order to deploy the example, you need to run the following command:
```
-$ serverless deploy
+serverless deploy
```
After running deploy, you should see output similar to:
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-node.zip file to S3 (711.23 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.................................
-Serverless: Stack update finished...
-Service Information
-service: aws-node
-stage: dev
-region: us-east-1
-stack: aws-node-dev
-resources: 6
+```
+Deploying "aws-node" to stage "dev" (us-east-1)
+
+✔ Service deployed to stack aws-node-dev (90s)
+
functions:
- api: aws-node-dev-hello
-layers:
- None
+ hello: aws-node-dev-hello (1.5 kB)
```
### Invocation
After successful deployment, you can invoke the deployed function by using the following command:
-```bash
+```
serverless invoke --function hello
```
@@ -67,24 +48,21 @@ Which should result in response similar to the following:
```json
{
- "statusCode": 200,
- "body": "{\n \"message\": \"Go Serverless v2.0! Your function executed successfully!\",\n \"input\": {}\n}"
+ "statusCode": 200,
+ "body": "{\"message\":\"Go Serverless v4.0! Your function executed successfully!\"}"
}
```
### Local development
-You can invoke your function locally by using the following command:
+The easiest way to develop and test your function is to use the Serverless Framework's `dev` command:
-```bash
-serverless invoke local --function hello
+```
+serverless dev
```
-Which should result in response similar to the following:
+This will start a local emulator of AWS Lambda and tunnel your requests to and from AWS Lambda, allowing you to interact with your function as if it were running in the cloud.
-```
-{
- "statusCode": 200,
- "body": "{\n \"message\": \"Go Serverless v2.0! Your function executed successfully!\",\n \"input\": \"\"\n}"
-}
-```
+Now you can invoke the function as before, but this time the function will be executed locally. Now you can develop your function locally, invoke it, and see the results immediately without having to re-deploy.
+
+When you are done developing, don't forget to run `serverless deploy` to deploy the function to the cloud.
diff --git a/aws-node/handler.js b/aws-node/handler.js
index 2ca668b3f..f52161083 100644
--- a/aws-node/handler.js
+++ b/aws-node/handler.js
@@ -1,15 +1,8 @@
-'use strict';
-
-module.exports.hello = async (event) => {
+exports.hello = async (event) => {
return {
statusCode: 200,
- body: JSON.stringify(
- {
- message: 'Go Serverless v2.0! Your function executed successfully!',
- input: event,
- },
- null,
- 2
- ),
+ body: JSON.stringify({
+ message: 'Go Serverless v4.0! Your function executed successfully!'
+ })
};
};
diff --git a/aws-node/serverless.yml b/aws-node/serverless.yml
index f790ee010..08c0168c2 100644
--- a/aws-node/serverless.yml
+++ b/aws-node/serverless.yml
@@ -1,12 +1,10 @@
service: aws-node # NOTE: update this with your service name
-frameworkVersion: '2 || 3'
-
+frameworkVersion: '4'
provider:
name: aws
- runtime: nodejs12.x
- lambdaHashingVersion: 20201221
+ runtime: nodejs20.x
functions:
hello:
diff --git a/aws-python-flask-api/README.md b/aws-python-flask-api/README.md
index 2095d0b19..62db4a7a3 100644
--- a/aws-python-flask-api/README.md
+++ b/aws-python-flask-api/README.md
@@ -1,38 +1,24 @@
# Serverless Framework Python Flask API on AWS
-This template demonstrates how to develop and deploy a simple Python Flask API service running on AWS Lambda using the traditional Serverless Framework.
+This template demonstrates how to develop and deploy a simple Python Flask API service running on AWS Lambda using the Serverless Framework.
-
-## Anatomy of the template
-
-This template configures a single function, `api`, which is responsible for handling all incoming requests thanks to configured `http` events. To learn more about `http` event configuration options, please refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/apigateway/). As the events are configured in a way to accept all incoming requests, `Flask` framework is responsible for routing and handling requests internally. The implementation takes advantage of `serverless-wsgi`, which allows you to wrap WSGI applications such as Flask apps. To learn more about `serverless-wsgi`, please refer to corresponding [GitHub repository](https://github.com/logandk/serverless-wsgi). Additionally, the template relies on `serverless-python-requirements` plugin for packaging dependencies from `requirements.txt` file. For more details about `serverless-python-requirements` configuration, please refer to corresponding [GitHub repository](https://github.com/UnitedIncome/serverless-python-requirements).
+This template configures a single function, `api`, which is responsible for handling all incoming requests thanks to configured `http` events. To learn more about `http` event configuration options, please refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/apigateway/). As the events are configured in a way to accept all incoming requests, `Flask` framework is responsible for routing and handling requests internall y. The implementation takes advantage of `serverless-wsgi`, which allows you to wrap WSGI applications such as Flask apps. To learn more about `serverless-wsgi`, please refer to corresponding [GitHub repository](https://github.com/logandk/serverless-wsgi). Additionally, the template relies on `serverless-python-requirements` plugin for packaging dependencies from `requirements.txt` file. For more details about `serverless-python-requirements` configuration, please refer to corresponding [GitHub repository](https://github.com/UnitedIncome/serverless-python-requirements).
## Usage
-### Prerequisites
-
-In order to package your dependencies locally with `serverless-python-requirements`, you need to have `Python3.8` installed locally. You can create and activate a dedicated virtual environment with the following command:
-
-```bash
-python3.8 -m venv ./venv
-source ./venv/bin/activate
-```
-
-Alternatively, you can also use `dockerizePip` configuration from `serverless-python-requirements`. For details on that, please refer to corresponding [GitHub repository](https://github.com/UnitedIncome/serverless-python-requirements).
-
### Deployment
This example is made to work with the Serverless Framework dashboard, which includes advanced features such as CI/CD, monitoring, metrics, etc.
@@ -63,41 +49,21 @@ serverless deploy
After running deploy, you should see output similar to:
-```bash
-erverless: Using Python specified in "runtime": python3.8
-Serverless: Packaging Python WSGI handler...
-Serverless: Generated requirements from /home/xxx/xxx/xxx/examples/aws-python-flask-api/requirements.txt in /home/xxx/xxx/xxx/examples/aws-python-flask-api/.serverless/requirements.txt...
-Serverless: Using static cache of requirements found at /home/xxx/.cache/serverless-python-requirements/62f10436f9a1bb8040df30ef2db5736c8015b18256bf0b6f1b0cbb2640030244_slspyc ...
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Injecting required Python packages to package...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-python-flask-api.zip file to S3 (1.3 MB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.................................
-Serverless: Stack update finished...
-Service Information
-service: aws-python-flask-api
-stage: dev
-region: us-east-1
-stack: aws-python-flask-api-dev
-resources: 12
-api keys:
- None
+```
+Deploying "aws-python-flask-api" to stage "dev" (us-east-1)
+
+Using Python specified in "runtime": python3.12
+
+Packaging Python WSGI handler...
+
+✔ Service deployed to stack aws-python-flask-api-dev (104s)
+
endpoints:
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/{proxy+}
+ ANY - https://xxxxxxxxxe.execute-api.us-east-1.amazonaws.com/dev/
+ ANY - https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/dev/{proxy+}
functions:
- api: aws-python-flask-api-dev-api
-layers:
- None
+ api: aws-python-flask-api-dev-api (41 MB)
+
```
_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/apigateway/).
@@ -106,52 +72,40 @@ _Note_: In current form, after deployment, your API is public and can be invoked
After successful deployment, you can call the created application via HTTP:
-```bash
+```
curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/
```
Which should result in the following response:
-```
-{"message":"Hello from root!"}
+```json
+{ "message": "Hello from root!" }
```
Calling the `/hello` path with:
-```bash
+```
curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/hello
```
Should result in the following response:
-```bash
-{"message":"Hello from path!"}
-```
-
-If you try to invoke a path or method that does not have a configured handler, e.g. with:
-
-```bash
-curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/nonexistent
-```
-
-You should receive the following response:
-
-```bash
-{"error":"Not Found!"}
+```json
+{ "message": "Hello from path!" }
```
### Local development
Thanks to capabilities of `serverless-wsgi`, it is also possible to run your application locally, however, in order to do that, you will need to first install `werkzeug` dependency, as well as all other dependencies listed in `requirements.txt`. It is recommended to use a dedicated virtual environment for that purpose. You can install all needed dependencies with the following commands:
-```bash
+```
pip install werkzeug
pip install -r requirements.txt
```
At this point, you can run your application locally with the following command:
-```bash
+```
serverless wsgi serve
```
diff --git a/aws-python-flask-api/package.json b/aws-python-flask-api/package.json
index 4c1f7bd5c..44da8ce38 100644
--- a/aws-python-flask-api/package.json
+++ b/aws-python-flask-api/package.json
@@ -4,7 +4,7 @@
"description": "Example of a Python Flask API service with traditional Serverless Framework",
"author": "",
"devDependencies": {
- "serverless-python-requirements": "^5.1.0",
- "serverless-wsgi": "^1.7.6"
+ "serverless-python-requirements": "^6.1.0",
+ "serverless-wsgi": "^3.0.4"
}
}
diff --git a/aws-python-flask-api/requirements.txt b/aws-python-flask-api/requirements.txt
index 0c47f9801..a993b8dff 100644
--- a/aws-python-flask-api/requirements.txt
+++ b/aws-python-flask-api/requirements.txt
@@ -1,3 +1 @@
-Flask==1.1.4
-Werkzeug==1.0.1
-
+Flask==3.0.3
\ No newline at end of file
diff --git a/aws-python-flask-api/serverless.template.yml b/aws-python-flask-api/serverless.template.yml
deleted file mode 100644
index 76bbd0ee1..000000000
--- a/aws-python-flask-api/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-python-flask-api
-org: serverlessinc
-description: Deploys a Python Flask API service with traditional Serverless Framework
-keywords: aws, serverless, faas, lambda, python, flask
-repo: https://github.com/serverless/examples/aws-python-flask-api
-license: MIT
diff --git a/aws-python-flask-api/serverless.yml b/aws-python-flask-api/serverless.yml
index afc41bcb1..ec08ab88c 100644
--- a/aws-python-flask-api/serverless.yml
+++ b/aws-python-flask-api/serverless.yml
@@ -1,6 +1,6 @@
service: aws-python-flask-api
-frameworkVersion: '2 || 3'
+frameworkVersion: "4"
custom:
wsgi:
@@ -8,8 +8,10 @@ custom:
provider:
name: aws
- runtime: python3.8
- lambdaHashingVersion: '20201221'
+ runtime: python3.12
+ # Uncomment to easily set up a custom domain. Read the docs for more details:
+ # https://www.serverless.com/framework/docs/providers/aws/guide/domains
+ # domain: api.example.com
functions:
api:
diff --git a/aws-python-flask-dynamodb-api/README.md b/aws-python-flask-dynamodb-api/README.md
index abc7fafbc..b3e2e02ab 100644
--- a/aws-python-flask-dynamodb-api/README.md
+++ b/aws-python-flask-dynamodb-api/README.md
@@ -1,22 +1,19 @@
# Serverless Framework Python Flask API service backed by DynamoDB on AWS
-This template demonstrates how to develop and deploy a simple Python Flask API service, backed by DynamoDB, running on AWS Lambda using the traditional Serverless Framework.
-
-
-## Anatomy of the template
+This template demonstrates how to develop and deploy a simple Python Flask API service, backed by DynamoDB, running on AWS Lambda using the Serverless Framework.
This template configures a single function, `api`, which is responsible for handling all incoming requests thanks to configured `http` events. To learn more about `http` event configuration options, please refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/apigateway/). As the events are configured in a way to accept all incoming requests, `Flask` framework is responsible for routing and handling requests internally. The implementation takes advantage of `serverless-wsgi`, which allows you to wrap WSGI applications such as Flask apps. To learn more about `serverless-wsgi`, please refer to corresponding [GitHub repository](https://github.com/logandk/serverless-wsgi). The template also relies on `serverless-python-requirements` plugin for packaging dependencies from `requirements.txt` file. For more details about `serverless-python-requirements` configuration, please refer to corresponding [GitHub repository](https://github.com/UnitedIncome/serverless-python-requirements).
@@ -28,7 +25,7 @@ Additionally, the template also handles provisioning of a DynamoDB database that
In order to package your dependencies locally with `serverless-python-requirements`, you need to have `Python3.8` installed locally. You can create and activate a dedicated virtual environment with the following command:
-```bash
+```
python3.8 -m venv ./venv
source ./venv/bin/activate
```
@@ -37,14 +34,6 @@ Alternatively, you can also use `dockerizePip` configuration from `serverless-py
### Deployment
-This example is made to work with the Serverless Framework dashboard, which includes advanced features such as CI/CD, monitoring, metrics, etc.
-
-In order to deploy with dashboard, you need to first login with:
-
-```
-serverless login
-```
-
install dependencies with:
```
@@ -59,89 +48,62 @@ serverless deploy
After running deploy, you should see output similar to:
-```bash
-Serverless: Using Python specified in "runtime": python3.8
-Serverless: Packaging Python WSGI handler...
-Serverless: Generated requirements from /home/xxx/xxx/xxx/examples/aws-python-flask-dynamodb-api/requirements.txt in /home/xxx/xxx/xxx/examples/aws-python-flask-dynamodb-api/.serverless/requirements.txt...
-Serverless: Using static cache of requirements found at /home/xxx/.cache/serverless-python-requirements/62f10436f9a1bb8040df30ef2db5736c8015b18256bf0b6f1b0cbb2640030244_slspyc ...
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Injecting required Python packages to package...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-python-flask-dynamodb-api.zip file to S3 (1.3 MB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.................................
-Serverless: Stack update finished...
-Service Information
-service: aws-python-flask-dynamodb-api
-stage: dev
-region: us-east-1
-stack: aws-python-flask-dynamodb-api-dev
-resources: 12
-api keys:
- None
+```
+Deploying "aws-python-flask-dynamodb-api" to stage "dev" (us-east-1)
+
+Using Python specified in "runtime": python3.12
+
+Packaging Python WSGI handler...
+
+✔ Service deployed to stack aws-python-flask-dynamodb-api-dev (123s)
+
endpoints:
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/{proxy+}
+ ANY - https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/dev/
+ ANY - https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/dev/{proxy+}
functions:
- api: aws-python-flask-dynamodb-api-dev-api
-layers:
- None
+ api: aws-python-flask-dynamodb-api-dev-api (41 MB)
```
-_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/apigateway/).
+_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/http-api).
### Invocation
After successful deployment, you can create a new user by calling the corresponding endpoint:
-```bash
+```
curl --request POST 'https://xxxxxx.execute-api.us-east-1.amazonaws.com/dev/users' --header 'Content-Type: application/json' --data-raw '{"name": "John", "userId": "someUserId"}'
```
Which should result in the following response:
-```bash
-{"userId":"someUserId","name":"John"}
+```json
+{ "userId": "someUserId", "name": "John" }
```
You can later retrieve the user by `userId` by calling the following endpoint:
-```bash
+```
curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/dev/users/someUserId
```
Which should result in the following response:
-```bash
-{"userId":"someUserId","name":"John"}
-```
-
-If you try to retrieve user that does not exist, you should receive the following response:
-
-```bash
-{"error":"Could not find user with provided \"userId\""}
+```json
+{ "userId": "someUserId", "name": "John" }
```
### Local development
Thanks to capabilities of `serverless-wsgi`, it is also possible to run your application locally, however, in order to do that, you will need to first install `werkzeug`, `boto3` dependencies, as well as all other dependencies listed in `requirements.txt`. It is recommended to use a dedicated virtual environment for that purpose. You can install all needed dependencies with the following commands:
-```bash
+```
pip install werkzeug boto3
pip install -r requirements.txt
```
Additionally, you will need to emulate DynamoDB locally, which can be done by using `serverless-dynamodb-local` plugin. In order to do that, execute the following commands:
-```bash
+```
serverless plugin install -n serverless-dynamodb-local
serverless dynamodb install
```
@@ -150,7 +112,6 @@ It will add the plugin to `devDependencies` in `package.json` file as well as to
You should also add the following config to `custom` section in `serverless.yml`:
-
```yml
custom:
(...)
@@ -163,7 +124,6 @@ custom:
Additionally, we need to reconfigure DynamoDB Client to connect to our local instance of DynamoDB. We can take advantage of `IS_OFFLINE` environment variable set by `serverless-wsgi` plugin and replace:
-
```python
dynamodb_client = boto3.client('dynamodb')
```
@@ -179,16 +139,17 @@ if os.environ.get('IS_OFFLINE'):
Now you can start DynamoDB local with the following command:
-```bash
+```
serverless dynamodb start
```
At this point, you can run your application locally with the following command:
-```bash
+```
serverless wsgi serve
```
For additional local development capabilities of `serverless-wsgi` and `serverless-dynamodb-local` plugins, please refer to corresponding GitHub repositories:
-- https://github.com/logandk/serverless-wsgi
+
+- https://github.com/logandk/serverless-wsgi
- https://github.com/99x/serverless-dynamodb-local
diff --git a/aws-python-flask-dynamodb-api/package.json b/aws-python-flask-dynamodb-api/package.json
index e33ed1fda..fe9391d74 100644
--- a/aws-python-flask-dynamodb-api/package.json
+++ b/aws-python-flask-dynamodb-api/package.json
@@ -4,7 +4,7 @@
"description": "Example of a Python Flask API service backed by DynamoDB with traditional Serverless Framework",
"author": "",
"devDependencies": {
- "serverless-python-requirements": "^5.1.0",
- "serverless-wsgi": "^1.7.6"
+ "serverless-python-requirements": "^6.1.0",
+ "serverless-wsgi": "^3.0.4"
}
}
diff --git a/aws-python-flask-dynamodb-api/requirements.txt b/aws-python-flask-dynamodb-api/requirements.txt
index 0c47f9801..a993b8dff 100644
--- a/aws-python-flask-dynamodb-api/requirements.txt
+++ b/aws-python-flask-dynamodb-api/requirements.txt
@@ -1,3 +1 @@
-Flask==1.1.4
-Werkzeug==1.0.1
-
+Flask==3.0.3
\ No newline at end of file
diff --git a/aws-python-flask-dynamodb-api/serverless.template.yml b/aws-python-flask-dynamodb-api/serverless.template.yml
deleted file mode 100644
index 81c7cbc66..000000000
--- a/aws-python-flask-dynamodb-api/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-python-flask-dynamodb-api
-org: serverlessinc
-description: Deploys a Python Flask API service, backed by DynamoDB, with traditional Serverless Framework
-keywords: aws, serverless, faas, lambda, python, flask, dynamodb
-repo: https://github.com/serverless/examples/aws-python-flask-dynamodb-api
-license: MIT
diff --git a/aws-python-flask-dynamodb-api/serverless.yml b/aws-python-flask-dynamodb-api/serverless.yml
index d635d4e9f..41553fe43 100644
--- a/aws-python-flask-dynamodb-api/serverless.yml
+++ b/aws-python-flask-dynamodb-api/serverless.yml
@@ -1,17 +1,26 @@
service: aws-python-flask-dynamodb-api
-frameworkVersion: '2 || 3'
+frameworkVersion: "4"
+
+stages:
+ default:
+ params:
+ tableName: "users-table-${sls:stage}"
+
+plugins:
+ - serverless-wsgi
+ - serverless-python-requirements
custom:
- tableName: 'users-table-${self:provider.stage}'
wsgi:
app: app.app
provider:
name: aws
- runtime: python3.8
- lambdaHashingVersion: '20201221'
- stage: dev
+ runtime: python3.12
+ # Uncomment to easily set up a custom domain. Read the docs for more details:
+ # https://www.serverless.com/framework/docs/providers/aws/guide/domains
+ # domain: api.example.com
iam:
role:
statements:
@@ -24,9 +33,9 @@ provider:
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- - Fn::GetAtt: [ UsersTable, Arn ]
+ - Fn::GetAtt: [UsersTable, Arn]
environment:
- USERS_TABLE: ${self:custom.tableName}
+ USERS_TABLE: ${param:tableName}
functions:
api:
@@ -39,10 +48,6 @@ functions:
path: /{proxy+}
method: ANY
-plugins:
- - serverless-wsgi
- - serverless-python-requirements
-
resources:
Resources:
UsersTable:
@@ -57,4 +62,4 @@ resources:
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
- TableName: ${self:custom.tableName}
+ TableName: ${param:tableName}
diff --git a/aws-python-http-api/README.md b/aws-python-http-api/README.md
index 80720b5de..0278c7925 100644
--- a/aws-python-http-api/README.md
+++ b/aws-python-http-api/README.md
@@ -2,11 +2,11 @@
title: 'AWS Simple HTTP Endpoint example in Python'
description: 'This template demonstrates how to make a simple HTTP API with Python running on AWS Lambda and API Gateway using the Serverless Framework.'
layout: Doc
-framework: v2
+framework: v4
platform: AWS
language: python
authorLink: 'https://github.com/serverless'
-authorName: 'Serverless, inc.'
+authorName: 'Serverless, Inc.'
authorAvatar: 'https://avatars1.githubusercontent.com/u/13742415?s=200&v=4'
-->
@@ -14,47 +14,26 @@ authorAvatar: 'https://avatars1.githubusercontent.com/u/13742415?s=200&v=4'
This template demonstrates how to make a simple HTTP API with Python running on AWS Lambda and API Gateway using the Serverless Framework.
-This template does not include any kind of persistence (database). For more advanced examples, check out the [serverless/examples repository](https://github.com/serverless/examples/) which includes DynamoDB, Mongo, Fauna and other examples.
+This template does not include any kind of persistence (database). For more advanced examples, check out the [serverless/examples repository](https://github.com/serverless/examples/) which includes DynamoDB, Mongo, Fauna and other examples.
## Usage
### Deployment
```
-$ serverless deploy
+serverless deploy
```
After deploying, you should see output similar to:
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-python-http-api.zip file to S3 (711.23 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.................................
-Serverless: Stack update finished...
-Service Information
-service: aws-python-http-api
-stage: dev
-region: us-east-1
-stack: aws-python-http-api-dev
-resources: 12
-api keys:
- None
-endpoints:
- ANY - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/
+```
+Deploying "aws-python-http-api" to stage "dev" (us-east-1)
+
+✔ Service deployed to stack aws-python-http-api-dev (85s)
+
+endpoint: GET - https://6ewcye3q4d.execute-api.us-east-1.amazonaws.com/
functions:
- api: aws-python-http-api-dev-hello
-layers:
- None
+ hello: aws-python-http-api-dev-hello (2.3 kB)
```
_Note_: In current form, after deployment, your API is public and can be invoked by anyone. For production deployments, you might want to configure an authorizer. For details on how to do that, refer to [http event docs](https://www.serverless.com/framework/docs/providers/aws/events/apigateway/).
@@ -63,7 +42,7 @@ _Note_: In current form, after deployment, your API is public and can be invoked
After successful deployment, you can call the created application via HTTP:
-```bash
+```
curl https://xxxxxxx.execute-api.us-east-1.amazonaws.com/
```
@@ -71,10 +50,7 @@ Which should result in response similar to the following (removed `input` conten
```json
{
- "message": "Go Serverless v2.0! Your function executed successfully!",
- "input": {
- ...
- }
+ "message": "Go Serverless v4.0! Your function executed successfully!"
}
```
@@ -82,22 +58,22 @@ Which should result in response similar to the following (removed `input` conten
You can invoke your function locally by using the following command:
-```bash
+```
serverless invoke local --function hello
```
Which should result in response similar to the following:
-```
+```json
{
"statusCode": 200,
- "body": "{\n \"message\": \"Go Serverless v2.0! Your function executed successfully!\",\n \"input\": \"\"\n}"
+ "body": "{\n \"message\": \"Go Serverless v4.0! Your function executed successfully!\"}"
}
```
Alternatively, it is also possible to emulate API Gateway and Lambda locally by using `serverless-offline` plugin. In order to do that, execute the following command:
-```bash
+```
serverless plugin install -n serverless-offline
```
@@ -115,7 +91,7 @@ To learn more about the capabilities of `serverless-offline`, please refer to it
In case you would like to include 3rd party dependencies, you will need to use a plugin called `serverless-python-requirements`. You can set it up by running the following command:
-```bash
+```
serverless plugin install -n serverless-python-requirements
```
diff --git a/aws-python-http-api/handler.py b/aws-python-http-api/handler.py
index 57e6447fa..92a8ab0ff 100644
--- a/aws-python-http-api/handler.py
+++ b/aws-python-http-api/handler.py
@@ -3,19 +3,9 @@
def hello(event, context):
body = {
- "message": "Go Serverless v2.0! Your function executed successfully!",
- "input": event,
+ "message": "Go Serverless v4.0! Your function executed successfully!",
}
response = {"statusCode": 200, "body": json.dumps(body)}
return response
-
- # Use this code if you don't use the http event with the LAMBDA-PROXY
- # integration
- """
- return {
- "message": "Go Serverless v1.0! Your function executed successfully!",
- "event": event
- }
- """
diff --git a/aws-python-http-api/serverless.template.yml b/aws-python-http-api/serverless.template.yml
deleted file mode 100644
index cd3c5fddd..000000000
--- a/aws-python-http-api/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-python-http-api
-org: serverlessinc
-description: Deploys a Python HTTP API service with traditional Serverless Framework
-keywords: aws, serverless, faas, lambda, python
-repo: https://github.com/serverless/examples/aws-python-http-api
-license: MIT
diff --git a/aws-python-http-api/serverless.yml b/aws-python-http-api/serverless.yml
index d7f08fb5a..4ee9cb0a4 100644
--- a/aws-python-http-api/serverless.yml
+++ b/aws-python-http-api/serverless.yml
@@ -1,10 +1,12 @@
service: aws-python-http-api
-frameworkVersion: '2 || 3'
+frameworkVersion: "4"
provider:
name: aws
- runtime: python3.8
- lambdaHashingVersion: '20201221'
+ runtime: python3.12
+ # Uncomment to easily set up a custom domain. Read the docs for more details:
+ # https://www.serverless.com/framework/docs/providers/aws/guide/domains
+ # domain: api.example.com
functions:
hello:
diff --git a/aws-python-scheduled-cron/README.md b/aws-python-scheduled-cron/README.md
index 6e187c9b9..3928adfe0 100644
--- a/aws-python-scheduled-cron/README.md
+++ b/aws-python-scheduled-cron/README.md
@@ -2,7 +2,7 @@
title: 'AWS Python Scheduled Cron example in Python'
description: 'This is an example of creating a function that runs as a cron job using the serverless ''schedule'' event.'
layout: Doc
-framework: v1
+framework: v4
platform: AWS
language: Python
priority: 2
@@ -13,67 +13,10 @@ authorAvatar: 'https://avatars0.githubusercontent.com/u/8188?v=4&s=140'
# Serverless Framework Python Scheduled Cron on AWS
-This template demonstrates how to develop and deploy a simple cron-like service running on AWS Lambda using the traditional Serverless Framework.
-
-## Schedule event type
-
-This examples defines two functions, `rateHandler` and `cronHandler`, both of which are triggered by an event of `schedule` type, which is used for configuring functions to be executed at specific time or in specific intervals. For detailed information about `schedule` event, please refer to corresponding section of Serverless [docs](https://serverless.com/framework/docs/providers/aws/events/schedule/).
-
-When defining `schedule` events, we need to use `rate` or `cron` expression syntax.
-
-### Rate expressions syntax
-
-```pseudo
-rate(value unit)
-```
-
-`value` - A positive number
-
-`unit` - The unit of time. ( minute | minutes | hour | hours | day | days )
-
-In below example, we use `rate` syntax to define `schedule` event that will trigger our `rateHandler` function every minute
-
-```yml
-functions:
- rateHandler:
- handler: handler.run
- events:
- - schedule: rate(1 minute)
-```
-
-Detailed information about rate expressions is available in official [AWS docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#RateExpressions).
-
-
-### Cron expressions syntax
-
-```pseudo
-cron(Minutes Hours Day-of-month Month Day-of-week Year)
-```
-
-All fields are required and time zone is UTC only.
-
-| Field | Values | Wildcards |
-| ------------- |:--------------:|:-------------:|
-| Minutes | 0-59 | , - * / |
-| Hours | 0-23 | , - * / |
-| Day-of-month | 1-31 | , - * ? / L W |
-| Month | 1-12 or JAN-DEC| , - * / |
-| Day-of-week | 1-7 or SUN-SAT | , - * ? / L # |
-| Year | 192199 | , - * / |
-
-In below example, we use `cron` syntax to define `schedule` event that will trigger our `cronHandler` function every second minute every Monday through Friday
-
-```yml
-functions:
- cronHandler:
- handler: handler.run
- events:
- - schedule: cron(0/2 * ? * MON-FRI *)
-```
+This template demonstrates how to develop and deploy a simple cron-like service running on AWS Lambda using the Serverless Framework.
Detailed information about cron expressions in available in official [AWS docs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions).
-
## Usage
### Deployment
@@ -94,34 +37,13 @@ serverless deploy
After running deploy, you should see output similar to:
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-python-scheduled-cron.zip file to S3 (84.82 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-........................
-Serverless: Stack update finished...
-Service Information
-service: aws-python-scheduled-cron
-stage: dev
-region: us-east-1
-stack: aws-python-scheduled-cron-dev
-resources: 16
-api keys:
- None
-endpoints:
- None
+```
+Deploying "aws-python-scheduled-cron" to stage "dev" (us-east-1)
+
+✔ Service deployed to stack aws-python-scheduled-cron-dev (146s)
+
functions:
- rateHandler: aws-python-scheduled-cron-dev-rateHandler
- cronHandler: aws-python-scheduled-cron-dev-cronHandler
-layers:
- None
-Serverless: Publishing service to the Serverless Dashboard...
-Serverless: Successfully published your service to the Serverless Dashboard: https://app.serverless.com/xxxx/apps/xxxx/aws-python-scheduled-cron/dev/us-east-1
+ rateHandler: aws-python-scheduled-cron-dev-rateHandler (2.2 kB)
```
There is no additional step required. Your defined schedules becomes active right away after deployment.
@@ -136,15 +58,15 @@ serverless invoke local --function rateHandler
After invocation, you should see output similar to:
-```bash
-INFO:handler:Your cron function aws-python-scheduled-cron-dev-rateHandler ran at 15:02:43.203145
+```
+INFO:handler:Your cron function ran at 15:02:43.203145
```
### Bundling dependencies
In case you would like to include 3rd party dependencies, you will need to use a plugin called `serverless-python-requirements`. You can set it up by running the following command:
-```bash
+```
serverless plugin install -n serverless-python-requirements
```
diff --git a/aws-python-scheduled-cron/handler.py b/aws-python-scheduled-cron/handler.py
index ff57664b9..d112fdeee 100644
--- a/aws-python-scheduled-cron/handler.py
+++ b/aws-python-scheduled-cron/handler.py
@@ -7,5 +7,4 @@
def run(event, context):
current_time = datetime.datetime.now().time()
- name = context.function_name
- logger.info("Your cron function " + name + " ran at " + str(current_time))
+ logger.info("Your cron function ran at " + str(current_time))
diff --git a/aws-python-scheduled-cron/package.json b/aws-python-scheduled-cron/package.json
deleted file mode 100644
index e2d8736b3..000000000
--- a/aws-python-scheduled-cron/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "aws-scheduled-cron",
- "version": "1.0.0",
- "description": "Example of creating a function that runs as a cron job using the serverless `schedule` event",
- "author": "",
- "license": "MIT"
-}
diff --git a/aws-python-scheduled-cron/serverless.template.yml b/aws-python-scheduled-cron/serverless.template.yml
deleted file mode 100644
index d0b6b4acb..000000000
--- a/aws-python-scheduled-cron/serverless.template.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: aws-python-scheduled-cron
-org: serverlessinc
-description: Deploys a Python Scheduled Cron service with traditional Serverless Framework
-keywords: aws, serverless, faas, lambda, python
-repo: https://github.com/serverless/examples/aws-python-scheduled-cron
-license: MIT
diff --git a/aws-python-scheduled-cron/serverless.yml b/aws-python-scheduled-cron/serverless.yml
index 34064f264..f1bd57287 100644
--- a/aws-python-scheduled-cron/serverless.yml
+++ b/aws-python-scheduled-cron/serverless.yml
@@ -1,21 +1,13 @@
service: aws-python-scheduled-cron
-frameworkVersion: '2 || 3'
-
+frameworkVersion: "4"
provider:
name: aws
- runtime: python3.8
- lambdaHashingVersion: 20201221
+ runtime: python3.12
functions:
rateHandler:
handler: handler.run
events:
- # Invoke Lambda function every minute
- schedule: rate(1 minute)
- cronHandler:
- handler: handler.run
- events:
- # Invoke Lambda function every 2nd minute from Mon-Fri
- - schedule: cron(0/2 * ? * MON-FRI *)
diff --git a/aws-python-sqs-worker/serverless.yml b/aws-python-sqs-worker/serverless.yml
index dc5862920..1f9145ebd 100644
--- a/aws-python-sqs-worker/serverless.yml
+++ b/aws-python-sqs-worker/serverless.yml
@@ -1,10 +1,9 @@
service: aws-python-sqs-worker
-frameworkVersion: '2 || 3'
+frameworkVersion: '4'
provider:
name: aws
- runtime: python3.8
- lambdaHashingVersion: '20201221'
+ runtime: python3.12
constructs:
jobs:
diff --git a/aws-python/README.md b/aws-python/README.md
index 7004aaaf6..efb8255c2 100644
--- a/aws-python/README.md
+++ b/aws-python/README.md
@@ -1,20 +1,19 @@
-
# Serverless Framework AWS Python Example
-This template demonstrates how to deploy a Python function running on AWS Lambda using the traditional Serverless Framework. The deployed function does not include any event definitions as well as any kind of persistence (database). For more advanced configurations check out the [examples repo](https://github.com/serverless/examples/) which includes integrations with SQS, DynamoDB or examples of functions that are triggered in `cron`-like manner. For details about configuration of specific `events`, please refer to our [documentation](https://www.serverless.com/framework/docs/providers/aws/events/).
+This template demonstrates how to deploy a Python function running on AWS Lambda using the Serverless Framework. The deployed function does not include any event definitions as well as any kind of persistence (database). For more advanced configurations check out the [examples repo](https://github.com/serverless/examples/) which includes integrations with SQS, DynamoDB or examples of functions that are triggered in `cron`-like manner. For details about configuration of specific `events`, please refer to our [documentation](https://www.serverless.com/framework/docs/providers/aws/events/).
## Usage
@@ -23,43 +22,25 @@ This template demonstrates how to deploy a Python function running on AWS Lambda
In order to deploy the example, you need to run the following command:
```
-$ serverless deploy
+serverless deploy
```
After running deploy, you should see output similar to:
-```bash
-Serverless: Packaging service...
-Serverless: Excluding development dependencies...
-Serverless: Creating Stack...
-Serverless: Checking Stack create progress...
-........
-Serverless: Stack create finished...
-Serverless: Uploading CloudFormation file to S3...
-Serverless: Uploading artifacts...
-Serverless: Uploading service aws-python.zip file to S3 (711.23 KB)...
-Serverless: Validating template...
-Serverless: Updating Stack...
-Serverless: Checking Stack update progress...
-.................................
-Serverless: Stack update finished...
-Service Information
-service: aws-python
-stage: dev
-region: us-east-1
-stack: aws-python-dev
-resources: 6
+```
+Deploying "aws-python" to stage "dev" (us-east-1)
+
+✔ Service deployed to stack aws-python-dev (90s)
+
functions:
- api: aws-python-dev-hello
-layers:
- None
+ hello: aws-python-dev-hello (1.9 kB)
```
### Invocation
After successful deployment, you can invoke the deployed function by using the following command:
-```bash
+```
serverless invoke --function hello
```
@@ -67,8 +48,8 @@ Which should result in response similar to the following:
```json
{
- "statusCode": 200,
- "body": "{\"message\": \"Go Serverless v2.0! Your function executed successfully!\", \"input\": {}}"
+ "statusCode": 200,
+ "body": "{\"message\": \"Go Serverless v4.0! Your function executed successfully!\"}"
}
```
@@ -76,7 +57,7 @@ Which should result in response similar to the following:
You can invoke your function locally by using the following command:
-```bash
+```
serverless invoke local --function hello
```
@@ -84,8 +65,8 @@ Which should result in response similar to the following:
```
{
- "statusCode": 200,
- "body": "{\"message\": \"Go Serverless v2.0! Your function executed successfully!\", \"input\": {}}"
+ "statusCode": 200,
+ "body": "{\"message\": \"Go Serverless v4.0! Your function executed successfully!\"}"
}
```
@@ -93,7 +74,7 @@ Which should result in response similar to the following:
In case you would like to include third-party dependencies, you will need to use a plugin called `serverless-python-requirements`. You can set it up by running the following command:
-```bash
+```
serverless plugin install -n serverless-python-requirements
```
diff --git a/aws-python/handler.py b/aws-python/handler.py
index 1b5d5392c..4b8856905 100644
--- a/aws-python/handler.py
+++ b/aws-python/handler.py
@@ -3,8 +3,7 @@
def hello(event, context):
body = {
- "message": "Go Serverless v2.0! Your function executed successfully!",
- "input": event,
+ "message": "Go Serverless v4.0! Your function executed successfully!"
}
return {"statusCode": 200, "body": json.dumps(body)}
diff --git a/aws-python/serverless.yml b/aws-python/serverless.yml
index 7dd4bca34..dbce9d3f7 100644
--- a/aws-python/serverless.yml
+++ b/aws-python/serverless.yml
@@ -1,12 +1,10 @@
service: aws-python # NOTE: update this with your service name
-frameworkVersion: '2 || 3'
-
+frameworkVersion: '4'
provider:
name: aws
- runtime: python3.8
- lambdaHashingVersion: 20201221
+ runtime: python3.12
functions:
hello:
diff --git a/community-examples.json b/community-examples.json
deleted file mode 100644
index 2e858241a..000000000
--- a/community-examples.json
+++ /dev/null
@@ -1,565 +0,0 @@
-[
- {
- "name": "Serverless Lambda S3 Demonstration",
- "description": "This project demonstrates how the Serverless Framework can be used to deploy a NodeJS Lambda function that responds to events in an S3 bucket.",
- "githubUrl": "https://github.com/johncmunson/serverless-lambda-s3"
- },
- {
- "name": "DropBucket - Serverless file sharing",
- "description": "A serverless file sharing app powered by Cognito/S3/Lambda/API Gateway. Includes a React single-page app UI and virus scanning.",
- "githubUrl": "https://github.com/marksteele/drop-bucket"
- },
- {
- "name": "Spiderless, Web Spider on Serverless",
- "description": "A web spider / scraper / website change detector built with Lambda, API Gateway, DynamoDB and SNS",
- "githubUrl": "https://github.com/slashbit/spider-less"
- },
- {
- "name": "AWS-Demo-Java-Spring-Cloud-Function-Serverless",
- "description": "If Java is your choice of programming language-Spring Cloud Function,Serverless Framework makes a great technology stack. It boosts developer productivity by decoupling from Vendor specific FaaS API, and deployment activities.",
- "githubUrl": "https://github.com/mbsambangi/aws-java-spring-cloud-function-demo"
- },
- {
- "name": "Serverless Architecture Boilerplate",
- "description": "Boilerplate to organize and deploy big projects using Serverless and CloudFormation on AWS",
- "githubUrl": "https://github.com/msfidelis/serverless-architecture-boilerplate"
- },
- {
- "name": "bablebot",
- "description": "Lambda + API Gateway: Zero-to-chatbot in <10 lines of JS. Built-in integrations for Messenger, Telegram, Kik, Line, Twilio, Skype, and Wechat. Or roll your own!",
- "githubUrl": "https://github.com/abiglobalhealth/babelbot"
- },
- {
- "name": "jwtAuthorizr",
- "description": "Custom JWT Authorizer Lambda function for Amazon API Gateway with Bearer JWT",
- "githubUrl": "https://github.com/serverlessbuch/jwtAuthorizr"
- },
- {
- "name": "slack-signup-serverless",
- "description": "Serverless signup to Slack and more. Lambda with Python, StepFunctions, and Web front end. Python boilerplate included.",
- "githubUrl": "https://github.com/dzimine/slack-signup-serverless"
- },
- {
- "name": "serverless-graphql-api",
- "description": "Serverless GraphQL API using Lambda and DynamoDB",
- "githubUrl": "https://github.com/boazdejong/serverless-graphql-api"
- },
- {
- "name": "serverless-screenshot",
- "description": "Serverless Screenshot Service using PhantomJS",
- "url": "http://svdgraaf.nl/2016/09/28/Serverless-Screenshot-Service-With-Lambda.html",
- "githubUrl": "https://github.com/svdgraaf/serverless-screenshot"
- },
- {
- "name": "serverless-postgraphql",
- "description": "GraphQL endpoint for PostgreSQL using postgraphql",
- "githubUrl": "https://github.com/rentrop/serverless-postgraphql"
- },
- {
- "name": "serverless-messenger-boilerplate",
- "description": "Serverless messenger bot boilerplate",
- "githubUrl": "https://github.com/SC5/serverless-messenger-boilerplate"
- },
- {
- "name": "serverless-npm-registry",
- "description": "Serverless private npm registry, proxy and cache.",
- "url": "https://craftship.io/open/source/serverless/private/npm/registry/yith/2016/09/26/serverless-yith.html",
- "githubUrl": "https://github.com/craftship/yith"
- },
- {
- "name": "serverless-pokego",
- "description": "Serverless-powered API to fetch nearby Pokemon Go data",
- "githubUrl": "https://github.com/jch254/pokego-serverless"
- },
- {
- "name": "serverless-weekly2pocket-app",
- "description": "Serverless-powered API for sending posts to pocket app",
- "githubUrl": "https://github.com/s0enke/weekly2pocket"
- },
- {
- "name": "serverless-facebook-quotebot",
- "description": "100% Serverless Facebook messenger chatbot which will respond with inspiring quotes",
- "githubUrl": "https://github.com/pmuens/quotebot"
- },
- {
- "name": "serverless-slack-trevorbot",
- "description": "Slack bot for info on where in the world is Trevor Gerhardt?",
- "githubUrl": "https://github.com/conveyal/trevorbot"
- },
- {
- "name": "serverless-garden-aid",
- "description": "IoT Garden Aid Backend",
- "githubUrl": "https://github.com/garden-aid/web-bff"
- },
- {
- "name": "serverless-react-boilerplate",
- "description": "A serverless react boilerplate for offline development",
- "githubUrl": "https://github.com/99xt/serverless-react-boilerplate"
- },
- {
- "name": "serverless-delivery-framework",
- "description": "This is a boilerplate for version release pipeline with serverless framework",
- "githubUrl": "https://github.com/99xt/serverless-delivery-framework"
- },
- {
- "name": "serverless-mailgun-slack",
- "description": "A Serverless function for posting to a Slack Webhook in response to a Mailgun route",
- "githubUrl": "https://github.com/Marcus-L/serverless-mailgun-slack"
- },
- {
- "name": "pfs-email-serverless",
- "description": "This is a lambda function created by the serverless framework. It searches through members in our mongodb who have not been sent emails and sends them an email with their custom token to unlock the pledge free stream. It then marks those members off as already receiving the email.",
- "githubUrl": "https://github.com/SCPR/pfs-email-serverless"
- },
- {
- "name": "plaid cashburndown-service",
- "description": "Service for calculating cash burndown with plaid. Frontend code can be found here: https://github.com/cplee/cashburndown-site",
- "githubUrl": "https://github.com/cplee/cashburndown-service"
- },
- {
- "name": "cordis-serverless",
- "description": "A serverless API for EU Cordis data",
- "githubUrl": "https://github.com/marzeelabs/cordis-serverless"
- },
- {
- "name": "serverless-newsletter-signup",
- "description": "Saves user details into DynamoDB table. Required values are email, first_name and last_name.",
- "githubUrl": "https://github.com/dschep/serverless-newsletter-signup"
- },
- {
- "name": "serverless-slack-cron",
- "description": "Lambda function which sends messages to Slack channel in regular intervals via cron trigger.",
- "githubUrl": "https://github.com/ivanderbu2/serverless-slack-cron"
- },
- {
- "name": "giphy-bot",
- "description": "giphy-bot for Facebook chat",
- "githubUrl": "https://github.com/tywong/lambda-workshop-2016/tree/master/giphy-bot"
- },
- {
- "name": "jwt-lambda-python",
- "runtime": "python",
- "description": "Minimal proof-of-concept implementation of JWT with Serverless / AWS Lambda",
- "githubUrl": "https://github.com/mikaelmork/jwt-auth.serverless"
- },
- {
- "name": "sls-access-counter",
- "description": "Site visitor counter",
- "githubUrl": "https://github.com/takahashim/sls-access-counter"
- },
- {
- "name": "sls-form-mail",
- "description": "Send SNS email from form data",
- "githubUrl": "https://github.com/takahashim/sls-form-mail"
- },
- {
- "name": "serverless-python-sample",
- "description": "A simple serverless python sample with REST API endpoints and dependencies",
- "githubUrl": "https://github.com/bennybauer/serverless-python-sample"
- },
- {
- "name": "serverless-msg-gateway",
- "description": "A messaging aggregator for kik, skype, twilio, telegram, & messenger. Send and receive messages in a standard format.",
- "githubUrl": "https://github.com/yonahforst/msg-gateway"
- },
- {
- "name": "serverless-AWS-Rekognition-finpics",
- "description": "Use AWS Rekognition to provide a faces search of finpics.com",
- "githubUrl": "https://github.com/rgfindl/finpics"
- },
- {
- "name": "serverless-slack-emojibot",
- "description": "Serverless slack bot for emoji",
- "githubUrl": "https://github.com/markhobson/emojibot"
- },
- {
- "name": "keboola-developer-portal",
- "description": "Keboola developer portal built with Serverless",
- "githubUrl": "https://github.com/keboola/developer-portal"
- },
- {
- "name": "serverless-cloudwatch-rds-custom-metrics",
- "description": "A NodeJS-based MySQL RDS Data Collection script to push Custom Metrics to Cloudwatch with Serverless",
- "githubUrl": "https://github.com/AndrewFarley/serverless-cloudwatch-rds-custom-metrics"
- },
- {
- "name": "jrestless-examples",
- "description": "[JRestless](https://github.com/bbilger/jrestless) (Java / JAX-RS) examples for [API Gateway Functions](https://github.com/bbilger/jrestless-examples/tree/master/aws/gateway) ([plain JAX-RS](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-showcase), [Spring](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-spring), [binary data requests/responses](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-binary), [custom authorizers](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-security-custom-authorizer) and [Cognito User Pool authorizers](https://github.com/bbilger/jrestless-examples/blob/master/aws/gateway/aws-gateway-security-cognito-authorizer)), [SNS Functions](https://github.com/bbilger/jrestless-examples/blob/master/aws/sns/aws-sns-usage-example) (asynchronous communication between functions) and [Service Functions](https://github.com/bbilger/jrestless-examples/blob/master/aws/service/aws-service-usage-example) (synchronous HTTP-like communication between functions - transparent through Feign)",
- "githubUrl": "https://github.com/bbilger/jrestless-examples"
- },
- {
- "name": "sc5-serverless-boilerplate",
- "description": "A boilerplate that contains setup for test-driven development",
- "githubUrl": "https://github.com/SC5/sc5-serverless-boilerplate"
- },
- {
- "name": "serverless-blog-to-podcast",
- "description": "Service that reads RSS feed and converts the entries to a podcast feed and audio files using Amazon Polly",
- "githubUrl": "https://github.com/SC5/serverless-blog-to-podcast"
- },
- {
- "name": "offset-trump",
- "description": "Single page app using Serverless (C# runtime) and S3 site hosting. Pledge to do a good thing for the next four years to offset the potential negative effects of the US Presidency",
- "url": "http://www.offsettrump.com",
- "githubUrl": "https://github.com/FLGMwt/offset-trump"
- },
- {
- "name": "serverless-url-shortener",
- "description": "A simple url-shortener, using Serverless framework",
- "githubUrl": "https://github.com/aletheia/serverless-url-shortener"
- },
- {
- "name": "serverless-html-pdf",
- "description": "Service that convert HTML to PDF using PhantomJS's rasterize example.",
- "githubUrl": "https://github.com/calvintychan/serverless-html-pdf"
- },
- {
- "name": "serverless-examples-cached-rds-ws",
- "description": "A serverless framework example project that uses API Gateway, ElastiCache, and RDS PostgreSQL.",
- "githubUrl": "https://github.com/mugglmenzel/serverless-examples-cached-rds-ws"
- },
- {
- "name": "bittman",
- "description": "A serverless project that follows a stock trading algorithm and uses scheduled functions to save data to DynamoDB and send emails through Mailgun.",
- "githubUrl": "https://github.com/rhlsthrm/bittman"
- },
- {
- "name": "adoptable-pet-bot",
- "description": "Tweets adoptable pets using Serverless (Node.js) and AWS Lambda",
- "githubUrl": "https://github.com/lynnaloo/adoptable-pet-bot"
- },
- {
- "name": "owntracks-serverless",
- "description": "A serverless implementation of the OwnTracks HTTP backend",
- "githubUrl": "https://github.com/dschep/owntracks-serverless"
- },
- {
- "name": "serverless-modern-koa",
- "description": "Serverless modern koa starter kit",
- "githubUrl": "https://github.com/barczaG/serverless-modern-koa"
- },
- {
- "name": "Serverless ReactJS Universal Rendering Boilerplate",
- "description": "ReactJS web app Starter kit does universal (isomorphic) rendering with Serverless",
- "githubUrl": "https://github.com/TylorShin/react-universal-in-serverless"
- },
- {
- "name": "Open Bot",
- "description": "An unoptionated Github bot driven by a configuration file in the repository",
- "githubUrl": "https://github.com/open-bot/open-bot"
- },
- {
- "name": "aws-ses-serverless-example",
- "description": "AWS SES example in NodeJS using lambda",
- "githubUrl": "https://github.com/lakshmantgld/aws-ses-serverless-example"
- },
- {
- "name": "aws-node-signed-uploads",
- "description": "Upload files larger than 10MB with AWS Lambda and API Gateway. Can be developed and tested locally.",
- "githubUrl": "https://github.com/kalinchernev/aws-node-signed-uploads"
- },
- {
- "name": "AWS API Gateway Serverless project written in Go",
- "description": "A serverless project that contains an API Gateway endpoint powered by a Lambda function written in golang and built using [eawsy/aws-lambda-go-shim](https://github.com/eawsy/aws-lambda-go-shim).",
- "githubUrl": "https://github.com/yunspace/serverless-golang"
- },
- {
- "name": "video-preview-and-analysis-service",
- "description": "An event-driven service that generates labels using Amazon Rekognition and creates preview GIF animation from a video file.",
- "githubUrl": "https://github.com/laardee/video-preview-and-analysis-service"
- },
- {
- "name": "Serverless ES6/7 CRUD API",
- "description": "[Serverless Stack](http://serverless-stack.com) examples of backend CRUD APIs (DynamoDB + Lambda + API Gateway + Cognito User Pool authorizer) for [React.js single-page app](http://demo.serverless-stack.com)",
- "githubUrl": "https://github.com/AnomalyInnovations/serverless-stack-demo-api"
- },
- {
- "name": "SQS Worker with AWS Lambda and CloudWatch Alarms",
- "description": "Process messages stored in SQS with an [auto-scaled AWS Lambda worker](https://sbstjn.com/serverless-sqs-worker-with-aws-lambda.html) function.",
- "githubUrl": "https://github.com/sbstjn/sqs-worker-serverless"
- },
- {
- "name": "serverless-image-manager",
- "description": "image upload / download with resizing. Used API gateway's binary support & serverless",
- "githubUrl": "https://github.com/TylorShin/lambda-image-manager"
- },
- {
- "name": "AWS Lambda Power Tuning (powered by Step Functions)",
- "description": "Build a [Step Functions](https://aws.amazon.com/step-functions/) state machine to optimize your AWS Lambda Function memory/power configuration.",
- "githubUrl": "https://github.com/alexcasalboni/aws-lambda-power-tuning"
- },
- {
- "name": "Amazon Kinesis Streams fan-out via Kinesis Analytics",
- "description": "Use [Amazon Kinesis Analytics](https://aws.amazon.com/kinesis/analytics/) to fan-out your Kinesis Streams and avoid read throttling.",
- "githubUrl": "https://github.com/alexcasalboni/kinesis-streams-fan-out-kinesis-analytics"
- },
- {
- "name": "grants-api-serverless",
- "description": "ES6 API to consume data from an external API, ingest into Elasticsearch and return a queryable endpoint on top of Elasticsearch",
- "githubUrl": "https://github.com/comicrelief/grants-api-serverless"
- },
- {
- "name": "honeyLambda",
- "description": "a simple, serverless application designed to create and monitor URL {honey}tokens, on top of AWS Lambda and Amazon API Gateway",
- "githubUrl": "https://github.com/0x4D31/honeyLambda"
- },
- {
- "name": "faultline",
- "description": "Error tracking tool on AWS managed services.",
- "githubUrl": "https://github.com/faultline/faultline"
- },
- {
- "name": "Stack Overflow Monitor",
- "description": "Monitor Stack Overflow questions and post them in a Slack channel",
- "githubUrl": "https://github.com/picsoung/stackoverflowmonitor"
- },
- {
- "name": "Serverless Analytics",
- "description": "Write your own Google Analytics clone and track website visitors serverless with API Gateway, Kinesis, Lambda, and DynamoDB.",
- "githubUrl": "https://github.com/sbstjn/serverless-analytics"
- },
- {
- "name": "React & Stripe Serverless Ecommerce",
- "description": "Serverless E-Commerce App with AWS Lambda, Stripe and React",
- "githubUrl": "https://github.com/patrick-michelberger/serverless-shop"
- },
- {
- "name": "serverless + medium text-to-speech",
- "description": "Serverless-based, text-to-speech service for Medium articles",
- "githubUrl": "https://github.com/RafalWilinski/serverless-medium-text-to-speech"
- },
- {
- "name": "serverless + java DynamoDB imlementation example",
- "description": " example for java programmers that want to work with AWS-Lambda and DynamoDB",
- "githubUrl": "https://github.com/igorbakman/java-lambda-dynamodb"
- },
- {
- "name": "AWS Cognito Custom User Pool Example",
- "description": "Example CloudFormation custom resource backed by a lambda using Cognito User Pools",
- "githubUrl": "https://github.com/bsdkurt/aws-node-custom-user-pool"
- },
- {
- "name": "AWS Lambda, Amazon API Gateway, S3, DynamoDB and Cognito Example",
- "description": "Step by step guide how to deploy simple web application on top of AWS Lambda, Amazon API Gateway, S3, DynamoDB and Cognito.",
- "githubUrl": "https://github.com/andreivmaksimov/serverless-framework-aws-lambda-amazon-api-gateway-s3-dynamodb-and-cognito"
- },
- {
- "name": "Run your Kubernetes Workloads on Amazon EC2 Spot Instances with Amazon EKS and Lambda - Part 1",
- "description": "From this tutorial you'll learn how to add AWS EKS Cluster with Spot Instances to your cloud environment managed by Serverless framework",
- "githubUrl": "https://github.com/andreivmaksimov/aws-eks-spot-instances-serverless-framework-demo"
- },
- {
- "name": "Run your Kubernetes Workloads on Amazon EC2 Spot Instances with Amazon EKS and Lambda - Part 2",
- "description": "From this article you'll learn how to configure AWS Lambda functions to allow them manage your EKS Kubernetes cluster and run triggered jobs",
- "githubUrl": "https://github.com/andreivmaksimov/aws-eks-spot-instances-serverless-framework-demo/tree/part2"
- },
- {
- "name": "serverless + lambda protobuf responses",
- "description": "Demo using API Gateway and Lambda with Protocol Buffer",
- "githubUrl": "https://github.com/theburningmonk/lambda-protobuf-demo"
- },
- {
- "name": "Serverless Telegram Bot",
- "description": "This example demonstrates how to setup an echo Telegram Bot using the Serverless Framework ⚡🤖",
- "githubUrl": "https://github.com/jonatasbaldin/serverless-telegram-bot"
- },
- {
- "name": "Serverless Dashboard For Atom Editor",
- "description": "Atom editor package which allows you to deploy and visualize your serverless services with Serverless Framework on your editor.",
- "githubUrl": "https://github.com/horike37/serverless-dashboard-for-atom"
- },
- {
- "name": "Serverless + lambda + vpc + nat + redis",
- "description": "Demo using API Gateway and Lambda with VPC and NAT to access Internet and AWS Resource",
- "githubUrl": "https://github.com/ittus/aws-lambda-vpc-nat-examples"
- },
- {
- "name": "Serverless Gitlab CI",
- "description": "Simple Gitlab CI template for automatic testing and deployments",
- "githubUrl": "https://github.com/bvincent1/serverless-gitlab-ci"
- },
- {
- "name": "Serverless ffmpeg",
- "description": "Bucket event driven FFMPEG using serverless. Input bucket => Serverless ffmpeg => Output bucket.",
- "githubUrl": "https://github.com/kvaggelakos/serverless-ffmpeg"
- },
- {
- "name": "Serverless SSH Command",
- "description": "Example of executing ssh command with OpenWhisk",
- "githubUrl": "https://github.com/upgle/serverless-openwhisk-ssh"
- },
- {
- "name": "Realtime WW2 Alexa Skill",
- "description": "An alexa skill project that's using Alexa SDK. Can also be used for a working example of serverless-webpack (with use of async/await via babel).",
- "githubUrl": "https://github.com/ceilfors/realtime-ww2-alexa"
- },
- {
- "name": "Serverless Kakao Bot",
- "description": "Easy development for Kakaotalk Bot with Serverless",
- "githubUrl": "https://github.com/JisuPark/serverless-kakao-bot"
- },
- {
- "name": "Personal Access Tokens Cron Check",
- "description": "Audit for leaked PAT in your Contentful organization. How to use serverless as cronjobs to keep your Personal Access Tokens secure",
- "githubUrl": "https://github.com/madtrick/cfpat-audit"
- },
- {
- "name": "Daily Instance Backups with AMI Rotation",
- "description": "A simple Python application which scans through your entire AWS account for tagged instances, makes daily AMIs of them, and rotates their backups automatically",
- "githubUrl": "https://github.com/AndrewFarley/AWSAutomatedDailyInstanceAMISnapshots"
- },
- {
- "name": "Serverless Instagram Crawler",
- "description": "Instagram hashtag Crawler with Lambda & DynamoDB.",
- "githubUrl": "https://github.com/kimcoder/serverless-instagram-crawler"
- },
- {
- "name": "Serverless Next.js Example",
- "description": "Next.js example project for development & deploy.",
- "githubUrl": "https://github.com/kimcoder/serverless-nextjs"
- },
- {
- "name": "Serving binary files",
- "description": "Small example showing how to serve binary files using Serverless on AWS with the serverless-apigw-binary plugin, using generated Excel files as an example",
- "githubUrl": "https://github.com/thomastoye/serverless-binary-files-xlsx"
- },
- {
- "name": "Lambda PubSub via SNS Example",
- "description": "Example illustrating the flow: Lambda (publisher) => SNS => Lambda (consumer)",
- "githubUrl": "https://github.com/didil/serverless-lambda-sns-example"
- },
- {
- "name": "Serverless CloudWatch Proxy",
- "description": "Logging adapter that consumes log streams from AWS CloudWatch, streams them to other log destinations. Also capable of identying alerts and sending notifications via Slack/Email",
- "githubUrl": "https://github.com/abbasdgr8/cloudwatch-proxy"
- },
- {
- "name": "Serverless-side rendering with Vue.js and Nuxt.js",
- "description": "Sample project for using Nuxt.js to create a server-side rendered Vue.js app on AWS Lambda and AWS API Gateway. Can easily integrate with your own API or 3rd party APIs such as headless CMS, e-commerce or serverless architecture.",
- "githubUrl": "https://github.com/adnanrahic/serverless-side-rendering-vue-nuxt"
- },
- {
- "name": "aws-mfa-enforce",
- "description": "Serverless function to automate enforcement of Multi-Factor Authentication (MFA) to all AWS IAM users with access to AWS Management Console.",
- "githubUrl": "https://github.com/Chan9390/aws-mfa-enforce"
- },
- {
- "name": "vanity-stargazer",
- "description": "Github vanity-stargazer is a serverless application to handle posting Github new star gazers to Slack",
- "githubUrl": "https://github.com/silvermullet/vanity-stargazer"
- },
- {
- "name": "Fotopia Serverless",
- "description": "A photo archive web app including API, storage and face detection using serverless framework",
- "githubUrl": "https://github.com/mbudm/fotopia-serverless"
- },
- {
- "name": "Commenting API",
- "description": "A commenting api using Serverless Typescript GraphQl and Redis",
- "githubUrl": "https://github.com/AyoubEd/serverless_typescript_graphQl_commentingService"
- },
- {
- "name": "JSON-Serverless",
- "description": "A simple & cheap serverless REST API using [json-server](https://github.com/typicode/json-server) in combination with AWS Lambda / S3 and the serverless framework",
- "githubUrl": "https://github.com/pharindoko/json-serverless"
- },
- {
- "name": "serverless-node-api-dynamodb-neo4j",
- "description": "Architecture example to stream DynamoDB data to a read-model using Neo4j",
- "githubUrl": "https://github.com/noetix/serverless-node-api-dynamodb-neo4j"
- },
- {
- "name": "serverless-python-rds-cron",
- "description": "A serverless python example that periodically removes entries from AWS RDS",
- "githubUrl": "https://github.com/caulagi/serverless-python-rds-cron"
- },
- {
- "name": "Nietzsche",
- "description": "A serverless application that fetches quotes from Goodreads and saves it to DynamoDB with example use cases using `Lambda`, `SNS`, `SQS`, `Step Functions`, `DynamoDB`, `API Gateway`, `CloudWatch`",
- "githubUrl": "https://github.com/rpidanny/Nietzsche"
- },
- {
- "name": "serverless DotNet BoilerPlate",
- "description": "A serverless starter solution for .NET Core, ready for local debugging in VS Code, HTTP Endpoint, etc.",
- "githubUrl": "https://github.com/pharindoko/serverlessDotNetSample"
- },
- {
- "name": "Serverless Load Balancer",
- "description": "A sample that shows how to combine a load balancer with (vpc/subnet configuration) with a lambda.",
- "githubUrl": "https://github.com/pharindoko/serverless-load-balancer"
- },
- {
- "name": "[Unly] Boilerplates Generator",
- "description": "A boilerplates generator, meant to help to quick-start Serverless (AWS Lambda/API GW) and OSS projects, using good defaults _(sentry for automated error handling, staging/prod environments, built-in support for env vars, jest support, babel/webpack)_, yet flexible to fit your needs.",
- "githubUrl": "https://github.com/UnlyEd/boilerplates-generator"
- },
- {
- "name": "serverless-api-typescript-template",
- "description": "A starter template for a Serverless API using Typescript and Jest",
- "githubUrl": "https://github.com/JoshuaToth/serverless-api-typescript-template"
- },
- {
- "name": "Demo project for serverless-migrate-plugin",
- "description": "An example about how to use migrations in your serverless project with serverless-migrate-plugin",
- "githubUrl": "https://github.com/EliuX/serverless-migrate-plugin/tree/master/example"
- },
- {
- "name": "Serverless SNS SQS offline Example ",
- "description": "Minimal example of running serverless-offline with SQS and SNS in local environment.",
- "githubUrl": "https://github.com/kenyipp/serverless-sns-sqs-offline-example"
- },
- {
- "name": "Serverless RDS Log Sync S3",
- "description": "Annotated exmaple of a periodic scheduled task to sync changed RDS log files to an S3 bucket.",
- "githubUrl": "https://github.com/drocco007/serverless-aws-rds-logs-s3"
- },
- {
- "name": "GoLive",
- "description": "Boilerplate to live stream using AWS MediaLive and MediaStore",
- "githubUrl": "https://github.com/adimoraret/golive/"
- },
- { "name": "HTTP Headers Checks",
- "description": "Serverless Application to check integrity of the headers of a given HTTP server",
- "githubUrl": "https://github.com/authdog/http-headers-check"
- },
- {
- "name": "Serverless Image Labeller",
- "description": "Serverless image labelling using Rekognition, s3, DynamoDB.",
- "githubUrl": "https://github.com/nileshprasad137/serverless-image-labeller"
- },
- {
- "name": "Serverless AppSync offline TypeScript with CircleCI",
- "description": "A Serverless Framework template that allows you to launch an AppSync emulator locally and proceed with development. Lambda Function build by TypeScript/Webpack.",
- "githubUrl": "https://github.com/daisuke-awaji/serverless-appsync-offline-typescript-template"
- },
- {
- "name": "Serverless Screenshot to S3",
- "description": "An example serverless stack which takes a screenshot using aws-chrome-lambda and puts it in s3. NodeJS.",
- "githubUrl": "https://github.com/slaytr/aws-node-screenshot-to-s3"
- },
- {
- "name": "Express Application With Lambda",
- "description": "This example demonstrates how to build an express application for AWS Lambda based on serverless framework.",
- "githubUrl": "https://github.com/HoseungJang/serverless-lambda-express-example"
- },
- {
- "name": "Idempotent Serverless Functions",
- "description": "This repository demonstrates how to ensure the idempotence of serverless functions running on AWS Lambda.",
- "githubUrl": "https://github.com/Nsupyq/idempotent-serverless-functions"
- },
- {
- "name": "File uploads using S3 presigned URLs",
- "description": "A Serverless photo upload service with API Gateway, S3 presigned URLs and Lambda.",
- "githubUrl": "https://github.com/marchetti2/aws-node-serverless-upload-presigned-url"
- },
- {
- "name": "Monorepo Typescript microservices",
- "description": "An opinionated Serverless template with several Typescript microservices in a monorepo",
- "githubUrl": "https://github.com/fargito/serverless-monorepo-microservices-template"
- },
- {
- "name": "Serverless Python Twitch EventSub to Discord Webhook on AWS",
- "description": "This template takes go-live events from Twitch EventSub, and publishes the events through a Discord webhook",
- "githubUrl": "https://github.com/dylmye/aws-python-twitch-eventsub-to-discord-webhook"
- }
-]
diff --git a/compose-multiframework/README.md b/compose-multiframework/README.md
new file mode 100644
index 000000000..b9238ff7a
--- /dev/null
+++ b/compose-multiframework/README.md
@@ -0,0 +1,25 @@
+# Serverless Framework Compose: Multiframework Deployment
+
+Deploying multiple services in a monorepository is a common pattern in larger teams. Serverless Framework Compose simplifies the deployment and orchestration of these services by offering:
+
+1. Parallel deployment of multiple services
+2. Ordered deployment of services
+3. Support for deploying different types of services (e.g., Traditional, SAM, CloudFormation) together
+4. Sharing outputs between services
+5. Running commands across multiple services
+
+In this example, we demonstrate how to use Serverless Compose to deploy three types of services together:
+
+1. AWS CloudFormation Service: Deploys shared resources with outputs that are referenced by the other services.
+2. Serverless Framework Traditional Service
+3. AWS SAM Template Service
+
+The AWS CloudFormation service is deployed first to create shared resources, followed by the parallel deployment of the Traditional and AWS SAM services.
+
+This example also illustrates how to use Serverless Variables with Serverless Compose for organizing and structuring your application, as well as managing different stages.
+
+For more information about Serverless Compose, please see the [Serverless Compose docs](https://www.serverless.com/framework/docs/guides/compose)
+
+For more information about using AWS SAM and or AWS CloudFormation templates with the Serverless Framework, please see the [AWS SAM/CFN docs](https://www.serverless.com/framework/docs/guides/sam)
+
+For more information about Serverless Variables, please see the [Serverless Variables docs](https://www.serverless.com/framework/docs/guides/variables)
diff --git a/compose-multiframework/cloudformation/template.yml b/compose-multiframework/cloudformation/template.yml
new file mode 100644
index 000000000..c6f639e2e
--- /dev/null
+++ b/compose-multiframework/cloudformation/template.yml
@@ -0,0 +1,27 @@
+# This is a shared CloudFormation service that is being referenced by the traditional and SAM services.
+# This is a good place to put shared resources like DynamoDB tables, S3 buckets, etc.
+# that will be used by other services.
+
+AWSTemplateFormatVersion: "2010-09-09"
+
+Resources:
+ SharedTable:
+ Type: "AWS::DynamoDB::Table"
+ Properties:
+ # We are using the parameter passed down from Serverless Compose, and the current stage.
+ # To construct the final table name.
+ TableName: ${param:tableNamePrefix}-${sls:stage}
+ AttributeDefinitions:
+ - AttributeName: "Id"
+ AttributeType: "S"
+ KeySchema:
+ - AttributeName: "Id"
+ KeyType: "HASH"
+ ProvisionedThroughput:
+ ReadCapacityUnits: 5
+ WriteCapacityUnits: 5
+
+# We are outputting the table name so that other services can reference it.
+Outputs:
+ TableName:
+ Value: !Ref SharedTable
diff --git a/compose-multiframework/sam/handler.js b/compose-multiframework/sam/handler.js
new file mode 100644
index 000000000..06e13a678
--- /dev/null
+++ b/compose-multiframework/sam/handler.js
@@ -0,0 +1,7 @@
+exports.handler = async (event) => {
+ return {
+ service: "sam",
+ tableName: process.env.TABLE_NAME,
+ domain: process.env.DOMAIN,
+ };
+};
diff --git a/compose-multiframework/sam/samconfig.toml b/compose-multiframework/sam/samconfig.toml
new file mode 100644
index 000000000..79f5d5b32
--- /dev/null
+++ b/compose-multiframework/sam/samconfig.toml
@@ -0,0 +1,5 @@
+version = 0.1
+
+[default]
+[default.global.parameters]
+stack_name = "sam-compose-service-example"
diff --git a/compose-multiframework/sam/template.yml b/compose-multiframework/sam/template.yml
new file mode 100644
index 000000000..f6e4f026e
--- /dev/null
+++ b/compose-multiframework/sam/template.yml
@@ -0,0 +1,32 @@
+AWSTemplateFormatVersion: "2010-09-09"
+Transform: AWS::Serverless-2016-10-31
+
+Globals:
+ Function:
+ Timeout: 3
+ MemorySize: 128
+
+Resources:
+ HelloWorldFunction:
+ Type: AWS::Serverless::Function
+ Properties:
+ Handler: handler.handler
+ Runtime: nodejs20.x
+ Environment:
+ Variables:
+ # We are using the output of the shared resources CloudFormation template
+ # that is passed down from Serverless Compose, and the staged param "domain".
+ TABLE_NAME: ${param:tableName}
+ DOMAIN: ${param:domain}
+ Architectures:
+ - x86_64
+ Events:
+ Api:
+ Type: HttpApi
+ Properties:
+ Path: /
+ Method: GET
+
+Outputs:
+ Endpoint:
+ Value: !Sub "https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com"
diff --git a/compose-multiframework/serverless-compose.yml b/compose-multiframework/serverless-compose.yml
new file mode 100644
index 000000000..3e64aa526
--- /dev/null
+++ b/compose-multiframework/serverless-compose.yml
@@ -0,0 +1,46 @@
+# Serverless Framework can deploy multiple types of templates:
+# 1) Traditional Serverless Framework templates
+# 2) AWS Cloudformation Templates
+# 3) AWS SAM Templates.
+# This is useful if your organization is using these different templates and wants one tool to standardize around.
+# Here, we use Serverless Framework Compose (serverless.com/framework/docs/guides/compose) to deploy three different template types in a single deploy command.
+# Deployments happen in parallel by default. You can also share outputs from one Service to another, across template types.
+# In this case, Compose will auto-determine the correct order to deploy each Service.
+
+# Example stage-specific parameters you might need in your services.
+stages:
+ default:
+ params:
+ domain: "dev-api.acmeinc.com" # This is the value of the "domain" param in the dev stage
+ prod:
+ params:
+ domain: "prod-api.acmeinc.com" # This is the value of the "domain" param in the prod stage
+
+services:
+ # Framework: AWS CloudFormation
+ # The service name here will be used as the underlying cloudformation stack name.
+ # Make sure it’s unique so it doesn’t collide, and accidently update another stack.
+ # If you change it, make sure you update the references in other services.
+ shared-resources-example:
+ path: cloudformation
+ params:
+ # We are passing a simple string parameter to the CloudFormation template.
+ # If you open the template file, you will see that we reference it with ${param:tableNamePrefix}
+ tableNamePrefix: shared-table
+
+ # Framework: Serverless Framework Traditional
+ traditional:
+ path: traditional
+ params:
+ # We are passing a reference to the shared CloudFormation stack output to the traditional service.
+ # The shared CloudFormation stack is deployed first, and the output is passed to this service.
+ tableName: ${shared-resources-example.TableName}
+
+ # Framework: AWS SAM
+ sam:
+ path: sam
+ params:
+ # We do the same here, passing the shared CloudFormation stack output to the SAM service.
+ # Both the traditional and SAM services will be deployed in parallel.
+ # As they both depend on the same shared service.
+ tableName: ${shared-resources-example.TableName}
diff --git a/compose-multiframework/traditional/handler.js b/compose-multiframework/traditional/handler.js
new file mode 100644
index 000000000..4640f5c2f
--- /dev/null
+++ b/compose-multiframework/traditional/handler.js
@@ -0,0 +1,7 @@
+exports.handler = async (event) => {
+ return {
+ service: "traditional",
+ tableName: process.env.TABLE_NAME,
+ domain: process.env.DOMAIN,
+ };
+};
diff --git a/compose-multiframework/traditional/serverless.yml b/compose-multiframework/traditional/serverless.yml
new file mode 100644
index 000000000..e90a36613
--- /dev/null
+++ b/compose-multiframework/traditional/serverless.yml
@@ -0,0 +1,18 @@
+service: traditional
+
+provider:
+ name: aws
+ runtime: nodejs20.x
+
+functions:
+ hello:
+ handler: handler.handler
+ events:
+ - httpApi:
+ path: /
+ method: get
+ environment:
+ # We are using the output of the shared resources CloudFormation template
+ # that is passed down from Serverless Compose, and the staged param "domain".
+ TABLE_NAME: ${param:tableName}
+ DOMAIN: ${param:domain}
diff --git a/examples.json b/examples.json
index a8ce1a9a3..1216ded27 100644
--- a/examples.json
+++ b/examples.json
@@ -228,30 +228,30 @@
"authorAvatar": "https://avatars0.githubusercontent.com/u/8188?v=4&s=140"
},
{
- "title": "Serverless Framework Node Express API on AWS",
+ "title": "Node Express API on AWS",
"name": "aws-node-express-api",
- "description": "This template demonstrates how to develop and deploy a simple Node Express API running on AWS Lambda using the traditional Serverless Framework.",
+ "description": "This template demonstrates how to develop and deploy a simple Node Express API running on AWS Lambda using the Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-node-express-api",
- "framework": "v2",
+ "framework": "v4",
"language": "node",
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 1
+ "priority": 2
},
{
- "title": "Serverless Framework Node Express API service backed by DynamoDB on AWS",
+ "title": "Node Express API service backed by DynamoDB on AWS",
"name": "aws-node-express-dynamodb-api",
- "description": "This template demonstrates how to develop and deploy a simple Node Express API service backed by DynamoDB running on AWS Lambda using the traditional Serverless Framework.",
+ "description": "This template demonstrates how to develop and deploy a simple Node Express API service backed by DynamoDB running on AWS Lambda using the Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-node-express-dynamodb-api",
- "framework": "v2",
+ "framework": "v4",
"language": "node",
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 1
+ "priority": 3
},
{
"title": "AWS Fetch image from URL and upload to S3 example in NodeJS",
@@ -323,8 +323,7 @@
"platform": "aws",
"authorLink": "https://github.com/chief-wizard",
"authorName": "Chief Wizard",
- "authorAvatar": "https://avatars3.githubusercontent.com/u/40777040?v=4&s=140",
- "priority": 1
+ "authorAvatar": "https://avatars3.githubusercontent.com/u/40777040?v=4&s=140"
},
{
"title": "GraphQL query endpoint in NodeJS on AWS with DynamoDB",
@@ -336,8 +335,7 @@
"platform": "aws",
"authorLink": "https://github.com/gismoranas",
"authorName": "Gismo Ranas",
- "authorAvatar": "https://avatars0.githubusercontent.com/u/5903107?v=4&s=140",
- "priority": 10
+ "authorAvatar": "https://avatars0.githubusercontent.com/u/5903107?v=4&s=140"
},
{
"title": "Node.js AWS Lambda connecting to Heroku Postgres",
@@ -493,6 +491,18 @@
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
+ "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4"
+ },
+ {
+ "title": "AWS Simple HTTP Endpoint example in NodeJS",
+ "name": "aws-node-http-api",
+ "description": "This template demonstrates how to make a simple HTTP API with Node.js running on AWS Lambda and API Gateway using the Serverless Framework.",
+ "githubUrl": "https://github.com/serverless/examples/tree/master/aws-node-http-api",
+ "framework": "v4",
+ "language": "node",
+ "platform": "aws",
+ "authorLink": "https://github.com/serverless",
+ "authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
"priority": 1
},
@@ -506,21 +516,20 @@
"platform": "aws",
"authorLink": "https://github.com/ac360",
"authorName": "Austen Collins",
- "authorAvatar": "https://avatars3.githubusercontent.com/u/2752551?v=4&s=140",
- "priority": 1
+ "authorAvatar": "https://avatars3.githubusercontent.com/u/2752551?v=4&s=140"
},
{
"title": "AWS Node Scheduled Cron example in NodeJS",
"name": "aws-node-scheduled-cron",
- "description": "This is an example of creating a function that runs as a cron job using the serverless 'schedule' event.",
+ "description": "This is an example of creating a function that runs as a cron job using the serverless ''schedule'' event.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-node-scheduled-cron",
- "framework": "v1",
+ "framework": "v4",
"language": "node",
"platform": "aws",
"authorLink": "https://github.com/0dj0bz",
"authorName": "Rob Abbott",
"authorAvatar": "https://avatars3.githubusercontent.com/u/5679763?v=4&s=140",
- "priority": 1
+ "priority": 4
},
{
"title": "AWS Node Scheduled Weather example in NodeJS",
@@ -643,7 +652,7 @@
"authorAvatar": "https://avatars0.githubusercontent.com/u/26760571?v=4&s=140"
},
{
- "title": "Serverless Framework Node SQS Producer Consumer on AWS",
+ "title": "Node SQS Producer Consumer on AWS",
"name": "aws-node-sqs-worker",
"description": "This template demonstrates how to develop and deploy a simple SQS-based producer-consumer service running on AWS Lambda using the traditional Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-node-sqs-worker",
@@ -652,8 +661,7 @@
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
- "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 1
+ "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4"
},
{
"title": "AWS Stripe Integration example in NodeJS",
@@ -701,8 +709,7 @@
"platform": "aws",
"authorLink": "https://github.com/darrenhgc",
"authorName": "Darren Holland",
- "authorAvatar": "https://avatars0.githubusercontent.com/u/28113106?v=4&s=140",
- "priority": 1
+ "authorAvatar": "https://avatars0.githubusercontent.com/u/28113106?v=4&s=140"
},
{
"title": "Joke Twitter Bot",
@@ -810,21 +817,20 @@
"platform": "aws",
"authorLink": "https://github.com/eahefnawy",
"authorName": "Eslam λ Hefnawy",
- "authorAvatar": "https://avatars3.githubusercontent.com/u/2312463?v=4&s=140",
- "priority": 10
+ "authorAvatar": "https://avatars3.githubusercontent.com/u/2312463?v=4&s=140"
},
{
"title": "AWS NodeJS Example",
"name": "aws-node",
- "description": "This template demonstrates how to deploy a NodeJS function running on AWS Lambda using the traditional Serverless Framework.",
+ "description": "This template demonstrates how to deploy a simple NodeJS function running on AWS Lambda using the Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-node",
- "framework": "v2",
+ "framework": "v4",
"language": "node",
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 1
+ "priority": 5
},
{
"title": "AWS Serverless Alexa Skill example in Python",
@@ -851,30 +857,30 @@
"authorAvatar": "https://avatars3.githubusercontent.com/u/30560831?v=4&s=140"
},
{
- "title": "Serverless Framework Python Flask API on AWS",
+ "title": "Python Flask API on AWS",
"name": "aws-python-flask-api",
- "description": "This template demonstrates how to develop and deploy a simple Python Flask API running on AWS Lambda using the traditional Serverless Framework.",
+ "description": "This template demonstrates how to develop and deploy a simple Python Flask API running on AWS Lambda using the Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-python-flask-api",
- "framework": "v2",
+ "framework": "v4",
"language": "python",
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 2
+ "priority": 7
},
{
- "title": "Serverless Framework Python Flask API backed by DynamoDB on AWS",
+ "title": "Python Flask API backed by DynamoDB on AWS",
"name": "aws-python-flask-dynamodb-api",
- "description": "This template demonstrates how to develop and deploy a simple Python Flask API service backed by DynamoDB running on AWS Lambda using the traditional Serverless Framework.",
+ "description": "This template demonstrates how to develop and deploy a simple Python Flask API service backed by DynamoDB running on AWS Lambda using the Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-python-flask-dynamodb-api",
- "framework": "v2",
+ "framework": "v4",
"language": "python",
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 2
+ "priority": 8
},
{
"title": "Simple LINE bot",
@@ -958,21 +964,33 @@
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
+ "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4"
+ },
+ {
+ "title": "AWS Simple HTTP Endpoint example in Python",
+ "name": "aws-python-http-api",
+ "description": "This template demonstrates how to make a simple HTTP API with Python running on AWS Lambda and API Gateway using the Serverless Framework.",
+ "githubUrl": "https://github.com/serverless/examples/tree/master/aws-python-rest-api",
+ "framework": "v4",
+ "language": "python",
+ "platform": "aws",
+ "authorLink": "https://github.com/serverless",
+ "authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 2
+ "priority": 6
},
{
"title": "AWS Python Scheduled Cron example in Python",
"name": "aws-python-scheduled-cron",
- "description": "This is an example of creating a function that runs as a cron job using the serverless 'schedule' event.",
+ "description": "This is an example of creating a function that runs as a cron job using the serverless ''schedule'' event.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-python-scheduled-cron",
- "framework": "v1",
+ "framework": "v4",
"language": "python",
"platform": "aws",
"authorLink": "https://github.com/rupakg",
"authorName": "Rupak Ganguly",
"authorAvatar": "https://avatars0.githubusercontent.com/u/8188?v=4&s=140",
- "priority": 2
+ "priority": 9
},
{
"title": "AWS Simple HTTP Endpoint example in Python",
@@ -987,7 +1005,7 @@
"authorAvatar": "https://avatars0.githubusercontent.com/u/8188?v=4&s=140"
},
{
- "title": "Serverless Framework Python SQS Producer Consumer on AWS",
+ "title": "Python SQS Producer Consumer on AWS",
"name": "aws-python-sqs-worker",
"description": "This template demonstrates how to develop and deploy a simple SQS-based producer-consumer service running on AWS Lambda using the traditional Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-python-sqs-worker",
@@ -996,8 +1014,7 @@
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
- "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 2
+ "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4"
},
{
"title": "TODO",
@@ -1014,15 +1031,15 @@
{
"title": "AWS Python Example",
"name": "aws-python",
- "description": "This template demonstrates how to deploy a Python function running on AWS Lambda using the traditional Serverless Framework.",
+ "description": "This template demonstrates how to deploy a Python function running on AWS Lambda using the Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-python",
- "framework": "v2",
+ "framework": "v4",
"language": "python",
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
"authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 2
+ "priority": 10
},
{
"title": "Ruby LINE bot",
@@ -1049,7 +1066,7 @@
"authorAvatar": "https://avatars0.githubusercontent.com/u/1994863?v=4&s=140"
},
{
- "title": "Serverless Framework Ruby Sinatra API backed by DynamoDB on AWS",
+ "title": "Ruby Sinatra API backed by DynamoDB on AWS",
"name": "aws-ruby-sinatra-dynamodb-api",
"description": "This template demonstrates how to develop and deploy a simple Ruby Sinatra API service backed by DynamoDB running on AWS Lambda using the traditional Serverless Framework.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-ruby-sinatra-dynamodb-api",
@@ -1058,8 +1075,7 @@
"platform": "aws",
"authorLink": "https://github.com/serverless",
"authorName": "Serverless, inc.",
- "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4",
- "priority": 5
+ "authorAvatar": "https://avatars1.githubusercontent.com/u/13742415?s=200&v=4"
},
{
"title": "AWS Ruby scheduled cron example backed by DynamoDB",
@@ -1095,8 +1111,7 @@
"platform": "aws",
"authorLink": "https://github.com/pigius",
"authorName": "Daniel Aniszkiewicz",
- "authorAvatar": "https://avatars.githubusercontent.com/u/8863200?v=4&s=140",
- "priority": 5
+ "authorAvatar": "https://avatars.githubusercontent.com/u/8863200?v=4&s=140"
},
{
"title": "AWS Serverless Boilerplate example in Rust",
@@ -1104,7 +1119,7 @@
"description": "This example shows a Serverless boilerplate in Rust.",
"githubUrl": "https://github.com/serverless/examples/tree/master/aws-rust-simple-http-endpoint",
"framework": "v1+",
- "language": "",
+ "language": "rust",
"platform": "aws",
"authorLink": "https://github.com/jonee",
"authorName": "Jonee Ryan Ty",
@@ -1368,7 +1383,7 @@
"description": "This example shows a Serverless boilerplate in Rust.",
"githubUrl": "https://github.com/serverless/examples/tree/master/openwhisk-rust-simple-http-endpoint",
"framework": "v1+",
- "language": "",
+ "language": "rust",
"platform": "openwhisk",
"authorLink": "https://github.com/jonee",
"authorName": "Jonee Ryan Ty",
@@ -2486,5 +2501,329 @@
"authorName": "HoseungJang",
"authorAvatar": "https://avatars.githubusercontent.com/u/39669819?v=4",
"community": true
+ },
+ {
+ "title": "DropBucket - Serverless file sharing",
+ "name": "drop-bucket",
+ "description": "A serverless file sharing app powered by Cognito/S3/Lambda/API Gateway. Includes a React single-page app UI and virus scanning.",
+ "githubUrl": "https://github.com/marksteele/drop-bucket",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/marksteele",
+ "authorName": "Mark Steele",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/1577178?v=4",
+ "community": true
+ },
+ {
+ "title": "serverless-pokego",
+ "name": "pokego-serverless",
+ "description": "Serverless-powered API to fetch nearby Pokemon Go data",
+ "githubUrl": "https://github.com/jch254/pokego-serverless",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/jch254",
+ "authorName": "Jordan Hornblow",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/3821107?v=4",
+ "community": true
+ },
+ {
+ "title": "serverless-garden-aid",
+ "name": "web-bff",
+ "description": "IoT Garden Aid Backend",
+ "githubUrl": "https://github.com/garden-aid/web-bff",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/garden-aid",
+ "authorName": "Garden Aid",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/20978945?v=4",
+ "community": true
+ },
+ {
+ "title": "serverless-react-boilerplate",
+ "name": "serverless-react-boilerplate",
+ "description": "A serverless react boilerplate for offline development",
+ "githubUrl": "https://github.com/99xt/serverless-react-boilerplate",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "",
+ "authorName": "",
+ "authorAvatar": "",
+ "community": true
+ },
+ {
+ "title": "serverless-delivery-framework",
+ "name": "serverless-delivery-framework",
+ "description": "This is a boilerplate for version release pipeline with serverless framework",
+ "githubUrl": "https://github.com/99xt/serverless-delivery-framework",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "",
+ "authorName": "",
+ "authorAvatar": "",
+ "community": true
+ },
+ {
+ "title": "serverless-mailgun-slack",
+ "name": "serverless-mailgun-slack",
+ "description": "A Serverless function for posting to a Slack Webhook in response to a Mailgun route",
+ "githubUrl": "https://github.com/Marcus-L/serverless-mailgun-slack",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/Marcus-L",
+ "authorName": "Marcus Lum",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/1369184?v=4",
+ "community": true
+ },
+ {
+ "title": "serverless-AWS-Rekognition-finpics",
+ "name": "finpics",
+ "description": "Use AWS Rekognition to provide a faces search of finpics.com",
+ "githubUrl": "https://github.com/rgfindl/finpics",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/rgfindl",
+ "authorName": "Randy Findley",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/1237052?v=4",
+ "community": true
+ },
+ {
+ "title": "jrestless-examples",
+ "name": "jrestless-examples",
+ "description": "JRestless (Java / JAX-RS) examples for API Gateway Functions (plain JAX-RS), Spring, binary data requests/responses, custom authorizers and Cognito User Pool authorizers), SNS Functions) (asynchronous communication between functions) and Service Functions) (synchronous HTTP-like communication between functions - transparent through Feign)",
+ "githubUrl": "https://github.com/bbilger/jrestless-examples",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/bbilger",
+ "authorName": "Björn Bilger",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/6827090?v=4",
+ "community": true
+ },
+ {
+ "title": "AWS API Gateway Serverless project written in Go",
+ "name": "serverless-golang",
+ "description": "A serverless project that contains an API Gateway endpoint powered by a Lambda function written in golang and built using [eawsy/aws-lambda-go-shim](https://github.com/eawsy/aws-lambda-go-shim).",
+ "githubUrl": "https://github.com/yunspace/serverless-golang",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "",
+ "authorName": "",
+ "authorAvatar": "",
+ "community": true
+ },
+ {
+ "title": "video-preview-and-analysis-service",
+ "name": "video-preview-and-analysis-service",
+ "description": "An event-driven service that generates labels using Amazon Rekognition and creates preview GIF animation from a video file.",
+ "githubUrl": "https://github.com/laardee/video-preview-and-analysis-service",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/laardee",
+ "authorName": "Eetu Tuomala",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/4726921?v=4",
+ "community": true
+ },
+ {
+ "title": "Serverless ES6/7 CRUD API",
+ "name": "serverless-stack-demo-api",
+ "description": "Serverless Stack examples of backend CRUD APIs (DynamoDB + Lambda + API Gateway + Cognito User Pool authorizer) for React.js single-page app",
+ "githubUrl": "https://github.com/AnomalyInnovations/serverless-stack-demo-api",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/AnomalyInnovations",
+ "authorName": "Anomaly Innovations",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/22177954?v=4",
+ "community": true
+ },
+ {
+ "title": "AWS Lambda Power Tuning (powered by Step Functions)",
+ "name": "aws-lambda-power-tuning",
+ "description": "Build a Step Functions state machine to optimize your AWS Lambda Function memory/power configuration.",
+ "githubUrl": "https://github.com/alexcasalboni/aws-lambda-power-tuning",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/alexcasalboni",
+ "authorName": "Alex Casalboni",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/2457588?v=4",
+ "community": true
+ },
+ {
+ "title": "React & Stripe Serverless Ecommerce",
+ "name": "serverless-shop",
+ "description": "Serverless E-Commerce App with AWS Lambda, Stripe and React",
+ "githubUrl": "https://github.com/patrick-michelberger/serverless-shop",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/patrick-michelberger",
+ "authorName": "Patrick Michelberger",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/1750000?v=4",
+ "community": true
+ },
+ {
+ "title": "Run your Kubernetes Workloads on Amazon EC2 Spot Instances with Amazon EKS and Lambda - Part 2",
+ "name": "aws-eks-spot-instances-serverless-framework-demo",
+ "description": "From this article you'll learn how to configure AWS Lambda functions to allow them manage your EKS Kubernetes cluster and run triggered jobs",
+ "githubUrl": "https://github.com/andreivmaksimov/aws-eks-spot-instances-serverless-framework-demo/tree/part2",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/andreivmaksimov",
+ "authorName": "Andrei Maksimov",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/1902417?v=4",
+ "community": true
+ },
+ {
+ "title": "Serverless Dashboard For Atom Editor",
+ "name": "serverless-dashboard-for-atom",
+ "description": "Atom editor package which allows you to deploy and visualize your serverless services with Serverless Framework on your editor.",
+ "githubUrl": "https://github.com/horike37/serverless-dashboard-for-atom",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/horike37",
+ "authorName": "Takahiro Horike",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/1301012?v=4",
+ "community": true
+ },
+ {
+ "title": "Serverless SSH Command",
+ "name": "serverless-openwhisk-ssh",
+ "description": "Example of executing ssh command with OpenWhisk",
+ "githubUrl": "https://github.com/upgle/serverless-openwhisk-ssh",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/upgle",
+ "authorName": "Seonghyun Oh",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/5635513?v=4",
+ "community": true
+ },
+ {
+ "title": "JSON-Serverless",
+ "name": "json-serverless",
+ "description": "A simple & cheap serverless REST API using [json-server](https://github.com/typicode/json-server) in combination with AWS Lambda / S3 and the serverless framework",
+ "githubUrl": "https://github.com/pharindoko/json-serverless",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/pharindoko",
+ "authorName": "Florian Fuß",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/5619511?v=4",
+ "community": true
+ },
+ {
+ "title": "[Unly] Boilerplates Generator",
+ "name": "boilerplates-generator",
+ "description": "A boilerplates generator, meant to help to quick-start Serverless (AWS Lambda/API GW) and OSS projects, using good defaults _(sentry for automated error handling, staging/prod environments, built-in support for env vars, jest support, babel/webpack)_, yet flexible to fit your needs.",
+ "githubUrl": "https://github.com/UnlyEd/boilerplates-generator",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/UnlyEd",
+ "authorName": "Unly",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/44462742?v=4",
+ "community": true
+ },
+ {
+ "title": "Demo project for serverless-migrate-plugin",
+ "name": "serverless-migrate-plugin",
+ "description": "An example about how to use migrations in your serverless project with serverless-migrate-plugin",
+ "githubUrl": "https://github.com/EliuX/serverless-migrate-plugin/tree/master/example",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/EliuX",
+ "authorName": "Eliecer Hernandez Garbey",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/6514740?v=4",
+ "community": true
+ },
+ {
+ "title": "GoLive",
+ "name": "golive",
+ "description": "Boilerplate to live stream using AWS MediaLive and MediaStore",
+ "githubUrl": "https://github.com/adimoraret/golive/",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/adimoraret",
+ "authorName": "Adrian Moraret",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/18240385?v=4",
+ "community": true
+ },
+ {
+ "title": "Idempotent Serverless Functions",
+ "name": "idempotent-serverless-functions",
+ "description": "This repository demonstrates how to ensure the idempotence of serverless functions running on AWS Lambda.",
+ "githubUrl": "https://github.com/Nsupyq/idempotent-serverless-functions",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/Nsupyq",
+ "authorName": "Nsupyq",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/93358967?v=4",
+ "community": true
+ },
+ {
+ "title": "File uploads using S3 presigned URLs",
+ "name": "aws-node-serverless-upload-presigned-url",
+ "description": "A Serverless photo upload service with API Gateway, S3 presigned URLs and Lambda.",
+ "githubUrl": "https://github.com/marchetti2/aws-node-serverless-upload-presigned-url",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/marchetti2",
+ "authorName": "Mário Luiz",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/35637518?v=4",
+ "community": true
+ },
+ {
+ "title": "Monorepo Typescript microservices",
+ "name": "serverless-monorepo-microservices-template",
+ "description": "An opinionated Serverless template with several Typescript microservices in a monorepo",
+ "githubUrl": "https://github.com/fargito/serverless-monorepo-microservices-template",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/fargito",
+ "authorName": "François Farge",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/29537204?v=4",
+ "community": true
+ },
+ {
+ "title": "Serverless Python Twitch EventSub to Discord Webhook on AWS",
+ "name": "aws-python-twitch-eventsub-to-discord-webhook",
+ "description": "This template takes go-live events from Twitch EventSub, and publishes the events through a Discord webhook",
+ "githubUrl": "https://github.com/dylmye/aws-python-twitch-eventsub-to-discord-webhook",
+ "framework": "",
+ "language": "",
+ "platform": "",
+ "authorLink": "https://github.com/dylmye",
+ "authorName": "Dylan Myers",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/7024578?v=4",
+ "community": true
+ },
+ {
+ "title": "Serverless Compose of Serverless, Cloudformation, and SAM",
+ "name": "compose-multiframework",
+ "description": "This template shows how to compose multiple services using different frameworks, in a single project",
+ "githubUrl": "https://github.com/serverless/examples/tree/master/compose-multiframework",
+ "framework": "",
+ "language": "node",
+ "platform": "aws",
+ "authorLink": "https://github.com/eahefnawy",
+ "authorName": "Eslam λ Hefnawy",
+ "authorAvatar": "https://avatars.githubusercontent.com/u/2312463?v=4"
}
]
diff --git a/generate-readme.js b/generate-readme.js
index 6a8930e57..9a77b5c2b 100644
--- a/generate-readme.js
+++ b/generate-readme.js
@@ -1,16 +1,15 @@
-const fs = require('fs');
-const path = require('path');
-const url = require('url');
-const markdownMagic = require('markdown-magic'); // eslint-disable-line
-const globby = require('markdown-magic').globby; // eslint-disable-line
+const fs = require("fs");
+const path = require("path");
+const url = require("url");
+const markdownMagic = require("markdown-magic"); // eslint-disable-line
-const toTitleCase = (str) => { // eslint-disable-line
- return str.replace(/\w\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());
-};
+const toTitleCase = (str) =>
+ str.replace(
+ /\w\S*/g,
+ (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
+ );
-const formatPluginName = (string) => { // eslint-disable-line
- return toTitleCase(string.replace(/-/g, ' '));
-};
+const formatPluginName = (string) => toTitleCase(string.replace(/-/g, " "));
const username = (repo) => {
if (!repo) {
@@ -20,31 +19,34 @@ const username = (repo) => {
const o = url.parse(repo);
var urlPath = o.path; // eslint-disable-line
- if (urlPath.length && urlPath.charAt(0) === '/') {
+ if (urlPath.length && urlPath.charAt(0) === "/") {
urlPath = urlPath.slice(1);
}
- urlPath = urlPath.split('/')[0];
+ urlPath = urlPath.split("/")[0];
return urlPath;
};
const getRuntime = (dirname) => {
+ if (!dirname) {
+ return "unknown";
+ }
if (dirname.match(/node/)) {
- return 'nodeJS';
+ return "nodeJS";
} else if (dirname.match(/python/)) {
- return 'python';
+ return "python";
} else if (dirname.match(/swift/)) {
- return 'swift';
+ return "swift";
} else if (dirname.match(/php/)) {
- return 'php';
+ return "php";
} else if (dirname.match(/ruby/)) {
- return 'ruby';
+ return "ruby";
} else if (dirname.match(/golang/)) {
- return 'golang';
+ return "golang";
} else if (dirname.match(/dotnet/)) {
- return 'dotnet';
+ return "dotnet";
}
- return 'nodeJS';
+ return "unknown";
};
const config = {
@@ -56,49 +58,31 @@ const config = {
*/
SERVERLESS_EXAMPLE_TABLE() {
- const examples = globby.sync(['**/package.json', '!node_modules/**/package.json', '!**/node_modules/**/package.json', '!package.json', '!**/bin/**/netcoreapp2.1/**/package.json']);
+ const examplesPath = path.join(__dirname, "examples.json");
+ const examples = JSON.parse(fs.readFileSync(examplesPath, "utf8"));
+
// Make table header
- let md = '| Example | Runtime |\n';
- md += '|:--------------------------- |:-----|\n';
+ let md = "| Example | Runtime |\n";
+ md += "|:--------------------------- |:-----|\n";
examples.forEach((example) => {
- const data = JSON.parse(fs.readFileSync(example, 'utf8'));
- const dirname = path.dirname(example);
+ const dirname = example.dirname || "";
const exampleUrl = `https://github.com/serverless/examples/tree/master/${dirname}`;
const runtime = getRuntime(dirname);
- const description = (data.description) ? `
${data.description}` : '';
+ const description = example.description
+ ? `
${example.description}`
+ : "";
// add table rows
- md += `| [${formatPluginName(data.name)}](${exampleUrl}) ${description} | ${runtime} |\n`;
+ md += `| [${
+ example.title || formatPluginName(example.name)
+ }](${exampleUrl}) ${description} | ${runtime} |\n`;
});
return md;
},
- /*
- In README.md the below comment block adds the list to the readme
-
- community examples list will be generated here
-
- */
- COMMUNITY_EXAMPLES_TABLE() {
- const exampleFile = path.join(__dirname, 'community-examples.json');
- const examples = JSON.parse(fs.readFileSync(exampleFile, 'utf8'));
- // Make table header
- let md = '| Example | Author |\n';
- md += '|:-------|:------:|\n';
- // Sort alphabetically
- examples.sort((a, b) => a.name < b.name ? -1 : 1).forEach((data) => { // eslint-disable-line
- // add table rows
- const userName = username(data.githubUrl);
- const profileURL = `http://github.com/${userName}`;
- md += `| **[${formatPluginName(data.name)}](${data.githubUrl})**
`;
- md += ` ${data.description} | [${userName}](${profileURL}) |\n`;
- });
- return md.replace(/^\s+|\s+$/g, '');
- },
},
};
-
-const markdownPath = path.join(__dirname, 'README.md');
+const markdownPath = path.join(__dirname, "README.md");
markdownMagic(markdownPath, config, () => {
- console.log('Docs updated!'); // eslint-disable-line
+ console.log("Docs updated!"); // eslint-disable-line
});
diff --git a/package-lock.json b/package-lock.json
index 671eb82b0..a62d1f9a0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,298 +1,383 @@
{
"name": "serverless-examples",
"version": "0.0.0",
- "lockfileVersion": 1,
+ "lockfileVersion": 3,
"requires": true,
- "dependencies": {
- "@babel/code-frame": {
+ "packages": {
+ "": {
+ "name": "serverless-examples",
+ "version": "0.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "eslint": "^5.15.3",
+ "eslint-config-airbnb-base": "^10.0.1",
+ "eslint-plugin-import": "^2.16.0",
+ "gray-matter": "^4.0.2",
+ "markdown-magic": "^0.1.25"
+ },
+ "devDependencies": {}
+ },
+ "node_modules/@babel/code-frame": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
"integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
- "requires": {
+ "dependencies": {
"@babel/highlight": "^7.0.0"
}
},
- "@babel/highlight": {
+ "node_modules/@babel/highlight": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
"integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
- "requires": {
+ "dependencies": {
"chalk": "^2.0.0",
"esutils": "^2.0.2",
"js-tokens": "^4.0.0"
}
},
- "acorn": {
+ "node_modules/acorn": {
"version": "6.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
- "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "acorn-jsx": {
+ "node_modules/acorn-jsx": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
- "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg=="
+ "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==",
+ "peerDependencies": {
+ "acorn": "^6.0.0"
+ }
},
- "ajv": {
+ "node_modules/ajv": {
"version": "6.10.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
- "requires": {
+ "dependencies": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
- "ansi-escapes": {
+ "node_modules/ansi-escapes": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
- "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "engines": {
+ "node": ">=4"
+ }
},
- "ansi-red": {
+ "node_modules/ansi-red": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
"integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
- "requires": {
+ "dependencies": {
"ansi-wrap": "0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "ansi-regex": {
+ "node_modules/ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "ansi-styles": {
+ "node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
+ "dependencies": {
"color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "ansi-wrap": {
+ "node_modules/ansi-wrap": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
- "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
+ "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "argparse": {
+ "node_modules/argparse": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
"integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "requires": {
+ "dependencies": {
"sprintf-js": "~1.0.2"
}
},
- "array-union": {
+ "node_modules/array-union": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
- "requires": {
+ "dependencies": {
"array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "array-uniq": {
+ "node_modules/array-uniq": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "asap": {
+ "node_modules/asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
},
- "astral-regex": {
+ "node_modules/astral-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "engines": {
+ "node": ">=4"
+ }
},
- "autolinker": {
+ "node_modules/autolinker": {
"version": "0.28.1",
"resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz",
"integrity": "sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=",
- "requires": {
+ "dependencies": {
"gulp-header": "^1.7.1"
}
},
- "balanced-match": {
+ "node_modules/balanced-match": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
"integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
},
- "brace-expansion": {
+ "node_modules/brace-expansion": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
"integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=",
- "requires": {
+ "dependencies": {
"balanced-match": "^0.4.1",
"concat-map": "0.0.1"
}
},
- "buffer-from": {
+ "node_modules/buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
- "callsites": {
+ "node_modules/callsites": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz",
- "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw=="
+ "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==",
+ "engines": {
+ "node": ">=6"
+ }
},
- "caseless": {
+ "node_modules/caseless": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
},
- "chalk": {
+ "node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
+ "dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "chardet": {
+ "node_modules/chardet": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
},
- "cli-cursor": {
+ "node_modules/cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "requires": {
+ "dependencies": {
"restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "cli-width": {
+ "node_modules/cli-width": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
},
- "coffee-script": {
+ "node_modules/coffee-script": {
"version": "1.12.7",
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
- "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="
+ "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==",
+ "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)",
+ "bin": {
+ "cake": "bin/cake",
+ "coffee": "bin/coffee"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
- "color-convert": {
+ "node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
+ "dependencies": {
"color-name": "1.1.3"
}
},
- "color-name": {
+ "node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
- "commander": {
+ "node_modules/commander": {
"version": "2.20.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
},
- "concat-map": {
+ "node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
- "concat-stream": {
+ "node_modules/concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
- "concat-with-sourcemaps": {
+ "node_modules/concat-with-sourcemaps": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz",
"integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==",
- "requires": {
+ "dependencies": {
"source-map": "^0.6.1"
}
},
- "contains-path": {
+ "node_modules/contains-path": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
- "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo="
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "core-util-is": {
+ "node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "cross-spawn": {
+ "node_modules/cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "requires": {
+ "dependencies": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
"semver": "^5.5.0",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
}
},
- "debug": {
+ "node_modules/debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "requires": {
+ "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)",
+ "dependencies": {
"ms": "^2.1.1"
}
},
- "deep-is": {
+ "node_modules/deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
},
- "deepmerge": {
+ "node_modules/deepmerge": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
- "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
+ "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "diacritics-map": {
+ "node_modules/diacritics-map": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz",
- "integrity": "sha1-bfwP+dAQAKLt8oZTccrDFulJd68="
+ "integrity": "sha1-bfwP+dAQAKLt8oZTccrDFulJd68=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
- "doctrine": {
+ "node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "requires": {
+ "dependencies": {
"esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "emoji-regex": {
+ "node_modules/emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
- "error-ex": {
+ "node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "requires": {
+ "dependencies": {
"is-arrayish": "^0.2.1"
}
},
- "escape-string-regexp": {
+ "node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
- "eslint": {
+ "node_modules/eslint": {
"version": "5.15.3",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-5.15.3.tgz",
"integrity": "sha512-vMGi0PjCHSokZxE0NLp2VneGw5sio7SSiDNgIUn2tC0XkWJRNOIoHIg3CliLVfXnJsiHxGAYrkw0PieAu8+KYQ==",
- "requires": {
+ "dependencies": {
"@babel/code-frame": "^7.0.0",
"ajv": "^6.9.1",
"chalk": "^2.1.0",
@@ -329,66 +414,78 @@
"strip-json-comments": "^2.0.1",
"table": "^5.2.3",
"text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^6.14.0 || ^8.10.0 || >=9.10.0"
}
},
- "eslint-config-airbnb-base": {
+ "node_modules/eslint-config-airbnb-base": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz",
- "integrity": "sha1-8X1OUpksHUXRt3E++81ezQ5+BQY="
+ "integrity": "sha1-8X1OUpksHUXRt3E++81ezQ5+BQY=",
+ "engines": {
+ "node": ">= 4"
+ },
+ "peerDependencies": {
+ "eslint": "^3.9.1",
+ "eslint-plugin-import": "^2.1.0"
+ }
},
- "eslint-import-resolver-node": {
+ "node_modules/eslint-import-resolver-node": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
"integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
- "requires": {
+ "dependencies": {
"debug": "^2.6.9",
"resolve": "^1.5.0"
- },
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
+ "ms": "2.0.0"
}
},
- "eslint-module-utils": {
+ "node_modules/eslint-import-resolver-node/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/eslint-module-utils": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz",
"integrity": "sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==",
- "requires": {
+ "dependencies": {
"debug": "^2.6.8",
"pkg-dir": "^2.0.0"
},
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
+ "ms": "2.0.0"
}
},
- "eslint-plugin-import": {
+ "node_modules/eslint-module-utils/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/eslint-plugin-import": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz",
"integrity": "sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A==",
- "requires": {
+ "dependencies": {
"contains-path": "^0.1.0",
"debug": "^2.6.9",
"doctrine": "1.5.0",
@@ -400,365 +497,468 @@
"read-pkg-up": "^2.0.0",
"resolve": "^1.9.0"
},
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "2.x - 5.x"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
- "requires": {
- "esutils": "^2.0.2",
- "isarray": "^1.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "eslint-scope": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dependencies": {
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/eslint-scope": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
"integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
- "requires": {
+ "dependencies": {
"esrecurse": "^4.1.0",
"estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
}
},
- "eslint-utils": {
+ "node_modules/eslint-utils": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
"integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
- "requires": {
+ "dependencies": {
"eslint-visitor-keys": "^1.1.0"
},
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
- "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A=="
- }
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "engines": {
+ "node": ">=4"
}
},
- "eslint-visitor-keys": {
+ "node_modules/eslint-visitor-keys": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
- "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ=="
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "engines": {
+ "node": ">=4"
+ }
},
- "espree": {
+ "node_modules/espree": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
"integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
- "requires": {
+ "dependencies": {
"acorn": "^6.0.7",
"acorn-jsx": "^5.0.0",
"eslint-visitor-keys": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "esprima": {
+ "node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "esquery": {
+ "node_modules/esquery": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
"integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
- "requires": {
+ "dependencies": {
"estraverse": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.6"
}
},
- "esrecurse": {
+ "node_modules/esrecurse": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
"integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
- "requires": {
+ "dependencies": {
"estraverse": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=4.0"
}
},
- "estraverse": {
+ "node_modules/estraverse": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "esutils": {
+ "node_modules/esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "expand-range": {
+ "node_modules/expand-range": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "requires": {
+ "dependencies": {
"fill-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "extend-shallow": {
+ "node_modules/extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
+ "dependencies": {
"is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "external-editor": {
+ "node_modules/external-editor": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
"integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
- "requires": {
+ "dependencies": {
"chardet": "^0.7.0",
"iconv-lite": "^0.4.24",
"tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "fast-deep-equal": {
+ "node_modules/fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
},
- "fast-json-stable-stringify": {
+ "node_modules/fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
- "fast-levenshtein": {
+ "node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
- "figures": {
+ "node_modules/figures": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "requires": {
+ "dependencies": {
"escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "file-entry-cache": {
+ "node_modules/file-entry-cache": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
"integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
- "requires": {
+ "dependencies": {
"flat-cache": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "fill-range": {
+ "node_modules/fill-range": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
"integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
- "requires": {
+ "dependencies": {
"is-number": "^2.1.0",
"isobject": "^2.0.0",
"randomatic": "^3.0.0",
"repeat-element": "^1.1.2",
"repeat-string": "^1.5.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "find-up": {
+ "node_modules/find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
+ "dependencies": {
"locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "flat-cache": {
+ "node_modules/flat-cache": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
"integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
- "requires": {
+ "dependencies": {
"flatted": "^2.0.0",
"rimraf": "2.6.3",
"write": "1.0.3"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "flatted": {
+ "node_modules/flatted": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
"integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg=="
},
- "for-in": {
+ "node_modules/for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "fs-extra": {
+ "node_modules/fs-extra": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
"integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
- "requires": {
+ "dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^2.1.0",
"klaw": "^1.0.0"
}
},
- "fs.realpath": {
+ "node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
- "function-bind": {
+ "node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
- "functional-red-black-tree": {
+ "node_modules/functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
},
- "glob": {
+ "node_modules/glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "requires": {
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
}
},
- "globals": {
+ "node_modules/globals": {
"version": "11.11.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
- "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw=="
+ "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
+ "engines": {
+ "node": ">=4"
+ }
},
- "globby": {
+ "node_modules/globby": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
"integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
- "requires": {
+ "dependencies": {
"array-union": "^1.0.1",
"glob": "^7.0.3",
"object-assign": "^4.0.1",
"pify": "^2.0.0",
"pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "graceful-fs": {
+ "node_modules/graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "gray-matter": {
+ "node_modules/gray-matter": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz",
"integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==",
- "requires": {
+ "dependencies": {
"js-yaml": "^3.11.0",
"kind-of": "^6.0.2",
"section-matter": "^1.0.0",
"strip-bom-string": "^1.0.0"
},
- "dependencies": {
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
- }
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/gray-matter/node_modules/kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "gulp-header": {
+ "node_modules/gulp-header": {
"version": "1.8.12",
"resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz",
"integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==",
- "requires": {
+ "deprecated": "Removed event-stream from gulp-header",
+ "dependencies": {
"concat-with-sourcemaps": "*",
"lodash.template": "^4.4.0",
"through2": "^2.0.0"
}
},
- "has": {
+ "node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
+ "dependencies": {
"function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
}
},
- "has-flag": {
+ "node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "hosted-git-info": {
+ "node_modules/hosted-git-info": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
"integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
},
- "http-basic": {
+ "node_modules/http-basic": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/http-basic/-/http-basic-2.5.1.tgz",
"integrity": "sha1-jORHvbW2xXf4pj4/p4BW7Eu02/s=",
- "requires": {
+ "dependencies": {
"caseless": "~0.11.0",
"concat-stream": "^1.4.6",
"http-response-object": "^1.0.0"
}
},
- "http-response-object": {
+ "node_modules/http-response-object": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-1.1.0.tgz",
"integrity": "sha1-p8TnWq6C87tJBOT0P2FWc7TVGMM="
},
- "iconv-lite": {
+ "node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
+ "dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "ignore": {
+ "node_modules/ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "engines": {
+ "node": ">= 4"
+ }
},
- "import-fresh": {
+ "node_modules/import-fresh": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz",
"integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==",
- "requires": {
+ "dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "imurmurhash": {
+ "node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "engines": {
+ "node": ">=0.8.19"
+ }
},
- "inflight": {
+ "node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
- "inherits": {
+ "node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
- "inquirer": {
+ "node_modules/inquirer": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz",
"integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==",
- "requires": {
+ "dependencies": {
"ansi-escapes": "^3.2.0",
"chalk": "^2.4.2",
"cli-cursor": "^2.1.0",
@@ -773,233 +973,281 @@
"strip-ansi": "^5.0.0",
"through": "^2.3.6"
},
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/inquirer/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "is-arrayish": {
+ "node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
},
- "is-buffer": {
+ "node_modules/is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
- "is-extendable": {
+ "node_modules/is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "is-fullwidth-code-point": {
+ "node_modules/is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "is-local-path": {
+ "node_modules/is-local-path": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-local-path/-/is-local-path-0.1.6.tgz",
"integrity": "sha1-gV0USxTVac7L6tTVaTCX8Aqb9sU="
},
- "is-number": {
+ "node_modules/is-number": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "requires": {
+ "dependencies": {
"kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-plain-object": {
+ "node_modules/is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "requires": {
+ "dependencies": {
"isobject": "^3.0.1"
},
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
- }
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-promise": {
+ "node_modules/is-plain-object/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
- "isarray": {
+ "node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
- "isexe": {
+ "node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
- "isobject": {
+ "node_modules/isobject": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "requires": {
+ "dependencies": {
"isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "js-tokens": {
+ "node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
- "js-yaml": {
+ "node_modules/js-yaml": {
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
- "requires": {
+ "dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "json-schema-traverse": {
+ "node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
- "json-stable-stringify-without-jsonify": {
+ "node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
},
- "jsonfile": {
+ "node_modules/jsonfile": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
- "requires": {
+ "optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
- "kind-of": {
+ "node_modules/kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
+ "dependencies": {
"is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "klaw": {
+ "node_modules/klaw": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
"integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
- "requires": {
+ "optionalDependencies": {
"graceful-fs": "^4.1.9"
}
},
- "lazy-cache": {
+ "node_modules/lazy-cache": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz",
"integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=",
- "requires": {
+ "dependencies": {
"set-getter": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "levn": {
+ "node_modules/levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "requires": {
+ "dependencies": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "list-item": {
+ "node_modules/list-item": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz",
"integrity": "sha1-DGXQDih8tmPMs8s4Sad+iewmilY=",
- "requires": {
+ "dependencies": {
"expand-range": "^1.8.1",
"extend-shallow": "^2.0.1",
"is-number": "^2.1.0",
"repeat-string": "^1.5.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "load-json-file": {
+ "node_modules/load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "requires": {
+ "dependencies": {
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
"pify": "^2.0.0",
"strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "locate-path": {
+ "node_modules/locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
+ "dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
},
- "dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- }
+ "engines": {
+ "node": ">=4"
}
},
- "lodash": {
+ "node_modules/locate-path/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/lodash": {
"version": "4.17.20",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
},
- "lodash._reinterpolate": {
+ "node_modules/lodash._reinterpolate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
"integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
},
- "lodash.template": {
+ "node_modules/lodash.template": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
"integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
- "requires": {
+ "dependencies": {
"lodash._reinterpolate": "^3.0.0",
"lodash.templatesettings": "^4.0.0"
}
},
- "lodash.templatesettings": {
+ "node_modules/lodash.templatesettings": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
"integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
- "requires": {
+ "dependencies": {
"lodash._reinterpolate": "^3.0.0"
}
},
- "markdown-link": {
+ "node_modules/markdown-link": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz",
- "integrity": "sha1-MsXGUZmmRXMWMi0eQinRNAfIx88="
+ "integrity": "sha1-MsXGUZmmRXMWMi0eQinRNAfIx88=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "markdown-magic": {
+ "node_modules/markdown-magic": {
"version": "0.1.25",
"resolved": "https://registry.npmjs.org/markdown-magic/-/markdown-magic-0.1.25.tgz",
"integrity": "sha512-NBVMv2IPdKaRIXcL8qmLkfq9O17tkByTr8sRkJ4l76tkp401hxCUA0r9mkhtnGJRevCqZ2KoHrIf9WYQUn8ztA==",
- "requires": {
+ "dependencies": {
"commander": "^2.9.0",
"deepmerge": "^1.3.0",
"find-up": "^2.1.0",
@@ -1008,13 +1256,17 @@
"is-local-path": "^0.1.6",
"markdown-toc": "^1.0.2",
"sync-request": "^3.0.1"
+ },
+ "bin": {
+ "markdown": "cli.js",
+ "md-magic": "cli.js"
}
},
- "markdown-toc": {
+ "node_modules/markdown-toc": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz",
"integrity": "sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg==",
- "requires": {
+ "dependencies": {
"concat-stream": "^1.5.2",
"diacritics-map": "^0.1.0",
"gray-matter": "^2.1.0",
@@ -1028,331 +1280,429 @@
"repeat-string": "^1.6.1",
"strip-color": "^0.1.0"
},
+ "bin": {
+ "markdown-toc": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/markdown-toc/node_modules/gray-matter": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz",
+ "integrity": "sha1-MELZrewqHe1qdwep7SOA+KF6Qw4=",
"dependencies": {
- "gray-matter": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz",
- "integrity": "sha1-MELZrewqHe1qdwep7SOA+KF6Qw4=",
- "requires": {
- "ansi-red": "^0.1.1",
- "coffee-script": "^1.12.4",
- "extend-shallow": "^2.0.1",
- "js-yaml": "^3.8.1",
- "toml": "^2.3.2"
- }
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- }
- }
- },
- "math-random": {
+ "ansi-red": "^0.1.1",
+ "coffee-script": "^1.12.4",
+ "extend-shallow": "^2.0.1",
+ "js-yaml": "^3.8.1",
+ "toml": "^2.3.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/markdown-toc/node_modules/minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "node_modules/math-random": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
"integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A=="
},
- "mimic-fn": {
+ "node_modules/mimic-fn": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "engines": {
+ "node": ">=4"
+ }
},
- "minimatch": {
+ "node_modules/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
+ "dependencies": {
"brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "minimist": {
+ "node_modules/minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
- "mixin-deep": {
+ "node_modules/mixin-deep": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "requires": {
+ "dependencies": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
},
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mixin-deep/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "mkdirp": {
+ "node_modules/mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
+ "dependencies": {
"minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
}
},
- "ms": {
+ "node_modules/ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
- "mute-stream": {
+ "node_modules/mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
- "natural-compare": {
+ "node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
- "nice-try": {
+ "node_modules/nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
},
- "normalize-package-data": {
+ "node_modules/normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "requires": {
+ "dependencies": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
}
},
- "object-assign": {
+ "node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "object.pick": {
+ "node_modules/object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "requires": {
+ "dependencies": {
"isobject": "^3.0.1"
},
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
- }
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "once": {
+ "node_modules/object.pick/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
+ "dependencies": {
"wrappy": "1"
}
},
- "onetime": {
+ "node_modules/onetime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "requires": {
+ "dependencies": {
"mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "optionator": {
+ "node_modules/optionator": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
- "requires": {
+ "dependencies": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.4",
"levn": "~0.3.0",
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2",
"wordwrap": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "os-tmpdir": {
+ "node_modules/os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "p-limit": {
+ "node_modules/p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "requires": {
+ "dependencies": {
"p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "p-locate": {
+ "node_modules/p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "requires": {
+ "dependencies": {
"p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "p-try": {
+ "node_modules/p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "parent-module": {
+ "node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "requires": {
+ "dependencies": {
"callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "parse-json": {
+ "node_modules/parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "requires": {
+ "dependencies": {
"error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "path-is-absolute": {
+ "node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "path-is-inside": {
+ "node_modules/path-is-inside": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
"integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
},
- "path-key": {
+ "node_modules/path-key": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "path-parse": {
+ "node_modules/path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
},
- "path-type": {
+ "node_modules/path-type": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "requires": {
+ "dependencies": {
"pify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "pify": {
+ "node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "pinkie": {
+ "node_modules/pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "pinkie-promise": {
+ "node_modules/pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "requires": {
+ "dependencies": {
"pinkie": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "pkg-dir": {
+ "node_modules/pkg-dir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
"integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
- "requires": {
+ "dependencies": {
"find-up": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "prelude-ls": {
+ "node_modules/prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "process-nextick-args": {
+ "node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
- "progress": {
+ "node_modules/progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "promise": {
+ "node_modules/promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
- "requires": {
+ "dependencies": {
"asap": "~2.0.3"
}
},
- "punycode": {
+ "node_modules/punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
},
- "qs": {
+ "node_modules/qs": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.8.0.tgz",
- "integrity": "sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w=="
+ "integrity": "sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w==",
+ "engines": {
+ "node": ">=0.6"
+ }
},
- "randomatic": {
+ "node_modules/randomatic": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
"integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
- "requires": {
+ "dependencies": {
"is-number": "^4.0.0",
"kind-of": "^6.0.0",
"math-random": "^1.0.1"
},
- "dependencies": {
- "is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
- }
+ "engines": {
+ "node": ">= 0.10.0"
}
},
- "read-pkg": {
+ "node_modules/randomatic/node_modules/is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/randomatic/node_modules/kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/read-pkg": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "requires": {
+ "dependencies": {
"load-json-file": "^2.0.0",
"normalize-package-data": "^2.3.2",
"path-type": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "read-pkg-up": {
+ "node_modules/read-pkg-up": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "requires": {
+ "dependencies": {
"find-up": "^2.0.0",
"read-pkg": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "readable-stream": {
+ "node_modules/readable-stream": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
- "requires": {
+ "dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
@@ -1362,315 +1712,396 @@
"util-deprecate": "~1.0.1"
}
},
- "regexpp": {
+ "node_modules/regexpp": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
- "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw=="
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "engines": {
+ "node": ">=6.5.0"
+ }
},
- "remarkable": {
+ "node_modules/remarkable": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz",
"integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==",
- "requires": {
+ "dependencies": {
"argparse": "^1.0.10",
"autolinker": "~0.28.0"
},
+ "bin": {
+ "remarkable": "bin/remarkable.js"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/remarkable/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dependencies": {
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- }
+ "sprintf-js": "~1.0.2"
}
},
- "repeat-element": {
+ "node_modules/repeat-element": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "repeat-string": {
+ "node_modules/repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
- "resolve": {
+ "node_modules/resolve": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
"integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
- "requires": {
+ "dependencies": {
"path-parse": "^1.0.6"
}
},
- "resolve-from": {
+ "node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
},
- "restore-cursor": {
+ "node_modules/restore-cursor": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "requires": {
+ "dependencies": {
"onetime": "^2.0.0",
"signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "rimraf": {
+ "node_modules/rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "requires": {
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dependencies": {
"glob": "^7.1.3"
},
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dependencies": {
- "glob": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
}
},
- "run-async": {
+ "node_modules/run-async": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
- "requires": {
+ "dependencies": {
"is-promise": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.12.0"
}
},
- "rxjs": {
+ "node_modules/rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
- "requires": {
+ "dependencies": {
"tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
}
},
- "safe-buffer": {
+ "node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
- "safer-buffer": {
+ "node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
- "section-matter": {
+ "node_modules/section-matter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
"integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
- "requires": {
+ "dependencies": {
"extend-shallow": "^2.0.1",
"kind-of": "^6.0.0"
},
- "dependencies": {
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
- }
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/section-matter/node_modules/kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "semver": {
+ "node_modules/semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+ "bin": {
+ "semver": "bin/semver"
+ }
},
- "set-getter": {
+ "node_modules/set-getter": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz",
"integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=",
- "requires": {
+ "dependencies": {
"to-object-path": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "shebang-command": {
+ "node_modules/shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "requires": {
+ "dependencies": {
"shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "shebang-regex": {
+ "node_modules/shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "signal-exit": {
+ "node_modules/signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
- "slice-ansi": {
+ "node_modules/slice-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
"integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
- "requires": {
+ "dependencies": {
"ansi-styles": "^3.2.0",
"astral-regex": "^1.0.0",
"is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "source-map": {
+ "node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "spdx-correct": {
+ "node_modules/spdx-correct": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
"integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
- "requires": {
+ "dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
}
},
- "spdx-exceptions": {
+ "node_modules/spdx-exceptions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
"integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
},
- "spdx-expression-parse": {
+ "node_modules/spdx-expression-parse": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
- "requires": {
+ "dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
- "spdx-license-ids": {
+ "node_modules/spdx-license-ids": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz",
"integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g=="
},
- "sprintf-js": {
+ "node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
- "string-width": {
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
+ "dependencies": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "strip-ansi": {
+ "node_modules/strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
+ "dependencies": {
"ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "strip-bom": {
+ "node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "strip-bom-string": {
+ "node_modules/strip-bom-string": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
- "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI="
+ "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "strip-color": {
+ "node_modules/strip-color": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz",
- "integrity": "sha1-EG9l09PmotlAHKwOsM6LinArT3s="
+ "integrity": "sha1-EG9l09PmotlAHKwOsM6LinArT3s=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "strip-json-comments": {
+ "node_modules/strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "supports-color": {
+ "node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
+ "dependencies": {
"has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "sync-request": {
+ "node_modules/sync-request": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/sync-request/-/sync-request-3.0.1.tgz",
"integrity": "sha1-yqEjWq+Im6UBB2oYNMQ2gwqC+3M=",
- "requires": {
+ "dependencies": {
"concat-stream": "^1.4.7",
"http-response-object": "^1.0.1",
"then-request": "^2.0.1"
}
},
- "table": {
+ "node_modules/table": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz",
"integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==",
- "requires": {
+ "dependencies": {
"ajv": "^6.9.1",
"lodash": "^4.17.11",
"slice-ansi": "^2.1.0",
"string-width": "^3.0.0"
},
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "text-table": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
},
- "then-request": {
+ "node_modules/then-request": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/then-request/-/then-request-2.2.0.tgz",
"integrity": "sha1-ZnizL6DKIY/laZgbvYhxtZQGDYE=",
- "requires": {
+ "dependencies": {
"caseless": "~0.11.0",
"concat-stream": "^1.4.7",
"http-basic": "^2.5.1",
@@ -1679,111 +2110,129 @@
"qs": "^6.1.0"
}
},
- "through": {
+ "node_modules/through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
- "through2": {
+ "node_modules/through2": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "requires": {
+ "dependencies": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
}
},
- "tmp": {
+ "node_modules/tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "requires": {
+ "dependencies": {
"os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
}
},
- "to-object-path": {
+ "node_modules/to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "requires": {
+ "dependencies": {
"kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "toml": {
+ "node_modules/toml": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz",
"integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ=="
},
- "tslib": {
+ "node_modules/tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
- "type-check": {
+ "node_modules/type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "requires": {
+ "dependencies": {
"prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "typedarray": {
+ "node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
- "uri-js": {
+ "node_modules/uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
- "requires": {
+ "dependencies": {
"punycode": "^2.1.0"
}
},
- "util-deprecate": {
+ "node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
- "validate-npm-package-license": {
+ "node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "requires": {
+ "dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
}
},
- "which": {
+ "node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "requires": {
+ "dependencies": {
"isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
}
},
- "wordwrap": {
+ "node_modules/wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
},
- "wrappy": {
+ "node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
- "write": {
+ "node_modules/write": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
"integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
- "requires": {
+ "dependencies": {
"mkdirp": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "xtend": {
+ "node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "engines": {
+ "node": ">=0.4"
+ }
}
}
}
diff --git a/yarn.lock b/yarn.lock
index fed7f9152..3540c3246 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4,13 +4,15 @@
"@babel/code-frame@^7.0.0":
version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz"
+ integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
dependencies:
"@babel/highlight" "^7.0.0"
"@babel/highlight@^7.0.0":
version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
+ resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz"
+ integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
dependencies:
chalk "^2.0.0"
esutils "^2.0.2"
@@ -18,15 +20,18 @@
acorn-jsx@^5.0.0:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
+ resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz"
+ integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
-acorn@^6.0.7:
+acorn@^6.0.0, acorn@^6.0.7:
version "6.4.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz"
+ integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
ajv@^6.9.1:
version "6.10.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz"
+ integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
dependencies:
fast-deep-equal "^2.0.1"
fast-json-stable-stringify "^2.0.0"
@@ -35,100 +40,113 @@ ajv@^6.9.1:
ansi-escapes@^3.2.0:
version "3.2.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz"
+ integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
ansi-red@^0.1.1:
version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c"
+ resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz"
+ integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=
dependencies:
ansi-wrap "0.1.0"
ansi-regex@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
+ 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"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
+ integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
dependencies:
color-convert "^1.9.0"
ansi-wrap@0.1.0:
version "0.1.0"
- resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
+ resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz"
+ integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
-argparse@^1.0.7:
+argparse@^1.0.10:
version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
-argparse@~0.1.15:
- version "0.1.16"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
- dependencies:
- underscore "~1.7.0"
- underscore.string "~2.4.0"
-
-array-includes@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
+argparse@^1.0.7:
+ version "1.0.9"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz"
+ integrity sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.7.0"
+ sprintf-js "~1.0.2"
array-union@^1.0.1:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz"
+ integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
dependencies:
array-uniq "^1.0.1"
array-uniq@^1.0.1:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
+ integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
asap@~2.0.3:
version "2.0.6"
- resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
astral-regex@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+ resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz"
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
-autolinker@~0.15.0:
- version "0.15.3"
- resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832"
+autolinker@~0.28.0:
+ version "0.28.1"
+ resolved "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz"
+ integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
+ dependencies:
+ gulp-header "^1.7.1"
-balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+balanced-match@^0.4.1:
+ version "0.4.2"
+ resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
+ integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=
brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ version "1.1.7"
+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz"
+ integrity sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=
dependencies:
- balanced-match "^1.0.0"
+ balanced-match "^0.4.1"
concat-map "0.0.1"
-builtin-modules@^1.0.0:
+buffer-from@^1.0.0:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+ resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz"
+ integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
caseless@~0.11.0:
version "0.11.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
+ resolved "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"
+ integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c=
chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
@@ -136,59 +154,79 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
chardet@^0.7.0:
version "0.7.0"
- resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
cli-cursor@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz"
+ integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
dependencies:
restore-cursor "^2.0.0"
cli-width@^2.0.0:
version "2.2.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+ resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz"
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
coffee-script@^1.12.4:
version "1.12.7"
- resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53"
+ resolved "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz"
+ integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==
color-convert@^1.9.0:
version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ 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.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
commander@^2.9.0:
- version "2.15.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322"
+ version "2.20.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz"
+ integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
concat-map@0.0.1:
version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26"
+ version "1.6.2"
+ resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
dependencies:
+ buffer-from "^1.0.0"
inherits "^2.0.3"
readable-stream "^2.2.2"
typedarray "^0.0.6"
+concat-with-sourcemaps@*:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz"
+ integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
+ dependencies:
+ source-map "^0.6.1"
+
contains-path@^0.1.0:
version "0.1.0"
- resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+ resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz"
+ integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=
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"
+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cross-spawn@^6.0.5:
version "6.0.5"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
dependencies:
nice-try "^1.0.4"
path-key "^2.0.1"
@@ -196,136 +234,140 @@ cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-debug@^2.6.8, debug@^2.6.9:
+debug@^2.6.8:
version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.6.9:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
debug@^4.0.1:
version "4.1.1"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
dependencies:
ms "^2.1.1"
deep-is@~0.1.3:
version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
deepmerge@^1.3.0:
version "1.5.2"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
-
-define-properties@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- dependencies:
- object-keys "^1.0.12"
+ resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz"
+ integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
diacritics-map@^0.1.0:
version "0.1.0"
- resolved "https://registry.yarnpkg.com/diacritics-map/-/diacritics-map-0.1.0.tgz#6dfc0ff9d01000a2edf2865371cac316e94977af"
+ resolved "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz"
+ integrity sha1-bfwP+dAQAKLt8oZTccrDFulJd68=
-doctrine@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
dependencies:
esutils "^2.0.2"
- isarray "^1.0.0"
-doctrine@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+doctrine@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz"
+ integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=
dependencies:
esutils "^2.0.2"
+ isarray "^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"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"
+ integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
error-ex@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.7.0:
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
- dependencies:
- es-to-primitive "^1.2.0"
- function-bind "^1.1.1"
- has "^1.0.3"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
- object-keys "^1.0.12"
-
-es-to-primitive@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
- dependencies:
- is-callable "^1.1.4"
- is-date-object "^1.0.1"
- is-symbol "^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"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
eslint-config-airbnb-base@^10.0.1:
version "10.0.1"
- resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz#f17d4e52992c1d45d1b7713efbcd5ecd0e7e0506"
+ resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz"
+ integrity sha1-8X1OUpksHUXRt3E++81ezQ5+BQY=
eslint-import-resolver-node@^0.3.2:
version "0.3.2"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
+ resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz"
+ integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
dependencies:
debug "^2.6.9"
resolve "^1.5.0"
-eslint-module-utils@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a"
+eslint-module-utils@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz"
+ integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==
dependencies:
debug "^2.6.8"
pkg-dir "^2.0.0"
-eslint-plugin-import@^2.16.0:
- version "2.17.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.3.tgz#00548b4434c18faebaba04b24ae6198f280de189"
+eslint-plugin-import@^2.1.0, eslint-plugin-import@^2.16.0:
+ version "2.16.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz"
+ integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A==
dependencies:
- array-includes "^3.0.3"
contains-path "^0.1.0"
debug "^2.6.9"
doctrine "1.5.0"
eslint-import-resolver-node "^0.3.2"
- eslint-module-utils "^2.4.0"
+ eslint-module-utils "^2.3.0"
has "^1.0.3"
lodash "^4.17.11"
minimatch "^3.0.4"
read-pkg-up "^2.0.0"
- resolve "^1.11.0"
+ resolve "^1.9.0"
eslint-scope@^4.0.3:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
+ resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz"
+ integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
dependencies:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-utils@^1.3.1:
version "1.4.3"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
+ resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz"
+ integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
dependencies:
eslint-visitor-keys "^1.1.0"
-eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
+eslint-visitor-keys@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz"
+ integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
+
+eslint-visitor-keys@^1.1.0:
version "1.1.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
+ resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz"
+ integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
-eslint@^5.15.3:
- version "5.16.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
+eslint@^3.9.1, eslint@^5.15.3, "eslint@2.x - 5.x":
+ version "5.15.3"
+ resolved "https://registry.npmjs.org/eslint/-/eslint-5.15.3.tgz"
+ integrity sha512-vMGi0PjCHSokZxE0NLp2VneGw5sio7SSiDNgIUn2tC0XkWJRNOIoHIg3CliLVfXnJsiHxGAYrkw0PieAu8+KYQ==
dependencies:
"@babel/code-frame" "^7.0.0"
ajv "^6.9.1"
@@ -347,7 +389,7 @@ eslint@^5.15.3:
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
inquirer "^6.2.2"
- js-yaml "^3.13.0"
+ js-yaml "^3.12.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
lodash "^4.17.11"
@@ -366,7 +408,8 @@ eslint@^5.15.3:
espree@^5.0.1:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
+ resolved "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz"
+ integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
dependencies:
acorn "^6.0.7"
acorn-jsx "^5.0.0"
@@ -374,43 +417,51 @@ espree@^5.0.1:
esprima@^4.0.0:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
esquery@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
+ resolved "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz"
+ integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
dependencies:
estraverse "^4.0.0"
esrecurse@^4.1.0:
version "4.2.1"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz"
+ integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
dependencies:
estraverse "^4.1.0"
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
esutils@^2.0.2:
version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+ resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
+ integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
expand-range@^1.8.1:
version "1.8.2"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz"
+ integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
dependencies:
fill-range "^2.1.0"
extend-shallow@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
dependencies:
is-extendable "^0.1.0"
external-editor@^3.0.3:
version "3.0.3"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
+ resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz"
+ integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
dependencies:
chardet "^0.7.0"
iconv-lite "^0.4.24"
@@ -418,47 +469,55 @@ external-editor@^3.0.3:
fast-deep-equal@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"
+ integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+ resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"
+ integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
fast-levenshtein@~2.0.4:
version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
figures@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz"
+ integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
dependencies:
escape-string-regexp "^1.0.5"
file-entry-cache@^5.0.1:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
+ resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz"
+ integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
dependencies:
flat-cache "^2.0.1"
fill-range@^2.1.0:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
+ version "2.2.4"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz"
+ integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
dependencies:
is-number "^2.1.0"
isobject "^2.0.0"
- randomatic "^1.1.3"
+ randomatic "^3.0.0"
repeat-element "^1.1.2"
repeat-string "^1.5.2"
find-up@^2.0.0, find-up@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
+ integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
dependencies:
locate-path "^2.0.0"
flat-cache@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
+ resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz"
+ integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
dependencies:
flatted "^2.0.0"
rimraf "2.6.3"
@@ -466,15 +525,18 @@ flat-cache@^2.0.1:
flatted@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916"
+ resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz"
+ integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==
for-in@^1.0.2:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
fs-extra@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz"
+ integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=
dependencies:
graceful-fs "^4.1.2"
jsonfile "^2.1.0"
@@ -482,19 +544,23 @@ fs-extra@^1.0.0:
fs.realpath@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-function-bind@^1.0.2, function-bind@^1.1.1:
+function-bind@^1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
functional-red-black-tree@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+ resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-glob@^7.0.3:
+glob@^7.0.3, glob@^7.1.2:
version "7.1.2"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
+ integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -503,9 +569,10 @@ glob@^7.0.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.2, glob@^7.1.3:
- version "7.1.4"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
+glob@^7.1.3:
+ version "7.1.3"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz"
+ integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -515,12 +582,14 @@ glob@^7.1.2, glob@^7.1.3:
path-is-absolute "^1.0.0"
globals@^11.7.0:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ version "11.11.0"
+ resolved "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz"
+ integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==
globby@^6.1.0:
version "6.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz"
+ integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
dependencies:
array-union "^1.0.1"
glob "^7.0.3"
@@ -530,11 +599,13 @@ globby@^6.1.0:
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+ integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
gray-matter@^2.1.0:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e"
+ resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz"
+ integrity sha1-MELZrewqHe1qdwep7SOA+KF6Qw4=
dependencies:
ansi-red "^0.1.1"
coffee-script "^1.12.4"
@@ -544,40 +615,44 @@ gray-matter@^2.1.0:
gray-matter@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454"
+ resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz"
+ integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==
dependencies:
js-yaml "^3.11.0"
kind-of "^6.0.2"
section-matter "^1.0.0"
strip-bom-string "^1.0.0"
+gulp-header@^1.7.1:
+ version "1.8.12"
+ resolved "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz"
+ integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
+ dependencies:
+ concat-with-sourcemaps "*"
+ lodash.template "^4.4.0"
+ through2 "^2.0.0"
+
has-flag@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
-
-has-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
-
-has@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
- dependencies:
- function-bind "^1.0.2"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
has@^1.0.3:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
hosted-git-info@^2.1.4:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
+ version "2.7.1"
+ resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz"
+ integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
http-basic@^2.5.1:
version "2.5.1"
- resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-2.5.1.tgz#8ce447bdb5b6c577f8a63e3fa78056ec4bb4dbfb"
+ resolved "https://registry.npmjs.org/http-basic/-/http-basic-2.5.1.tgz"
+ integrity sha1-jORHvbW2xXf4pj4/p4BW7Eu02/s=
dependencies:
caseless "~0.11.0"
concat-stream "^1.4.6"
@@ -585,43 +660,51 @@ http-basic@^2.5.1:
http-response-object@^1.0.0, http-response-object@^1.0.1, http-response-object@^1.1.0:
version "1.1.0"
- resolved "https://registry.yarnpkg.com/http-response-object/-/http-response-object-1.1.0.tgz#a7c4e75aae82f3bb4904e4f43f615673b4d518c3"
+ resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-1.1.0.tgz"
+ integrity sha1-p8TnWq6C87tJBOT0P2FWc7TVGMM=
iconv-lite@^0.4.24:
version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
ignore@^4.0.6:
version "4.0.6"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz"
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
import-fresh@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz"
+ integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"
imurmurhash@^0.1.4:
version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
inflight@^1.0.4:
version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.3, inherits@~2.0.3:
+inherits@^2.0.3, inherits@~2.0.3, inherits@2:
version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
inquirer@^6.2.2:
- version "6.3.1"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7"
+ version "6.2.2"
+ resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz"
+ integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==
dependencies:
ansi-escapes "^3.2.0"
chalk "^2.4.2"
@@ -634,164 +717,160 @@ inquirer@^6.2.2:
run-async "^2.2.0"
rxjs "^6.4.0"
string-width "^2.1.0"
- strip-ansi "^5.1.0"
+ strip-ansi "^5.0.0"
through "^2.3.6"
is-arrayish@^0.2.1:
version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-buffer@^1.1.5:
version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
-
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- dependencies:
- builtin-modules "^1.0.0"
-
-is-callable@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
-
-is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+ resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
is-extendable@^0.1.0:
version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
+ 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"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
dependencies:
is-plain-object "^2.0.4"
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"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
is-local-path@^0.1.6:
version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-local-path/-/is-local-path-0.1.6.tgz#815d144b14d569cecbead4d5693097f00a9bf6c5"
+ resolved "https://registry.npmjs.org/is-local-path/-/is-local-path-0.1.6.tgz"
+ integrity sha1-gV0USxTVac7L6tTVaTCX8Aqb9sU=
is-number@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz"
+ integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
dependencies:
kind-of "^3.0.2"
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- dependencies:
- kind-of "^3.0.2"
+is-number@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz"
+ integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
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"
+ resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
is-promise@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- dependencies:
- has "^1.0.1"
+ resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz"
+ integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
-is-symbol@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
- dependencies:
- has-symbols "^1.0.0"
-
-isarray@1.0.0, isarray@^1.0.0, isarray@~1.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"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isexe@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
isobject@^2.0.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
dependencies:
isarray "1.0.0"
isobject@^3.0.1:
version "3.0.1"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
js-tokens@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.8.1:
+js-yaml@^3.11.0, js-yaml@^3.12.0, js-yaml@^3.8.1:
version "3.13.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
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"
+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
jsonfile@^2.1.0:
version "2.4.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz"
+ integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
optionalDependencies:
graceful-fs "^4.1.6"
kind-of@^3.0.2:
version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ 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"
- dependencies:
- is-buffer "^1.1.5"
+kind-of@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz"
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
-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"
+kind-of@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz"
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
klaw@^1.0.0:
version "1.3.1"
- resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
+ resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz"
+ integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
optionalDependencies:
graceful-fs "^4.1.9"
lazy-cache@^2.0.2:
version "2.0.2"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
+ resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz"
+ integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=
dependencies:
set-getter "^0.1.0"
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
dependencies:
prelude-ls "~1.1.2"
type-check "~0.3.2"
list-item@^1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/list-item/-/list-item-1.1.1.tgz#0c65d00e287cb663ccb3cb3849a77e89ec268a56"
+ resolved "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz"
+ integrity sha1-DGXQDih8tmPMs8s4Sad+iewmilY=
dependencies:
expand-range "^1.8.1"
extend-shallow "^2.0.1"
@@ -800,7 +879,8 @@ list-item@^1.1.1:
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"
+ resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz"
+ integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
dependencies:
graceful-fs "^4.1.2"
parse-json "^2.2.0"
@@ -809,22 +889,46 @@ load-json-file@^2.0.0:
locate-path@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"
+ integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
dependencies:
p-locate "^2.0.0"
path-exists "^3.0.0"
+lodash._reinterpolate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"
+ integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
+
+lodash.template@^4.4.0:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz"
+ 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.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz"
+ integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+
lodash@^4.17.11:
version "4.17.20"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz"
+ integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
markdown-link@^0.1.1:
version "0.1.1"
- resolved "https://registry.yarnpkg.com/markdown-link/-/markdown-link-0.1.1.tgz#32c5c65199a6457316322d1e4229d13407c8c7cf"
+ resolved "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz"
+ integrity sha1-MsXGUZmmRXMWMi0eQinRNAfIx88=
markdown-magic@^0.1.25:
version "0.1.25"
- resolved "https://registry.yarnpkg.com/markdown-magic/-/markdown-magic-0.1.25.tgz#d044d90632b85ff1576a047da152852d53a8e55a"
+ resolved "https://registry.npmjs.org/markdown-magic/-/markdown-magic-0.1.25.tgz"
+ integrity sha512-NBVMv2IPdKaRIXcL8qmLkfq9O17tkByTr8sRkJ4l76tkp401hxCUA0r9mkhtnGJRevCqZ2KoHrIf9WYQUn8ztA==
dependencies:
commander "^2.9.0"
deepmerge "^1.3.0"
@@ -837,7 +941,8 @@ markdown-magic@^0.1.25:
markdown-toc@^1.0.2:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/markdown-toc/-/markdown-toc-1.2.0.tgz#44a15606844490314afc0444483f9e7b1122c339"
+ resolved "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz"
+ integrity sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg==
dependencies:
concat-stream "^1.5.2"
diacritics-map "^0.1.0"
@@ -852,95 +957,113 @@ markdown-toc@^1.0.2:
repeat-string "^1.6.1"
strip-color "^0.1.0"
+math-random@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz"
+ integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
+
mimic-fn@^1.0.0:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
minimatch@^3.0.4:
version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
minimist@^1.2.0:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
mixin-deep@^1.1.3:
version "1.3.2"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
mkdirp@^0.5.1:
version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-
ms@^2.1.1:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
mute-stream@0.0.7:
version "0.0.7"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
natural-compare@^1.4.0:
version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
nice-try@^1.0.4:
version "1.0.5"
- resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
normalize-package-data@^2.3.2:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ version "2.5.0"
+ resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
dependencies:
hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
+ resolve "^1.10.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
object-assign@^4.0.1:
version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-
-object-keys@^1.0.12:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
object.pick@^1.2.0:
version "1.3.0"
- resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
dependencies:
isobject "^3.0.1"
once@^1.3.0:
version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
onetime@^2.0.0:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz"
+ integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
dependencies:
mimic-fn "^1.0.0"
optionator@^0.8.2:
version "0.8.2"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz"
+ integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
dependencies:
deep-is "~0.1.3"
fast-levenshtein "~2.0.4"
@@ -951,349 +1074,410 @@ optionator@^0.8.2:
os-tmpdir@~1.0.2:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
p-limit@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
dependencies:
p-try "^1.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"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"
+ integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
dependencies:
p-limit "^1.1.0"
p-try@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz"
+ integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
parent-module@^1.0.0:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
dependencies:
callsites "^3.0.0"
parse-json@^2.2.0:
version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz"
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
dependencies:
error-ex "^1.2.0"
path-exists@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
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"
+ resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-is-inside@^1.0.2:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+ resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
path-key@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
-
-path-parse@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-parse@^1.0.6:
version "1.0.6"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
path-type@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz"
+ integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
dependencies:
pify "^2.0.0"
pify@^2.0.0:
version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
pinkie-promise@^2.0.0:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ 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"
+ resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ 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"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz"
+ integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
dependencies:
find-up "^2.1.0"
prelude-ls@~1.1.2:
version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
process-nextick-args@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
progress@^2.0.0:
version "2.0.3"
- resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
promise@^7.1.1:
version "7.3.1"
- resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
dependencies:
asap "~2.0.3"
punycode@^2.1.0:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
qs@^6.1.0:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+ version "6.8.0"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.8.0.tgz"
+ integrity sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w==
-randomatic@^1.1.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
+randomatic@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz"
+ integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
+ is-number "^4.0.0"
+ kind-of "^6.0.0"
+ math-random "^1.0.1"
read-pkg-up@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz"
+ integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
dependencies:
find-up "^2.0.0"
read-pkg "^2.0.0"
read-pkg@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz"
+ integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
dependencies:
load-json-file "^2.0.0"
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-readable-stream@^2.2.2:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
+readable-stream@^2.2.2, readable-stream@~2.3.6:
+ version "2.3.6"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
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.0.3"
+ string_decoder "~1.1.1"
util-deprecate "~1.0.1"
regexpp@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
+ resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz"
+ integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
remarkable@^1.7.1:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.1.tgz#aaca4972100b66a642a63a1021ca4bac1be3bff6"
+ version "1.7.4"
+ resolved "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz"
+ integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
dependencies:
- argparse "~0.1.15"
- autolinker "~0.15.0"
+ argparse "^1.0.10"
+ autolinker "~0.28.0"
repeat-element@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz"
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
repeat-string@^1.5.2, repeat-string@^1.6.1:
version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
resolve-from@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-resolve@^1.11.0:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
+resolve@^1.10.0, resolve@^1.5.0, resolve@^1.9.0:
+ version "1.10.0"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz"
+ integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
dependencies:
path-parse "^1.0.6"
-resolve@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
- dependencies:
- path-parse "^1.0.5"
-
restore-cursor@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz"
+ integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
dependencies:
onetime "^2.0.0"
signal-exit "^3.0.2"
rimraf@2.6.3:
version "2.6.3"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
dependencies:
glob "^7.1.3"
run-async@^2.2.0:
version "2.3.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
+ resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz"
+ integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
dependencies:
is-promise "^2.1.0"
rxjs@^6.4.0:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7"
+ version "6.4.0"
+ resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz"
+ integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==
dependencies:
tslib "^1.9.0"
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
"safer-buffer@>= 2.1.2 < 3":
version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
section-matter@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167"
+ resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz"
+ integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==
dependencies:
extend-shallow "^2.0.1"
kind-of "^6.0.0"
-"semver@2 || 3 || 4 || 5":
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
-
-semver@^5.5.0, semver@^5.5.1:
+semver@^5.5.0, semver@^5.5.1, "semver@2 || 3 || 4 || 5":
version "5.7.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
+ resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz"
+ integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
set-getter@^0.1.0:
version "0.1.0"
- resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376"
+ resolved "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz"
+ integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=
dependencies:
to-object-path "^0.3.0"
shebang-command@^1.2.0:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"
+ 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"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
signal-exit@^3.0.2:
version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
slice-ansi@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz"
+ integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
dependencies:
ansi-styles "^3.2.0"
astral-regex "^1.0.0"
is-fullwidth-code-point "^2.0.0"
+source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
spdx-correct@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"
+ integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
dependencies:
spdx-expression-parse "^3.0.0"
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"
+ integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
spdx-expression-parse@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"
+ integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
dependencies:
spdx-exceptions "^2.1.0"
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz"
+ integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==
sprintf-js@~1.0.2:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
string-width@^2.1.0:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string-width@^3.0.0:
version "3.1.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
+ 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_decoder@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
- dependencies:
- safe-buffer "~5.1.0"
-
strip-ansi@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
dependencies:
ansi-regex "^3.0.0"
+strip-ansi@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
+ integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+ dependencies:
+ ansi-regex "^4.1.0"
+
strip-ansi@^5.1.0:
version "5.2.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
+ integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
dependencies:
ansi-regex "^4.1.0"
strip-bom-string@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
+ resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz"
+ integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=
strip-bom@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
strip-color@^0.1.0:
version "0.1.0"
- resolved "https://registry.yarnpkg.com/strip-color/-/strip-color-0.1.0.tgz#106f65d3d3e6a2d9401cac0eb0ce8b8a702b4f7b"
+ resolved "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz"
+ integrity sha1-EG9l09PmotlAHKwOsM6LinArT3s=
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"
+ resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
supports-color@^5.3.0:
version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
sync-request@^3.0.1:
version "3.0.1"
- resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-3.0.1.tgz#caa1235aaf889ba501076a1834c436830a82fb73"
+ resolved "https://registry.npmjs.org/sync-request/-/sync-request-3.0.1.tgz"
+ integrity sha1-yqEjWq+Im6UBB2oYNMQ2gwqC+3M=
dependencies:
concat-stream "^1.4.7"
http-response-object "^1.0.1"
then-request "^2.0.1"
table@^5.2.3:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/table/-/table-5.4.0.tgz#d772a3216e68829920a41a32c18eda286c95d780"
+ version "5.2.3"
+ resolved "https://registry.npmjs.org/table/-/table-5.2.3.tgz"
+ integrity sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==
dependencies:
ajv "^6.9.1"
lodash "^4.17.11"
@@ -1302,11 +1486,13 @@ table@^5.2.3:
text-table@^0.2.0:
version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
then-request@^2.0.1:
version "2.2.0"
- resolved "https://registry.yarnpkg.com/then-request/-/then-request-2.2.0.tgz#6678b32fa0ca218fe569981bbd8871b594060d81"
+ resolved "https://registry.npmjs.org/then-request/-/then-request-2.2.0.tgz"
+ integrity sha1-ZnizL6DKIY/laZgbvYhxtZQGDYE=
dependencies:
caseless "~0.11.0"
concat-stream "^1.4.7"
@@ -1317,79 +1503,98 @@ then-request@^2.0.1:
through@^2.3.6:
version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+through2@^2.0.0:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
tmp@^0.0.33:
version "0.0.33"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
dependencies:
os-tmpdir "~1.0.2"
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"
+ resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
dependencies:
kind-of "^3.0.2"
toml@^2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.3.tgz#8d683d729577cb286231dfc7a8affe58d31728fb"
+ version "2.3.6"
+ resolved "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz"
+ integrity sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==
tslib@^1.9.0:
version "1.9.3"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz"
+ integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
type-check@~0.3.2:
version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
dependencies:
prelude-ls "~1.1.2"
typedarray@^0.0.6:
version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-underscore.string@~2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
-
-underscore@~1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
+ resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
uri-js@^4.2.2:
version "4.2.2"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"
+ integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
dependencies:
punycode "^2.1.0"
util-deprecate@~1.0.1:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
validate-npm-package-license@^3.0.1:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
dependencies:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
which@^1.2.9:
version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
dependencies:
isexe "^2.0.0"
wordwrap@~1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
wrappy@1:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
write@1.0.3:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
+ resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz"
+ integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
dependencies:
mkdirp "^0.5.1"
+
+xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==