├── .nvmrc
├── src
├── lib
│ ├── DownloadProject.svelte
│ ├── Sidebar.svelte
│ ├── ToggleBuilderMode.svelte
│ ├── Accordion.svelte
│ ├── ClearEditor.svelte
│ ├── ToggleCodePanel.svelte
│ ├── Dropdown.svelte
│ ├── PrismContainer.svelte
│ ├── ActionsPanel.svelte
│ ├── EditorMenu.svelte
│ ├── HtmxTemplates.svelte
│ ├── InspectorPanel.svelte
│ ├── ExportToCodeSandbox.svelte
│ ├── PreviewContainer.svelte
│ ├── Editor.svelte
│ └── ViewSelector.svelte
├── updateProps.js
├── panels
│ ├── RootPanel.svelte
│ ├── AnchorPanel.svelte
│ ├── ButtonPanel.svelte
│ ├── OptionPanel.svelte
│ ├── ImgPanel.svelte
│ ├── InputPanel.svelte
│ ├── DefaultPanel.svelte
│ ├── ChildrenPanel.svelte
│ └── HtmxPanel.svelte
├── main.js
├── utils
│ ├── generateId.js
│ ├── import.js
│ └── recursive.js
├── icons
│ ├── caret-down.svg
│ ├── box-arrow-up-right.svg
│ ├── copy.svg
│ ├── refresh.svg
│ ├── trash.svg
│ └── code.svg
├── getExpressCode.js
├── defaultProps.js
├── styles.css
├── App.svelte
├── generateCode.js
└── stores.js
├── .gitignore
├── vite.config.js
├── index.html
├── public
└── templates
│ ├── lazy-loading.json
│ ├── progress-bar.json
│ ├── infinite-scroll.json
│ ├── click-to-load.json
│ ├── edit-row.json
│ ├── delete-row.json
│ ├── click-to-edit.json
│ ├── active-search.json
│ ├── inline-validation.json
│ └── bulk-update.json
├── package.json
├── README.md
├── LICENSE
├── jsconfig.json
├── favicon.svg
└── pnpm-lock.yaml
/.nvmrc:
--------------------------------------------------------------------------------
1 | v14.19.1
2 |
--------------------------------------------------------------------------------
/src/lib/DownloadProject.svelte:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/lib/Sidebar.svelte:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/src/updateProps.js:
--------------------------------------------------------------------------------
1 | import { editor } from './stores';
2 |
3 | export default function updateProps(props) {
4 | editor.updateProps(props);
5 | }
6 |
--------------------------------------------------------------------------------
/src/panels/RootPanel.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import App from './App.svelte'
2 | import './styles.css';
3 |
4 | const app = new App({
5 | target: document.getElementById('app')
6 | })
7 |
8 | export default app
9 |
--------------------------------------------------------------------------------
/src/utils/generateId.js:
--------------------------------------------------------------------------------
1 | export const generateId = () => {
2 | return `comp-${(
3 | Date.now().toString(36) +
4 | Math.random()
5 | .toString(36)
6 | .substr(2, 5)
7 | ).toUpperCase()}`
8 | }
9 |
--------------------------------------------------------------------------------
/src/lib/ToggleBuilderMode.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/src/icons/caret-down.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import { svelte } from "@sveltejs/vite-plugin-svelte";
3 | import { svelteSVG } from "rollup-plugin-svelte-svg";
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | plugins: [
8 | svelte(),
9 | svelteSVG({
10 | svgo: {},
11 | enforce: "pre",
12 | }),
13 | ],
14 | });
15 |
--------------------------------------------------------------------------------
/src/lib/Accordion.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 | {heading}
7 |
8 |
9 |
10 |
21 |
--------------------------------------------------------------------------------
/src/lib/ClearEditor.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
22 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | HTMX Playground
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/getExpressCode.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 |
3 | const code = `
4 | const express = require('express')
5 | const app = express()
6 | const port = 3000
7 | app.set('view engine', 'ejs')
8 |
9 | app.get('/contacts/1/edit', (req, res) => {
10 | res.render('editcontact');
11 | })
12 |
13 | app.get('/', (req, res) => {
14 | res.render('index')
15 | })
16 |
17 | app.listen(port, () => {
18 | console.log(\`Example app listening on port \${port}\`)
19 | })
20 |
21 | `;
22 |
23 | return code;
24 | }
25 |
--------------------------------------------------------------------------------
/src/icons/box-arrow-up-right.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/defaultProps.js:
--------------------------------------------------------------------------------
1 | const defaultProps = {
2 | div: {},
3 | button: { children: "Hello" },
4 | form: {},
5 | label: {
6 | children: "MyLabel:",
7 | },
8 | input: {},
9 | select: {
10 | options: [
11 | { value: "Audi", label: "Audi" },
12 | { value: "Ferrari", label: "Ferrari" },
13 | { value: "BMW", label: "BMW" },
14 | ],
15 | },
16 | span: {
17 | children: "My span",
18 | },
19 | table: {},
20 | thead: {},
21 | tbody: {},
22 | th: {},
23 | tr: {},
24 | td: {},
25 | };
26 |
27 | export default defaultProps;
28 |
--------------------------------------------------------------------------------
/public/templates/lazy-loading.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y92P63VQOJF","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y92JR83G45M"],"props":{}},"comp-L2Y92JR83G45M":{"id":"comp-L2Y92JR83G45M","props":{"hx-get":"/graph","hx-trigger":"load"},"children":["comp-L2Y92P63VQOJF"],"type":"div","parent":"root","rootParentType":"root"},"comp-L2Y92P63VQOJF":{"id":"comp-L2Y92P63VQOJF","props":{"alt":"Result Loading...","class":"htmx-indicator","src":"/img/bars.svg"},"children":[],"type":"img","parent":"comp-L2Y92JR83G45M","rootParentType":"img"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "htmx-playground",
3 | "private": true,
4 | "version": "0.0.0",
5 | "scripts": {
6 | "dev": "vite",
7 | "build": "vite build",
8 | "preview": "vite preview"
9 | },
10 | "devDependencies": {
11 | "rollup-plugin-svelte-svg": "^1.0.0-beta.6",
12 | "vite": "^2.9.5"
13 | },
14 | "dependencies": {
15 | "@sveltejs/vite-plugin-svelte": "^1.0.0-next.41",
16 | "browser-nativefs": "^0.12.0",
17 | "codesandbox": "^2.2.3",
18 | "immer": "^9.0.12",
19 | "lodash": "^4.17.21",
20 | "prettier": "^2.6.2",
21 | "prismjs": "^1.28.0",
22 | "sortablejs": "^1.15.0",
23 | "svelte": "^3.47.0"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/public/templates/progress-bar.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y9X5Q71N4RP","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y9WXY928M50"],"props":{}},"comp-L2Y9WXY928M50":{"id":"comp-L2Y9WXY928M50","props":{"hx-target":"this","hx-swap":"outerHTML"},"children":["comp-L2Y9X2CEB036U","comp-L2Y9X5Q71N4RP"],"type":"div","parent":"root","rootParentType":"root"},"comp-L2Y9X2CEB036U":{"id":"comp-L2Y9X2CEB036U","props":{"children":"Start Progress"},"children":[],"type":"h3","parent":"comp-L2Y9WXY928M50","rootParentType":"h3"},"comp-L2Y9X5Q71N4RP":{"id":"comp-L2Y9X5Q71N4RP","props":{"children":"Start Job","class":"btn","hx-post":"/start"},"children":[],"type":"button","parent":"comp-L2Y9WXY928M50","rootParentType":"button"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # htmx-playground
2 |
3 | An advanced Drag-n-Drop editor for building HTML with support for [HTMX](https://htmx.org) attributes.
4 |
5 | 
6 |
7 | ## Features
8 | - Drag and drop HTML tags
9 | - Support for minimal HTML attributes like id, class, children, etc.,
10 | - Support all HTMX attributes
11 | - View the generated HTML markup code
12 | - Can export the current HTML to a Code Sandbox project
13 | - Some built in examples of HTMX
14 | - Ability to import and export the design as JSON
15 | - Reset the editor at any point of time.
16 |
17 |
18 | ## More coming soon
19 | - Ability to add hyperscript "_" attributes
20 | - Ability to build/edit Multiple views/designs simultaneously
21 | - Preview mode in Editor itself
22 |
--------------------------------------------------------------------------------
/src/lib/ToggleCodePanel.svelte:
--------------------------------------------------------------------------------
1 |
24 |
25 |
28 |
29 |
35 |
--------------------------------------------------------------------------------
/public/templates/infinite-scroll.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y9M7N3E3AJV","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y9M7N3E3AJV"],"props":{}},"comp-L2Y9M7N3E3AJV":{"id":"comp-L2Y9M7N3E3AJV","props":{"hx-get":"/contacts/?page=2","hx-trigger":"revealed","hx-swap":"outerHTML"},"children":["comp-L2Y9M9LTAYNDE","comp-L2Y9MBC6NIOP9","comp-L2Y9MBOA0SDVO"],"type":"tr","parent":"root","rootParentType":"root"},"comp-L2Y9M9LTAYNDE":{"id":"comp-L2Y9M9LTAYNDE","props":{"children":"Agent Smith"},"children":[],"type":"td","parent":"comp-L2Y9M7N3E3AJV","rootParentType":"td"},"comp-L2Y9MBC6NIOP9":{"id":"comp-L2Y9MBC6NIOP9","props":{"children":"void29@null.org"},"children":[],"type":"td","parent":"comp-L2Y9M7N3E3AJV","rootParentType":"td"},"comp-L2Y9MBOA0SDVO":{"id":"comp-L2Y9MBOA0SDVO","props":{"children":"12345678"},"children":[],"type":"td","parent":"comp-L2Y9M7N3E3AJV","rootParentType":"td"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/src/panels/AnchorPanel.svelte:
--------------------------------------------------------------------------------
1 |
20 |
21 | {#each attrs as attr}
22 |
23 | handleInput(attr.name, ev.target.value)} />
24 | {/each}
25 |
26 |
43 |
--------------------------------------------------------------------------------
/src/panels/ButtonPanel.svelte:
--------------------------------------------------------------------------------
1 |
20 |
21 | {#each attrs as attr}
22 |
23 | handleInput(attr.name, ev.target.value)} />
24 | {/each}
25 |
26 |
43 |
--------------------------------------------------------------------------------
/src/panels/OptionPanel.svelte:
--------------------------------------------------------------------------------
1 |
20 |
21 | {#each attrs as attr}
22 |
23 | handleInput(attr.name, ev.target.value)} />
24 | {/each}
25 |
26 |
43 |
--------------------------------------------------------------------------------
/src/panels/ImgPanel.svelte:
--------------------------------------------------------------------------------
1 |
29 |
30 | {#each attrs as attr}
31 |
32 | handleInput(attr.name, ev.target.value)} />
33 | {/each}
34 |
35 |
52 |
--------------------------------------------------------------------------------
/src/panels/InputPanel.svelte:
--------------------------------------------------------------------------------
1 |
29 |
30 | {#each attrs as attr}
31 |
32 | handleInput(attr.name, ev.target.value)} />
33 | {/each}
34 |
35 |
52 |
--------------------------------------------------------------------------------
/src/utils/import.js:
--------------------------------------------------------------------------------
1 | import { fileOpen, fileSave } from "browser-nativefs";
2 |
3 | export async function loadFromJSON() {
4 | const blob = await fileOpen({
5 | extensions: [".json"],
6 | mimeTypes: ["application/json"],
7 | });
8 |
9 | const contents = await new Promise((resolve) => {
10 | const reader = new FileReader();
11 | reader.readAsText(blob, "utf8");
12 | reader.onloadend = () => {
13 | if (reader.readyState === FileReader.DONE) {
14 | resolve(reader.result);
15 | }
16 | };
17 | });
18 |
19 | try {
20 | return JSON.parse(contents);
21 | } catch (error) {
22 | console.error(error);
23 | }
24 | }
25 |
26 | export async function saveAsJSON(components) {
27 | const serialized = JSON.stringify(components);
28 | const name = prompt("Please enter a file name (without extension)");
29 |
30 | if (name) {
31 | await fileSave(
32 | new Blob([serialized], { type: "application/json" }),
33 | {
34 | fileName: `${name}.json`,
35 | description: "Crayons Playground file",
36 | },
37 | window.handle
38 | );
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/lib/Dropdown.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
51 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2024 Rajasegar Chandran
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "target": "esnext",
5 | "module": "esnext",
6 | /**
7 | * svelte-preprocess cannot figure out whether you have
8 | * a value or a type, so tell TypeScript to enforce using
9 | * `import type` instead of `import` for Types.
10 | */
11 | "importsNotUsedAsValues": "error",
12 | "isolatedModules": true,
13 | "resolveJsonModule": true,
14 | /**
15 | * To have warnings / errors of the Svelte compiler at the
16 | * correct position, enable source maps by default.
17 | */
18 | "sourceMap": true,
19 | "esModuleInterop": true,
20 | "skipLibCheck": true,
21 | "forceConsistentCasingInFileNames": true,
22 | "baseUrl": ".",
23 | /**
24 | * Typecheck JS in `.svelte` and `.js` files by default.
25 | * Disable this if you'd like to use dynamic types.
26 | */
27 | "checkJs": true
28 | },
29 | /**
30 | * Use global.d.ts instead of compilerOptions.types
31 | * to avoid limiting type declarations.
32 | */
33 | "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
34 | }
35 |
--------------------------------------------------------------------------------
/public/templates/click-to-load.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y8SLLTR5JYD","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y8RKK1CJDDF"],"props":{}},"comp-L2Y8RKK1CJDDF":{"id":"comp-L2Y8RKK1CJDDF","props":{"id":"replaceMe"},"children":["comp-L2Y8SAZLI5K07"],"type":"tr","parent":"root","rootParentType":"root"},"comp-L2Y8SAZLI5K07":{"id":"comp-L2Y8SAZLI5K07","props":{},"children":["comp-L2Y8SF1FWBH2T"],"type":"td","parent":"comp-L2Y8RKK1CJDDF","rootParentType":"td"},"comp-L2Y8SF1FWBH2T":{"id":"comp-L2Y8SF1FWBH2T","props":{"children":"Hello","class":"btn","hx-get":"/contacts/?page=2","hx-target":"#replaceMe","hx-swap":"outerHTML"},"children":["comp-L2Y8SILA68C7F","comp-L2Y8SLLTR5JYD"],"type":"button","parent":"comp-L2Y8SAZLI5K07","rootParentType":"button"},"comp-L2Y8SILA68C7F":{"id":"comp-L2Y8SILA68C7F","props":{"children":"Load More Agents"},"children":[],"type":"span","parent":"comp-L2Y8SF1FWBH2T","rootParentType":"span"},"comp-L2Y8SLLTR5JYD":{"id":"comp-L2Y8SLLTR5JYD","props":{"src":"/img/bars.svg","class":"htmx-indicator"},"children":[],"type":"img","parent":"comp-L2Y8SF1FWBH2T","rootParentType":"img"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/src/styles.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --elephant: #183247;
3 | --smoke: #f3f5f7;
4 | --milk: #fff;
5 | --smoke10: #f7f9fa;
6 | --smoke700: #475867;
7 | --smoke600: #576c7d;
8 | --jungle: #00a886;
9 | --azure: #2c5cc5;
10 | --persimmon: #e43538;
11 | --casablanca: #e86f25;
12 | --sidebar-bg: #264966;
13 | }
14 |
15 | * {
16 | margin: 0;
17 | padding: 0;
18 | line-height: 1;
19 | }
20 |
21 | body {
22 | font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
23 | -webkit-font-smoothing: antialiased;
24 | -moz-osx-font-smoothing: grayscale;
25 | }
26 |
27 |
28 |
29 | #code-panel {
30 | overflow-y: auto;
31 | overflow-x: hidden;
32 | position: relative;
33 | }
34 |
35 | pre {
36 | padding: 2em;
37 | }
38 |
39 |
40 |
41 | .gutter {
42 | background-color: var(--elephant);
43 | background-repeat: no-repeat;
44 | background-position: 50%;
45 | }
46 |
47 | .gutter.gutter-horizontal {
48 | background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
49 | cursor: col-resize;
50 | }
51 |
52 |
53 | .dropbtn svg {
54 | vertical-align: text-bottom;
55 | }
56 |
--------------------------------------------------------------------------------
/src/lib/PrismContainer.svelte:
--------------------------------------------------------------------------------
1 |
21 |
22 |
23 | {#await codePromise}
24 | Loading...
25 | {:then code}
26 |
27 |
28 |
29 |
30 | {@html Prism.highlight(code, Prism.languages[language])}
31 |
32 | {/await}
33 |
34 |
35 |
36 |
37 |
38 |
59 |
--------------------------------------------------------------------------------
/public/templates/edit-row.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"root","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y8WGPP3U0VW"],"props":{}},"comp-L2Y8WGPP3U0VW":{"id":"comp-L2Y8WGPP3U0VW","props":{"class":"table delete-row-example"},"children":["comp-L2Y8WKTVVX1LN","comp-L2Y8XMF9VQN3R"],"type":"table","parent":"root","rootParentType":"root"},"comp-L2Y8WKTVVX1LN":{"id":"comp-L2Y8WKTVVX1LN","props":{},"children":["comp-L2Y8WNJMLDIC3"],"type":"thead","parent":"comp-L2Y8WGPP3U0VW","rootParentType":"thead"},"comp-L2Y8WNJMLDIC3":{"id":"comp-L2Y8WNJMLDIC3","props":{},"children":["comp-L2Y8WSWLHJS70","comp-L2Y8WWU7HW552","comp-L2Y8WY18DURFZ"],"type":"tr","parent":"comp-L2Y8WKTVVX1LN","rootParentType":"tr"},"comp-L2Y8WSWLHJS70":{"id":"comp-L2Y8WSWLHJS70","props":{"children":"Name"},"children":[],"type":"th","parent":"comp-L2Y8WNJMLDIC3","rootParentType":"th"},"comp-L2Y8WWU7HW552":{"id":"comp-L2Y8WWU7HW552","props":{"children":"Email"},"children":[],"type":"th","parent":"comp-L2Y8WNJMLDIC3","rootParentType":"th"},"comp-L2Y8WY18DURFZ":{"id":"comp-L2Y8WY18DURFZ","props":{"children":""},"children":[],"type":"th","parent":"comp-L2Y8WNJMLDIC3","rootParentType":"th"},"comp-L2Y8XMF9VQN3R":{"id":"comp-L2Y8XMF9VQN3R","props":{"hx-confirm":"","hx-target":"closest tr","hx-swap":"outerHTML"},"children":[],"type":"tbody","parent":"comp-L2Y8WGPP3U0VW","rootParentType":"tbody"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/src/lib/ActionsPanel.svelte:
--------------------------------------------------------------------------------
1 |
25 |
26 |
29 |
32 |
35 |
38 |
39 |
40 |
54 |
--------------------------------------------------------------------------------
/src/panels/DefaultPanel.svelte:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 | handleInput('id', ev.target.value)} />
23 |
24 | handleInput('class', ev.target.value)} />
25 |
26 |
29 |
30 |
31 |
32 |
49 |
--------------------------------------------------------------------------------
/favicon.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/src/icons/copy.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/templates/delete-row.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y8XMF9VQN3R","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y8WGPP3U0VW"],"props":{}},"comp-L2Y8WGPP3U0VW":{"id":"comp-L2Y8WGPP3U0VW","props":{},"children":["comp-L2Y8WKTVVX1LN","comp-L2Y8XMF9VQN3R"],"type":"table","parent":"root","rootParentType":"root"},"comp-L2Y8WKTVVX1LN":{"id":"comp-L2Y8WKTVVX1LN","props":{},"children":["comp-L2Y8WNJMLDIC3"],"type":"thead","parent":"comp-L2Y8WGPP3U0VW","rootParentType":"thead"},"comp-L2Y8WNJMLDIC3":{"id":"comp-L2Y8WNJMLDIC3","props":{},"children":["comp-L2Y8WSWLHJS70","comp-L2Y8WWU7HW552","comp-L2Y8WXOPDVFJ7","comp-L2Y8WY18DURFZ"],"type":"tr","parent":"comp-L2Y8WKTVVX1LN","rootParentType":"tr"},"comp-L2Y8WSWLHJS70":{"id":"comp-L2Y8WSWLHJS70","props":{"children":"Name"},"children":[],"type":"th","parent":"comp-L2Y8WNJMLDIC3","rootParentType":"th"},"comp-L2Y8WWU7HW552":{"id":"comp-L2Y8WWU7HW552","props":{"children":"Email"},"children":[],"type":"th","parent":"comp-L2Y8WNJMLDIC3","rootParentType":"th"},"comp-L2Y8WXOPDVFJ7":{"id":"comp-L2Y8WXOPDVFJ7","props":{"children":"Status"},"children":[],"type":"th","parent":"comp-L2Y8WNJMLDIC3","rootParentType":"th"},"comp-L2Y8WY18DURFZ":{"id":"comp-L2Y8WY18DURFZ","props":{"children":""},"children":[],"type":"th","parent":"comp-L2Y8WNJMLDIC3","rootParentType":"th"},"comp-L2Y8XMF9VQN3R":{"id":"comp-L2Y8XMF9VQN3R","props":{"hx-confirm":"Are you sure?","hx-target":"closest tr","hx-swap":"outerHTML swap:1s"},"children":[],"type":"tbody","parent":"comp-L2Y8WGPP3U0VW","rootParentType":"tbody"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/src/panels/ChildrenPanel.svelte:
--------------------------------------------------------------------------------
1 |
34 |
35 |
36 | {#each children as child (child)}
37 | - selectComponent(child)}>↕{$editor.components[child].type}
38 | {/each}
39 |
40 |
41 |
64 |
--------------------------------------------------------------------------------
/src/lib/EditorMenu.svelte:
--------------------------------------------------------------------------------
1 |
16 |
24 |
65 |
--------------------------------------------------------------------------------
/src/panels/HtmxPanel.svelte:
--------------------------------------------------------------------------------
1 |
49 |
50 |
51 | {#each htmxProps as prop}
52 |
53 | updateHtmxProps(prop, e.target.value) } />
54 | {/each}
55 |
56 |
57 |
79 |
--------------------------------------------------------------------------------
/src/icons/refresh.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/App.svelte:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 | HTMX Playground
15 |
23 |
26 |
27 |
33 |
34 |
82 |
--------------------------------------------------------------------------------
/public/templates/click-to-edit.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"root","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y7WS2V873GI"],"props":{}},"comp-L2Y7WS2V873GI":{"id":"comp-L2Y7WS2V873GI","props":{"hx-target":"this","hx-swap":"outerHTML"},"children":["comp-L2Y7XGEUG16LQ","comp-L2Y7YAZSPMCD6","comp-L2Y7YBMC1X4KY","comp-L2Y7Z4PXGHVFS"],"type":"div","parent":"root","rootParentType":"root"},"comp-L2Y7XGEUG16LQ":{"id":"comp-L2Y7XGEUG16LQ","props":{},"children":["comp-L2Y7XLC2J19BE","comp-L2Y7XNJCUWNI9"],"type":"div","parent":"comp-L2Y7WS2V873GI","rootParentType":"div"},"comp-L2Y7XLC2J19BE":{"id":"comp-L2Y7XLC2J19BE","props":{"children":"First Name:"},"children":[],"type":"label","parent":"comp-L2Y7XGEUG16LQ","rootParentType":"div"},"comp-L2Y7XNJCUWNI9":{"id":"comp-L2Y7XNJCUWNI9","props":{"children":"Joe"},"children":[],"type":"span","parent":"comp-L2Y7XGEUG16LQ","rootParentType":"div"},"comp-L2Y7YAZS8ELSC":{"id":"comp-L2Y7YAZS8ELSC","props":{"children":"Last Name:"},"children":[],"type":"label","parent":"comp-L2Y7YAZSPMCD6","rootParentType":"div"},"comp-L2Y7YAZTBF9J0":{"id":"comp-L2Y7YAZTBF9J0","props":{"children":"Blow"},"children":[],"type":"span","parent":"comp-L2Y7YAZSPMCD6","rootParentType":"div"},"comp-L2Y7YAZSPMCD6":{"id":"comp-L2Y7YAZSPMCD6","props":{},"children":["comp-L2Y7YAZS8ELSC","comp-L2Y7YAZTBF9J0"],"type":"div","parent":"comp-L2Y7WS2V873GI","rootParentType":"div"},"comp-L2Y7YBMCJKL4X":{"id":"comp-L2Y7YBMCJKL4X","props":{"children":"Email:"},"children":[],"type":"label","parent":"comp-L2Y7YBMC1X4KY","rootParentType":"div"},"comp-L2Y7YBMD1WAUR":{"id":"comp-L2Y7YBMD1WAUR","props":{"children":"joe@blow.com"},"children":[],"type":"span","parent":"comp-L2Y7YBMC1X4KY","rootParentType":"div"},"comp-L2Y7YBMC1X4KY":{"id":"comp-L2Y7YBMC1X4KY","props":{},"children":["comp-L2Y7YBMCJKL4X","comp-L2Y7YBMD1WAUR"],"type":"div","parent":"comp-L2Y7WS2V873GI","rootParentType":"div"},"comp-L2Y7Z4PXGHVFS":{"id":"comp-L2Y7Z4PXGHVFS","props":{"children":"Click To Edit","class":"btn btn-primary","hx-get":"/contact/1/edit"},"children":[],"type":"button","parent":"comp-L2Y7WS2V873GI","rootParentType":"div"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/src/lib/HtmxTemplates.svelte:
--------------------------------------------------------------------------------
1 |
65 |
66 |
67 | {#each htmxTemplates as temp}
68 | loadTemplate(temp.path)}>{temp.name}
69 | {/each}
70 |
71 |
72 |
86 |
--------------------------------------------------------------------------------
/src/icons/trash.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/lib/InspectorPanel.svelte:
--------------------------------------------------------------------------------
1 |
63 |
64 |
{$editor.components[$editor.selectedId].type}
65 |
66 |
67 |
68 |
69 |
70 |
71 |
96 |
--------------------------------------------------------------------------------
/src/lib/ExportToCodeSandbox.svelte:
--------------------------------------------------------------------------------
1 |
74 |
75 |
80 |
81 |
94 |
--------------------------------------------------------------------------------
/src/utils/recursive.js:
--------------------------------------------------------------------------------
1 | import omit from 'lodash/omit'
2 | import filter from 'lodash/filter'
3 | import { generateId } from './generateId'
4 |
5 | export const duplicateComponent = (
6 | componentToClone,
7 | components
8 | ) => {
9 | const clonedComponents = {}
10 |
11 | const cloneComponent = (component) => {
12 | const newid = generateId()
13 | const children = component.children.map(child => {
14 | return cloneComponent(components[child])
15 | })
16 |
17 | let newComponentName = component.componentName
18 | if (newComponentName) {
19 | const matches = /^([a-zA-Z]*)(\d+)?$/g.exec(newComponentName)
20 | // Get all components with a similar name (same base component name + number suffix)
21 | const similarComponents = filter(
22 | components,
23 | comp => !!comp.componentName?.includes(matches[1]),
24 | )
25 | let highestNumber = 0
26 | // Get the highest suffix number
27 | similarComponents.forEach(comp => {
28 | const nameMatches = /^([a-zA-Z]*)(\d+)?$/g.exec(comp.componentName)
29 | const number = nameMatches?.length === 2 ? 0 : Number(nameMatches[2])
30 |
31 | if (number > highestNumber) {
32 | highestNumber = number
33 | }
34 | })
35 | // Use the suffix number + 1 to name our duplicated component
36 | newComponentName = newComponentName.replace(
37 | /^([a-zA-Z]*)(\d+)?$/g,
38 | `$1${highestNumber + 1}`,
39 | )
40 | }
41 |
42 | clonedComponents[newid] = {
43 | ...component,
44 | id: newid,
45 | props: { ...component.props },
46 | children,
47 | componentName: newComponentName,
48 | }
49 |
50 | children.forEach(child => {
51 | clonedComponents[child].parent = newid
52 | })
53 |
54 | return newid
55 | }
56 |
57 | const newId = cloneComponent(componentToClone)
58 |
59 | return {
60 | newId,
61 | clonedComponents,
62 | }
63 | }
64 |
65 | export const deleteComponent = (
66 | component,
67 | components,
68 | ) => {
69 | let updatedComponents = { ...components }
70 | const deleteRecursive = (
71 | children,
72 | id,
73 | ) => {
74 | children.forEach(child => {
75 | updatedComponents[child] &&
76 | deleteRecursive(updatedComponents[child].children, child)
77 | })
78 |
79 | updatedComponents = omit(updatedComponents, id)
80 | }
81 |
82 | deleteRecursive(component.children, component.id)
83 | updatedComponents = omit(updatedComponents, component.id)
84 | return updatedComponents
85 | }
86 |
--------------------------------------------------------------------------------
/public/templates/active-search.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y9Q73IIBDJ1","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y9PZPEMP5A3","comp-L2Y9RPFOG60II","comp-L2Y9RYL7UE4XK"],"props":{}},"comp-L2Y9PZPEMP5A3":{"id":"comp-L2Y9PZPEMP5A3","props":{},"children":["comp-L2Y9Q5PVLPGMU","comp-L2Y9Q73IIBDJ1"],"type":"h3","parent":"root","rootParentType":"root"},"comp-L2Y9Q5PVLPGMU":{"id":"comp-L2Y9Q5PVLPGMU","props":{"children":"Search Contacts"},"children":[],"type":"span","parent":"comp-L2Y9PZPEMP5A3","rootParentType":"span"},"comp-L2Y9Q73IIBDJ1":{"id":"comp-L2Y9Q73IIBDJ1","props":{"children":"","class":"htmx-indicator"},"children":["comp-L2Y9QW5Y34PAH","comp-L2Y9QYQBRXGMQ"],"type":"span","parent":"comp-L2Y9PZPEMP5A3","rootParentType":"span"},"comp-L2Y9QW5Y34PAH":{"id":"comp-L2Y9QW5Y34PAH","props":{"src":"/img/bars.svg","alt":"Loading..."},"children":[],"type":"img","parent":"comp-L2Y9Q73IIBDJ1","rootParentType":"img"},"comp-L2Y9QYQBRXGMQ":{"id":"comp-L2Y9QYQBRXGMQ","props":{"children":"Searching..."},"children":[],"type":"span","parent":"comp-L2Y9Q73IIBDJ1","rootParentType":"span"},"comp-L2Y9RPFOG60II":{"id":"comp-L2Y9RPFOG60II","props":{"class":"form-control","type":"search","name":"search","placeholder":"Begin Typing to Search Users...","hx-post":"/search","hx-trigger":"keyup changed delay:500ms, search","hx-target":"#search-results","hx-indicator":".htmx-indicator"},"children":[],"type":"input","parent":"root","rootParentType":"root"},"comp-L2Y9RYL7UE4XK":{"id":"comp-L2Y9RYL7UE4XK","props":{},"children":["comp-L2Y9S0727808L","comp-L2Y9S2LNLIO8U"],"type":"table","parent":"root","rootParentType":"root"},"comp-L2Y9S0727808L":{"id":"comp-L2Y9S0727808L","props":{},"children":["comp-L2Y9S6IX595PN"],"type":"thead","parent":"comp-L2Y9RYL7UE4XK","rootParentType":"thead"},"comp-L2Y9S2LNLIO8U":{"id":"comp-L2Y9S2LNLIO8U","props":{"id":"search-results"},"children":[],"type":"tbody","parent":"comp-L2Y9RYL7UE4XK","rootParentType":"tbody"},"comp-L2Y9S6IX595PN":{"id":"comp-L2Y9S6IX595PN","props":{},"children":["comp-L2Y9S96CPRPCP","comp-L2Y9SB34AVBQB","comp-L2Y9SBBCUA5WJ"],"type":"tr","parent":"comp-L2Y9S0727808L","rootParentType":"tr"},"comp-L2Y9S96CPRPCP":{"id":"comp-L2Y9S96CPRPCP","props":{"children":"First name"},"children":[],"type":"th","parent":"comp-L2Y9S6IX595PN","rootParentType":"th"},"comp-L2Y9SB34AVBQB":{"id":"comp-L2Y9SB34AVBQB","props":{"children":"Last name"},"children":[],"type":"th","parent":"comp-L2Y9S6IX595PN","rootParentType":"th"},"comp-L2Y9SBBCUA5WJ":{"id":"comp-L2Y9SBBCUA5WJ","props":{"children":"Email"},"children":[],"type":"th","parent":"comp-L2Y9S6IX595PN","rootParentType":"th"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/public/templates/inline-validation.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y9DZ6I4AIW0","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y97QH8YII6S","comp-L2Y9818DUJ080"],"props":{}},"comp-L2Y97QH8YII6S":{"id":"comp-L2Y97QH8YII6S","props":{"children":"Signup Form"},"children":[],"type":"h3","parent":"root","rootParentType":"root"},"comp-L2Y9818DUJ080":{"id":"comp-L2Y9818DUJ080","props":{"hx-post":"/contact"},"children":["comp-L2Y98CQCWSD4R","comp-L2Y9BLSYQ0YCB","comp-L2Y9BMCBBYY1D","comp-L2Y9DZ6I4AIW0"],"type":"form","parent":"root","rootParentType":"root"},"comp-L2Y98CQCWSD4R":{"id":"comp-L2Y98CQCWSD4R","props":{"hx-target":"this","hx-swap":"outerHTML"},"children":["comp-L2Y98H1CIQ9PB","comp-L2Y98IZTNQYNA","comp-L2Y9AUIM9DULT"],"type":"div","parent":"comp-L2Y9818DUJ080","rootParentType":"div"},"comp-L2Y98H1CIQ9PB":{"id":"comp-L2Y98H1CIQ9PB","props":{"children":"Email address:"},"children":[],"type":"label","parent":"comp-L2Y98CQCWSD4R","rootParentType":"label"},"comp-L2Y98IZTNQYNA":{"id":"comp-L2Y98IZTNQYNA","props":{"name":"email","hx-post":"/contact/email","hx-indicator":"#ind"},"children":[],"type":"input","parent":"comp-L2Y98CQCWSD4R","rootParentType":"input"},"comp-L2Y9AUIM9DULT":{"id":"comp-L2Y9AUIM9DULT","props":{"id":"ind","class":"htmx-indicator","src":"/img/bars.svg","alt":"Loading..."},"children":[],"type":"img","parent":"comp-L2Y98CQCWSD4R","rootParentType":"img"},"comp-L2Y9BLSYJHB1T":{"id":"comp-L2Y9BLSYJHB1T","props":{"children":"First name:"},"children":[],"type":"label","parent":"comp-L2Y9BLSYQ0YCB","rootParentType":"label"},"comp-L2Y9BLSYYPFHT":{"id":"comp-L2Y9BLSYYPFHT","props":{"name":"firstname","hx-post":"/contact/email","hx-indicator":"#ind","class":"form-control"},"children":[],"type":"input","parent":"comp-L2Y9BLSYQ0YCB","rootParentType":"input"},"comp-L2Y9BLSYQ0YCB":{"id":"comp-L2Y9BLSYQ0YCB","props":{"hx-target":"","hx-swap":"","class":"form-group"},"children":["comp-L2Y9BLSYJHB1T","comp-L2Y9BLSYYPFHT"],"type":"div","parent":"comp-L2Y9818DUJ080","rootParentType":"div"},"comp-L2Y9BMCBXJAJK":{"id":"comp-L2Y9BMCBXJAJK","props":{"children":"Last name:"},"children":[],"type":"label","parent":"comp-L2Y9BMCBBYY1D","rootParentType":"label"},"comp-L2Y9BMCBCLEDF":{"id":"comp-L2Y9BMCBCLEDF","props":{"name":"lastname","hx-post":"/contact/email","hx-indicator":"#ind","class":"form-control"},"children":[],"type":"input","parent":"comp-L2Y9BMCBBYY1D","rootParentType":"input"},"comp-L2Y9BMCBBYY1D":{"id":"comp-L2Y9BMCBBYY1D","props":{"hx-target":"","hx-swap":""},"children":["comp-L2Y9BMCBXJAJK","comp-L2Y9BMCBCLEDF"],"type":"div","parent":"comp-L2Y9818DUJ080","rootParentType":"div"},"comp-L2Y9DZ6I4AIW0":{"id":"comp-L2Y9DZ6I4AIW0","props":{"children":"Submit","type":"submit","class":"btn btn-default"},"children":[],"type":"button","parent":"comp-L2Y9818DUJ080","rootParentType":"button"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/src/icons/code.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/generateCode.js:
--------------------------------------------------------------------------------
1 | import { editor } from "./stores.js";
2 |
3 | let components;
4 |
5 | editor.subscribe((value) => {
6 | components = value.components;
7 | });
8 |
9 | const noEndTags = ["input", "img"];
10 |
11 | export const formatCode = async (code) => {
12 | let formattedCode = `// 🚨 Your props contains invalid code`;
13 |
14 | const prettier = await import("prettier/standalone");
15 | const htmlParser = await import("prettier/parser-html");
16 |
17 | try {
18 | formattedCode = prettier.format(code, {
19 | parser: "html",
20 | plugins: [htmlParser],
21 | });
22 | } catch (e) {
23 | console.log(e);
24 | }
25 |
26 | return formattedCode;
27 | };
28 |
29 | export default async function generateCode() {
30 | const code = generateCodeForChildren(components.root.children);
31 | const formattedCode = await formatCode(code);
32 | return formattedCode;
33 | }
34 |
35 | export function generateEJSCode() {
36 | const body = generateCode();
37 |
38 | const code = `
39 |
40 |
41 |
42 |
43 | My HTMX Playground app
44 |
45 |
46 | ${body}
47 |
48 |
49 |
50 | `;
51 |
52 | return code;
53 | }
54 |
55 | function generateCodeForChildren(offspring) {
56 | let code = "";
57 | offspring.forEach((id) => {
58 | const { type, props, children } = components[id];
59 |
60 | switch (type) {
61 | case "fw-button":
62 | code += generateButtonCode(props);
63 | break;
64 |
65 | default:
66 | code += generateDefaultCode(type, props, children);
67 | }
68 | });
69 | return code;
70 | }
71 |
72 | function generateDefaultCode(type, props, children) {
73 | let code = "";
74 |
75 | const properties = Object.keys(props)
76 | .filter((p) => !["children", "options"].includes(p))
77 | .filter((p) => props[p] !== "") // Don't render empty props
78 | .map((p) => `${p}="${props[p]}"`)
79 | .join("\n");
80 |
81 | if (props.children) {
82 | code += `<${type} ${properties}>${props.children}${type}>\n`;
83 | } else if (children.length > 0) {
84 | const _children = generateCodeForChildren(children);
85 | code += `<${type} ${properties}>\r\n${_children}${type}>\n`;
86 | } else if (props.options) {
87 | const _children = generateChildrenFromOptions(type, props.options);
88 | code += `<${type} ${properties}>\r\n${_children}${type}>\n`;
89 | } else {
90 | if (!noEndTags.includes(type)) {
91 | code += `<${type} ${properties}>${type}>\n`;
92 | } else {
93 | code += `<${type} ${properties} />\n`;
94 | }
95 | }
96 |
97 | return code;
98 | }
99 |
100 | function generateChildrenFromOptions() {}
101 |
--------------------------------------------------------------------------------
/public/templates/bulk-update.json:
--------------------------------------------------------------------------------
1 | {"selectedId":"comp-L2Y874Y2DOMTL","components":{"root":{"id":"root","parent":"root","type":"root","children":["comp-L2Y82ISKHY8K4","comp-L2Y847IO2UZZQ"],"props":{}},"comp-L2Y82ISKHY8K4":{"id":"comp-L2Y82ISKHY8K4","props":{"hx-include":"#checked-contacts","hx-target":"#tbody"},"children":["comp-L2Y83EOUKUCI6","comp-L2Y83TSOIIVRR"],"type":"div","parent":"root","rootParentType":"root"},"comp-L2Y83EOUKUCI6":{"id":"comp-L2Y83EOUKUCI6","props":{"class":"btn","hx-put":"/activate","children":"Activate"},"children":[],"type":"a","parent":"comp-L2Y82ISKHY8K4","rootParentType":"div"},"comp-L2Y83TSOIIVRR":{"id":"comp-L2Y83TSOIIVRR","props":{"class":"btn","hx-put":"/deactivate","children":"Deactivate"},"children":[],"type":"a","parent":"comp-L2Y82ISKHY8K4","rootParentType":"div"},"comp-L2Y847IO2UZZQ":{"id":"comp-L2Y847IO2UZZQ","props":{},"children":["comp-L2Y84D6WQ28GY"],"type":"form","parent":"root","rootParentType":"root"},"comp-L2Y84D6WQ28GY":{"id":"comp-L2Y84D6WQ28GY","props":{},"children":["comp-L2Y84J25IW0JN","comp-L2Y84LT0CV5HS"],"type":"table","parent":"comp-L2Y847IO2UZZQ","rootParentType":"form"},"comp-L2Y84J25IW0JN":{"id":"comp-L2Y84J25IW0JN","props":{},"children":["comp-L2Y852VL2RGP3"],"type":"thead","parent":"comp-L2Y84D6WQ28GY","rootParentType":"table"},"comp-L2Y84LT0CV5HS":{"id":"comp-L2Y84LT0CV5HS","props":{"id":"tbody"},"children":["comp-L2Y85UPUNTUMQ"],"type":"tbody","parent":"comp-L2Y84D6WQ28GY","rootParentType":"table"},"comp-L2Y852VL2RGP3":{"id":"comp-L2Y852VL2RGP3","props":{},"children":["comp-L2Y8569DNVOQX","comp-L2Y85A954GHLH","comp-L2Y85AL1XGRER","comp-L2Y85B0Q7O38U"],"type":"tr","parent":"comp-L2Y84J25IW0JN","rootParentType":"thead"},"comp-L2Y8569DNVOQX":{"id":"comp-L2Y8569DNVOQX","props":{},"children":[],"type":"th","parent":"comp-L2Y852VL2RGP3","rootParentType":"tr"},"comp-L2Y85A954GHLH":{"id":"comp-L2Y85A954GHLH","props":{"children":"Name"},"children":[],"type":"th","parent":"comp-L2Y852VL2RGP3","rootParentType":"tr"},"comp-L2Y85AL1XGRER":{"id":"comp-L2Y85AL1XGRER","props":{"children":"Email"},"children":[],"type":"th","parent":"comp-L2Y852VL2RGP3","rootParentType":"tr"},"comp-L2Y85B0Q7O38U":{"id":"comp-L2Y85B0Q7O38U","props":{"children":"Status"},"children":[],"type":"th","parent":"comp-L2Y852VL2RGP3","rootParentType":"tr"},"comp-L2Y85UPUNTUMQ":{"id":"comp-L2Y85UPUNTUMQ","props":{},"children":["comp-L2Y8621SLVEPT","comp-L2Y86SVMXZL32","comp-L2Y8735GXPLV6","comp-L2Y874Y2DOMTL"],"type":"tr","parent":"comp-L2Y84LT0CV5HS","rootParentType":"tbody"},"comp-L2Y8621SLVEPT":{"id":"comp-L2Y8621SLVEPT","props":{},"children":["comp-L2Y8663CWSYIC"],"type":"td","parent":"comp-L2Y85UPUNTUMQ","rootParentType":"tr"},"comp-L2Y8663CWSYIC":{"id":"comp-L2Y8663CWSYIC","props":{"type":"checkbox","value":"0","name":"ids"},"children":[],"type":"input","parent":"comp-L2Y8621SLVEPT","rootParentType":"td"},"comp-L2Y86SVMXZL32":{"id":"comp-L2Y86SVMXZL32","props":{"children":"Joe Smith"},"children":[],"type":"td","parent":"comp-L2Y85UPUNTUMQ","rootParentType":"tr"},"comp-L2Y8735GXPLV6":{"id":"comp-L2Y8735GXPLV6","props":{"children":"joe@smith.com"},"children":[],"type":"td","parent":"comp-L2Y85UPUNTUMQ","rootParentType":"tr"},"comp-L2Y874Y2DOMTL":{"id":"comp-L2Y874Y2DOMTL","props":{"children":"Active"},"children":[],"type":"td","parent":"comp-L2Y85UPUNTUMQ","rootParentType":"tr"}},"builderMode":true,"showCode":false}
--------------------------------------------------------------------------------
/src/lib/PreviewContainer.svelte:
--------------------------------------------------------------------------------
1 |
58 |
59 |
70 |
{component.type}
71 |
72 | {#if component.children.length > 0}
73 |
74 | {#each component.children as child}
75 | {@const childComponent = $editor.components[child]}
76 |
77 | {/each}
78 |
79 | {:else}
80 | {#if component.props.children}
81 |
82 | {component.props.children}
83 |
84 | {:else}
85 |
86 | {/if}
87 | {/if}
88 |
89 |
90 |
91 |
127 |
--------------------------------------------------------------------------------
/src/stores.js:
--------------------------------------------------------------------------------
1 | import { writable } from "svelte/store";
2 | import produce from "immer";
3 | import { generateId } from "./utils/generateId";
4 | import { duplicateComponent, deleteComponent } from "./utils/recursive";
5 | import DEFAULT_PROPS from "./defaultProps";
6 |
7 | import { saveAsJSON } from "./utils/import";
8 |
9 | const DEFAULT_ID = "root";
10 |
11 | const initialState = {
12 | selectedId: "root",
13 | components: {
14 | root: {
15 | id: DEFAULT_ID,
16 | parent: DEFAULT_ID,
17 | type: "root",
18 | children: [],
19 | props: {},
20 | },
21 | },
22 | builderMode: true,
23 | showCode: false,
24 | };
25 |
26 | function createEditor() {
27 | const { subscribe, set, update } = writable(initialState);
28 |
29 | return {
30 | subscribe,
31 | add: (payload) =>
32 | update((state) => {
33 | return produce(state, (draftState) => {
34 | const id = payload.testId || generateId();
35 | const { form, ...defaultProps } = DEFAULT_PROPS[payload.type] || {};
36 | draftState.selectedId = id;
37 | draftState.components[payload.parentName].children.push(id);
38 | draftState.components[id] = {
39 | id,
40 | props: defaultProps || {},
41 | children: [],
42 | type: payload.type,
43 | parent: payload.parentName,
44 | rootParentType: payload.rootParentType || payload.type,
45 | };
46 | });
47 | }),
48 |
49 | select: (id) =>
50 | update((state) => {
51 | return produce(state, (draftState) => {
52 | draftState.selectedId = id;
53 | });
54 | }),
55 | reset: () => set(initialState),
56 | importFromJson: (payload) => set(payload),
57 | duplicate: () =>
58 | update((state) => {
59 | return produce(state, (draftState) => {
60 | const selectedComponent =
61 | draftState.components[draftState.selectedId];
62 |
63 | if (selectedComponent.id !== DEFAULT_ID) {
64 | const parentElement =
65 | draftState.components[selectedComponent.parent];
66 |
67 | const { newId, clonedComponents } = duplicateComponent(
68 | selectedComponent,
69 | draftState.components
70 | );
71 |
72 | draftState.components = {
73 | ...draftState.components,
74 | ...clonedComponents,
75 | };
76 | draftState.components[parentElement.id].children.push(newId);
77 | }
78 | });
79 | }),
80 |
81 | remove: () =>
82 | update((state) => {
83 | return produce(state, (draftState) => {
84 | const component = draftState.components[draftState.selectedId];
85 |
86 | // Remove self
87 | if (component && component.parent) {
88 | const children = draftState.components[
89 | component.parent
90 | ].children.filter((id) => id !== draftState.selectedId);
91 |
92 | draftState.components[component.parent].children = children;
93 | }
94 |
95 | draftState.selectedId = DEFAULT_ID;
96 | draftState.components = deleteComponent(
97 | component,
98 | draftState.components
99 | );
100 | });
101 | }),
102 |
103 | updateProps: (payload) =>
104 | update((state) => {
105 | return produce(state, (draftState) => {
106 | const component = draftState.components[draftState.selectedId];
107 | component.props = {
108 | ...component.props,
109 | ...payload,
110 | };
111 | });
112 | }),
113 |
114 | toggleCode: () =>
115 | update((state) => {
116 | return produce(state, (draftState) => {
117 | draftState.showCode = !draftState.showCode;
118 | });
119 | }),
120 |
121 | exportJson: () =>
122 | update((state) => {
123 | saveAsJSON(state);
124 | return state;
125 | }),
126 |
127 | updateChildren: (payload) =>
128 | update((state) => {
129 | return produce(state, (draftState) => {
130 | draftState.components[draftState.selectedId].children =
131 | payload.children;
132 | });
133 | }),
134 | };
135 | }
136 |
137 | export const editor = createEditor();
138 |
--------------------------------------------------------------------------------
/src/lib/Editor.svelte:
--------------------------------------------------------------------------------
1 |
111 |
127 |
128 |
138 | {#each $editor.components['root'].children as comp}
139 | {@const component = $editor.components[comp]}
140 |
141 | {/each}
142 |
143 |
144 | {#if showCode}
145 |
146 | {/if}
147 |
148 |
149 |
207 |
--------------------------------------------------------------------------------
/src/lib/ViewSelector.svelte:
--------------------------------------------------------------------------------
1 |
105 |
106 |
107 | {#if $components.length}
108 |
109 | {#each $components as component, index}
110 |
158 | {/each}
159 |
160 |
166 |
167 | {/if}
168 |
169 |
170 |
301 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.3
2 |
3 | specifiers:
4 | '@sveltejs/vite-plugin-svelte': ^1.0.0-next.41
5 | browser-nativefs: ^0.12.0
6 | codesandbox: ^2.2.3
7 | immer: ^9.0.12
8 | lodash: ^4.17.21
9 | prettier: ^2.6.2
10 | prismjs: ^1.28.0
11 | rollup-plugin-svelte-svg: ^1.0.0-beta.6
12 | sortablejs: ^1.15.0
13 | svelte: ^3.47.0
14 | vite: ^2.9.5
15 |
16 | dependencies:
17 | '@sveltejs/vite-plugin-svelte': 1.0.0-next.41_svelte@3.47.0+vite@2.9.5
18 | browser-nativefs: 0.12.0
19 | codesandbox: 2.2.3
20 | immer: 9.0.12
21 | lodash: 4.17.21
22 | prettier: 2.6.2
23 | prismjs: 1.28.0
24 | sortablejs: 1.15.0
25 | svelte: 3.47.0
26 |
27 | devDependencies:
28 | rollup-plugin-svelte-svg: 1.0.0-beta.6_svelte@3.47.0
29 | vite: 2.9.5
30 |
31 | packages:
32 |
33 | /@rollup/pluginutils/4.2.1:
34 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
35 | engines: {node: '>= 8.0.0'}
36 | dependencies:
37 | estree-walker: 2.0.2
38 | picomatch: 2.3.1
39 | dev: false
40 |
41 | /@sveltejs/vite-plugin-svelte/1.0.0-next.41_svelte@3.47.0+vite@2.9.5:
42 | resolution: {integrity: sha512-2kZ49mpi/YW1PIPvKaJNSSwIFgmw9QUf1+yaNa4U8yJD6AsfSHXAU3goscWbi1jfWnSg2PhvwAf+bvLCdp2F9g==}
43 | engines: {node: ^14.13.1 || >= 16}
44 | peerDependencies:
45 | diff-match-patch: ^1.0.5
46 | svelte: ^3.44.0
47 | vite: ^2.9.0
48 | peerDependenciesMeta:
49 | diff-match-patch:
50 | optional: true
51 | dependencies:
52 | '@rollup/pluginutils': 4.2.1
53 | debug: 4.3.4
54 | kleur: 4.1.4
55 | magic-string: 0.26.1
56 | svelte: 3.47.0
57 | svelte-hmr: 0.14.11_svelte@3.47.0
58 | vite: 2.9.5
59 | transitivePeerDependencies:
60 | - supports-color
61 | dev: false
62 |
63 | /@trysound/sax/0.2.0:
64 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
65 | engines: {node: '>=10.13.0'}
66 | dev: true
67 |
68 | /agent-base/4.3.0:
69 | resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==}
70 | engines: {node: '>= 4.0.0'}
71 | dependencies:
72 | es6-promisify: 5.0.0
73 | dev: false
74 |
75 | /agentkeepalive/3.5.2:
76 | resolution: {integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==}
77 | engines: {node: '>= 4.0.0'}
78 | dependencies:
79 | humanize-ms: 1.2.1
80 | dev: false
81 |
82 | /ansi-align/2.0.0:
83 | resolution: {integrity: sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=}
84 | dependencies:
85 | string-width: 2.1.1
86 | dev: false
87 |
88 | /ansi-escapes/3.2.0:
89 | resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==}
90 | engines: {node: '>=4'}
91 | dev: false
92 |
93 | /ansi-regex/3.0.1:
94 | resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==}
95 | engines: {node: '>=4'}
96 | dev: false
97 |
98 | /ansi-regex/4.1.1:
99 | resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==}
100 | engines: {node: '>=6'}
101 | dev: false
102 |
103 | /ansi-styles/3.2.1:
104 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
105 | engines: {node: '>=4'}
106 | dependencies:
107 | color-convert: 1.9.3
108 | dev: false
109 |
110 | /aproba/1.2.0:
111 | resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
112 | dev: false
113 |
114 | /axios/0.18.1:
115 | resolution: {integrity: sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==}
116 | deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
117 | dependencies:
118 | follow-redirects: 1.5.10
119 | is-buffer: 2.0.5
120 | dev: false
121 |
122 | /balanced-match/1.0.2:
123 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
124 | dev: false
125 |
126 | /binaryextensions/2.3.0:
127 | resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==}
128 | engines: {node: '>=0.8'}
129 | dev: false
130 |
131 | /bl/1.2.3:
132 | resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==}
133 | dependencies:
134 | readable-stream: 2.3.7
135 | safe-buffer: 5.2.1
136 | dev: false
137 |
138 | /bluebird/3.7.2:
139 | resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
140 | dev: false
141 |
142 | /boolbase/1.0.0:
143 | resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=}
144 | dev: true
145 |
146 | /boxen/1.3.0:
147 | resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==}
148 | engines: {node: '>=4'}
149 | dependencies:
150 | ansi-align: 2.0.0
151 | camelcase: 4.1.0
152 | chalk: 2.4.2
153 | cli-boxes: 1.0.0
154 | string-width: 2.1.1
155 | term-size: 1.2.0
156 | widest-line: 2.0.1
157 | dev: false
158 |
159 | /brace-expansion/1.1.11:
160 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
161 | dependencies:
162 | balanced-match: 1.0.2
163 | concat-map: 0.0.1
164 | dev: false
165 |
166 | /browser-nativefs/0.12.0:
167 | resolution: {integrity: sha512-ZCHJcQI6bBm9YjB+6wMT1nWg+/mnWnz7r3gJ8sx7RjgLtWROFq+BuD12cAncD6y45MIbUqFM8eMKXoHXOxSFxA==}
168 | deprecated: Renamed to browser-fs-access
169 | dev: false
170 |
171 | /buffer-alloc-unsafe/1.1.0:
172 | resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==}
173 | dev: false
174 |
175 | /buffer-alloc/1.2.0:
176 | resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==}
177 | dependencies:
178 | buffer-alloc-unsafe: 1.1.0
179 | buffer-fill: 1.0.0
180 | dev: false
181 |
182 | /buffer-fill/1.0.0:
183 | resolution: {integrity: sha1-+PeLdniYiO858gXNY39o5wISKyw=}
184 | dev: false
185 |
186 | /buffer-from/1.1.2:
187 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
188 | dev: false
189 |
190 | /builtins/1.0.3:
191 | resolution: {integrity: sha1-y5T662HIaWRR2zZTThQi+U8K7og=}
192 | dev: false
193 |
194 | /cacache/10.0.4:
195 | resolution: {integrity: sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==}
196 | dependencies:
197 | bluebird: 3.7.2
198 | chownr: 1.1.4
199 | glob: 7.2.0
200 | graceful-fs: 4.2.10
201 | lru-cache: 4.1.5
202 | mississippi: 2.0.0
203 | mkdirp: 0.5.6
204 | move-concurrently: 1.0.1
205 | promise-inflight: 1.0.1
206 | rimraf: 2.7.1
207 | ssri: 5.3.0
208 | unique-filename: 1.1.1
209 | y18n: 4.0.3
210 | dev: false
211 |
212 | /cacache/9.3.0:
213 | resolution: {integrity: sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g==}
214 | dependencies:
215 | bluebird: 3.7.2
216 | chownr: 1.1.4
217 | glob: 7.2.0
218 | graceful-fs: 4.2.10
219 | lru-cache: 4.1.5
220 | mississippi: 1.3.1
221 | mkdirp: 0.5.6
222 | move-concurrently: 1.0.1
223 | promise-inflight: 1.0.1
224 | rimraf: 2.7.1
225 | ssri: 4.1.6
226 | unique-filename: 1.1.1
227 | y18n: 3.2.2
228 | dev: false
229 |
230 | /camelcase/4.1.0:
231 | resolution: {integrity: sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=}
232 | engines: {node: '>=4'}
233 | dev: false
234 |
235 | /capture-stack-trace/1.0.1:
236 | resolution: {integrity: sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==}
237 | engines: {node: '>=0.10.0'}
238 | dev: false
239 |
240 | /chalk/2.4.2:
241 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
242 | engines: {node: '>=4'}
243 | dependencies:
244 | ansi-styles: 3.2.1
245 | escape-string-regexp: 1.0.5
246 | supports-color: 5.5.0
247 | dev: false
248 |
249 | /chardet/0.7.0:
250 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
251 | dev: false
252 |
253 | /chownr/1.1.4:
254 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
255 | dev: false
256 |
257 | /ci-info/1.6.0:
258 | resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==}
259 | dev: false
260 |
261 | /cli-boxes/1.0.0:
262 | resolution: {integrity: sha1-T6kXw+WclKAEzWH47lCdplFocUM=}
263 | engines: {node: '>=0.10.0'}
264 | dev: false
265 |
266 | /cli-cursor/2.1.0:
267 | resolution: {integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=}
268 | engines: {node: '>=4'}
269 | dependencies:
270 | restore-cursor: 2.0.0
271 | dev: false
272 |
273 | /cli-spinners/1.3.1:
274 | resolution: {integrity: sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==}
275 | engines: {node: '>=4'}
276 | dev: false
277 |
278 | /cli-width/2.2.1:
279 | resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==}
280 | dev: false
281 |
282 | /codesandbox-import-util-types/2.2.3:
283 | resolution: {integrity: sha512-Qj00p60oNExthP2oR3vvXmUGjukij+rxJGuiaKM6tyUmSyimdZsqHI/TUvFFClAffk9s7hxGnQgWQ8KCce27qQ==}
284 | dev: false
285 |
286 | /codesandbox-import-utils/2.2.3:
287 | resolution: {integrity: sha512-ymtmcgZKU27U+nM2qUb21aO8Ut/u2S9s6KorOgG81weP+NA0UZkaHKlaRqbLJ9h4i/4FLvwmEXYAnTjNmp6ogg==}
288 | dependencies:
289 | codesandbox-import-util-types: 2.2.3
290 | istextorbinary: 2.6.0
291 | lz-string: 1.4.4
292 | dev: false
293 |
294 | /codesandbox/2.2.3:
295 | resolution: {integrity: sha512-IAkWFk6UUglOhSemI7UFgNNL/jgg+1YjVEIllFULLgsaHhFnY51pCqAifMNuAd5d9Zp4Nk/xMgrEaGNV0L4Xlg==}
296 | hasBin: true
297 | dependencies:
298 | axios: 0.18.1
299 | chalk: 2.4.2
300 | codesandbox-import-util-types: 2.2.3
301 | codesandbox-import-utils: 2.2.3
302 | commander: 2.20.3
303 | datauri: 3.0.0
304 | filesize: 3.6.1
305 | fs-extra: 3.0.1
306 | git-branch: 1.0.0
307 | git-repo-name: 0.6.0
308 | git-username: 0.5.1
309 | humps: 2.0.1
310 | inquirer: 6.5.2
311 | lodash: 4.17.21
312 | lz-string: 1.4.4
313 | ms: 2.1.3
314 | open: 6.4.0
315 | ora: 1.4.0
316 | pacote: 2.7.38
317 | shortid: 2.2.16
318 | update-notifier: 2.5.0
319 | dev: false
320 |
321 | /color-convert/1.9.3:
322 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
323 | dependencies:
324 | color-name: 1.1.3
325 | dev: false
326 |
327 | /color-name/1.1.3:
328 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
329 | dev: false
330 |
331 | /commander/2.20.3:
332 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
333 | dev: false
334 |
335 | /commander/7.2.0:
336 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
337 | engines: {node: '>= 10'}
338 | dev: true
339 |
340 | /concat-map/0.0.1:
341 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
342 | dev: false
343 |
344 | /concat-stream/1.6.2:
345 | resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
346 | engines: {'0': node >= 0.8}
347 | dependencies:
348 | buffer-from: 1.1.2
349 | inherits: 2.0.4
350 | readable-stream: 2.3.7
351 | typedarray: 0.0.6
352 | dev: false
353 |
354 | /configstore/3.1.5:
355 | resolution: {integrity: sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==}
356 | engines: {node: '>=4'}
357 | dependencies:
358 | dot-prop: 4.2.1
359 | graceful-fs: 4.2.10
360 | make-dir: 1.3.0
361 | unique-string: 1.0.0
362 | write-file-atomic: 2.4.3
363 | xdg-basedir: 3.0.0
364 | dev: false
365 |
366 | /copy-concurrently/1.0.5:
367 | resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==}
368 | dependencies:
369 | aproba: 1.2.0
370 | fs-write-stream-atomic: 1.0.10
371 | iferr: 0.1.5
372 | mkdirp: 0.5.6
373 | rimraf: 2.7.1
374 | run-queue: 1.0.3
375 | dev: false
376 |
377 | /core-util-is/1.0.3:
378 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
379 | dev: false
380 |
381 | /create-error-class/3.0.2:
382 | resolution: {integrity: sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=}
383 | engines: {node: '>=0.10.0'}
384 | dependencies:
385 | capture-stack-trace: 1.0.1
386 | dev: false
387 |
388 | /cross-spawn/5.1.0:
389 | resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=}
390 | dependencies:
391 | lru-cache: 4.1.5
392 | shebang-command: 1.2.0
393 | which: 1.3.1
394 | dev: false
395 |
396 | /crypto-random-string/1.0.0:
397 | resolution: {integrity: sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=}
398 | engines: {node: '>=4'}
399 | dev: false
400 |
401 | /css-select/4.3.0:
402 | resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
403 | dependencies:
404 | boolbase: 1.0.0
405 | css-what: 6.1.0
406 | domhandler: 4.3.1
407 | domutils: 2.8.0
408 | nth-check: 2.0.1
409 | dev: true
410 |
411 | /css-tree/1.1.3:
412 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
413 | engines: {node: '>=8.0.0'}
414 | dependencies:
415 | mdn-data: 2.0.14
416 | source-map: 0.6.1
417 | dev: true
418 |
419 | /css-what/6.1.0:
420 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
421 | engines: {node: '>= 6'}
422 | dev: true
423 |
424 | /csso/4.2.0:
425 | resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
426 | engines: {node: '>=8.0.0'}
427 | dependencies:
428 | css-tree: 1.1.3
429 | dev: true
430 |
431 | /cwd/0.9.1:
432 | resolution: {integrity: sha1-QeEKfhq4M9xZwuyoOBTH3ne1pP0=}
433 | engines: {node: '>=0.8'}
434 | dependencies:
435 | find-pkg: 0.1.2
436 | dev: false
437 |
438 | /cyclist/1.0.1:
439 | resolution: {integrity: sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=}
440 | dev: false
441 |
442 | /datauri/3.0.0:
443 | resolution: {integrity: sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ==}
444 | engines: {node: '>= 8'}
445 | dependencies:
446 | image-size: 0.8.3
447 | mimer: 1.1.0
448 | dev: false
449 |
450 | /debug/3.1.0:
451 | resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==}
452 | dependencies:
453 | ms: 2.0.0
454 | dev: false
455 |
456 | /debug/3.2.7:
457 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
458 | dependencies:
459 | ms: 2.1.3
460 | dev: false
461 |
462 | /debug/4.3.4:
463 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
464 | engines: {node: '>=6.0'}
465 | peerDependencies:
466 | supports-color: '*'
467 | peerDependenciesMeta:
468 | supports-color:
469 | optional: true
470 | dependencies:
471 | ms: 2.1.2
472 | dev: false
473 |
474 | /deep-extend/0.6.0:
475 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
476 | engines: {node: '>=4.0.0'}
477 | dev: false
478 |
479 | /dom-serializer/1.4.1:
480 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
481 | dependencies:
482 | domelementtype: 2.3.0
483 | domhandler: 4.3.1
484 | entities: 2.2.0
485 | dev: true
486 |
487 | /domelementtype/2.3.0:
488 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
489 | dev: true
490 |
491 | /domhandler/4.3.1:
492 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
493 | engines: {node: '>= 4'}
494 | dependencies:
495 | domelementtype: 2.3.0
496 | dev: true
497 |
498 | /domutils/2.8.0:
499 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
500 | dependencies:
501 | dom-serializer: 1.4.1
502 | domelementtype: 2.3.0
503 | domhandler: 4.3.1
504 | dev: true
505 |
506 | /dot-prop/4.2.1:
507 | resolution: {integrity: sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==}
508 | engines: {node: '>=4'}
509 | dependencies:
510 | is-obj: 1.0.1
511 | dev: false
512 |
513 | /duplexer3/0.1.4:
514 | resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=}
515 | dev: false
516 |
517 | /duplexify/3.7.1:
518 | resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
519 | dependencies:
520 | end-of-stream: 1.4.4
521 | inherits: 2.0.4
522 | readable-stream: 2.3.7
523 | stream-shift: 1.0.1
524 | dev: false
525 |
526 | /editions/2.3.1:
527 | resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==}
528 | engines: {node: '>=0.8'}
529 | dependencies:
530 | errlop: 2.2.0
531 | semver: 6.3.0
532 | dev: false
533 |
534 | /encoding/0.1.13:
535 | resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
536 | dependencies:
537 | iconv-lite: 0.6.3
538 | dev: false
539 |
540 | /end-of-stream/1.4.4:
541 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
542 | dependencies:
543 | once: 1.4.0
544 | dev: false
545 |
546 | /entities/2.2.0:
547 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
548 | dev: true
549 |
550 | /err-code/1.1.2:
551 | resolution: {integrity: sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=}
552 | dev: false
553 |
554 | /errlop/2.2.0:
555 | resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==}
556 | engines: {node: '>=0.8'}
557 | dev: false
558 |
559 | /es6-promise/4.2.8:
560 | resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
561 | dev: false
562 |
563 | /es6-promisify/5.0.0:
564 | resolution: {integrity: sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=}
565 | dependencies:
566 | es6-promise: 4.2.8
567 | dev: false
568 |
569 | /esbuild-android-64/0.14.38:
570 | resolution: {integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==}
571 | engines: {node: '>=12'}
572 | cpu: [x64]
573 | os: [android]
574 | requiresBuild: true
575 | dev: true
576 | optional: true
577 |
578 | /esbuild-android-arm64/0.14.38:
579 | resolution: {integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==}
580 | engines: {node: '>=12'}
581 | cpu: [arm64]
582 | os: [android]
583 | requiresBuild: true
584 | dev: true
585 | optional: true
586 |
587 | /esbuild-darwin-64/0.14.38:
588 | resolution: {integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==}
589 | engines: {node: '>=12'}
590 | cpu: [x64]
591 | os: [darwin]
592 | requiresBuild: true
593 | dev: true
594 | optional: true
595 |
596 | /esbuild-darwin-arm64/0.14.38:
597 | resolution: {integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==}
598 | engines: {node: '>=12'}
599 | cpu: [arm64]
600 | os: [darwin]
601 | requiresBuild: true
602 | dev: true
603 | optional: true
604 |
605 | /esbuild-freebsd-64/0.14.38:
606 | resolution: {integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==}
607 | engines: {node: '>=12'}
608 | cpu: [x64]
609 | os: [freebsd]
610 | requiresBuild: true
611 | dev: true
612 | optional: true
613 |
614 | /esbuild-freebsd-arm64/0.14.38:
615 | resolution: {integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==}
616 | engines: {node: '>=12'}
617 | cpu: [arm64]
618 | os: [freebsd]
619 | requiresBuild: true
620 | dev: true
621 | optional: true
622 |
623 | /esbuild-linux-32/0.14.38:
624 | resolution: {integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==}
625 | engines: {node: '>=12'}
626 | cpu: [ia32]
627 | os: [linux]
628 | requiresBuild: true
629 | dev: true
630 | optional: true
631 |
632 | /esbuild-linux-64/0.14.38:
633 | resolution: {integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==}
634 | engines: {node: '>=12'}
635 | cpu: [x64]
636 | os: [linux]
637 | requiresBuild: true
638 | dev: true
639 | optional: true
640 |
641 | /esbuild-linux-arm/0.14.38:
642 | resolution: {integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==}
643 | engines: {node: '>=12'}
644 | cpu: [arm]
645 | os: [linux]
646 | requiresBuild: true
647 | dev: true
648 | optional: true
649 |
650 | /esbuild-linux-arm64/0.14.38:
651 | resolution: {integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==}
652 | engines: {node: '>=12'}
653 | cpu: [arm64]
654 | os: [linux]
655 | requiresBuild: true
656 | dev: true
657 | optional: true
658 |
659 | /esbuild-linux-mips64le/0.14.38:
660 | resolution: {integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==}
661 | engines: {node: '>=12'}
662 | cpu: [mips64el]
663 | os: [linux]
664 | requiresBuild: true
665 | dev: true
666 | optional: true
667 |
668 | /esbuild-linux-ppc64le/0.14.38:
669 | resolution: {integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==}
670 | engines: {node: '>=12'}
671 | cpu: [ppc64]
672 | os: [linux]
673 | requiresBuild: true
674 | dev: true
675 | optional: true
676 |
677 | /esbuild-linux-riscv64/0.14.38:
678 | resolution: {integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==}
679 | engines: {node: '>=12'}
680 | cpu: [riscv64]
681 | os: [linux]
682 | requiresBuild: true
683 | dev: true
684 | optional: true
685 |
686 | /esbuild-linux-s390x/0.14.38:
687 | resolution: {integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==}
688 | engines: {node: '>=12'}
689 | cpu: [s390x]
690 | os: [linux]
691 | requiresBuild: true
692 | dev: true
693 | optional: true
694 |
695 | /esbuild-netbsd-64/0.14.38:
696 | resolution: {integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==}
697 | engines: {node: '>=12'}
698 | cpu: [x64]
699 | os: [netbsd]
700 | requiresBuild: true
701 | dev: true
702 | optional: true
703 |
704 | /esbuild-openbsd-64/0.14.38:
705 | resolution: {integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==}
706 | engines: {node: '>=12'}
707 | cpu: [x64]
708 | os: [openbsd]
709 | requiresBuild: true
710 | dev: true
711 | optional: true
712 |
713 | /esbuild-sunos-64/0.14.38:
714 | resolution: {integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==}
715 | engines: {node: '>=12'}
716 | cpu: [x64]
717 | os: [sunos]
718 | requiresBuild: true
719 | dev: true
720 | optional: true
721 |
722 | /esbuild-windows-32/0.14.38:
723 | resolution: {integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==}
724 | engines: {node: '>=12'}
725 | cpu: [ia32]
726 | os: [win32]
727 | requiresBuild: true
728 | dev: true
729 | optional: true
730 |
731 | /esbuild-windows-64/0.14.38:
732 | resolution: {integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==}
733 | engines: {node: '>=12'}
734 | cpu: [x64]
735 | os: [win32]
736 | requiresBuild: true
737 | dev: true
738 | optional: true
739 |
740 | /esbuild-windows-arm64/0.14.38:
741 | resolution: {integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==}
742 | engines: {node: '>=12'}
743 | cpu: [arm64]
744 | os: [win32]
745 | requiresBuild: true
746 | dev: true
747 | optional: true
748 |
749 | /esbuild/0.14.38:
750 | resolution: {integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==}
751 | engines: {node: '>=12'}
752 | hasBin: true
753 | requiresBuild: true
754 | optionalDependencies:
755 | esbuild-android-64: 0.14.38
756 | esbuild-android-arm64: 0.14.38
757 | esbuild-darwin-64: 0.14.38
758 | esbuild-darwin-arm64: 0.14.38
759 | esbuild-freebsd-64: 0.14.38
760 | esbuild-freebsd-arm64: 0.14.38
761 | esbuild-linux-32: 0.14.38
762 | esbuild-linux-64: 0.14.38
763 | esbuild-linux-arm: 0.14.38
764 | esbuild-linux-arm64: 0.14.38
765 | esbuild-linux-mips64le: 0.14.38
766 | esbuild-linux-ppc64le: 0.14.38
767 | esbuild-linux-riscv64: 0.14.38
768 | esbuild-linux-s390x: 0.14.38
769 | esbuild-netbsd-64: 0.14.38
770 | esbuild-openbsd-64: 0.14.38
771 | esbuild-sunos-64: 0.14.38
772 | esbuild-windows-32: 0.14.38
773 | esbuild-windows-64: 0.14.38
774 | esbuild-windows-arm64: 0.14.38
775 | dev: true
776 |
777 | /escape-string-regexp/1.0.5:
778 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
779 | engines: {node: '>=0.8.0'}
780 | dev: false
781 |
782 | /estree-walker/0.6.1:
783 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==}
784 | dev: true
785 |
786 | /estree-walker/2.0.2:
787 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
788 | dev: false
789 |
790 | /execa/0.7.0:
791 | resolution: {integrity: sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=}
792 | engines: {node: '>=4'}
793 | dependencies:
794 | cross-spawn: 5.1.0
795 | get-stream: 3.0.0
796 | is-stream: 1.1.0
797 | npm-run-path: 2.0.2
798 | p-finally: 1.0.0
799 | signal-exit: 3.0.7
800 | strip-eof: 1.0.0
801 | dev: false
802 |
803 | /expand-tilde/1.2.2:
804 | resolution: {integrity: sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=}
805 | engines: {node: '>=0.10.0'}
806 | dependencies:
807 | os-homedir: 1.0.2
808 | dev: false
809 |
810 | /extend-shallow/2.0.1:
811 | resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=}
812 | engines: {node: '>=0.10.0'}
813 | dependencies:
814 | is-extendable: 0.1.1
815 | dev: false
816 |
817 | /external-editor/3.1.0:
818 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
819 | engines: {node: '>=4'}
820 | dependencies:
821 | chardet: 0.7.0
822 | iconv-lite: 0.4.24
823 | tmp: 0.0.33
824 | dev: false
825 |
826 | /figures/2.0.0:
827 | resolution: {integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=}
828 | engines: {node: '>=4'}
829 | dependencies:
830 | escape-string-regexp: 1.0.5
831 | dev: false
832 |
833 | /file-name/0.1.0:
834 | resolution: {integrity: sha1-ErEi8SD5w028F2wauBpUis7W3vc=}
835 | engines: {node: '>=0.10.0'}
836 | dev: false
837 |
838 | /filesize/3.6.1:
839 | resolution: {integrity: sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==}
840 | engines: {node: '>= 0.4.0'}
841 | dev: false
842 |
843 | /find-file-up/0.1.3:
844 | resolution: {integrity: sha1-z2gJG8+fMApA2kEbN9pczlovvqA=}
845 | engines: {node: '>=0.10.0'}
846 | dependencies:
847 | fs-exists-sync: 0.1.0
848 | resolve-dir: 0.1.1
849 | dev: false
850 |
851 | /find-pkg/0.1.2:
852 | resolution: {integrity: sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc=}
853 | engines: {node: '>=0.10.0'}
854 | dependencies:
855 | find-file-up: 0.1.3
856 | dev: false
857 |
858 | /flush-write-stream/1.1.1:
859 | resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==}
860 | dependencies:
861 | inherits: 2.0.4
862 | readable-stream: 2.3.7
863 | dev: false
864 |
865 | /follow-redirects/1.5.10:
866 | resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==}
867 | engines: {node: '>=4.0'}
868 | dependencies:
869 | debug: 3.1.0
870 | dev: false
871 |
872 | /from2/2.3.0:
873 | resolution: {integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=}
874 | dependencies:
875 | inherits: 2.0.4
876 | readable-stream: 2.3.7
877 | dev: false
878 |
879 | /fs-constants/1.0.0:
880 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
881 | dev: false
882 |
883 | /fs-exists-sync/0.1.0:
884 | resolution: {integrity: sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=}
885 | engines: {node: '>=0.10.0'}
886 | dev: false
887 |
888 | /fs-extra/3.0.1:
889 | resolution: {integrity: sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=}
890 | dependencies:
891 | graceful-fs: 4.2.10
892 | jsonfile: 3.0.1
893 | universalify: 0.1.2
894 | dev: false
895 |
896 | /fs-write-stream-atomic/1.0.10:
897 | resolution: {integrity: sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=}
898 | dependencies:
899 | graceful-fs: 4.2.10
900 | iferr: 0.1.5
901 | imurmurhash: 0.1.4
902 | readable-stream: 2.3.7
903 | dev: false
904 |
905 | /fs.realpath/1.0.0:
906 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
907 | dev: false
908 |
909 | /fsevents/2.3.2:
910 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
911 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
912 | os: [darwin]
913 | requiresBuild: true
914 | dev: true
915 | optional: true
916 |
917 | /function-bind/1.1.1:
918 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
919 |
920 | /genfun/4.0.1:
921 | resolution: {integrity: sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=}
922 | dev: false
923 |
924 | /get-stream/3.0.0:
925 | resolution: {integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=}
926 | engines: {node: '>=4'}
927 | dev: false
928 |
929 | /git-branch/1.0.0:
930 | resolution: {integrity: sha512-ZTzuqw5Df8fyLXQWrX6hK+4FpNCdKzMcERlxENEGO5aKcLmG7MAszhrMhluUKNKmOS/JAGijDMQDXDCDw1mE/A==}
931 | engines: {node: '>=0.8'}
932 | dev: false
933 |
934 | /git-config-path/1.0.1:
935 | resolution: {integrity: sha1-bTP37WPbDQ4RgTFQO6s6ykfVRmQ=}
936 | engines: {node: '>=0.10.0'}
937 | dependencies:
938 | extend-shallow: 2.0.1
939 | fs-exists-sync: 0.1.0
940 | homedir-polyfill: 1.0.3
941 | dev: false
942 |
943 | /git-repo-name/0.6.0:
944 | resolution: {integrity: sha1-rwmIRlaqU37GJccIcAgXXNYSKP8=}
945 | engines: {node: '>=0.8'}
946 | dependencies:
947 | cwd: 0.9.1
948 | file-name: 0.1.0
949 | lazy-cache: 1.0.4
950 | remote-origin-url: 0.5.3
951 | dev: false
952 |
953 | /git-username/0.5.1:
954 | resolution: {integrity: sha512-xjUjrj3i4kup2A3a/ZVZB1Nt0PUX7SU7KeVqIbXPdslT7NbNfyO04JMxBv4gar77JePdS+A6f05jG1Viy6+U1w==}
955 | engines: {node: '>=0.8'}
956 | dependencies:
957 | remote-origin-url: 0.4.0
958 | dev: false
959 |
960 | /glob/7.2.0:
961 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
962 | dependencies:
963 | fs.realpath: 1.0.0
964 | inflight: 1.0.6
965 | inherits: 2.0.4
966 | minimatch: 3.1.2
967 | once: 1.4.0
968 | path-is-absolute: 1.0.1
969 | dev: false
970 |
971 | /global-dirs/0.1.1:
972 | resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=}
973 | engines: {node: '>=4'}
974 | dependencies:
975 | ini: 1.3.8
976 | dev: false
977 |
978 | /global-modules/0.2.3:
979 | resolution: {integrity: sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=}
980 | engines: {node: '>=0.10.0'}
981 | dependencies:
982 | global-prefix: 0.1.5
983 | is-windows: 0.2.0
984 | dev: false
985 |
986 | /global-prefix/0.1.5:
987 | resolution: {integrity: sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=}
988 | engines: {node: '>=0.10.0'}
989 | dependencies:
990 | homedir-polyfill: 1.0.3
991 | ini: 1.3.8
992 | is-windows: 0.2.0
993 | which: 1.3.1
994 | dev: false
995 |
996 | /got/6.7.1:
997 | resolution: {integrity: sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=}
998 | engines: {node: '>=4'}
999 | dependencies:
1000 | create-error-class: 3.0.2
1001 | duplexer3: 0.1.4
1002 | get-stream: 3.0.0
1003 | is-redirect: 1.0.0
1004 | is-retry-allowed: 1.2.0
1005 | is-stream: 1.1.0
1006 | lowercase-keys: 1.0.1
1007 | safe-buffer: 5.2.1
1008 | timed-out: 4.0.1
1009 | unzip-response: 2.0.1
1010 | url-parse-lax: 1.0.0
1011 | dev: false
1012 |
1013 | /graceful-fs/4.2.10:
1014 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
1015 | dev: false
1016 |
1017 | /has-flag/3.0.0:
1018 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
1019 | engines: {node: '>=4'}
1020 | dev: false
1021 |
1022 | /has/1.0.3:
1023 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1024 | engines: {node: '>= 0.4.0'}
1025 | dependencies:
1026 | function-bind: 1.1.1
1027 |
1028 | /homedir-polyfill/1.0.3:
1029 | resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
1030 | engines: {node: '>=0.10.0'}
1031 | dependencies:
1032 | parse-passwd: 1.0.0
1033 | dev: false
1034 |
1035 | /hosted-git-info/2.8.9:
1036 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
1037 | dev: false
1038 |
1039 | /http-cache-semantics/3.8.1:
1040 | resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==}
1041 | dev: false
1042 |
1043 | /http-proxy-agent/2.1.0:
1044 | resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==}
1045 | engines: {node: '>= 4.5.0'}
1046 | dependencies:
1047 | agent-base: 4.3.0
1048 | debug: 3.1.0
1049 | dev: false
1050 |
1051 | /https-proxy-agent/2.2.4:
1052 | resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==}
1053 | engines: {node: '>= 4.5.0'}
1054 | dependencies:
1055 | agent-base: 4.3.0
1056 | debug: 3.2.7
1057 | dev: false
1058 |
1059 | /humanize-ms/1.2.1:
1060 | resolution: {integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=}
1061 | dependencies:
1062 | ms: 2.1.3
1063 | dev: false
1064 |
1065 | /humps/2.0.1:
1066 | resolution: {integrity: sha1-3QLqYIG9BWjcXQcxhEY5V7qe+ao=}
1067 | dev: false
1068 |
1069 | /iconv-lite/0.4.24:
1070 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
1071 | engines: {node: '>=0.10.0'}
1072 | dependencies:
1073 | safer-buffer: 2.1.2
1074 | dev: false
1075 |
1076 | /iconv-lite/0.6.3:
1077 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
1078 | engines: {node: '>=0.10.0'}
1079 | dependencies:
1080 | safer-buffer: 2.1.2
1081 | dev: false
1082 |
1083 | /iferr/0.1.5:
1084 | resolution: {integrity: sha1-xg7taebY/bazEEofy8ocGS3FtQE=}
1085 | dev: false
1086 |
1087 | /image-size/0.8.3:
1088 | resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==}
1089 | engines: {node: '>=6.9.0'}
1090 | hasBin: true
1091 | dependencies:
1092 | queue: 6.0.1
1093 | dev: false
1094 |
1095 | /immer/9.0.12:
1096 | resolution: {integrity: sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==}
1097 | dev: false
1098 |
1099 | /import-lazy/2.1.0:
1100 | resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=}
1101 | engines: {node: '>=4'}
1102 | dev: false
1103 |
1104 | /imurmurhash/0.1.4:
1105 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
1106 | engines: {node: '>=0.8.19'}
1107 | dev: false
1108 |
1109 | /inflight/1.0.6:
1110 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
1111 | dependencies:
1112 | once: 1.4.0
1113 | wrappy: 1.0.2
1114 | dev: false
1115 |
1116 | /inherits/2.0.4:
1117 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1118 | dev: false
1119 |
1120 | /ini/1.3.8:
1121 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
1122 | dev: false
1123 |
1124 | /inquirer/6.5.2:
1125 | resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==}
1126 | engines: {node: '>=6.0.0'}
1127 | dependencies:
1128 | ansi-escapes: 3.2.0
1129 | chalk: 2.4.2
1130 | cli-cursor: 2.1.0
1131 | cli-width: 2.2.1
1132 | external-editor: 3.1.0
1133 | figures: 2.0.0
1134 | lodash: 4.17.21
1135 | mute-stream: 0.0.7
1136 | run-async: 2.4.1
1137 | rxjs: 6.6.7
1138 | string-width: 2.1.1
1139 | strip-ansi: 5.2.0
1140 | through: 2.3.8
1141 | dev: false
1142 |
1143 | /ip/1.1.5:
1144 | resolution: {integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=}
1145 | dev: false
1146 |
1147 | /is-buffer/2.0.5:
1148 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
1149 | engines: {node: '>=4'}
1150 | dev: false
1151 |
1152 | /is-ci/1.2.1:
1153 | resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==}
1154 | hasBin: true
1155 | dependencies:
1156 | ci-info: 1.6.0
1157 | dev: false
1158 |
1159 | /is-core-module/2.9.0:
1160 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
1161 | dependencies:
1162 | has: 1.0.3
1163 |
1164 | /is-extendable/0.1.1:
1165 | resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=}
1166 | engines: {node: '>=0.10.0'}
1167 | dev: false
1168 |
1169 | /is-fullwidth-code-point/2.0.0:
1170 | resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=}
1171 | engines: {node: '>=4'}
1172 | dev: false
1173 |
1174 | /is-installed-globally/0.1.0:
1175 | resolution: {integrity: sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=}
1176 | engines: {node: '>=4'}
1177 | dependencies:
1178 | global-dirs: 0.1.1
1179 | is-path-inside: 1.0.1
1180 | dev: false
1181 |
1182 | /is-npm/1.0.0:
1183 | resolution: {integrity: sha1-8vtjpl5JBbQGyGBydloaTceTufQ=}
1184 | engines: {node: '>=0.10.0'}
1185 | dev: false
1186 |
1187 | /is-obj/1.0.1:
1188 | resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=}
1189 | engines: {node: '>=0.10.0'}
1190 | dev: false
1191 |
1192 | /is-path-inside/1.0.1:
1193 | resolution: {integrity: sha1-jvW33lBDej/cprToZe96pVy0gDY=}
1194 | engines: {node: '>=0.10.0'}
1195 | dependencies:
1196 | path-is-inside: 1.0.2
1197 | dev: false
1198 |
1199 | /is-redirect/1.0.0:
1200 | resolution: {integrity: sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=}
1201 | engines: {node: '>=0.10.0'}
1202 | dev: false
1203 |
1204 | /is-retry-allowed/1.2.0:
1205 | resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==}
1206 | engines: {node: '>=0.10.0'}
1207 | dev: false
1208 |
1209 | /is-stream/1.1.0:
1210 | resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=}
1211 | engines: {node: '>=0.10.0'}
1212 | dev: false
1213 |
1214 | /is-windows/0.2.0:
1215 | resolution: {integrity: sha1-3hqm1j6indJIc3tp8f+LgALSEIw=}
1216 | engines: {node: '>=0.10.0'}
1217 | dev: false
1218 |
1219 | /is-wsl/1.1.0:
1220 | resolution: {integrity: sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=}
1221 | engines: {node: '>=4'}
1222 | dev: false
1223 |
1224 | /isarray/1.0.0:
1225 | resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
1226 | dev: false
1227 |
1228 | /isexe/2.0.0:
1229 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
1230 | dev: false
1231 |
1232 | /istextorbinary/2.6.0:
1233 | resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==}
1234 | engines: {node: '>=0.12'}
1235 | dependencies:
1236 | binaryextensions: 2.3.0
1237 | editions: 2.3.1
1238 | textextensions: 2.6.0
1239 | dev: false
1240 |
1241 | /json-parse-better-errors/1.0.2:
1242 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
1243 | dev: false
1244 |
1245 | /jsonfile/3.0.1:
1246 | resolution: {integrity: sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=}
1247 | optionalDependencies:
1248 | graceful-fs: 4.2.10
1249 | dev: false
1250 |
1251 | /kleur/4.1.4:
1252 | resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==}
1253 | engines: {node: '>=6'}
1254 | dev: false
1255 |
1256 | /latest-version/3.1.0:
1257 | resolution: {integrity: sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=}
1258 | engines: {node: '>=4'}
1259 | dependencies:
1260 | package-json: 4.0.1
1261 | dev: false
1262 |
1263 | /lazy-cache/1.0.4:
1264 | resolution: {integrity: sha1-odePw6UEdMuAhF07O24dpJpEbo4=}
1265 | engines: {node: '>=0.10.0'}
1266 | dev: false
1267 |
1268 | /lodash/4.17.21:
1269 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
1270 | dev: false
1271 |
1272 | /log-symbols/2.2.0:
1273 | resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==}
1274 | engines: {node: '>=4'}
1275 | dependencies:
1276 | chalk: 2.4.2
1277 | dev: false
1278 |
1279 | /lowercase-keys/1.0.1:
1280 | resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==}
1281 | engines: {node: '>=0.10.0'}
1282 | dev: false
1283 |
1284 | /lru-cache/4.1.5:
1285 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
1286 | dependencies:
1287 | pseudomap: 1.0.2
1288 | yallist: 2.1.2
1289 | dev: false
1290 |
1291 | /lz-string/1.4.4:
1292 | resolution: {integrity: sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=}
1293 | hasBin: true
1294 | dev: false
1295 |
1296 | /magic-string/0.26.1:
1297 | resolution: {integrity: sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==}
1298 | engines: {node: '>=12'}
1299 | dependencies:
1300 | sourcemap-codec: 1.4.8
1301 | dev: false
1302 |
1303 | /make-dir/1.3.0:
1304 | resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==}
1305 | engines: {node: '>=4'}
1306 | dependencies:
1307 | pify: 3.0.0
1308 | dev: false
1309 |
1310 | /make-fetch-happen/2.6.0:
1311 | resolution: {integrity: sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==}
1312 | dependencies:
1313 | agentkeepalive: 3.5.2
1314 | cacache: 10.0.4
1315 | http-cache-semantics: 3.8.1
1316 | http-proxy-agent: 2.1.0
1317 | https-proxy-agent: 2.2.4
1318 | lru-cache: 4.1.5
1319 | mississippi: 1.3.1
1320 | node-fetch-npm: 2.0.4
1321 | promise-retry: 1.1.1
1322 | socks-proxy-agent: 3.0.1
1323 | ssri: 5.3.0
1324 | dev: false
1325 |
1326 | /mdn-data/2.0.14:
1327 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
1328 | dev: true
1329 |
1330 | /mimer/1.1.0:
1331 | resolution: {integrity: sha512-y9dVfy2uiycQvDNiAYW6zp49ZhFlXDMr5wfdOiMbdzGM/0N5LNR6HTUn3un+WUQcM0koaw8FMTG1bt5EnHJdvQ==}
1332 | engines: {node: '>= 6.0'}
1333 | hasBin: true
1334 | dev: false
1335 |
1336 | /mimic-fn/1.2.0:
1337 | resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
1338 | engines: {node: '>=4'}
1339 | dev: false
1340 |
1341 | /minimatch/3.1.2:
1342 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1343 | dependencies:
1344 | brace-expansion: 1.1.11
1345 | dev: false
1346 |
1347 | /minimist/1.2.6:
1348 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
1349 | dev: false
1350 |
1351 | /mississippi/1.3.1:
1352 | resolution: {integrity: sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==}
1353 | dependencies:
1354 | concat-stream: 1.6.2
1355 | duplexify: 3.7.1
1356 | end-of-stream: 1.4.4
1357 | flush-write-stream: 1.1.1
1358 | from2: 2.3.0
1359 | parallel-transform: 1.2.0
1360 | pump: 1.0.3
1361 | pumpify: 1.5.1
1362 | stream-each: 1.2.3
1363 | through2: 2.0.5
1364 | dev: false
1365 |
1366 | /mississippi/2.0.0:
1367 | resolution: {integrity: sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==}
1368 | engines: {node: '>=4.0.0'}
1369 | dependencies:
1370 | concat-stream: 1.6.2
1371 | duplexify: 3.7.1
1372 | end-of-stream: 1.4.4
1373 | flush-write-stream: 1.1.1
1374 | from2: 2.3.0
1375 | parallel-transform: 1.2.0
1376 | pump: 2.0.1
1377 | pumpify: 1.5.1
1378 | stream-each: 1.2.3
1379 | through2: 2.0.5
1380 | dev: false
1381 |
1382 | /mkdirp/0.5.6:
1383 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
1384 | hasBin: true
1385 | dependencies:
1386 | minimist: 1.2.6
1387 | dev: false
1388 |
1389 | /move-concurrently/1.0.1:
1390 | resolution: {integrity: sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=}
1391 | dependencies:
1392 | aproba: 1.2.0
1393 | copy-concurrently: 1.0.5
1394 | fs-write-stream-atomic: 1.0.10
1395 | mkdirp: 0.5.6
1396 | rimraf: 2.7.1
1397 | run-queue: 1.0.3
1398 | dev: false
1399 |
1400 | /ms/2.0.0:
1401 | resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=}
1402 | dev: false
1403 |
1404 | /ms/2.1.2:
1405 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1406 | dev: false
1407 |
1408 | /ms/2.1.3:
1409 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1410 | dev: false
1411 |
1412 | /mute-stream/0.0.7:
1413 | resolution: {integrity: sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=}
1414 | dev: false
1415 |
1416 | /nanoid/2.1.11:
1417 | resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==}
1418 | dev: false
1419 |
1420 | /nanoid/3.3.3:
1421 | resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==}
1422 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1423 | hasBin: true
1424 | dev: true
1425 |
1426 | /node-fetch-npm/2.0.4:
1427 | resolution: {integrity: sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==}
1428 | engines: {node: '>=4'}
1429 | dependencies:
1430 | encoding: 0.1.13
1431 | json-parse-better-errors: 1.0.2
1432 | safe-buffer: 5.2.1
1433 | dev: false
1434 |
1435 | /normalize-package-data/2.5.0:
1436 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
1437 | dependencies:
1438 | hosted-git-info: 2.8.9
1439 | resolve: 1.22.0
1440 | semver: 5.7.1
1441 | validate-npm-package-license: 3.0.4
1442 | dev: false
1443 |
1444 | /npm-package-arg/5.1.2:
1445 | resolution: {integrity: sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==}
1446 | dependencies:
1447 | hosted-git-info: 2.8.9
1448 | osenv: 0.1.5
1449 | semver: 5.7.1
1450 | validate-npm-package-name: 3.0.0
1451 | dev: false
1452 |
1453 | /npm-pick-manifest/1.0.4:
1454 | resolution: {integrity: sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ==}
1455 | dependencies:
1456 | npm-package-arg: 5.1.2
1457 | semver: 5.7.1
1458 | dev: false
1459 |
1460 | /npm-run-path/2.0.2:
1461 | resolution: {integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=}
1462 | engines: {node: '>=4'}
1463 | dependencies:
1464 | path-key: 2.0.1
1465 | dev: false
1466 |
1467 | /nth-check/2.0.1:
1468 | resolution: {integrity: sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==}
1469 | dependencies:
1470 | boolbase: 1.0.0
1471 | dev: true
1472 |
1473 | /once/1.4.0:
1474 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
1475 | dependencies:
1476 | wrappy: 1.0.2
1477 | dev: false
1478 |
1479 | /onetime/2.0.1:
1480 | resolution: {integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=}
1481 | engines: {node: '>=4'}
1482 | dependencies:
1483 | mimic-fn: 1.2.0
1484 | dev: false
1485 |
1486 | /open/6.4.0:
1487 | resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==}
1488 | engines: {node: '>=8'}
1489 | dependencies:
1490 | is-wsl: 1.1.0
1491 | dev: false
1492 |
1493 | /ora/1.4.0:
1494 | resolution: {integrity: sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==}
1495 | engines: {node: '>=4'}
1496 | dependencies:
1497 | chalk: 2.4.2
1498 | cli-cursor: 2.1.0
1499 | cli-spinners: 1.3.1
1500 | log-symbols: 2.2.0
1501 | dev: false
1502 |
1503 | /os-homedir/1.0.2:
1504 | resolution: {integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=}
1505 | engines: {node: '>=0.10.0'}
1506 | dev: false
1507 |
1508 | /os-tmpdir/1.0.2:
1509 | resolution: {integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=}
1510 | engines: {node: '>=0.10.0'}
1511 | dev: false
1512 |
1513 | /osenv/0.1.5:
1514 | resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==}
1515 | dependencies:
1516 | os-homedir: 1.0.2
1517 | os-tmpdir: 1.0.2
1518 | dev: false
1519 |
1520 | /p-finally/1.0.0:
1521 | resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=}
1522 | engines: {node: '>=4'}
1523 | dev: false
1524 |
1525 | /package-json/4.0.1:
1526 | resolution: {integrity: sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=}
1527 | engines: {node: '>=4'}
1528 | dependencies:
1529 | got: 6.7.1
1530 | registry-auth-token: 3.4.0
1531 | registry-url: 3.1.0
1532 | semver: 5.7.1
1533 | dev: false
1534 |
1535 | /pacote/2.7.38:
1536 | resolution: {integrity: sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA==}
1537 | dependencies:
1538 | bluebird: 3.7.2
1539 | cacache: 9.3.0
1540 | glob: 7.2.0
1541 | lru-cache: 4.1.5
1542 | make-fetch-happen: 2.6.0
1543 | minimatch: 3.1.2
1544 | mississippi: 1.3.1
1545 | normalize-package-data: 2.5.0
1546 | npm-package-arg: 5.1.2
1547 | npm-pick-manifest: 1.0.4
1548 | osenv: 0.1.5
1549 | promise-inflight: 1.0.1
1550 | promise-retry: 1.1.1
1551 | protoduck: 4.0.0
1552 | safe-buffer: 5.2.1
1553 | semver: 5.7.1
1554 | ssri: 4.1.6
1555 | tar-fs: 1.16.3
1556 | tar-stream: 1.6.2
1557 | unique-filename: 1.1.1
1558 | which: 1.3.1
1559 | dev: false
1560 |
1561 | /parallel-transform/1.2.0:
1562 | resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==}
1563 | dependencies:
1564 | cyclist: 1.0.1
1565 | inherits: 2.0.4
1566 | readable-stream: 2.3.7
1567 | dev: false
1568 |
1569 | /parse-git-config/0.2.0:
1570 | resolution: {integrity: sha1-Jygz/dFf6hRvt10zbSNrljtv9wY=}
1571 | engines: {node: '>=0.10.0'}
1572 | dependencies:
1573 | ini: 1.3.8
1574 | dev: false
1575 |
1576 | /parse-git-config/1.1.1:
1577 | resolution: {integrity: sha1-06mYQxcTL1c5hxK7pDjhKVkN34w=}
1578 | engines: {node: '>=0.10.0'}
1579 | dependencies:
1580 | extend-shallow: 2.0.1
1581 | fs-exists-sync: 0.1.0
1582 | git-config-path: 1.0.1
1583 | ini: 1.3.8
1584 | dev: false
1585 |
1586 | /parse-passwd/1.0.0:
1587 | resolution: {integrity: sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=}
1588 | engines: {node: '>=0.10.0'}
1589 | dev: false
1590 |
1591 | /path-is-absolute/1.0.1:
1592 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
1593 | engines: {node: '>=0.10.0'}
1594 | dev: false
1595 |
1596 | /path-is-inside/1.0.2:
1597 | resolution: {integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=}
1598 | dev: false
1599 |
1600 | /path-key/2.0.1:
1601 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=}
1602 | engines: {node: '>=4'}
1603 | dev: false
1604 |
1605 | /path-parse/1.0.7:
1606 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1607 |
1608 | /picocolors/1.0.0:
1609 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1610 | dev: true
1611 |
1612 | /picomatch/2.3.1:
1613 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1614 | engines: {node: '>=8.6'}
1615 | dev: false
1616 |
1617 | /pify/3.0.0:
1618 | resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=}
1619 | engines: {node: '>=4'}
1620 | dev: false
1621 |
1622 | /postcss/8.4.12:
1623 | resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==}
1624 | engines: {node: ^10 || ^12 || >=14}
1625 | dependencies:
1626 | nanoid: 3.3.3
1627 | picocolors: 1.0.0
1628 | source-map-js: 1.0.2
1629 | dev: true
1630 |
1631 | /prepend-http/1.0.4:
1632 | resolution: {integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=}
1633 | engines: {node: '>=0.10.0'}
1634 | dev: false
1635 |
1636 | /prettier/2.6.2:
1637 | resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==}
1638 | engines: {node: '>=10.13.0'}
1639 | hasBin: true
1640 | dev: false
1641 |
1642 | /prismjs/1.28.0:
1643 | resolution: {integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==}
1644 | engines: {node: '>=6'}
1645 | dev: false
1646 |
1647 | /process-nextick-args/2.0.1:
1648 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
1649 | dev: false
1650 |
1651 | /promise-inflight/1.0.1:
1652 | resolution: {integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM=}
1653 | dev: false
1654 |
1655 | /promise-retry/1.1.1:
1656 | resolution: {integrity: sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=}
1657 | engines: {node: '>=0.12'}
1658 | dependencies:
1659 | err-code: 1.1.2
1660 | retry: 0.10.1
1661 | dev: false
1662 |
1663 | /protoduck/4.0.0:
1664 | resolution: {integrity: sha1-/kh02MeRM2bP2erRJFOiLNNlf44=}
1665 | dependencies:
1666 | genfun: 4.0.1
1667 | dev: false
1668 |
1669 | /pseudomap/1.0.2:
1670 | resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=}
1671 | dev: false
1672 |
1673 | /pump/1.0.3:
1674 | resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==}
1675 | dependencies:
1676 | end-of-stream: 1.4.4
1677 | once: 1.4.0
1678 | dev: false
1679 |
1680 | /pump/2.0.1:
1681 | resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}
1682 | dependencies:
1683 | end-of-stream: 1.4.4
1684 | once: 1.4.0
1685 | dev: false
1686 |
1687 | /pumpify/1.5.1:
1688 | resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
1689 | dependencies:
1690 | duplexify: 3.7.1
1691 | inherits: 2.0.4
1692 | pump: 2.0.1
1693 | dev: false
1694 |
1695 | /queue/6.0.1:
1696 | resolution: {integrity: sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==}
1697 | dependencies:
1698 | inherits: 2.0.4
1699 | dev: false
1700 |
1701 | /rc/1.2.8:
1702 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
1703 | hasBin: true
1704 | dependencies:
1705 | deep-extend: 0.6.0
1706 | ini: 1.3.8
1707 | minimist: 1.2.6
1708 | strip-json-comments: 2.0.1
1709 | dev: false
1710 |
1711 | /readable-stream/2.3.7:
1712 | resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
1713 | dependencies:
1714 | core-util-is: 1.0.3
1715 | inherits: 2.0.4
1716 | isarray: 1.0.0
1717 | process-nextick-args: 2.0.1
1718 | safe-buffer: 5.1.2
1719 | string_decoder: 1.1.1
1720 | util-deprecate: 1.0.2
1721 | dev: false
1722 |
1723 | /registry-auth-token/3.4.0:
1724 | resolution: {integrity: sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==}
1725 | dependencies:
1726 | rc: 1.2.8
1727 | safe-buffer: 5.2.1
1728 | dev: false
1729 |
1730 | /registry-url/3.1.0:
1731 | resolution: {integrity: sha1-PU74cPc93h138M+aOBQyRE4XSUI=}
1732 | engines: {node: '>=0.10.0'}
1733 | dependencies:
1734 | rc: 1.2.8
1735 | dev: false
1736 |
1737 | /remote-origin-url/0.4.0:
1738 | resolution: {integrity: sha1-TT4pAvNOLTfRwmPYdxC3frQIajA=}
1739 | engines: {node: '>= 0.8.0'}
1740 | dependencies:
1741 | parse-git-config: 0.2.0
1742 | dev: false
1743 |
1744 | /remote-origin-url/0.5.3:
1745 | resolution: {integrity: sha512-crQ7Xk1m/F2IiwBx5oTqk/c0hjoumrEz+a36+ZoVupskQRE/q7pAwHKsTNeiZ31sbSTELvVlVv4h1W0Xo5szKg==}
1746 | engines: {node: '>= 0.8.0'}
1747 | dependencies:
1748 | parse-git-config: 1.1.1
1749 | dev: false
1750 |
1751 | /resolve-dir/0.1.1:
1752 | resolution: {integrity: sha1-shklmlYC+sXFxJatiUpujMQwJh4=}
1753 | engines: {node: '>=0.10.0'}
1754 | dependencies:
1755 | expand-tilde: 1.2.2
1756 | global-modules: 0.2.3
1757 | dev: false
1758 |
1759 | /resolve/1.22.0:
1760 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
1761 | hasBin: true
1762 | dependencies:
1763 | is-core-module: 2.9.0
1764 | path-parse: 1.0.7
1765 | supports-preserve-symlinks-flag: 1.0.0
1766 |
1767 | /restore-cursor/2.0.0:
1768 | resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=}
1769 | engines: {node: '>=4'}
1770 | dependencies:
1771 | onetime: 2.0.1
1772 | signal-exit: 3.0.7
1773 | dev: false
1774 |
1775 | /retry/0.10.1:
1776 | resolution: {integrity: sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=}
1777 | dev: false
1778 |
1779 | /rimraf/2.7.1:
1780 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
1781 | hasBin: true
1782 | dependencies:
1783 | glob: 7.2.0
1784 | dev: false
1785 |
1786 | /rollup-plugin-svelte-svg/1.0.0-beta.6_svelte@3.47.0:
1787 | resolution: {integrity: sha512-6uJb9kuaqK6p+DvkgphhGN18wvUzdT6h7MQC2B8P1omi9omC9lQC54pwaot21h6z9ibhGPLG9a1XFLeDQth/kg==}
1788 | peerDependencies:
1789 | svelte: '*'
1790 | dependencies:
1791 | rollup-pluginutils: 2.8.2
1792 | svelte: 3.47.0
1793 | svgo: 2.8.0
1794 | dev: true
1795 |
1796 | /rollup-pluginutils/2.8.2:
1797 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==}
1798 | dependencies:
1799 | estree-walker: 0.6.1
1800 | dev: true
1801 |
1802 | /rollup/2.70.2:
1803 | resolution: {integrity: sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==}
1804 | engines: {node: '>=10.0.0'}
1805 | hasBin: true
1806 | optionalDependencies:
1807 | fsevents: 2.3.2
1808 | dev: true
1809 |
1810 | /run-async/2.4.1:
1811 | resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
1812 | engines: {node: '>=0.12.0'}
1813 | dev: false
1814 |
1815 | /run-queue/1.0.3:
1816 | resolution: {integrity: sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=}
1817 | dependencies:
1818 | aproba: 1.2.0
1819 | dev: false
1820 |
1821 | /rxjs/6.6.7:
1822 | resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
1823 | engines: {npm: '>=2.0.0'}
1824 | dependencies:
1825 | tslib: 1.14.1
1826 | dev: false
1827 |
1828 | /safe-buffer/5.1.2:
1829 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
1830 | dev: false
1831 |
1832 | /safe-buffer/5.2.1:
1833 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
1834 | dev: false
1835 |
1836 | /safer-buffer/2.1.2:
1837 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
1838 | dev: false
1839 |
1840 | /semver-diff/2.1.0:
1841 | resolution: {integrity: sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=}
1842 | engines: {node: '>=0.10.0'}
1843 | dependencies:
1844 | semver: 5.7.1
1845 | dev: false
1846 |
1847 | /semver/5.7.1:
1848 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
1849 | hasBin: true
1850 | dev: false
1851 |
1852 | /semver/6.3.0:
1853 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
1854 | hasBin: true
1855 | dev: false
1856 |
1857 | /shebang-command/1.2.0:
1858 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=}
1859 | engines: {node: '>=0.10.0'}
1860 | dependencies:
1861 | shebang-regex: 1.0.0
1862 | dev: false
1863 |
1864 | /shebang-regex/1.0.0:
1865 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=}
1866 | engines: {node: '>=0.10.0'}
1867 | dev: false
1868 |
1869 | /shortid/2.2.16:
1870 | resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==}
1871 | dependencies:
1872 | nanoid: 2.1.11
1873 | dev: false
1874 |
1875 | /signal-exit/3.0.7:
1876 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1877 | dev: false
1878 |
1879 | /smart-buffer/1.1.15:
1880 | resolution: {integrity: sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=}
1881 | engines: {node: '>= 0.10.15', npm: '>= 1.3.5'}
1882 | dev: false
1883 |
1884 | /socks-proxy-agent/3.0.1:
1885 | resolution: {integrity: sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==}
1886 | dependencies:
1887 | agent-base: 4.3.0
1888 | socks: 1.1.10
1889 | dev: false
1890 |
1891 | /socks/1.1.10:
1892 | resolution: {integrity: sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=}
1893 | engines: {node: '>= 0.10.0', npm: '>= 1.3.5'}
1894 | deprecated: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
1895 | dependencies:
1896 | ip: 1.1.5
1897 | smart-buffer: 1.1.15
1898 | dev: false
1899 |
1900 | /sortablejs/1.15.0:
1901 | resolution: {integrity: sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==}
1902 | dev: false
1903 |
1904 | /source-map-js/1.0.2:
1905 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1906 | engines: {node: '>=0.10.0'}
1907 | dev: true
1908 |
1909 | /source-map/0.6.1:
1910 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1911 | engines: {node: '>=0.10.0'}
1912 | dev: true
1913 |
1914 | /sourcemap-codec/1.4.8:
1915 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
1916 | dev: false
1917 |
1918 | /spdx-correct/3.1.1:
1919 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
1920 | dependencies:
1921 | spdx-expression-parse: 3.0.1
1922 | spdx-license-ids: 3.0.11
1923 | dev: false
1924 |
1925 | /spdx-exceptions/2.3.0:
1926 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
1927 | dev: false
1928 |
1929 | /spdx-expression-parse/3.0.1:
1930 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
1931 | dependencies:
1932 | spdx-exceptions: 2.3.0
1933 | spdx-license-ids: 3.0.11
1934 | dev: false
1935 |
1936 | /spdx-license-ids/3.0.11:
1937 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==}
1938 | dev: false
1939 |
1940 | /ssri/4.1.6:
1941 | resolution: {integrity: sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==}
1942 | dependencies:
1943 | safe-buffer: 5.2.1
1944 | dev: false
1945 |
1946 | /ssri/5.3.0:
1947 | resolution: {integrity: sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==}
1948 | dependencies:
1949 | safe-buffer: 5.2.1
1950 | dev: false
1951 |
1952 | /stable/0.1.8:
1953 | resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
1954 | dev: true
1955 |
1956 | /stream-each/1.2.3:
1957 | resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==}
1958 | dependencies:
1959 | end-of-stream: 1.4.4
1960 | stream-shift: 1.0.1
1961 | dev: false
1962 |
1963 | /stream-shift/1.0.1:
1964 | resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==}
1965 | dev: false
1966 |
1967 | /string-width/2.1.1:
1968 | resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
1969 | engines: {node: '>=4'}
1970 | dependencies:
1971 | is-fullwidth-code-point: 2.0.0
1972 | strip-ansi: 4.0.0
1973 | dev: false
1974 |
1975 | /string_decoder/1.1.1:
1976 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
1977 | dependencies:
1978 | safe-buffer: 5.1.2
1979 | dev: false
1980 |
1981 | /strip-ansi/4.0.0:
1982 | resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=}
1983 | engines: {node: '>=4'}
1984 | dependencies:
1985 | ansi-regex: 3.0.1
1986 | dev: false
1987 |
1988 | /strip-ansi/5.2.0:
1989 | resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==}
1990 | engines: {node: '>=6'}
1991 | dependencies:
1992 | ansi-regex: 4.1.1
1993 | dev: false
1994 |
1995 | /strip-eof/1.0.0:
1996 | resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=}
1997 | engines: {node: '>=0.10.0'}
1998 | dev: false
1999 |
2000 | /strip-json-comments/2.0.1:
2001 | resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=}
2002 | engines: {node: '>=0.10.0'}
2003 | dev: false
2004 |
2005 | /supports-color/5.5.0:
2006 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
2007 | engines: {node: '>=4'}
2008 | dependencies:
2009 | has-flag: 3.0.0
2010 | dev: false
2011 |
2012 | /supports-preserve-symlinks-flag/1.0.0:
2013 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2014 | engines: {node: '>= 0.4'}
2015 |
2016 | /svelte-hmr/0.14.11_svelte@3.47.0:
2017 | resolution: {integrity: sha512-R9CVfX6DXxW1Kn45Jtmx+yUe+sPhrbYSUp7TkzbW0jI5fVPn6lsNG9NEs5dFg5qRhFNAoVdRw5qQDLALNKhwbQ==}
2018 | engines: {node: ^12.20 || ^14.13.1 || >= 16}
2019 | peerDependencies:
2020 | svelte: '>=3.19.0'
2021 | dependencies:
2022 | svelte: 3.47.0
2023 | dev: false
2024 |
2025 | /svelte/3.47.0:
2026 | resolution: {integrity: sha512-4JaJp3HEoTCGARRWZQIZDUanhYv0iyoHikklVHVLH9xFE9db22g4TDv7CPeNA8HD1JgjXI1vlhR1JZvvhaTu2Q==}
2027 | engines: {node: '>= 8'}
2028 | dev: false
2029 |
2030 | /svgo/2.8.0:
2031 | resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
2032 | engines: {node: '>=10.13.0'}
2033 | hasBin: true
2034 | dependencies:
2035 | '@trysound/sax': 0.2.0
2036 | commander: 7.2.0
2037 | css-select: 4.3.0
2038 | css-tree: 1.1.3
2039 | csso: 4.2.0
2040 | picocolors: 1.0.0
2041 | stable: 0.1.8
2042 | dev: true
2043 |
2044 | /tar-fs/1.16.3:
2045 | resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==}
2046 | dependencies:
2047 | chownr: 1.1.4
2048 | mkdirp: 0.5.6
2049 | pump: 1.0.3
2050 | tar-stream: 1.6.2
2051 | dev: false
2052 |
2053 | /tar-stream/1.6.2:
2054 | resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==}
2055 | engines: {node: '>= 0.8.0'}
2056 | dependencies:
2057 | bl: 1.2.3
2058 | buffer-alloc: 1.2.0
2059 | end-of-stream: 1.4.4
2060 | fs-constants: 1.0.0
2061 | readable-stream: 2.3.7
2062 | to-buffer: 1.1.1
2063 | xtend: 4.0.2
2064 | dev: false
2065 |
2066 | /term-size/1.2.0:
2067 | resolution: {integrity: sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=}
2068 | engines: {node: '>=4'}
2069 | dependencies:
2070 | execa: 0.7.0
2071 | dev: false
2072 |
2073 | /textextensions/2.6.0:
2074 | resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==}
2075 | engines: {node: '>=0.8'}
2076 | dev: false
2077 |
2078 | /through/2.3.8:
2079 | resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=}
2080 | dev: false
2081 |
2082 | /through2/2.0.5:
2083 | resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
2084 | dependencies:
2085 | readable-stream: 2.3.7
2086 | xtend: 4.0.2
2087 | dev: false
2088 |
2089 | /timed-out/4.0.1:
2090 | resolution: {integrity: sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=}
2091 | engines: {node: '>=0.10.0'}
2092 | dev: false
2093 |
2094 | /tmp/0.0.33:
2095 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
2096 | engines: {node: '>=0.6.0'}
2097 | dependencies:
2098 | os-tmpdir: 1.0.2
2099 | dev: false
2100 |
2101 | /to-buffer/1.1.1:
2102 | resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==}
2103 | dev: false
2104 |
2105 | /tslib/1.14.1:
2106 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
2107 | dev: false
2108 |
2109 | /typedarray/0.0.6:
2110 | resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=}
2111 | dev: false
2112 |
2113 | /unique-filename/1.1.1:
2114 | resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==}
2115 | dependencies:
2116 | unique-slug: 2.0.2
2117 | dev: false
2118 |
2119 | /unique-slug/2.0.2:
2120 | resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==}
2121 | dependencies:
2122 | imurmurhash: 0.1.4
2123 | dev: false
2124 |
2125 | /unique-string/1.0.0:
2126 | resolution: {integrity: sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=}
2127 | engines: {node: '>=4'}
2128 | dependencies:
2129 | crypto-random-string: 1.0.0
2130 | dev: false
2131 |
2132 | /universalify/0.1.2:
2133 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
2134 | engines: {node: '>= 4.0.0'}
2135 | dev: false
2136 |
2137 | /unzip-response/2.0.1:
2138 | resolution: {integrity: sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=}
2139 | engines: {node: '>=4'}
2140 | dev: false
2141 |
2142 | /update-notifier/2.5.0:
2143 | resolution: {integrity: sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==}
2144 | engines: {node: '>=4'}
2145 | dependencies:
2146 | boxen: 1.3.0
2147 | chalk: 2.4.2
2148 | configstore: 3.1.5
2149 | import-lazy: 2.1.0
2150 | is-ci: 1.2.1
2151 | is-installed-globally: 0.1.0
2152 | is-npm: 1.0.0
2153 | latest-version: 3.1.0
2154 | semver-diff: 2.1.0
2155 | xdg-basedir: 3.0.0
2156 | dev: false
2157 |
2158 | /url-parse-lax/1.0.0:
2159 | resolution: {integrity: sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=}
2160 | engines: {node: '>=0.10.0'}
2161 | dependencies:
2162 | prepend-http: 1.0.4
2163 | dev: false
2164 |
2165 | /util-deprecate/1.0.2:
2166 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
2167 | dev: false
2168 |
2169 | /validate-npm-package-license/3.0.4:
2170 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
2171 | dependencies:
2172 | spdx-correct: 3.1.1
2173 | spdx-expression-parse: 3.0.1
2174 | dev: false
2175 |
2176 | /validate-npm-package-name/3.0.0:
2177 | resolution: {integrity: sha1-X6kS2B630MdK/BQN5zF/DKffQ34=}
2178 | dependencies:
2179 | builtins: 1.0.3
2180 | dev: false
2181 |
2182 | /vite/2.9.5:
2183 | resolution: {integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==}
2184 | engines: {node: '>=12.2.0'}
2185 | hasBin: true
2186 | peerDependencies:
2187 | less: '*'
2188 | sass: '*'
2189 | stylus: '*'
2190 | peerDependenciesMeta:
2191 | less:
2192 | optional: true
2193 | sass:
2194 | optional: true
2195 | stylus:
2196 | optional: true
2197 | dependencies:
2198 | esbuild: 0.14.38
2199 | postcss: 8.4.12
2200 | resolve: 1.22.0
2201 | rollup: 2.70.2
2202 | optionalDependencies:
2203 | fsevents: 2.3.2
2204 | dev: true
2205 |
2206 | /which/1.3.1:
2207 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
2208 | hasBin: true
2209 | dependencies:
2210 | isexe: 2.0.0
2211 | dev: false
2212 |
2213 | /widest-line/2.0.1:
2214 | resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==}
2215 | engines: {node: '>=4'}
2216 | dependencies:
2217 | string-width: 2.1.1
2218 | dev: false
2219 |
2220 | /wrappy/1.0.2:
2221 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
2222 | dev: false
2223 |
2224 | /write-file-atomic/2.4.3:
2225 | resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==}
2226 | dependencies:
2227 | graceful-fs: 4.2.10
2228 | imurmurhash: 0.1.4
2229 | signal-exit: 3.0.7
2230 | dev: false
2231 |
2232 | /xdg-basedir/3.0.0:
2233 | resolution: {integrity: sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=}
2234 | engines: {node: '>=4'}
2235 | dev: false
2236 |
2237 | /xtend/4.0.2:
2238 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
2239 | engines: {node: '>=0.4'}
2240 | dev: false
2241 |
2242 | /y18n/3.2.2:
2243 | resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}
2244 | dev: false
2245 |
2246 | /y18n/4.0.3:
2247 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
2248 | dev: false
2249 |
2250 | /yallist/2.1.2:
2251 | resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=}
2252 | dev: false
2253 |
--------------------------------------------------------------------------------