├── README.md
├── react-local-dev-and-cypress
├── .github
│ └── workflows
│ │ └── main.yml
├── .gitignore
├── .prettierignore
├── README.md
├── craco.config.js
├── cypress.json
├── cypress
│ ├── fixtures
│ │ └── example.json
│ ├── integration
│ │ └── app.spec.js
│ ├── plugins
│ │ └── index.js
│ └── support
│ │ ├── commands.js
│ │ └── index.js
├── netlify.toml
├── package.json
├── prettier.config.js
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
├── src
│ ├── App.css
│ ├── App.js
│ ├── __tests__
│ │ └── App.test.js
│ ├── components
│ │ ├── About.js
│ │ └── Todos.js
│ ├── index.js
│ ├── server.js
│ └── setupTests.js
├── tailwind.config.js
└── yarn.lock
├── react-native
├── .expo-shared
│ └── assets.json
├── .gitignore
├── App.js
├── App.test.js
├── README.md
├── app.json
├── assets
│ ├── icon.png
│ └── splash.png
├── babel.config.js
├── jest.config.js
├── jest.setup.js
├── package.json
├── server.js
└── yarn.lock
├── react-typescript
├── .eslintrc
├── .gitignore
├── .prettierignore
├── README.md
├── craco.config.js
├── package.json
├── prettier.config.js
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
├── src
│ ├── App.css
│ ├── App.test.tsx
│ ├── App.tsx
│ ├── components
│ │ ├── People.tsx
│ │ └── Profile.tsx
│ ├── fetchers.ts
│ ├── index.tsx
│ ├── mirage
│ │ └── index.ts
│ ├── react-app-env.d.ts
│ └── setupTests.ts
├── tailwind.config.js
├── tsconfig.json
└── yarn.lock
├── svelte-local-dev
├── .eslintrc
├── .gitignore
├── README.md
├── netlify.toml
├── package.json
├── postcss.config.js
├── prettier.config.js
├── public
│ ├── favicon.png
│ ├── global.css
│ ├── index.html
│ └── tailwind.css
├── rollup.config.js
├── src
│ ├── App.svelte
│ ├── components
│ │ ├── About.svelte
│ │ ├── Todo.svelte
│ │ └── Todos.svelte
│ ├── main.js
│ └── server.js
├── tailwind.js
└── yarn.lock
├── vue-axios-test-utils
├── .gitignore
├── README.md
├── babel.config.js
├── package.json
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── App.vue
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ └── HelloWorld.vue
│ ├── main.js
│ └── server.js
├── tests
│ └── unit
│ │ └── example.spec.js
└── yarn.lock
└── vue-cli-local-dev-and-cypress
├── .gitignore
├── README.md
├── babel.config.js
├── cypress.json
├── cypress
├── fixtures
│ └── example.json
├── integration
│ └── example.spec.js
├── plugins
│ └── index.js
└── support
│ ├── commands.js
│ └── index.js
├── netlify.toml
├── package.json
├── postcss.config.js
├── public
├── favicon.ico
└── index.html
├── src
├── App.vue
├── assets
│ └── tailwind.css
├── components
│ ├── About.vue
│ ├── Todo.vue
│ ├── Todos.vue
│ └── icons
│ │ └── Cloud.vue
├── main.js
└── server.js
├── tailwind.config.js
├── vue.config.js
└── yarn.lock
/README.md:
--------------------------------------------------------------------------------
1 | # Mirage Examples
2 |
3 | If you don't see an example with what you're looking for, feel free to [open an issue](https://github.com/miragejs/examples/issues/new)!
4 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on: [push]
4 |
5 | jobs:
6 |
7 | test:
8 | runs-on: ubuntu-latest
9 | env:
10 | CI: true
11 | steps:
12 | - uses: actions/checkout@v1
13 | - uses: actions/setup-node@v1
14 |
15 | - name: Get yarn cache
16 | id: yarn-cache
17 | run: echo "::set-output name=dir::$(yarn cache dir)"
18 |
19 | - uses: actions/cache@v1
20 | with:
21 | path: ${{ steps.yarn-cache.outputs.dir }}
22 | key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
23 | restore-keys: |
24 | ${{ runner.os }}-yarn-
25 |
26 | - run: yarn install
27 | - run: yarn test
28 |
29 | - uses: cypress-io/github-action@v1.16.1
30 | with:
31 | start: yarn start
32 | wait-on: 'http://localhost:3000'
33 |
34 | - uses: actions/upload-artifact@v1
35 | if: always()
36 | with:
37 | name: cypress-videos
38 | path: cypress/videos
39 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 | /cypress/videos/
11 |
12 | # production
13 | /build
14 |
15 | # misc
16 | .DS_Store
17 | .env.local
18 | .env.development.local
19 | .env.test.local
20 | .env.production.local
21 | .vscode/
22 |
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/.prettierignore:
--------------------------------------------------------------------------------
1 | build
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/README.md:
--------------------------------------------------------------------------------
1 | # React Local Dev, React Testing Library, and Cypress Testing
2 |
3 | This app is set up with Mirage for both local development and UI testing with Cypress.
4 |
5 | The Mirage server is in [src/server.js](./src/server.js). The React Testing Library test is in [src/**tests**/App.test.js](./src/__tests__/App.test.js). The Cypress test is in [cypress/integration/app.spec.js](./cypress/integration/app.spec.js).
6 |
7 | ## How to use
8 |
9 | Pull down the repo and install deps:
10 |
11 | ```sh
12 | git clone git@github.com:miragejs/examples.git
13 | cd examples/react-local-dev-and-cypress
14 | yarn
15 | ```
16 |
17 | To run this app in development against a local Mirage server:
18 |
19 | ```sh
20 | yarn start
21 | ```
22 |
23 | To run the React Testing Library tests:
24 |
25 | ```sh
26 | yarn test
27 | ```
28 |
29 | To run the Cypress tests:
30 |
31 | ```sh
32 | yarn cypress:dev
33 | ```
34 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/craco.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | style: {
3 | postcss: {
4 | plugins: [require("tailwindcss")],
5 | },
6 | },
7 | };
8 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseUrl": "http://localhost:3000"
3 | }
4 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/cypress/integration/app.spec.js:
--------------------------------------------------------------------------------
1 | import { makeServer } from "../../src/server";
2 |
3 | let server;
4 |
5 | beforeEach(() => {
6 | server = makeServer({ environment: "test" });
7 | });
8 |
9 | afterEach(() => {
10 | server.shutdown();
11 | });
12 |
13 | it("shows a loading message", () => {
14 | cy.visit("/");
15 |
16 | cy.get("[data-testid=loading]").should("be.visible");
17 | });
18 |
19 | it("shows a message if there are no todos", () => {
20 | cy.visit("/");
21 |
22 | cy.get("[data-testid='no-todos']").should("be.visible");
23 | });
24 |
25 | it("can create a todo", () => {
26 | cy.visit("/");
27 |
28 | cy.get("[data-testid='new-todo-form'] input").type("Walk the dog{enter}");
29 |
30 | cy.get("[data-testid='saving']").should("be.visible");
31 |
32 | cy.get("[data-testid='todo'] input[type='checkbox']").should(
33 | "not.be.checked"
34 | );
35 | cy.get("[data-testid='todo'] input[type='text']").should(
36 | "have.value",
37 | "Walk the dog"
38 | );
39 |
40 | cy.should(() => {
41 | expect(server.db.todos).to.have.lengthOf(1);
42 | expect(server.db.todos[0].text).to.equal("Walk the dog");
43 | });
44 | });
45 |
46 | it("shows existing todos", () => {
47 | server.createList("todo", 3);
48 |
49 | cy.visit("/");
50 |
51 | cy.get("[data-testid='todo']").should("have.lengthOf", 3);
52 | });
53 |
54 | it("can complete a todo", () => {
55 | server.create("todo", { text: "Todo 1", isDone: false });
56 | server.create("todo", { text: "Todo 2", isDone: false });
57 |
58 | cy.visit("/");
59 |
60 | cy.get("[data-testid='todo'] input[type='checkbox']")
61 | .eq(1)
62 | .check();
63 |
64 | cy.get("[data-testid='todo'] input[type='checkbox']")
65 | .eq(1)
66 | .should("be.checked");
67 |
68 | cy.get("[data-testid='todo'] input[type='checkbox']")
69 | .first()
70 | .should("not.be.checked");
71 |
72 | cy.should(() => {
73 | expect(server.db.todos[1].isDone).to.be.true;
74 | });
75 | });
76 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/cypress/plugins/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example plugins/index.js can be used to load plugins
3 | //
4 | // You can change the location of this file or turn off loading
5 | // the plugins file with the 'pluginsFile' configuration option.
6 | //
7 | // You can read more here:
8 | // https://on.cypress.io/plugins-guide
9 | // ***********************************************************
10 |
11 | // This function is called when a project is opened or re-opened (e.g. due to
12 | // the project's config changing)
13 |
14 | module.exports = (on, config) => {
15 | // `on` is used to hook into various events Cypress emits
16 | // `config` is the resolved Cypress config
17 | };
18 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | //
11 | //
12 | // -- This is a parent command --
13 | // Cypress.Commands.add("login", (email, password) => { ... })
14 | //
15 | //
16 | // -- This is a child command --
17 | // Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
18 | //
19 | //
20 | // -- This is a dual command --
21 | // Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
22 | //
23 | //
24 | // -- This will overwrite an existing command --
25 | // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
26 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/cypress/support/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import "./commands";
18 |
19 | // Alternatively you can use CommonJS syntax:
20 | // require('./commands')
21 |
22 | Cypress.on("window:before:load", win => {
23 | win.handleFromCypress = function(request) {
24 | return fetch(request.url, {
25 | method: request.method,
26 | body: request.requestBody
27 | }).then(res => {
28 | if (res.headers.map["content-type"] === "application/json") {
29 | return res.json();
30 | } else {
31 | return "";
32 | }
33 | });
34 | };
35 | });
36 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/netlify.toml:
--------------------------------------------------------------------------------
1 | # SPA push state routing
2 | [[redirects]]
3 | from = "/*"
4 | to = "/index.html"
5 | status = 200
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-mirage-demo",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@craco/craco": "^5.6.4",
7 | "@testing-library/jest-dom": "^5.11.4",
8 | "@testing-library/react": "^9.5.0",
9 | "miragejs": "^0.1.41",
10 | "react": "^16.13.1",
11 | "react-dom": "^16.13.1",
12 | "react-router-dom": "^5.2.0",
13 | "react-scripts": "3.4.1",
14 | "swr": "^0.2.3",
15 | "tailwindcss": "^1.8.10"
16 | },
17 | "scripts": {
18 | "start": "craco start",
19 | "start:proxy": "REACT_APP_PROXY=true craco start",
20 | "build": "craco build",
21 | "test": "craco test",
22 | "cypress:open": "cypress open",
23 | "cypress:run": "cypress run",
24 | "cypress:dev": "start-server-and-test start http://localhost:3000 cypress:open",
25 | "cypress:ci": "start-server-and-test start http://localhost:3000 cypress:run",
26 | "eject": "react-scripts eject"
27 | },
28 | "proxy": "http://localhost:3001",
29 | "eslintConfig": {
30 | "extends": [
31 | "react-app",
32 | "plugin:cypress/recommended"
33 | ]
34 | },
35 | "browserslist": [
36 | ">0.2%",
37 | "not dead",
38 | "not ie <= 11",
39 | "not op_mini all"
40 | ],
41 | "devDependencies": {
42 | "@testing-library/user-event": "^10.4.1",
43 | "cypress": "^4.12.1",
44 | "eslint-plugin-cypress": "^2.11.1",
45 | "prettier": "^2.1.2",
46 | "start-server-and-test": "^1.11.4"
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {};
2 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/react-local-dev-and-cypress/public/favicon.ico
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
15 |
16 |
25 | Mirage + React demo
26 |
27 |
28 | You need to enable JavaScript to run this app.
29 |
30 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/App.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/App.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import "./App.css";
3 | import {
4 | BrowserRouter as Router,
5 | Switch,
6 | Route,
7 | NavLink
8 | } from "react-router-dom";
9 | import Home from "./components/Todos";
10 | import About from "./components/About";
11 |
12 | export default function App() {
13 | return (
14 |
15 |
16 |
17 |
18 |
24 | Home
25 |
26 |
31 | About
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | );
47 | }
48 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/__tests__/App.test.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {
3 | render,
4 | waitForElement,
5 | waitForElementToBeRemoved,
6 | fireEvent
7 | } from "@testing-library/react";
8 | import userEvent from "@testing-library/user-event";
9 | import RawApp from "../App";
10 | import { makeServer } from "../server";
11 | import { SWRConfig, cache } from "swr";
12 |
13 | const App = () => (
14 |
15 |
16 |
17 | );
18 |
19 | let server;
20 |
21 | beforeEach(() => {
22 | server = makeServer({ environment: "test" });
23 | });
24 |
25 | afterEach(() => {
26 | server.shutdown();
27 | cache.clear();
28 | });
29 |
30 | it("shows a loading message", () => {
31 | const { getByTestId } = render( );
32 |
33 | expect(getByTestId("loading")).toBeInTheDocument();
34 | });
35 |
36 | it("shows a message if there are no todos", async () => {
37 | const { getByTestId } = render( );
38 | await waitForElementToBeRemoved(() => getByTestId("loading"));
39 |
40 | expect(getByTestId("no-todos")).toBeInTheDocument();
41 | });
42 |
43 | it("can create a todo", async () => {
44 | const { getByTestId } = render( );
45 | await waitForElementToBeRemoved(() => getByTestId("loading"));
46 |
47 | const newTodoForm = await waitForElement(() => getByTestId("new-todo-form"));
48 | userEvent.type(newTodoForm.querySelector("input"), "Walk the dog");
49 | fireEvent.submit(getByTestId("new-todo-form"));
50 | await waitForElementToBeRemoved(() => getByTestId("saving"));
51 |
52 | const todo = getByTestId("todo");
53 | expect(todo.querySelector('input[type="checkbox"]').checked).toBe(false);
54 | expect(todo.querySelector('input[type="text"]').value).toBe("Walk the dog");
55 | expect(server.db.todos.length).toBe(1);
56 | expect(server.db.todos[0].text).toBe("Walk the dog");
57 | });
58 |
59 | it("shows existing todos", async () => {
60 | server.createList("todo", 3);
61 |
62 | const { getByTestId, getAllByTestId } = render( );
63 | await waitForElementToBeRemoved(() => getByTestId("loading"));
64 |
65 | expect(getAllByTestId("todo")).toHaveLength(3);
66 | });
67 |
68 | it("can complete a todo", async () => {
69 | server.create("todo", { text: "Todo 1", isDone: false });
70 | server.create("todo", { text: "Todo 2", isDone: false });
71 |
72 | const { getByTestId, getAllByTestId } = render( );
73 | await waitForElementToBeRemoved(() => getByTestId("loading"));
74 | const todos = getAllByTestId("todo");
75 | userEvent.click(todos[1].querySelector("input[type='checkbox']"));
76 |
77 | expect(getByTestId("completed-todos")).toHaveTextContent("1 / 2 complete");
78 |
79 | await waitForElementToBeRemoved(() => getByTestId("saving"));
80 |
81 | expect(todos[0].querySelector('input[type="checkbox"]').checked).toBe(false);
82 | expect(todos[1].querySelector('input[type="checkbox"]').checked).toBe(true);
83 | expect(server.db.todos[1].isDone).toBe(true);
84 | });
85 |
86 | it("can clear completed todos", async () => {
87 | server.create("todo", { text: "Todo 1", isDone: true });
88 | server.create("todo", { text: "Todo 2", isDone: false });
89 |
90 | const { getByTestId } = render( );
91 | await waitForElementToBeRemoved(() => getByTestId("loading"));
92 | expect(getByTestId("completed-todos")).toHaveTextContent("1 / 2 complete");
93 |
94 | userEvent.click(getByTestId("clear-completed"));
95 | await waitForElementToBeRemoved(() => getByTestId("saving"));
96 |
97 | expect(getByTestId("completed-todos")).toHaveTextContent("0 / 1 complete");
98 | expect(server.db.todos).toHaveLength(1);
99 | });
100 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/components/About.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export default function() {
4 | return (
5 |
6 |
About this app
7 |
8 | This is an SPA made with{" "}
9 |
13 | Mirage
14 | {" "}
15 | and{" "}
16 |
20 | React
21 |
22 | . It has two routes to help demonstrate how Mirage's in-memory database
23 | enables realistic data fetching and persistence during a single
24 | application session.
25 |
26 |
27 | Mirage's state is reset whenever the application is reloaded.
28 |
29 |
30 |
34 | View the code on GitHub →
35 |
36 |
37 |
38 | );
39 | }
40 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/components/Todos.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState, useRef } from "react";
2 | import useSWR from "swr";
3 |
4 | const fetcher = (url, options) =>
5 | fetch(url, {
6 | headers: {
7 | Accept: "application/json",
8 | "Content-Type": "application/json"
9 | },
10 | ...options
11 | }).then(r => {
12 | if (r?.headers?.get("content-type")?.match("json")) {
13 | return r.json();
14 | }
15 | });
16 |
17 | const useIsMountedRef = () => {
18 | const isMounted = useRef(true);
19 |
20 | useEffect(() => {
21 | return () => {
22 | isMounted.current = false;
23 | };
24 | }, []);
25 |
26 | return isMounted;
27 | };
28 |
29 | let tempIdCounter = 1;
30 |
31 | function useRequestManager() {
32 | let [pendingRequestIds, setPendingRequestIds] = useState([]);
33 |
34 | function create() {
35 | const requestId = Symbol();
36 | setPendingRequestIds([...pendingRequestIds, requestId]);
37 |
38 | return {
39 | done() {
40 | setPendingRequestIds(pendingRequestIds =>
41 | pendingRequestIds.filter(id => id !== requestId)
42 | );
43 | }
44 | };
45 | }
46 |
47 | return {
48 | create,
49 | hasPendingRequests: pendingRequestIds.length > 0
50 | };
51 | }
52 |
53 | export default function Todos() {
54 | let manager = useRequestManager();
55 | let isMountedRef = useIsMountedRef();
56 | let [newTodoRef, setNewTodoRef] = useRefState({ text: "", isDone: false });
57 |
58 | let isSaving = manager.hasPendingRequests;
59 |
60 | async function createTodo(event) {
61 | event.preventDefault();
62 | let newTodo = { ...newTodoRef.current };
63 | let tempId = `t${tempIdCounter}`;
64 | tempIdCounter++;
65 | let localNewTodo = { ...newTodo, ...{ id: tempId } };
66 |
67 | // Optimistic UI update
68 | updateTodosCache({ todos: [...todos, localNewTodo] }, false);
69 |
70 | // Resetting the new todo textbox
71 | setNewTodoRef({ text: "", isDone: false });
72 |
73 | // Create the todo
74 | let request = manager.create();
75 | let newTodoJson = await fetcher("/api/todos", {
76 | method: "POST",
77 | body: JSON.stringify({ todo: newTodo })
78 | });
79 |
80 | if (isMountedRef.current) {
81 | request.done();
82 | }
83 |
84 | // Update client side cache with record from server
85 | updateTodosCache(cache => {
86 | let changedIndex = cache.todos.findIndex(todo => todo.id === tempId);
87 |
88 | return {
89 | todos: cache.todos.map((oldTodo, i) =>
90 | i === changedIndex ? newTodoJson.todo : oldTodo
91 | )
92 | };
93 | }, false);
94 | }
95 |
96 | async function saveTodo(todo) {
97 | // Optimistic UI update
98 | let changedIndex = todos.findIndex(t => t.id === todo.id);
99 | updateTodosCache(
100 | {
101 | todos: todos.map((oldTodo, i) => (i === changedIndex ? todo : oldTodo))
102 | },
103 | false
104 | );
105 |
106 | // Save the updated todo
107 | let request = manager.create();
108 | await fetcher(`/api/todos/${todo.id}`, {
109 | method: "PATCH",
110 | body: JSON.stringify({ todo })
111 | });
112 | if (isMountedRef.current) {
113 | request.done();
114 | }
115 | }
116 |
117 | async function deleteCompleted() {
118 | let request = manager.create();
119 | let completedTodos = todos.filter(t => t.isDone);
120 | let remainingTodos = todos.filter(t => !t.isDone);
121 |
122 | // Optimistic UI update
123 | updateTodosCache({ todos: remainingTodos }, false);
124 |
125 | // Delete all completed todos
126 | await Promise.all(
127 | completedTodos.map(todo =>
128 | fetcher(`/api/todos/${todo.id}`, { method: "DELETE" })
129 | )
130 | );
131 |
132 | if (isMountedRef.current) {
133 | request.done();
134 | }
135 | }
136 |
137 | function handleChange(event) {
138 | setNewTodoRef({ ...newTodoRef.current, ...{ text: event.target.value } });
139 | }
140 |
141 | const { data, mutate: updateTodosCache } = useSWR("/api/todos", fetcher);
142 |
143 | let todos = data?.todos;
144 | let done = todos?.filter(todo => todo.isDone).length;
145 |
146 | return (
147 |
148 |
149 |
Todos
150 |
151 |
152 | {isSaving && (
153 |
158 |
159 |
160 | )}
161 |
162 |
163 |
164 |
165 | {!todos ? (
166 |
167 | Loading...
168 |
169 | ) : (
170 |
171 |
172 |
181 |
182 |
183 | {data.todos.length > 0 ? (
184 |
185 | {data.todos.map(todo => (
186 |
187 | ))}
188 |
189 | ) : (
190 |
194 | Everything's done!
195 |
196 | )}
197 |
198 |
199 | {todos.length > 0 ? (
200 |
201 | {done} / {todos.length} complete
202 |
203 | ) : null}
204 | {done > 0 ? (
205 |
210 | Clear completed
211 |
212 | ) : null}
213 |
214 |
215 | )}
216 |
217 |
218 | );
219 | }
220 |
221 | function useRefState(initialState) {
222 | let [state, setState] = useState(initialState);
223 | let ref = useRef(state);
224 |
225 | function updateRefAndSetState(newState) {
226 | ref.current = newState;
227 | setState(newState);
228 | }
229 |
230 | return [ref, updateRefAndSetState];
231 | }
232 |
233 | function Todo({ todo, onChange }) {
234 | let [isFocused, setIsFocused] = useState(false);
235 | let [localTodoRef, setLocalTodo] = useRefState({ ...todo });
236 |
237 | function handleChange(event) {
238 | setLocalTodo({ ...localTodoRef.current, ...{ text: event.target.value } });
239 | }
240 |
241 | function handleCheck(event) {
242 | setLocalTodo({
243 | ...localTodoRef.current,
244 | ...{ isDone: event.target.checked }
245 | });
246 |
247 | commitChanges();
248 | }
249 |
250 | function handleSubmit(event) {
251 | event.preventDefault();
252 | commitChanges(localTodoRef.current);
253 | }
254 |
255 | function commitChanges() {
256 | setIsFocused(false);
257 |
258 | let hasChanges =
259 | localTodoRef.current.text !== todo.text ||
260 | localTodoRef.current.isDone !== todo.isDone;
261 |
262 | if (hasChanges) {
263 | onChange(localTodoRef.current);
264 | }
265 | }
266 |
267 | return (
268 |
278 |
284 |
285 |
299 |
300 | );
301 | }
302 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import App from "./App";
4 | import { makeServer } from "./server";
5 | import { Server } from "miragejs";
6 |
7 | if (window.Cypress) {
8 | // mirage cypress server
9 | let cyServer = new Server({
10 | routes() {
11 | ["get", "put", "patch", "post", "delete"].forEach(method => {
12 | this[method]("/*", (schema, request) => {
13 | return window.handleFromCypress(request);
14 | });
15 | });
16 | }
17 | });
18 | cyServer.logging = false;
19 | } else if (!process.env.REACT_APP_PROXY) {
20 | // mirage dev server
21 | makeServer();
22 | }
23 |
24 | ReactDOM.render( , document.getElementById("root"));
25 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/server.js:
--------------------------------------------------------------------------------
1 | import { Server, Model, Factory } from "miragejs";
2 |
3 | export function makeServer({ environment = "development" } = {}) {
4 | let server = new Server({
5 | environment,
6 |
7 | models: {
8 | todo: Model
9 | },
10 |
11 | factories: {
12 | todo: Factory.extend({
13 | text(i) {
14 | return `Todo ${i + 1}`;
15 | },
16 |
17 | isDone: false
18 | })
19 | },
20 |
21 | seeds(server) {
22 | server.create("todo", { text: "Buy groceries", isDone: false });
23 | server.create("todo", { text: "Walk the dog", isDone: false });
24 | server.create("todo", { text: "Do laundry", isDone: false });
25 | },
26 |
27 | routes() {
28 | this.namespace = "api";
29 | this.timing = 750;
30 |
31 | this.get("/todos", schema => {
32 | return schema.todos.all();
33 | });
34 |
35 | this.patch("/todos/:id", (schema, request) => {
36 | let attrs = JSON.parse(request.requestBody).todo;
37 |
38 | return schema.todos.find(request.params.id).update(attrs);
39 | });
40 |
41 | this.post(
42 | "/todos",
43 | (schema, request) => {
44 | let attrs = JSON.parse(request.requestBody).todo;
45 |
46 | return schema.todos.create(attrs);
47 | },
48 | { timing: 2000 }
49 | );
50 |
51 | this.delete("/todos/:id", (schema, request) => {
52 | return schema.todos.find(request.params.id).destroy();
53 | });
54 | }
55 | });
56 |
57 | return server;
58 | }
59 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // this adds jest-dom's custom assertions
2 | import "@testing-library/jest-dom/extend-expect";
3 |
--------------------------------------------------------------------------------
/react-local-dev-and-cypress/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | theme: {},
3 | variants: {},
4 | plugins: [],
5 | };
6 |
--------------------------------------------------------------------------------
/react-native/.expo-shared/assets.json:
--------------------------------------------------------------------------------
1 | {
2 | "f9155ac790fd02fadcdeca367b02581c04a353aa6d5aa84409a59f6804c87acd": true,
3 | "89ed26367cdb9b771858e026f2eb95bfdb90e5ae943e716575327ec325f39c44": true
4 | }
--------------------------------------------------------------------------------
/react-native/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/**/*
2 | .expo/*
3 | npm-debug.*
4 | *.jks
5 | *.p8
6 | *.p12
7 | *.key
8 | *.mobileprovision
9 | *.orig.*
10 | web-build/
11 | web-report/
12 |
13 | # macOS
14 | .DS_Store
15 |
--------------------------------------------------------------------------------
/react-native/App.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from "react";
2 | import { SafeAreaView, View, Text } from "react-native";
3 | import { makeServer } from "./server";
4 |
5 | if (process.env.NODE_ENV === "development") {
6 | if (window.server) {
7 | window.server.shutdown();
8 | }
9 | window.server = makeServer();
10 | }
11 |
12 | export default function App() {
13 | let [users, setUsers] = useState();
14 | let [serverError, setServerError] = useState();
15 |
16 | useEffect(() => {
17 | let fetchUsers = async () => {
18 | try {
19 | let res = await fetch("/api/users");
20 | let data = await res.json();
21 | data.error ? setServerError(data.error) : setUsers(data.users);
22 | } catch (error) {
23 | setServerError(error.message);
24 | }
25 | };
26 |
27 | fetchUsers();
28 | }, []);
29 |
30 | return (
31 |
32 | {serverError ? (
33 | {serverError}
34 | ) : !users ? (
35 | Loading...
36 | ) : users.length === 0 ? (
37 | No users!
38 | ) : (
39 |
40 | {users.map((user) => (
41 |
42 | {user.name}
43 |
44 | ))}
45 |
46 | )}
47 |
48 | );
49 | }
50 |
--------------------------------------------------------------------------------
/react-native/App.test.js:
--------------------------------------------------------------------------------
1 | // src/__tests__/App.test.js
2 | import React from "react";
3 | import { render, waitForElement, waitFor } from "@testing-library/react-native";
4 | import App from "./App";
5 | import { makeServer } from "./server";
6 | import { Response } from "miragejs";
7 |
8 | let server;
9 |
10 | beforeEach(() => {
11 | server = makeServer({ environment: "test" });
12 | });
13 |
14 | afterEach(() => {
15 | server.shutdown();
16 | });
17 |
18 | it("shows a message if there are no users", async () => {
19 | // Don't create any users
20 |
21 | const { findByTestId } = render( );
22 |
23 | await expect(findByTestId("no-users")).resolves.toHaveTextContent(
24 | "No users!"
25 | );
26 | });
27 |
28 | it("shows the users from our server", async () => {
29 | server.create("user", { name: "Luke" });
30 | server.create("user", { name: "Leia" });
31 |
32 | const { getByTestId } = render( );
33 |
34 | await waitFor(() => expect(getByTestId("user-1-name")));
35 |
36 | expect(getByTestId("user-1-name")).toHaveTextContent("Luke");
37 | expect(getByTestId("user-2-name")).toHaveTextContent("Leia");
38 | });
39 |
40 | it("handles error responses from the server", async () => {
41 | // Override Mirage's route handler for /users, just for this test
42 | server.get("/api/users", () => {
43 | return new Response(
44 | 500,
45 | {},
46 | {
47 | error: "The database is on vacation.",
48 | }
49 | );
50 | });
51 |
52 | const { findByTestId } = render( );
53 |
54 | await expect(findByTestId("server-error")).resolves.toHaveTextContent(
55 | "The database is on vacation."
56 | );
57 | });
58 |
--------------------------------------------------------------------------------
/react-native/README.md:
--------------------------------------------------------------------------------
1 | # React Native Local Dev and React Testing Library
2 |
3 | This React Native app is set up with Mirage for both local development and UI testing with React Testing Library.
4 |
5 | The Mirage server is in [src/server.js](./server.js). The test is in [App.test.js](./App.test.js).
6 |
7 | ## How to use
8 |
9 | Pull down the repo and install deps:
10 |
11 | ```sh
12 | git clone git@github.com:miragejs/examples.git
13 | cd examples/react-native
14 | yarn
15 | ```
16 |
17 | To run this app in development against a local Mirage server:
18 |
19 | ```sh
20 | yarn start
21 | ```
22 |
23 | To run the React Testing Library tests:
24 |
25 | ```sh
26 | yarn test
27 | ```
28 |
--------------------------------------------------------------------------------
/react-native/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "name": "Blank Template",
4 | "slug": "react-native",
5 | "privacy": "public",
6 | "sdkVersion": "36.0.0",
7 | "platforms": [
8 | "ios",
9 | "android",
10 | "web"
11 | ],
12 | "version": "1.0.0",
13 | "orientation": "portrait",
14 | "icon": "./assets/icon.png",
15 | "splash": {
16 | "image": "./assets/splash.png",
17 | "resizeMode": "contain",
18 | "backgroundColor": "#ffffff"
19 | },
20 | "updates": {
21 | "fallbackToCacheTimeout": 0
22 | },
23 | "assetBundlePatterns": [
24 | "**/*"
25 | ],
26 | "ios": {
27 | "supportsTablet": true
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/react-native/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/react-native/assets/icon.png
--------------------------------------------------------------------------------
/react-native/assets/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/react-native/assets/splash.png
--------------------------------------------------------------------------------
/react-native/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = function(api) {
2 | api.cache(true);
3 | return {
4 | presets: ['babel-preset-expo'],
5 | };
6 | };
7 |
--------------------------------------------------------------------------------
/react-native/jest.config.js:
--------------------------------------------------------------------------------
1 | // const jestPreset = require("@testing-library/react-native/jest-preset");
2 |
3 | module.exports = {
4 | preset: "jest-expo",
5 | // setupFiles: [...jestPreset.setupFiles],
6 | setupFilesAfterEnv: ["./jest.setup.js"],
7 | };
8 |
--------------------------------------------------------------------------------
/react-native/jest.setup.js:
--------------------------------------------------------------------------------
1 | require("@testing-library/jest-native/extend-expect");
2 |
3 | // jest.setup.js
4 | global.self = global;
5 | global.window = {};
6 | global.XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
7 |
--------------------------------------------------------------------------------
/react-native/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "main": "node_modules/expo/AppEntry.js",
3 | "scripts": {
4 | "start": "expo start",
5 | "android": "expo start --android",
6 | "ios": "expo start --ios",
7 | "web": "expo start --web",
8 | "eject": "expo eject",
9 | "test": "jest"
10 | },
11 | "dependencies": {
12 | "expo": "~39.0.3",
13 | "expo-status-bar": "~1.0.2",
14 | "faker": "^5.1.0",
15 | "react": "~16.13.1",
16 | "react-dom": "~16.13.1",
17 | "react-native": "0.63.2",
18 | "react-native-vector-icons": "^7.1.0",
19 | "react-native-web": "~0.13.14"
20 | },
21 | "devDependencies": {
22 | "@babel/core": "^7.0.0",
23 | "@testing-library/jest-native": "^3.1.0",
24 | "@testing-library/react-native": "^7.0.2",
25 | "babel-preset-expo": "~8.3.0",
26 | "jest-expo": "^39.0.0",
27 | "miragejs": "0.1.41",
28 | "xmlhttprequest": "^1.8.0"
29 | },
30 | "private": true
31 | }
32 |
--------------------------------------------------------------------------------
/react-native/server.js:
--------------------------------------------------------------------------------
1 | import { Server, Model, Factory } from "miragejs";
2 | import faker from "faker";
3 |
4 | export function makeServer({ environment = "development" } = {}) {
5 | let server = new Server({
6 | environment,
7 |
8 | models: {
9 | user: Model,
10 | },
11 |
12 | factories: {
13 | user: Factory.extend({
14 | name() {
15 | return faker.name.findName();
16 | },
17 | avatarUrl(i) {
18 | let c = i % 2 ? "men" : "women";
19 | return `https://randomuser.me/api/portraits/${c}/${i}.jpg`;
20 | },
21 | title() {
22 | return faker.name.title();
23 | },
24 | }),
25 | },
26 |
27 | seeds(server) {
28 | server.createList("user", 25);
29 | },
30 |
31 | routes() {
32 | this.get("/api/users", (schema) => {
33 | return schema.users.all();
34 | });
35 | },
36 | });
37 |
38 | return server;
39 | }
40 |
--------------------------------------------------------------------------------
/react-typescript/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "react-app",
4 | "plugin:prettier/recommended",
5 | "prettier/@typescript-eslint"
6 | ]
7 | }
--------------------------------------------------------------------------------
/react-typescript/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/react-typescript/.prettierignore:
--------------------------------------------------------------------------------
1 | build
--------------------------------------------------------------------------------
/react-typescript/README.md:
--------------------------------------------------------------------------------
1 | # React Typescript
2 |
3 | This app is set up with Typescript and Mirage
4 |
5 | ## How to use
6 |
7 | Pull down the repo and install deps:
8 |
9 | ```sh
10 | git clone git@github.com:miragejs/examples.git
11 | cd examples/react-typescript
12 | yarn
13 | ```
14 |
15 | To run this app in development against a local Mirage server:
16 |
17 | ```sh
18 | yarn start
19 | ```
--------------------------------------------------------------------------------
/react-typescript/craco.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | style: {
3 | postcss: {
4 | plugins: [require("tailwindcss")],
5 | },
6 | },
7 | };
8 |
--------------------------------------------------------------------------------
/react-typescript/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-typescript",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@tailwindcss/typography": "^0.2.0",
7 | "@testing-library/jest-dom": "^4.2.4",
8 | "@testing-library/react": "^9.3.2",
9 | "@testing-library/user-event": "^7.1.2",
10 | "@types/jest": "^24.0.0",
11 | "@types/node": "^12.0.0",
12 | "@types/react": "^16.9.0",
13 | "@types/react-dom": "^16.9.0",
14 | "react": "^17.0.0",
15 | "react-dom": "^17.0.0",
16 | "react-scripts": "3.4.4",
17 | "swr": "^0.3.6",
18 | "tailwindcss": "^1.9.5",
19 | "typescript": "~3.7.2"
20 | },
21 | "scripts": {
22 | "start": "craco start",
23 | "build": "craco build",
24 | "test": "craco test",
25 | "eject": "react-scripts eject"
26 | },
27 | "browserslist": {
28 | "production": [
29 | ">0.2%",
30 | "not dead",
31 | "not op_mini all"
32 | ],
33 | "development": [
34 | "last 1 chrome version",
35 | "last 1 firefox version",
36 | "last 1 safari version"
37 | ]
38 | },
39 | "devDependencies": {
40 | "@craco/craco": "^5.7.0",
41 | "@types/faker": "^5.1.2",
42 | "eslint-config-prettier": "^6.14.0",
43 | "eslint-plugin-prettier": "^3.1.4",
44 | "faker": "^5.1.0",
45 | "miragejs": "^0.1.41",
46 | "prettier": "^2.1.2"
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/react-typescript/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {};
2 |
--------------------------------------------------------------------------------
/react-typescript/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/react-typescript/public/favicon.ico
--------------------------------------------------------------------------------
/react-typescript/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | React App
28 |
29 |
30 | You need to enable JavaScript to run this app.
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/react-typescript/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/react-typescript/src/App.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/react-typescript/src/App.test.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { render } from "@testing-library/react";
3 | import App from "./App";
4 |
5 | test("renders learn react link", () => {
6 | const { getByText } = render( );
7 | const linkElement = getByText(/learn react/i);
8 | expect(linkElement).toBeInTheDocument();
9 | });
10 |
--------------------------------------------------------------------------------
/react-typescript/src/App.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import "./App.css";
3 | import { People } from "./components/People";
4 |
5 | function App() {
6 | return (
7 |
10 | );
11 | }
12 |
13 | export default App;
14 |
--------------------------------------------------------------------------------
/react-typescript/src/components/People.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import useSWR from "swr";
3 | import { Profile } from "./Profile";
4 | import { fetchPeople } from "../fetchers";
5 |
6 | export function People() {
7 | const { data, error } = useSWR("/api/people", fetchPeople);
8 |
9 | if (error) return failed to load
;
10 | if (!data) return loading...
;
11 | return (
12 | <>
13 |
14 |
15 |
16 | ✨
17 |
18 | People
19 |
20 | ✨
21 |
22 |
23 |
24 |
25 |
26 | {data.people.map((person) => (
27 |
28 | ))}
29 |
30 | >
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/react-typescript/src/components/Profile.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { Person } from "../fetchers";
3 |
4 | export function Profile(props: Person) {
5 | return (
6 |
7 | Name
8 | {props.name}
9 | Street address
10 | {props.streetAddress}
11 | City, State Zip
12 | {props.cityStateZip}
13 | Phone number
14 | {props.phone}
15 | Username
16 | {props.username}
17 | Password
18 | {props.password}
19 | Email
20 | {props.email}
21 | Avatar
22 |
23 |
28 |
29 |
30 | );
31 | }
32 |
--------------------------------------------------------------------------------
/react-typescript/src/fetchers.ts:
--------------------------------------------------------------------------------
1 | export type Person = {
2 | id: string;
3 | firstName: string;
4 | lastName: string;
5 | name: string;
6 | streetAddress: string;
7 | cityStateZip: string;
8 | phone: string;
9 | username: string;
10 | password: string;
11 | email: string;
12 | avatar: string;
13 | };
14 |
15 | type PeopleResponse = {
16 | people: Person[];
17 | };
18 |
19 | export const fetchPeople = (url: string) =>
20 | fetch(url).then((r) => r.json());
21 |
--------------------------------------------------------------------------------
/react-typescript/src/index.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import App from "./App";
4 |
5 | import { makeServer } from "./mirage/index";
6 |
7 | const environment = process.env.NODE_ENV;
8 |
9 | if (environment !== "production") {
10 | makeServer({ environment });
11 | }
12 |
13 | ReactDOM.render(
14 |
15 |
16 | ,
17 | document.getElementById("root")
18 | );
19 |
--------------------------------------------------------------------------------
/react-typescript/src/mirage/index.ts:
--------------------------------------------------------------------------------
1 | import { createServer, Model, Factory } from "miragejs";
2 | import faker from "faker";
3 | import { Person } from "../fetchers";
4 |
5 | export function makeServer({ environment = "test" }) {
6 | return createServer({
7 | environment,
8 |
9 | factories: {
10 | person: Factory.extend>({
11 | get firstName() {
12 | return faker.name.firstName();
13 | },
14 | get lastName() {
15 | return faker.name.lastName();
16 | },
17 | get name() {
18 | return faker.name.findName(this.firstName, this.lastName);
19 | },
20 | get streetAddress() {
21 | return faker.address.streetAddress();
22 | },
23 | get cityStateZip() {
24 | return faker.fake(
25 | "{{address.city}}, {{address.stateAbbr}} {{address.zipCode}}"
26 | );
27 | },
28 | get phone() {
29 | return faker.phone.phoneNumber();
30 | },
31 | get username() {
32 | return faker.internet.userName(this.firstName, this.lastName);
33 | },
34 | get password() {
35 | return faker.internet.password();
36 | },
37 | get email() {
38 | return faker.internet.email(this.firstName, this.lastName);
39 | },
40 | get avatar() {
41 | return faker.internet.avatar();
42 | },
43 | }),
44 | },
45 |
46 | models: {
47 | person: Model.extend>({}),
48 | },
49 |
50 | routes() {
51 | this.namespace = "api";
52 |
53 | this.get("people");
54 | },
55 |
56 | seeds(server) {
57 | server.createList("person", 20);
58 | },
59 | });
60 | }
61 |
--------------------------------------------------------------------------------
/react-typescript/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/react-typescript/src/setupTests.ts:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import "@testing-library/jest-dom/extend-expect";
6 |
--------------------------------------------------------------------------------
/react-typescript/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | purge: ["./src/**/*.tsx"],
3 | theme: {},
4 | variants: {},
5 | plugins: [require("@tailwindcss/typography")],
6 | };
7 |
--------------------------------------------------------------------------------
/react-typescript/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "module": "esnext",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "noEmit": true,
20 | "jsx": "react"
21 | },
22 | "include": [
23 | "src"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/svelte-local-dev/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es6": true
5 | },
6 | "parserOptions": {
7 | "ecmaVersion": 2019,
8 | "sourceType": "module"
9 | },
10 | "plugins": ["svelte3"],
11 | "extends": ["eslint:recommended"],
12 | "overrides": [
13 | {
14 | "files": ["**/*.svelte"],
15 | "processor": "svelte3/svelte3"
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/svelte-local-dev/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules/
2 | /public/build/
3 | /public/index.css
4 |
5 | .DS_Store
6 |
--------------------------------------------------------------------------------
/svelte-local-dev/README.md:
--------------------------------------------------------------------------------
1 | # Svelte Local Dev
2 |
3 | This is a Svelte app set up with Mirage for local development.
4 |
5 | The Mirage server is in [src/server.js](./src/server.js).
6 |
7 | ## How to use
8 |
9 | Pull down the repo and install deps:
10 |
11 | ```sh
12 | git clone git@github.com:miragejs/examples.git
13 | cd examples/svelte-local-dev
14 | yarn
15 | ```
16 |
17 | To run this app in development against a local Mirage server:
18 |
19 | ```sh
20 | yarn dev
21 | ```
22 |
--------------------------------------------------------------------------------
/svelte-local-dev/netlify.toml:
--------------------------------------------------------------------------------
1 | # SPA push state routing
2 | [[redirects]]
3 | from = "/*"
4 | to = "/index.html"
5 | status = 200
--------------------------------------------------------------------------------
/svelte-local-dev/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-app",
3 | "version": "1.0.0",
4 | "scripts": {
5 | "watch:tailwind": "postcss public/tailwind.css -o public/index.css -w",
6 | "build:tailwind": "NODE_ENV=production postcss public/tailwind.css -o public/index.css",
7 | "dev": "run-p start:dev autobuild watch:tailwind",
8 | "build": "npm run build:tailwind && rollup -c",
9 | "autobuild": "rollup -c -w",
10 | "start": "sirv public",
11 | "start:dev": "sirv public --dev",
12 | "lint": "eslint ./src/**/*.{svelte,js}",
13 | "format": "prettier --list-different -- 'src/**/*.{html,js,svelte}'",
14 | "format:fix": "prettier --write 'src/**/*.{html,js,svelte}'"
15 | },
16 | "devDependencies": {
17 | "@rollup/plugin-commonjs": "^11.0.0",
18 | "@rollup/plugin-node-resolve": "^7.0.0",
19 | "eslint": "^6.8.0",
20 | "eslint-plugin-svelte3": "^2.7.3",
21 | "miragejs": "^0.1.37",
22 | "npm-run-all": "^4.1.5",
23 | "postcss-cli": "^7.1.0",
24 | "prettier": "^1.19.1",
25 | "prettier-plugin-svelte": "^0.7.0",
26 | "rollup": "^1.20.0",
27 | "rollup-plugin-livereload": "^1.0.0",
28 | "rollup-plugin-svelte": "^5.0.3",
29 | "rollup-plugin-terser": "^5.1.2",
30 | "svelte": "^3.0.0",
31 | "tailwindcss": "^1.2.0"
32 | },
33 | "dependencies": {
34 | "@fullhuman/postcss-purgecss": "^2.1.2",
35 | "sirv-cli": "^0.4.4",
36 | "svelte-routing": "^1.4.2"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/svelte-local-dev/postcss.config.js:
--------------------------------------------------------------------------------
1 | const tailwindcss = require("tailwindcss");
2 |
3 | // only needed if you want to purge
4 | const purgecss = require("@fullhuman/postcss-purgecss")({
5 | content: ["./src/**/*.svelte", "./public/**/*.html"],
6 | defaultExtractor: content => content.match(/[A-Za-z0-9-_:/]+/g) || []
7 | });
8 |
9 | module.exports = {
10 | plugins: [
11 | tailwindcss("./tailwind.js"),
12 |
13 | // only needed if you want to purge
14 | ...(process.env.NODE_ENV === "production" ? [purgecss] : [])
15 | ]
16 | };
--------------------------------------------------------------------------------
/svelte-local-dev/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {};
2 |
--------------------------------------------------------------------------------
/svelte-local-dev/public/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/svelte-local-dev/public/favicon.png
--------------------------------------------------------------------------------
/svelte-local-dev/public/global.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/svelte-local-dev/public/global.css
--------------------------------------------------------------------------------
/svelte-local-dev/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Svelte app
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/svelte-local-dev/public/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
--------------------------------------------------------------------------------
/svelte-local-dev/rollup.config.js:
--------------------------------------------------------------------------------
1 | import svelte from 'rollup-plugin-svelte';
2 | import resolve from '@rollup/plugin-node-resolve';
3 | import commonjs from '@rollup/plugin-commonjs';
4 | import livereload from 'rollup-plugin-livereload';
5 | import { terser } from 'rollup-plugin-terser';
6 |
7 | const production = !process.env.ROLLUP_WATCH;
8 |
9 | export default {
10 | input: 'src/main.js',
11 | output: {
12 | sourcemap: true,
13 | format: 'iife',
14 | name: 'app',
15 | file: 'public/build/bundle.js'
16 | },
17 | plugins: [
18 | svelte({
19 | // enable run-time checks when not in production
20 | dev: !production,
21 | // we'll extract any component CSS out into
22 | // a separate file - better for performance
23 | css: css => {
24 | css.write('public/build/bundle.css');
25 | }
26 | }),
27 |
28 | // If you have external dependencies installed from
29 | // npm, you'll most likely need these plugins. In
30 | // some cases you'll need additional configuration -
31 | // consult the documentation for details:
32 | // https://github.com/rollup/plugins/tree/master/packages/commonjs
33 | resolve({
34 | browser: true,
35 | dedupe: ['svelte']
36 | }),
37 | commonjs(),
38 |
39 | // In dev mode, call `npm run start` once
40 | // the bundle has been generated
41 | !production && serve(),
42 |
43 | // Watch the `public` directory and refresh the
44 | // browser on changes when not in production
45 | !production && livereload('public'),
46 |
47 | // If we're building for production (npm run build
48 | // instead of npm run dev), minify
49 | production && terser()
50 | ],
51 | watch: {
52 | clearScreen: false
53 | }
54 | };
55 |
56 | function serve() {
57 | let started = false;
58 |
59 | return {
60 | writeBundle() {
61 | if (!started) {
62 | started = true;
63 |
64 | require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
65 | stdio: ['ignore', 'inherit', 'inherit'],
66 | shell: true
67 | });
68 | }
69 | }
70 | };
71 | }
72 |
--------------------------------------------------------------------------------
/svelte-local-dev/src/App.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
23 | Home
24 |
25 |
31 | About
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/svelte-local-dev/src/components/About.svelte:
--------------------------------------------------------------------------------
1 |
2 |
About this app
3 |
4 | This is an SPA made with
5 | Mirage
6 | and
7 | Svelte.
8 | It has two routes to help demonstrate how Mirage's in-memory database
9 | enables realistic data fetching and persisting during a single application
10 | session.
11 |
12 |
13 | Mirage's state is reset whenever the application is reloaded.
14 |
15 |
16 |
--------------------------------------------------------------------------------
/svelte-local-dev/src/components/Todo.svelte:
--------------------------------------------------------------------------------
1 |
21 |
22 |
27 |
32 |
33 |
45 |
46 |
--------------------------------------------------------------------------------
/svelte-local-dev/src/components/Todos.svelte:
--------------------------------------------------------------------------------
1 |
66 |
67 |
68 |
69 |
Todos
70 |
71 |
72 | {#if isSaving}
73 |
74 |
77 |
78 | {/if}
79 |
80 |
81 |
82 |
83 | {#if isLoading}
84 |
Loading...
85 | {:else}
86 |
87 |
95 |
96 |
97 |
98 | {#each todos as todo (todo.id)}
99 |
100 | {/each}
101 |
102 |
103 |
105 | {#if todos.length}
106 |
{done} / {total} complete
107 | {/if}
108 | {#if done}
109 |
113 | Clear completed
114 |
115 | {/if}
116 |
117 | {/if}
118 |
119 |
120 |
--------------------------------------------------------------------------------
/svelte-local-dev/src/main.js:
--------------------------------------------------------------------------------
1 | import App from "./App.svelte";
2 | import { makeServer } from "./server";
3 |
4 | makeServer();
5 |
6 | const app = new App({
7 | target: document.body,
8 | props: {}
9 | });
10 |
11 | export default app;
12 |
--------------------------------------------------------------------------------
/svelte-local-dev/src/server.js:
--------------------------------------------------------------------------------
1 | import { Server } from "miragejs";
2 |
3 | export function makeServer({ environment = "development" } = {}) {
4 | let server = new Server({
5 | environment,
6 |
7 | seeds(server) {
8 | server.db.loadData({
9 | todos: [
10 | { text: "Buy groceries", isDone: false },
11 | { text: "Walk the dog", isDone: false },
12 | { text: "Do laundry", isDone: false }
13 | ]
14 | });
15 | },
16 |
17 | routes() {
18 | this.namespace = "api";
19 | this.timing = 750;
20 |
21 | this.get("/todos", ({ db }) => {
22 | return db.todos;
23 | });
24 |
25 | this.patch("/todos/:id", (schema, request) => {
26 | let todo = JSON.parse(request.requestBody).data;
27 |
28 | return schema.db.todos.update(todo.id, todo);
29 | });
30 |
31 | this.post("/todos", (schema, request) => {
32 | let todo = JSON.parse(request.requestBody).data;
33 |
34 | return schema.db.todos.insert(todo);
35 | });
36 |
37 | this.delete("/todos/:id", (schema, request) => {
38 | return schema.db.todos.remove(request.params.id);
39 | });
40 | }
41 | });
42 |
43 | window.server = server;
44 |
45 | return server;
46 | }
47 |
--------------------------------------------------------------------------------
/svelte-local-dev/tailwind.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | theme: {
3 | extend: {},
4 | },
5 | variants: {},
6 | plugins: [],
7 | }
8 |
--------------------------------------------------------------------------------
/svelte-local-dev/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
6 | version "7.10.4"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
8 | integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
9 | dependencies:
10 | "@babel/highlight" "^7.10.4"
11 |
12 | "@babel/helper-validator-identifier@^7.10.4":
13 | version "7.10.4"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
15 | integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
16 |
17 | "@babel/highlight@^7.10.4":
18 | version "7.10.4"
19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
20 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.10.4"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@fullhuman/postcss-purgecss@^2.1.2":
27 | version "2.3.0"
28 | resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz#50a954757ec78696615d3e118e3fee2d9291882e"
29 | integrity sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw==
30 | dependencies:
31 | postcss "7.0.32"
32 | purgecss "^2.3.0"
33 |
34 | "@miragejs/pretender-node-polyfill@^0.1.0":
35 | version "0.1.2"
36 | resolved "https://registry.yarnpkg.com/@miragejs/pretender-node-polyfill/-/pretender-node-polyfill-0.1.2.tgz#d26b6b7483fb70cd62189d05c95d2f67153e43f2"
37 | integrity sha512-M/BexG/p05C5lFfMunxo/QcgIJnMT2vDVCd00wNqK2ImZONIlEETZwWJu1QtLxtmYlSHlCFl3JNzp0tLe7OJ5g==
38 |
39 | "@nodelib/fs.scandir@2.1.3":
40 | version "2.1.3"
41 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
42 | integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==
43 | dependencies:
44 | "@nodelib/fs.stat" "2.0.3"
45 | run-parallel "^1.1.9"
46 |
47 | "@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
48 | version "2.0.3"
49 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
50 | integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
51 |
52 | "@nodelib/fs.walk@^1.2.3":
53 | version "1.2.4"
54 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
55 | integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==
56 | dependencies:
57 | "@nodelib/fs.scandir" "2.1.3"
58 | fastq "^1.6.0"
59 |
60 | "@polka/url@^0.5.0":
61 | version "0.5.0"
62 | resolved "https://registry.yarnpkg.com/@polka/url/-/url-0.5.0.tgz#b21510597fd601e5d7c95008b76bf0d254ebfd31"
63 | integrity sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==
64 |
65 | "@rollup/plugin-commonjs@^11.0.0":
66 | version "11.1.0"
67 | resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz#60636c7a722f54b41e419e1709df05c7234557ef"
68 | integrity sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==
69 | dependencies:
70 | "@rollup/pluginutils" "^3.0.8"
71 | commondir "^1.0.1"
72 | estree-walker "^1.0.1"
73 | glob "^7.1.2"
74 | is-reference "^1.1.2"
75 | magic-string "^0.25.2"
76 | resolve "^1.11.0"
77 |
78 | "@rollup/plugin-node-resolve@^7.0.0":
79 | version "7.1.3"
80 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca"
81 | integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==
82 | dependencies:
83 | "@rollup/pluginutils" "^3.0.8"
84 | "@types/resolve" "0.0.8"
85 | builtin-modules "^3.1.0"
86 | is-module "^1.0.0"
87 | resolve "^1.14.2"
88 |
89 | "@rollup/pluginutils@^3.0.8":
90 | version "3.1.0"
91 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
92 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
93 | dependencies:
94 | "@types/estree" "0.0.39"
95 | estree-walker "^1.0.1"
96 | picomatch "^2.2.2"
97 |
98 | "@types/color-name@^1.1.1":
99 | version "1.1.1"
100 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
101 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
102 |
103 | "@types/estree@*":
104 | version "0.0.45"
105 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884"
106 | integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
107 |
108 | "@types/estree@0.0.39":
109 | version "0.0.39"
110 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
111 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
112 |
113 | "@types/node@*":
114 | version "14.11.2"
115 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256"
116 | integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA==
117 |
118 | "@types/resolve@0.0.8":
119 | version "0.0.8"
120 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
121 | integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==
122 | dependencies:
123 | "@types/node" "*"
124 |
125 | acorn-jsx@^5.2.0:
126 | version "5.3.1"
127 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
128 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
129 |
130 | acorn-node@^1.6.1:
131 | version "1.8.2"
132 | resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
133 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
134 | dependencies:
135 | acorn "^7.0.0"
136 | acorn-walk "^7.0.0"
137 | xtend "^4.0.2"
138 |
139 | acorn-walk@^7.0.0:
140 | version "7.2.0"
141 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
142 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
143 |
144 | acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1:
145 | version "7.4.0"
146 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
147 | integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==
148 |
149 | ajv@^6.10.0, ajv@^6.10.2:
150 | version "6.12.5"
151 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da"
152 | integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==
153 | dependencies:
154 | fast-deep-equal "^3.1.1"
155 | fast-json-stable-stringify "^2.0.0"
156 | json-schema-traverse "^0.4.1"
157 | uri-js "^4.2.2"
158 |
159 | ansi-escapes@^4.2.1:
160 | version "4.3.1"
161 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
162 | integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
163 | dependencies:
164 | type-fest "^0.11.0"
165 |
166 | ansi-regex@^4.1.0:
167 | version "4.1.0"
168 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
169 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
170 |
171 | ansi-regex@^5.0.0:
172 | version "5.0.0"
173 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
174 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
175 |
176 | ansi-styles@^3.2.0, ansi-styles@^3.2.1:
177 | version "3.2.1"
178 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
179 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
180 | dependencies:
181 | color-convert "^1.9.0"
182 |
183 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
184 | version "4.2.1"
185 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
186 | integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
187 | dependencies:
188 | "@types/color-name" "^1.1.1"
189 | color-convert "^2.0.1"
190 |
191 | anymatch@~3.1.1:
192 | version "3.1.1"
193 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
194 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
195 | dependencies:
196 | normalize-path "^3.0.0"
197 | picomatch "^2.0.4"
198 |
199 | argparse@^1.0.7:
200 | version "1.0.10"
201 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
202 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
203 | dependencies:
204 | sprintf-js "~1.0.2"
205 |
206 | array-union@^2.1.0:
207 | version "2.1.0"
208 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
209 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
210 |
211 | astral-regex@^1.0.0:
212 | version "1.0.0"
213 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
214 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
215 |
216 | async-limiter@~1.0.0:
217 | version "1.0.1"
218 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
219 | integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
220 |
221 | at-least-node@^1.0.0:
222 | version "1.0.0"
223 | resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
224 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
225 |
226 | autoprefixer@^9.4.5:
227 | version "9.8.6"
228 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
229 | integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
230 | dependencies:
231 | browserslist "^4.12.0"
232 | caniuse-lite "^1.0.30001109"
233 | colorette "^1.2.1"
234 | normalize-range "^0.1.2"
235 | num2fraction "^1.2.2"
236 | postcss "^7.0.32"
237 | postcss-value-parser "^4.1.0"
238 |
239 | balanced-match@^1.0.0:
240 | version "1.0.0"
241 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
242 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
243 |
244 | binary-extensions@^2.0.0:
245 | version "2.1.0"
246 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9"
247 | integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
248 |
249 | brace-expansion@^1.1.7:
250 | version "1.1.11"
251 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
252 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
253 | dependencies:
254 | balanced-match "^1.0.0"
255 | concat-map "0.0.1"
256 |
257 | braces@^3.0.1, braces@~3.0.2:
258 | version "3.0.2"
259 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
260 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
261 | dependencies:
262 | fill-range "^7.0.1"
263 |
264 | browserslist@^4.12.0:
265 | version "4.14.5"
266 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015"
267 | integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==
268 | dependencies:
269 | caniuse-lite "^1.0.30001135"
270 | electron-to-chromium "^1.3.571"
271 | escalade "^3.1.0"
272 | node-releases "^1.1.61"
273 |
274 | buffer-from@^1.0.0:
275 | version "1.1.1"
276 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
277 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
278 |
279 | builtin-modules@^3.1.0:
280 | version "3.1.0"
281 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
282 | integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==
283 |
284 | bytes@^3.0.0:
285 | version "3.1.0"
286 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
287 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
288 |
289 | caller-callsite@^2.0.0:
290 | version "2.0.0"
291 | resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
292 | integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
293 | dependencies:
294 | callsites "^2.0.0"
295 |
296 | caller-path@^2.0.0:
297 | version "2.0.0"
298 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
299 | integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
300 | dependencies:
301 | caller-callsite "^2.0.0"
302 |
303 | callsites@^2.0.0:
304 | version "2.0.0"
305 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
306 | integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
307 |
308 | callsites@^3.0.0:
309 | version "3.1.0"
310 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
311 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
312 |
313 | camelcase-css@^2.0.1:
314 | version "2.0.1"
315 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
316 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
317 |
318 | camelcase@^5.0.0:
319 | version "5.3.1"
320 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
321 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
322 |
323 | caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001135:
324 | version "1.0.30001137"
325 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001137.tgz#6f0127b1d3788742561a25af3607a17fc778b803"
326 | integrity sha512-54xKQZTqZrKVHmVz0+UvdZR6kQc7pJDgfhsMYDG19ID1BWoNnDMFm5Q3uSBSU401pBvKYMsHAt9qhEDcxmk8aw==
327 |
328 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
329 | version "2.4.2"
330 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
331 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
332 | dependencies:
333 | ansi-styles "^3.2.1"
334 | escape-string-regexp "^1.0.5"
335 | supports-color "^5.3.0"
336 |
337 | "chalk@^3.0.0 || ^4.0.0", chalk@^4.0.0, chalk@^4.1.0:
338 | version "4.1.0"
339 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
340 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
341 | dependencies:
342 | ansi-styles "^4.1.0"
343 | supports-color "^7.1.0"
344 |
345 | chardet@^0.7.0:
346 | version "0.7.0"
347 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
348 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
349 |
350 | chokidar@^3.3.0:
351 | version "3.4.2"
352 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
353 | integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
354 | dependencies:
355 | anymatch "~3.1.1"
356 | braces "~3.0.2"
357 | glob-parent "~5.1.0"
358 | is-binary-path "~2.1.0"
359 | is-glob "~4.0.1"
360 | normalize-path "~3.0.0"
361 | readdirp "~3.4.0"
362 | optionalDependencies:
363 | fsevents "~2.1.2"
364 |
365 | cli-cursor@^3.1.0:
366 | version "3.1.0"
367 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
368 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
369 | dependencies:
370 | restore-cursor "^3.1.0"
371 |
372 | cli-width@^3.0.0:
373 | version "3.0.0"
374 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
375 | integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
376 |
377 | cliui@^6.0.0:
378 | version "6.0.0"
379 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
380 | integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
381 | dependencies:
382 | string-width "^4.2.0"
383 | strip-ansi "^6.0.0"
384 | wrap-ansi "^6.2.0"
385 |
386 | color-convert@^1.9.0, color-convert@^1.9.1:
387 | version "1.9.3"
388 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
389 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
390 | dependencies:
391 | color-name "1.1.3"
392 |
393 | color-convert@^2.0.1:
394 | version "2.0.1"
395 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
396 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
397 | dependencies:
398 | color-name "~1.1.4"
399 |
400 | color-name@1.1.3:
401 | version "1.1.3"
402 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
403 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
404 |
405 | color-name@^1.0.0, color-name@~1.1.4:
406 | version "1.1.4"
407 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
408 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
409 |
410 | color-string@^1.5.2:
411 | version "1.5.3"
412 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
413 | integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
414 | dependencies:
415 | color-name "^1.0.0"
416 | simple-swizzle "^0.2.2"
417 |
418 | color@^3.1.2:
419 | version "3.1.2"
420 | resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
421 | integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
422 | dependencies:
423 | color-convert "^1.9.1"
424 | color-string "^1.5.2"
425 |
426 | colorette@^1.2.1:
427 | version "1.2.1"
428 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
429 | integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
430 |
431 | commander@^2.20.0:
432 | version "2.20.3"
433 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
434 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
435 |
436 | commander@^5.0.0:
437 | version "5.1.0"
438 | resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
439 | integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
440 |
441 | commondir@^1.0.1:
442 | version "1.0.1"
443 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
444 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
445 |
446 | concat-map@0.0.1:
447 | version "0.0.1"
448 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
449 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
450 |
451 | console-clear@^1.1.0:
452 | version "1.1.1"
453 | resolved "https://registry.yarnpkg.com/console-clear/-/console-clear-1.1.1.tgz#995e20cbfbf14dd792b672cde387bd128d674bf7"
454 | integrity sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==
455 |
456 | cosmiconfig@^5.0.0:
457 | version "5.2.1"
458 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
459 | integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
460 | dependencies:
461 | import-fresh "^2.0.0"
462 | is-directory "^0.3.1"
463 | js-yaml "^3.13.1"
464 | parse-json "^4.0.0"
465 |
466 | cross-spawn@^6.0.5:
467 | version "6.0.5"
468 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
469 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
470 | dependencies:
471 | nice-try "^1.0.4"
472 | path-key "^2.0.1"
473 | semver "^5.5.0"
474 | shebang-command "^1.2.0"
475 | which "^1.2.9"
476 |
477 | css-unit-converter@^1.1.1:
478 | version "1.1.2"
479 | resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
480 | integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==
481 |
482 | cssesc@^3.0.0:
483 | version "3.0.0"
484 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
485 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
486 |
487 | debug@^4.0.1:
488 | version "4.2.0"
489 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
490 | integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
491 | dependencies:
492 | ms "2.1.2"
493 |
494 | decamelize@^1.2.0:
495 | version "1.2.0"
496 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
497 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
498 |
499 | deep-is@~0.1.3:
500 | version "0.1.3"
501 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
502 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
503 |
504 | define-properties@^1.1.3:
505 | version "1.1.3"
506 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
507 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
508 | dependencies:
509 | object-keys "^1.0.12"
510 |
511 | defined@^1.0.0:
512 | version "1.0.0"
513 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
514 | integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
515 |
516 | dependency-graph@^0.9.0:
517 | version "0.9.0"
518 | resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318"
519 | integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==
520 |
521 | detective@^5.2.0:
522 | version "5.2.0"
523 | resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
524 | integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
525 | dependencies:
526 | acorn-node "^1.6.1"
527 | defined "^1.0.0"
528 | minimist "^1.1.1"
529 |
530 | dir-glob@^3.0.1:
531 | version "3.0.1"
532 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
533 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
534 | dependencies:
535 | path-type "^4.0.0"
536 |
537 | doctrine@^3.0.0:
538 | version "3.0.0"
539 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
540 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
541 | dependencies:
542 | esutils "^2.0.2"
543 |
544 | electron-to-chromium@^1.3.571:
545 | version "1.3.573"
546 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.573.tgz#6a21e13ee894eb441677333d5fe9fa3a449689a1"
547 | integrity sha512-oypaNmexr8w0m2GX67fGLQ0Xgsd7uXz7GcwaHZ9eW3ZdQ8uA2+V/wXmLdMTk3gcacbqQGAN7CXWG3fOkfKYftw==
548 |
549 | emoji-regex@^7.0.1:
550 | version "7.0.3"
551 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
552 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
553 |
554 | emoji-regex@^8.0.0:
555 | version "8.0.0"
556 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
557 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
558 |
559 | error-ex@^1.3.1:
560 | version "1.3.2"
561 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
562 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
563 | dependencies:
564 | is-arrayish "^0.2.1"
565 |
566 | es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
567 | version "1.17.6"
568 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
569 | integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==
570 | dependencies:
571 | es-to-primitive "^1.2.1"
572 | function-bind "^1.1.1"
573 | has "^1.0.3"
574 | has-symbols "^1.0.1"
575 | is-callable "^1.2.0"
576 | is-regex "^1.1.0"
577 | object-inspect "^1.7.0"
578 | object-keys "^1.1.1"
579 | object.assign "^4.1.0"
580 | string.prototype.trimend "^1.0.1"
581 | string.prototype.trimstart "^1.0.1"
582 |
583 | es-abstract@^1.18.0-next.0:
584 | version "1.18.0-next.0"
585 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc"
586 | integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==
587 | dependencies:
588 | es-to-primitive "^1.2.1"
589 | function-bind "^1.1.1"
590 | has "^1.0.3"
591 | has-symbols "^1.0.1"
592 | is-callable "^1.2.0"
593 | is-negative-zero "^2.0.0"
594 | is-regex "^1.1.1"
595 | object-inspect "^1.8.0"
596 | object-keys "^1.1.1"
597 | object.assign "^4.1.0"
598 | string.prototype.trimend "^1.0.1"
599 | string.prototype.trimstart "^1.0.1"
600 |
601 | es-to-primitive@^1.2.1:
602 | version "1.2.1"
603 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
604 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
605 | dependencies:
606 | is-callable "^1.1.4"
607 | is-date-object "^1.0.1"
608 | is-symbol "^1.0.2"
609 |
610 | escalade@^3.1.0:
611 | version "3.1.0"
612 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e"
613 | integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==
614 |
615 | escape-string-regexp@^1.0.5:
616 | version "1.0.5"
617 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
618 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
619 |
620 | eslint-plugin-svelte3@^2.7.3:
621 | version "2.7.3"
622 | resolved "https://registry.yarnpkg.com/eslint-plugin-svelte3/-/eslint-plugin-svelte3-2.7.3.tgz#e793b646b848e717674fe668c21b909cfa025eb3"
623 | integrity sha512-p6HhxyICX9x/x+8WSy6AVk2bmv9ayoznoTSyCvK47th/k/07ksuJixMwbGX9qxJVAmPBaYMjEIMSEZtJHPIN7w==
624 |
625 | eslint-scope@^5.0.0:
626 | version "5.1.1"
627 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
628 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
629 | dependencies:
630 | esrecurse "^4.3.0"
631 | estraverse "^4.1.1"
632 |
633 | eslint-utils@^1.4.3:
634 | version "1.4.3"
635 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
636 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
637 | dependencies:
638 | eslint-visitor-keys "^1.1.0"
639 |
640 | eslint-visitor-keys@^1.1.0:
641 | version "1.3.0"
642 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
643 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
644 |
645 | eslint@^6.8.0:
646 | version "6.8.0"
647 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
648 | integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
649 | dependencies:
650 | "@babel/code-frame" "^7.0.0"
651 | ajv "^6.10.0"
652 | chalk "^2.1.0"
653 | cross-spawn "^6.0.5"
654 | debug "^4.0.1"
655 | doctrine "^3.0.0"
656 | eslint-scope "^5.0.0"
657 | eslint-utils "^1.4.3"
658 | eslint-visitor-keys "^1.1.0"
659 | espree "^6.1.2"
660 | esquery "^1.0.1"
661 | esutils "^2.0.2"
662 | file-entry-cache "^5.0.1"
663 | functional-red-black-tree "^1.0.1"
664 | glob-parent "^5.0.0"
665 | globals "^12.1.0"
666 | ignore "^4.0.6"
667 | import-fresh "^3.0.0"
668 | imurmurhash "^0.1.4"
669 | inquirer "^7.0.0"
670 | is-glob "^4.0.0"
671 | js-yaml "^3.13.1"
672 | json-stable-stringify-without-jsonify "^1.0.1"
673 | levn "^0.3.0"
674 | lodash "^4.17.14"
675 | minimatch "^3.0.4"
676 | mkdirp "^0.5.1"
677 | natural-compare "^1.4.0"
678 | optionator "^0.8.3"
679 | progress "^2.0.0"
680 | regexpp "^2.0.1"
681 | semver "^6.1.2"
682 | strip-ansi "^5.2.0"
683 | strip-json-comments "^3.0.1"
684 | table "^5.2.3"
685 | text-table "^0.2.0"
686 | v8-compile-cache "^2.0.3"
687 |
688 | espree@^6.1.2:
689 | version "6.2.1"
690 | resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
691 | integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
692 | dependencies:
693 | acorn "^7.1.1"
694 | acorn-jsx "^5.2.0"
695 | eslint-visitor-keys "^1.1.0"
696 |
697 | esprima@^4.0.0:
698 | version "4.0.1"
699 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
700 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
701 |
702 | esquery@^1.0.1:
703 | version "1.3.1"
704 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
705 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
706 | dependencies:
707 | estraverse "^5.1.0"
708 |
709 | esrecurse@^4.3.0:
710 | version "4.3.0"
711 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
712 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
713 | dependencies:
714 | estraverse "^5.2.0"
715 |
716 | estraverse@^4.1.1:
717 | version "4.3.0"
718 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
719 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
720 |
721 | estraverse@^5.1.0, estraverse@^5.2.0:
722 | version "5.2.0"
723 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
724 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
725 |
726 | estree-walker@^0.6.1:
727 | version "0.6.1"
728 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
729 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
730 |
731 | estree-walker@^1.0.1:
732 | version "1.0.1"
733 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
734 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
735 |
736 | esutils@^2.0.2:
737 | version "2.0.3"
738 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
739 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
740 |
741 | external-editor@^3.0.3:
742 | version "3.1.0"
743 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
744 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
745 | dependencies:
746 | chardet "^0.7.0"
747 | iconv-lite "^0.4.24"
748 | tmp "^0.0.33"
749 |
750 | fake-xml-http-request@^2.1.1:
751 | version "2.1.1"
752 | resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-2.1.1.tgz#279fdac235840d7a4dff77d98ec44bce9fc690a6"
753 | integrity sha512-Kn2WYYS6cDBS5jq/voOfSGCA0TafOYAUPbEp8mUVpD/DVV5bQIDjlq+MLLvNUokkbTpjBVlLDaM5PnX+PwZMlw==
754 |
755 | fast-deep-equal@^3.1.1:
756 | version "3.1.3"
757 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
758 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
759 |
760 | fast-glob@^3.1.1:
761 | version "3.2.4"
762 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3"
763 | integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==
764 | dependencies:
765 | "@nodelib/fs.stat" "^2.0.2"
766 | "@nodelib/fs.walk" "^1.2.3"
767 | glob-parent "^5.1.0"
768 | merge2 "^1.3.0"
769 | micromatch "^4.0.2"
770 | picomatch "^2.2.1"
771 |
772 | fast-json-stable-stringify@^2.0.0:
773 | version "2.1.0"
774 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
775 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
776 |
777 | fast-levenshtein@~2.0.6:
778 | version "2.0.6"
779 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
780 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
781 |
782 | fastq@^1.6.0:
783 | version "1.8.0"
784 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481"
785 | integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==
786 | dependencies:
787 | reusify "^1.0.4"
788 |
789 | figures@^3.0.0:
790 | version "3.2.0"
791 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
792 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
793 | dependencies:
794 | escape-string-regexp "^1.0.5"
795 |
796 | file-entry-cache@^5.0.1:
797 | version "5.0.1"
798 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
799 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
800 | dependencies:
801 | flat-cache "^2.0.1"
802 |
803 | fill-range@^7.0.1:
804 | version "7.0.1"
805 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
806 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
807 | dependencies:
808 | to-regex-range "^5.0.1"
809 |
810 | find-up@^4.1.0:
811 | version "4.1.0"
812 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
813 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
814 | dependencies:
815 | locate-path "^5.0.0"
816 | path-exists "^4.0.0"
817 |
818 | flat-cache@^2.0.1:
819 | version "2.0.1"
820 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
821 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
822 | dependencies:
823 | flatted "^2.0.0"
824 | rimraf "2.6.3"
825 | write "1.0.3"
826 |
827 | flatted@^2.0.0:
828 | version "2.0.2"
829 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
830 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
831 |
832 | fs-extra@^8.0.0:
833 | version "8.1.0"
834 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
835 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
836 | dependencies:
837 | graceful-fs "^4.2.0"
838 | jsonfile "^4.0.0"
839 | universalify "^0.1.0"
840 |
841 | fs-extra@^9.0.0:
842 | version "9.0.1"
843 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
844 | integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==
845 | dependencies:
846 | at-least-node "^1.0.0"
847 | graceful-fs "^4.2.0"
848 | jsonfile "^6.0.1"
849 | universalify "^1.0.0"
850 |
851 | fs.realpath@^1.0.0:
852 | version "1.0.0"
853 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
854 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
855 |
856 | fsevents@~2.1.2:
857 | version "2.1.3"
858 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
859 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
860 |
861 | function-bind@^1.1.1:
862 | version "1.1.1"
863 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
864 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
865 |
866 | functional-red-black-tree@^1.0.1:
867 | version "1.0.1"
868 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
869 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
870 |
871 | get-caller-file@^2.0.1:
872 | version "2.0.5"
873 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
874 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
875 |
876 | get-port@^3.2.0:
877 | version "3.2.0"
878 | resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc"
879 | integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=
880 |
881 | get-stdin@^8.0.0:
882 | version "8.0.0"
883 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
884 | integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
885 |
886 | glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
887 | version "5.1.1"
888 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
889 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
890 | dependencies:
891 | is-glob "^4.0.1"
892 |
893 | glob@^7.0.0, glob@^7.1.2, glob@^7.1.3:
894 | version "7.1.6"
895 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
896 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
897 | dependencies:
898 | fs.realpath "^1.0.0"
899 | inflight "^1.0.4"
900 | inherits "2"
901 | minimatch "^3.0.4"
902 | once "^1.3.0"
903 | path-is-absolute "^1.0.0"
904 |
905 | globals@^12.1.0:
906 | version "12.4.0"
907 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
908 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
909 | dependencies:
910 | type-fest "^0.8.1"
911 |
912 | globby@^11.0.0:
913 | version "11.0.1"
914 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
915 | integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
916 | dependencies:
917 | array-union "^2.1.0"
918 | dir-glob "^3.0.1"
919 | fast-glob "^3.1.1"
920 | ignore "^5.1.4"
921 | merge2 "^1.3.0"
922 | slash "^3.0.0"
923 |
924 | graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
925 | version "4.2.4"
926 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
927 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
928 |
929 | has-flag@^3.0.0:
930 | version "3.0.0"
931 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
932 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
933 |
934 | has-flag@^4.0.0:
935 | version "4.0.0"
936 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
937 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
938 |
939 | has-symbols@^1.0.1:
940 | version "1.0.1"
941 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
942 | integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
943 |
944 | has@^1.0.3:
945 | version "1.0.3"
946 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
947 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
948 | dependencies:
949 | function-bind "^1.1.1"
950 |
951 | hosted-git-info@^2.1.4:
952 | version "2.8.8"
953 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
954 | integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
955 |
956 | html-tags@^3.1.0:
957 | version "3.1.0"
958 | resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
959 | integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
960 |
961 | iconv-lite@^0.4.24:
962 | version "0.4.24"
963 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
964 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
965 | dependencies:
966 | safer-buffer ">= 2.1.2 < 3"
967 |
968 | ignore@^4.0.6:
969 | version "4.0.6"
970 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
971 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
972 |
973 | ignore@^5.1.4:
974 | version "5.1.8"
975 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
976 | integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
977 |
978 | import-cwd@^2.0.0:
979 | version "2.1.0"
980 | resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
981 | integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
982 | dependencies:
983 | import-from "^2.1.0"
984 |
985 | import-fresh@^2.0.0:
986 | version "2.0.0"
987 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
988 | integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
989 | dependencies:
990 | caller-path "^2.0.0"
991 | resolve-from "^3.0.0"
992 |
993 | import-fresh@^3.0.0:
994 | version "3.2.1"
995 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
996 | integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
997 | dependencies:
998 | parent-module "^1.0.0"
999 | resolve-from "^4.0.0"
1000 |
1001 | import-from@^2.1.0:
1002 | version "2.1.0"
1003 | resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
1004 | integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
1005 | dependencies:
1006 | resolve-from "^3.0.0"
1007 |
1008 | imurmurhash@^0.1.4:
1009 | version "0.1.4"
1010 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1011 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
1012 |
1013 | indexes-of@^1.0.1:
1014 | version "1.0.1"
1015 | resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
1016 | integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
1017 |
1018 | inflected@^2.0.4:
1019 | version "2.1.0"
1020 | resolved "https://registry.yarnpkg.com/inflected/-/inflected-2.1.0.tgz#2816ac17a570bbbc8303ca05bca8bf9b3f959687"
1021 | integrity sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==
1022 |
1023 | inflight@^1.0.4:
1024 | version "1.0.6"
1025 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1026 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1027 | dependencies:
1028 | once "^1.3.0"
1029 | wrappy "1"
1030 |
1031 | inherits@2:
1032 | version "2.0.4"
1033 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1034 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1035 |
1036 | inquirer@^7.0.0:
1037 | version "7.3.3"
1038 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
1039 | integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
1040 | dependencies:
1041 | ansi-escapes "^4.2.1"
1042 | chalk "^4.1.0"
1043 | cli-cursor "^3.1.0"
1044 | cli-width "^3.0.0"
1045 | external-editor "^3.0.3"
1046 | figures "^3.0.0"
1047 | lodash "^4.17.19"
1048 | mute-stream "0.0.8"
1049 | run-async "^2.4.0"
1050 | rxjs "^6.6.0"
1051 | string-width "^4.1.0"
1052 | strip-ansi "^6.0.0"
1053 | through "^2.3.6"
1054 |
1055 | is-arrayish@^0.2.1:
1056 | version "0.2.1"
1057 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1058 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
1059 |
1060 | is-arrayish@^0.3.1:
1061 | version "0.3.2"
1062 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
1063 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
1064 |
1065 | is-binary-path@~2.1.0:
1066 | version "2.1.0"
1067 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
1068 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
1069 | dependencies:
1070 | binary-extensions "^2.0.0"
1071 |
1072 | is-callable@^1.1.4, is-callable@^1.2.0:
1073 | version "1.2.2"
1074 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
1075 | integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
1076 |
1077 | is-date-object@^1.0.1:
1078 | version "1.0.2"
1079 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
1080 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
1081 |
1082 | is-directory@^0.3.1:
1083 | version "0.3.1"
1084 | resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
1085 | integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
1086 |
1087 | is-extglob@^2.1.1:
1088 | version "2.1.1"
1089 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1090 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
1091 |
1092 | is-fullwidth-code-point@^2.0.0:
1093 | version "2.0.0"
1094 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
1095 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
1096 |
1097 | is-fullwidth-code-point@^3.0.0:
1098 | version "3.0.0"
1099 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1100 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1101 |
1102 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
1103 | version "4.0.1"
1104 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
1105 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
1106 | dependencies:
1107 | is-extglob "^2.1.1"
1108 |
1109 | is-module@^1.0.0:
1110 | version "1.0.0"
1111 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
1112 | integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
1113 |
1114 | is-negative-zero@^2.0.0:
1115 | version "2.0.0"
1116 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
1117 | integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
1118 |
1119 | is-number@^7.0.0:
1120 | version "7.0.0"
1121 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1122 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1123 |
1124 | is-reference@^1.1.2:
1125 | version "1.2.1"
1126 | resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
1127 | integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
1128 | dependencies:
1129 | "@types/estree" "*"
1130 |
1131 | is-regex@^1.1.0, is-regex@^1.1.1:
1132 | version "1.1.1"
1133 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
1134 | integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
1135 | dependencies:
1136 | has-symbols "^1.0.1"
1137 |
1138 | is-symbol@^1.0.2:
1139 | version "1.0.3"
1140 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
1141 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
1142 | dependencies:
1143 | has-symbols "^1.0.1"
1144 |
1145 | isexe@^2.0.0:
1146 | version "2.0.0"
1147 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1148 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1149 |
1150 | jest-worker@^24.9.0:
1151 | version "24.9.0"
1152 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
1153 | integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
1154 | dependencies:
1155 | merge-stream "^2.0.0"
1156 | supports-color "^6.1.0"
1157 |
1158 | js-tokens@^4.0.0:
1159 | version "4.0.0"
1160 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1161 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1162 |
1163 | js-yaml@^3.13.1:
1164 | version "3.14.0"
1165 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
1166 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
1167 | dependencies:
1168 | argparse "^1.0.7"
1169 | esprima "^4.0.0"
1170 |
1171 | json-parse-better-errors@^1.0.1:
1172 | version "1.0.2"
1173 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
1174 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
1175 |
1176 | json-schema-traverse@^0.4.1:
1177 | version "0.4.1"
1178 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1179 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1180 |
1181 | json-stable-stringify-without-jsonify@^1.0.1:
1182 | version "1.0.1"
1183 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1184 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
1185 |
1186 | jsonfile@^4.0.0:
1187 | version "4.0.0"
1188 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
1189 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
1190 | optionalDependencies:
1191 | graceful-fs "^4.1.6"
1192 |
1193 | jsonfile@^6.0.1:
1194 | version "6.0.1"
1195 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179"
1196 | integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==
1197 | dependencies:
1198 | universalify "^1.0.0"
1199 | optionalDependencies:
1200 | graceful-fs "^4.1.6"
1201 |
1202 | kleur@^3.0.0:
1203 | version "3.0.3"
1204 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
1205 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
1206 |
1207 | levn@^0.3.0, levn@~0.3.0:
1208 | version "0.3.0"
1209 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
1210 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
1211 | dependencies:
1212 | prelude-ls "~1.1.2"
1213 | type-check "~0.3.2"
1214 |
1215 | livereload-js@^3.1.0:
1216 | version "3.3.1"
1217 | resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.3.1.tgz#61f887468086762e61fb2987412cf9d1dda99202"
1218 | integrity sha512-CBu1gTEfzVhlOK1WASKAAJ9Qx1fHECTq0SUB67sfxwQssopTyvzqTlgl+c0h9pZ6V+Fzd2rc510ppuNusg9teQ==
1219 |
1220 | livereload@^0.9.1:
1221 | version "0.9.1"
1222 | resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.9.1.tgz#65125dabdf2db4fd3f1169e953fe56e3bcc6f477"
1223 | integrity sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==
1224 | dependencies:
1225 | chokidar "^3.3.0"
1226 | livereload-js "^3.1.0"
1227 | opts ">= 1.2.0"
1228 | ws "^6.2.1"
1229 |
1230 | load-json-file@^4.0.0:
1231 | version "4.0.0"
1232 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
1233 | integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
1234 | dependencies:
1235 | graceful-fs "^4.1.2"
1236 | parse-json "^4.0.0"
1237 | pify "^3.0.0"
1238 | strip-bom "^3.0.0"
1239 |
1240 | local-access@^1.0.1:
1241 | version "1.0.1"
1242 | resolved "https://registry.yarnpkg.com/local-access/-/local-access-1.0.1.tgz#5121258146d64e869046c642ea4f1dd39ff942bb"
1243 | integrity sha512-ykt2pgN0aqIy6KQC1CqdWTWkmUwNgaOS6dcpHVjyBJONA+Xi7AtSB1vuxC/U/0tjIP3wcRudwQk1YYzUvzk2bA==
1244 |
1245 | locate-path@^5.0.0:
1246 | version "5.0.0"
1247 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
1248 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
1249 | dependencies:
1250 | p-locate "^4.1.0"
1251 |
1252 | lodash.assign@^4.2.0:
1253 | version "4.2.0"
1254 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
1255 | integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
1256 |
1257 | lodash.camelcase@^4.3.0:
1258 | version "4.3.0"
1259 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
1260 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
1261 |
1262 | lodash.clonedeep@^4.5.0:
1263 | version "4.5.0"
1264 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
1265 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
1266 |
1267 | lodash.compact@^3.0.1:
1268 | version "3.0.1"
1269 | resolved "https://registry.yarnpkg.com/lodash.compact/-/lodash.compact-3.0.1.tgz#540ce3837745975807471e16b4a2ba21e7256ca5"
1270 | integrity sha1-VAzjg3dFl1gHRx4WtKK6IeclbKU=
1271 |
1272 | lodash.find@^4.6.0:
1273 | version "4.6.0"
1274 | resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
1275 | integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=
1276 |
1277 | lodash.flatten@^4.4.0:
1278 | version "4.4.0"
1279 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
1280 | integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
1281 |
1282 | lodash.forin@^4.4.0:
1283 | version "4.4.0"
1284 | resolved "https://registry.yarnpkg.com/lodash.forin/-/lodash.forin-4.4.0.tgz#5d3f20ae564011fbe88381f7d98949c9c9519731"
1285 | integrity sha1-XT8grlZAEfvog4H32YlJyclRlzE=
1286 |
1287 | lodash.get@^4.4.2:
1288 | version "4.4.2"
1289 | resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
1290 | integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
1291 |
1292 | lodash.has@^4.5.2:
1293 | version "4.5.2"
1294 | resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"
1295 | integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=
1296 |
1297 | lodash.invokemap@^4.6.0:
1298 | version "4.6.0"
1299 | resolved "https://registry.yarnpkg.com/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz#1748cda5d8b0ef8369c4eb3ec54c21feba1f2d62"
1300 | integrity sha1-F0jNpdiw74NpxOs+xUwh/rofLWI=
1301 |
1302 | lodash.isempty@^4.4.0:
1303 | version "4.4.0"
1304 | resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
1305 | integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=
1306 |
1307 | lodash.isequal@^4.5.0:
1308 | version "4.5.0"
1309 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
1310 | integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
1311 |
1312 | lodash.isfunction@^3.0.9:
1313 | version "3.0.9"
1314 | resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051"
1315 | integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==
1316 |
1317 | lodash.isinteger@^4.0.4:
1318 | version "4.0.4"
1319 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
1320 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
1321 |
1322 | lodash.isplainobject@^4.0.6:
1323 | version "4.0.6"
1324 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
1325 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
1326 |
1327 | lodash.lowerfirst@^4.3.1:
1328 | version "4.3.1"
1329 | resolved "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz#de3c7b12e02c6524a0059c2f6cb7c5c52655a13d"
1330 | integrity sha1-3jx7EuAsZSSgBZwvbLfFxSZVoT0=
1331 |
1332 | lodash.map@^4.6.0:
1333 | version "4.6.0"
1334 | resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
1335 | integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=
1336 |
1337 | lodash.mapvalues@^4.6.0:
1338 | version "4.6.0"
1339 | resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
1340 | integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=
1341 |
1342 | lodash.pick@^4.4.0:
1343 | version "4.4.0"
1344 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
1345 | integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
1346 |
1347 | lodash.snakecase@^4.1.1:
1348 | version "4.1.1"
1349 | resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
1350 | integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=
1351 |
1352 | lodash.toarray@^4.4.0:
1353 | version "4.4.0"
1354 | resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
1355 | integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE=
1356 |
1357 | lodash.uniq@^4.5.0:
1358 | version "4.5.0"
1359 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
1360 | integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
1361 |
1362 | lodash.uniqby@^4.7.0:
1363 | version "4.7.0"
1364 | resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302"
1365 | integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=
1366 |
1367 | lodash.values@^4.3.0:
1368 | version "4.3.0"
1369 | resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347"
1370 | integrity sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=
1371 |
1372 | lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20:
1373 | version "4.17.20"
1374 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
1375 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
1376 |
1377 | log-symbols@^2.2.0:
1378 | version "2.2.0"
1379 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
1380 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
1381 | dependencies:
1382 | chalk "^2.0.1"
1383 |
1384 | magic-string@^0.25.2:
1385 | version "0.25.7"
1386 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
1387 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
1388 | dependencies:
1389 | sourcemap-codec "^1.4.4"
1390 |
1391 | memorystream@^0.3.1:
1392 | version "0.3.1"
1393 | resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
1394 | integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
1395 |
1396 | merge-stream@^2.0.0:
1397 | version "2.0.0"
1398 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1399 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1400 |
1401 | merge2@^1.3.0:
1402 | version "1.4.1"
1403 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1404 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1405 |
1406 | micromatch@^4.0.2:
1407 | version "4.0.2"
1408 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
1409 | integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
1410 | dependencies:
1411 | braces "^3.0.1"
1412 | picomatch "^2.0.5"
1413 |
1414 | mime@^2.3.1:
1415 | version "2.4.6"
1416 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
1417 | integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
1418 |
1419 | mimic-fn@^2.1.0:
1420 | version "2.1.0"
1421 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1422 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1423 |
1424 | minimatch@^3.0.4:
1425 | version "3.0.4"
1426 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1427 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1428 | dependencies:
1429 | brace-expansion "^1.1.7"
1430 |
1431 | minimist@^1.1.1, minimist@^1.2.5:
1432 | version "1.2.5"
1433 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1434 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1435 |
1436 | miragejs@^0.1.37:
1437 | version "0.1.41"
1438 | resolved "https://registry.yarnpkg.com/miragejs/-/miragejs-0.1.41.tgz#1b06a2d2d9de65624f5bb1cee7ebb4a208f554d0"
1439 | integrity sha512-ur8x7sBskgey64vdzKGVCVC3hgKXWl2Cg5lZbxd6OmKrhr9LCCP/Bv7qh4wsQxIMHZnENxybFATXnrQ+rzSOWQ==
1440 | dependencies:
1441 | "@miragejs/pretender-node-polyfill" "^0.1.0"
1442 | inflected "^2.0.4"
1443 | lodash.assign "^4.2.0"
1444 | lodash.camelcase "^4.3.0"
1445 | lodash.clonedeep "^4.5.0"
1446 | lodash.compact "^3.0.1"
1447 | lodash.find "^4.6.0"
1448 | lodash.flatten "^4.4.0"
1449 | lodash.forin "^4.4.0"
1450 | lodash.get "^4.4.2"
1451 | lodash.has "^4.5.2"
1452 | lodash.invokemap "^4.6.0"
1453 | lodash.isempty "^4.4.0"
1454 | lodash.isequal "^4.5.0"
1455 | lodash.isfunction "^3.0.9"
1456 | lodash.isinteger "^4.0.4"
1457 | lodash.isplainobject "^4.0.6"
1458 | lodash.lowerfirst "^4.3.1"
1459 | lodash.map "^4.6.0"
1460 | lodash.mapvalues "^4.6.0"
1461 | lodash.pick "^4.4.0"
1462 | lodash.snakecase "^4.1.1"
1463 | lodash.uniq "^4.5.0"
1464 | lodash.uniqby "^4.7.0"
1465 | lodash.values "^4.3.0"
1466 | pretender "^3.4.3"
1467 |
1468 | mkdirp@^0.5.1:
1469 | version "0.5.5"
1470 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
1471 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
1472 | dependencies:
1473 | minimist "^1.2.5"
1474 |
1475 | mri@^1.1.0:
1476 | version "1.1.6"
1477 | resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6"
1478 | integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==
1479 |
1480 | ms@2.1.2:
1481 | version "2.1.2"
1482 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1483 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1484 |
1485 | mute-stream@0.0.8:
1486 | version "0.0.8"
1487 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
1488 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
1489 |
1490 | natural-compare@^1.4.0:
1491 | version "1.4.0"
1492 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1493 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
1494 |
1495 | nice-try@^1.0.4:
1496 | version "1.0.5"
1497 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
1498 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
1499 |
1500 | node-emoji@^1.8.1:
1501 | version "1.10.0"
1502 | resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da"
1503 | integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==
1504 | dependencies:
1505 | lodash.toarray "^4.4.0"
1506 |
1507 | node-releases@^1.1.61:
1508 | version "1.1.61"
1509 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e"
1510 | integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==
1511 |
1512 | normalize-package-data@^2.3.2:
1513 | version "2.5.0"
1514 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
1515 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
1516 | dependencies:
1517 | hosted-git-info "^2.1.4"
1518 | resolve "^1.10.0"
1519 | semver "2 || 3 || 4 || 5"
1520 | validate-npm-package-license "^3.0.1"
1521 |
1522 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1523 | version "3.0.0"
1524 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1525 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1526 |
1527 | normalize-range@^0.1.2:
1528 | version "0.1.2"
1529 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
1530 | integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
1531 |
1532 | normalize.css@^8.0.1:
1533 | version "8.0.1"
1534 | resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3"
1535 | integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==
1536 |
1537 | npm-run-all@^4.1.5:
1538 | version "4.1.5"
1539 | resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba"
1540 | integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==
1541 | dependencies:
1542 | ansi-styles "^3.2.1"
1543 | chalk "^2.4.1"
1544 | cross-spawn "^6.0.5"
1545 | memorystream "^0.3.1"
1546 | minimatch "^3.0.4"
1547 | pidtree "^0.3.0"
1548 | read-pkg "^3.0.0"
1549 | shell-quote "^1.6.1"
1550 | string.prototype.padend "^3.0.0"
1551 |
1552 | num2fraction@^1.2.2:
1553 | version "1.2.2"
1554 | resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
1555 | integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
1556 |
1557 | object-assign@^4.1.1:
1558 | version "4.1.1"
1559 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1560 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1561 |
1562 | object-hash@^2.0.3:
1563 | version "2.0.3"
1564 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.3.tgz#d12db044e03cd2ca3d77c0570d87225b02e1e6ea"
1565 | integrity sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==
1566 |
1567 | object-inspect@^1.7.0, object-inspect@^1.8.0:
1568 | version "1.8.0"
1569 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
1570 | integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
1571 |
1572 | object-keys@^1.0.12, object-keys@^1.1.1:
1573 | version "1.1.1"
1574 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1575 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1576 |
1577 | object.assign@^4.1.0:
1578 | version "4.1.1"
1579 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd"
1580 | integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==
1581 | dependencies:
1582 | define-properties "^1.1.3"
1583 | es-abstract "^1.18.0-next.0"
1584 | has-symbols "^1.0.1"
1585 | object-keys "^1.1.1"
1586 |
1587 | once@^1.3.0:
1588 | version "1.4.0"
1589 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1590 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1591 | dependencies:
1592 | wrappy "1"
1593 |
1594 | onetime@^5.1.0:
1595 | version "5.1.2"
1596 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
1597 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1598 | dependencies:
1599 | mimic-fn "^2.1.0"
1600 |
1601 | optionator@^0.8.3:
1602 | version "0.8.3"
1603 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
1604 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
1605 | dependencies:
1606 | deep-is "~0.1.3"
1607 | fast-levenshtein "~2.0.6"
1608 | levn "~0.3.0"
1609 | prelude-ls "~1.1.2"
1610 | type-check "~0.3.2"
1611 | word-wrap "~1.2.3"
1612 |
1613 | "opts@>= 1.2.0":
1614 | version "2.0.2"
1615 | resolved "https://registry.yarnpkg.com/opts/-/opts-2.0.2.tgz#a17e189fbbfee171da559edd8a42423bc5993ce1"
1616 | integrity sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==
1617 |
1618 | os-tmpdir@~1.0.2:
1619 | version "1.0.2"
1620 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1621 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
1622 |
1623 | p-limit@^2.2.0:
1624 | version "2.3.0"
1625 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
1626 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
1627 | dependencies:
1628 | p-try "^2.0.0"
1629 |
1630 | p-locate@^4.1.0:
1631 | version "4.1.0"
1632 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
1633 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
1634 | dependencies:
1635 | p-limit "^2.2.0"
1636 |
1637 | p-try@^2.0.0:
1638 | version "2.2.0"
1639 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1640 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1641 |
1642 | parent-module@^1.0.0:
1643 | version "1.0.1"
1644 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1645 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1646 | dependencies:
1647 | callsites "^3.0.0"
1648 |
1649 | parse-json@^4.0.0:
1650 | version "4.0.0"
1651 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
1652 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
1653 | dependencies:
1654 | error-ex "^1.3.1"
1655 | json-parse-better-errors "^1.0.1"
1656 |
1657 | path-exists@^4.0.0:
1658 | version "4.0.0"
1659 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1660 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1661 |
1662 | path-is-absolute@^1.0.0:
1663 | version "1.0.1"
1664 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1665 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1666 |
1667 | path-key@^2.0.1:
1668 | version "2.0.1"
1669 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
1670 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
1671 |
1672 | path-parse@^1.0.6:
1673 | version "1.0.6"
1674 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
1675 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
1676 |
1677 | path-type@^3.0.0:
1678 | version "3.0.0"
1679 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
1680 | integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
1681 | dependencies:
1682 | pify "^3.0.0"
1683 |
1684 | path-type@^4.0.0:
1685 | version "4.0.0"
1686 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
1687 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1688 |
1689 | picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2:
1690 | version "2.2.2"
1691 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
1692 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
1693 |
1694 | pidtree@^0.3.0:
1695 | version "0.3.1"
1696 | resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a"
1697 | integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==
1698 |
1699 | pify@^2.3.0:
1700 | version "2.3.0"
1701 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
1702 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
1703 |
1704 | pify@^3.0.0:
1705 | version "3.0.0"
1706 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
1707 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
1708 |
1709 | postcss-cli@^7.1.0:
1710 | version "7.1.2"
1711 | resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-7.1.2.tgz#ba8d5d918b644bd18e80ad2c698064d4c0da51cd"
1712 | integrity sha512-3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==
1713 | dependencies:
1714 | chalk "^4.0.0"
1715 | chokidar "^3.3.0"
1716 | dependency-graph "^0.9.0"
1717 | fs-extra "^9.0.0"
1718 | get-stdin "^8.0.0"
1719 | globby "^11.0.0"
1720 | postcss "^7.0.0"
1721 | postcss-load-config "^2.0.0"
1722 | postcss-reporter "^6.0.0"
1723 | pretty-hrtime "^1.0.3"
1724 | read-cache "^1.0.0"
1725 | yargs "^15.0.2"
1726 |
1727 | postcss-functions@^3.0.0:
1728 | version "3.0.0"
1729 | resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e"
1730 | integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=
1731 | dependencies:
1732 | glob "^7.1.2"
1733 | object-assign "^4.1.1"
1734 | postcss "^6.0.9"
1735 | postcss-value-parser "^3.3.0"
1736 |
1737 | postcss-js@^2.0.0:
1738 | version "2.0.3"
1739 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9"
1740 | integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==
1741 | dependencies:
1742 | camelcase-css "^2.0.1"
1743 | postcss "^7.0.18"
1744 |
1745 | postcss-load-config@^2.0.0:
1746 | version "2.1.2"
1747 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a"
1748 | integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==
1749 | dependencies:
1750 | cosmiconfig "^5.0.0"
1751 | import-cwd "^2.0.0"
1752 |
1753 | postcss-nested@^4.1.1:
1754 | version "4.2.3"
1755 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz#c6f255b0a720549776d220d00c4b70cd244136f6"
1756 | integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==
1757 | dependencies:
1758 | postcss "^7.0.32"
1759 | postcss-selector-parser "^6.0.2"
1760 |
1761 | postcss-reporter@^6.0.0:
1762 | version "6.0.1"
1763 | resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f"
1764 | integrity sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==
1765 | dependencies:
1766 | chalk "^2.4.1"
1767 | lodash "^4.17.11"
1768 | log-symbols "^2.2.0"
1769 | postcss "^7.0.7"
1770 |
1771 | postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
1772 | version "6.0.4"
1773 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
1774 | integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
1775 | dependencies:
1776 | cssesc "^3.0.0"
1777 | indexes-of "^1.0.1"
1778 | uniq "^1.0.1"
1779 | util-deprecate "^1.0.2"
1780 |
1781 | postcss-value-parser@^3.3.0:
1782 | version "3.3.1"
1783 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
1784 | integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
1785 |
1786 | postcss-value-parser@^4.1.0:
1787 | version "4.1.0"
1788 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
1789 | integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
1790 |
1791 | postcss@7.0.32:
1792 | version "7.0.32"
1793 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d"
1794 | integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==
1795 | dependencies:
1796 | chalk "^2.4.2"
1797 | source-map "^0.6.1"
1798 | supports-color "^6.1.0"
1799 |
1800 | postcss@^6.0.9:
1801 | version "6.0.23"
1802 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
1803 | integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
1804 | dependencies:
1805 | chalk "^2.4.1"
1806 | source-map "^0.6.1"
1807 | supports-color "^5.4.0"
1808 |
1809 | postcss@^7.0.0, postcss@^7.0.11, postcss@^7.0.18, postcss@^7.0.32, postcss@^7.0.7:
1810 | version "7.0.34"
1811 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.34.tgz#f2baf57c36010df7de4009940f21532c16d65c20"
1812 | integrity sha512-H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw==
1813 | dependencies:
1814 | chalk "^2.4.2"
1815 | source-map "^0.6.1"
1816 | supports-color "^6.1.0"
1817 |
1818 | prelude-ls@~1.1.2:
1819 | version "1.1.2"
1820 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
1821 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
1822 |
1823 | pretender@^3.4.3:
1824 | version "3.4.3"
1825 | resolved "https://registry.yarnpkg.com/pretender/-/pretender-3.4.3.tgz#a3b4160516007075d29127262f3a0063d19896e9"
1826 | integrity sha512-AlbkBly9R8KR+R0sTCJ/ToOeEoUMtt52QVCetui5zoSmeLOU3S8oobFsyPLm1O2txR6t58qDNysqPnA1vVi8Hg==
1827 | dependencies:
1828 | fake-xml-http-request "^2.1.1"
1829 | route-recognizer "^0.3.3"
1830 |
1831 | prettier-plugin-svelte@^0.7.0:
1832 | version "0.7.0"
1833 | resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-0.7.0.tgz#5ac0b9f194e0450c88ff1e167cbf3b32d2642df2"
1834 | integrity sha512-SuZSeMh48rx42kCFEpI/xE1XgjxQcS3r22Yo7jIhBYRhwbAa8laNxiIHsfeWWkX8BdyELkEayaTQp4ricckwTQ==
1835 | dependencies:
1836 | tslib "^1.9.3"
1837 |
1838 | prettier@^1.19.1:
1839 | version "1.19.1"
1840 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
1841 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
1842 |
1843 | pretty-hrtime@^1.0.3:
1844 | version "1.0.3"
1845 | resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
1846 | integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
1847 |
1848 | progress@^2.0.0:
1849 | version "2.0.3"
1850 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
1851 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
1852 |
1853 | punycode@^2.1.0:
1854 | version "2.1.1"
1855 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1856 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1857 |
1858 | purgecss@^2.3.0:
1859 | version "2.3.0"
1860 | resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz#5327587abf5795e6541517af8b190a6fb5488bb3"
1861 | integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==
1862 | dependencies:
1863 | commander "^5.0.0"
1864 | glob "^7.0.0"
1865 | postcss "7.0.32"
1866 | postcss-selector-parser "^6.0.2"
1867 |
1868 | randombytes@^2.1.0:
1869 | version "2.1.0"
1870 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
1871 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1872 | dependencies:
1873 | safe-buffer "^5.1.0"
1874 |
1875 | read-cache@^1.0.0:
1876 | version "1.0.0"
1877 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
1878 | integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=
1879 | dependencies:
1880 | pify "^2.3.0"
1881 |
1882 | read-pkg@^3.0.0:
1883 | version "3.0.0"
1884 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
1885 | integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
1886 | dependencies:
1887 | load-json-file "^4.0.0"
1888 | normalize-package-data "^2.3.2"
1889 | path-type "^3.0.0"
1890 |
1891 | readdirp@~3.4.0:
1892 | version "3.4.0"
1893 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
1894 | integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
1895 | dependencies:
1896 | picomatch "^2.2.1"
1897 |
1898 | reduce-css-calc@^2.1.6:
1899 | version "2.1.7"
1900 | resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz#1ace2e02c286d78abcd01fd92bfe8097ab0602c2"
1901 | integrity sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==
1902 | dependencies:
1903 | css-unit-converter "^1.1.1"
1904 | postcss-value-parser "^3.3.0"
1905 |
1906 | regexpp@^2.0.1:
1907 | version "2.0.1"
1908 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
1909 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
1910 |
1911 | require-directory@^2.1.1:
1912 | version "2.1.1"
1913 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1914 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
1915 |
1916 | require-main-filename@^2.0.0:
1917 | version "2.0.0"
1918 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
1919 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
1920 |
1921 | require-relative@^0.8.7:
1922 | version "0.8.7"
1923 | resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
1924 | integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=
1925 |
1926 | resolve-from@^3.0.0:
1927 | version "3.0.0"
1928 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
1929 | integrity sha1-six699nWiBvItuZTM17rywoYh0g=
1930 |
1931 | resolve-from@^4.0.0:
1932 | version "4.0.0"
1933 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1934 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1935 |
1936 | resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.2:
1937 | version "1.17.0"
1938 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
1939 | integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
1940 | dependencies:
1941 | path-parse "^1.0.6"
1942 |
1943 | restore-cursor@^3.1.0:
1944 | version "3.1.0"
1945 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
1946 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
1947 | dependencies:
1948 | onetime "^5.1.0"
1949 | signal-exit "^3.0.2"
1950 |
1951 | reusify@^1.0.4:
1952 | version "1.0.4"
1953 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1954 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1955 |
1956 | rimraf@2.6.3:
1957 | version "2.6.3"
1958 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
1959 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
1960 | dependencies:
1961 | glob "^7.1.3"
1962 |
1963 | rollup-plugin-livereload@^1.0.0:
1964 | version "1.3.0"
1965 | resolved "https://registry.yarnpkg.com/rollup-plugin-livereload/-/rollup-plugin-livereload-1.3.0.tgz#8da90df13df6502b9d982997d6ac871092f15fdd"
1966 | integrity sha512-abyqXaB21+nFHo+vJULBqfzNx6zXABC19UyvqgDfdoxR/8pFAd041GO+GIUe8ZYC2DbuMUmioh1Lvbk14YLZgw==
1967 | dependencies:
1968 | livereload "^0.9.1"
1969 |
1970 | rollup-plugin-svelte@^5.0.3:
1971 | version "5.2.3"
1972 | resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-5.2.3.tgz#efdc15e3e3fdd9b9f1100fdc14a8532b4e587bc8"
1973 | integrity sha512-513vOht9A93OV7fvmpIq8mD1JFgTZ5LidmpULKM2Od9P1l8oI5KwvO32fwCnASuVJS1EkRfvCnS7vKQ8DF4srg==
1974 | dependencies:
1975 | require-relative "^0.8.7"
1976 | rollup-pluginutils "^2.8.2"
1977 | sourcemap-codec "^1.4.8"
1978 |
1979 | rollup-plugin-terser@^5.1.2:
1980 | version "5.3.1"
1981 | resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413"
1982 | integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==
1983 | dependencies:
1984 | "@babel/code-frame" "^7.5.5"
1985 | jest-worker "^24.9.0"
1986 | rollup-pluginutils "^2.8.2"
1987 | serialize-javascript "^4.0.0"
1988 | terser "^4.6.2"
1989 |
1990 | rollup-pluginutils@^2.8.2:
1991 | version "2.8.2"
1992 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
1993 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
1994 | dependencies:
1995 | estree-walker "^0.6.1"
1996 |
1997 | rollup@^1.20.0:
1998 | version "1.32.1"
1999 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4"
2000 | integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==
2001 | dependencies:
2002 | "@types/estree" "*"
2003 | "@types/node" "*"
2004 | acorn "^7.1.0"
2005 |
2006 | route-recognizer@^0.3.3:
2007 | version "0.3.4"
2008 | resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.4.tgz#39ab1ffbce1c59e6d2bdca416f0932611e4f3ca3"
2009 | integrity sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==
2010 |
2011 | run-async@^2.4.0:
2012 | version "2.4.1"
2013 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
2014 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
2015 |
2016 | run-parallel@^1.1.9:
2017 | version "1.1.9"
2018 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
2019 | integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
2020 |
2021 | rxjs@^6.6.0:
2022 | version "6.6.3"
2023 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552"
2024 | integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==
2025 | dependencies:
2026 | tslib "^1.9.0"
2027 |
2028 | sade@^1.4.0:
2029 | version "1.7.3"
2030 | resolved "https://registry.yarnpkg.com/sade/-/sade-1.7.3.tgz#a217ccc4fb4abb2d271648bf48f6628b2636fa1b"
2031 | integrity sha512-m4BctppMvJ60W1dXnHq7jMmFe3hPJZDAH85kQ3ACTo7XZNVUuTItCQ+2HfyaMeV5cKrbw7l4vD/6We3GBxvdJw==
2032 | dependencies:
2033 | mri "^1.1.0"
2034 |
2035 | safe-buffer@^5.1.0:
2036 | version "5.2.1"
2037 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
2038 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
2039 |
2040 | "safer-buffer@>= 2.1.2 < 3":
2041 | version "2.1.2"
2042 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
2043 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
2044 |
2045 | "semver@2 || 3 || 4 || 5", semver@^5.5.0:
2046 | version "5.7.1"
2047 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
2048 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
2049 |
2050 | semver@^6.1.2:
2051 | version "6.3.0"
2052 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
2053 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
2054 |
2055 | serialize-javascript@^4.0.0:
2056 | version "4.0.0"
2057 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
2058 | integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
2059 | dependencies:
2060 | randombytes "^2.1.0"
2061 |
2062 | set-blocking@^2.0.0:
2063 | version "2.0.0"
2064 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2065 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
2066 |
2067 | shebang-command@^1.2.0:
2068 | version "1.2.0"
2069 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
2070 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
2071 | dependencies:
2072 | shebang-regex "^1.0.0"
2073 |
2074 | shebang-regex@^1.0.0:
2075 | version "1.0.0"
2076 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
2077 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
2078 |
2079 | shell-quote@^1.6.1:
2080 | version "1.7.2"
2081 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
2082 | integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
2083 |
2084 | signal-exit@^3.0.2:
2085 | version "3.0.3"
2086 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
2087 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
2088 |
2089 | simple-swizzle@^0.2.2:
2090 | version "0.2.2"
2091 | resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
2092 | integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
2093 | dependencies:
2094 | is-arrayish "^0.3.1"
2095 |
2096 | sirv-cli@^0.4.4:
2097 | version "0.4.6"
2098 | resolved "https://registry.yarnpkg.com/sirv-cli/-/sirv-cli-0.4.6.tgz#c28ab20deb3b34637f5a60863dc350f055abca04"
2099 | integrity sha512-/Vj85/kBvPL+n9ibgX6FicLE8VjidC1BhlX67PYPBfbBAphzR6i0k0HtU5c2arejfU3uzq8l3SYPCwl1x7z6Ww==
2100 | dependencies:
2101 | console-clear "^1.1.0"
2102 | get-port "^3.2.0"
2103 | kleur "^3.0.0"
2104 | local-access "^1.0.1"
2105 | sade "^1.4.0"
2106 | sirv "^0.4.6"
2107 | tinydate "^1.0.0"
2108 |
2109 | sirv@^0.4.6:
2110 | version "0.4.6"
2111 | resolved "https://registry.yarnpkg.com/sirv/-/sirv-0.4.6.tgz#185e44eb93d24009dd183b7494285c5180b81f22"
2112 | integrity sha512-rYpOXlNbpHiY4nVXxuDf4mXPvKz1reZGap/LkWp9TvcZ84qD/nPBjjH/6GZsgIjVMbOslnY8YYULAyP8jMn1GQ==
2113 | dependencies:
2114 | "@polka/url" "^0.5.0"
2115 | mime "^2.3.1"
2116 |
2117 | slash@^3.0.0:
2118 | version "3.0.0"
2119 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
2120 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
2121 |
2122 | slice-ansi@^2.1.0:
2123 | version "2.1.0"
2124 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
2125 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
2126 | dependencies:
2127 | ansi-styles "^3.2.0"
2128 | astral-regex "^1.0.0"
2129 | is-fullwidth-code-point "^2.0.0"
2130 |
2131 | source-map-support@~0.5.12:
2132 | version "0.5.19"
2133 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
2134 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
2135 | dependencies:
2136 | buffer-from "^1.0.0"
2137 | source-map "^0.6.0"
2138 |
2139 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
2140 | version "0.6.1"
2141 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2142 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
2143 |
2144 | sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8:
2145 | version "1.4.8"
2146 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
2147 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
2148 |
2149 | spdx-correct@^3.0.0:
2150 | version "3.1.1"
2151 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
2152 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
2153 | dependencies:
2154 | spdx-expression-parse "^3.0.0"
2155 | spdx-license-ids "^3.0.0"
2156 |
2157 | spdx-exceptions@^2.1.0:
2158 | version "2.3.0"
2159 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
2160 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
2161 |
2162 | spdx-expression-parse@^3.0.0:
2163 | version "3.0.1"
2164 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
2165 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
2166 | dependencies:
2167 | spdx-exceptions "^2.1.0"
2168 | spdx-license-ids "^3.0.0"
2169 |
2170 | spdx-license-ids@^3.0.0:
2171 | version "3.0.6"
2172 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce"
2173 | integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==
2174 |
2175 | sprintf-js@~1.0.2:
2176 | version "1.0.3"
2177 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2178 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
2179 |
2180 | string-width@^3.0.0:
2181 | version "3.1.0"
2182 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
2183 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
2184 | dependencies:
2185 | emoji-regex "^7.0.1"
2186 | is-fullwidth-code-point "^2.0.0"
2187 | strip-ansi "^5.1.0"
2188 |
2189 | string-width@^4.1.0, string-width@^4.2.0:
2190 | version "4.2.0"
2191 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
2192 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
2193 | dependencies:
2194 | emoji-regex "^8.0.0"
2195 | is-fullwidth-code-point "^3.0.0"
2196 | strip-ansi "^6.0.0"
2197 |
2198 | string.prototype.padend@^3.0.0:
2199 | version "3.1.0"
2200 | resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3"
2201 | integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==
2202 | dependencies:
2203 | define-properties "^1.1.3"
2204 | es-abstract "^1.17.0-next.1"
2205 |
2206 | string.prototype.trimend@^1.0.1:
2207 | version "1.0.1"
2208 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
2209 | integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
2210 | dependencies:
2211 | define-properties "^1.1.3"
2212 | es-abstract "^1.17.5"
2213 |
2214 | string.prototype.trimstart@^1.0.1:
2215 | version "1.0.1"
2216 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
2217 | integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
2218 | dependencies:
2219 | define-properties "^1.1.3"
2220 | es-abstract "^1.17.5"
2221 |
2222 | strip-ansi@^5.1.0, strip-ansi@^5.2.0:
2223 | version "5.2.0"
2224 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
2225 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
2226 | dependencies:
2227 | ansi-regex "^4.1.0"
2228 |
2229 | strip-ansi@^6.0.0:
2230 | version "6.0.0"
2231 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
2232 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
2233 | dependencies:
2234 | ansi-regex "^5.0.0"
2235 |
2236 | strip-bom@^3.0.0:
2237 | version "3.0.0"
2238 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
2239 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
2240 |
2241 | strip-json-comments@^3.0.1:
2242 | version "3.1.1"
2243 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
2244 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
2245 |
2246 | supports-color@^5.3.0, supports-color@^5.4.0:
2247 | version "5.5.0"
2248 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
2249 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
2250 | dependencies:
2251 | has-flag "^3.0.0"
2252 |
2253 | supports-color@^6.1.0:
2254 | version "6.1.0"
2255 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
2256 | integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
2257 | dependencies:
2258 | has-flag "^3.0.0"
2259 |
2260 | supports-color@^7.1.0:
2261 | version "7.2.0"
2262 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
2263 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
2264 | dependencies:
2265 | has-flag "^4.0.0"
2266 |
2267 | svelte-routing@^1.4.2:
2268 | version "1.4.2"
2269 | resolved "https://registry.yarnpkg.com/svelte-routing/-/svelte-routing-1.4.2.tgz#291160b537c9c73e711731eb099c48bb24cc3419"
2270 | integrity sha512-CSCKRLeOp9vjsDGGOEgL9DPm9HZLgZuTNehyTCl3K+6fCVH1Aw/K/WicavAVNcbsHmdR4wgF//0YVR9hrcdvGA==
2271 |
2272 | svelte@^3.0.0:
2273 | version "3.28.0"
2274 | resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.28.0.tgz#e257fab5666701cf230bea583ceb470bdda1344c"
2275 | integrity sha512-WJW8wD+aTmU5GUnTUjdhVF35mve2MjylubLgB6fGWoXHpYENdwcwWsWvjMQLayzMynqNH733h1Ck8wJzNR7gdQ==
2276 |
2277 | table@^5.2.3:
2278 | version "5.4.6"
2279 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
2280 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
2281 | dependencies:
2282 | ajv "^6.10.2"
2283 | lodash "^4.17.14"
2284 | slice-ansi "^2.1.0"
2285 | string-width "^3.0.0"
2286 |
2287 | tailwindcss@^1.2.0:
2288 | version "1.8.10"
2289 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.8.10.tgz#945ef151c401c04a1c95e6a6bc747387a8d1b9dc"
2290 | integrity sha512-7QkERG/cWCzsuMqHMwjOaLMVixOGLNBiXsrkssxlE1aWfkxVbGqiuMokR2162xRyaH2mBIHKxmlf1qb3DvIPqw==
2291 | dependencies:
2292 | "@fullhuman/postcss-purgecss" "^2.1.2"
2293 | autoprefixer "^9.4.5"
2294 | browserslist "^4.12.0"
2295 | bytes "^3.0.0"
2296 | chalk "^3.0.0 || ^4.0.0"
2297 | color "^3.1.2"
2298 | detective "^5.2.0"
2299 | fs-extra "^8.0.0"
2300 | html-tags "^3.1.0"
2301 | lodash "^4.17.20"
2302 | node-emoji "^1.8.1"
2303 | normalize.css "^8.0.1"
2304 | object-hash "^2.0.3"
2305 | postcss "^7.0.11"
2306 | postcss-functions "^3.0.0"
2307 | postcss-js "^2.0.0"
2308 | postcss-nested "^4.1.1"
2309 | postcss-selector-parser "^6.0.0"
2310 | postcss-value-parser "^4.1.0"
2311 | pretty-hrtime "^1.0.3"
2312 | reduce-css-calc "^2.1.6"
2313 | resolve "^1.14.2"
2314 |
2315 | terser@^4.6.2:
2316 | version "4.8.0"
2317 | resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
2318 | integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
2319 | dependencies:
2320 | commander "^2.20.0"
2321 | source-map "~0.6.1"
2322 | source-map-support "~0.5.12"
2323 |
2324 | text-table@^0.2.0:
2325 | version "0.2.0"
2326 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2327 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
2328 |
2329 | through@^2.3.6:
2330 | version "2.3.8"
2331 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
2332 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
2333 |
2334 | tinydate@^1.0.0:
2335 | version "1.3.0"
2336 | resolved "https://registry.yarnpkg.com/tinydate/-/tinydate-1.3.0.tgz#e6ca8e5a22b51bb4ea1c3a2a4fd1352dbd4c57fb"
2337 | integrity sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==
2338 |
2339 | tmp@^0.0.33:
2340 | version "0.0.33"
2341 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
2342 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
2343 | dependencies:
2344 | os-tmpdir "~1.0.2"
2345 |
2346 | to-regex-range@^5.0.1:
2347 | version "5.0.1"
2348 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
2349 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
2350 | dependencies:
2351 | is-number "^7.0.0"
2352 |
2353 | tslib@^1.9.0, tslib@^1.9.3:
2354 | version "1.13.0"
2355 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
2356 | integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
2357 |
2358 | type-check@~0.3.2:
2359 | version "0.3.2"
2360 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
2361 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
2362 | dependencies:
2363 | prelude-ls "~1.1.2"
2364 |
2365 | type-fest@^0.11.0:
2366 | version "0.11.0"
2367 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
2368 | integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
2369 |
2370 | type-fest@^0.8.1:
2371 | version "0.8.1"
2372 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
2373 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
2374 |
2375 | uniq@^1.0.1:
2376 | version "1.0.1"
2377 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
2378 | integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
2379 |
2380 | universalify@^0.1.0:
2381 | version "0.1.2"
2382 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
2383 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
2384 |
2385 | universalify@^1.0.0:
2386 | version "1.0.0"
2387 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
2388 | integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
2389 |
2390 | uri-js@^4.2.2:
2391 | version "4.4.0"
2392 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
2393 | integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
2394 | dependencies:
2395 | punycode "^2.1.0"
2396 |
2397 | util-deprecate@^1.0.2:
2398 | version "1.0.2"
2399 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2400 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
2401 |
2402 | v8-compile-cache@^2.0.3:
2403 | version "2.1.1"
2404 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745"
2405 | integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==
2406 |
2407 | validate-npm-package-license@^3.0.1:
2408 | version "3.0.4"
2409 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
2410 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
2411 | dependencies:
2412 | spdx-correct "^3.0.0"
2413 | spdx-expression-parse "^3.0.0"
2414 |
2415 | which-module@^2.0.0:
2416 | version "2.0.0"
2417 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
2418 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
2419 |
2420 | which@^1.2.9:
2421 | version "1.3.1"
2422 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
2423 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
2424 | dependencies:
2425 | isexe "^2.0.0"
2426 |
2427 | word-wrap@~1.2.3:
2428 | version "1.2.3"
2429 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
2430 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
2431 |
2432 | wrap-ansi@^6.2.0:
2433 | version "6.2.0"
2434 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
2435 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
2436 | dependencies:
2437 | ansi-styles "^4.0.0"
2438 | string-width "^4.1.0"
2439 | strip-ansi "^6.0.0"
2440 |
2441 | wrappy@1:
2442 | version "1.0.2"
2443 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2444 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
2445 |
2446 | write@1.0.3:
2447 | version "1.0.3"
2448 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
2449 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
2450 | dependencies:
2451 | mkdirp "^0.5.1"
2452 |
2453 | ws@^6.2.1:
2454 | version "6.2.1"
2455 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
2456 | integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
2457 | dependencies:
2458 | async-limiter "~1.0.0"
2459 |
2460 | xtend@^4.0.2:
2461 | version "4.0.2"
2462 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
2463 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
2464 |
2465 | y18n@^4.0.0:
2466 | version "4.0.0"
2467 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
2468 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
2469 |
2470 | yargs-parser@^18.1.2:
2471 | version "18.1.3"
2472 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
2473 | integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
2474 | dependencies:
2475 | camelcase "^5.0.0"
2476 | decamelize "^1.2.0"
2477 |
2478 | yargs@^15.0.2:
2479 | version "15.4.1"
2480 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
2481 | integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
2482 | dependencies:
2483 | cliui "^6.0.0"
2484 | decamelize "^1.2.0"
2485 | find-up "^4.1.0"
2486 | get-caller-file "^2.0.1"
2487 | require-directory "^2.1.1"
2488 | require-main-filename "^2.0.0"
2489 | set-blocking "^2.0.0"
2490 | string-width "^4.2.0"
2491 | which-module "^2.0.0"
2492 | y18n "^4.0.0"
2493 | yargs-parser "^18.1.2"
2494 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/README.md:
--------------------------------------------------------------------------------
1 | # Vue Local Dev and Vue Test Utils with Axios
2 |
3 | This Vue app is set up with Mirage for both local development and UI testing with Vue Test Utils.
4 |
5 | It uses Axios for its network requests, and the test shows how to force Axios to use `window.XMLHttpRequest` so Mirage can intercept the Vue app's network requests.
6 |
7 | The Mirage server is in [src/server.js](./src/server.js). The test is in [tests/unit/example.spec.js](./tests/unit/example.spec.js).
8 |
9 | ## How to use
10 |
11 | Pull down the repo and install deps:
12 |
13 | ```sh
14 | git clone git@github.com:miragejs/examples.git
15 | cd examples/vue-axios-test-utils
16 | yarn
17 | ```
18 |
19 | To run this app in development against a local Mirage server:
20 |
21 | ```sh
22 | yarn serve
23 | ```
24 |
25 | To run the Vue Test Utils test:
26 |
27 | ```sh
28 | yarn test:unit
29 | ```
30 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-axios-mocha",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build",
8 | "test:unit": "vue-cli-service test:unit",
9 | "lint": "vue-cli-service lint"
10 | },
11 | "dependencies": {
12 | "axios": "^0.20.0",
13 | "core-js": "^3.6.5",
14 | "flush-promises": "^1.0.2",
15 | "miragejs": "^0.1.41",
16 | "vue": "^2.6.11"
17 | },
18 | "devDependencies": {
19 | "@vue/cli-plugin-babel": "~4.5.0",
20 | "@vue/cli-plugin-eslint": "~4.5.0",
21 | "@vue/cli-plugin-unit-mocha": "~4.5.0",
22 | "@vue/cli-service": "~4.5.0",
23 | "@vue/test-utils": "^1.0.3",
24 | "babel-eslint": "^10.1.0",
25 | "chai": "^4.1.2",
26 | "eslint": "^6.7.2",
27 | "eslint-plugin-vue": "^6.2.2",
28 | "vue-template-compiler": "^2.6.11"
29 | },
30 | "eslintConfig": {
31 | "root": true,
32 | "env": {
33 | "node": true
34 | },
35 | "extends": [
36 | "plugin:vue/essential",
37 | "eslint:recommended"
38 | ],
39 | "parserOptions": {
40 | "parser": "babel-eslint"
41 | },
42 | "rules": {},
43 | "overrides": [
44 | {
45 | "files": [
46 | "**/__tests__/*.{j,t}s?(x)",
47 | "**/tests/unit/**/*.spec.{j,t}s?(x)"
48 | ],
49 | "env": {
50 | "mocha": true
51 | }
52 | }
53 | ]
54 | },
55 | "browserslist": [
56 | "> 1%",
57 | "last 2 versions",
58 | "not dead"
59 | ]
60 | }
61 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/vue-axios-test-utils/public/favicon.ico
--------------------------------------------------------------------------------
/vue-axios-test-utils/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
12 | We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
18 |
19 |
29 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/vue-axios-test-utils/src/assets/logo.png
--------------------------------------------------------------------------------
/vue-axios-test-utils/src/components/HelloWorld.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Users
4 |
5 |
Loading...
6 |
7 |
8 |
13 | {{ user.name }}
14 |
15 |
16 |
17 |
18 |
19 |
38 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 | import App from "./App.vue";
3 | import { makeServer } from "./server";
4 |
5 | Vue.config.productionTip = false;
6 |
7 | if (process.env.NODE_ENV === "development") {
8 | makeServer();
9 | }
10 |
11 | new Vue({
12 | render: (h) => h(App),
13 | }).$mount("#app");
14 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/src/server.js:
--------------------------------------------------------------------------------
1 | import { createServer, Model } from "miragejs";
2 |
3 | export function makeServer({ environment = "development" } = {}) {
4 | let server = createServer({
5 | environment,
6 |
7 | models: {
8 | user: Model,
9 | },
10 |
11 | seeds(server) {
12 | server.create("user", { name: "Bob" });
13 | server.create("user", { name: "Alice" });
14 | },
15 |
16 | routes() {
17 | this.namespace = "api";
18 |
19 | this.get("/users", (schema) => {
20 | return schema.users.all();
21 | });
22 | },
23 | });
24 |
25 | return server;
26 | }
27 |
--------------------------------------------------------------------------------
/vue-axios-test-utils/tests/unit/example.spec.js:
--------------------------------------------------------------------------------
1 | import { expect } from "chai";
2 | import { shallowMount } from "@vue/test-utils";
3 | import HelloWorld from "@/components/HelloWorld.vue";
4 | import { makeServer } from "../../src/server";
5 |
6 | describe("HelloWorld.vue", () => {
7 | let server;
8 | let originalXMLHttpRequest = XMLHttpRequest;
9 |
10 | before(() => {
11 | server = makeServer({ environment: "test" });
12 | // Force node to use the monkey patched window.XMLHttpRequest
13 | // This needs to come after `makeServer()` is called.
14 | // eslint-disable-next-line no-global-assign
15 | XMLHttpRequest = window.XMLHttpRequest;
16 | });
17 |
18 | after(() => {
19 | server.shutdown();
20 | // Restore node's original window.XMLHttpRequest.
21 | // eslint-disable-next-line no-global-assign
22 | XMLHttpRequest = originalXMLHttpRequest;
23 | });
24 |
25 | it("shows users from the server", (done) => {
26 | server.create("user", { name: "Sam" });
27 |
28 | const wrapper = shallowMount(HelloWorld);
29 |
30 | setTimeout(() => {
31 | expect(wrapper.find('[data-test-id="user-1"]').text()).to.eq("Sam");
32 | done();
33 | }, 50);
34 | });
35 | });
36 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 | # local env files
6 | .env.local
7 | .env.*.local
8 |
9 | # Log files
10 | npm-debug.log*
11 | yarn-debug.log*
12 | yarn-error.log*
13 |
14 | # Editor directories and files
15 | .idea
16 | .vscode
17 | *.suo
18 | *.ntvs*
19 | *.njsproj
20 | *.sln
21 | *.sw?
22 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/README.md:
--------------------------------------------------------------------------------
1 | # Vue CLI Local Dev and Cypress Testing
2 |
3 | This app is set up with Mirage for both local development and UI testing with Cypress.
4 |
5 | The Mirage server is in [src/server.js](./src/server.js). The Cypress spec is in [cypress/integration/example.spec.js](./cypress/integration/example.spec.js).
6 |
7 | ## How to use
8 |
9 | Pull down the repo and install deps:
10 |
11 | ```sh
12 | git clone git@github.com:miragejs/examples.git
13 | cd examples/vue-cli-local-dev-and-cypress
14 | yarn
15 | ```
16 |
17 | To run this app in development against a local Mirage server:
18 |
19 | ```sh
20 | yarn serve
21 | ```
22 |
23 | To run the Cypress tests:
24 |
25 | ```sh
26 | yarn e2e
27 | ```
28 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/cypress.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/cypress/integration/example.spec.js:
--------------------------------------------------------------------------------
1 | import { makeServer } from "../../src/server";
2 |
3 | let server;
4 |
5 | beforeEach(() => {
6 | server = makeServer({ environment: "test" });
7 | });
8 |
9 | afterEach(() => {
10 | server.shutdown();
11 | });
12 |
13 | it("shows the users from our server", () => {
14 | server.logging = true;
15 | server.db.loadData({
16 | todos: [{ text: "Buy groceries", isDone: false }],
17 | });
18 |
19 | cy.visit("/");
20 |
21 | cy.get('[data-testid="Buy groceries"]')
22 | .get("input")
23 | .should("not.value", "Buy groceries");
24 | });
25 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/cypress/plugins/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example plugins/index.js can be used to load plugins
3 | //
4 | // You can change the location of this file or turn off loading
5 | // the plugins file with the 'pluginsFile' configuration option.
6 | //
7 | // You can read more here:
8 | // https://on.cypress.io/plugins-guide
9 | // ***********************************************************
10 |
11 | // This function is called when a project is opened or re-opened (e.g. due to
12 | // the project's config changing)
13 |
14 | module.exports = (on, config) => {
15 | // `on` is used to hook into various events Cypress emits
16 | // `config` is the resolved Cypress config
17 | }
18 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | //
11 | //
12 | // -- This is a parent command --
13 | // Cypress.Commands.add("login", (email, password) => { ... })
14 | //
15 | //
16 | // -- This is a child command --
17 | // Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
18 | //
19 | //
20 | // -- This is a dual command --
21 | // Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
22 | //
23 | //
24 | // -- This will overwrite an existing command --
25 | // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
26 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/cypress/support/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import "./commands";
18 |
19 | // Alternatively you can use CommonJS syntax:
20 | // require('./commands')
21 |
22 | Cypress.on("window:before:load", (win) => {
23 | win.handleFromCypress = function(request) {
24 | return fetch(request.url, {
25 | method: request.method,
26 | headers: request.requestHeaders,
27 | body: request.requestBody,
28 | }).then((res) => {
29 | let content =
30 | res.headers.map &&
31 | res.headers.map["content-type"] === "application/json"
32 | ? res.json()
33 | : res.text();
34 | return new Promise((resolve) => {
35 | content.then((body) => resolve([res.status, res.headers, body]));
36 | });
37 | });
38 | };
39 | });
40 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/netlify.toml:
--------------------------------------------------------------------------------
1 | # SPA push state routing
2 | [[redirects]]
3 | from = "/*"
4 | to = "/index.html"
5 | status = 200
6 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-demo",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build",
8 | "lint": "vue-cli-service lint",
9 | "e2e": "vue-cli-service test:e2e"
10 | },
11 | "dependencies": {
12 | "@vue/cli-plugin-e2e-cypress": "^4.5.6",
13 | "axios": "^0.19.0",
14 | "core-js": "^2.6.5",
15 | "miragejs": "0.1.41",
16 | "prettier": "^1.18.2",
17 | "tailwindcss": "^1.1.2",
18 | "vue": "^2.6.10",
19 | "vue-router": "^3.1.3"
20 | },
21 | "devDependencies": {
22 | "@vue/cli-plugin-babel": "^3.11.0",
23 | "@vue/cli-plugin-eslint": "^3.11.0",
24 | "@vue/cli-service": "^3.11.0",
25 | "babel-eslint": "^10.0.1",
26 | "eslint": "^5.16.0",
27 | "eslint-plugin-cypress": "^2.9.0",
28 | "eslint-plugin-vue": "^5.0.0",
29 | "null-loader": "^3.0.0",
30 | "vue-cli-plugin-webpack-bundle-analyzer": "^2.0.0",
31 | "vue-template-compiler": "^2.6.10"
32 | },
33 | "eslintConfig": {
34 | "root": true,
35 | "env": {
36 | "node": true
37 | },
38 | "extends": [
39 | "plugin:vue/essential",
40 | "plugin:cypress/recommended",
41 | "eslint:recommended"
42 | ],
43 | "rules": {},
44 | "parserOptions": {
45 | "parser": "babel-eslint"
46 | }
47 | },
48 | "browserslist": [
49 | "> 1%",
50 | "last 2 versions"
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: [require("tailwindcss"), require("autoprefixer")]
3 | };
4 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miragejs/examples/0fd7c5ddcc7a9b212974f116ad9c6aec0d949cb5/vue-cli-local-dev-and-cypress/public/favicon.ico
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Mirage Vue demo
9 |
10 |
11 |
12 | We're sorry but vue-demo doesn't work properly without JavaScript
14 | enabled. Please enable it to continue.
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/assets/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/components/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
About this app
4 |
5 | This is an SPA made with Mirage and
6 | Vue . It has two routes to help demonstrate
7 | how Mirage's in-memory database enables realistic data fetching and
8 | persisting during a single application session.
9 |
10 |
11 | Mirage's state is reset whenever the application is reloaded.
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/components/Todo.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
19 |
20 |
35 |
36 |
37 |
38 |
78 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/components/Todos.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
15 |
16 |
Loading...
17 |
18 |
19 |
20 |
28 |
29 |
30 |
39 |
40 |
43 |
{{ done }} / {{ total }} complete
44 |
49 | Clear completed
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
147 |
148 |
149 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/components/icons/Cloud.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
14 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 | import VueRouter from "vue-router";
3 | import App from "./App.vue";
4 | import { makeServer } from "./server";
5 | import { createServer, Response } from "miragejs";
6 | import Todos from "./components/Todos";
7 | import About from "./components/About";
8 |
9 | Vue.config.productionTip = false;
10 | Vue.use(VueRouter);
11 |
12 | if (window.Cypress) {
13 | // mirage cypress/test server
14 | createServer({
15 | environment: "test",
16 | routes() {
17 | let methods = ["get", "put", "patch", "post", "delete"];
18 | methods.forEach((method) => {
19 | this[method]("/*", async (schema, request) => {
20 | let [status, headers, body] = await window.handleFromCypress(request);
21 | return new Response(status, headers, body);
22 | });
23 | });
24 | },
25 | });
26 | } else {
27 | // this is the mirage development and production server
28 | makeServer();
29 | }
30 |
31 | const router = new VueRouter({
32 | mode: "history",
33 | routes: [
34 | { path: "/", component: Todos },
35 | { path: "/about", component: About },
36 | ],
37 | });
38 |
39 | new Vue({
40 | router,
41 | render: (h) => h(App),
42 | }).$mount("#app");
43 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/src/server.js:
--------------------------------------------------------------------------------
1 | import { createServer } from "miragejs";
2 |
3 | export function makeServer({ environment = "development" } = {}) {
4 | let server = createServer({
5 | environment,
6 |
7 | seeds(server) {
8 | server.db.loadData({
9 | todos: [
10 | { text: "Buy groceries", isDone: false },
11 | { text: "Walk the dog", isDone: false },
12 | { text: "Do laundry", isDone: false },
13 | ],
14 | });
15 | },
16 |
17 | routes() {
18 | this.namespace = "api";
19 | this.timing = 750;
20 |
21 | this.get("/todos", ({ db }) => {
22 | return db.todos;
23 | });
24 |
25 | this.patch("/todos/:id", (schema, request) => {
26 | let todo = JSON.parse(request.requestBody).data;
27 |
28 | return schema.db.todos.update(todo.id, todo);
29 | });
30 |
31 | this.post("/todos", (schema, request) => {
32 | let todo = JSON.parse(request.requestBody).data;
33 |
34 | return schema.db.todos.insert(todo);
35 | });
36 |
37 | this.delete("/todos/:id", (schema, request) => {
38 | return schema.db.todos.remove(request.params.id);
39 | });
40 | },
41 | });
42 |
43 | window.server = server;
44 |
45 | return server;
46 | }
47 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | variants: {
3 | backgroundColor: ["responsive", "hover", "focus", "focus-within"],
4 | borderColor: ["responsive", "hover", "focus", "focus-within"]
5 | }
6 | };
7 |
--------------------------------------------------------------------------------
/vue-cli-local-dev-and-cypress/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | pluginOptions: {
3 | webpackBundleAnalyzer: {
4 | openAnalyzer: false,
5 | },
6 | },
7 |
8 | chainWebpack: (config) => {
9 | config.resolve.symlinks(false);
10 |
11 | /*
12 | Don't remember exactly why we added this, but it was causing the e2e tests to break
13 | since the app wasn't able to use mirage. I think we might have added this as an example
14 | of how to get rid of mirage in production - but I think we did the sideEffect: false
15 | thing in 1.40 since then, so not sure we still need this. Just want to leave it as a reference
16 | for a bit in case. Can delete if it doesn't come up soon.
17 | */
18 | // if (
19 | // process.env.NODE_ENV === "production" &&
20 | // process.env.MIRAGE_ENABLED !== "true"
21 | // ) {
22 | // config.module
23 | // .rule("exclude-mirage")
24 | // .test(/node_modules\/miragejs\//)
25 | // .use("null-loader")
26 | // .loader("null-loader");
27 | // }
28 | },
29 | };
30 |
--------------------------------------------------------------------------------