From 1337daded37c5999294651de8d12e4cf45ba44df Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 24 Dec 2021 16:25:34 -0800 Subject: [PATCH] working --- apps/desktop/package.json | 2 +- apps/desktop/src-tauri/Cargo.lock | 1 + apps/desktop/src-tauri/src/commands.rs | 51 +++++ apps/desktop/src-tauri/src/main.rs | 8 +- apps/desktop/src/App.tsx | 8 +- apps/desktop/src/components/layout/TopBar.tsx | 4 +- apps/desktop/src/screens/Explorer.tsx | 2 +- apps/desktop/src/screens/Overview.tsx | 14 +- apps/desktop/src/screens/Settings.tsx | 13 +- packages/config/package.json | 3 + packages/core/Cargo.lock | 12 ++ packages/core/Cargo.toml | 1 + packages/core/lib/file/indexer.rs | 11 + packages/core/lib/main.rs | 13 +- packages/core/lib/native/methods.rs | 36 ++++ packages/core/lib/native/mod.rs | 4 + packages/core/lib/native/swift.rs | 9 + yarn.lock | 188 ++++-------------- 18 files changed, 208 insertions(+), 172 deletions(-) create mode 100644 packages/core/lib/native/methods.rs create mode 100644 packages/core/lib/native/swift.rs diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 28241c66b..8c9e536a1 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -52,7 +52,7 @@ "react-spline": "^1.2.1", "react-virtuoso": "^2.2.6", "rooks": "^5.7.1", - "tailwindcss": "^2.2.16", + "tailwindcss": "^3.0.7", "vite": "^2.4.4", "vite-plugin-filter-replace": "^0.1.9", "vite-tsconfig-paths": "^3.3.13", diff --git a/apps/desktop/src-tauri/Cargo.lock b/apps/desktop/src-tauri/Cargo.lock index 0ff2c23b1..cf7116a83 100644 --- a/apps/desktop/src-tauri/Cargo.lock +++ b/apps/desktop/src-tauri/Cargo.lock @@ -3394,6 +3394,7 @@ dependencies = [ "sha256", "sqlx", "strum 0.21.0", + "swift-rs", "walkdir", ] diff --git a/apps/desktop/src-tauri/src/commands.rs b/apps/desktop/src-tauri/src/commands.rs index 6f16f8e3b..355a4e3cd 100644 --- a/apps/desktop/src-tauri/src/commands.rs +++ b/apps/desktop/src-tauri/src/commands.rs @@ -1,5 +1,10 @@ use anyhow::Result; +use sdcorelib::db::connection::db_instance; +use sdcorelib::file::{indexer, retrieve, retrieve::Directory}; +use sdcorelib::native; +use sdcorelib::{AppConfig, CONFIG}; use serde::Serialize; +use swift_rs::types::SRObjectArray; #[derive(Serialize)] pub enum GlobalEventKind { @@ -11,6 +16,11 @@ pub struct GlobalEvent { pub kind: GlobalEventKind, pub data: T, } +#[derive(Serialize)] +pub struct GenFileTypeIconsResponse { + pub file_id: u32, + pub icon_created: bool, +} pub fn reply(window: &tauri::Window, kind: GlobalEventKind, data: T) { let _message = window @@ -20,5 +30,46 @@ pub fn reply(window: &tauri::Window, kind: GlobalEventKind, data: #[tauri::command(async)] pub async fn scan_dir(window: tauri::Window, path: String) -> Result<(), String> { + db_instance().await?; + // reply(&window, GlobalEventKind::JEFF, "jeff"); + + let files = indexer::scan(&path).await.map_err(|e| e.to_string())?; + + println!("file: {:?}", files); + Ok(()) } + +#[tauri::command(async)] +pub async fn get_files(path: String) -> Result { + Ok(retrieve::get_dir_with_contents(&path).await?) +} +#[tauri::command(async)] +pub async fn get_config() -> Result<&'static AppConfig, String> { + Ok(CONFIG.get().unwrap()) +} +#[tauri::command] +pub fn get_mounts() -> Result, String> { + Ok(native::methods::get_mounts()) +} + +#[tauri::command(async)] +pub async fn test_scan() -> Result<(), String> { + Ok( + indexer::test_scan("/Users/jamie") + .await + .map_err(|e| e.to_string())?, + ) +} + +// #[tauri::command(async)] +// pub async fn get_file_thumb(path: &str) -> Result { +// // let thumbnail_b64 = get_file_thumbnail_base64(path).to_string(); + +// Ok(thumbnail_b64) +// } + +// #[tauri::command(async)] +// pub async fn get_thumbs_for_directory(window: tauri::Window, path: &str) -> Result<(), String> { +// let config = config::get_config(); +// } diff --git a/apps/desktop/src-tauri/src/main.rs b/apps/desktop/src-tauri/src/main.rs index 76cbf6163..12cc43a88 100644 --- a/apps/desktop/src-tauri/src/main.rs +++ b/apps/desktop/src-tauri/src/main.rs @@ -12,7 +12,13 @@ fn main() { Ok(()) }) .on_menu_event(|event| menu::handle_menu_event(event)) - .invoke_handler(tauri::generate_handler![]) + .invoke_handler(tauri::generate_handler![ + commands::scan_dir, + commands::get_files, + commands::get_config, + commands::get_mounts, + commands::test_scan, + ]) .menu(menu::get_menu()) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index 3b9504019..42fd4ecfc 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -23,9 +23,9 @@ function ErrorFallback({ error, resetErrorBoundary }: FallbackProps) {
-

APP CRASHED

+

APP CRASHED

We're past the event horizon...

Error: {error.message}
@@ -61,12 +61,12 @@ export default function App() { }} > -
+
-
+
diff --git a/apps/desktop/src/components/layout/TopBar.tsx b/apps/desktop/src/components/layout/TopBar.tsx index 7192401ae..347c79615 100644 --- a/apps/desktop/src/components/layout/TopBar.tsx +++ b/apps/desktop/src/components/layout/TopBar.tsx @@ -55,9 +55,9 @@ export const TopBar: React.FC = (props) => { <>
-
+
= () => { if (currentDir === null) return <>; return ( -
+
diff --git a/apps/desktop/src/screens/Overview.tsx b/apps/desktop/src/screens/Overview.tsx index 2935b6d12..567787662 100644 --- a/apps/desktop/src/screens/Overview.tsx +++ b/apps/desktop/src/screens/Overview.tsx @@ -8,11 +8,11 @@ interface StatItemProps { const StatItem: React.FC = (props) => { return ( -
- {props.name} - +
+ {props.name} + {props.value} - {props.unit} + {props.unit}
); @@ -20,9 +20,9 @@ const StatItem: React.FC = (props) => { export const OverviewScreen: React.FC<{}> = (props) => { return ( -
-

Jamie's Library

-
+
+

Jamie's Library

+
diff --git a/apps/desktop/src/screens/Settings.tsx b/apps/desktop/src/screens/Settings.tsx index adb15814b..7f83da002 100644 --- a/apps/desktop/src/screens/Settings.tsx +++ b/apps/desktop/src/screens/Settings.tsx @@ -10,6 +10,7 @@ import { InputContainer } from '../components/primitive/InputContainer'; import { Shortcut } from '../components/primitive/Shortcut'; import { useInputState } from '../hooks/useInputState'; import { useExplorerStore } from '../store/explorer'; +import { useAppState } from '../store/global'; //@ts-ignore // import { Spline } from 'react-spline'; // import WINDOWS_SCENE from '../assets/spline/scene.json'; @@ -17,6 +18,8 @@ import { useExplorerStore } from '../store/explorer'; export const SettingsScreen: React.FC<{}> = () => { const fileUploader = useRef(null); +const config = useAppState() + const [tempWatchDir, setTempWatchDir] = useExplorerStore((state) => [ state.tempWatchDir, state.setTempWatchDir @@ -32,7 +35,7 @@ export const SettingsScreen: React.FC<{}> = () => { width="100%" height="100%" > */} -
+
= () => { />
-
+
-
+
-
+
@@ -90,6 +93,8 @@ export const SettingsScreen: React.FC<{}> = () => {
+ + {JSON.stringify({config})}
); diff --git a/packages/config/package.json b/packages/config/package.json index 1226c82bb..642894a91 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -6,6 +6,9 @@ "files": [ "eslint-preset.js" ], + "devDependencies": { + "typescript": "^4.5.3" + }, "dependencies": { "eslint-config-next": "^12.0.3", "eslint-config-prettier": "^8.3.0" diff --git a/packages/core/Cargo.lock b/packages/core/Cargo.lock index 18664509f..e1073c0cd 100644 --- a/packages/core/Cargo.lock +++ b/packages/core/Cargo.lock @@ -1663,6 +1663,7 @@ dependencies = [ "sha256", "sqlx", "strum", + "swift-rs", "walkdir", ] @@ -2079,6 +2080,17 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "swift-rs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31aa5c69d3be879a07d9a0eb0ad1a424301849061fff96294569b61dd137d2f" +dependencies = [ + "base64", + "serde", + "serde_json", +] + [[package]] name = "syn" version = "1.0.83" diff --git a/packages/core/Cargo.toml b/packages/core/Cargo.toml index 18ee7b063..069edbfb1 100644 --- a/packages/core/Cargo.toml +++ b/packages/core/Cargo.toml @@ -15,6 +15,7 @@ name = "sdcorelib" path = "lib/main.rs" [dependencies] +swift-rs = "0.2.3" # Universal Dependencies anyhow = "1.0.44" log = "0.4.14" diff --git a/packages/core/lib/file/indexer.rs b/packages/core/lib/file/indexer.rs index 14ea89fb9..76533a1ec 100644 --- a/packages/core/lib/file/indexer.rs +++ b/packages/core/lib/file/indexer.rs @@ -84,6 +84,17 @@ pub async fn scan(path: &str) -> Result<()> { Ok(()) } +pub async fn test_scan(path: &str) -> Result<()> { + let mut count: u32 = 0; + for entry in WalkDir::new(path).into_iter().filter_map(|e| e.ok()) { + let child_path = entry.path().to_str().unwrap(); + count = count + 1; + println!("Reading file from dir {:?}", child_path); + } + println!("files found {}", count); + Ok(()) +} + fn get_parent_dir_id(dirs: &HashMap, entry: &DirEntry) -> Option { let path = entry.path(); let parent_path = path diff --git a/packages/core/lib/main.rs b/packages/core/lib/main.rs index 83aa33ea8..b69504616 100644 --- a/packages/core/lib/main.rs +++ b/packages/core/lib/main.rs @@ -1,10 +1,11 @@ use once_cell::sync::OnceCell; use serde::{Deserialize, Serialize}; -mod crypto; -mod db; -mod file; -mod util; +pub mod crypto; +pub mod db; +pub mod file; +pub mod native; +pub mod util; // static configuration #[derive(Serialize, Deserialize, Debug)] @@ -15,7 +16,9 @@ pub struct AppConfig { } pub static CONFIG: OnceCell = OnceCell::new(); -pub fn configure(data_dir: std::path::PathBuf) { +pub fn configure(mut data_dir: std::path::PathBuf) { + data_dir = data_dir.join("spacedrive"); + let config = AppConfig { data_dir: data_dir.clone(), primary_db: data_dir.clone().join("primary.db3"), diff --git a/packages/core/lib/native/methods.rs b/packages/core/lib/native/methods.rs new file mode 100644 index 000000000..5a03d59b1 --- /dev/null +++ b/packages/core/lib/native/methods.rs @@ -0,0 +1,36 @@ +// This file must use the following macros to select specific native bindings. +// #[cfg(target_os = "macos")] +// #[cfg(target_os = "linux")] +// #[cfg(target_os = "windows")] +#[cfg(target_os = "macos")] +use super::swift; + +use serde::Serialize; + +use swift_rs::types::{SRObjectArray, SRString}; + +#[derive(Serialize)] +#[repr(C)] +pub struct Mount { + name: SRString, + path: SRString, + total_capacity: usize, + available_capacity: usize, + is_removable: bool, + is_ejectable: bool, + is_root_filesystem: bool, +} + +pub fn get_file_thumbnail_base64(path: &str) -> SRString { + #[cfg(target_os = "macos")] + unsafe { + swift::get_file_thumbnail_base64_(path.into()) + } +} + +pub fn get_mounts() -> SRObjectArray { + #[cfg(target_os = "macos")] + unsafe { + swift::get_mounts_() + } +} diff --git a/packages/core/lib/native/mod.rs b/packages/core/lib/native/mod.rs index 87fb3174e..d1bd1dbb2 100644 --- a/packages/core/lib/native/mod.rs +++ b/packages/core/lib/native/mod.rs @@ -1 +1,5 @@ // This module contains the native bindings to the core library. +pub mod methods; + +#[cfg(target_os = "macos")] +mod swift; diff --git a/packages/core/lib/native/swift.rs b/packages/core/lib/native/swift.rs new file mode 100644 index 000000000..23f80b51b --- /dev/null +++ b/packages/core/lib/native/swift.rs @@ -0,0 +1,9 @@ +use swift_rs::types::{SRObjectArray, SRString}; + +extern "C" { + #[link_name = "get_file_thumbnail_base64"] + pub fn get_file_thumbnail_base64_(path: SRString) -> SRString; + + #[link_name = "get_mounts"] + pub fn get_mounts_() -> SRObjectArray; +} diff --git a/yarn.lock b/yarn.lock index d53869ca0..d83345b59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -724,6 +724,16 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + "@types/tailwindcss@^2.2.1": version "2.2.4" resolved "https://registry.yarnpkg.com/@types/tailwindcss/-/tailwindcss-2.2.4.tgz#c3bca7d265e608ffc50a6d1a4932b5b53be14553" @@ -1355,11 +1365,6 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -bytes@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== - cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -1621,12 +1626,12 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0, color-string@^1.9.0: +color-string@^1.6.0: version "1.9.0" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== @@ -1642,14 +1647,6 @@ color@^3.1.3: color-convert "^1.9.3" color-string "^1.6.0" -color@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/color/-/color-4.1.0.tgz#9502e6a2dcacb26adf4c60910a27628d010b3de3" - integrity sha512-o2rkkxyLGgYoeUy1OodXpbPAQNmlNBrirQ8ODO8QutzDiDMNdezSOZLNnusQ6pUpCQJUsaJIo9DZJKqa2HgH7A== - dependencies: - color-convert "^2.0.1" - color-string "^1.9.0" - colorette@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" @@ -1660,11 +1657,6 @@ commander@^2.8.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1855,16 +1847,6 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-unit-converter@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" - integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== - css.escape@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -2955,7 +2937,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@10.0.0, fs-extra@^10.0.0: +fs-extra@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== @@ -3083,7 +3065,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -3365,11 +3347,6 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - history@^4.9.0: version "4.10.1" resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -3408,21 +3385,6 @@ hotkeys-js@3.8.7: resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.7.tgz#c16cab978b53d7242f860ca3932e976b92399981" integrity sha512-ckAx3EkUr5XjDwjEHDorHxRO2Kb7z6Z2Sxul4MbBkN8Nho7XDslQsgMJT+CiJ5Z4TgRxxvKHEpuLE3imzqy4Lg== -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== - http-cache-semantics@3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -3685,18 +3647,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-color-stop@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.2.0, is-core-module@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" @@ -4129,11 +4079,6 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.topath@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" - integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak= - lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -4357,11 +4302,6 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -modern-normalize@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.1.0.tgz#da8e80140d9221426bd4f725c6e11283d34f90b7" - integrity sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA== - moment@^2.29.1: version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" @@ -4494,13 +4434,6 @@ node-addon-api@^3.2.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== -node-emoji@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" - integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== - dependencies: - lodash "^4.17.21" - node-fetch@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" @@ -5098,7 +5031,7 @@ postcss-nested@5.0.6: dependencies: postcss-selector-parser "^6.0.6" -postcss-selector-parser@^6.0.6: +postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.7: version "6.0.8" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" integrity sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ== @@ -5106,12 +5039,7 @@ postcss-selector-parser@^6.0.6: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.1.0: +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -5133,7 +5061,7 @@ postcss@^7.0.32: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.1.6, postcss@^8.3.5, postcss@^8.4.5: +postcss@^8.1.6, postcss@^8.4.5: version "8.4.5" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== @@ -5186,11 +5114,6 @@ pretty-bytes@*, pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-hrtime@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -5257,16 +5180,6 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" -purgecss@^4.0.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-4.1.3.tgz#683f6a133c8c4de7aa82fe2746d1393b214918f7" - integrity sha512-99cKy4s+VZoXnPxaoM23e5ABcP851nC2y2GROkkjS8eJaJtlciGavd7iYAw2V84WeBqggZ12l8ef44G99HmTaw== - dependencies: - commander "^8.0.0" - glob "^7.1.7" - postcss "^8.3.5" - postcss-selector-parser "^6.0.6" - query-string@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" @@ -5530,14 +5443,6 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -reduce-css-calc@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" - integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg== - dependencies: - css-unit-converter "^1.1.1" - postcss-value-parser "^3.3.0" - regenerator-runtime@0.13.4: version "0.13.4" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz#e96bf612a3362d12bb69f7e8f74ffeab25c7ac91" @@ -5660,16 +5565,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - rimraf@^2.5.4: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -6200,16 +6095,16 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" +strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - strip-outer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" @@ -6291,41 +6186,30 @@ table@^6.0.9: string-width "^4.2.3" strip-ansi "^6.0.1" -tailwindcss@^2.2.16: - version "2.2.19" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-2.2.19.tgz#540e464832cd462bb9649c1484b0a38315c2653c" - integrity sha512-6Ui7JSVtXadtTUo2NtkBBacobzWiQYVjYW0ZnKaP9S1ZCKQ0w7KVNz+YSDI/j7O7KCMHbOkz94ZMQhbT9pOqjw== +tailwindcss@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.7.tgz#15936881f042a7eb8d6f2b6a454bac9f51181bbd" + integrity sha512-rZdKNHtC64jcQncLoWOuCzj4lQDTAgLtgK3WmQS88tTdpHh9OwLqULTQxI3tw9AMJsqSpCKlmcjW/8CSnni6zQ== dependencies: arg "^5.0.1" - bytes "^3.0.0" chalk "^4.1.2" chokidar "^3.5.2" - color "^4.0.1" + color-name "^1.1.4" cosmiconfig "^7.0.1" detective "^5.2.0" didyoumean "^1.2.2" dlv "^1.1.3" fast-glob "^3.2.7" - fs-extra "^10.0.0" - glob-parent "^6.0.1" - html-tags "^3.1.0" - is-color-stop "^1.1.0" - is-glob "^4.0.1" - lodash "^4.17.21" - lodash.topath "^4.5.2" - modern-normalize "^1.1.0" - node-emoji "^1.11.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" normalize-path "^3.0.0" object-hash "^2.2.0" postcss-js "^3.0.3" postcss-load-config "^3.1.0" postcss-nested "5.0.6" - postcss-selector-parser "^6.0.6" - postcss-value-parser "^4.1.0" - pretty-hrtime "^1.0.3" - purgecss "^4.0.3" + postcss-selector-parser "^6.0.7" + postcss-value-parser "^4.2.0" quick-lru "^5.1.1" - reduce-css-calc "^2.1.8" resolve "^1.20.0" tmp "^0.2.1" @@ -6508,6 +6392,16 @@ tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" +tsconfig@*: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"