diff --git a/docs/api/store/endpoints/carts.yaml b/docs/api/store/endpoints/carts.yaml
index dbd15e4c79..e9fb136837 100644
--- a/docs/api/store/endpoints/carts.yaml
+++ b/docs/api/store/endpoints/carts.yaml
@@ -1,11 +1,34 @@
title: Carts
domain: store
+routes:
+ - method: POST
+ path: /carts
+ - method: GET
+ path: /carts/:id
+ - method: POST
+ path: /carts/:id
+ - method: POST
+ path: /carts/:id/line-items
+ - method: POST
+ path: /carts/:id/line-items/:line_id
+ - method: DELETE
+ path: /carts/:id/line-items/:line_id
+ - method: POST
+ path: /carts/:id/payment-sessions
+ - method: DELETE
+ path: /carts/:id/payment-sessions/:provider_id
+ - method: POST
+ path: /carts/:id/payment-method
+ - method: POST
+ path: /carts/:id/shipping-methods
+ - method: DELETE
+ path: /carts/:id/discounts/:code
route: /carts
description: >
A Cart is the preliminary step to an Order. The Cart holds a collection of
items that the customer wishes to purchase, along with the customer's
- preferred payment and shipping method.
-endpoints:
+ preferred payment and shipping method.
+endpoints:
- path: /
method: POST
title: Create a Cart
@@ -35,7 +58,7 @@ endpoints:
- path: /:id
method: POST
title: Update a Cart
- params:
+ params:
- name: id
type: String
description: Id of the cart.
@@ -68,8 +91,8 @@ endpoints:
calling the endpoint with an array of discounts.
- path: /:id/line-items
method: POST
- title: Add a Line Item to a Cart
- params:
+ title: Add line item
+ params:
- name: id
type: String
body:
@@ -90,7 +113,7 @@ endpoints:
functionality.
- path: /:id/line-items/:line_id
method: POST
- title: Update a Line Item
+ title: Update line item
params:
- name: id
type: String
@@ -108,7 +131,7 @@ endpoints:
the inventory level cannot fulfill the desired quantity.
- path: /:id/line-items/:line_id
method: DELETE
- title: Remove a Line Item
+ title: Remove line item
params:
- name: id
type: String
@@ -120,8 +143,8 @@ endpoints:
Removes a the given line item from the cart.
- path: /:id/discounts/:code
method: DELETE
- title: Remove a Discount Code
- params:
+ title: Remove discount code
+ params:
- name: id
type: String
description: Id of the cart.
@@ -131,8 +154,8 @@ endpoints:
description: Removes a discount code from the cart.
- path: /:id/payment-sessions
method: POST
- title: Initialize Payment Sessions for a Cart
- params:
+ title: Create payment sessions
+ params:
- name: id
type: String
description: Id of the cart.
@@ -141,7 +164,7 @@ endpoints:
the cart. This is usually called when a customer proceeds to checkout.
- path: /:id/payment-sessions/:provider_id
method: DELETE
- title: Delete a Payment Session
+ title: Delete payment session
params:
- name: id
type: String
@@ -156,12 +179,12 @@ endpoints:
reaches a state that cannot be recovered from.
- path: /:id/payment-method
method: POST
- title: Set the Payment Method for a Cart
- params:
+ title: Add payment method
+ params:
- name: id
type: String
description: Id of the cart.
- body:
+ body:
- name: provider_id
type: String
required: true
@@ -182,12 +205,12 @@ endpoints:
payment.
- path: /:id/shipping-methods
method: POST
- title: Add a Shipping Method to a Cart
+ title: Add shipping method
params:
- name: id
type: String
description: Id of the cart.
- body:
+ body:
- name: option_id
type: String
required: true
@@ -199,7 +222,7 @@ endpoints:
fulfillment of the order. Look at the documentation for your installed
fulfillment providers to find out what to send.
description: >
- Adds a shipping method to the cart.
+ Adds a shipping method to the cart.
response: |
{
"cart": {
diff --git a/docs/api/store/endpoints/customers.yaml b/docs/api/store/endpoints/customers.yaml
index fb2fe6bc6b..25f5682999 100644
--- a/docs/api/store/endpoints/customers.yaml
+++ b/docs/api/store/endpoints/customers.yaml
@@ -1,13 +1,30 @@
title: Customers
domain: store
+routes:
+ - method: POST
+ path: /customers
+ - method: GET
+ path: /customers/:id
+ - method: POST
+ path: /customers/:id
+ - method: POST
+ path: /customers/:id/addresses
+ - method: POST
+ path: /customers/:id/:address_id
+ - method: POST
+ path: /customers/:id/payment-methods
+ - method: POST
+ path: /customers/:id/reset-password
+ - method: POST
+ path: /customers/:id/reset-password-token
route: /customers
description: >
Customers can create a login to view Order history and manage details.
Customers must have unique emails.
-endpoints:
+endpoints:
- path: /
method: POST
- title: Create a Customer Login
+ title: Create customer
body:
- name: email
type: String
@@ -32,48 +49,10 @@ endpoints:
Creates a customer profile with the given details. If the email has been
used on previous orders the newly created Customer profile will be able to
view the order history associated with this email.
-
- - path: /password-reset
- method: POST
- title: Reset Customer password
- body:
- - name: email
- type: String
- required: true
- description: The email of the Customer.
- - name: token
- type: String
- required: true
- description: >
- The token that will be used to reset the password. Should be generated
- with a prior call to `/password-token`.
- - name: password
- type: String
- required: true
- description: >
- The new password to authenticate the user with.
- description: >
- Resets a customer's password. The reset call requires a valid token
-
- - path: /password-token
- method: POST
- title: Request Customer password reset token
- body:
- - name: email
- type: String
- required: true
- description: The email of the Customer profile to reset password for.
- description: >
- Generates a reset password token. The token should be sent to the customer
- via an email provider. Note that this doesn't send any emails it only
- generates the token and informs listeners to
- `customer.password_token_generated` that the token was created.
-
-
- path: /:id
method: GET
- title: Retrieve Customer
- params:
+ title: Retrieve customer
+ params:
- name: id
type: String
description: The id of the Customer to retrieve.
@@ -83,8 +62,8 @@ endpoints:
- path: /:id
method: POST
- title: Update Customer details
- params:
+ title: Update customer
+ params:
- name: id
type: String
description: The id of the customer.
@@ -105,10 +84,9 @@ endpoints:
description: >
Updates the customer's details. The customer identified by `id` must be
authenticated in order to call this endpoint.
-
- path: /:id/addresses
method: POST
- title: Create a new Customer address
+ title: Create customer shipping address
params:
- name: id
type: String
@@ -123,7 +101,7 @@ endpoints:
- path: /:id/addresses/:address_id
method: POST
- title: Update a Customer address
+ title: Update customer shipping address
params:
- name: id
type: String
@@ -141,8 +119,8 @@ endpoints:
- path: /:id/payment-methods
method: GET
- title: Retrieve Customer's saved payment methods
- params:
+ title: Retrieve saved payment methods
+ params:
- name: id
type: String
description: The id of the customer.
@@ -151,16 +129,98 @@ endpoints:
will only return in methods in the case where the payment provider allows
payment methods to be saved. The customer must be authenticated in order
to call this endpoint.
+ - path: /password-reset
+ method: POST
+ title: Reset password
+ body:
+ - name: email
+ type: String
+ required: true
+ description: The email of the Customer.
+ - name: token
+ type: String
+ required: true
+ description: >
+ The token that will be used to reset the password. Should be generated
+ with a prior call to `/password-token`.
+ - name: password
+ type: String
+ required: true
+ description: >
+ The new password to authenticate the user with.
+ description: >
+ Resets a customer's password. The reset call requires a valid token
+
+ - path: /password-token
+ method: POST
+ title: Generate password reset token
+ body:
+ - name: email
+ type: String
+ required: true
+ description: The email of the Customer profile to reset password for.
+ description: >
+ Generates a reset password token. The token should be sent to the customer
+ via an email provider. Note that this doesn't send any emails it only
+ generates the token and informs listeners to
+ `customer.password_token_generated` that the token was created.
response: |
{
"customer": {
- "_id": "5ea80c76d9549d0006c21da7",
- "email": "mrs@potato.com",
- "orders": [],
- "shipping_addresses": [],
- "first_name": "Potato",
- "last_name": "Head",
+ "id": "cus_4eThzYSuGv",
+ "email": "iron@man.com",
+ "first_name": "Tony",
+ "last_name": "Stark",
+ "billing_address": {
+ "id": "addr_WgNn0BSfIu",
+ "customer_id": "cus_4eThzYSuGv",
+ "company": "Stark Industries",
+ "first_name": "Tony",
+ "last_name": "Stark",
+ "address_1": "Hollywood Boulevard 1",
+ "address_2": null,
+ "city": "Los Angeles",
+ "country_code": "US",
+ "province": "CA",
+ "postal_code": "90046",
+ "phone": null,
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "deleted_at": null,
+ "metadata": null
+ },
+ "shipping_addresses": [{
+ "id": "addr_WgNn0BSfIu",
+ "customer_id": "cus_4eThzYSuGv",
+ "company": "Stark Industries",
+ "first_name": "Tony",
+ "last_name": "Stark",
+ "address_1": "Hollywood Boulevard 1",
+ "address_2": null,
+ "city": "Los Angeles",
+ "country_code": "US",
+ "province": "CA",
+ "postal_code": "90046",
+ "phone": null,
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "deleted_at": null,
+ "metadata": null
+ }],
+ "phone": "4242424242",
+ "has_account": false,
+ "orders": [{
+ "id": "order_fi13oadpo2r3vc2g4592",
+ "status": "pending",
+ "fulfillment_status": "shipped",
+ "payment_status": "captured",
+ "display_id": 50433,
+ "total": 4004000,
+ "metadata": null
+ }],
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
"metadata": {}
}
}
diff --git a/docs/api/store/endpoints/orders.yaml b/docs/api/store/endpoints/orders.yaml
index fbdf1bef92..a6257b1b9f 100644
--- a/docs/api/store/endpoints/orders.yaml
+++ b/docs/api/store/endpoints/orders.yaml
@@ -1,235 +1,137 @@
title: Orders
domain: store
+routes:
+ - method: POST
+ path: /orders
+ - method: GET
+ path: /orders/:id
route: /orders
description: >
- An Order represents a selection of items purchased and holds information about
- how the items have been purchased and will be fulfilled.
+ An order represents a selection of items purchased and holds information about
+ how the items have been purchased and will be fulfilled.
endpoints:
- path: /:id
method: GET
- title: Retrieve an Order
- params:
+ title: Retrieve an order
+ params:
- name: id
type: String
description: The id of the order.
description: >
- Retrieves an order.
+ Retrieves an order.
- path: /
method: POST
- title: Creates an Order
+ title: Creates an order
body:
- - name: cartId
+ - name: cart_id
type: String
+ required: true
description: Id of the cart from which the order should be created.
description: >
Creates an order from a cart.
response: |
{
- "_id": "5f65c961395b3e0021d8f994",
- "status": "pending",
- "fulfillment_status": "not_fulfilled",
- "payment_status": "awaiting",
- "display_id": "1000",
- "payment_method": {
- "_id": "5f65c961395b3e0021d8f995",
- "provider_id": "provider",
- "data": {
- "id": "importantForPaymentProvider",
- "more": "information"
- }
- },
- "discounts": [
- {
- "regions": [
- "5f40ce8f7743b30021337e2b",
- "5f4788eff847d30021ac331d",
- "5f4cb9a07435de0021c69f09"
+ "order": {
+ "id": "order_fi13oadpo2r3vc2g4592",
+ "status": "pending",
+ "fulfillment_status": "shipped",
+ "payment_status": "captured",
+ "email": "iron@man.com",
+ "billing_address": {
+ "id": "addr_WgNn0BSfIu",
+ "customer_id": "cus_4eThzYSuGv",
+ "company": "Stark Industries",
+ "first_name": "Tony",
+ "last_name": "Stark",
+ "address_1": "Hollywood Boulevard 1",
+ "address_2": null,
+ "city": "Los Angeles",
+ "country_code": "US",
+ "province": "CA",
+ "postal_code": "90046",
+ "phone": null,
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "deleted_at": null,
+ "metadata": null
+ },
+ "shipping_address": {
+ "id": "addr_WgNn0BSfIu",
+ "customer_id": "cus_4eThzYSuGv",
+ "company": "Stark Industries",
+ "first_name": "Tony",
+ "last_name": "Stark",
+ "address_1": "Hollywood Boulevard 1",
+ "address_2": null,
+ "city": "Los Angeles",
+ "country_code": "US",
+ "province": "CA",
+ "postal_code": "90046",
+ "phone": null,
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "deleted_at": null,
+ "metadata": null
+ },
+ "items": [
+ {
+ "id": "item_fn2uaQH95vG9ZMnhj2aU03xg",
+ "cart_id": null,
+ "order_id": "order_s9RojwCU2AM8RztcldM2Uof7",
+ "swap_id": null,
+ "title": "Ironman suit",
+ "description": "Awesome Ironman suit",
+ "thumbnail": null,
+ "is_giftcard": false,
+ "should_merge": false,
+ "allow_discounts": true,
+ "unit_price": 119600,
+ "variant_id": "variant_rdEH6PykBuH57giw",
+ "quantity": 1,
+ "fulfilled_quantity": 1,
+ "returned_quantity": 0,
+ "shipped_quantity": 0,
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "metadata": null
+ }
],
- "_id": "5f626102bd79500021ea17a3",
- "is_giftcard": false,
- "usage_count": 6,
- "disabled": false,
- "code": "TEST",
- "discount_rule": {
- "valid_for": [],
- "_id": "5f626102bd79500021ea17a4",
- "description": "TEST",
- "value": 99,
- "type": "percentage",
- "allocation": "total"
- }
- }
- ],
- "shipping_methods": [
- {
- "name": "Always Free",
- "items": [],
- "_id": "5f5b7c1b55c13000213c0989",
- "data": {
- "id": "manual-fulfillment"
- },
- "profile_id": "5f3e8fd5cac0ff0021a2be66",
- "price": 0,
- "provider_id": "manual"
- }
- ],
- "items": [
- {
- "is_giftcard": false,
- "has_shipping": true,
- "shipped_quantity": 0,
- "returned": false,
- "fulfilled": false,
- "fulfilled_quantity": 0,
- "returned_quantity": 0,
- "_id": "5f65c927395b3e0021d8f984",
- "title": "Item",
- "description": "70x140",
- "quantity": 1,
- "thumbnail": "",
- "content": {
- "unit_price": 316,
- "variant": {
- "_id": "5f40f0a2b687940021667170",
- "barcode": "",
- "image": "",
- "published": false,
- "inventory_quantity": 20,
- "allow_backorder": false,
- "manage_inventory": true,
- "title": "1234",
- "sku": "SKU1234",
- "ean": "5713682002297",
- "options": [
- {
- "_id": "5f40f0a2b687940021667171",
- "value": "70x140",
- "option_id": "5f40f0a2b687940021667163"
- }
- ],
- "prices": [
- {
- "_id": "5f40f0a2b687940021667172",
- "currency_code": "EUR",
- "amount": 44
- },
- {
- "_id": "5f40f0a2b687940021667173",
- "currency_code": "DKK",
- "amount": 316
- }
- ],
- "__v": 0
- },
- "product": {
- "_id": "5f40f0a2b687940021667162",
- "description": "100% Good",
- "tags": "",
- "is_giftcard": false,
- "images": [],
- "thumbnail": "",
- "variants": [
- "5f40f0a2b687940021667164",
- "5f40f0a2b687940021667168",
- "5f40f0a2b68794002166716c",
- "5f40f0a2b687940021667170",
- "5f40f0a2b687940021667174"
- ],
- "published": false,
- "title": "Item",
- "options": [
- {
- "values": [],
- "_id": "5f40f0a2b687940021667163",
- "title": "Size"
- }
- ],
- "__v": 0
- },
- "quantity": 1
- },
- "refundable": 3.95
- }
- ],
- "shipping_address": {
- "_id": "5f60adf22162dd0021362beb",
- "country_code": "DK",
- "first_name": "John",
- "last_name": "Jones",
- "address_1": "Jone ST 9",
- "city": "Jonstown",
- "postal_code": "12332"
- },
- "billing_address": {
- "_id": "5f60adf22162dd0021362beb",
- "country_code": "DK",
- "first_name": "John",
- "last_name": "Jones",
- "address_1": "Jone ST 9",
- "city": "Jonstown",
- "postal_code": "12332"
- },
- "region_id": "5f40ce8f7743b30021337e2b",
- "email": "jojo@jon.com",
- "customer_id": "5f42870e715758002170ed86",
- "cart_id": "5f4bd6b47435de0021c69f04",
- "tax_rate": 0.25,
- "currency_code": "DKK",
- "shipments": [],
- "fulfillments": [],
- "returns": [],
- "refunds": [],
- "created": "2020-09-19T09:03:29.000Z",
- "shipping_total": 0,
- "discount_total": 312.84,
- "tax_total": 0.79,
- "subtotal": 316,
- "total": 3.95,
- "refunded_total": 0,
- "refundable_amount": 3.95,
- "region": {
- "_id": "5f40ce8f7743b30021337e2b",
- "tax_rate": 0.25,
- "countries": [
- "DK"
- ],
- "payment_providers": [
- "provider"
- ],
- "fulfillment_providers": [
- "manual"
- ],
- "name": "Denmark",
- "currency_code": "DKK",
- "tax_code": "D25",
- "__v": 0
- },
- "customer": {
- "_id": "5f42870e715758002170ed86",
- "payment_methods": [],
- "has_account": true,
- "orders": [
- "5f65c961395b3e0021d8f994"
- ],
- "email": "jojo@jon.com",
- "shipping_addresses": [
- {
- "_id": "5f60adf22162dd0021362beb",
- "country_code": "DK",
- "first_name": "John",
- "last_name": "Jones",
- "address_1": "Jone ST 9",
- "city": "Jonstown",
- "postal_code": "12332"
- }
- ],
- "__v": 0,
- "metadata": {
- "stripe_id": "cus_123123123"
- },
- "first_name": "John",
- "last_name": "Jones",
- "password_hash": "c2NyeXB0AAEAAAABAAAAAd3Q0jehDc8N3cTdqlPCfeZtF5pILidEESwxcA9Yh8PuojRYBXG0xIiFKVq1xXGfXZlY6zkp1IGBXZDHKb9ZtExImjKlFJNwFxwiiaLFS6oD"
+ "discounts": [
+ {
+ "id": "disc_OpYQN4H8MOWHN2en",
+ "code": "CCC3C4LL88",
+ "is_dynamic": true,
+ "discount_rule_id": "dru_MDyr3lJLa00uxOsY",
+ "parent_discount_id": "disc_ubtdlkASI7bfUj81",
+ "metadata": null
+ }
+ ],
+ "customer_id": "cus_4eThzYSuGv",
+ "shipping_methods": [
+ {
+ "id": "sm_77bEapbO8tkCqw3yo1NBuCUl",
+ "shipping_option_id": "so_nRvwHhEdZw",
+ "order_id": "order_s9RojwCU2AM8RztcldM2Uof7",
+ "cart_id": null,
+ "swap_id": null,
+ "return_id": null,
+ "price": 0,
+ "data": {
+ "id": "Parcel shop",
+ "city": "Los Angeles",
+ "postal": "90046"
+ }
+ }
+ ],
+ "metadata": null,
+ "display_id": 50433,
+ "currency_code": "dkk",
+ "region_id": "reg_HMnixPlOicAs7aBlXuchAGxd",
+ "shipping_total": 0,
+ "discount_total": 0,
+ "tax_total": 3850000,
+ "subtotal": 154000,
+ "total": 4004000
}
}
diff --git a/docs/api/store/endpoints/product-variants.yaml b/docs/api/store/endpoints/product-variants.yaml
new file mode 100644
index 0000000000..8a752120e6
--- /dev/null
+++ b/docs/api/store/endpoints/product-variants.yaml
@@ -0,0 +1,61 @@
+title: Product variants
+domain: store
+routes:
+ - method: GET
+ path: /product-variants
+ - method: GET
+ path: /product-variants/:id
+route: /product-variants
+description: >
+ A product variant represents a specific type of product. E.g. a variant can differ from other variants based on size and color. A variant will always belong to a product.
+endpoints:
+ - path: /:id
+ method: GET
+ title: Retrieve product variant
+ params:
+ - name: id
+ type: String
+ description: Id of the product variant.
+ description: >
+ Retrieves product variant
+ - path: /
+ method: GET
+ title: List product variants
+ params:
+ - name: ids
+ optional: true
+ type: String
+ description: String of product variant ids. Id's needs to be separated by comma.
+ description: >
+ Retrieves product variants. Specific variants can be retrieved using `ids` query param in the request.
+
+response: |
+ {
+ "region": {
+ "id": "reg_HMnixPlOicAs7aBlXuchAGxd",
+ "name": "Denmark",
+ "currency_code": "DKK",
+ "currency": "DKK",
+ "tax_rate": 0.25,
+ "tax_code": null,
+ "countries": [{
+ "id": "1001",
+ "iso_2": "DK",
+ "iso_3": "DNK",
+ "num_code": "208",
+ "name": "denmark",
+ "display_name": "Denmark"
+ }],
+ "payment_providers": [{
+ "id": "stripe",
+ "is_installed": true
+ }],
+ "fulfillment_providers": [{
+ "id": "manual",
+ "is_installed": true
+ }],
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "metadata": null
+ }
+ }
diff --git a/docs/api/store/endpoints/products.yaml b/docs/api/store/endpoints/products.yaml
new file mode 100644
index 0000000000..29251734b6
--- /dev/null
+++ b/docs/api/store/endpoints/products.yaml
@@ -0,0 +1,56 @@
+title: Products
+domain: store
+routes:
+ - method: POST
+ path: /products
+ - method: GET
+ path: /products/:id
+route: /products
+description: >
+ A product represents the object, that are to be sold on the website. A product can have variants, that differ by e.g. size and color.
+endpoints:
+ - path: /:id
+ method: GET
+ title: Retrieve product
+ params:
+ - name: id
+ type: String
+ description: Id of the product.
+ description: >
+ Retrieves a product
+ - path: /
+ method: GET
+ title: List products
+ description: >
+ Retrieves the products for the configured store.
+
+response: |
+ {
+ "region": {
+ "id": "reg_HMnixPlOicAs7aBlXuchAGxd",
+ "name": "Denmark",
+ "currency_code": "DKK",
+ "currency": "DKK",
+ "tax_rate": 0.25,
+ "tax_code": null,
+ "countries": [{
+ "id": "1001",
+ "iso_2": "DK",
+ "iso_3": "DNK",
+ "num_code": "208",
+ "name": "denmark",
+ "display_name": "Denmark"
+ }],
+ "payment_providers": [{
+ "id": "stripe",
+ "is_installed": true
+ }],
+ "fulfillment_providers": [{
+ "id": "manual",
+ "is_installed": true
+ }],
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "metadata": null
+ }
+ }
diff --git a/docs/api/store/endpoints/regions.yaml b/docs/api/store/endpoints/regions.yaml
index 9b191ebd40..e0a1e2d52e 100644
--- a/docs/api/store/endpoints/regions.yaml
+++ b/docs/api/store/endpoints/regions.yaml
@@ -1,41 +1,58 @@
title: Regions
domain: store
+routes:
+ - method: POST
+ path: /regions
+ - method: GET
+ path: /regions/:id
route: /regions
description: >
- A Region represents a collection of countries that have common pricing
+ A region represents a collection of countries that have common pricing
schemes, shipping options, tax schemes, etc. Carts must have a region
associated.
endpoints:
- - path: /
- method: GET
- title: List Regions
- description: >
- Retrieves the regions configured for the store.
- path: /:id
method: GET
- title: Retrieve a Region
+ title: Retrieve region
params:
- name: id
type: String
description: Id of the region.
description: >
Retrieves a region
+ - path: /
+ method: GET
+ title: List regions
+ description: >
+ Retrieves the regions configured for the store.
response: |
{
"region": {
+ "id": "reg_HMnixPlOicAs7aBlXuchAGxd",
"name": "Denmark",
"currency_code": "DKK",
+ "currency": "DKK",
"tax_rate": 0.25,
- "countries": [
- "DK"
- ],
- "payment_providers": [
- "stripe"
- ],
- "fulfillment_providers": [
- "manual"
- ],
- "_id": "5f4cd45b5d1e3200214c0e49"
+ "tax_code": null,
+ "countries": [{
+ "id": "1001",
+ "iso_2": "DK",
+ "iso_3": "DNK",
+ "num_code": "208",
+ "name": "denmark",
+ "display_name": "Denmark"
+ }],
+ "payment_providers": [{
+ "id": "stripe",
+ "is_installed": true
+ }],
+ "fulfillment_providers": [{
+ "id": "manual",
+ "is_installed": true
+ }],
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "metadata": null
}
}
diff --git a/docs/api/store/endpoints/shipping-options.yaml b/docs/api/store/endpoints/shipping-options.yaml
new file mode 100644
index 0000000000..0b5b478701
--- /dev/null
+++ b/docs/api/store/endpoints/shipping-options.yaml
@@ -0,0 +1,53 @@
+title: Shipping options
+domain: store
+routes:
+ - method: GET
+ path: /shipping-options
+route: /shipping-options
+description: >
+ A shipping option represents a delivery method for products and belongs to a region.
+endpoints:
+ - path: /
+ method: GET
+ title: List shipping options
+ params:
+ - name: product_ids
+ optional: true
+ type: String
+ description: String of product ids. Id's needs to be separated by comma.
+ - name: region_id
+ type: String
+ description: Id of region
+ description: >
+ Retrieves shipping options in a given region. Shipping options for specific products can be retrieved using the `product_ids` query param.
+
+response: |
+ {
+ "region": {
+ "id": "reg_HMnixPlOicAs7aBlXuchAGxd",
+ "name": "Denmark",
+ "currency_code": "DKK",
+ "currency": "DKK",
+ "tax_rate": 0.25,
+ "tax_code": null,
+ "countries": [{
+ "id": "1001",
+ "iso_2": "DK",
+ "iso_3": "DNK",
+ "num_code": "208",
+ "name": "denmark",
+ "display_name": "Denmark"
+ }],
+ "payment_providers": [{
+ "id": "stripe",
+ "is_installed": true
+ }],
+ "fulfillment_providers": [{
+ "id": "manual",
+ "is_installed": true
+ }],
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "metadata": null
+ }
+ }
diff --git a/docs/api/store/endpoints/swaps.yaml b/docs/api/store/endpoints/swaps.yaml
new file mode 100644
index 0000000000..3588f28f6a
--- /dev/null
+++ b/docs/api/store/endpoints/swaps.yaml
@@ -0,0 +1,56 @@
+title: Swaps
+domain: store
+routes:
+ - method: GET
+ path: /swaps/:cart_id
+ - method: POST
+ path: /swaps
+route: /swaps
+description: >
+ A swap represents an order, that are created in the process of swapping items in an existing order. In the context of the store, the swap can be retrieved in order to make the payment (if relevant). Furthermore, it is possible to create / complete a swap in the store.
+endpoints:
+ - path: /
+ method: GET
+ title: Get swap by cart
+ params:
+ - name: cart_id
+ type: String
+ description: Id of cart to retrieve swap for.
+ description: >
+ Retrieves swap by cart id.
+ - path: /
+ method: POST
+ title: Create swap
+ description: >
+ Creates / completes a swap.
+
+response: |
+ {
+ "region": {
+ "id": "reg_HMnixPlOicAs7aBlXuchAGxd",
+ "name": "Denmark",
+ "currency_code": "DKK",
+ "currency": "DKK",
+ "tax_rate": 0.25,
+ "tax_code": null,
+ "countries": [{
+ "id": "1001",
+ "iso_2": "DK",
+ "iso_3": "DNK",
+ "num_code": "208",
+ "name": "denmark",
+ "display_name": "Denmark"
+ }],
+ "payment_providers": [{
+ "id": "stripe",
+ "is_installed": true
+ }],
+ "fulfillment_providers": [{
+ "id": "manual",
+ "is_installed": true
+ }],
+ "created_at": "2020-12-11T17:03:54.458Z",
+ "updated_at": "2020-12-11T17:03:54.458Z",
+ "metadata": null
+ }
+ }
diff --git a/www/gatsby-config.js b/www/gatsby-config.js
index 3185eed6a6..da3e9e907d 100644
--- a/www/gatsby-config.js
+++ b/www/gatsby-config.js
@@ -14,6 +14,7 @@ module.exports = {
},
},
`gatsby-transformer-yaml`,
+ `gatsby-plugin-emotion`,
{
resolve: `gatsby-source-filesystem`,
options: {
diff --git a/www/package.json b/www/package.json
index 828fb25930..93cc562e42 100644
--- a/www/package.json
+++ b/www/package.json
@@ -14,17 +14,22 @@
"test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1"
},
"dependencies": {
+ "@emotion/react": "^11.1.2",
+ "@emotion/styled": "^11.0.0",
"emotion-theming": "^10.0.27",
"gatsby": "^2.24.66",
"gatsby-plugin-anchor-links": "^1.1.1",
+ "gatsby-plugin-emotion": "^5.0.0",
"gatsby-plugin-react-helmet": "^3.3.12",
"gatsby-source-filesystem": "^2.3.31",
"gatsby-transformer-yaml": "^2.4.13",
"react": "^16.12.0",
+ "react-collapsible": "^2.8.1",
"react-dom": "^16.12.0",
"react-helmet": "^6.1.0",
"react-highlight.js": "^1.0.7",
"react-intersection-observer": "^8.29.0",
+ "react-markdown": "^5.0.3",
"rebass": "^4.0.7"
},
"devDependencies": {
diff --git a/www/src/fonts/Velocista-Demo-FFP.ttf b/www/src/fonts/Velocista-Demo-FFP.ttf
new file mode 100644
index 0000000000..5ec955e98f
Binary files /dev/null and b/www/src/fonts/Velocista-Demo-FFP.ttf differ
diff --git a/www/src/fonts/index.css b/www/src/fonts/index.css
new file mode 100644
index 0000000000..9aa214f71e
--- /dev/null
+++ b/www/src/fonts/index.css
@@ -0,0 +1,4 @@
+@font-face {
+ font-family: "Medusa";
+ src: url("./Velocista-Demo-FFP.ttf");
+}
\ No newline at end of file
diff --git a/www/src/pages/api/store.js b/www/src/pages/api/store.js
index da5415ea6e..fb8623b849 100644
--- a/www/src/pages/api/store.js
+++ b/www/src/pages/api/store.js
@@ -1,49 +1,186 @@
import React, { useState, useEffect } from "react"
import { graphql } from "gatsby"
-import { Flex, Box, Text } from "rebass"
+import { Flex, Box, Text, Image } from "rebass"
+import styled from "@emotion/styled"
import { AnchorLink } from "gatsby-plugin-anchor-links"
+import Markdown from "react-markdown"
import Highlight from "react-highlight.js"
import { Helmet } from "react-helmet"
-import { InView } from "react-intersection-observer"
+import Collapsible from "react-collapsible"
+import logo from "../../images/logo.png"
import Layout from "../../components/layout"
-import "highlight.js/styles/a11y-dark.css"
+import "highlight.js/styles/a11y-light.css"
+
+const EndpointContainer = styled(Flex)`
+ min-height: 90vh;
+ position: relative;
+ border-top: hairline;
+
+ code {
+ background-color: #e3e8ee;
+ border-radius: 5px;
+ padding: 4px;
+ }
+`
+
+const StyledRoutesOverview = styled(Flex)`
+ border: 1px solid #e3e8ee;
+ border-radius: 5px;
+ margin-left: auto;
+ margin-right: auto;
+ width: 45%;
+ max-height: calc(90vh - 20px);
+ overflow-y: scroll;
+ align-self: flex-start;
+ font-size: 1;
+ top: 20px;
+ bottom: 20px;
+`
+
+const ResponseContainer = styled(Flex)`
+ border: 1px solid #e3e8ee;
+ border-radius: 5px;
+ margin-left: auto;
+ margin-right: auto;
+ width: 100%;
+ max-height: calc(90vh - 20px);
+ overflow-y: scroll;
+ align-self: flex-start;
+ font-size: 1;
+ position: sticky;
+ top: 20px;
+ bottom: 20px;
+
+ code {
+ background: #f7fafc !important;
+ }
+`
+
+const StyledNavItem = styled(Flex)`
+ padding-left: 10px;
+ padding-right: 10px;
+ align-items: center;
+ border-radius: 5pt;
+ cursor: pointer;
+ margin-bottom: 5px;
+ height: 25px;
+
+ &:hover {
+ background-color: #e0e0e059;
+ }
+`
+
+const StyledAnchorLink = styled(AnchorLink)`
+ display: flex;
+ padding-left: 10px;
+ padding-right: 10px;
+ margin-left: 10px;
+ align-items: center;
+ border-radius: 5pt;
+ cursor: pointer;
+ margin-bottom: 5px;
+ text-decoration: none;
+ align-items: center;
+ color: black;
+ height: 25px;
+ [fill*="red"] {
+ fill: #454545;
+ }
+ &:hover {
+ ${props =>
+ !props.active &&
+ `
+ background-color: #e0e0e059;
+ `}
+ }
+ &.active {
+ background-color: #e0e0e0;
+ }
+`
+
+const SideBarContainer = styled(Flex)`
+ position: sticky;
+ top: 0;
+ height: 100vh;
+ overflow-y: scroll;
+ background-color: #f0f0f0;
+ min-width: 250px;
+ flex-direction: column;
+`
const convertToKebabCase = string => {
return string.replace(/\s+/g, "-").toLowerCase()
}
+const RoutesOverview = ({ content }) => {
+ if (!content) return null
+
+ return (
+
+
+ ENDPOINTS
+
+
+
+ {content.map(route => (
+
+
+ {route.method}
+
+ {route.path}
+
+ ))}
+
+
+
+ )
+}
+
const JsonBox = ({ content }) => {
const json = JSON.parse(content)
return (
-
-
+
+
RESPONSE
-
+
{JSON.stringify(json, undefined, 2)}
-
+
)
}
@@ -66,14 +203,14 @@ const ParamSection = ({ routeParam, param }) => {
)
}
-const RouteSection = ({ path, method }) => {
+const RouteSection = ({ basePath, path, method }) => {
return (
{method}
- {path}
+ {`${basePath}${path === "/" ? "" : path}`}
)
@@ -81,34 +218,59 @@ const RouteSection = ({ path, method }) => {
const SideBar = ({ endpoints }) => {
return (
-
+
+
+
+ MEDUSA
+
+
{endpoints.edges.map(({ node }) => {
return (
-
-
- {node.title}
-
- {node.endpoints.map(e => (
-
-
- {e.title}
-
-
- ))}
+
+ {node.title}}
+ >
+ {node.endpoints.map(e => (
+
+ {e.title}
+
+ ))}
+
)
})}
+
+ )
+}
+
+const EndpointOverview = ({ title, description, routes }) => {
+ return (
+
+
+
+ {title}
+
+ {description}
+
+ {routes && }
)
}
@@ -123,73 +285,77 @@ const StoreApi = ({ data }) => {
-
+
{endpoints.edges.map(({ node }) => (
-
-
-
-
- {node.title}
-
-
- {node.route}
-
- {node.description}
- {node.endpoints.map(endpoint => (
-
-
- {endpoint.title}
-
-
- {endpoint.description}
- {((endpoint.params && endpoint.params.length) ||
- (endpoint.body && endpoint.body.length)) && (
-
+
+
+
+
+
+ {node.endpoints.map((endpoint, i) => (
+
- Parameters
- {(endpoint.params || []).map(p => (
-
- ))}
- {(endpoint.body || []).map(p => (
-
- ))}
-
- )}
+
+
+ {endpoint.title}
+
+
+ {endpoint.description}
+ {((endpoint.params && endpoint.params.length) ||
+ (endpoint.body && endpoint.body.length)) && (
+
+ Parameters
+ {(endpoint.params || []).map(p => (
+
+ ))}
+ {(endpoint.body || []).map(p => (
+
+ ))}
+
+ )}
+
+
+ ))}
- ))}
+
+
+
+
-
-
-
-
+
))}
@@ -206,6 +372,10 @@ export const pageQuery = graphql`
node {
id
title
+ routes {
+ method
+ path
+ }
route
response
description
@@ -215,6 +385,7 @@ export const pageQuery = graphql`
params {
description
name
+ optional
type
}
method
diff --git a/www/src/theme/index.js b/www/src/theme/index.js
index 28d3cbd377..8c202dab01 100644
--- a/www/src/theme/index.js
+++ b/www/src/theme/index.js
@@ -1,6 +1,8 @@
import React from "react"
import { ThemeProvider as Provider } from "emotion-theming"
+import "../fonts/index.css"
+
import breakpoints from "./breakpoints"
import buttons from "./buttons"
import spacing from "./spacing"
diff --git a/www/src/theme/labels.js b/www/src/theme/labels.js
index 8fe0dbea24..2331fc32d1 100644
--- a/www/src/theme/labels.js
+++ b/www/src/theme/labels.js
@@ -4,13 +4,13 @@ export const labels = {
fontSize: 0,
},
GET: {
- color: "green",
+ color: "#4159de",
},
POST: {
- color: "blue",
+ color: "#09825d",
},
DELETE: {
- color: "danger",
+ color: "#b50a0a",
},
}
diff --git a/www/yarn.lock b/www/yarn.lock
index d59d63371f..f9d65be119 100644
--- a/www/yarn.lock
+++ b/www/yarn.lock
@@ -85,6 +85,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-annotate-as-pure@^7.12.10":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d"
+ integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==
+ dependencies:
+ "@babel/types" "^7.12.10"
+
"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3"
@@ -102,6 +109,15 @@
"@babel/helper-module-imports" "^7.10.4"
"@babel/types" "^7.11.5"
+"@babel/helper-builder-react-jsx-experimental@^7.12.10":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.10.tgz#a58cb96a793dc0fcd5c9ed3bb36d62fdc60534c2"
+ integrity sha512-3Kcr2LGpL7CTRDTTYm1bzeor9qZbxbvU2AxsLA6mUG9gYarSfIKMK0UlU+azLWI+s0+BH768bwyaziWB2NOJlQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.12.10"
+ "@babel/helper-module-imports" "^7.12.5"
+ "@babel/types" "^7.12.10"
+
"@babel/helper-builder-react-jsx@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d"
@@ -195,6 +211,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-module-imports@^7.12.5", "@babel/helper-module-imports@^7.7.0":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
+ integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
+ dependencies:
+ "@babel/types" "^7.12.5"
+
"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
@@ -465,6 +488,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-syntax-jsx@^7.12.1", "@babel/plugin-syntax-jsx@^7.2.0":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926"
+ integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
@@ -747,6 +777,16 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-jsx" "^7.10.4"
+"@babel/plugin-transform-react-jsx@^7.12.1":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.10.tgz#a7af3097c73479123594c8c8fe39545abebd44e3"
+ integrity sha512-MM7/BC8QdHXM7Qc1wdnuk73R4gbuOpfrSUgfV/nODGc86sPY1tgmY2M9E9uAnf2e4DOIp8aKGWqgZfQxnTNGuw==
+ dependencies:
+ "@babel/helper-builder-react-jsx" "^7.10.4"
+ "@babel/helper-builder-react-jsx-experimental" "^7.12.10"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "^7.12.1"
+
"@babel/plugin-transform-react-pure-annotations@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501"
@@ -1000,6 +1040,50 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
+"@babel/types@^7.12.10", "@babel/types@^7.12.5":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260"
+ integrity sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
+ lodash "^4.17.19"
+ to-fast-properties "^2.0.0"
+
+"@emotion/babel-plugin-jsx-pragmatic@^0.1.5":
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-plugin-jsx-pragmatic/-/babel-plugin-jsx-pragmatic-0.1.5.tgz#27debfe9c27c4d83574d509787ae553bf8a34d7e"
+ integrity sha512-y+3AJ0SItMDaAgGPVkQBC/S/BaqaPACkQ6MyCI2CUlrjTxKttTVfD3TMtcs7vLEcLxqzZ1xiG0vzwCXjhopawQ==
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+
+"@emotion/babel-plugin@^11.0.0":
+ version "11.1.2"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.1.2.tgz#68fe1aa3130099161036858c64ee92056c6730b7"
+ integrity sha512-Nz1k7b11dWw8Nw4Z1R99A9mlB6C6rRsCtZnwNUOj4NsoZdrO2f2A/83ST7htJORD5zpOiLKY59aJN23092949w==
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.0"
+ "@babel/plugin-syntax-jsx" "^7.12.1"
+ "@babel/runtime" "^7.7.2"
+ "@emotion/hash" "^0.8.0"
+ "@emotion/memoize" "^0.7.5"
+ "@emotion/serialize" "^1.0.0"
+ babel-plugin-macros "^2.6.1"
+ convert-source-map "^1.5.0"
+ escape-string-regexp "^4.0.0"
+ find-root "^1.1.0"
+ source-map "^0.5.7"
+ stylis "^4.0.3"
+
+"@emotion/babel-preset-css-prop@^11.0.0":
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-preset-css-prop/-/babel-preset-css-prop-11.0.0.tgz#25b868affa620b9e97024b67f67ad32c03a0510e"
+ integrity sha512-E7z3jMf1OyThGpp3ngYGxOSGX5AdoSQTuqM9QgJNAHFh3Fi8N5CbWx6g+IdySJ8bjPiMgFQsIeEhkyy+4mDpCQ==
+ dependencies:
+ "@babel/plugin-transform-react-jsx" "^7.12.1"
+ "@babel/runtime" "^7.7.2"
+ "@emotion/babel-plugin" "^11.0.0"
+ "@emotion/babel-plugin-jsx-pragmatic" "^0.1.5"
+
"@emotion/cache@^10.0.27":
version "10.0.29"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0"
@@ -1010,6 +1094,17 @@
"@emotion/utils" "0.11.3"
"@emotion/weak-memoize" "0.2.5"
+"@emotion/cache@^11.0.0":
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.0.0.tgz#473adcaf9e04c6a0e30fb1421e79a209a96818f8"
+ integrity sha512-NStfcnLkL5vj3mBILvkR2m/5vFxo3G0QEreYKDGHNHm9IMYoT/t3j6xwjx6lMI/S1LUJfVHQqn0m9wSINttTTQ==
+ dependencies:
+ "@emotion/memoize" "^0.7.4"
+ "@emotion/sheet" "^1.0.0"
+ "@emotion/utils" "^1.0.0"
+ "@emotion/weak-memoize" "^0.2.5"
+ stylis "^4.0.3"
+
"@emotion/core@^10.0.0", "@emotion/core@^10.0.14":
version "10.0.35"
resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.35.tgz#513fcf2e22cd4dfe9d3894ed138c9d7a859af9b3"
@@ -1031,7 +1126,7 @@
"@emotion/utils" "0.11.3"
babel-plugin-emotion "^10.0.27"
-"@emotion/hash@0.8.0":
+"@emotion/hash@0.8.0", "@emotion/hash@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
@@ -1043,11 +1138,36 @@
dependencies:
"@emotion/memoize" "0.7.4"
+"@emotion/is-prop-valid@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.0.0.tgz#1dbe82e52a12c065d416a702e2d106e552cde5be"
+ integrity sha512-G5X0t7eR9pkhUvAY32QS3lToP9JyNF8It5CcmMvbWjmC9/Yq7IhevaKqxl+me2BKR93iTPiL/h3En1ZX/1G3PQ==
+ dependencies:
+ "@emotion/memoize" "^0.7.4"
+
"@emotion/memoize@0.7.4", "@emotion/memoize@^0.7.1":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
+"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
+ integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
+
+"@emotion/react@^11.1.2":
+ version "11.1.2"
+ resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.1.2.tgz#a635cfc6bc0974756f690b848c684338183b2593"
+ integrity sha512-zEpxynUhHm2GqjY556RnA12Ijt0v6rYUwV6WliyGoFbQKJKkXFuTzGHGQx4UY2jKUV1I4yjr66Ajj/qoQMVPeQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@emotion/cache" "^11.0.0"
+ "@emotion/serialize" "^1.0.0"
+ "@emotion/sheet" "^1.0.1"
+ "@emotion/utils" "^1.0.0"
+ "@emotion/weak-memoize" "^0.2.5"
+ hoist-non-react-statics "^3.3.1"
+
"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16":
version "0.11.16"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad"
@@ -1059,11 +1179,27 @@
"@emotion/utils" "0.11.3"
csstype "^2.5.7"
+"@emotion/serialize@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.0.tgz#1a61f4f037cf39995c97fc80ebe99abc7b191ca9"
+ integrity sha512-zt1gm4rhdo5Sry8QpCOpopIUIKU+mUSpV9WNmFILUraatm5dttNEaYzUWWSboSMUE6PtN2j1cAsuvcugfdI3mw==
+ dependencies:
+ "@emotion/hash" "^0.8.0"
+ "@emotion/memoize" "^0.7.4"
+ "@emotion/unitless" "^0.7.5"
+ "@emotion/utils" "^1.0.0"
+ csstype "^3.0.2"
+
"@emotion/sheet@0.9.4":
version "0.9.4"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5"
integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==
+"@emotion/sheet@^1.0.0", "@emotion/sheet@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.1.tgz#245f54abb02dfd82326e28689f34c27aa9b2a698"
+ integrity sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g==
+
"@emotion/styled-base@^10.0.27":
version "10.0.31"
resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.31.tgz#940957ee0aa15c6974adc7d494ff19765a2f742a"
@@ -1082,12 +1218,23 @@
"@emotion/styled-base" "^10.0.27"
babel-plugin-emotion "^10.0.27"
+"@emotion/styled@^11.0.0":
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.0.0.tgz#698196c2822746360a8644a73a5d842b2d1a78a5"
+ integrity sha512-498laccxJlBiJqrr2r/fx9q+Pr55D0URP2UyOkoSGLjevb8LLAFWueqthsQ5XijE66iGo7y3rzzEYdA7CHmZEQ==
+ dependencies:
+ "@babel/runtime" "^7.7.2"
+ "@emotion/babel-plugin" "^11.0.0"
+ "@emotion/is-prop-valid" "^1.0.0"
+ "@emotion/serialize" "^1.0.0"
+ "@emotion/utils" "^1.0.0"
+
"@emotion/stylis@0.8.5":
version "0.8.5"
resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
-"@emotion/unitless@0.7.5":
+"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.5":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
@@ -1097,7 +1244,12 @@
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==
-"@emotion/weak-memoize@0.2.5":
+"@emotion/utils@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af"
+ integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==
+
+"@emotion/weak-memoize@0.2.5", "@emotion/weak-memoize@^0.2.5":
version "0.2.5"
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
@@ -1665,7 +1817,7 @@
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18"
integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==
-"@types/mdast@^3.0.0":
+"@types/mdast@^3.0.0", "@types/mdast@^3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb"
integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==
@@ -2501,7 +2653,7 @@ babel-plugin-lodash@3.3.4:
lodash "^4.17.10"
require-package-name "^2.0.1"
-babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.8.0:
+babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.6.1, babel-plugin-macros@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
@@ -4028,6 +4180,13 @@ debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
dependencies:
ms "^2.1.1"
+debug@^4.0.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+ integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+ dependencies:
+ ms "2.1.2"
+
debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
@@ -4335,6 +4494,15 @@ dom-serializer@0:
domelementtype "^2.0.1"
entities "^2.0.0"
+dom-serializer@^1.0.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1"
+ integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.0.0"
+ entities "^2.0.0"
+
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
@@ -4355,6 +4523,11 @@ domelementtype@^2.0.1:
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971"
integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==
+domelementtype@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
+ integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
+
domhandler@^2.3.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
@@ -4362,6 +4535,20 @@ domhandler@^2.3.0:
dependencies:
domelementtype "1"
+domhandler@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a"
+ integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==
+ dependencies:
+ domelementtype "^2.0.1"
+
+domhandler@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e"
+ integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==
+ dependencies:
+ domelementtype "^2.1.0"
+
domutils@1.5.1, domutils@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
@@ -4378,6 +4565,15 @@ domutils@^1.7.0:
dom-serializer "0"
domelementtype "1"
+domutils@^2.4.2:
+ version "2.4.4"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3"
+ integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==
+ dependencies:
+ dom-serializer "^1.0.1"
+ domelementtype "^2.0.1"
+ domhandler "^4.0.0"
+
dot-prop@^5.2.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
@@ -5577,6 +5773,14 @@ gatsby-plugin-anchor-links@^1.1.1:
dependencies:
scroll-to-element "^2.0.3"
+gatsby-plugin-emotion@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/gatsby-plugin-emotion/-/gatsby-plugin-emotion-5.0.0.tgz#146b9de51f3c95687d4e9afc6741ac68ddba8d48"
+ integrity sha512-hOPzvYG3N4Ml4hu92pzHiTZCXc5oO32C08eMdAthp/3hWNBfOc+wdI+Xb+18txGvE9Na3yCdCB4/yo6nQWyyOQ==
+ dependencies:
+ "@babel/runtime" "^7.11.2"
+ "@emotion/babel-preset-css-prop" "^11.0.0"
+
gatsby-plugin-page-creator@^2.3.29:
version "2.3.29"
resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.3.29.tgz#b3783bf8356769467dde555986c1cb07c469b824"
@@ -6437,7 +6641,7 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
-hoist-non-react-statics@^3.3.0:
+hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@@ -6498,6 +6702,16 @@ html-tag-names@^1.1.5:
resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.5.tgz#f537420c16769511283f8ae1681785fbc89ee0a9"
integrity sha512-aI5tKwNTBzOZApHIynaAwecLBv8TlZTEy/P4Sj2SzzAhBrGuI8yGZ0UIXVPQzOHGS+to2mjb04iy6VWt/8+d8A==
+html-to-react@^1.3.4:
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.4.5.tgz#59091c11021d1ef315ef738460abb6a4a41fe1ce"
+ integrity sha512-KONZUDFPg5OodWaQu2ymfkDmU0JA7zB1iPfvyHehTmMUZnk0DS7/TyCMTzsLH6b4BvxX15g88qZCXFhJWktsmA==
+ dependencies:
+ domhandler "^3.3.0"
+ htmlparser2 "^5.0"
+ lodash.camelcase "^4.3.0"
+ ramda "^0.27.1"
+
html-void-elements@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483"
@@ -6515,6 +6729,16 @@ htmlparser2@^3.3.0:
inherits "^2.0.1"
readable-stream "^3.1.1"
+htmlparser2@^5.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7"
+ integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^3.3.0"
+ domutils "^2.4.2"
+ entities "^2.0.0"
+
http-cache-semantics@3.8.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
@@ -7656,6 +7880,11 @@ lodash-es@^4.17.14:
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78"
integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
+
lodash.clonedeep@4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
@@ -7869,6 +8098,13 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+mdast-add-list-metadata@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf"
+ integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==
+ dependencies:
+ unist-util-visit-parents "1.1.2"
+
mdast-squeeze-paragraphs@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97"
@@ -7890,6 +8126,17 @@ mdast-util-definitions@^3.0.0:
dependencies:
unist-util-visit "^2.0.0"
+mdast-util-from-markdown@^0.8.0:
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz#2882100c1b9fc967d3f83806802f303666682d32"
+ integrity sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==
+ dependencies:
+ "@types/mdast" "^3.0.0"
+ mdast-util-to-string "^2.0.0"
+ micromark "~2.11.0"
+ parse-entities "^2.0.0"
+ unist-util-stringify-position "^2.0.0"
+
mdast-util-to-hast@9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-9.1.0.tgz#6ef121dd3cd3b006bf8650b1b9454da0faf79ffe"
@@ -7907,6 +8154,11 @@ mdast-util-to-hast@9.1.0:
unist-util-position "^3.0.0"
unist-util-visit "^2.0.0"
+mdast-util-to-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b"
+ integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==
+
mdn-data@2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
@@ -7968,6 +8220,14 @@ methods@~1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+micromark@~2.11.0:
+ version "2.11.2"
+ resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.2.tgz#e8b6a05f54697d2d3d27fc89600c6bc40dd05f35"
+ integrity sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ==
+ dependencies:
+ debug "^4.0.0"
+ parse-entities "^2.0.0"
+
micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
@@ -9682,6 +9942,11 @@ raf@^3.4.0:
dependencies:
performance-now "^2.1.0"
+ramda@^0.27.1:
+ version "0.27.1"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9"
+ integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==
+
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -9749,6 +10014,11 @@ react-clientside-effect@^1.2.2:
dependencies:
"@babel/runtime" "^7.0.0"
+react-collapsible@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/react-collapsible/-/react-collapsible-2.8.1.tgz#60f47a12203bb8477d4c0e221b109fa839fed66c"
+ integrity sha512-ykV+EpCBYC6UoOsZLtBxrs/kFVgJc2gFMU1/SS2JLG+LrMHSOERpWSG+fexyFYk44hdfJRmc/If+HlSjXcbCiw==
+
react-dev-utils@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-4.2.3.tgz#5b42d9ea58d5e9e017a2f57a40a8af408a3a46fb"
@@ -9854,7 +10124,7 @@ react-intersection-observer@^8.29.0:
resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-8.29.0.tgz#8349a6301bfc24329a029036c6bed30f9864f3ad"
integrity sha512-Bqp7GBa5Aieo8C33Bz0e5WuUnFUKN3WOayKMT/2f0ujfW+YpzOEdNE4MK/TnaHp+cisK7n1At3qcFaNPfhHbqw==
-react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1:
+react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -9864,6 +10134,22 @@ react-lifecycles-compat@^3.0.4:
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
+react-markdown@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-5.0.3.tgz#41040ea7a9324b564b328fb81dd6c04f2a5373ac"
+ integrity sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==
+ dependencies:
+ "@types/mdast" "^3.0.3"
+ "@types/unist" "^2.0.3"
+ html-to-react "^1.3.4"
+ mdast-add-list-metadata "1.0.1"
+ prop-types "^15.7.2"
+ react-is "^16.8.6"
+ remark-parse "^9.0.0"
+ unified "^9.0.0"
+ unist-util-visit "^2.0.0"
+ xtend "^4.0.1"
+
react-reconciler@^0.24.0:
version "0.24.0"
resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.24.0.tgz#5a396b2c2f5efe8554134a5935f49f546723f2dd"
@@ -10221,6 +10507,13 @@ remark-parse@^6.0.3:
vfile-location "^2.0.0"
xtend "^4.0.1"
+remark-parse@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640"
+ integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==
+ dependencies:
+ mdast-util-from-markdown "^0.8.0"
+
remark-squeeze-paragraphs@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead"
@@ -11336,6 +11629,11 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
+stylis@^4.0.3:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.6.tgz#0d8b97b6bc4748bea46f68602b6df27641b3c548"
+ integrity sha512-1igcUEmYFBEO14uQHAJhCUelTR5jPztfdVKrYxRnDa5D5Dn3w0NxXupJNPr/VV/yRfZYEAco8sTIRZzH3sRYKg==
+
subscriptions-transport-ws@^0.9.16:
version "0.9.18"
resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97"
@@ -11791,6 +12089,18 @@ unified@^8.4.2:
trough "^1.0.0"
vfile "^4.0.0"
+unified@^9.0.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8"
+ integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==
+ dependencies:
+ bail "^1.0.0"
+ extend "^3.0.0"
+ is-buffer "^2.0.0"
+ is-plain-obj "^2.0.0"
+ trough "^1.0.0"
+ vfile "^4.0.0"
+
union-value@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@@ -11894,6 +12204,11 @@ unist-util-stringify-position@^2.0.0, unist-util-stringify-position@^2.0.3:
dependencies:
"@types/unist" "^2.0.2"
+unist-util-visit-parents@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06"
+ integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==
+
unist-util-visit-parents@^2.0.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9"