├── .gitignore ├── .vscode └── extensions.json ├── Contribute.md ├── LICENSE ├── README.md ├── background.js ├── extension ├── html │ ├── devtools.html │ └── panel.html ├── js │ ├── content.js │ └── devtools.js └── temp.js ├── manifest.json ├── package-lock.json ├── package.json ├── public └── index.html ├── readme_images ├── basicTree.png ├── collapsedTree.png ├── mustafa.jpg ├── peter.png ├── showState.png ├── sunit.jpg └── william.jpg ├── rollup.config.js ├── src ├── App.svelte ├── Element.svelte ├── ElementTree.svelte ├── Footer.svelte ├── Modal.svelte ├── Navbar.svelte ├── allStores.svelte ├── assets │ ├── clock128.png │ ├── clock16.png │ ├── clock32.png │ ├── clock48.png │ ├── full_logo.png │ ├── full_logo_cropped.png │ ├── logo_no_backfill.png │ ├── logo_no_backfill_copy.pxd │ ├── logo_with_white_backfill.png │ ├── matte.pxd │ └── matte2.png ├── global.d.ts ├── main.ts └── oneStore.svelte └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .DS_Store 3 | public/build/ 4 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["svelte.svelte-vscode"] 3 | } 4 | -------------------------------------------------------------------------------- /Contribute.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | 6 | 7 | ## Contribute to the Sveltime Open Source Project 8 | 9 | Thank you for your interest in contributing to Sveltime! 10 | 11 | Know that you'll need a Svelte based test app that you will be able to run in dev mode. 12 | 13 | The extension folder is where you'll find Chrome dev tool parts of our application. The rest is built as a svelte app with most of the communication from front-end to back-end within App.svelte. 14 | 15 | Things we have planned but not yet implemented: 16 | 17 | * Time-jump/Snapshot: This will be the ability to store changes of state within a specific render as a snapshot and to jump between snapshots and visualize their differences. 18 | 19 | * FlowChart: Use d3 to view components in different forms and manipulate the data. 20 | 21 | * Stores: Currently we only visualize Svelte components. If you can integrate visualization of Svelte stores, that would be terrific! 22 | 23 | * Revisualize State: Think of new ways to display the organization of state within and between components. 24 | 25 | 26 | We're also very excited to see and hear the changes you have in mind for Sveltime! 27 | 28 | Feel free to reach out to any of us if you have any questions or concerns. 29 | 30 | ### Sunit Bhalotia
31 | Sunit's GitHub
32 | Sunit's LinkedIn 33 | 34 | 35 | ### William Reiff
36 | William's GitHub
37 | William's LinkedIn 38 | 39 | 40 | ### Mustafa Saleem
41 | Mustafa's GitHub
42 | Mustafa's LinkedIn 43 | 44 | 45 | ### Peter Steinberg
46 | Peter's GitHub
47 | Peter's LinkedIn -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 OSLabs Beta 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 all 13 | 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 THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | 6 | 7 | [Download from the Chrome Extension Store](https://chrome.google.com/webstore/detail/sveltime/ohihipnjpfmcgkdfgaibblakcaebhjhk?hl=en) 8 | 9 | 10 | **About Sveltime** 11 | 12 | 13 | Using our Chrome Dev Tool extension, Svelte developers can see their components hierarchically, with render times and state available at the component level. 14 | 15 | **Features** 16 | 17 | 18 | 19 | * Displays all rendered Svelte components 20 | 21 | 22 | 23 | 24 | 25 | * Puts components in a hierarchical collapsible tree format. 26 | 27 | 28 | 29 | 30 | * The state for any component can be displayed at the click of a button 31 | 32 | 33 | 34 | 35 | * Render times are displayed for each component. (**_beta_**) 36 | 37 | **Directions** 38 | 39 | 40 | 41 | 1. Download Sveltime from Chrome Extension Store and install. 42 | 2. Alternatively, you can clone the Sveltime repository on GitHub, install dependencies, and load it “unpacked” into the Chrome extension manager. 43 | 3. Run your own Svelte app in dev mode. 44 | 4. Open your app in Chrome. 45 | 5. Open Chrome Dev Tools and click on the Sveltime tab 46 | 6. Immediately you will see your app in component-tree format 47 | 7. You can click on any component to hide or reveal its children components 48 | 8. Render time can be seen to the right of each component’s name 49 | 9. Clicking on the green ‘state’ button will open a drawer which contains the state information for that component. 50 | 51 | **Authors** 52 | 53 |
54 | ### Sunit Bhalotia
55 | Sunit's GitHub
56 | Sunit's LinkedIn 57 | 58 | 59 | 60 |
61 | ### William Reiff
62 | William's GitHub
63 | William's LinkedIn 64 | 65 | 66 | 67 |
68 | ### Mustafa Saleem
69 | Mustafa's GitHub
70 | Mustafa's LinkedIn 71 | 72 | 73 | 74 |
75 | ### Peter Steinberg
76 | Peter's GitHub
77 | Peter's LinkedIn 78 | 79 | 80 | 81 | **Areas for Future Development** 82 | 83 | 84 | * Time Jump/Snapshot on changes in state 85 | * Visualization flow chart 86 | * Display stores alongside components 87 | * Have extension work with server-side rendering 88 | 89 | **How to Contribute** 90 | 91 | [Click here if you are interested in contributing.](https://github.com/oslabs-beta/Sveltime/blob/main/Contribute.md) 92 | 93 | **License** 94 | 95 | [MIT License](https://github.com/oslabs-beta/Sveltime/blob/main/LICENSE) 96 | 97 | **Sveltime is available now on the Chrome Store and on GitHub** 98 | -------------------------------------------------------------------------------- /background.js: -------------------------------------------------------------------------------- 1 | // console.log('this is the background script'); 2 | 3 | // chrome.runtime.onMessage.addListener((msg, sender, response)=> { 4 | // if (msg) { 5 | // console.log('i received msg: ', msg); 6 | // chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { 7 | 8 | // chrome.tabs.sendMessage(tabs[0].id, { header: msg }, () => {}); 9 | // }); 10 | // } 11 | // return true; 12 | // }); 13 | 14 | 15 | 16 | let messageFromContentScript; 17 | let first = true; 18 | let portBackground; 19 | 20 | chrome.runtime.onMessage.addListener((msg, sender, response) => { 21 | if (msg) { 22 | // console.log('msg received in background.js', msg); 23 | messageFromContentScript = msg; 24 | if (!first) { 25 | portBackground.postMessage(messageFromContentScript); 26 | } 27 | 28 | if (first) { 29 | chrome.runtime.onConnect.addListener(port => { 30 | if (port.name === 'svelte-background-connection') { 31 | portBackground = port; 32 | port.onMessage.addListener((message) => { 33 | // console.log('msg received in background.js from App.svelte : ', message); 34 | 35 | }); 36 | // console.log('background.js msg before posting to App.svelte', messageFromContentScript); 37 | port.postMessage(messageFromContentScript); 38 | messageFromContentScript = ''; 39 | first = false; 40 | } 41 | }); 42 | } 43 | } 44 | // chrome.runtime.sendMessage(msg); 45 | // chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { 46 | // chrome.tabs.sendMessage(tabs[0].id, msg, function(response) {}); 47 | // }); 48 | }); 49 | 50 | // chrome.runtime.onMessage.addListener((msg, sender, response)=> { 51 | // if(msg === 'app component mounted'){ 52 | // console.log(` background.js message ${msg} recieved from sender ${sender}`); 53 | // chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { 54 | // chrome.tabs.sendMessage(tabs[0].id, msg, function(response) {}); 55 | // }); 56 | // } 57 | // return true; 58 | // }); 59 | 60 | // chrome.runtime.onConnect.addListener(function(port) { 61 | // console.assert(port.name === "knockknock"); 62 | // port.onMessage.addListener(function(msg) { 63 | // console.log('msg: ', msg); 64 | // if (msg.joke === "Knock knock") 65 | // port.postMessage({question: "Who's there?"}); 66 | // else if (msg.answer === "Madame") 67 | // port.postMessage({question: "Madame who?"}); 68 | // else if (msg.answer === "Madame... Bovary") 69 | // port.postMessage({question: "I don't get it."}); 70 | // }); 71 | // }); 72 | -------------------------------------------------------------------------------- /extension/html/devtools.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

devtools.html

5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extension/html/panel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Basic devtools panel

5 | 6 | 7 | -------------------------------------------------------------------------------- /extension/js/content.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | (function() { 3 | //console.log('This is the content script'); 4 | let componentArr = []; 5 | let componentFragmentArr = []; 6 | let componentTimeArr = []; 7 | let addComponentTimeArr = []; 8 | const componentMap = new Map(); 9 | const componentMap2 = new Map(); 10 | const componentObj1 = {}; 11 | let componentObj2 = {}; 12 | let firstRender = true; 13 | let addedComponents = 0; 14 | let mountedComponents = 0; 15 | let addComponentArr = []; 16 | let componentDetailsList = []; 17 | let addComponentDetailsList = []; 18 | 19 | function deleteTimeComponent(arrComponent, arrTimeComponent, event) { 20 | let index; 21 | if (arrTimeComponent.length !== arrComponent.length) { 22 | console.log('ARR TIME and ARR do not have equal lengths. EXITING'); 23 | return; 24 | } 25 | for (let i = 0 ; i < arrTimeComponent.length; i++) { 26 | if (arrTimeComponent[i][1] === parseFloat(event.timeStamp.toFixed(10))) { 27 | index = i; 28 | break; 29 | } 30 | } 31 | for (let i = index; i < arrTimeComponent.length; i++) { 32 | arrTimeComponent[i] = arrTimeComponent[i + 1]; 33 | arrComponent[i] = arrComponent[i + 1]; 34 | } 35 | 36 | arrTimeComponent.splice(arrTimeComponent.length - 1); 37 | arrComponent.splice(arrComponent.length - 1); 38 | //console.log('arrTimeComponent after delete: ', arrTimeComponent); 39 | //console.log('arrComponent after delete: ', arrComponent); 40 | componentDetailsList.splice(index, 1); 41 | 42 | 43 | } 44 | function deleteComponent(arr, map, event) { 45 | let index = 0; 46 | //console.log('map.get(event): ', map.get(event)); 47 | for (let i = map.get(event); i < arr.length - 1; i++) { 48 | arr[i] = arr[i + 1]; 49 | } 50 | //console.log('map: ', map); 51 | map.delete(event); 52 | return arr.splice(arr.length - 1); 53 | } 54 | 55 | let start; 56 | window.document.addEventListener('SvelteRegisterComponent', (e) => { 57 | //console.log('svelteRegisterComponent e:', e); 58 | start = window.performance.now(); 59 | 60 | componentObj1[e.detail.tagName + parseFloat(e.timeStamp.toFixed(10))] = e; 61 | 62 | if (!firstRender) { 63 | componentMap2.set(componentArr.length + addedComponents, e); 64 | addedComponents++; 65 | addComponentTimeArr.push([e.detail.tagName, parseFloat(e.timeStamp.toFixed(10))]); 66 | 67 | addComponentArr.push(e.detail.tagName); 68 | addComponentDetailsList.push({'name': e.detail.tagName, 'details': e.detail.component.$capture_state()}); 69 | } 70 | 71 | e.detail.component.$$.on_mount.push(() => { 72 | e.detail.component.customRenderTime = window.performance.now() - start; 73 | 74 | //console.log(e.detail.tagName, ' just mounted'); 75 | //console.log('customRenderTime: ', e.detail.component.customRenderTime); 76 | if (!firstRender) { 77 | mountedComponents++; 78 | if (mountedComponents === addedComponents && addComponentArr.length > 0) { 79 | //console.log('addComponentArr: ', addComponentArr); 80 | for (let i = componentArr.length - 1; i >= 0; i--) { 81 | if (componentArr[i] === addComponentArr[addComponentArr.length - 1]) { 82 | for (let k = componentArr.length - 1; k > i; k--) { 83 | //console.log('i k: ', i, k); 84 | componentDetailsList[k + addComponentDetailsList.length] = componentDetailsList[k] 85 | componentArr[k + addComponentArr.length] = componentArr[k]; 86 | componentTimeArr[k + addComponentArr.length] = componentTimeArr[k].slice(); 87 | componentMap.set(componentMap2.get(k), k + addComponentArr.length); 88 | //console.log('componentArr after first push: ', componentArr); 89 | } 90 | const len = componentMap.size; 91 | //console.log('componentMap2: ', componentMap2); 92 | for (let j = 0; j < addComponentArr.length; j++) { 93 | componentDetailsList[i + 1] = addComponentDetailsList[j] 94 | componentArr[i + 1] = addComponentArr[j]; 95 | componentTimeArr[i + 1] = addComponentTimeArr[j].slice(); 96 | componentMap.set(componentMap2.get(len + j), len - addComponentArr.length + j); 97 | i++; 98 | } 99 | break; 100 | } 101 | } 102 | //console.log('componentMap on add: ', componentMap); 103 | //console.log(componentArr); 104 | //console.log('componentTimeArr: ', componentTimeArr); 105 | 106 | // window.postMessage(JSON.stringify({'componentTimeArr': componentTimeArr, 'componentDetailsList': componentDetailsList})); 107 | 108 | for (const [key, value] of Object.entries(componentObj1)) { 109 | componentObj2[key] = value.detail.component.$capture_state(); 110 | } 111 | 112 | window.postMessage(JSON.stringify({'componentTimeArr': componentTimeArr, 'componentDetailsList': componentDetailsList, 'componentObj2' : componentObj2})); 113 | 114 | componentObj2 = {}; 115 | 116 | addedComponents = 0; 117 | mountedComponents = 0; 118 | addComponentArr = []; 119 | addComponentTimeArr = []; 120 | addComponentDetailsList = []; 121 | } 122 | } 123 | 124 | 125 | }); 126 | e.detail.component.$$.on_destroy.push(() => { 127 | //console.log('e.detail.component.$$.on_destroy: ', e.detail.tagName, ' was destroyed!'); 128 | // deleteComponent(componentArr, componentMap, e); 129 | deleteTimeComponent(componentArr, componentTimeArr, e); 130 | //console.log('componentArr on destroy: ', componentArr); 131 | 132 | // window.postMessage(JSON.stringify({'componentTimeArr': componentTimeArr, 'componentDetailsList': componentDetailsList})); 133 | 134 | for (const [key, value] of Object.entries(componentObj1)) { 135 | componentObj2[key] = value.detail.component.$capture_state(); 136 | } 137 | 138 | window.postMessage(JSON.stringify({'componentTimeArr': componentTimeArr, 'componentDetailsList': componentDetailsList, 'componentObj2' : componentObj2})); 139 | 140 | componentObj2 = {}; 141 | }); 142 | 143 | 144 | if (firstRender) { 145 | 146 | componentMap2.set(componentArr.length, e); 147 | componentMap.set(e, componentArr.length); 148 | componentTimeArr.push([e.detail.tagName, parseFloat(e.timeStamp.toFixed(10))]); 149 | componentArr.push(e.detail.tagName); 150 | componentDetailsList.push({'name': e.detail.tagName, 'details': e.detail.component.$capture_state()}); 151 | } 152 | //console.log('e.detail.tagName: ',e.detail.tagName, 'e.detail.id: ',e.detail.id); 153 | 154 | if (e.detail.id === 'create_fragment' && firstRender){ 155 | // console.log('componentMap2: ', componentMap2); 156 | //console.log('componentArr on original render: ', componentArr); 157 | // window.postMessage(JSON.stringify({'componentTimeArr': componentTimeArr, 'componentDetailsList': componentDetailsList})); 158 | 159 | for (const [key, value] of Object.entries(componentObj1)) { 160 | componentObj2[key] = value.detail.component.$capture_state(); 161 | } 162 | 163 | window.postMessage(JSON.stringify({'componentTimeArr': componentTimeArr, 'componentDetailsList': componentDetailsList, 'componentObj2' : componentObj2})); 164 | 165 | componentObj2 = {}; 166 | 167 | firstRender = false; 168 | } 169 | 170 | }); 171 | })()`; 172 | 173 | document.documentElement.setAttribute('onreset', code); 174 | document.documentElement.dispatchEvent(new CustomEvent('reset')); 175 | 176 | function rebaseRenderTime(arr) { 177 | if (!arr.length) return arr; 178 | for (let i = arr.length - 1; i > 0; i--) { 179 | arr[i][1] -= arr[i - 1][1]; 180 | arr[i][1] = arr[i][1].toFixed(2); 181 | } 182 | arr[0][1] = 0.00; 183 | return arr; 184 | } 185 | 186 | function resetComponentDetailsList(parsedData) { 187 | const { componentTimeArr, componentDetailsList, componentObj2 } = parsedData; 188 | if (componentTimeArr.length !== componentDetailsList.length) { 189 | console.log('ERROR: componentTimeArr and componentDetailsList do not have the same length'); 190 | return; 191 | } 192 | for (let i = 0; i < componentTimeArr.length; i++) { 193 | if (componentTimeArr[i][0] !== componentDetailsList[i].name) { 194 | console.log(`ERROR: Elements at index ${i} do not match in componentTimeArr and componentDetailsList`); 195 | return; 196 | } 197 | const key = componentTimeArr[i][0] + componentTimeArr[i][1]; 198 | componentDetailsList[i].details = componentObj2[key]; 199 | } 200 | parsedData.componentObj2 = null; 201 | return parsedData; 202 | } 203 | 204 | window.addEventListener("message", function(event) { 205 | let parsedData = JSON.parse(event.data); 206 | parsedData = resetComponentDetailsList(parsedData); 207 | //console.log('parsedData before rebase: ', parsedData); 208 | parsedData.componentTimeArr = rebaseRenderTime(parsedData.componentTimeArr); 209 | //console.log('parsedData: ', parsedData); 210 | chrome.runtime.sendMessage(parsedData); 211 | }); 212 | 213 | 214 | 215 | // window.document.addEventListener('SvelteDOMInsert', e => { 216 | // console.log('svelteDOMinsert e: ', e); 217 | // }); 218 | // window.document.addEventListener('SvelteDOMRemove', e => { console.log('svelteDOMRemove e: ', e); }); 219 | // window.document.addEventListener('SvelteDOMAddEventListener', e => {console.log('svelteDOMAddEventListener e :', e);}); 220 | // window.document.addEventListener('SvelteRegisterBlock', (e) => { 221 | // console.log('svelteRegisterBlock: e: ', e); 222 | // }) -------------------------------------------------------------------------------- /extension/js/devtools.js: -------------------------------------------------------------------------------- 1 | chrome.devtools.panels.create("Sveltime", null, "/public/index.html", null); 2 | 3 | // chrome.runtime.onMessage.addListener((msg, sender, response)=> { 4 | // console.log(` devtools.js message ${msg} recieved from sender ${sender}`); 5 | // // msg = JSON.parse(msg); 6 | // if (Array.isArray(msg)) { 7 | // for (let i = 0; i < msg.length; i++) { 8 | // console.log(`msg[${i}]: `, msg[i]); 9 | // } 10 | // } 11 | // }); 12 | // chrome.runtime.onMessage.addListener((msg, sender, response) => { 13 | // console.log('msg received in devtools.js', msg); 14 | // }); 15 | 16 | chrome.runtime.onConnect.addListener(port => { 17 | if (port.name === 'svelte-devtools-connection') { 18 | port.onMessage.addListener((msg) => { 19 | let arrSvelteFiles; 20 | if (msg.name === 'start') { 21 | //console.log('msg received in devtools.js from App.svelete', msg); 22 | chrome.devtools.inspectedWindow.getResources((resources) => { 23 | // console.log('resources: ', resources); 24 | arrSvelteFiles = resources.filter((file) => !!file.url.match(/.svelte$/)); 25 | //console.log('svelte files array: ', arrSvelteFiles); 26 | const newArr = []; 27 | function recursiveCreateNewArr(arrSvelteFiles, index = 0) { 28 | if (arrSvelteFiles[index] === undefined) { 29 | port.postMessage({ newArr }); 30 | return; 31 | } 32 | arrSvelteFiles[index].getContent((source) => { 33 | newArr.push({ 34 | url: arrSvelteFiles[index].url, 35 | type: arrSvelteFiles[index].type, 36 | source, 37 | }); 38 | recursiveCreateNewArr(arrSvelteFiles, index + 1); 39 | }); 40 | } 41 | recursiveCreateNewArr(arrSvelteFiles); 42 | //console.log('newArr: ', newArr); 43 | }); 44 | } 45 | }); 46 | } 47 | // }); 48 | // ========== 49 | 50 | 51 | 52 | // chrome.runtime.onConnect.addListener((port) => { 53 | // console.assert(port.name === "svelte-devtools-connection"); 54 | // port.onMessage.addListener((msg) => { 55 | // let arrSvelteFiles; 56 | // if (msg.name === "start") { 57 | // chrome.devtools.inspectedWindow.getResources((resources) => { 58 | // console.log("resources: ", resources); 59 | // arrSvelteFiles = resources.filter( 60 | // (file) => !!file.url.match(/.svelte$/) 61 | // ); 62 | // console.log("svelte files array: ", arrSvelteFiles); 63 | // const newArr = []; 64 | // function recursiveCreateNewArr(arrSvelteFiles, index = 0) { 65 | // if (arrSvelteFiles[index] === undefined) { 66 | // port.postMessage({ newArr }); 67 | // return; 68 | // } 69 | // arrSvelteFiles[index].getContent((source) => { 70 | // newArr.push({ 71 | // url: arrSvelteFiles[index].url, 72 | // type: arrSvelteFiles[index].type, 73 | // source, 74 | // }); 75 | // recursiveCreateNewArr(arrSvelteFiles, index + 1); 76 | // }); 77 | // } 78 | // recursiveCreateNewArr(arrSvelteFiles); 79 | // console.log("newArr: ", newArr); 80 | // }); 81 | // } 82 | // }); 83 | }); 84 | -------------------------------------------------------------------------------- /extension/temp.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/extension/temp.js -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | 4 | "name": "Sveltime", 5 | "version": "1.0", 6 | 7 | "description": "Developer Tool to analyze Svelte apps and list component trees, state, and render timing", 8 | "author": "Team Sveltime", 9 | 10 | "icons": { 11 | "16": "/src/assets/clock16.png", 12 | "32": "/src/assets/clock32.png", 13 | "48": "/src/assets/clock48.png", 14 | "128": "/src/assets/clock128.png" 15 | }, 16 | 17 | "devtools_page": "extension/html/devtools.html", 18 | "content_scripts": [ 19 | { 20 | "matches": [""], 21 | "js": ["/extension/js/content.js"], 22 | "run_at": "document_start" 23 | } 24 | ], 25 | 26 | "background": { 27 | "service_worker": "background.js" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sveltime", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "sveltime", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "@types/chrome": "^0.0.185", 13 | "rollup-plugin-css-only": "^3.1.0", 14 | "svelte": "^3.48.0" 15 | }, 16 | "devDependencies": { 17 | "@rollup/plugin-node-resolve": "^13.3.0", 18 | "@rollup/plugin-typescript": "^8.0.0", 19 | "@tsconfig/svelte": "^2.0.0", 20 | "rollup": "^2.72.1", 21 | "rollup-plugin-livereload": "^2.0.5", 22 | "rollup-plugin-svelte": "^7.1.0", 23 | "rollup-plugin-typescript2": "^0.31.2", 24 | "sirv-cli": "^2.0.2", 25 | "svelte-check": "^2.0.0", 26 | "svelte-preprocess": "^4.0.0", 27 | "tslib": "^2.0.0", 28 | "typescript": "^4.0.0" 29 | } 30 | }, 31 | "node_modules/@nodelib/fs.scandir": { 32 | "version": "2.1.5", 33 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 34 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 35 | "dev": true, 36 | "dependencies": { 37 | "@nodelib/fs.stat": "2.0.5", 38 | "run-parallel": "^1.1.9" 39 | }, 40 | "engines": { 41 | "node": ">= 8" 42 | } 43 | }, 44 | "node_modules/@nodelib/fs.stat": { 45 | "version": "2.0.5", 46 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 47 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 48 | "dev": true, 49 | "engines": { 50 | "node": ">= 8" 51 | } 52 | }, 53 | "node_modules/@nodelib/fs.walk": { 54 | "version": "1.2.8", 55 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 56 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 57 | "dev": true, 58 | "dependencies": { 59 | "@nodelib/fs.scandir": "2.1.5", 60 | "fastq": "^1.6.0" 61 | }, 62 | "engines": { 63 | "node": ">= 8" 64 | } 65 | }, 66 | "node_modules/@polka/url": { 67 | "version": "1.0.0-next.21", 68 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", 69 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", 70 | "dev": true 71 | }, 72 | "node_modules/@rollup/plugin-node-resolve": { 73 | "version": "13.3.0", 74 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", 75 | "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", 76 | "dev": true, 77 | "dependencies": { 78 | "@rollup/pluginutils": "^3.1.0", 79 | "@types/resolve": "1.17.1", 80 | "deepmerge": "^4.2.2", 81 | "is-builtin-module": "^3.1.0", 82 | "is-module": "^1.0.0", 83 | "resolve": "^1.19.0" 84 | }, 85 | "engines": { 86 | "node": ">= 10.0.0" 87 | }, 88 | "peerDependencies": { 89 | "rollup": "^2.42.0" 90 | } 91 | }, 92 | "node_modules/@rollup/plugin-typescript": { 93 | "version": "8.3.2", 94 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", 95 | "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", 96 | "dev": true, 97 | "dependencies": { 98 | "@rollup/pluginutils": "^3.1.0", 99 | "resolve": "^1.17.0" 100 | }, 101 | "engines": { 102 | "node": ">=8.0.0" 103 | }, 104 | "peerDependencies": { 105 | "rollup": "^2.14.0", 106 | "tslib": "*", 107 | "typescript": ">=3.7.0" 108 | } 109 | }, 110 | "node_modules/@rollup/pluginutils": { 111 | "version": "3.1.0", 112 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 113 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 114 | "dev": true, 115 | "dependencies": { 116 | "@types/estree": "0.0.39", 117 | "estree-walker": "^1.0.1", 118 | "picomatch": "^2.2.2" 119 | }, 120 | "engines": { 121 | "node": ">= 8.0.0" 122 | }, 123 | "peerDependencies": { 124 | "rollup": "^1.20.0||^2.0.0" 125 | } 126 | }, 127 | "node_modules/@tsconfig/svelte": { 128 | "version": "2.0.1", 129 | "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-2.0.1.tgz", 130 | "integrity": "sha512-aqkICXbM1oX5FfgZd2qSSAGdyo/NRxjWCamxoyi3T8iVQnzGge19HhDYzZ6NrVOW7bhcWNSq9XexWFtMzbB24A==", 131 | "dev": true 132 | }, 133 | "node_modules/@types/chrome": { 134 | "version": "0.0.185", 135 | "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.185.tgz", 136 | "integrity": "sha512-HU0q31jtBHSfqtqW5TqqgU+BnSiUJdB98qFWT1SD2gXZxk8NVuogNmv7T+WUL+q2/GEer/4est19A1h8FdehYQ==", 137 | "dependencies": { 138 | "@types/filesystem": "*", 139 | "@types/har-format": "*" 140 | } 141 | }, 142 | "node_modules/@types/estree": { 143 | "version": "0.0.39", 144 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 145 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 146 | "dev": true 147 | }, 148 | "node_modules/@types/filesystem": { 149 | "version": "0.0.32", 150 | "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.32.tgz", 151 | "integrity": "sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==", 152 | "dependencies": { 153 | "@types/filewriter": "*" 154 | } 155 | }, 156 | "node_modules/@types/filewriter": { 157 | "version": "0.0.29", 158 | "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz", 159 | "integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==" 160 | }, 161 | "node_modules/@types/har-format": { 162 | "version": "1.2.8", 163 | "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.8.tgz", 164 | "integrity": "sha512-OP6L9VuZNdskgNN3zFQQ54ceYD8OLq5IbqO4VK91ORLfOm7WdT/CiT/pHEBSQEqCInJ2y3O6iCm/zGtPElpgJQ==" 165 | }, 166 | "node_modules/@types/node": { 167 | "version": "17.0.32", 168 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", 169 | "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==", 170 | "dev": true 171 | }, 172 | "node_modules/@types/pug": { 173 | "version": "2.0.6", 174 | "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", 175 | "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", 176 | "dev": true 177 | }, 178 | "node_modules/@types/resolve": { 179 | "version": "1.17.1", 180 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 181 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", 182 | "dev": true, 183 | "dependencies": { 184 | "@types/node": "*" 185 | } 186 | }, 187 | "node_modules/@types/sass": { 188 | "version": "1.43.1", 189 | "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", 190 | "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", 191 | "dev": true, 192 | "dependencies": { 193 | "@types/node": "*" 194 | } 195 | }, 196 | "node_modules/@yarn-tool/resolve-package": { 197 | "version": "1.0.47", 198 | "resolved": "https://registry.npmjs.org/@yarn-tool/resolve-package/-/resolve-package-1.0.47.tgz", 199 | "integrity": "sha512-Zaw58gQxjQceJqhqybJi1oUDaORT8i2GTgwICPs8v/X/Pkx35FXQba69ldHVg5pQZ6YLKpROXgyHvBaCJOFXiA==", 200 | "dev": true, 201 | "dependencies": { 202 | "pkg-dir": "< 6 >= 5", 203 | "tslib": "^2", 204 | "upath2": "^3.1.13" 205 | } 206 | }, 207 | "node_modules/anymatch": { 208 | "version": "3.1.2", 209 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 210 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 211 | "dev": true, 212 | "dependencies": { 213 | "normalize-path": "^3.0.0", 214 | "picomatch": "^2.0.4" 215 | }, 216 | "engines": { 217 | "node": ">= 8" 218 | } 219 | }, 220 | "node_modules/balanced-match": { 221 | "version": "1.0.2", 222 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 223 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 224 | "dev": true 225 | }, 226 | "node_modules/binary-extensions": { 227 | "version": "2.2.0", 228 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 229 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 230 | "dev": true, 231 | "engines": { 232 | "node": ">=8" 233 | } 234 | }, 235 | "node_modules/brace-expansion": { 236 | "version": "1.1.11", 237 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 238 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 239 | "dev": true, 240 | "dependencies": { 241 | "balanced-match": "^1.0.0", 242 | "concat-map": "0.0.1" 243 | } 244 | }, 245 | "node_modules/braces": { 246 | "version": "3.0.2", 247 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 248 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 249 | "dev": true, 250 | "dependencies": { 251 | "fill-range": "^7.0.1" 252 | }, 253 | "engines": { 254 | "node": ">=8" 255 | } 256 | }, 257 | "node_modules/buffer-crc32": { 258 | "version": "0.2.13", 259 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 260 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 261 | "dev": true, 262 | "engines": { 263 | "node": "*" 264 | } 265 | }, 266 | "node_modules/builtin-modules": { 267 | "version": "3.2.0", 268 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", 269 | "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", 270 | "dev": true, 271 | "engines": { 272 | "node": ">=6" 273 | }, 274 | "funding": { 275 | "url": "https://github.com/sponsors/sindresorhus" 276 | } 277 | }, 278 | "node_modules/callsites": { 279 | "version": "3.1.0", 280 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 281 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 282 | "dev": true, 283 | "engines": { 284 | "node": ">=6" 285 | } 286 | }, 287 | "node_modules/chokidar": { 288 | "version": "3.5.3", 289 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 290 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 291 | "dev": true, 292 | "funding": [ 293 | { 294 | "type": "individual", 295 | "url": "https://paulmillr.com/funding/" 296 | } 297 | ], 298 | "dependencies": { 299 | "anymatch": "~3.1.2", 300 | "braces": "~3.0.2", 301 | "glob-parent": "~5.1.2", 302 | "is-binary-path": "~2.1.0", 303 | "is-glob": "~4.0.1", 304 | "normalize-path": "~3.0.0", 305 | "readdirp": "~3.6.0" 306 | }, 307 | "engines": { 308 | "node": ">= 8.10.0" 309 | }, 310 | "optionalDependencies": { 311 | "fsevents": "~2.3.2" 312 | } 313 | }, 314 | "node_modules/commondir": { 315 | "version": "1.0.1", 316 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 317 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 318 | "dev": true 319 | }, 320 | "node_modules/concat-map": { 321 | "version": "0.0.1", 322 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 323 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 324 | "dev": true 325 | }, 326 | "node_modules/console-clear": { 327 | "version": "1.1.1", 328 | "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", 329 | "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", 330 | "dev": true, 331 | "engines": { 332 | "node": ">=4" 333 | } 334 | }, 335 | "node_modules/deepmerge": { 336 | "version": "4.2.2", 337 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 338 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 339 | "dev": true, 340 | "engines": { 341 | "node": ">=0.10.0" 342 | } 343 | }, 344 | "node_modules/detect-indent": { 345 | "version": "6.1.0", 346 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", 347 | "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", 348 | "dev": true, 349 | "engines": { 350 | "node": ">=8" 351 | } 352 | }, 353 | "node_modules/es6-promise": { 354 | "version": "3.3.1", 355 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", 356 | "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", 357 | "dev": true 358 | }, 359 | "node_modules/estree-walker": { 360 | "version": "1.0.1", 361 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 362 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 363 | "dev": true 364 | }, 365 | "node_modules/fast-glob": { 366 | "version": "3.2.11", 367 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 368 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 369 | "dev": true, 370 | "dependencies": { 371 | "@nodelib/fs.stat": "^2.0.2", 372 | "@nodelib/fs.walk": "^1.2.3", 373 | "glob-parent": "^5.1.2", 374 | "merge2": "^1.3.0", 375 | "micromatch": "^4.0.4" 376 | }, 377 | "engines": { 378 | "node": ">=8.6.0" 379 | } 380 | }, 381 | "node_modules/fastq": { 382 | "version": "1.13.0", 383 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 384 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 385 | "dev": true, 386 | "dependencies": { 387 | "reusify": "^1.0.4" 388 | } 389 | }, 390 | "node_modules/fill-range": { 391 | "version": "7.0.1", 392 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 393 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 394 | "dev": true, 395 | "dependencies": { 396 | "to-regex-range": "^5.0.1" 397 | }, 398 | "engines": { 399 | "node": ">=8" 400 | } 401 | }, 402 | "node_modules/find-cache-dir": { 403 | "version": "3.3.2", 404 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", 405 | "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", 406 | "dev": true, 407 | "dependencies": { 408 | "commondir": "^1.0.1", 409 | "make-dir": "^3.0.2", 410 | "pkg-dir": "^4.1.0" 411 | }, 412 | "engines": { 413 | "node": ">=8" 414 | }, 415 | "funding": { 416 | "url": "https://github.com/avajs/find-cache-dir?sponsor=1" 417 | } 418 | }, 419 | "node_modules/find-cache-dir/node_modules/find-up": { 420 | "version": "4.1.0", 421 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 422 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 423 | "dev": true, 424 | "dependencies": { 425 | "locate-path": "^5.0.0", 426 | "path-exists": "^4.0.0" 427 | }, 428 | "engines": { 429 | "node": ">=8" 430 | } 431 | }, 432 | "node_modules/find-cache-dir/node_modules/locate-path": { 433 | "version": "5.0.0", 434 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 435 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 436 | "dev": true, 437 | "dependencies": { 438 | "p-locate": "^4.1.0" 439 | }, 440 | "engines": { 441 | "node": ">=8" 442 | } 443 | }, 444 | "node_modules/find-cache-dir/node_modules/p-limit": { 445 | "version": "2.3.0", 446 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 447 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 448 | "dev": true, 449 | "dependencies": { 450 | "p-try": "^2.0.0" 451 | }, 452 | "engines": { 453 | "node": ">=6" 454 | }, 455 | "funding": { 456 | "url": "https://github.com/sponsors/sindresorhus" 457 | } 458 | }, 459 | "node_modules/find-cache-dir/node_modules/p-locate": { 460 | "version": "4.1.0", 461 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 462 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 463 | "dev": true, 464 | "dependencies": { 465 | "p-limit": "^2.2.0" 466 | }, 467 | "engines": { 468 | "node": ">=8" 469 | } 470 | }, 471 | "node_modules/find-cache-dir/node_modules/pkg-dir": { 472 | "version": "4.2.0", 473 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 474 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 475 | "dev": true, 476 | "dependencies": { 477 | "find-up": "^4.0.0" 478 | }, 479 | "engines": { 480 | "node": ">=8" 481 | } 482 | }, 483 | "node_modules/find-up": { 484 | "version": "5.0.0", 485 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 486 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 487 | "dev": true, 488 | "dependencies": { 489 | "locate-path": "^6.0.0", 490 | "path-exists": "^4.0.0" 491 | }, 492 | "engines": { 493 | "node": ">=10" 494 | }, 495 | "funding": { 496 | "url": "https://github.com/sponsors/sindresorhus" 497 | } 498 | }, 499 | "node_modules/fs-extra": { 500 | "version": "10.1.0", 501 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 502 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 503 | "dev": true, 504 | "dependencies": { 505 | "graceful-fs": "^4.2.0", 506 | "jsonfile": "^6.0.1", 507 | "universalify": "^2.0.0" 508 | }, 509 | "engines": { 510 | "node": ">=12" 511 | } 512 | }, 513 | "node_modules/fs.realpath": { 514 | "version": "1.0.0", 515 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 516 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 517 | "dev": true 518 | }, 519 | "node_modules/fsevents": { 520 | "version": "2.3.2", 521 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 522 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 523 | "hasInstallScript": true, 524 | "optional": true, 525 | "os": [ 526 | "darwin" 527 | ], 528 | "engines": { 529 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 530 | } 531 | }, 532 | "node_modules/function-bind": { 533 | "version": "1.1.1", 534 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 535 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 536 | "dev": true 537 | }, 538 | "node_modules/get-port": { 539 | "version": "3.2.0", 540 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 541 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", 542 | "dev": true, 543 | "engines": { 544 | "node": ">=4" 545 | } 546 | }, 547 | "node_modules/glob": { 548 | "version": "7.2.0", 549 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 550 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 551 | "dev": true, 552 | "dependencies": { 553 | "fs.realpath": "^1.0.0", 554 | "inflight": "^1.0.4", 555 | "inherits": "2", 556 | "minimatch": "^3.0.4", 557 | "once": "^1.3.0", 558 | "path-is-absolute": "^1.0.0" 559 | }, 560 | "engines": { 561 | "node": "*" 562 | }, 563 | "funding": { 564 | "url": "https://github.com/sponsors/isaacs" 565 | } 566 | }, 567 | "node_modules/glob-parent": { 568 | "version": "5.1.2", 569 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 570 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 571 | "dev": true, 572 | "dependencies": { 573 | "is-glob": "^4.0.1" 574 | }, 575 | "engines": { 576 | "node": ">= 6" 577 | } 578 | }, 579 | "node_modules/graceful-fs": { 580 | "version": "4.2.10", 581 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 582 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 583 | "dev": true 584 | }, 585 | "node_modules/has": { 586 | "version": "1.0.3", 587 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 588 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 589 | "dev": true, 590 | "dependencies": { 591 | "function-bind": "^1.1.1" 592 | }, 593 | "engines": { 594 | "node": ">= 0.4.0" 595 | } 596 | }, 597 | "node_modules/import-fresh": { 598 | "version": "3.3.0", 599 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 600 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 601 | "dev": true, 602 | "dependencies": { 603 | "parent-module": "^1.0.0", 604 | "resolve-from": "^4.0.0" 605 | }, 606 | "engines": { 607 | "node": ">=6" 608 | }, 609 | "funding": { 610 | "url": "https://github.com/sponsors/sindresorhus" 611 | } 612 | }, 613 | "node_modules/inflight": { 614 | "version": "1.0.6", 615 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 616 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 617 | "dev": true, 618 | "dependencies": { 619 | "once": "^1.3.0", 620 | "wrappy": "1" 621 | } 622 | }, 623 | "node_modules/inherits": { 624 | "version": "2.0.4", 625 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 626 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 627 | "dev": true 628 | }, 629 | "node_modules/is-binary-path": { 630 | "version": "2.1.0", 631 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 632 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 633 | "dev": true, 634 | "dependencies": { 635 | "binary-extensions": "^2.0.0" 636 | }, 637 | "engines": { 638 | "node": ">=8" 639 | } 640 | }, 641 | "node_modules/is-builtin-module": { 642 | "version": "3.1.0", 643 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", 644 | "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", 645 | "dev": true, 646 | "dependencies": { 647 | "builtin-modules": "^3.0.0" 648 | }, 649 | "engines": { 650 | "node": ">=6" 651 | } 652 | }, 653 | "node_modules/is-core-module": { 654 | "version": "2.9.0", 655 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 656 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 657 | "dev": true, 658 | "dependencies": { 659 | "has": "^1.0.3" 660 | }, 661 | "funding": { 662 | "url": "https://github.com/sponsors/ljharb" 663 | } 664 | }, 665 | "node_modules/is-extglob": { 666 | "version": "2.1.1", 667 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 668 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 669 | "dev": true, 670 | "engines": { 671 | "node": ">=0.10.0" 672 | } 673 | }, 674 | "node_modules/is-glob": { 675 | "version": "4.0.3", 676 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 677 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 678 | "dev": true, 679 | "dependencies": { 680 | "is-extglob": "^2.1.1" 681 | }, 682 | "engines": { 683 | "node": ">=0.10.0" 684 | } 685 | }, 686 | "node_modules/is-module": { 687 | "version": "1.0.0", 688 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 689 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", 690 | "dev": true 691 | }, 692 | "node_modules/is-number": { 693 | "version": "7.0.0", 694 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 695 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 696 | "dev": true, 697 | "engines": { 698 | "node": ">=0.12.0" 699 | } 700 | }, 701 | "node_modules/jsonfile": { 702 | "version": "6.1.0", 703 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 704 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 705 | "dev": true, 706 | "dependencies": { 707 | "universalify": "^2.0.0" 708 | }, 709 | "optionalDependencies": { 710 | "graceful-fs": "^4.1.6" 711 | } 712 | }, 713 | "node_modules/kleur": { 714 | "version": "4.1.4", 715 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", 716 | "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", 717 | "dev": true, 718 | "engines": { 719 | "node": ">=6" 720 | } 721 | }, 722 | "node_modules/livereload": { 723 | "version": "0.9.3", 724 | "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", 725 | "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", 726 | "dev": true, 727 | "dependencies": { 728 | "chokidar": "^3.5.0", 729 | "livereload-js": "^3.3.1", 730 | "opts": ">= 1.2.0", 731 | "ws": "^7.4.3" 732 | }, 733 | "bin": { 734 | "livereload": "bin/livereload.js" 735 | }, 736 | "engines": { 737 | "node": ">=8.0.0" 738 | } 739 | }, 740 | "node_modules/livereload-js": { 741 | "version": "3.4.0", 742 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.0.tgz", 743 | "integrity": "sha512-F/pz9ZZP+R+arY94cECTZco7PXgBXyL+KVWUPZq8AQE9TOu14GV6fYeKOviv02JCvFa4Oi3Rs1hYEpfeajc+ow==", 744 | "dev": true 745 | }, 746 | "node_modules/local-access": { 747 | "version": "1.1.0", 748 | "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", 749 | "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", 750 | "dev": true, 751 | "engines": { 752 | "node": ">=6" 753 | } 754 | }, 755 | "node_modules/locate-path": { 756 | "version": "6.0.0", 757 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 758 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 759 | "dev": true, 760 | "dependencies": { 761 | "p-locate": "^5.0.0" 762 | }, 763 | "engines": { 764 | "node": ">=10" 765 | }, 766 | "funding": { 767 | "url": "https://github.com/sponsors/sindresorhus" 768 | } 769 | }, 770 | "node_modules/magic-string": { 771 | "version": "0.25.9", 772 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 773 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 774 | "dev": true, 775 | "dependencies": { 776 | "sourcemap-codec": "^1.4.8" 777 | } 778 | }, 779 | "node_modules/make-dir": { 780 | "version": "3.1.0", 781 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 782 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 783 | "dev": true, 784 | "dependencies": { 785 | "semver": "^6.0.0" 786 | }, 787 | "engines": { 788 | "node": ">=8" 789 | }, 790 | "funding": { 791 | "url": "https://github.com/sponsors/sindresorhus" 792 | } 793 | }, 794 | "node_modules/merge2": { 795 | "version": "1.4.1", 796 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 797 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 798 | "dev": true, 799 | "engines": { 800 | "node": ">= 8" 801 | } 802 | }, 803 | "node_modules/micromatch": { 804 | "version": "4.0.5", 805 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 806 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 807 | "dev": true, 808 | "dependencies": { 809 | "braces": "^3.0.2", 810 | "picomatch": "^2.3.1" 811 | }, 812 | "engines": { 813 | "node": ">=8.6" 814 | } 815 | }, 816 | "node_modules/min-indent": { 817 | "version": "1.0.1", 818 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 819 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 820 | "dev": true, 821 | "engines": { 822 | "node": ">=4" 823 | } 824 | }, 825 | "node_modules/minimatch": { 826 | "version": "3.1.2", 827 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 828 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 829 | "dev": true, 830 | "dependencies": { 831 | "brace-expansion": "^1.1.7" 832 | }, 833 | "engines": { 834 | "node": "*" 835 | } 836 | }, 837 | "node_modules/minimist": { 838 | "version": "1.2.6", 839 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 840 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 841 | "dev": true 842 | }, 843 | "node_modules/mkdirp": { 844 | "version": "0.5.6", 845 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 846 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 847 | "dev": true, 848 | "dependencies": { 849 | "minimist": "^1.2.6" 850 | }, 851 | "bin": { 852 | "mkdirp": "bin/cmd.js" 853 | } 854 | }, 855 | "node_modules/mri": { 856 | "version": "1.2.0", 857 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 858 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 859 | "dev": true, 860 | "engines": { 861 | "node": ">=4" 862 | } 863 | }, 864 | "node_modules/mrmime": { 865 | "version": "1.0.0", 866 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", 867 | "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", 868 | "dev": true, 869 | "engines": { 870 | "node": ">=10" 871 | } 872 | }, 873 | "node_modules/normalize-path": { 874 | "version": "3.0.0", 875 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 876 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 877 | "dev": true, 878 | "engines": { 879 | "node": ">=0.10.0" 880 | } 881 | }, 882 | "node_modules/once": { 883 | "version": "1.4.0", 884 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 885 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 886 | "dev": true, 887 | "dependencies": { 888 | "wrappy": "1" 889 | } 890 | }, 891 | "node_modules/opts": { 892 | "version": "2.0.2", 893 | "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", 894 | "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", 895 | "dev": true 896 | }, 897 | "node_modules/p-limit": { 898 | "version": "3.1.0", 899 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 900 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 901 | "dev": true, 902 | "dependencies": { 903 | "yocto-queue": "^0.1.0" 904 | }, 905 | "engines": { 906 | "node": ">=10" 907 | }, 908 | "funding": { 909 | "url": "https://github.com/sponsors/sindresorhus" 910 | } 911 | }, 912 | "node_modules/p-locate": { 913 | "version": "5.0.0", 914 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 915 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 916 | "dev": true, 917 | "dependencies": { 918 | "p-limit": "^3.0.2" 919 | }, 920 | "engines": { 921 | "node": ">=10" 922 | }, 923 | "funding": { 924 | "url": "https://github.com/sponsors/sindresorhus" 925 | } 926 | }, 927 | "node_modules/p-try": { 928 | "version": "2.2.0", 929 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 930 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 931 | "dev": true, 932 | "engines": { 933 | "node": ">=6" 934 | } 935 | }, 936 | "node_modules/parent-module": { 937 | "version": "1.0.1", 938 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 939 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 940 | "dev": true, 941 | "dependencies": { 942 | "callsites": "^3.0.0" 943 | }, 944 | "engines": { 945 | "node": ">=6" 946 | } 947 | }, 948 | "node_modules/path-exists": { 949 | "version": "4.0.0", 950 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 951 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 952 | "dev": true, 953 | "engines": { 954 | "node": ">=8" 955 | } 956 | }, 957 | "node_modules/path-is-absolute": { 958 | "version": "1.0.1", 959 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 960 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 961 | "dev": true, 962 | "engines": { 963 | "node": ">=0.10.0" 964 | } 965 | }, 966 | "node_modules/path-is-network-drive": { 967 | "version": "1.0.15", 968 | "resolved": "https://registry.npmjs.org/path-is-network-drive/-/path-is-network-drive-1.0.15.tgz", 969 | "integrity": "sha512-bJGs1SxUne+q29P1xCLMkNBhMetku+vPN+yVQu8FGL/7diHesCSSIKoF4Wq42tcbwm7rK72XrGfK8FUXN00LLQ==", 970 | "dev": true, 971 | "dependencies": { 972 | "tslib": "^2" 973 | } 974 | }, 975 | "node_modules/path-parse": { 976 | "version": "1.0.7", 977 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 978 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 979 | "dev": true 980 | }, 981 | "node_modules/path-strip-sep": { 982 | "version": "1.0.12", 983 | "resolved": "https://registry.npmjs.org/path-strip-sep/-/path-strip-sep-1.0.12.tgz", 984 | "integrity": "sha512-EJZSC5WBjVlA9XHLCiluiyisYg6yzeMJ4nY3BQVCuedyEHA/I2crcHWdwuQ74h3V599U9nEbEZUTvvSxOK3vbQ==", 985 | "dev": true, 986 | "dependencies": { 987 | "tslib": "^2" 988 | } 989 | }, 990 | "node_modules/picocolors": { 991 | "version": "1.0.0", 992 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 993 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 994 | "dev": true 995 | }, 996 | "node_modules/picomatch": { 997 | "version": "2.3.1", 998 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 999 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1000 | "engines": { 1001 | "node": ">=8.6" 1002 | }, 1003 | "funding": { 1004 | "url": "https://github.com/sponsors/jonschlinkert" 1005 | } 1006 | }, 1007 | "node_modules/pkg-dir": { 1008 | "version": "5.0.0", 1009 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", 1010 | "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", 1011 | "dev": true, 1012 | "dependencies": { 1013 | "find-up": "^5.0.0" 1014 | }, 1015 | "engines": { 1016 | "node": ">=10" 1017 | } 1018 | }, 1019 | "node_modules/queue-microtask": { 1020 | "version": "1.2.3", 1021 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1022 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1023 | "dev": true, 1024 | "funding": [ 1025 | { 1026 | "type": "github", 1027 | "url": "https://github.com/sponsors/feross" 1028 | }, 1029 | { 1030 | "type": "patreon", 1031 | "url": "https://www.patreon.com/feross" 1032 | }, 1033 | { 1034 | "type": "consulting", 1035 | "url": "https://feross.org/support" 1036 | } 1037 | ] 1038 | }, 1039 | "node_modules/readdirp": { 1040 | "version": "3.6.0", 1041 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1042 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1043 | "dev": true, 1044 | "dependencies": { 1045 | "picomatch": "^2.2.1" 1046 | }, 1047 | "engines": { 1048 | "node": ">=8.10.0" 1049 | } 1050 | }, 1051 | "node_modules/require-relative": { 1052 | "version": "0.8.7", 1053 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 1054 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 1055 | "dev": true 1056 | }, 1057 | "node_modules/resolve": { 1058 | "version": "1.22.0", 1059 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 1060 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 1061 | "dev": true, 1062 | "dependencies": { 1063 | "is-core-module": "^2.8.1", 1064 | "path-parse": "^1.0.7", 1065 | "supports-preserve-symlinks-flag": "^1.0.0" 1066 | }, 1067 | "bin": { 1068 | "resolve": "bin/resolve" 1069 | }, 1070 | "funding": { 1071 | "url": "https://github.com/sponsors/ljharb" 1072 | } 1073 | }, 1074 | "node_modules/resolve-from": { 1075 | "version": "4.0.0", 1076 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1077 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1078 | "dev": true, 1079 | "engines": { 1080 | "node": ">=4" 1081 | } 1082 | }, 1083 | "node_modules/reusify": { 1084 | "version": "1.0.4", 1085 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1086 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1087 | "dev": true, 1088 | "engines": { 1089 | "iojs": ">=1.0.0", 1090 | "node": ">=0.10.0" 1091 | } 1092 | }, 1093 | "node_modules/rimraf": { 1094 | "version": "2.7.1", 1095 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 1096 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 1097 | "dev": true, 1098 | "dependencies": { 1099 | "glob": "^7.1.3" 1100 | }, 1101 | "bin": { 1102 | "rimraf": "bin.js" 1103 | } 1104 | }, 1105 | "node_modules/rollup": { 1106 | "version": "2.72.1", 1107 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.72.1.tgz", 1108 | "integrity": "sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==", 1109 | "bin": { 1110 | "rollup": "dist/bin/rollup" 1111 | }, 1112 | "engines": { 1113 | "node": ">=10.0.0" 1114 | }, 1115 | "optionalDependencies": { 1116 | "fsevents": "~2.3.2" 1117 | } 1118 | }, 1119 | "node_modules/rollup-plugin-css-only": { 1120 | "version": "3.1.0", 1121 | "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz", 1122 | "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==", 1123 | "dependencies": { 1124 | "@rollup/pluginutils": "4" 1125 | }, 1126 | "engines": { 1127 | "node": ">=10.12.0" 1128 | }, 1129 | "peerDependencies": { 1130 | "rollup": "1 || 2" 1131 | } 1132 | }, 1133 | "node_modules/rollup-plugin-css-only/node_modules/@rollup/pluginutils": { 1134 | "version": "4.2.1", 1135 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", 1136 | "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", 1137 | "dependencies": { 1138 | "estree-walker": "^2.0.1", 1139 | "picomatch": "^2.2.2" 1140 | }, 1141 | "engines": { 1142 | "node": ">= 8.0.0" 1143 | } 1144 | }, 1145 | "node_modules/rollup-plugin-css-only/node_modules/estree-walker": { 1146 | "version": "2.0.2", 1147 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1148 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 1149 | }, 1150 | "node_modules/rollup-plugin-livereload": { 1151 | "version": "2.0.5", 1152 | "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", 1153 | "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", 1154 | "dev": true, 1155 | "dependencies": { 1156 | "livereload": "^0.9.1" 1157 | }, 1158 | "engines": { 1159 | "node": ">=8.3" 1160 | } 1161 | }, 1162 | "node_modules/rollup-plugin-svelte": { 1163 | "version": "7.1.0", 1164 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz", 1165 | "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==", 1166 | "dev": true, 1167 | "dependencies": { 1168 | "require-relative": "^0.8.7", 1169 | "rollup-pluginutils": "^2.8.2" 1170 | }, 1171 | "engines": { 1172 | "node": ">=10" 1173 | }, 1174 | "peerDependencies": { 1175 | "rollup": ">=2.0.0", 1176 | "svelte": ">=3.5.0" 1177 | } 1178 | }, 1179 | "node_modules/rollup-plugin-typescript2": { 1180 | "version": "0.31.2", 1181 | "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.31.2.tgz", 1182 | "integrity": "sha512-hRwEYR1C8xDGVVMFJQdEVnNAeWRvpaY97g5mp3IeLnzhNXzSVq78Ye/BJ9PAaUfN4DXa/uDnqerifMOaMFY54Q==", 1183 | "dev": true, 1184 | "dependencies": { 1185 | "@rollup/pluginutils": "^4.1.2", 1186 | "@yarn-tool/resolve-package": "^1.0.40", 1187 | "find-cache-dir": "^3.3.2", 1188 | "fs-extra": "^10.0.0", 1189 | "resolve": "^1.20.0", 1190 | "tslib": "^2.3.1" 1191 | }, 1192 | "peerDependencies": { 1193 | "rollup": ">=1.26.3", 1194 | "typescript": ">=2.4.0" 1195 | } 1196 | }, 1197 | "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { 1198 | "version": "4.2.1", 1199 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", 1200 | "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", 1201 | "dev": true, 1202 | "dependencies": { 1203 | "estree-walker": "^2.0.1", 1204 | "picomatch": "^2.2.2" 1205 | }, 1206 | "engines": { 1207 | "node": ">= 8.0.0" 1208 | } 1209 | }, 1210 | "node_modules/rollup-plugin-typescript2/node_modules/estree-walker": { 1211 | "version": "2.0.2", 1212 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1213 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 1214 | "dev": true 1215 | }, 1216 | "node_modules/rollup-pluginutils": { 1217 | "version": "2.8.2", 1218 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 1219 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 1220 | "dev": true, 1221 | "dependencies": { 1222 | "estree-walker": "^0.6.1" 1223 | } 1224 | }, 1225 | "node_modules/rollup-pluginutils/node_modules/estree-walker": { 1226 | "version": "0.6.1", 1227 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1228 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 1229 | "dev": true 1230 | }, 1231 | "node_modules/run-parallel": { 1232 | "version": "1.2.0", 1233 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1234 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1235 | "dev": true, 1236 | "funding": [ 1237 | { 1238 | "type": "github", 1239 | "url": "https://github.com/sponsors/feross" 1240 | }, 1241 | { 1242 | "type": "patreon", 1243 | "url": "https://www.patreon.com/feross" 1244 | }, 1245 | { 1246 | "type": "consulting", 1247 | "url": "https://feross.org/support" 1248 | } 1249 | ], 1250 | "dependencies": { 1251 | "queue-microtask": "^1.2.2" 1252 | } 1253 | }, 1254 | "node_modules/sade": { 1255 | "version": "1.8.1", 1256 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 1257 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 1258 | "dev": true, 1259 | "dependencies": { 1260 | "mri": "^1.1.0" 1261 | }, 1262 | "engines": { 1263 | "node": ">=6" 1264 | } 1265 | }, 1266 | "node_modules/sander": { 1267 | "version": "0.5.1", 1268 | "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", 1269 | "integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=", 1270 | "dev": true, 1271 | "dependencies": { 1272 | "es6-promise": "^3.1.2", 1273 | "graceful-fs": "^4.1.3", 1274 | "mkdirp": "^0.5.1", 1275 | "rimraf": "^2.5.2" 1276 | } 1277 | }, 1278 | "node_modules/semiver": { 1279 | "version": "1.1.0", 1280 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", 1281 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", 1282 | "dev": true, 1283 | "engines": { 1284 | "node": ">=6" 1285 | } 1286 | }, 1287 | "node_modules/semver": { 1288 | "version": "6.3.0", 1289 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1290 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1291 | "dev": true, 1292 | "bin": { 1293 | "semver": "bin/semver.js" 1294 | } 1295 | }, 1296 | "node_modules/sirv": { 1297 | "version": "2.0.2", 1298 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", 1299 | "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", 1300 | "dev": true, 1301 | "dependencies": { 1302 | "@polka/url": "^1.0.0-next.20", 1303 | "mrmime": "^1.0.0", 1304 | "totalist": "^3.0.0" 1305 | }, 1306 | "engines": { 1307 | "node": ">= 10" 1308 | } 1309 | }, 1310 | "node_modules/sirv-cli": { 1311 | "version": "2.0.2", 1312 | "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-2.0.2.tgz", 1313 | "integrity": "sha512-OtSJDwxsF1NWHc7ps3Sa0s+dPtP15iQNJzfKVz+MxkEo3z72mCD+yu30ct79rPr0CaV1HXSOBp+MIY5uIhHZ1A==", 1314 | "dev": true, 1315 | "dependencies": { 1316 | "console-clear": "^1.1.0", 1317 | "get-port": "^3.2.0", 1318 | "kleur": "^4.1.4", 1319 | "local-access": "^1.0.1", 1320 | "sade": "^1.6.0", 1321 | "semiver": "^1.0.0", 1322 | "sirv": "^2.0.0", 1323 | "tinydate": "^1.0.0" 1324 | }, 1325 | "bin": { 1326 | "sirv": "bin.js" 1327 | }, 1328 | "engines": { 1329 | "node": ">= 10" 1330 | } 1331 | }, 1332 | "node_modules/sorcery": { 1333 | "version": "0.10.0", 1334 | "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", 1335 | "integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=", 1336 | "dev": true, 1337 | "dependencies": { 1338 | "buffer-crc32": "^0.2.5", 1339 | "minimist": "^1.2.0", 1340 | "sander": "^0.5.0", 1341 | "sourcemap-codec": "^1.3.0" 1342 | }, 1343 | "bin": { 1344 | "sorcery": "bin/index.js" 1345 | } 1346 | }, 1347 | "node_modules/source-map": { 1348 | "version": "0.7.3", 1349 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 1350 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1351 | "dev": true, 1352 | "engines": { 1353 | "node": ">= 8" 1354 | } 1355 | }, 1356 | "node_modules/sourcemap-codec": { 1357 | "version": "1.4.8", 1358 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1359 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 1360 | "dev": true 1361 | }, 1362 | "node_modules/strip-indent": { 1363 | "version": "3.0.0", 1364 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 1365 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 1366 | "dev": true, 1367 | "dependencies": { 1368 | "min-indent": "^1.0.0" 1369 | }, 1370 | "engines": { 1371 | "node": ">=8" 1372 | } 1373 | }, 1374 | "node_modules/supports-preserve-symlinks-flag": { 1375 | "version": "1.0.0", 1376 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1377 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1378 | "dev": true, 1379 | "engines": { 1380 | "node": ">= 0.4" 1381 | }, 1382 | "funding": { 1383 | "url": "https://github.com/sponsors/ljharb" 1384 | } 1385 | }, 1386 | "node_modules/svelte": { 1387 | "version": "3.48.0", 1388 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.48.0.tgz", 1389 | "integrity": "sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ==", 1390 | "engines": { 1391 | "node": ">= 8" 1392 | } 1393 | }, 1394 | "node_modules/svelte-check": { 1395 | "version": "2.7.0", 1396 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.7.0.tgz", 1397 | "integrity": "sha512-GrvG24j0+i8AOm0k0KyJ6Dqc+TAR2yzB7rtS4nljHStunVxCTr/1KYlv4EsOeoqtHLzeWMOd5D2O6nDdP/yw4A==", 1398 | "dev": true, 1399 | "dependencies": { 1400 | "chokidar": "^3.4.1", 1401 | "fast-glob": "^3.2.7", 1402 | "import-fresh": "^3.2.1", 1403 | "picocolors": "^1.0.0", 1404 | "sade": "^1.7.4", 1405 | "source-map": "^0.7.3", 1406 | "svelte-preprocess": "^4.0.0", 1407 | "typescript": "*" 1408 | }, 1409 | "bin": { 1410 | "svelte-check": "bin/svelte-check" 1411 | }, 1412 | "peerDependencies": { 1413 | "svelte": "^3.24.0" 1414 | } 1415 | }, 1416 | "node_modules/svelte-preprocess": { 1417 | "version": "4.10.6", 1418 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.6.tgz", 1419 | "integrity": "sha512-I2SV1w/AveMvgIQlUF/ZOO3PYVnhxfcpNyGt8pxpUVhPfyfL/CZBkkw/KPfuFix5FJ9TnnNYMhACK3DtSaYVVQ==", 1420 | "dev": true, 1421 | "hasInstallScript": true, 1422 | "dependencies": { 1423 | "@types/pug": "^2.0.4", 1424 | "@types/sass": "^1.16.0", 1425 | "detect-indent": "^6.0.0", 1426 | "magic-string": "^0.25.7", 1427 | "sorcery": "^0.10.0", 1428 | "strip-indent": "^3.0.0" 1429 | }, 1430 | "engines": { 1431 | "node": ">= 9.11.2" 1432 | }, 1433 | "peerDependencies": { 1434 | "@babel/core": "^7.10.2", 1435 | "coffeescript": "^2.5.1", 1436 | "less": "^3.11.3 || ^4.0.0", 1437 | "postcss": "^7 || ^8", 1438 | "postcss-load-config": "^2.1.0 || ^3.0.0", 1439 | "pug": "^3.0.0", 1440 | "sass": "^1.26.8", 1441 | "stylus": "^0.55.0", 1442 | "sugarss": "^2.0.0", 1443 | "svelte": "^3.23.0", 1444 | "typescript": "^3.9.5 || ^4.0.0" 1445 | }, 1446 | "peerDependenciesMeta": { 1447 | "@babel/core": { 1448 | "optional": true 1449 | }, 1450 | "coffeescript": { 1451 | "optional": true 1452 | }, 1453 | "less": { 1454 | "optional": true 1455 | }, 1456 | "node-sass": { 1457 | "optional": true 1458 | }, 1459 | "postcss": { 1460 | "optional": true 1461 | }, 1462 | "postcss-load-config": { 1463 | "optional": true 1464 | }, 1465 | "pug": { 1466 | "optional": true 1467 | }, 1468 | "sass": { 1469 | "optional": true 1470 | }, 1471 | "stylus": { 1472 | "optional": true 1473 | }, 1474 | "sugarss": { 1475 | "optional": true 1476 | }, 1477 | "typescript": { 1478 | "optional": true 1479 | } 1480 | } 1481 | }, 1482 | "node_modules/tinydate": { 1483 | "version": "1.3.0", 1484 | "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", 1485 | "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", 1486 | "dev": true, 1487 | "engines": { 1488 | "node": ">=4" 1489 | } 1490 | }, 1491 | "node_modules/to-regex-range": { 1492 | "version": "5.0.1", 1493 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1494 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1495 | "dev": true, 1496 | "dependencies": { 1497 | "is-number": "^7.0.0" 1498 | }, 1499 | "engines": { 1500 | "node": ">=8.0" 1501 | } 1502 | }, 1503 | "node_modules/totalist": { 1504 | "version": "3.0.0", 1505 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", 1506 | "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", 1507 | "dev": true, 1508 | "engines": { 1509 | "node": ">=6" 1510 | } 1511 | }, 1512 | "node_modules/tslib": { 1513 | "version": "2.4.0", 1514 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 1515 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", 1516 | "dev": true 1517 | }, 1518 | "node_modules/typescript": { 1519 | "version": "4.6.4", 1520 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", 1521 | "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", 1522 | "dev": true, 1523 | "bin": { 1524 | "tsc": "bin/tsc", 1525 | "tsserver": "bin/tsserver" 1526 | }, 1527 | "engines": { 1528 | "node": ">=4.2.0" 1529 | } 1530 | }, 1531 | "node_modules/universalify": { 1532 | "version": "2.0.0", 1533 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 1534 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 1535 | "dev": true, 1536 | "engines": { 1537 | "node": ">= 10.0.0" 1538 | } 1539 | }, 1540 | "node_modules/upath2": { 1541 | "version": "3.1.13", 1542 | "resolved": "https://registry.npmjs.org/upath2/-/upath2-3.1.13.tgz", 1543 | "integrity": "sha512-M88uBoqgzrkXvXrF/+oSIPsTmL21uRwGhPVJKODrl+3lXkQ5NPKrTYuSBZVa+lgPGFoI6qYyHlSKACFHO0AoNw==", 1544 | "dev": true, 1545 | "dependencies": { 1546 | "@types/node": "*", 1547 | "path-is-network-drive": "^1.0.15", 1548 | "path-strip-sep": "^1.0.12", 1549 | "tslib": "^2" 1550 | } 1551 | }, 1552 | "node_modules/wrappy": { 1553 | "version": "1.0.2", 1554 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1555 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1556 | "dev": true 1557 | }, 1558 | "node_modules/ws": { 1559 | "version": "7.5.7", 1560 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", 1561 | "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", 1562 | "dev": true, 1563 | "engines": { 1564 | "node": ">=8.3.0" 1565 | }, 1566 | "peerDependencies": { 1567 | "bufferutil": "^4.0.1", 1568 | "utf-8-validate": "^5.0.2" 1569 | }, 1570 | "peerDependenciesMeta": { 1571 | "bufferutil": { 1572 | "optional": true 1573 | }, 1574 | "utf-8-validate": { 1575 | "optional": true 1576 | } 1577 | } 1578 | }, 1579 | "node_modules/yocto-queue": { 1580 | "version": "0.1.0", 1581 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 1582 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 1583 | "dev": true, 1584 | "engines": { 1585 | "node": ">=10" 1586 | }, 1587 | "funding": { 1588 | "url": "https://github.com/sponsors/sindresorhus" 1589 | } 1590 | } 1591 | }, 1592 | "dependencies": { 1593 | "@nodelib/fs.scandir": { 1594 | "version": "2.1.5", 1595 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1596 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1597 | "dev": true, 1598 | "requires": { 1599 | "@nodelib/fs.stat": "2.0.5", 1600 | "run-parallel": "^1.1.9" 1601 | } 1602 | }, 1603 | "@nodelib/fs.stat": { 1604 | "version": "2.0.5", 1605 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1606 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1607 | "dev": true 1608 | }, 1609 | "@nodelib/fs.walk": { 1610 | "version": "1.2.8", 1611 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1612 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1613 | "dev": true, 1614 | "requires": { 1615 | "@nodelib/fs.scandir": "2.1.5", 1616 | "fastq": "^1.6.0" 1617 | } 1618 | }, 1619 | "@polka/url": { 1620 | "version": "1.0.0-next.21", 1621 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", 1622 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", 1623 | "dev": true 1624 | }, 1625 | "@rollup/plugin-node-resolve": { 1626 | "version": "13.3.0", 1627 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", 1628 | "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", 1629 | "dev": true, 1630 | "requires": { 1631 | "@rollup/pluginutils": "^3.1.0", 1632 | "@types/resolve": "1.17.1", 1633 | "deepmerge": "^4.2.2", 1634 | "is-builtin-module": "^3.1.0", 1635 | "is-module": "^1.0.0", 1636 | "resolve": "^1.19.0" 1637 | } 1638 | }, 1639 | "@rollup/plugin-typescript": { 1640 | "version": "8.3.2", 1641 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", 1642 | "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", 1643 | "dev": true, 1644 | "requires": { 1645 | "@rollup/pluginutils": "^3.1.0", 1646 | "resolve": "^1.17.0" 1647 | } 1648 | }, 1649 | "@rollup/pluginutils": { 1650 | "version": "3.1.0", 1651 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 1652 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 1653 | "dev": true, 1654 | "requires": { 1655 | "@types/estree": "0.0.39", 1656 | "estree-walker": "^1.0.1", 1657 | "picomatch": "^2.2.2" 1658 | } 1659 | }, 1660 | "@tsconfig/svelte": { 1661 | "version": "2.0.1", 1662 | "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-2.0.1.tgz", 1663 | "integrity": "sha512-aqkICXbM1oX5FfgZd2qSSAGdyo/NRxjWCamxoyi3T8iVQnzGge19HhDYzZ6NrVOW7bhcWNSq9XexWFtMzbB24A==", 1664 | "dev": true 1665 | }, 1666 | "@types/chrome": { 1667 | "version": "0.0.185", 1668 | "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.185.tgz", 1669 | "integrity": "sha512-HU0q31jtBHSfqtqW5TqqgU+BnSiUJdB98qFWT1SD2gXZxk8NVuogNmv7T+WUL+q2/GEer/4est19A1h8FdehYQ==", 1670 | "requires": { 1671 | "@types/filesystem": "*", 1672 | "@types/har-format": "*" 1673 | } 1674 | }, 1675 | "@types/estree": { 1676 | "version": "0.0.39", 1677 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 1678 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 1679 | "dev": true 1680 | }, 1681 | "@types/filesystem": { 1682 | "version": "0.0.32", 1683 | "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.32.tgz", 1684 | "integrity": "sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==", 1685 | "requires": { 1686 | "@types/filewriter": "*" 1687 | } 1688 | }, 1689 | "@types/filewriter": { 1690 | "version": "0.0.29", 1691 | "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz", 1692 | "integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==" 1693 | }, 1694 | "@types/har-format": { 1695 | "version": "1.2.8", 1696 | "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.8.tgz", 1697 | "integrity": "sha512-OP6L9VuZNdskgNN3zFQQ54ceYD8OLq5IbqO4VK91ORLfOm7WdT/CiT/pHEBSQEqCInJ2y3O6iCm/zGtPElpgJQ==" 1698 | }, 1699 | "@types/node": { 1700 | "version": "17.0.32", 1701 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", 1702 | "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==", 1703 | "dev": true 1704 | }, 1705 | "@types/pug": { 1706 | "version": "2.0.6", 1707 | "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", 1708 | "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", 1709 | "dev": true 1710 | }, 1711 | "@types/resolve": { 1712 | "version": "1.17.1", 1713 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 1714 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", 1715 | "dev": true, 1716 | "requires": { 1717 | "@types/node": "*" 1718 | } 1719 | }, 1720 | "@types/sass": { 1721 | "version": "1.43.1", 1722 | "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", 1723 | "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", 1724 | "dev": true, 1725 | "requires": { 1726 | "@types/node": "*" 1727 | } 1728 | }, 1729 | "@yarn-tool/resolve-package": { 1730 | "version": "1.0.47", 1731 | "resolved": "https://registry.npmjs.org/@yarn-tool/resolve-package/-/resolve-package-1.0.47.tgz", 1732 | "integrity": "sha512-Zaw58gQxjQceJqhqybJi1oUDaORT8i2GTgwICPs8v/X/Pkx35FXQba69ldHVg5pQZ6YLKpROXgyHvBaCJOFXiA==", 1733 | "dev": true, 1734 | "requires": { 1735 | "pkg-dir": "< 6 >= 5", 1736 | "tslib": "^2", 1737 | "upath2": "^3.1.13" 1738 | } 1739 | }, 1740 | "anymatch": { 1741 | "version": "3.1.2", 1742 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 1743 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 1744 | "dev": true, 1745 | "requires": { 1746 | "normalize-path": "^3.0.0", 1747 | "picomatch": "^2.0.4" 1748 | } 1749 | }, 1750 | "balanced-match": { 1751 | "version": "1.0.2", 1752 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1753 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1754 | "dev": true 1755 | }, 1756 | "binary-extensions": { 1757 | "version": "2.2.0", 1758 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1759 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1760 | "dev": true 1761 | }, 1762 | "brace-expansion": { 1763 | "version": "1.1.11", 1764 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1765 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1766 | "dev": true, 1767 | "requires": { 1768 | "balanced-match": "^1.0.0", 1769 | "concat-map": "0.0.1" 1770 | } 1771 | }, 1772 | "braces": { 1773 | "version": "3.0.2", 1774 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1775 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1776 | "dev": true, 1777 | "requires": { 1778 | "fill-range": "^7.0.1" 1779 | } 1780 | }, 1781 | "buffer-crc32": { 1782 | "version": "0.2.13", 1783 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 1784 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 1785 | "dev": true 1786 | }, 1787 | "builtin-modules": { 1788 | "version": "3.2.0", 1789 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", 1790 | "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", 1791 | "dev": true 1792 | }, 1793 | "callsites": { 1794 | "version": "3.1.0", 1795 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1796 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1797 | "dev": true 1798 | }, 1799 | "chokidar": { 1800 | "version": "3.5.3", 1801 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1802 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1803 | "dev": true, 1804 | "requires": { 1805 | "anymatch": "~3.1.2", 1806 | "braces": "~3.0.2", 1807 | "fsevents": "~2.3.2", 1808 | "glob-parent": "~5.1.2", 1809 | "is-binary-path": "~2.1.0", 1810 | "is-glob": "~4.0.1", 1811 | "normalize-path": "~3.0.0", 1812 | "readdirp": "~3.6.0" 1813 | } 1814 | }, 1815 | "commondir": { 1816 | "version": "1.0.1", 1817 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 1818 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 1819 | "dev": true 1820 | }, 1821 | "concat-map": { 1822 | "version": "0.0.1", 1823 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1824 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1825 | "dev": true 1826 | }, 1827 | "console-clear": { 1828 | "version": "1.1.1", 1829 | "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", 1830 | "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", 1831 | "dev": true 1832 | }, 1833 | "deepmerge": { 1834 | "version": "4.2.2", 1835 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 1836 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 1837 | "dev": true 1838 | }, 1839 | "detect-indent": { 1840 | "version": "6.1.0", 1841 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", 1842 | "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", 1843 | "dev": true 1844 | }, 1845 | "es6-promise": { 1846 | "version": "3.3.1", 1847 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", 1848 | "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", 1849 | "dev": true 1850 | }, 1851 | "estree-walker": { 1852 | "version": "1.0.1", 1853 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 1854 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 1855 | "dev": true 1856 | }, 1857 | "fast-glob": { 1858 | "version": "3.2.11", 1859 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 1860 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 1861 | "dev": true, 1862 | "requires": { 1863 | "@nodelib/fs.stat": "^2.0.2", 1864 | "@nodelib/fs.walk": "^1.2.3", 1865 | "glob-parent": "^5.1.2", 1866 | "merge2": "^1.3.0", 1867 | "micromatch": "^4.0.4" 1868 | } 1869 | }, 1870 | "fastq": { 1871 | "version": "1.13.0", 1872 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1873 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1874 | "dev": true, 1875 | "requires": { 1876 | "reusify": "^1.0.4" 1877 | } 1878 | }, 1879 | "fill-range": { 1880 | "version": "7.0.1", 1881 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1882 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1883 | "dev": true, 1884 | "requires": { 1885 | "to-regex-range": "^5.0.1" 1886 | } 1887 | }, 1888 | "find-cache-dir": { 1889 | "version": "3.3.2", 1890 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", 1891 | "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", 1892 | "dev": true, 1893 | "requires": { 1894 | "commondir": "^1.0.1", 1895 | "make-dir": "^3.0.2", 1896 | "pkg-dir": "^4.1.0" 1897 | }, 1898 | "dependencies": { 1899 | "find-up": { 1900 | "version": "4.1.0", 1901 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 1902 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 1903 | "dev": true, 1904 | "requires": { 1905 | "locate-path": "^5.0.0", 1906 | "path-exists": "^4.0.0" 1907 | } 1908 | }, 1909 | "locate-path": { 1910 | "version": "5.0.0", 1911 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1912 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1913 | "dev": true, 1914 | "requires": { 1915 | "p-locate": "^4.1.0" 1916 | } 1917 | }, 1918 | "p-limit": { 1919 | "version": "2.3.0", 1920 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1921 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1922 | "dev": true, 1923 | "requires": { 1924 | "p-try": "^2.0.0" 1925 | } 1926 | }, 1927 | "p-locate": { 1928 | "version": "4.1.0", 1929 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1930 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1931 | "dev": true, 1932 | "requires": { 1933 | "p-limit": "^2.2.0" 1934 | } 1935 | }, 1936 | "pkg-dir": { 1937 | "version": "4.2.0", 1938 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 1939 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 1940 | "dev": true, 1941 | "requires": { 1942 | "find-up": "^4.0.0" 1943 | } 1944 | } 1945 | } 1946 | }, 1947 | "find-up": { 1948 | "version": "5.0.0", 1949 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1950 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1951 | "dev": true, 1952 | "requires": { 1953 | "locate-path": "^6.0.0", 1954 | "path-exists": "^4.0.0" 1955 | } 1956 | }, 1957 | "fs-extra": { 1958 | "version": "10.1.0", 1959 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 1960 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 1961 | "dev": true, 1962 | "requires": { 1963 | "graceful-fs": "^4.2.0", 1964 | "jsonfile": "^6.0.1", 1965 | "universalify": "^2.0.0" 1966 | } 1967 | }, 1968 | "fs.realpath": { 1969 | "version": "1.0.0", 1970 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1971 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1972 | "dev": true 1973 | }, 1974 | "fsevents": { 1975 | "version": "2.3.2", 1976 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1977 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1978 | "optional": true 1979 | }, 1980 | "function-bind": { 1981 | "version": "1.1.1", 1982 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1983 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1984 | "dev": true 1985 | }, 1986 | "get-port": { 1987 | "version": "3.2.0", 1988 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 1989 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", 1990 | "dev": true 1991 | }, 1992 | "glob": { 1993 | "version": "7.2.0", 1994 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 1995 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 1996 | "dev": true, 1997 | "requires": { 1998 | "fs.realpath": "^1.0.0", 1999 | "inflight": "^1.0.4", 2000 | "inherits": "2", 2001 | "minimatch": "^3.0.4", 2002 | "once": "^1.3.0", 2003 | "path-is-absolute": "^1.0.0" 2004 | } 2005 | }, 2006 | "glob-parent": { 2007 | "version": "5.1.2", 2008 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2009 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2010 | "dev": true, 2011 | "requires": { 2012 | "is-glob": "^4.0.1" 2013 | } 2014 | }, 2015 | "graceful-fs": { 2016 | "version": "4.2.10", 2017 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 2018 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", 2019 | "dev": true 2020 | }, 2021 | "has": { 2022 | "version": "1.0.3", 2023 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2024 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2025 | "dev": true, 2026 | "requires": { 2027 | "function-bind": "^1.1.1" 2028 | } 2029 | }, 2030 | "import-fresh": { 2031 | "version": "3.3.0", 2032 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 2033 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 2034 | "dev": true, 2035 | "requires": { 2036 | "parent-module": "^1.0.0", 2037 | "resolve-from": "^4.0.0" 2038 | } 2039 | }, 2040 | "inflight": { 2041 | "version": "1.0.6", 2042 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2043 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2044 | "dev": true, 2045 | "requires": { 2046 | "once": "^1.3.0", 2047 | "wrappy": "1" 2048 | } 2049 | }, 2050 | "inherits": { 2051 | "version": "2.0.4", 2052 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2053 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2054 | "dev": true 2055 | }, 2056 | "is-binary-path": { 2057 | "version": "2.1.0", 2058 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2059 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2060 | "dev": true, 2061 | "requires": { 2062 | "binary-extensions": "^2.0.0" 2063 | } 2064 | }, 2065 | "is-builtin-module": { 2066 | "version": "3.1.0", 2067 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", 2068 | "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", 2069 | "dev": true, 2070 | "requires": { 2071 | "builtin-modules": "^3.0.0" 2072 | } 2073 | }, 2074 | "is-core-module": { 2075 | "version": "2.9.0", 2076 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 2077 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 2078 | "dev": true, 2079 | "requires": { 2080 | "has": "^1.0.3" 2081 | } 2082 | }, 2083 | "is-extglob": { 2084 | "version": "2.1.1", 2085 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2086 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2087 | "dev": true 2088 | }, 2089 | "is-glob": { 2090 | "version": "4.0.3", 2091 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2092 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2093 | "dev": true, 2094 | "requires": { 2095 | "is-extglob": "^2.1.1" 2096 | } 2097 | }, 2098 | "is-module": { 2099 | "version": "1.0.0", 2100 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 2101 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", 2102 | "dev": true 2103 | }, 2104 | "is-number": { 2105 | "version": "7.0.0", 2106 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2107 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2108 | "dev": true 2109 | }, 2110 | "jsonfile": { 2111 | "version": "6.1.0", 2112 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 2113 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 2114 | "dev": true, 2115 | "requires": { 2116 | "graceful-fs": "^4.1.6", 2117 | "universalify": "^2.0.0" 2118 | } 2119 | }, 2120 | "kleur": { 2121 | "version": "4.1.4", 2122 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", 2123 | "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", 2124 | "dev": true 2125 | }, 2126 | "livereload": { 2127 | "version": "0.9.3", 2128 | "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", 2129 | "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", 2130 | "dev": true, 2131 | "requires": { 2132 | "chokidar": "^3.5.0", 2133 | "livereload-js": "^3.3.1", 2134 | "opts": ">= 1.2.0", 2135 | "ws": "^7.4.3" 2136 | } 2137 | }, 2138 | "livereload-js": { 2139 | "version": "3.4.0", 2140 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.0.tgz", 2141 | "integrity": "sha512-F/pz9ZZP+R+arY94cECTZco7PXgBXyL+KVWUPZq8AQE9TOu14GV6fYeKOviv02JCvFa4Oi3Rs1hYEpfeajc+ow==", 2142 | "dev": true 2143 | }, 2144 | "local-access": { 2145 | "version": "1.1.0", 2146 | "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", 2147 | "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", 2148 | "dev": true 2149 | }, 2150 | "locate-path": { 2151 | "version": "6.0.0", 2152 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2153 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2154 | "dev": true, 2155 | "requires": { 2156 | "p-locate": "^5.0.0" 2157 | } 2158 | }, 2159 | "magic-string": { 2160 | "version": "0.25.9", 2161 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 2162 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 2163 | "dev": true, 2164 | "requires": { 2165 | "sourcemap-codec": "^1.4.8" 2166 | } 2167 | }, 2168 | "make-dir": { 2169 | "version": "3.1.0", 2170 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 2171 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 2172 | "dev": true, 2173 | "requires": { 2174 | "semver": "^6.0.0" 2175 | } 2176 | }, 2177 | "merge2": { 2178 | "version": "1.4.1", 2179 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2180 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2181 | "dev": true 2182 | }, 2183 | "micromatch": { 2184 | "version": "4.0.5", 2185 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 2186 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 2187 | "dev": true, 2188 | "requires": { 2189 | "braces": "^3.0.2", 2190 | "picomatch": "^2.3.1" 2191 | } 2192 | }, 2193 | "min-indent": { 2194 | "version": "1.0.1", 2195 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 2196 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 2197 | "dev": true 2198 | }, 2199 | "minimatch": { 2200 | "version": "3.1.2", 2201 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2202 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2203 | "dev": true, 2204 | "requires": { 2205 | "brace-expansion": "^1.1.7" 2206 | } 2207 | }, 2208 | "minimist": { 2209 | "version": "1.2.6", 2210 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 2211 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 2212 | "dev": true 2213 | }, 2214 | "mkdirp": { 2215 | "version": "0.5.6", 2216 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 2217 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 2218 | "dev": true, 2219 | "requires": { 2220 | "minimist": "^1.2.6" 2221 | } 2222 | }, 2223 | "mri": { 2224 | "version": "1.2.0", 2225 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 2226 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 2227 | "dev": true 2228 | }, 2229 | "mrmime": { 2230 | "version": "1.0.0", 2231 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", 2232 | "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", 2233 | "dev": true 2234 | }, 2235 | "normalize-path": { 2236 | "version": "3.0.0", 2237 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2238 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2239 | "dev": true 2240 | }, 2241 | "once": { 2242 | "version": "1.4.0", 2243 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2244 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2245 | "dev": true, 2246 | "requires": { 2247 | "wrappy": "1" 2248 | } 2249 | }, 2250 | "opts": { 2251 | "version": "2.0.2", 2252 | "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", 2253 | "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", 2254 | "dev": true 2255 | }, 2256 | "p-limit": { 2257 | "version": "3.1.0", 2258 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 2259 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2260 | "dev": true, 2261 | "requires": { 2262 | "yocto-queue": "^0.1.0" 2263 | } 2264 | }, 2265 | "p-locate": { 2266 | "version": "5.0.0", 2267 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 2268 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 2269 | "dev": true, 2270 | "requires": { 2271 | "p-limit": "^3.0.2" 2272 | } 2273 | }, 2274 | "p-try": { 2275 | "version": "2.2.0", 2276 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 2277 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 2278 | "dev": true 2279 | }, 2280 | "parent-module": { 2281 | "version": "1.0.1", 2282 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2283 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2284 | "dev": true, 2285 | "requires": { 2286 | "callsites": "^3.0.0" 2287 | } 2288 | }, 2289 | "path-exists": { 2290 | "version": "4.0.0", 2291 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2292 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2293 | "dev": true 2294 | }, 2295 | "path-is-absolute": { 2296 | "version": "1.0.1", 2297 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2298 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2299 | "dev": true 2300 | }, 2301 | "path-is-network-drive": { 2302 | "version": "1.0.15", 2303 | "resolved": "https://registry.npmjs.org/path-is-network-drive/-/path-is-network-drive-1.0.15.tgz", 2304 | "integrity": "sha512-bJGs1SxUne+q29P1xCLMkNBhMetku+vPN+yVQu8FGL/7diHesCSSIKoF4Wq42tcbwm7rK72XrGfK8FUXN00LLQ==", 2305 | "dev": true, 2306 | "requires": { 2307 | "tslib": "^2" 2308 | } 2309 | }, 2310 | "path-parse": { 2311 | "version": "1.0.7", 2312 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2313 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2314 | "dev": true 2315 | }, 2316 | "path-strip-sep": { 2317 | "version": "1.0.12", 2318 | "resolved": "https://registry.npmjs.org/path-strip-sep/-/path-strip-sep-1.0.12.tgz", 2319 | "integrity": "sha512-EJZSC5WBjVlA9XHLCiluiyisYg6yzeMJ4nY3BQVCuedyEHA/I2crcHWdwuQ74h3V599U9nEbEZUTvvSxOK3vbQ==", 2320 | "dev": true, 2321 | "requires": { 2322 | "tslib": "^2" 2323 | } 2324 | }, 2325 | "picocolors": { 2326 | "version": "1.0.0", 2327 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2328 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2329 | "dev": true 2330 | }, 2331 | "picomatch": { 2332 | "version": "2.3.1", 2333 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2334 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 2335 | }, 2336 | "pkg-dir": { 2337 | "version": "5.0.0", 2338 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", 2339 | "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", 2340 | "dev": true, 2341 | "requires": { 2342 | "find-up": "^5.0.0" 2343 | } 2344 | }, 2345 | "queue-microtask": { 2346 | "version": "1.2.3", 2347 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2348 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2349 | "dev": true 2350 | }, 2351 | "readdirp": { 2352 | "version": "3.6.0", 2353 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2354 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2355 | "dev": true, 2356 | "requires": { 2357 | "picomatch": "^2.2.1" 2358 | } 2359 | }, 2360 | "require-relative": { 2361 | "version": "0.8.7", 2362 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 2363 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 2364 | "dev": true 2365 | }, 2366 | "resolve": { 2367 | "version": "1.22.0", 2368 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 2369 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 2370 | "dev": true, 2371 | "requires": { 2372 | "is-core-module": "^2.8.1", 2373 | "path-parse": "^1.0.7", 2374 | "supports-preserve-symlinks-flag": "^1.0.0" 2375 | } 2376 | }, 2377 | "resolve-from": { 2378 | "version": "4.0.0", 2379 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2380 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2381 | "dev": true 2382 | }, 2383 | "reusify": { 2384 | "version": "1.0.4", 2385 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2386 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2387 | "dev": true 2388 | }, 2389 | "rimraf": { 2390 | "version": "2.7.1", 2391 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 2392 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 2393 | "dev": true, 2394 | "requires": { 2395 | "glob": "^7.1.3" 2396 | } 2397 | }, 2398 | "rollup": { 2399 | "version": "2.72.1", 2400 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.72.1.tgz", 2401 | "integrity": "sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==", 2402 | "requires": { 2403 | "fsevents": "~2.3.2" 2404 | } 2405 | }, 2406 | "rollup-plugin-css-only": { 2407 | "version": "3.1.0", 2408 | "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz", 2409 | "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==", 2410 | "requires": { 2411 | "@rollup/pluginutils": "4" 2412 | }, 2413 | "dependencies": { 2414 | "@rollup/pluginutils": { 2415 | "version": "4.2.1", 2416 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", 2417 | "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", 2418 | "requires": { 2419 | "estree-walker": "^2.0.1", 2420 | "picomatch": "^2.2.2" 2421 | } 2422 | }, 2423 | "estree-walker": { 2424 | "version": "2.0.2", 2425 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 2426 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 2427 | } 2428 | } 2429 | }, 2430 | "rollup-plugin-livereload": { 2431 | "version": "2.0.5", 2432 | "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", 2433 | "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", 2434 | "dev": true, 2435 | "requires": { 2436 | "livereload": "^0.9.1" 2437 | } 2438 | }, 2439 | "rollup-plugin-svelte": { 2440 | "version": "7.1.0", 2441 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz", 2442 | "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==", 2443 | "dev": true, 2444 | "requires": { 2445 | "require-relative": "^0.8.7", 2446 | "rollup-pluginutils": "^2.8.2" 2447 | } 2448 | }, 2449 | "rollup-plugin-typescript2": { 2450 | "version": "0.31.2", 2451 | "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.31.2.tgz", 2452 | "integrity": "sha512-hRwEYR1C8xDGVVMFJQdEVnNAeWRvpaY97g5mp3IeLnzhNXzSVq78Ye/BJ9PAaUfN4DXa/uDnqerifMOaMFY54Q==", 2453 | "dev": true, 2454 | "requires": { 2455 | "@rollup/pluginutils": "^4.1.2", 2456 | "@yarn-tool/resolve-package": "^1.0.40", 2457 | "find-cache-dir": "^3.3.2", 2458 | "fs-extra": "^10.0.0", 2459 | "resolve": "^1.20.0", 2460 | "tslib": "^2.3.1" 2461 | }, 2462 | "dependencies": { 2463 | "@rollup/pluginutils": { 2464 | "version": "4.2.1", 2465 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", 2466 | "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", 2467 | "dev": true, 2468 | "requires": { 2469 | "estree-walker": "^2.0.1", 2470 | "picomatch": "^2.2.2" 2471 | } 2472 | }, 2473 | "estree-walker": { 2474 | "version": "2.0.2", 2475 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 2476 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 2477 | "dev": true 2478 | } 2479 | } 2480 | }, 2481 | "rollup-pluginutils": { 2482 | "version": "2.8.2", 2483 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 2484 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 2485 | "dev": true, 2486 | "requires": { 2487 | "estree-walker": "^0.6.1" 2488 | }, 2489 | "dependencies": { 2490 | "estree-walker": { 2491 | "version": "0.6.1", 2492 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 2493 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 2494 | "dev": true 2495 | } 2496 | } 2497 | }, 2498 | "run-parallel": { 2499 | "version": "1.2.0", 2500 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2501 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2502 | "dev": true, 2503 | "requires": { 2504 | "queue-microtask": "^1.2.2" 2505 | } 2506 | }, 2507 | "sade": { 2508 | "version": "1.8.1", 2509 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 2510 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 2511 | "dev": true, 2512 | "requires": { 2513 | "mri": "^1.1.0" 2514 | } 2515 | }, 2516 | "sander": { 2517 | "version": "0.5.1", 2518 | "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", 2519 | "integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=", 2520 | "dev": true, 2521 | "requires": { 2522 | "es6-promise": "^3.1.2", 2523 | "graceful-fs": "^4.1.3", 2524 | "mkdirp": "^0.5.1", 2525 | "rimraf": "^2.5.2" 2526 | } 2527 | }, 2528 | "semiver": { 2529 | "version": "1.1.0", 2530 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", 2531 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", 2532 | "dev": true 2533 | }, 2534 | "semver": { 2535 | "version": "6.3.0", 2536 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2537 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2538 | "dev": true 2539 | }, 2540 | "sirv": { 2541 | "version": "2.0.2", 2542 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", 2543 | "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", 2544 | "dev": true, 2545 | "requires": { 2546 | "@polka/url": "^1.0.0-next.20", 2547 | "mrmime": "^1.0.0", 2548 | "totalist": "^3.0.0" 2549 | } 2550 | }, 2551 | "sirv-cli": { 2552 | "version": "2.0.2", 2553 | "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-2.0.2.tgz", 2554 | "integrity": "sha512-OtSJDwxsF1NWHc7ps3Sa0s+dPtP15iQNJzfKVz+MxkEo3z72mCD+yu30ct79rPr0CaV1HXSOBp+MIY5uIhHZ1A==", 2555 | "dev": true, 2556 | "requires": { 2557 | "console-clear": "^1.1.0", 2558 | "get-port": "^3.2.0", 2559 | "kleur": "^4.1.4", 2560 | "local-access": "^1.0.1", 2561 | "sade": "^1.6.0", 2562 | "semiver": "^1.0.0", 2563 | "sirv": "^2.0.0", 2564 | "tinydate": "^1.0.0" 2565 | } 2566 | }, 2567 | "sorcery": { 2568 | "version": "0.10.0", 2569 | "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", 2570 | "integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=", 2571 | "dev": true, 2572 | "requires": { 2573 | "buffer-crc32": "^0.2.5", 2574 | "minimist": "^1.2.0", 2575 | "sander": "^0.5.0", 2576 | "sourcemap-codec": "^1.3.0" 2577 | } 2578 | }, 2579 | "source-map": { 2580 | "version": "0.7.3", 2581 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 2582 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 2583 | "dev": true 2584 | }, 2585 | "sourcemap-codec": { 2586 | "version": "1.4.8", 2587 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 2588 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 2589 | "dev": true 2590 | }, 2591 | "strip-indent": { 2592 | "version": "3.0.0", 2593 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 2594 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 2595 | "dev": true, 2596 | "requires": { 2597 | "min-indent": "^1.0.0" 2598 | } 2599 | }, 2600 | "supports-preserve-symlinks-flag": { 2601 | "version": "1.0.0", 2602 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2603 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2604 | "dev": true 2605 | }, 2606 | "svelte": { 2607 | "version": "3.48.0", 2608 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.48.0.tgz", 2609 | "integrity": "sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ==" 2610 | }, 2611 | "svelte-check": { 2612 | "version": "2.7.0", 2613 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.7.0.tgz", 2614 | "integrity": "sha512-GrvG24j0+i8AOm0k0KyJ6Dqc+TAR2yzB7rtS4nljHStunVxCTr/1KYlv4EsOeoqtHLzeWMOd5D2O6nDdP/yw4A==", 2615 | "dev": true, 2616 | "requires": { 2617 | "chokidar": "^3.4.1", 2618 | "fast-glob": "^3.2.7", 2619 | "import-fresh": "^3.2.1", 2620 | "picocolors": "^1.0.0", 2621 | "sade": "^1.7.4", 2622 | "source-map": "^0.7.3", 2623 | "svelte-preprocess": "^4.0.0", 2624 | "typescript": "*" 2625 | } 2626 | }, 2627 | "svelte-preprocess": { 2628 | "version": "4.10.6", 2629 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.6.tgz", 2630 | "integrity": "sha512-I2SV1w/AveMvgIQlUF/ZOO3PYVnhxfcpNyGt8pxpUVhPfyfL/CZBkkw/KPfuFix5FJ9TnnNYMhACK3DtSaYVVQ==", 2631 | "dev": true, 2632 | "requires": { 2633 | "@types/pug": "^2.0.4", 2634 | "@types/sass": "^1.16.0", 2635 | "detect-indent": "^6.0.0", 2636 | "magic-string": "^0.25.7", 2637 | "sorcery": "^0.10.0", 2638 | "strip-indent": "^3.0.0" 2639 | } 2640 | }, 2641 | "tinydate": { 2642 | "version": "1.3.0", 2643 | "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", 2644 | "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", 2645 | "dev": true 2646 | }, 2647 | "to-regex-range": { 2648 | "version": "5.0.1", 2649 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2650 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2651 | "dev": true, 2652 | "requires": { 2653 | "is-number": "^7.0.0" 2654 | } 2655 | }, 2656 | "totalist": { 2657 | "version": "3.0.0", 2658 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", 2659 | "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", 2660 | "dev": true 2661 | }, 2662 | "tslib": { 2663 | "version": "2.4.0", 2664 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 2665 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", 2666 | "dev": true 2667 | }, 2668 | "typescript": { 2669 | "version": "4.6.4", 2670 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", 2671 | "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", 2672 | "dev": true 2673 | }, 2674 | "universalify": { 2675 | "version": "2.0.0", 2676 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 2677 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 2678 | "dev": true 2679 | }, 2680 | "upath2": { 2681 | "version": "3.1.13", 2682 | "resolved": "https://registry.npmjs.org/upath2/-/upath2-3.1.13.tgz", 2683 | "integrity": "sha512-M88uBoqgzrkXvXrF/+oSIPsTmL21uRwGhPVJKODrl+3lXkQ5NPKrTYuSBZVa+lgPGFoI6qYyHlSKACFHO0AoNw==", 2684 | "dev": true, 2685 | "requires": { 2686 | "@types/node": "*", 2687 | "path-is-network-drive": "^1.0.15", 2688 | "path-strip-sep": "^1.0.12", 2689 | "tslib": "^2" 2690 | } 2691 | }, 2692 | "wrappy": { 2693 | "version": "1.0.2", 2694 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2695 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2696 | "dev": true 2697 | }, 2698 | "ws": { 2699 | "version": "7.5.7", 2700 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", 2701 | "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", 2702 | "dev": true, 2703 | "requires": {} 2704 | }, 2705 | "yocto-queue": { 2706 | "version": "0.1.0", 2707 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2708 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2709 | "dev": true 2710 | } 2711 | } 2712 | } 2713 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sveltime", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "moduleFileExtensions": [ 7 | "js", 8 | "svelte" 9 | ], 10 | "scripts": { 11 | "dev": "rollup -c -w", 12 | "start": "sirv public", 13 | "test": "echo \"Error: no test specified\" && exit 1", 14 | "check": "svelte-check --tsconfig ./tsconfig.json" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/wrreiff/Sveltime.git" 19 | }, 20 | "keywords": [], 21 | "author": "", 22 | "license": "ISC", 23 | "bugs": { 24 | "url": "https://github.com/wrreiff/Sveltime/issues" 25 | }, 26 | "homepage": "https://github.com/wrreiff/Sveltime#readme", 27 | "dependencies": { 28 | "@types/chrome": "^0.0.185", 29 | "rollup-plugin-css-only": "^3.1.0", 30 | "svelte": "^3.48.0" 31 | }, 32 | "devDependencies": { 33 | "@rollup/plugin-node-resolve": "^13.3.0", 34 | "@rollup/plugin-typescript": "^8.0.0", 35 | "@tsconfig/svelte": "^2.0.0", 36 | "rollup": "^2.72.1", 37 | "rollup-plugin-livereload": "^2.0.5", 38 | "rollup-plugin-svelte": "^7.1.0", 39 | "rollup-plugin-typescript2": "^0.31.2", 40 | "sirv-cli": "^2.0.2", 41 | "svelte-check": "^2.0.0", 42 | "svelte-preprocess": "^4.0.0", 43 | "tslib": "^2.0.0", 44 | "typescript": "^4.0.0" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | My Svelte App 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /readme_images/basicTree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/readme_images/basicTree.png -------------------------------------------------------------------------------- /readme_images/collapsedTree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/readme_images/collapsedTree.png -------------------------------------------------------------------------------- /readme_images/mustafa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/readme_images/mustafa.jpg -------------------------------------------------------------------------------- /readme_images/peter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/readme_images/peter.png -------------------------------------------------------------------------------- /readme_images/showState.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/readme_images/showState.png -------------------------------------------------------------------------------- /readme_images/sunit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/readme_images/sunit.jpg -------------------------------------------------------------------------------- /readme_images/william.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/readme_images/william.jpg -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from "rollup-plugin-svelte"; 2 | import resolve from "@rollup/plugin-node-resolve"; 3 | import livereload from "rollup-plugin-livereload"; 4 | import autoPreprocess from "svelte-preprocess"; 5 | import typescript from "@rollup/plugin-typescript"; 6 | import css from "rollup-plugin-css-only"; 7 | 8 | function serve() { 9 | // Keep a reference to a spawned server process 10 | let server; 11 | 12 | function toExit() { 13 | // kill the server if it exists 14 | if (server) server.kill(0); 15 | } 16 | 17 | return { 18 | writeBundle() { 19 | if (server) return; 20 | // Spawn a child server process 21 | server = require("child_process").spawn( 22 | "npm", 23 | ["run", "start", "--", "--dev"], 24 | { 25 | stdio: ["ignore", "inherit", "inherit"], 26 | shell: true, 27 | } 28 | ); 29 | 30 | // Kill server on process termination or exit 31 | process.on("SIGTERM", toExit); 32 | process.on("exit", toExit); 33 | }, 34 | }; 35 | } 36 | 37 | export default { 38 | // This `main.js` file we wrote 39 | input: "src/main.ts", 40 | output: { 41 | // The destination for our bundled JavaScript 42 | file: "public/build/bundle.js", 43 | // Our bundle will be an Immediately-Invoked Function Expression 44 | format: "iife", 45 | // The IIFE return value will be assigned into a variable called `app` 46 | name: "app", 47 | }, 48 | plugins: [ 49 | css({ output: "vendor.css" }), 50 | svelte({ 51 | // Tell the svelte plugin where our svelte files are located 52 | include: "src/**/*.svelte", 53 | preprocess: autoPreprocess(), 54 | }), 55 | // Tell any third-party plugins that we're building for the browser 56 | resolve({ browser: true }), 57 | serve(), 58 | livereload("public"), 59 | typescript({ sourceMap: false }), 60 | ], 61 | }; 62 | -------------------------------------------------------------------------------- /src/App.svelte: -------------------------------------------------------------------------------- 1 | 473 | 474 | 491 | 492 | 502 |
503 | 504 | 505 | 506 | 510 | 511 | {#if showTree} 512 | 513 | {/if} 514 |
515 |
516 | -------------------------------------------------------------------------------- /src/Element.svelte: -------------------------------------------------------------------------------- 1 | 8 | 9 | 95 | 96 |
handleItemClick(currentNode)}> 99 |
100 |

101 | {!currentNode.children.length ? '' : currentNode.hasHiddenChildren ? '►' : '▼'} 102 | {name} 103 | {currentNode.renderTime}ms 104 |

105 | 113 |
114 | 117 | 120 |
121 | -------------------------------------------------------------------------------- /src/ElementTree.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 | 25 | 26 |
27 |
28 | {#each arr as item, i} 29 | 36 | {/each} 37 |
38 |
39 | -------------------------------------------------------------------------------- /src/Footer.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 | 26 | 27 | 30 | -------------------------------------------------------------------------------- /src/Modal.svelte: -------------------------------------------------------------------------------- 1 | 13 | 14 | 78 | 79 |
83 | 84 | 97 | -------------------------------------------------------------------------------- /src/Navbar.svelte: -------------------------------------------------------------------------------- 1 | 11 | 12 | 83 | 84 | 106 | -------------------------------------------------------------------------------- /src/allStores.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 | 25 | 26 |
27 | 28 | {#each storeArr as store, i} 29 | 30 | {/each} 31 |
32 | -------------------------------------------------------------------------------- /src/assets/clock128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/clock128.png -------------------------------------------------------------------------------- /src/assets/clock16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/clock16.png -------------------------------------------------------------------------------- /src/assets/clock32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/clock32.png -------------------------------------------------------------------------------- /src/assets/clock48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/clock48.png -------------------------------------------------------------------------------- /src/assets/full_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/full_logo.png -------------------------------------------------------------------------------- /src/assets/full_logo_cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/full_logo_cropped.png -------------------------------------------------------------------------------- /src/assets/logo_no_backfill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/logo_no_backfill.png -------------------------------------------------------------------------------- /src/assets/logo_no_backfill_copy.pxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/logo_no_backfill_copy.pxd -------------------------------------------------------------------------------- /src/assets/logo_with_white_backfill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/logo_with_white_backfill.png -------------------------------------------------------------------------------- /src/assets/matte.pxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/matte.pxd -------------------------------------------------------------------------------- /src/assets/matte2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Sveltime/0e2874947fb8692d0da3fe8f1b99e9353c782606/src/assets/matte2.png -------------------------------------------------------------------------------- /src/global.d.ts: -------------------------------------------------------------------------------- 1 | /// -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import App from './App.svelte'; 2 | 3 | const app = new App({ 4 | target: document.body, 5 | props: { 6 | name: 'Peter', 7 | }, 8 | }); 9 | 10 | export default app; -------------------------------------------------------------------------------- /src/oneStore.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 | 34 | 35 |
36 |

Store: {key}

37 |

Data: {data}

38 |
39 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/svelte/tsconfig.json", 3 | 4 | "include": ["src/**/*"], 5 | "exclude": ["node_modules/*", "__sapper__/*", "public/*"], 6 | } --------------------------------------------------------------------------------