From b3489c1dacdbaac79fd3bbad02d537db6752c685 Mon Sep 17 00:00:00 2001 From: Niko PLP Date: Tue, 14 Oct 2025 03:22:58 +0300 Subject: [PATCH] moving things around --- Cargo.lock | 4414 +++++++++++++++-- Cargo.toml | 28 +- DEV.md | 49 +- app/nextgraph/.gitignore | 24 + app/nextgraph/.vscode/extensions.json | 3 + app/nextgraph/README.md | 7 + app/nextgraph/app-icon.png | Bin 0 -> 52373 bytes app/nextgraph/index.html | 43 + app/nextgraph/package.json | 21 + app/nextgraph/src-tauri/.gitignore | 7 + app/nextgraph/src-tauri/Cargo.toml | 38 + app/nextgraph/src-tauri/build.rs | 3 + .../src-tauri/capabilities/default.json | 10 + .../src-tauri/gen/android/.editorconfig | 12 + .../src-tauri/gen/android/.gitignore | 19 + .../src-tauri/gen/android/app/.gitignore | 6 + .../gen/android/app/build.gradle.kts | 70 + .../gen/android/app/proguard-rules.pro | 21 + .../android/app/src/main/AndroidManifest.xml | 38 + .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 23934 bytes .../java/org/nextgraph/app/MainActivity.kt | 11 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 18 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1610 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 2690 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 3152 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 1174 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 1744 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 2030 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 2112 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 3570 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 4268 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 3084 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 5304 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 6472 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 4170 bytes .../ic_launcher_foreground.webp | Bin 0 -> 7146 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 8992 bytes .../app/src/main/res/values-night/themes.xml | 18 + .../app/src/main/res/values/colors.xml | 9 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 4 + .../app/src/main/res/values/themes.xml | 18 + .../app/src/main/res/xml/file_paths.xml | 5 + .../src-tauri/gen/android/build.gradle.kts | 22 + .../gen/android/buildSrc/build.gradle.kts | 23 + .../org/nextgraph/app/kotlin/BuildTask.kt | 52 + .../org/nextgraph/app/kotlin/RustPlugin.kt | 85 + .../src-tauri/gen/android/gradle.properties | 24 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + app/nextgraph/src-tauri/gen/android/gradlew | 185 + .../src-tauri/gen/android/gradlew.bat | 89 + .../src-tauri/gen/android/settings.gradle | 3 + app/nextgraph/src-tauri/icons/128x128.png | Bin 0 -> 8850 bytes app/nextgraph/src-tauri/icons/128x128@2x.png | Bin 0 -> 18285 bytes app/nextgraph/src-tauri/icons/32x32.png | Bin 0 -> 2028 bytes app/nextgraph/src-tauri/icons/64x64.png | Bin 0 -> 4239 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 0 -> 7347 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 0 -> 9703 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 0 -> 10393 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 0 -> 20564 bytes .../src-tauri/icons/Square30x30Logo.png | Bin 0 -> 1861 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 0 -> 22677 bytes .../src-tauri/icons/Square44x44Logo.png | Bin 0 -> 2912 bytes .../src-tauri/icons/Square71x71Logo.png | Bin 0 -> 4709 bytes .../src-tauri/icons/Square89x89Logo.png | Bin 0 -> 6061 bytes app/nextgraph/src-tauri/icons/StoreLogo.png | Bin 0 -> 3339 bytes app/nextgraph/src-tauri/icons/icon.icns | Bin 0 -> 181934 bytes app/nextgraph/src-tauri/icons/icon.ico | Bin 0 -> 31018 bytes app/nextgraph/src-tauri/icons/icon.png | Bin 0 -> 38778 bytes .../src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 921 bytes .../icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 2115 bytes .../src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 2115 bytes .../src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 3320 bytes .../src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 1429 bytes .../icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 3151 bytes .../src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 3151 bytes .../src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 4671 bytes .../src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 2115 bytes .../icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 4390 bytes .../src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 4390 bytes .../src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 6476 bytes .../src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 39127 bytes .../src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 6476 bytes .../src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 9956 bytes .../src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 4099 bytes .../src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 8254 bytes .../icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 9093 bytes app/nextgraph/src-tauri/src/lib.rs | 14 + app/nextgraph/src-tauri/src/main.rs | 6 + app/nextgraph/src-tauri/tauri.conf.json | 36 + app/nextgraph/src/assets/tauri.svg | 6 + app/nextgraph/src/assets/typescript.svg | 25 + app/nextgraph/src/assets/vite.svg | 1 + app/nextgraph/src/main.ts | 22 + app/nextgraph/src/styles.css | 116 + app/nextgraph/tsconfig.json | 23 + app/nextgraph/vite.config.ts | 43 + app/ui-common/.gitignore | 28 + app/ui-common/.vscode/extensions.json | 6 + app/ui-common/README.md | 2 + app/ui-common/package.json | 68 + app/ui-common/postcss.config.cjs | 13 + app/ui-common/src/App.svelte | 310 ++ app/ui-common/src/api.ts | 44 + app/ui-common/src/app.postcss | 4 + app/ui-common/src/assets/EU.svg | 4 + app/ui-common/src/assets/nextgraph-nofill.svg | 16 + app/ui-common/src/assets/nextgraph.svg | 16 + .../src/assets/pazzle/emoji_u1f308.svg | 17 + .../src/assets/pazzle/emoji_u1f30c.svg | 190 + .../src/assets/pazzle/emoji_u1f319.svg | 13 + .../src/assets/pazzle/emoji_u1f321.svg | 25 + .../src/assets/pazzle/emoji_u1f327.svg | 33 + .../src/assets/pazzle/emoji_u1f332.svg | 67 + .../src/assets/pazzle/emoji_u1f334.svg | 51 + .../src/assets/pazzle/emoji_u1f335.svg | 84 + .../src/assets/pazzle/emoji_u1f336.svg | 19 + .../src/assets/pazzle/emoji_u1f339.svg | 37 + .../src/assets/pazzle/emoji_u1f33b.svg | 31 + .../src/assets/pazzle/emoji_u1f33d.svg | 78 + .../src/assets/pazzle/emoji_u1f340.svg | 46 + .../src/assets/pazzle/emoji_u1f342.svg | 43 + .../src/assets/pazzle/emoji_u1f344.svg | 25 + .../src/assets/pazzle/emoji_u1f346.svg | 20 + .../src/assets/pazzle/emoji_u1f347.svg | 59 + .../src/assets/pazzle/emoji_u1f349.svg | 32 + .../src/assets/pazzle/emoji_u1f34b.svg | 23 + .../src/assets/pazzle/emoji_u1f34c.svg | 33 + .../src/assets/pazzle/emoji_u1f34d.svg | 44 + .../src/assets/pazzle/emoji_u1f34e.svg | 23 + .../src/assets/pazzle/emoji_u1f352.svg | 29 + .../src/assets/pazzle/emoji_u1f353.svg | 53 + .../src/assets/pazzle/emoji_u1f355.svg | 57 + .../src/assets/pazzle/emoji_u1f366.svg | 40 + .../src/assets/pazzle/emoji_u1f36a.svg | 82 + .../src/assets/pazzle/emoji_u1f36b.svg | 47 + .../src/assets/pazzle/emoji_u1f36c.svg | 47 + .../src/assets/pazzle/emoji_u1f370.svg | 40 + .../src/assets/pazzle/emoji_u1f373.svg | 35 + .../src/assets/pazzle/emoji_u1f377.svg | 69 + .../src/assets/pazzle/emoji_u1f37e.svg | 43 + .../src/assets/pazzle/emoji_u1f381.svg | 41 + .../src/assets/pazzle/emoji_u1f388.svg | 18 + .../src/assets/pazzle/emoji_u1f3a8.svg | 52 + .../src/assets/pazzle/emoji_u1f3aa.svg | 62 + .../src/assets/pazzle/emoji_u1f3af.svg | 36 + .../src/assets/pazzle/emoji_u1f3b2.svg | 35 + .../src/assets/pazzle/emoji_u1f3b5.svg | 9 + .../src/assets/pazzle/emoji_u1f3b7.svg | 28 + .../src/assets/pazzle/emoji_u1f3b8.svg | 102 + .../src/assets/pazzle/emoji_u1f3be.svg | 91 + .../src/assets/pazzle/emoji_u1f3c0.svg | 32 + .../src/assets/pazzle/emoji_u1f3c4.svg | 211 + .../src/assets/pazzle/emoji_u1f3c7.svg | 137 + .../src/assets/pazzle/emoji_u1f3ca.svg | 131 + .../src/assets/pazzle/emoji_u1f3cb.svg | 298 ++ .../src/assets/pazzle/emoji_u1f3cd.svg | 65 + .../src/assets/pazzle/emoji_u1f3d3.svg | 25 + .../src/assets/pazzle/emoji_u1f3d4.svg | 100 + .../src/assets/pazzle/emoji_u1f3d5.svg | 88 + .../src/assets/pazzle/emoji_u1f3d6.svg | 33 + .../src/assets/pazzle/emoji_u1f3db.svg | 48 + .../src/assets/pazzle/emoji_u1f3e1.svg | 73 + .../src/assets/pazzle/emoji_u1f406.svg | 135 + .../src/assets/pazzle/emoji_u1f407.svg | 54 + .../src/assets/pazzle/emoji_u1f40c.svg | 38 + .../src/assets/pazzle/emoji_u1f40d.svg | 43 + .../src/assets/pazzle/emoji_u1f410.svg | 56 + .../src/assets/pazzle/emoji_u1f411.svg | 38 + .../src/assets/pazzle/emoji_u1f413.svg | 37 + .../src/assets/pazzle/emoji_u1f416.svg | 33 + .../src/assets/pazzle/emoji_u1f418.svg | 39 + .../src/assets/pazzle/emoji_u1f419.svg | 63 + .../src/assets/pazzle/emoji_u1f41a.svg | 32 + .../src/assets/pazzle/emoji_u1f41c.svg | 53 + .../src/assets/pazzle/emoji_u1f41d.svg | 46 + .../src/assets/pazzle/emoji_u1f41e.svg | 42 + .../src/assets/pazzle/emoji_u1f41f.svg | 43 + .../src/assets/pazzle/emoji_u1f422.svg | 34 + .../src/assets/pazzle/emoji_u1f423.svg | 34 + .../src/assets/pazzle/emoji_u1f427.svg | 36 + .../src/assets/pazzle/emoji_u1f42a.svg | 42 + .../src/assets/pazzle/emoji_u1f42c.svg | 25 + .../src/assets/pazzle/emoji_u1f433.svg | 40 + .../src/assets/pazzle/emoji_u1f434.svg | 39 + .../src/assets/pazzle/emoji_u1f436.svg | 34 + .../assets/pazzle/emoji_u1f43b_200d_2744.svg | 49 + .../src/assets/pazzle/emoji_u1f441.svg | 31 + .../src/assets/pazzle/emoji_u1f442.svg | 24 + .../src/assets/pazzle/emoji_u1f443.svg | 28 + .../src/assets/pazzle/emoji_u1f444.svg | 21 + .../src/assets/pazzle/emoji_u1f445.svg | 37 + .../src/assets/pazzle/emoji_u1f44d.svg | 36 + .../src/assets/pazzle/emoji_u1f450.svg | 58 + .../src/assets/pazzle/emoji_u1f455.svg | 44 + .../src/assets/pazzle/emoji_u1f456.svg | 111 + .../src/assets/pazzle/emoji_u1f457.svg | 50 + .../src/assets/pazzle/emoji_u1f45f.svg | 77 + .../src/assets/pazzle/emoji_u1f477.svg | 187 + .../src/assets/pazzle/emoji_u1f478.svg | 119 + .../src/assets/pazzle/emoji_u1f47b.svg | 92 + .../src/assets/pazzle/emoji_u1f48b.svg | 17 + .../src/assets/pazzle/emoji_u1f48c.svg | 30 + .../src/assets/pazzle/emoji_u1f490.svg | 57 + .../src/assets/pazzle/emoji_u1f495.svg | 53 + .../src/assets/pazzle/emoji_u1f4a1.svg | 60 + .../src/assets/pazzle/emoji_u1f4a5.svg | 17 + .../src/assets/pazzle/emoji_u1f4a6.svg | 34 + .../src/assets/pazzle/emoji_u1f4aa.svg | 46 + .../src/assets/pazzle/emoji_u1f4af.svg | 28 + .../src/assets/pazzle/emoji_u1f4cc.svg | 37 + .../src/assets/pazzle/emoji_u1f4ce.svg | 41 + .../src/assets/pazzle/emoji_u1f4da.svg | 73 + .../src/assets/pazzle/emoji_u1f4e6.svg | 714 +++ .../src/assets/pazzle/emoji_u1f50d.svg | 46 + .../src/assets/pazzle/emoji_u1f511.svg | 26 + .../src/assets/pazzle/emoji_u1f513.svg | 34 + .../src/assets/pazzle/emoji_u1f525.svg | 36 + .../src/assets/pazzle/emoji_u1f590.svg | 32 + .../src/assets/pazzle/emoji_u1f600.svg | 55 + .../src/assets/pazzle/emoji_u1f602.svg | 75 + .../src/assets/pazzle/emoji_u1f607.svg | 53 + .../src/assets/pazzle/emoji_u1f60d.svg | 57 + .../src/assets/pazzle/emoji_u1f60e.svg | 38 + .../src/assets/pazzle/emoji_u1f618.svg | 56 + .../src/assets/pazzle/emoji_u1f61d.svg | 61 + .../src/assets/pazzle/emoji_u1f624.svg | 78 + .../src/assets/pazzle/emoji_u1f62d.svg | 124 + .../src/assets/pazzle/emoji_u1f631.svg | 116 + .../src/assets/pazzle/emoji_u1f634.svg | 72 + .../src/assets/pazzle/emoji_u1f635.svg | 38 + .../src/assets/pazzle/emoji_u1f637.svg | 64 + .../src/assets/pazzle/emoji_u1f638.svg | 76 + .../src/assets/pazzle/emoji_u1f63f.svg | 86 + .../src/assets/pazzle/emoji_u1f640.svg | 100 + .../src/assets/pazzle/emoji_u1f644.svg | 55 + .../src/assets/pazzle/emoji_u1f648.svg | 43 + .../src/assets/pazzle/emoji_u1f649.svg | 32 + .../src/assets/pazzle/emoji_u1f64a.svg | 37 + .../src/assets/pazzle/emoji_u1f64f.svg | 30 + .../src/assets/pazzle/emoji_u1f680.svg | 58 + .../src/assets/pazzle/emoji_u1f681.svg | 54 + .../src/assets/pazzle/emoji_u1f682.svg | 132 + .../src/assets/pazzle/emoji_u1f695.svg | 44 + .../src/assets/pazzle/emoji_u1f6a3.svg | 114 + .../src/assets/pazzle/emoji_u1f6b4.svg | 169 + .../src/assets/pazzle/emoji_u1f6c1.svg | 113 + .../src/assets/pazzle/emoji_u1f6d2.svg | 66 + .../src/assets/pazzle/emoji_u1f6f4.svg | 53 + .../src/assets/pazzle/emoji_u1f6fc.svg | 106 + .../src/assets/pazzle/emoji_u1f910.svg | 54 + .../src/assets/pazzle/emoji_u1f912.svg | 89 + .../src/assets/pazzle/emoji_u1f915.svg | 77 + .../src/assets/pazzle/emoji_u1f917.svg | 141 + .../src/assets/pazzle/emoji_u1f91d.svg | 56 + .../src/assets/pazzle/emoji_u1f921.svg | 101 + .../src/assets/pazzle/emoji_u1f925.svg | 84 + .../src/assets/pazzle/emoji_u1f927.svg | 70 + .../src/assets/pazzle/emoji_u1f92d.svg | 90 + .../src/assets/pazzle/emoji_u1f92e.svg | 79 + .../src/assets/pazzle/emoji_u1f92f.svg | 128 + .../src/assets/pazzle/emoji_u1f93a.svg | 227 + .../src/assets/pazzle/emoji_u1f93c.svg | 271 + .../src/assets/pazzle/emoji_u1f93f.svg | 57 + .../src/assets/pazzle/emoji_u1f942.svg | 139 + .../src/assets/pazzle/emoji_u1f94b.svg | 59 + .../src/assets/pazzle/emoji_u1f950.svg | 114 + .../src/assets/pazzle/emoji_u1f951.svg | 18 + .../src/assets/pazzle/emoji_u1f955.svg | 31 + .../src/assets/pazzle/emoji_u1f956.svg | 57 + .../src/assets/pazzle/emoji_u1f95d.svg | 85 + .../src/assets/pazzle/emoji_u1f968.svg | 64 + .../src/assets/pazzle/emoji_u1f970.svg | 117 + .../src/assets/pazzle/emoji_u1f971.svg | 57 + .../src/assets/pazzle/emoji_u1f973.svg | 111 + .../src/assets/pazzle/emoji_u1f975.svg | 126 + .../src/assets/pazzle/emoji_u1f976.svg | 145 + .../src/assets/pazzle/emoji_u1f981.svg | 39 + .../src/assets/pazzle/emoji_u1f985.svg | 48 + .../src/assets/pazzle/emoji_u1f986.svg | 38 + .../src/assets/pazzle/emoji_u1f987.svg | 43 + .../src/assets/pazzle/emoji_u1f989.svg | 60 + .../src/assets/pazzle/emoji_u1f98b.svg | 116 + .../src/assets/pazzle/emoji_u1f98e.svg | 1947 ++++++++ .../src/assets/pazzle/emoji_u1f98f.svg | 60 + .../src/assets/pazzle/emoji_u1f992.svg | 99 + .../src/assets/pazzle/emoji_u1f993.svg | 56 + .../src/assets/pazzle/emoji_u1f994.svg | 78 + .../src/assets/pazzle/emoji_u1f9a9.svg | 48 + .../src/assets/pazzle/emoji_u1f9b4.svg | 41 + .../src/assets/pazzle/emoji_u1f9b5.svg | 44 + .../src/assets/pazzle/emoji_u1f9b6.svg | 49 + .../src/assets/pazzle/emoji_u1f9b7.svg | 19 + .../src/assets/pazzle/emoji_u1f9c0.svg | 37 + .../src/assets/pazzle/emoji_u1f9d0.svg | 88 + .../assets/pazzle/emoji_u1f9d1_200d_1f692.svg | 224 + .../src/assets/pazzle/emoji_u1f9d9.svg | 178 + .../src/assets/pazzle/emoji_u1f9da.svg | 323 ++ .../src/assets/pazzle/emoji_u1f9dc.svg | 238 + .../src/assets/pazzle/emoji_u1f9e0.svg | 124 + .../src/assets/pazzle/emoji_u1f9e8.svg | 31 + .../src/assets/pazzle/emoji_u1f9e9.svg | 33 + .../src/assets/pazzle/emoji_u1f9ed.svg | 75 + .../src/assets/pazzle/emoji_u1f9f8.svg | 68 + .../src/assets/pazzle/emoji_u1f9f9.svg | 57 + .../src/assets/pazzle/emoji_u1f9fd.svg | 125 + .../src/assets/pazzle/emoji_u1fa81.svg | 50 + .../src/assets/pazzle/emoji_u1fa82.svg | 207 + .../src/assets/pazzle/emoji_u1fa90.svg | 66 + .../src/assets/pazzle/emoji_u1fa91.svg | 30 + .../src/assets/pazzle/emoji_u1fab4.svg | 168 + .../src/assets/pazzle/emoji_u1fad0.svg | 44 + .../src/assets/pazzle/emoji_u2600.svg | 28 + .../src/assets/pazzle/emoji_u2614.svg | 81 + .../src/assets/pazzle/emoji_u2615.svg | 38 + .../src/assets/pazzle/emoji_u2639.svg | 37 + .../src/assets/pazzle/emoji_u265f.svg | 46 + .../src/assets/pazzle/emoji_u2693.svg | 35 + .../src/assets/pazzle/emoji_u26a1.svg | 17 + .../src/assets/pazzle/emoji_u26bd.svg | 55 + .../src/assets/pazzle/emoji_u26c4.svg | 35 + .../src/assets/pazzle/emoji_u26f2.svg | 70 + .../src/assets/pazzle/emoji_u26f5.svg | 63 + .../src/assets/pazzle/emoji_u26f7.svg | 150 + .../src/assets/pazzle/emoji_u2702.svg | 48 + .../src/assets/pazzle/emoji_u2708.svg | 67 + .../src/assets/pazzle/emoji_u270a.svg | 43 + .../src/assets/pazzle/emoji_u270c.svg | 37 + .../src/assets/pazzle/emoji_u270d.svg | 40 + .../src/assets/pazzle/emoji_u270f.svg | 40 + .../src/assets/pazzle/emoji_u2744.svg | 77 + .../src/assets/pazzle/emoji_u2764.svg | 28 + .../src/assets/pazzle/emoji_u2b50.svg | 19 + app/ui-common/src/base64url.js | 59 + app/ui-common/src/classes.ts | 962 ++++ app/ui-common/src/lang.ts | 48 + app/ui-common/src/lib/CenteredLayout.svelte | 110 + app/ui-common/src/lib/Install.svelte | 197 + app/ui-common/src/lib/Login.svelte | 767 +++ app/ui-common/src/lib/NoWallet.svelte | 86 + app/ui-common/src/lib/Test.svelte | 33 + app/ui-common/src/lib/component.ts | 1 + .../src/lib/components/CopyToClipboard.svelte | 91 + app/ui-common/src/lib/components/Logo.svelte | 40 + .../src/lib/components/LogoSimple.svelte | 23 + .../src/lib/components/Message.svelte | 64 + .../src/lib/components/PasswordInput.svelte | 98 + .../src/lib/components/Spinner.svelte | 38 + .../src/lib/icons/BrailleIcon.svelte | 3 + app/ui-common/src/lib/icons/BranchIcon.svelte | 13 + .../src/lib/icons/ChemistryIcon.svelte | 8 + .../src/lib/icons/DataClassIcon.svelte | 191 + app/ui-common/src/lib/icons/DeviceIcon.svelte | 57 + .../src/lib/icons/GraphQLIcon.svelte | 3 + app/ui-common/src/lib/icons/GuitarIcon.svelte | 4 + app/ui-common/src/lib/icons/JsIcon.svelte | 3 + app/ui-common/src/lib/icons/JsonIcon.svelte | 4 + app/ui-common/src/lib/icons/JsonLdIcon.svelte | 10 + .../src/lib/icons/MarkdownIcon.svelte | 6 + app/ui-common/src/lib/icons/NavIcon.svelte | 64 + app/ui-common/src/lib/icons/PdfIcon.svelte | 3 + app/ui-common/src/lib/icons/RdfIcon.svelte | 9 + app/ui-common/src/lib/icons/ReactIcon.svelte | 3 + app/ui-common/src/lib/icons/RustIcon.svelte | 3 + app/ui-common/src/lib/icons/SvelteIcon.svelte | 3 + app/ui-common/src/lib/icons/TsIcon.svelte | 3 + app/ui-common/src/lib/icons/TurtleIcon.svelte | 35 + app/ui-common/src/lib/icons/TxtIcon.svelte | 5 + app/ui-common/src/lib/icons/ZeraIcon.svelte | 130 + app/ui-common/src/lib/index.ts | 2 + app/ui-common/src/locales/de.json | 599 +++ app/ui-common/src/locales/en.json | 940 ++++ app/ui-common/src/locales/es.json | 231 + app/ui-common/src/locales/fr.json | 231 + app/ui-common/src/locales/it.json | 231 + app/ui-common/src/locales/pt.json | 231 + app/ui-common/src/locales/ru.json | 231 + app/ui-common/src/locales/zh.json | 231 + app/ui-common/src/main.ts | 12 + app/ui-common/src/routes/AccountInfo.svelte | 386 ++ app/ui-common/src/routes/Install.svelte | 26 + app/ui-common/src/routes/Invitation.svelte | 18 + app/ui-common/src/routes/NotFound.svelte | 40 + app/ui-common/src/routes/ScanQRTauri.svelte | 92 + app/ui-common/src/routes/ScanQRWeb.svelte | 129 + app/ui-common/src/routes/Test.svelte | 41 + app/ui-common/src/routes/User.svelte | 392 ++ .../src/routes/UserRegistered.svelte | 128 + app/ui-common/src/routes/WalletCreate.svelte | 1978 ++++++++ app/ui-common/src/routes/WalletInfo.svelte | 657 +++ app/ui-common/src/routes/WalletLogin.svelte | 502 ++ app/ui-common/src/routes/WalletLoginQr.svelte | 233 + .../src/routes/WalletLoginTextCode.svelte | 141 + .../src/routes/WalletLoginUsername.svelte | 319 ++ app/ui-common/src/routes/index.ts | 14 + app/ui-common/src/store.ts | 800 +++ app/ui-common/src/styles.css | 226 + app/ui-common/src/tab.ts | 667 +++ app/ui-common/src/vite-env.d.ts | 2 + app/ui-common/src/wallet_emojis.ts | 1834 +++++++ app/ui-common/src/workertest.js | 1 + app/ui-common/src/zeras.ts | 776 +++ app/ui-common/svelte.config.js | 13 + app/ui-common/tailwind.config.cjs | 37 + app/ui-common/tsconfig.json | 19 + app/ui-common/vite.config.ts | 78 + bin/ngcli/Cargo.toml | 34 + bin/ngcli/README.md | 58 + bin/ngcli/src/get.rs | 8 + bin/ngcli/src/main.rs | 955 ++++ bin/ngd/Cargo.toml | 41 + bin/ngd/README.md | 96 + bin/ngd/docker/Dockerfile.alpine | 36 + bin/ngd/docker/Dockerfile.fedora | 46 + bin/ngd/docker/Dockerfile.ubuntu | 47 + bin/ngd/src/cli.rs | 135 + bin/ngd/src/main.rs | 1041 ++++ bin/ngd/src/types.rs | 8 + engine/broker/Cargo.toml | 47 + {ng-broker => engine/broker}/README.md | 0 engine/broker/auth/.gitignore | 24 + engine/broker/auth/index.html | 57 + engine/broker/auth/jsconfig.json | 32 + engine/broker/auth/package.json | 40 + engine/broker/auth/pnpm-lock.yaml | 1930 +++++++ engine/broker/auth/postcss.config.cjs | 13 + engine/broker/auth/prepare-app-file.cjs | 32 + engine/broker/auth/src/App.svelte | 276 ++ engine/broker/auth/src/app.postcss | 4 + engine/broker/auth/src/assets/EU.svg | 4 + engine/broker/auth/src/assets/nextgraph.svg | 16 + engine/broker/auth/src/lib/Home.svelte | 32 + engine/broker/auth/src/main.ts | 111 + engine/broker/auth/src/routes/Home.svelte | 54 + engine/broker/auth/src/store.ts | 25 + engine/broker/auth/src/vite-env.d.ts | 2 + engine/broker/auth/src/worker.js | 26 + engine/broker/auth/svelte.config.js | 13 + engine/broker/auth/tailwind.config.cjs | 38 + engine/broker/auth/vite.config.js | 70 + {ng-broker => engine/broker}/build.rs | 0 .../broker}/src/actors/mod.rs | 0 .../broker}/src/interfaces.rs | 0 {ng-broker => engine/broker}/src/lib.rs | 0 .../broker}/src/public/favicon.ico | Bin .../broker}/src/rocksdb_server_storage.rs | 0 .../broker}/src/server_broker.rs | 0 .../src/server_storage/admin/account.rs | 0 .../src/server_storage/admin/invitation.rs | 0 .../broker}/src/server_storage/admin/mod.rs | 0 .../src/server_storage/admin/wallet.rs | 0 .../src/server_storage/core/account.rs | 0 .../broker}/src/server_storage/core/commit.rs | 0 .../broker}/src/server_storage/core/inbox.rs | 0 .../broker}/src/server_storage/core/mod.rs | 0 .../src/server_storage/core/overlay.rs | 0 .../broker}/src/server_storage/core/peer.rs | 0 .../broker}/src/server_storage/core/repo.rs | 0 .../broker}/src/server_storage/core/topic.rs | 0 .../broker}/src/server_storage/mod.rs | 0 engine/broker/src/server_ws.rs | 955 ++++ {ng-broker => engine/broker}/src/types.rs | 0 {ng-broker => engine/broker}/src/utils.rs | 0 engine/client-ws/Cargo.toml | 38 + engine/client-ws/README.md | 55 + {ng-client-ws => engine/client-ws}/src/lib.rs | 0 .../client-ws}/src/remote_ws.rs | 0 .../client-ws}/src/remote_ws_wasm.rs | 0 engine/net/Cargo.toml | 54 + engine/net/README.md | 55 + {ng-net => engine/net}/src/actor.rs | 0 .../net}/src/actors/admin/add_invitation.rs | 0 .../net}/src/actors/admin/add_user.rs | 0 .../net}/src/actors/admin/create_user.rs | 0 .../net}/src/actors/admin/del_user.rs | 0 .../net}/src/actors/admin/list_invitations.rs | 0 .../net}/src/actors/admin/list_users.rs | 0 .../net}/src/actors/admin/mod.rs | 0 {ng-net => engine/net}/src/actors/app/mod.rs | 0 .../net}/src/actors/app/request.rs | 0 .../net}/src/actors/app/session.rs | 0 .../net}/src/actors/client/blocks_exist.rs | 0 .../net}/src/actors/client/blocks_get.rs | 0 .../net}/src/actors/client/blocks_put.rs | 0 .../net}/src/actors/client/client_event.rs | 0 .../net}/src/actors/client/commit_get.rs | 0 .../net}/src/actors/client/event.rs | 0 .../net}/src/actors/client/inbox_post.rs | 0 .../net}/src/actors/client/inbox_register.rs | 0 .../net}/src/actors/client/mod.rs | 0 .../net}/src/actors/client/pin_repo.rs | 0 .../net}/src/actors/client/repo_pin_status.rs | 0 .../net}/src/actors/client/topic_sub.rs | 0 .../net}/src/actors/client/topic_sync_req.rs | 0 .../src/actors/client/wallet_put_export.rs | 0 .../net}/src/actors/connecting.rs | 0 {ng-net => engine/net}/src/actors/ext/get.rs | 0 {ng-net => engine/net}/src/actors/ext/mod.rs | 0 .../net}/src/actors/ext/wallet_get_export.rs | 0 {ng-net => engine/net}/src/actors/mod.rs | 0 {ng-net => engine/net}/src/actors/noise.rs | 0 {ng-net => engine/net}/src/actors/probe.rs | 0 {ng-net => engine/net}/src/actors/start.rs | 0 {ng-net => engine/net}/src/app_protocol.rs | 0 {ng-net => engine/net}/src/broker.rs | 0 {ng-net => engine/net}/src/bsps.rs | 0 {ng-net => engine/net}/src/connection.rs | 0 {ng-net => engine/net}/src/lib.rs | 0 {ng-net => engine/net}/src/orm.rs | 0 {ng-net => engine/net}/src/server_broker.rs | 0 {ng-net => engine/net}/src/tests/file.rs | 0 {ng-net => engine/net}/src/tests/mod.rs | 0 {ng-net => engine/net}/src/types.rs | 0 {ng-net => engine/net}/src/utils.rs | 0 engine/oxigraph/Cargo.toml | 250 + .../oxigraph}/LICENSE-APACHE | 0 {ng-oxigraph => engine/oxigraph}/LICENSE-MIT | 0 {ng-oxigraph => engine/oxigraph}/README.md | 0 {ng-oxigraph => engine/oxigraph}/build.rs | 0 {ng-oxigraph => engine/oxigraph}/src/lib.rs | 0 .../oxigraph}/src/oxigraph/io/format.rs | 0 .../oxigraph}/src/oxigraph/io/mod.rs | 0 .../oxigraph}/src/oxigraph/io/read.rs | 0 .../oxigraph}/src/oxigraph/io/write.rs | 0 .../oxigraph}/src/oxigraph/mod.rs | 0 .../oxigraph}/src/oxigraph/model.rs | 0 .../oxigraph}/src/oxigraph/sparql/algebra.rs | 0 .../oxigraph}/src/oxigraph/sparql/dataset.rs | 0 .../oxigraph}/src/oxigraph/sparql/error.rs | 0 .../oxigraph}/src/oxigraph/sparql/eval.rs | 0 .../src/oxigraph/sparql/http/dummy.rs | 0 .../oxigraph}/src/oxigraph/sparql/http/mod.rs | 0 .../src/oxigraph/sparql/http/simple.rs | 0 .../oxigraph}/src/oxigraph/sparql/mod.rs | 0 .../oxigraph}/src/oxigraph/sparql/model.rs | 0 .../oxigraph}/src/oxigraph/sparql/results.rs | 0 .../oxigraph}/src/oxigraph/sparql/service.rs | 0 .../oxigraph}/src/oxigraph/sparql/update.rs | 0 .../src/oxigraph/storage/backend/fallback.rs | 0 .../src/oxigraph/storage/backend/mod.rs | 0 .../oxigraph/storage/backend/oxi_rocksdb.rs | 0 .../src/oxigraph/storage/binary_encoder.rs | 0 .../oxigraph}/src/oxigraph/storage/error.rs | 0 .../oxigraph}/src/oxigraph/storage/mod.rs | 0 .../src/oxigraph/storage/numeric_encoder.rs | 0 .../src/oxigraph/storage/small_string.rs | 0 .../oxigraph}/src/oxigraph/store.rs | 0 .../oxigraph}/src/oxrdf/README.md | 0 .../oxigraph}/src/oxrdf/blank_node.rs | 0 .../oxigraph}/src/oxrdf/dataset.rs | 0 .../oxigraph}/src/oxrdf/graph.rs | 0 .../oxigraph}/src/oxrdf/interning.rs | 0 .../oxigraph}/src/oxrdf/literal.rs | 0 .../oxigraph}/src/oxrdf/mod.rs | 0 .../oxigraph}/src/oxrdf/named_node.rs | 0 .../oxigraph}/src/oxrdf/parser.rs | 0 .../oxigraph}/src/oxrdf/triple.rs | 0 .../oxigraph}/src/oxrdf/variable.rs | 0 .../oxigraph}/src/oxrdf/vocab.rs | 0 .../oxigraph}/src/oxrdfio/README.md | 0 .../oxigraph}/src/oxrdfio/error.rs | 0 .../oxigraph}/src/oxrdfio/format.rs | 0 .../oxigraph}/src/oxrdfio/mod.rs | 0 .../oxigraph}/src/oxrdfio/parser.rs | 0 .../oxigraph}/src/oxrdfio/serializer.rs | 0 .../oxigraph}/src/oxrdfxml/README.md | 0 .../oxigraph}/src/oxrdfxml/error.rs | 0 .../oxigraph}/src/oxrdfxml/mod.rs | 0 .../oxigraph}/src/oxrdfxml/parser.rs | 0 .../oxigraph}/src/oxrdfxml/serializer.rs | 0 .../oxigraph}/src/oxrdfxml/utils.rs | 0 .../oxigraph}/src/oxsdatatypes/README.md | 0 .../oxigraph}/src/oxsdatatypes/boolean.rs | 0 .../oxigraph}/src/oxsdatatypes/date_time.rs | 0 .../oxigraph}/src/oxsdatatypes/decimal.rs | 0 .../oxigraph}/src/oxsdatatypes/double.rs | 0 .../oxigraph}/src/oxsdatatypes/duration.rs | 0 .../oxigraph}/src/oxsdatatypes/float.rs | 0 .../oxigraph}/src/oxsdatatypes/integer.rs | 0 .../oxigraph}/src/oxsdatatypes/mod.rs | 0 .../oxigraph}/src/oxttl/README.md | 0 .../oxigraph}/src/oxttl/lexer.rs | 0 .../oxigraph}/src/oxttl/line_formats.rs | 0 .../oxigraph}/src/oxttl/mod.rs | 0 .../oxigraph}/src/oxttl/n3.rs | 0 .../oxigraph}/src/oxttl/nquads.rs | 0 .../oxigraph}/src/oxttl/ntriples.rs | 0 .../oxigraph}/src/oxttl/terse.rs | 0 .../oxigraph}/src/oxttl/toolkit/error.rs | 0 .../oxigraph}/src/oxttl/toolkit/lexer.rs | 0 .../oxigraph}/src/oxttl/toolkit/mod.rs | 0 .../oxigraph}/src/oxttl/toolkit/parser.rs | 0 .../oxigraph}/src/oxttl/trig.rs | 0 .../oxigraph}/src/oxttl/turtle.rs | 0 .../oxigraph}/src/sparesults/README.md | 0 .../oxigraph}/src/sparesults/csv.rs | 0 .../oxigraph}/src/sparesults/error.rs | 0 .../oxigraph}/src/sparesults/format.rs | 0 .../oxigraph}/src/sparesults/json.rs | 0 .../oxigraph}/src/sparesults/mod.rs | 0 .../oxigraph}/src/sparesults/parser.rs | 0 .../oxigraph}/src/sparesults/serializer.rs | 0 .../oxigraph}/src/sparesults/solution.rs | 0 .../oxigraph}/src/sparesults/xml.rs | 0 .../oxigraph}/src/spargebra/README.md | 0 .../oxigraph}/src/spargebra/algebra.rs | 0 .../oxigraph}/src/spargebra/mod.rs | 0 .../oxigraph}/src/spargebra/parser.rs | 0 .../oxigraph}/src/spargebra/query.rs | 0 .../oxigraph}/src/spargebra/term.rs | 0 .../oxigraph}/src/spargebra/update.rs | 0 .../oxigraph}/src/sparopt/README.md | 0 .../oxigraph}/src/sparopt/algebra.rs | 0 .../oxigraph}/src/sparopt/mod.rs | 0 .../oxigraph}/src/sparopt/optimizer.rs | 0 .../oxigraph}/src/sparopt/type_inference.rs | 0 .../tests/rocksdb_bc_data/000003.log | Bin .../oxigraph}/tests/rocksdb_bc_data/CURRENT | 0 .../oxigraph}/tests/rocksdb_bc_data/IDENTITY | 0 .../oxigraph}/tests/rocksdb_bc_data/LOCK | 0 .../tests/rocksdb_bc_data/MANIFEST-000004 | Bin .../tests/rocksdb_bc_data/OPTIONS-000026 | 0 .../oxigraph}/tests/store.rs | 0 {ng-repo => engine/repo}/Cargo.toml | 0 engine/repo/README.md | 55 + {ng-repo => engine/repo}/src/block.rs | 0 {ng-repo => engine/repo}/src/block_storage.rs | 0 {ng-repo => engine/repo}/src/branch.rs | 0 {ng-repo => engine/repo}/src/commit.rs | 0 {ng-repo => engine/repo}/src/errors.rs | 0 {ng-repo => engine/repo}/src/event.rs | 0 {ng-repo => engine/repo}/src/file.rs | 0 {ng-repo => engine/repo}/src/kcv_storage.rs | 0 {ng-repo => engine/repo}/src/lib.rs | 0 {ng-repo => engine/repo}/src/object.rs | 0 {ng-repo => engine/repo}/src/os_info.rs | 0 {ng-repo => engine/repo}/src/repo.rs | 0 {ng-repo => engine/repo}/src/store.rs | 0 {ng-repo => engine/repo}/src/types.rs | 0 {ng-repo => engine/repo}/src/utils.rs | 0 {ng-repo => engine/repo}/tests/test.jpg | Bin engine/storage-rocksdb/Cargo.toml | 23 + engine/storage-rocksdb/README.md | 55 + .../storage-rocksdb}/build.rs | 0 .../storage-rocksdb}/src/block_storage.rs | 0 .../storage-rocksdb}/src/kcv_storage.rs | 0 .../storage-rocksdb}/src/lib.rs | 0 engine/verifier/Cargo.toml | 58 + engine/verifier/README.md | 57 + {ng-verifier => engine/verifier}/build.rs | 0 .../verifier}/src/commits/mod.rs | 0 .../verifier}/src/commits/snapshot.rs | 0 .../verifier}/src/commits/transaction.rs | 0 .../verifier}/src/inbox_processor.rs | 0 {ng-verifier => engine/verifier}/src/lib.rs | 0 .../verifier}/src/orm/add_remove_triples.rs | 0 engine/verifier/src/orm/mod.rs | 821 +++ .../verifier}/src/orm/types.rs | 0 .../verifier}/src/orm/utils.rs | 0 .../verifier}/src/orm/validation.rs | 0 .../verifier}/src/request_processor.rs | 0 .../verifier}/src/rocksdb_user_storage.rs | 0 {ng-verifier => engine/verifier}/src/site.rs | 0 {ng-verifier => engine/verifier}/src/types.rs | 0 .../verifier}/src/user_storage/branch.rs | 0 .../verifier}/src/user_storage/mod.rs | 0 .../verifier}/src/user_storage/repo.rs | 0 .../verifier}/src/user_storage/storage.rs | 0 .../verifier}/src/verifier.rs | 0 {ng-wallet => engine/wallet}/.gitignore | 0 engine/wallet/Cargo.toml | 45 + engine/wallet/README.md | 55 + {ng-wallet => engine/wallet}/src/bip39.rs | 0 {ng-wallet => engine/wallet}/src/emojis.rs | 0 {ng-wallet => engine/wallet}/src/lib.rs | 0 .../wallet}/src/permissions.rs | 0 {ng-wallet => engine/wallet}/src/types.rs | 0 .../generated_security_image.jpg.compare | Bin .../wallet}/tests/valid_security_image.jpg | Bin infra/ngaccount/.env | 5 + infra/ngaccount/.gitignore | 1 + infra/ngaccount/Cargo.toml | 28 + infra/ngaccount/README.md | 61 + infra/ngaccount/src/main.rs | 313 ++ infra/ngaccount/src/types.rs | 37 + infra/ngaccount/web/.gitignore | 24 + infra/ngaccount/web/.vscode/extensions.json | 3 + infra/ngaccount/web/index.html | 97 + infra/ngaccount/web/jsconfig.json | 32 + infra/ngaccount/web/package.json | 31 + infra/ngaccount/web/pnpm-lock.yaml | 1751 +++++++ infra/ngaccount/web/postcss.config.cjs | 13 + infra/ngaccount/web/public/robots.txt | 2 + infra/ngaccount/web/src/App.svelte | 42 + infra/ngaccount/web/src/app.postcss | 4 + infra/ngaccount/web/src/assets/EU.svg | 4 + infra/ngaccount/web/src/assets/nextgraph.svg | 16 + infra/ngaccount/web/src/main.js | 9 + infra/ngaccount/web/src/routes/Create.svelte | 423 ++ infra/ngaccount/web/src/routes/Delete.svelte | 187 + infra/ngaccount/web/src/routes/Home.svelte | 27 + .../ngaccount/web/src/routes/NotFound.svelte | 21 + infra/ngaccount/web/src/vite-env.d.ts | 2 + infra/ngaccount/web/svelte.config.js | 7 + infra/ngaccount/web/tailwind.config.cjs | 23 + infra/ngaccount/web/vite.config.js | 40 + infra/ngapp/.gitignore | 1 + infra/ngapp/Cargo.toml | 30 + infra/ngapp/README.md | 37 + infra/ngapp/src/main.rs | 71 + infra/ngapp/src/store/dynpeer.rs | 110 + infra/ngapp/src/store/mod.rs | 3 + infra/ngapp/src/store/wallet_record.rs | 143 + infra/ngapp/src/types.rs | 30 + infra/ngapp/web/.gitignore | 24 + infra/ngapp/web/.vscode/extensions.json | 3 + infra/ngapp/web/index.html | 65 + infra/ngapp/web/jsconfig.json | 32 + infra/ngapp/web/package.json | 27 + infra/ngapp/web/pnpm-lock.yaml | 1714 +++++++ infra/ngapp/web/postcss.config.cjs | 13 + infra/ngapp/web/public/robots.txt | 2 + infra/ngapp/web/src/App.svelte | 40 + infra/ngapp/web/src/app.postcss | 4 + infra/ngapp/web/src/assets/EU.svg | 4 + infra/ngapp/web/src/assets/nextgraph.svg | 16 + infra/ngapp/web/src/main.js | 9 + infra/ngapp/web/src/routes/Home.svelte | 57 + infra/ngapp/web/src/routes/Install.svelte | 28 + infra/ngapp/web/src/routes/NotFound.svelte | 20 + .../ngapp/web/src/routes/WalletCreate.svelte | 244 + infra/ngapp/web/src/vite-env.d.ts | 2 + infra/ngapp/web/svelte.config.js | 7 + infra/ngapp/web/tailwind.config.cjs | 22 + infra/ngapp/web/vite.config.js | 36 + infra/ngnet/.gitignore | 1 + infra/ngnet/Cargo.toml | 28 + infra/ngnet/README.md | 47 + infra/ngnet/bootstrap/.gitignore | 24 + infra/ngnet/bootstrap/index.html | 22 + infra/ngnet/bootstrap/jsconfig.json | 32 + infra/ngnet/bootstrap/package.json | 23 + infra/ngnet/bootstrap/src/main.ts | 206 + infra/ngnet/bootstrap/src/vite-env.d.ts | 1 + infra/ngnet/bootstrap/vite.config.js | 19 + infra/ngnet/redir/.gitignore | 24 + infra/ngnet/redir/index.html | 89 + infra/ngnet/redir/jsconfig.json | 32 + infra/ngnet/redir/package.json | 40 + infra/ngnet/redir/pnpm-lock.yaml | 1930 +++++++ infra/ngnet/redir/postcss.config.cjs | 13 + infra/ngnet/redir/prepare-app-file.cjs | 32 + infra/ngnet/redir/src/App.svelte | 180 + infra/ngnet/redir/src/app.postcss | 4 + infra/ngnet/redir/src/assets/EU.svg | 4 + infra/ngnet/redir/src/assets/nextgraph.svg | 16 + infra/ngnet/redir/src/lib/Home.svelte | 160 + infra/ngnet/redir/src/main.ts | 120 + infra/ngnet/redir/src/routes/Home.svelte | 99 + infra/ngnet/redir/src/store.ts | 53 + infra/ngnet/redir/src/vite-env.d.ts | 2 + infra/ngnet/redir/src/worker.js | 26 + infra/ngnet/redir/svelte.config.js | 13 + infra/ngnet/redir/tailwind.config.cjs | 38 + infra/ngnet/redir/vite.config.js | 70 + infra/ngnet/src/main.rs | 206 + infra/ngnet/src/types.rs | 37 + infra/ngnet/web/.gitignore | 24 + infra/ngnet/web/.vscode/extensions.json | 3 + infra/ngnet/web/index.html | 96 + infra/ngnet/web/jsconfig.json | 32 + infra/ngnet/web/package.json | 28 + infra/ngnet/web/postcss.config.cjs | 13 + infra/ngnet/web/public/robots.txt | 2 + infra/ngnet/web/src/App.svelte | 38 + infra/ngnet/web/src/app.postcss | 4 + infra/ngnet/web/src/assets/EU.svg | 4 + infra/ngnet/web/src/assets/nextgraph.svg | 16 + infra/ngnet/web/src/main.js | 9 + infra/ngnet/web/src/routes/Home.svelte | 24 + infra/ngnet/web/src/routes/NotFound.svelte | 21 + infra/ngnet/web/src/vite-env.d.ts | 2 + infra/ngnet/web/svelte.config.js | 7 + infra/ngnet/web/tailwind.config.cjs | 22 + infra/ngnet/web/vite.config.js | 40 + nextgraph/Cargo.toml | 65 - nextgraph/src/lib.rs | 143 - ng-broker/Cargo.toml | 47 - ng-broker/src/server_ws.rs | 950 ---- ng-client-ws/Cargo.toml | 38 - ng-client-ws/README.md | 56 - ng-net/Cargo.toml | 54 - ng-net/README.md | 56 - ng-oxigraph/Cargo.toml | 250 - ng-repo/README.md | 56 - ng-storage-rocksdb/Cargo.toml | 23 - ng-storage-rocksdb/README.md | 56 - ng-verifier/Cargo.toml | 58 - ng-verifier/README.md | 58 - ng-verifier/src/orm/mod.rs | 821 --- ng-wallet/Cargo.toml | 45 - ng-wallet/README.md | 56 - package.json | 2 +- pnpm-lock.yaml | 3377 +++++++++++-- pnpm-workspace.yaml | 18 +- scripts/fix-ldo-dataset-cjs.js | 0 .../alien-deepsignals}/.gitignore | 0 sdk/js/alien-deepsignals/README.md | 174 + sdk/js/alien-deepsignals/package.json | 59 + .../alien-deepsignals}/pnpm-lock.yaml | 0 .../alien-deepsignals}/src/contents.ts | 0 .../alien-deepsignals}/src/core.ts | 0 .../alien-deepsignals}/src/deepSignal.ts | 0 .../alien-deepsignals}/src/index.ts | 0 .../alien-deepsignals}/src/test/core.test.ts | 0 .../alien-deepsignals}/src/test/index.test.ts | 0 .../src/test/patchOptimized.test.ts | 0 .../alien-deepsignals}/src/test/tier3.test.ts | 0 .../alien-deepsignals}/src/test/watch.test.ts | 0 .../src/test/watchPatches.test.ts | 0 .../alien-deepsignals}/src/utils.ts | 0 .../alien-deepsignals}/src/watch.ts | 0 .../alien-deepsignals}/src/watchEffect.ts | 0 .../alien-deepsignals}/tsconfig.json | 0 .../alien-deepsignals}/tsup.config.ts | 0 sdk/js/api-web/.gitignore | 28 + sdk/js/api-web/main.ts | 61 + sdk/js/api-web/package.json | 13 + sdk/js/api-web/worker.js | 43 + .../multi-framework-signals/.gitignore | 0 .../multi-framework-signals/README.md | 0 .../multi-framework-signals/astro.config.mjs | 0 .../multi-framework-signals/package.json | 50 + .../playwright.config.ts | 0 .../src/app/components/Highlight.astro | 0 .../src/app/components/ReactRoot.tsx | 0 .../src/app/components/SvelteRoot.svelte | 0 .../src/app/components/VueRoot.vue | 0 .../src/app/layouts/Layout.astro | 0 .../src/app/pages/index.astro | 0 .../src/app/store/state.ts | 0 .../src/frontends/react/HelloWorld.tsx | 196 + .../src/frontends/svelte/HelloWorld.svelte | 122 + .../tests/reactiveCrossFramework.spec.ts | 0 .../src/frontends/utils/flattenObject.ts | 0 .../src/frontends/vue/HelloWorld.vue | 222 + .../src/shapes/orm/catShape.schema.ts | 109 + .../src/shapes/orm/catShape.shapeTypes.ts | 9 + .../src/shapes/orm/catShape.typings.ts | 0 .../src/shapes/orm/personShape.schema.ts | 98 + .../src/shapes/orm/personShape.shapeTypes.ts | 9 + .../src/shapes/orm/personShape.typings.ts | 0 .../src/shapes/orm/testShape.schema.ts | 188 + .../src/shapes/orm/testShape.shapeTypes.ts | 9 + .../src/shapes/orm/testShape.typings.ts | 0 .../src/shapes/shex/catShape.shex | 0 .../src/shapes/shex/personShape.shex | 0 .../src/shapes/shex/testShape.shex | 0 .../multi-framework-signals/svelte.config.js | 0 .../multi-framework-signals/tsconfig.json | 10 + sdk/{ng-sdk-js => js/lib-wasm}/.gitignore | 0 sdk/js/lib-wasm/Cargo.toml | 61 + sdk/js/lib-wasm/DEV.md | 132 + .../lib-wasm}/LICENSE-APACHE2 | 0 sdk/{ng-sdk-js => js/lib-wasm}/LICENSE-MIT | 0 sdk/js/lib-wasm/README.md | 160 + sdk/{ng-sdk-js => js/lib-wasm}/index.html | 0 .../js => js/lib-wasm/jsland}/bowser.js | 0 .../js => js/lib-wasm/jsland}/browser.js | 0 sdk/js/lib-wasm/jsland/node.js | 207 + sdk/js/lib-wasm/prepare-node.js | 24 + sdk/js/lib-wasm/prepare-web.js | 22 + sdk/js/lib-wasm/src/lib.rs | 2176 ++++++++ sdk/{ng-sdk-js => js/lib-wasm}/src/model.rs | 0 sdk/js/shex-orm/dist/ShexJTypes.d.ts | 542 ++ sdk/js/shex-orm/dist/ShexJTypes.d.ts.map | 1 + sdk/js/shex-orm/dist/ShexJTypes.js | 1 + sdk/js/shex-orm/dist/build.d.ts | 8 + sdk/js/shex-orm/dist/build.d.ts.map | 1 + sdk/js/shex-orm/dist/build.js | 62 + sdk/js/shex-orm/dist/cli.d.ts | 3 + sdk/js/shex-orm/dist/cli.d.ts.map | 1 + sdk/js/shex-orm/dist/cli.js | 15 + sdk/js/shex-orm/dist/index.d.ts | 2 + sdk/js/shex-orm/dist/index.d.ts.map | 1 + sdk/js/shex-orm/dist/index.js | 1 + .../dist/schema-converter/converter.d.ts | 12 + .../dist/schema-converter/converter.d.ts.map | 1 + .../dist/schema-converter/converter.js | 69 + .../schema-converter/templates/schema.ejs | 8 + .../schema-converter/templates/shapeTypes.ejs | 14 + .../schema-converter/templates/typings.ejs | 0 .../transformers/ShexJSchemaTransformer.d.ts | 348 ++ .../ShexJSchemaTransformer.d.ts.map | 1 + .../transformers/ShexJSchemaTransformer.js | 208 + .../transformers/ShexJTypingTransformer.d.ts | 366 ++ .../ShexJTypingTransformer.d.ts.map | 1 + .../transformers/ShexJTypingTransformer.js | 550 ++ .../util/ShapeInterfaceDeclaration.d.ts | 5 + .../util/ShapeInterfaceDeclaration.d.ts.map | 1 + .../util/ShapeInterfaceDeclaration.js | 1 + .../util/annotateReadablePredicates.d.ts | 8 + .../util/annotateReadablePredicates.d.ts.map | 1 + .../util/annotateReadablePredicates.js | 129 + .../util/dedupeObjectTypeMembers.d.ts | 3 + .../util/dedupeObjectTypeMembers.d.ts.map | 1 + .../util/dedupeObjectTypeMembers.js | 38 + .../util/getRdfTypesForTripleConstraint.d.ts | 4 + .../getRdfTypesForTripleConstraint.d.ts.map | 1 + .../util/getRdfTypesForTripleConstraint.js | 89 + sdk/js/shex-orm/dist/types.d.ts | 37 + sdk/js/shex-orm/dist/types.d.ts.map | 1 + sdk/js/shex-orm/dist/types.js | 1 + sdk/js/shex-orm/dist/util/forAllShapes.d.ts | 2 + .../shex-orm/dist/util/forAllShapes.d.ts.map | 1 + sdk/js/shex-orm/dist/util/forAllShapes.js | 17 + sdk/js/shex-orm/package.json | 67 + .../shex-orm}/src/ShexJTypes.ts | 0 .../ng-shex-orm => js/shex-orm}/src/build.ts | 0 .../ng-shex-orm => js/shex-orm}/src/cli.ts | 0 .../ng-shex-orm => js/shex-orm}/src/index.ts | 0 .../src/schema-converter/converter.ts | 0 .../src/schema-converter/templates/schema.ejs | 8 + .../schema-converter/templates/shapeTypes.ejs | 14 + .../schema-converter/templates/typings.ejs | 14 + .../transformers/ShexJSchemaTransformer.ts | 0 .../transformers/ShexJTypingTransformer.ts | 0 .../util/ShapeInterfaceDeclaration.ts | 0 .../util/annotateReadablePredicates.ts | 0 .../util/dedupeObjectTypeMembers.ts | 0 .../util/getRdfTypesForTripleConstraint.ts | 0 .../ng-shex-orm => js/shex-orm}/src/types.ts | 0 .../shex-orm}/src/util/forAllShapes.ts | 0 .../ng-shex-orm => js/shex-orm}/tsconfig.json | 0 sdk/js/signals/package.json | 77 + .../signals/src/connector/applyDiff.test.ts | 235 + sdk/js/signals/src/connector/applyDiff.ts | 268 + .../connector/createSignalObjectForShape.ts | 236 + .../src/frontendAdapters/react/index.ts | 2 + .../src/frontendAdapters/react/useShape.ts | 39 + .../src/frontendAdapters/svelte/index.ts | 2 + .../svelte/useShape.svelte.ts | 108 + .../signals/src/frontendAdapters/vue/index.ts | 2 + .../src/frontendAdapters/vue/useDeepSignal.ts | 111 + .../src/frontendAdapters/vue/useShape.ts | 23 + sdk/js/signals/src/index.ts | 12 + sdk/js/signals/src/types.ts | 16 + .../ng-signals => js/signals}/tsconfig.json | 0 sdk/ng-sdk-js/Cargo.toml | 61 - sdk/ng-sdk-js/DEV.md | 132 - sdk/ng-sdk-js/README.md | 160 - .../multi-framework-signals/package.json | 50 - .../src/frontends/react/HelloWorld.tsx | 196 - .../src/frontends/svelte/HelloWorld.svelte | 122 - .../src/frontends/vue/HelloWorld.vue | 126 - .../src/shapes/orm/catShape.schema.ts | 109 - .../src/shapes/orm/catShape.shapeTypes.ts | 9 - .../src/shapes/orm/personShape.schema.ts | 98 - .../src/shapes/orm/personShape.shapeTypes.ts | 9 - .../src/shapes/orm/testShape.schema.ts | 188 - .../src/shapes/orm/testShape.shapeTypes.ts | 9 - .../multi-framework-signals/tsconfig.json | 10 - sdk/ng-sdk-js/js/node.js | 207 - sdk/ng-sdk-js/ng-alien-deepsignals/README.md | 168 - .../ng-alien-deepsignals/package.json | 59 - sdk/ng-sdk-js/ng-shex-orm/package.json | 67 - .../src/schema-converter/templates/schema.ejs | 8 - .../schema-converter/templates/shapeTypes.ejs | 14 - sdk/ng-sdk-js/ng-signals/package.json | 77 - .../src/connector/applyDiff.test.ts | 235 - .../ng-signals/src/connector/applyDiff.ts | 268 - .../connector/createSignalObjectForShape.ts | 236 - .../src/frontendAdapters/react/index.ts | 2 - .../src/frontendAdapters/react/useShape.ts | 39 - .../src/frontendAdapters/svelte/index.ts | 2 - .../svelte/useShape.svelte.ts | 108 - .../src/frontendAdapters/vue/index.ts | 2 - .../src/frontendAdapters/vue/useDeepSignal.ts | 111 - .../src/frontendAdapters/vue/useShape.ts | 23 - sdk/ng-sdk-js/ng-signals/src/index.ts | 12 - sdk/ng-sdk-js/ng-signals/src/types.ts | 16 - sdk/ng-sdk-js/prepare-node.js | 24 - sdk/ng-sdk-js/prepare-web.js | 11 - sdk/ng-sdk-js/src/lib.rs | 2176 -------- {nextgraph => sdk/rust}/.gitignore | 0 {nextgraph => sdk/rust}/.static/header.png | Bin sdk/rust/Cargo.toml | 65 + {nextgraph => sdk/rust}/README.md | 0 {nextgraph => sdk/rust}/examples/README.md | 0 {nextgraph => sdk/rust}/examples/in_memory.md | 0 {nextgraph => sdk/rust}/examples/in_memory.rs | 0 {nextgraph => sdk/rust}/examples/open.md | 0 {nextgraph => sdk/rust}/examples/open.rs | 0 .../rust}/examples/persistent.md | 0 .../rust}/examples/persistent.rs | 0 .../rust}/examples/sparql_update.rs | 0 .../examples/wallet-security-image-demo.png | Bin .../examples/wallet-security-image-white.png | Bin sdk/rust/src/lib.rs | 143 + {nextgraph => sdk/rust}/src/local_broker.rs | 0 .../rust}/src/local_broker_dev_env.rs | 0 .../rust}/src/tests/create_or_open_wallet.rs | 0 {nextgraph => sdk/rust}/src/tests/mod.rs | 0 {nextgraph => sdk/rust}/src/tests/orm.rs | 0 .../rust}/src/tests/security-image.png | Bin 1010 files changed, 68399 insertions(+), 8659 deletions(-) create mode 100644 app/nextgraph/.gitignore create mode 100644 app/nextgraph/.vscode/extensions.json create mode 100644 app/nextgraph/README.md create mode 100644 app/nextgraph/app-icon.png create mode 100644 app/nextgraph/index.html create mode 100644 app/nextgraph/package.json create mode 100644 app/nextgraph/src-tauri/.gitignore create mode 100644 app/nextgraph/src-tauri/Cargo.toml create mode 100644 app/nextgraph/src-tauri/build.rs create mode 100644 app/nextgraph/src-tauri/capabilities/default.json create mode 100644 app/nextgraph/src-tauri/gen/android/.editorconfig create mode 100644 app/nextgraph/src-tauri/gen/android/.gitignore create mode 100644 app/nextgraph/src-tauri/gen/android/app/.gitignore create mode 100644 app/nextgraph/src-tauri/gen/android/app/build.gradle.kts create mode 100644 app/nextgraph/src-tauri/gen/android/app/proguard-rules.pro create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/AndroidManifest.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/ic_launcher-playstore.png create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/java/org/nextgraph/app/MainActivity.kt create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/values-night/themes.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/values/colors.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/values/strings.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/values/themes.xml create mode 100644 app/nextgraph/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml create mode 100644 app/nextgraph/src-tauri/gen/android/build.gradle.kts create mode 100644 app/nextgraph/src-tauri/gen/android/buildSrc/build.gradle.kts create mode 100644 app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/BuildTask.kt create mode 100644 app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/RustPlugin.kt create mode 100644 app/nextgraph/src-tauri/gen/android/gradle.properties create mode 100644 app/nextgraph/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 app/nextgraph/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 app/nextgraph/src-tauri/gen/android/gradlew create mode 100644 app/nextgraph/src-tauri/gen/android/gradlew.bat create mode 100644 app/nextgraph/src-tauri/gen/android/settings.gradle create mode 100644 app/nextgraph/src-tauri/icons/128x128.png create mode 100644 app/nextgraph/src-tauri/icons/128x128@2x.png create mode 100644 app/nextgraph/src-tauri/icons/32x32.png create mode 100644 app/nextgraph/src-tauri/icons/64x64.png create mode 100644 app/nextgraph/src-tauri/icons/Square107x107Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square142x142Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square150x150Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square284x284Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square30x30Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square310x310Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square44x44Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square71x71Logo.png create mode 100644 app/nextgraph/src-tauri/icons/Square89x89Logo.png create mode 100644 app/nextgraph/src-tauri/icons/StoreLogo.png create mode 100644 app/nextgraph/src-tauri/icons/icon.icns create mode 100644 app/nextgraph/src-tauri/icons/icon.ico create mode 100644 app/nextgraph/src-tauri/icons/icon.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 app/nextgraph/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 app/nextgraph/src-tauri/src/lib.rs create mode 100644 app/nextgraph/src-tauri/src/main.rs create mode 100644 app/nextgraph/src-tauri/tauri.conf.json create mode 100644 app/nextgraph/src/assets/tauri.svg create mode 100644 app/nextgraph/src/assets/typescript.svg create mode 100644 app/nextgraph/src/assets/vite.svg create mode 100644 app/nextgraph/src/main.ts create mode 100644 app/nextgraph/src/styles.css create mode 100644 app/nextgraph/tsconfig.json create mode 100644 app/nextgraph/vite.config.ts create mode 100644 app/ui-common/.gitignore create mode 100644 app/ui-common/.vscode/extensions.json create mode 100644 app/ui-common/README.md create mode 100644 app/ui-common/package.json create mode 100644 app/ui-common/postcss.config.cjs create mode 100644 app/ui-common/src/App.svelte create mode 100644 app/ui-common/src/api.ts create mode 100644 app/ui-common/src/app.postcss create mode 100755 app/ui-common/src/assets/EU.svg create mode 100644 app/ui-common/src/assets/nextgraph-nofill.svg create mode 100644 app/ui-common/src/assets/nextgraph.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f308.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f30c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f319.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f321.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f327.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f332.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f334.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f335.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f336.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f339.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f33b.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f33d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f340.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f342.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f344.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f346.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f347.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f349.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f34b.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f34c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f34d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f34e.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f352.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f353.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f355.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f366.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f36a.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f36b.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f36c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f370.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f373.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f377.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f37e.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f381.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f388.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3a8.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3aa.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3af.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3b2.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3b5.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3b7.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3b8.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3be.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3c0.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3c4.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3c7.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3ca.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3cb.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3cd.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3d3.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3d4.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3d5.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3d6.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3db.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f3e1.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f406.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f407.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f40c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f40d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f410.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f411.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f413.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f416.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f418.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f419.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f41a.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f41c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f41d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f41e.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f41f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f422.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f423.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f427.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f42a.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f42c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f433.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f434.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f436.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f441.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f442.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f443.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f444.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f445.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f44d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f450.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f455.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f456.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f457.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f45f.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f477.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f478.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f47b.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f48b.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f48c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f490.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f495.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4a1.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4a5.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4a6.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4aa.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4af.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4cc.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4ce.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4da.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f4e6.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f50d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f511.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f513.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f525.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f590.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f600.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f602.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f607.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f60d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f60e.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f618.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f61d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f624.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f62d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f631.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f634.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f635.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f637.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f638.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f63f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f640.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f644.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f648.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f649.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f64a.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f64f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f680.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f681.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f682.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f695.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f6a3.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f6b4.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f6c1.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f6d2.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f6f4.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f6fc.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f910.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f912.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f915.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f917.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f91d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f921.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f925.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f927.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f92d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f92e.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f92f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f93a.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f93c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f93f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f942.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f94b.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f950.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f951.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f955.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f956.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f95d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f968.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f970.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f971.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f973.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f975.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f976.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f981.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f985.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f986.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f987.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f989.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f98b.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f98e.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f98f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f992.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f993.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f994.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9a9.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9b4.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9b5.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9b6.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9b7.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9c0.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9d0.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f9d9.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f9da.svg create mode 100755 app/ui-common/src/assets/pazzle/emoji_u1f9dc.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9e0.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9e8.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9e9.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9ed.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9f8.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9f9.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1f9fd.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1fa81.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1fa82.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1fa90.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1fa91.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1fab4.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u1fad0.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2600.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2614.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2615.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2639.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u265f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2693.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u26a1.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u26bd.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u26c4.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u26f2.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u26f5.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u26f7.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2702.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2708.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u270a.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u270c.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u270d.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u270f.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2744.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2764.svg create mode 100644 app/ui-common/src/assets/pazzle/emoji_u2b50.svg create mode 100644 app/ui-common/src/base64url.js create mode 100644 app/ui-common/src/classes.ts create mode 100644 app/ui-common/src/lang.ts create mode 100644 app/ui-common/src/lib/CenteredLayout.svelte create mode 100644 app/ui-common/src/lib/Install.svelte create mode 100644 app/ui-common/src/lib/Login.svelte create mode 100644 app/ui-common/src/lib/NoWallet.svelte create mode 100644 app/ui-common/src/lib/Test.svelte create mode 100644 app/ui-common/src/lib/component.ts create mode 100644 app/ui-common/src/lib/components/CopyToClipboard.svelte create mode 100644 app/ui-common/src/lib/components/Logo.svelte create mode 100644 app/ui-common/src/lib/components/LogoSimple.svelte create mode 100644 app/ui-common/src/lib/components/Message.svelte create mode 100644 app/ui-common/src/lib/components/PasswordInput.svelte create mode 100644 app/ui-common/src/lib/components/Spinner.svelte create mode 100644 app/ui-common/src/lib/icons/BrailleIcon.svelte create mode 100644 app/ui-common/src/lib/icons/BranchIcon.svelte create mode 100644 app/ui-common/src/lib/icons/ChemistryIcon.svelte create mode 100644 app/ui-common/src/lib/icons/DataClassIcon.svelte create mode 100644 app/ui-common/src/lib/icons/DeviceIcon.svelte create mode 100644 app/ui-common/src/lib/icons/GraphQLIcon.svelte create mode 100644 app/ui-common/src/lib/icons/GuitarIcon.svelte create mode 100644 app/ui-common/src/lib/icons/JsIcon.svelte create mode 100644 app/ui-common/src/lib/icons/JsonIcon.svelte create mode 100644 app/ui-common/src/lib/icons/JsonLdIcon.svelte create mode 100644 app/ui-common/src/lib/icons/MarkdownIcon.svelte create mode 100644 app/ui-common/src/lib/icons/NavIcon.svelte create mode 100644 app/ui-common/src/lib/icons/PdfIcon.svelte create mode 100644 app/ui-common/src/lib/icons/RdfIcon.svelte create mode 100644 app/ui-common/src/lib/icons/ReactIcon.svelte create mode 100644 app/ui-common/src/lib/icons/RustIcon.svelte create mode 100644 app/ui-common/src/lib/icons/SvelteIcon.svelte create mode 100644 app/ui-common/src/lib/icons/TsIcon.svelte create mode 100644 app/ui-common/src/lib/icons/TurtleIcon.svelte create mode 100644 app/ui-common/src/lib/icons/TxtIcon.svelte create mode 100644 app/ui-common/src/lib/icons/ZeraIcon.svelte create mode 100644 app/ui-common/src/lib/index.ts create mode 100644 app/ui-common/src/locales/de.json create mode 100644 app/ui-common/src/locales/en.json create mode 100644 app/ui-common/src/locales/es.json create mode 100644 app/ui-common/src/locales/fr.json create mode 100644 app/ui-common/src/locales/it.json create mode 100644 app/ui-common/src/locales/pt.json create mode 100644 app/ui-common/src/locales/ru.json create mode 100644 app/ui-common/src/locales/zh.json create mode 100644 app/ui-common/src/main.ts create mode 100644 app/ui-common/src/routes/AccountInfo.svelte create mode 100644 app/ui-common/src/routes/Install.svelte create mode 100644 app/ui-common/src/routes/Invitation.svelte create mode 100644 app/ui-common/src/routes/NotFound.svelte create mode 100644 app/ui-common/src/routes/ScanQRTauri.svelte create mode 100644 app/ui-common/src/routes/ScanQRWeb.svelte create mode 100644 app/ui-common/src/routes/Test.svelte create mode 100644 app/ui-common/src/routes/User.svelte create mode 100644 app/ui-common/src/routes/UserRegistered.svelte create mode 100644 app/ui-common/src/routes/WalletCreate.svelte create mode 100644 app/ui-common/src/routes/WalletInfo.svelte create mode 100644 app/ui-common/src/routes/WalletLogin.svelte create mode 100644 app/ui-common/src/routes/WalletLoginQr.svelte create mode 100644 app/ui-common/src/routes/WalletLoginTextCode.svelte create mode 100644 app/ui-common/src/routes/WalletLoginUsername.svelte create mode 100644 app/ui-common/src/routes/index.ts create mode 100644 app/ui-common/src/store.ts create mode 100644 app/ui-common/src/styles.css create mode 100644 app/ui-common/src/tab.ts create mode 100644 app/ui-common/src/vite-env.d.ts create mode 100644 app/ui-common/src/wallet_emojis.ts create mode 100644 app/ui-common/src/workertest.js create mode 100644 app/ui-common/src/zeras.ts create mode 100644 app/ui-common/svelte.config.js create mode 100644 app/ui-common/tailwind.config.cjs create mode 100644 app/ui-common/tsconfig.json create mode 100644 app/ui-common/vite.config.ts create mode 100644 bin/ngcli/Cargo.toml create mode 100644 bin/ngcli/README.md create mode 100644 bin/ngcli/src/get.rs create mode 100644 bin/ngcli/src/main.rs create mode 100644 bin/ngd/Cargo.toml create mode 100644 bin/ngd/README.md create mode 100644 bin/ngd/docker/Dockerfile.alpine create mode 100644 bin/ngd/docker/Dockerfile.fedora create mode 100644 bin/ngd/docker/Dockerfile.ubuntu create mode 100644 bin/ngd/src/cli.rs create mode 100644 bin/ngd/src/main.rs create mode 100644 bin/ngd/src/types.rs create mode 100644 engine/broker/Cargo.toml rename {ng-broker => engine/broker}/README.md (100%) create mode 100644 engine/broker/auth/.gitignore create mode 100644 engine/broker/auth/index.html create mode 100644 engine/broker/auth/jsconfig.json create mode 100644 engine/broker/auth/package.json create mode 100644 engine/broker/auth/pnpm-lock.yaml create mode 100644 engine/broker/auth/postcss.config.cjs create mode 100644 engine/broker/auth/prepare-app-file.cjs create mode 100644 engine/broker/auth/src/App.svelte create mode 100644 engine/broker/auth/src/app.postcss create mode 100644 engine/broker/auth/src/assets/EU.svg create mode 100644 engine/broker/auth/src/assets/nextgraph.svg create mode 100644 engine/broker/auth/src/lib/Home.svelte create mode 100644 engine/broker/auth/src/main.ts create mode 100644 engine/broker/auth/src/routes/Home.svelte create mode 100644 engine/broker/auth/src/store.ts create mode 100644 engine/broker/auth/src/vite-env.d.ts create mode 100644 engine/broker/auth/src/worker.js create mode 100644 engine/broker/auth/svelte.config.js create mode 100644 engine/broker/auth/tailwind.config.cjs create mode 100644 engine/broker/auth/vite.config.js rename {ng-broker => engine/broker}/build.rs (100%) rename {ng-broker => engine/broker}/src/actors/mod.rs (100%) rename {ng-broker => engine/broker}/src/interfaces.rs (100%) rename {ng-broker => engine/broker}/src/lib.rs (100%) rename {ng-broker => engine/broker}/src/public/favicon.ico (100%) rename {ng-broker => engine/broker}/src/rocksdb_server_storage.rs (100%) rename {ng-broker => engine/broker}/src/server_broker.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/admin/account.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/admin/invitation.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/admin/mod.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/admin/wallet.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/account.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/commit.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/inbox.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/mod.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/overlay.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/peer.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/repo.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/core/topic.rs (100%) rename {ng-broker => engine/broker}/src/server_storage/mod.rs (100%) create mode 100644 engine/broker/src/server_ws.rs rename {ng-broker => engine/broker}/src/types.rs (100%) rename {ng-broker => engine/broker}/src/utils.rs (100%) create mode 100644 engine/client-ws/Cargo.toml create mode 100644 engine/client-ws/README.md rename {ng-client-ws => engine/client-ws}/src/lib.rs (100%) rename {ng-client-ws => engine/client-ws}/src/remote_ws.rs (100%) rename {ng-client-ws => engine/client-ws}/src/remote_ws_wasm.rs (100%) create mode 100644 engine/net/Cargo.toml create mode 100644 engine/net/README.md rename {ng-net => engine/net}/src/actor.rs (100%) rename {ng-net => engine/net}/src/actors/admin/add_invitation.rs (100%) rename {ng-net => engine/net}/src/actors/admin/add_user.rs (100%) rename {ng-net => engine/net}/src/actors/admin/create_user.rs (100%) rename {ng-net => engine/net}/src/actors/admin/del_user.rs (100%) rename {ng-net => engine/net}/src/actors/admin/list_invitations.rs (100%) rename {ng-net => engine/net}/src/actors/admin/list_users.rs (100%) rename {ng-net => engine/net}/src/actors/admin/mod.rs (100%) rename {ng-net => engine/net}/src/actors/app/mod.rs (100%) rename {ng-net => engine/net}/src/actors/app/request.rs (100%) rename {ng-net => engine/net}/src/actors/app/session.rs (100%) rename {ng-net => engine/net}/src/actors/client/blocks_exist.rs (100%) rename {ng-net => engine/net}/src/actors/client/blocks_get.rs (100%) rename {ng-net => engine/net}/src/actors/client/blocks_put.rs (100%) rename {ng-net => engine/net}/src/actors/client/client_event.rs (100%) rename {ng-net => engine/net}/src/actors/client/commit_get.rs (100%) rename {ng-net => engine/net}/src/actors/client/event.rs (100%) rename {ng-net => engine/net}/src/actors/client/inbox_post.rs (100%) rename {ng-net => engine/net}/src/actors/client/inbox_register.rs (100%) rename {ng-net => engine/net}/src/actors/client/mod.rs (100%) rename {ng-net => engine/net}/src/actors/client/pin_repo.rs (100%) rename {ng-net => engine/net}/src/actors/client/repo_pin_status.rs (100%) rename {ng-net => engine/net}/src/actors/client/topic_sub.rs (100%) rename {ng-net => engine/net}/src/actors/client/topic_sync_req.rs (100%) rename {ng-net => engine/net}/src/actors/client/wallet_put_export.rs (100%) rename {ng-net => engine/net}/src/actors/connecting.rs (100%) rename {ng-net => engine/net}/src/actors/ext/get.rs (100%) rename {ng-net => engine/net}/src/actors/ext/mod.rs (100%) rename {ng-net => engine/net}/src/actors/ext/wallet_get_export.rs (100%) rename {ng-net => engine/net}/src/actors/mod.rs (100%) rename {ng-net => engine/net}/src/actors/noise.rs (100%) rename {ng-net => engine/net}/src/actors/probe.rs (100%) rename {ng-net => engine/net}/src/actors/start.rs (100%) rename {ng-net => engine/net}/src/app_protocol.rs (100%) rename {ng-net => engine/net}/src/broker.rs (100%) rename {ng-net => engine/net}/src/bsps.rs (100%) rename {ng-net => engine/net}/src/connection.rs (100%) rename {ng-net => engine/net}/src/lib.rs (100%) rename {ng-net => engine/net}/src/orm.rs (100%) rename {ng-net => engine/net}/src/server_broker.rs (100%) rename {ng-net => engine/net}/src/tests/file.rs (100%) rename {ng-net => engine/net}/src/tests/mod.rs (100%) rename {ng-net => engine/net}/src/types.rs (100%) rename {ng-net => engine/net}/src/utils.rs (100%) create mode 100644 engine/oxigraph/Cargo.toml rename {ng-oxigraph => engine/oxigraph}/LICENSE-APACHE (100%) rename {ng-oxigraph => engine/oxigraph}/LICENSE-MIT (100%) rename {ng-oxigraph => engine/oxigraph}/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/build.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/lib.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/io/format.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/io/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/io/read.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/io/write.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/model.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/algebra.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/dataset.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/error.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/eval.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/http/dummy.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/http/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/http/simple.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/model.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/results.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/service.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/sparql/update.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/backend/fallback.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/backend/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/backend/oxi_rocksdb.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/binary_encoder.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/error.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/numeric_encoder.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/storage/small_string.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxigraph/store.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/blank_node.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/dataset.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/graph.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/interning.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/literal.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/named_node.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/parser.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/triple.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/variable.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdf/vocab.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfio/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfio/error.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfio/format.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfio/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfio/parser.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfio/serializer.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfxml/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfxml/error.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfxml/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfxml/parser.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfxml/serializer.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxrdfxml/utils.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/boolean.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/date_time.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/decimal.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/double.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/duration.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/float.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/integer.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxsdatatypes/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/lexer.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/line_formats.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/n3.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/nquads.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/ntriples.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/terse.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/toolkit/error.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/toolkit/lexer.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/toolkit/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/toolkit/parser.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/trig.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/oxttl/turtle.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/csv.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/error.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/format.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/json.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/parser.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/serializer.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/solution.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparesults/xml.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/spargebra/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/spargebra/algebra.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/spargebra/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/spargebra/parser.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/spargebra/query.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/spargebra/term.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/spargebra/update.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparopt/README.md (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparopt/algebra.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparopt/mod.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparopt/optimizer.rs (100%) rename {ng-oxigraph => engine/oxigraph}/src/sparopt/type_inference.rs (100%) rename {ng-oxigraph => engine/oxigraph}/tests/rocksdb_bc_data/000003.log (100%) rename {ng-oxigraph => engine/oxigraph}/tests/rocksdb_bc_data/CURRENT (100%) rename {ng-oxigraph => engine/oxigraph}/tests/rocksdb_bc_data/IDENTITY (100%) rename {ng-oxigraph => engine/oxigraph}/tests/rocksdb_bc_data/LOCK (100%) rename {ng-oxigraph => engine/oxigraph}/tests/rocksdb_bc_data/MANIFEST-000004 (100%) rename {ng-oxigraph => engine/oxigraph}/tests/rocksdb_bc_data/OPTIONS-000026 (100%) rename {ng-oxigraph => engine/oxigraph}/tests/store.rs (100%) rename {ng-repo => engine/repo}/Cargo.toml (100%) create mode 100644 engine/repo/README.md rename {ng-repo => engine/repo}/src/block.rs (100%) rename {ng-repo => engine/repo}/src/block_storage.rs (100%) rename {ng-repo => engine/repo}/src/branch.rs (100%) rename {ng-repo => engine/repo}/src/commit.rs (100%) rename {ng-repo => engine/repo}/src/errors.rs (100%) rename {ng-repo => engine/repo}/src/event.rs (100%) rename {ng-repo => engine/repo}/src/file.rs (100%) rename {ng-repo => engine/repo}/src/kcv_storage.rs (100%) rename {ng-repo => engine/repo}/src/lib.rs (100%) rename {ng-repo => engine/repo}/src/object.rs (100%) rename {ng-repo => engine/repo}/src/os_info.rs (100%) rename {ng-repo => engine/repo}/src/repo.rs (100%) rename {ng-repo => engine/repo}/src/store.rs (100%) rename {ng-repo => engine/repo}/src/types.rs (100%) rename {ng-repo => engine/repo}/src/utils.rs (100%) rename {ng-repo => engine/repo}/tests/test.jpg (100%) create mode 100644 engine/storage-rocksdb/Cargo.toml create mode 100644 engine/storage-rocksdb/README.md rename {ng-storage-rocksdb => engine/storage-rocksdb}/build.rs (100%) rename {ng-storage-rocksdb => engine/storage-rocksdb}/src/block_storage.rs (100%) rename {ng-storage-rocksdb => engine/storage-rocksdb}/src/kcv_storage.rs (100%) rename {ng-storage-rocksdb => engine/storage-rocksdb}/src/lib.rs (100%) create mode 100644 engine/verifier/Cargo.toml create mode 100644 engine/verifier/README.md rename {ng-verifier => engine/verifier}/build.rs (100%) rename {ng-verifier => engine/verifier}/src/commits/mod.rs (100%) rename {ng-verifier => engine/verifier}/src/commits/snapshot.rs (100%) rename {ng-verifier => engine/verifier}/src/commits/transaction.rs (100%) rename {ng-verifier => engine/verifier}/src/inbox_processor.rs (100%) rename {ng-verifier => engine/verifier}/src/lib.rs (100%) rename {ng-verifier => engine/verifier}/src/orm/add_remove_triples.rs (100%) create mode 100644 engine/verifier/src/orm/mod.rs rename {ng-verifier => engine/verifier}/src/orm/types.rs (100%) rename {ng-verifier => engine/verifier}/src/orm/utils.rs (100%) rename {ng-verifier => engine/verifier}/src/orm/validation.rs (100%) rename {ng-verifier => engine/verifier}/src/request_processor.rs (100%) rename {ng-verifier => engine/verifier}/src/rocksdb_user_storage.rs (100%) rename {ng-verifier => engine/verifier}/src/site.rs (100%) rename {ng-verifier => engine/verifier}/src/types.rs (100%) rename {ng-verifier => engine/verifier}/src/user_storage/branch.rs (100%) rename {ng-verifier => engine/verifier}/src/user_storage/mod.rs (100%) rename {ng-verifier => engine/verifier}/src/user_storage/repo.rs (100%) rename {ng-verifier => engine/verifier}/src/user_storage/storage.rs (100%) rename {ng-verifier => engine/verifier}/src/verifier.rs (100%) rename {ng-wallet => engine/wallet}/.gitignore (100%) create mode 100644 engine/wallet/Cargo.toml create mode 100644 engine/wallet/README.md rename {ng-wallet => engine/wallet}/src/bip39.rs (100%) rename {ng-wallet => engine/wallet}/src/emojis.rs (100%) rename {ng-wallet => engine/wallet}/src/lib.rs (100%) rename {ng-wallet => engine/wallet}/src/permissions.rs (100%) rename {ng-wallet => engine/wallet}/src/types.rs (100%) rename {ng-wallet => engine/wallet}/tests/generated_security_image.jpg.compare (100%) rename {ng-wallet => engine/wallet}/tests/valid_security_image.jpg (100%) create mode 100644 infra/ngaccount/.env create mode 100644 infra/ngaccount/.gitignore create mode 100644 infra/ngaccount/Cargo.toml create mode 100644 infra/ngaccount/README.md create mode 100644 infra/ngaccount/src/main.rs create mode 100644 infra/ngaccount/src/types.rs create mode 100644 infra/ngaccount/web/.gitignore create mode 100644 infra/ngaccount/web/.vscode/extensions.json create mode 100644 infra/ngaccount/web/index.html create mode 100644 infra/ngaccount/web/jsconfig.json create mode 100644 infra/ngaccount/web/package.json create mode 100644 infra/ngaccount/web/pnpm-lock.yaml create mode 100644 infra/ngaccount/web/postcss.config.cjs create mode 100644 infra/ngaccount/web/public/robots.txt create mode 100644 infra/ngaccount/web/src/App.svelte create mode 100644 infra/ngaccount/web/src/app.postcss create mode 100755 infra/ngaccount/web/src/assets/EU.svg create mode 100644 infra/ngaccount/web/src/assets/nextgraph.svg create mode 100644 infra/ngaccount/web/src/main.js create mode 100644 infra/ngaccount/web/src/routes/Create.svelte create mode 100644 infra/ngaccount/web/src/routes/Delete.svelte create mode 100644 infra/ngaccount/web/src/routes/Home.svelte create mode 100644 infra/ngaccount/web/src/routes/NotFound.svelte create mode 100644 infra/ngaccount/web/src/vite-env.d.ts create mode 100644 infra/ngaccount/web/svelte.config.js create mode 100644 infra/ngaccount/web/tailwind.config.cjs create mode 100644 infra/ngaccount/web/vite.config.js create mode 100644 infra/ngapp/.gitignore create mode 100644 infra/ngapp/Cargo.toml create mode 100644 infra/ngapp/README.md create mode 100644 infra/ngapp/src/main.rs create mode 100644 infra/ngapp/src/store/dynpeer.rs create mode 100644 infra/ngapp/src/store/mod.rs create mode 100644 infra/ngapp/src/store/wallet_record.rs create mode 100644 infra/ngapp/src/types.rs create mode 100644 infra/ngapp/web/.gitignore create mode 100644 infra/ngapp/web/.vscode/extensions.json create mode 100644 infra/ngapp/web/index.html create mode 100644 infra/ngapp/web/jsconfig.json create mode 100644 infra/ngapp/web/package.json create mode 100644 infra/ngapp/web/pnpm-lock.yaml create mode 100644 infra/ngapp/web/postcss.config.cjs create mode 100644 infra/ngapp/web/public/robots.txt create mode 100644 infra/ngapp/web/src/App.svelte create mode 100644 infra/ngapp/web/src/app.postcss create mode 100755 infra/ngapp/web/src/assets/EU.svg create mode 100644 infra/ngapp/web/src/assets/nextgraph.svg create mode 100644 infra/ngapp/web/src/main.js create mode 100644 infra/ngapp/web/src/routes/Home.svelte create mode 100644 infra/ngapp/web/src/routes/Install.svelte create mode 100644 infra/ngapp/web/src/routes/NotFound.svelte create mode 100644 infra/ngapp/web/src/routes/WalletCreate.svelte create mode 100644 infra/ngapp/web/src/vite-env.d.ts create mode 100644 infra/ngapp/web/svelte.config.js create mode 100644 infra/ngapp/web/tailwind.config.cjs create mode 100644 infra/ngapp/web/vite.config.js create mode 100644 infra/ngnet/.gitignore create mode 100644 infra/ngnet/Cargo.toml create mode 100644 infra/ngnet/README.md create mode 100644 infra/ngnet/bootstrap/.gitignore create mode 100644 infra/ngnet/bootstrap/index.html create mode 100644 infra/ngnet/bootstrap/jsconfig.json create mode 100644 infra/ngnet/bootstrap/package.json create mode 100644 infra/ngnet/bootstrap/src/main.ts create mode 100644 infra/ngnet/bootstrap/src/vite-env.d.ts create mode 100644 infra/ngnet/bootstrap/vite.config.js create mode 100644 infra/ngnet/redir/.gitignore create mode 100644 infra/ngnet/redir/index.html create mode 100644 infra/ngnet/redir/jsconfig.json create mode 100644 infra/ngnet/redir/package.json create mode 100644 infra/ngnet/redir/pnpm-lock.yaml create mode 100644 infra/ngnet/redir/postcss.config.cjs create mode 100644 infra/ngnet/redir/prepare-app-file.cjs create mode 100644 infra/ngnet/redir/src/App.svelte create mode 100644 infra/ngnet/redir/src/app.postcss create mode 100644 infra/ngnet/redir/src/assets/EU.svg create mode 100644 infra/ngnet/redir/src/assets/nextgraph.svg create mode 100644 infra/ngnet/redir/src/lib/Home.svelte create mode 100644 infra/ngnet/redir/src/main.ts create mode 100644 infra/ngnet/redir/src/routes/Home.svelte create mode 100644 infra/ngnet/redir/src/store.ts create mode 100644 infra/ngnet/redir/src/vite-env.d.ts create mode 100644 infra/ngnet/redir/src/worker.js create mode 100644 infra/ngnet/redir/svelte.config.js create mode 100644 infra/ngnet/redir/tailwind.config.cjs create mode 100644 infra/ngnet/redir/vite.config.js create mode 100644 infra/ngnet/src/main.rs create mode 100644 infra/ngnet/src/types.rs create mode 100644 infra/ngnet/web/.gitignore create mode 100644 infra/ngnet/web/.vscode/extensions.json create mode 100644 infra/ngnet/web/index.html create mode 100644 infra/ngnet/web/jsconfig.json create mode 100644 infra/ngnet/web/package.json create mode 100644 infra/ngnet/web/postcss.config.cjs create mode 100644 infra/ngnet/web/public/robots.txt create mode 100644 infra/ngnet/web/src/App.svelte create mode 100644 infra/ngnet/web/src/app.postcss create mode 100755 infra/ngnet/web/src/assets/EU.svg create mode 100644 infra/ngnet/web/src/assets/nextgraph.svg create mode 100644 infra/ngnet/web/src/main.js create mode 100644 infra/ngnet/web/src/routes/Home.svelte create mode 100644 infra/ngnet/web/src/routes/NotFound.svelte create mode 100644 infra/ngnet/web/src/vite-env.d.ts create mode 100644 infra/ngnet/web/svelte.config.js create mode 100644 infra/ngnet/web/tailwind.config.cjs create mode 100644 infra/ngnet/web/vite.config.js delete mode 100644 nextgraph/Cargo.toml delete mode 100644 nextgraph/src/lib.rs delete mode 100644 ng-broker/Cargo.toml delete mode 100644 ng-broker/src/server_ws.rs delete mode 100644 ng-client-ws/Cargo.toml delete mode 100644 ng-client-ws/README.md delete mode 100644 ng-net/Cargo.toml delete mode 100644 ng-net/README.md delete mode 100644 ng-oxigraph/Cargo.toml delete mode 100644 ng-repo/README.md delete mode 100644 ng-storage-rocksdb/Cargo.toml delete mode 100644 ng-storage-rocksdb/README.md delete mode 100644 ng-verifier/Cargo.toml delete mode 100644 ng-verifier/README.md delete mode 100644 ng-verifier/src/orm/mod.rs delete mode 100644 ng-wallet/Cargo.toml delete mode 100644 ng-wallet/README.md delete mode 100644 scripts/fix-ldo-dataset-cjs.js rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/.gitignore (100%) create mode 100644 sdk/js/alien-deepsignals/README.md create mode 100644 sdk/js/alien-deepsignals/package.json rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/pnpm-lock.yaml (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/contents.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/core.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/deepSignal.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/index.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/test/core.test.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/test/index.test.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/test/patchOptimized.test.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/test/tier3.test.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/test/watch.test.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/test/watchPatches.test.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/utils.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/watch.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/src/watchEffect.ts (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/tsconfig.json (100%) rename sdk/{ng-sdk-js/ng-alien-deepsignals => js/alien-deepsignals}/tsup.config.ts (100%) create mode 100644 sdk/js/api-web/.gitignore create mode 100644 sdk/js/api-web/main.ts create mode 100644 sdk/js/api-web/package.json create mode 100644 sdk/js/api-web/worker.js rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/.gitignore (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/README.md (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/astro.config.mjs (100%) create mode 100644 sdk/js/examples/multi-framework-signals/package.json rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/playwright.config.ts (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/app/components/Highlight.astro (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/app/components/ReactRoot.tsx (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/app/components/SvelteRoot.svelte (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/app/components/VueRoot.vue (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/app/layouts/Layout.astro (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/app/pages/index.astro (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/app/store/state.ts (100%) create mode 100644 sdk/js/examples/multi-framework-signals/src/frontends/react/HelloWorld.tsx create mode 100644 sdk/js/examples/multi-framework-signals/src/frontends/svelte/HelloWorld.svelte rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/frontends/tests/reactiveCrossFramework.spec.ts (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/frontends/utils/flattenObject.ts (100%) create mode 100644 sdk/js/examples/multi-framework-signals/src/frontends/vue/HelloWorld.vue create mode 100644 sdk/js/examples/multi-framework-signals/src/shapes/orm/catShape.schema.ts create mode 100644 sdk/js/examples/multi-framework-signals/src/shapes/orm/catShape.shapeTypes.ts rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/shapes/orm/catShape.typings.ts (100%) create mode 100644 sdk/js/examples/multi-framework-signals/src/shapes/orm/personShape.schema.ts create mode 100644 sdk/js/examples/multi-framework-signals/src/shapes/orm/personShape.shapeTypes.ts rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/shapes/orm/personShape.typings.ts (100%) create mode 100644 sdk/js/examples/multi-framework-signals/src/shapes/orm/testShape.schema.ts create mode 100644 sdk/js/examples/multi-framework-signals/src/shapes/orm/testShape.shapeTypes.ts rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/shapes/orm/testShape.typings.ts (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/shapes/shex/catShape.shex (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/shapes/shex/personShape.shex (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/src/shapes/shex/testShape.shex (100%) rename sdk/{ng-sdk-js => js}/examples/multi-framework-signals/svelte.config.js (100%) create mode 100644 sdk/js/examples/multi-framework-signals/tsconfig.json rename sdk/{ng-sdk-js => js/lib-wasm}/.gitignore (100%) create mode 100644 sdk/js/lib-wasm/Cargo.toml create mode 100644 sdk/js/lib-wasm/DEV.md rename sdk/{ng-sdk-js => js/lib-wasm}/LICENSE-APACHE2 (100%) rename sdk/{ng-sdk-js => js/lib-wasm}/LICENSE-MIT (100%) create mode 100644 sdk/js/lib-wasm/README.md rename sdk/{ng-sdk-js => js/lib-wasm}/index.html (100%) rename sdk/{ng-sdk-js/js => js/lib-wasm/jsland}/bowser.js (100%) rename sdk/{ng-sdk-js/js => js/lib-wasm/jsland}/browser.js (100%) create mode 100644 sdk/js/lib-wasm/jsland/node.js create mode 100644 sdk/js/lib-wasm/prepare-node.js create mode 100644 sdk/js/lib-wasm/prepare-web.js create mode 100644 sdk/js/lib-wasm/src/lib.rs rename sdk/{ng-sdk-js => js/lib-wasm}/src/model.rs (100%) create mode 100644 sdk/js/shex-orm/dist/ShexJTypes.d.ts create mode 100644 sdk/js/shex-orm/dist/ShexJTypes.d.ts.map create mode 100644 sdk/js/shex-orm/dist/ShexJTypes.js create mode 100644 sdk/js/shex-orm/dist/build.d.ts create mode 100644 sdk/js/shex-orm/dist/build.d.ts.map create mode 100644 sdk/js/shex-orm/dist/build.js create mode 100644 sdk/js/shex-orm/dist/cli.d.ts create mode 100644 sdk/js/shex-orm/dist/cli.d.ts.map create mode 100755 sdk/js/shex-orm/dist/cli.js create mode 100644 sdk/js/shex-orm/dist/index.d.ts create mode 100644 sdk/js/shex-orm/dist/index.d.ts.map create mode 100644 sdk/js/shex-orm/dist/index.js create mode 100644 sdk/js/shex-orm/dist/schema-converter/converter.d.ts create mode 100644 sdk/js/shex-orm/dist/schema-converter/converter.d.ts.map create mode 100644 sdk/js/shex-orm/dist/schema-converter/converter.js create mode 100644 sdk/js/shex-orm/dist/schema-converter/templates/schema.ejs create mode 100644 sdk/js/shex-orm/dist/schema-converter/templates/shapeTypes.ejs rename sdk/{ng-sdk-js/ng-shex-orm/src => js/shex-orm/dist}/schema-converter/templates/typings.ejs (100%) create mode 100644 sdk/js/shex-orm/dist/schema-converter/transformers/ShexJSchemaTransformer.d.ts create mode 100644 sdk/js/shex-orm/dist/schema-converter/transformers/ShexJSchemaTransformer.d.ts.map create mode 100644 sdk/js/shex-orm/dist/schema-converter/transformers/ShexJSchemaTransformer.js create mode 100644 sdk/js/shex-orm/dist/schema-converter/transformers/ShexJTypingTransformer.d.ts create mode 100644 sdk/js/shex-orm/dist/schema-converter/transformers/ShexJTypingTransformer.d.ts.map create mode 100644 sdk/js/shex-orm/dist/schema-converter/transformers/ShexJTypingTransformer.js create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/ShapeInterfaceDeclaration.d.ts create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/ShapeInterfaceDeclaration.d.ts.map create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/ShapeInterfaceDeclaration.js create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/annotateReadablePredicates.d.ts create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/annotateReadablePredicates.d.ts.map create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/annotateReadablePredicates.js create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/dedupeObjectTypeMembers.d.ts create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/dedupeObjectTypeMembers.d.ts.map create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/dedupeObjectTypeMembers.js create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/getRdfTypesForTripleConstraint.d.ts create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/getRdfTypesForTripleConstraint.d.ts.map create mode 100644 sdk/js/shex-orm/dist/schema-converter/util/getRdfTypesForTripleConstraint.js create mode 100644 sdk/js/shex-orm/dist/types.d.ts create mode 100644 sdk/js/shex-orm/dist/types.d.ts.map create mode 100644 sdk/js/shex-orm/dist/types.js create mode 100644 sdk/js/shex-orm/dist/util/forAllShapes.d.ts create mode 100644 sdk/js/shex-orm/dist/util/forAllShapes.d.ts.map create mode 100644 sdk/js/shex-orm/dist/util/forAllShapes.js create mode 100644 sdk/js/shex-orm/package.json rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/ShexJTypes.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/build.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/cli.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/index.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/schema-converter/converter.ts (100%) create mode 100644 sdk/js/shex-orm/src/schema-converter/templates/schema.ejs create mode 100644 sdk/js/shex-orm/src/schema-converter/templates/shapeTypes.ejs create mode 100644 sdk/js/shex-orm/src/schema-converter/templates/typings.ejs rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/schema-converter/transformers/ShexJSchemaTransformer.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/schema-converter/transformers/ShexJTypingTransformer.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/schema-converter/util/ShapeInterfaceDeclaration.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/schema-converter/util/annotateReadablePredicates.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/schema-converter/util/dedupeObjectTypeMembers.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/schema-converter/util/getRdfTypesForTripleConstraint.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/types.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/src/util/forAllShapes.ts (100%) rename sdk/{ng-sdk-js/ng-shex-orm => js/shex-orm}/tsconfig.json (100%) create mode 100644 sdk/js/signals/package.json create mode 100644 sdk/js/signals/src/connector/applyDiff.test.ts create mode 100644 sdk/js/signals/src/connector/applyDiff.ts create mode 100644 sdk/js/signals/src/connector/createSignalObjectForShape.ts create mode 100644 sdk/js/signals/src/frontendAdapters/react/index.ts create mode 100644 sdk/js/signals/src/frontendAdapters/react/useShape.ts create mode 100644 sdk/js/signals/src/frontendAdapters/svelte/index.ts create mode 100644 sdk/js/signals/src/frontendAdapters/svelte/useShape.svelte.ts create mode 100644 sdk/js/signals/src/frontendAdapters/vue/index.ts create mode 100644 sdk/js/signals/src/frontendAdapters/vue/useDeepSignal.ts create mode 100644 sdk/js/signals/src/frontendAdapters/vue/useShape.ts create mode 100644 sdk/js/signals/src/index.ts create mode 100644 sdk/js/signals/src/types.ts rename sdk/{ng-sdk-js/ng-signals => js/signals}/tsconfig.json (100%) delete mode 100644 sdk/ng-sdk-js/Cargo.toml delete mode 100644 sdk/ng-sdk-js/DEV.md delete mode 100644 sdk/ng-sdk-js/README.md delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/package.json delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/frontends/react/HelloWorld.tsx delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/frontends/svelte/HelloWorld.svelte delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/frontends/vue/HelloWorld.vue delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/shapes/orm/catShape.schema.ts delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/shapes/orm/catShape.shapeTypes.ts delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/shapes/orm/personShape.schema.ts delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/shapes/orm/personShape.shapeTypes.ts delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/shapes/orm/testShape.schema.ts delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/src/shapes/orm/testShape.shapeTypes.ts delete mode 100644 sdk/ng-sdk-js/examples/multi-framework-signals/tsconfig.json delete mode 100644 sdk/ng-sdk-js/js/node.js delete mode 100644 sdk/ng-sdk-js/ng-alien-deepsignals/README.md delete mode 100644 sdk/ng-sdk-js/ng-alien-deepsignals/package.json delete mode 100644 sdk/ng-sdk-js/ng-shex-orm/package.json delete mode 100644 sdk/ng-sdk-js/ng-shex-orm/src/schema-converter/templates/schema.ejs delete mode 100644 sdk/ng-sdk-js/ng-shex-orm/src/schema-converter/templates/shapeTypes.ejs delete mode 100644 sdk/ng-sdk-js/ng-signals/package.json delete mode 100644 sdk/ng-sdk-js/ng-signals/src/connector/applyDiff.test.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/connector/applyDiff.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/connector/createSignalObjectForShape.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/frontendAdapters/react/index.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/frontendAdapters/react/useShape.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/frontendAdapters/svelte/index.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/frontendAdapters/svelte/useShape.svelte.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/frontendAdapters/vue/index.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/frontendAdapters/vue/useDeepSignal.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/frontendAdapters/vue/useShape.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/index.ts delete mode 100644 sdk/ng-sdk-js/ng-signals/src/types.ts delete mode 100644 sdk/ng-sdk-js/prepare-node.js delete mode 100644 sdk/ng-sdk-js/prepare-web.js delete mode 100644 sdk/ng-sdk-js/src/lib.rs rename {nextgraph => sdk/rust}/.gitignore (100%) rename {nextgraph => sdk/rust}/.static/header.png (100%) create mode 100644 sdk/rust/Cargo.toml rename {nextgraph => sdk/rust}/README.md (100%) rename {nextgraph => sdk/rust}/examples/README.md (100%) rename {nextgraph => sdk/rust}/examples/in_memory.md (100%) rename {nextgraph => sdk/rust}/examples/in_memory.rs (100%) rename {nextgraph => sdk/rust}/examples/open.md (100%) rename {nextgraph => sdk/rust}/examples/open.rs (100%) rename {nextgraph => sdk/rust}/examples/persistent.md (100%) rename {nextgraph => sdk/rust}/examples/persistent.rs (100%) rename {nextgraph => sdk/rust}/examples/sparql_update.rs (100%) rename {nextgraph => sdk/rust}/examples/wallet-security-image-demo.png (100%) rename {nextgraph => sdk/rust}/examples/wallet-security-image-white.png (100%) create mode 100644 sdk/rust/src/lib.rs rename {nextgraph => sdk/rust}/src/local_broker.rs (100%) rename {nextgraph => sdk/rust}/src/local_broker_dev_env.rs (100%) rename {nextgraph => sdk/rust}/src/tests/create_or_open_wallet.rs (100%) rename {nextgraph => sdk/rust}/src/tests/mod.rs (100%) rename {nextgraph => sdk/rust}/src/tests/orm.rs (100%) rename {nextgraph => sdk/rust}/src/tests/security-image.png (100%) diff --git a/Cargo.lock b/Cargo.lock index adf197b..3e10eeb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,33 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "NextGraph" +version = "0.1.2" +dependencies = [ + "nextgraph", + "ng-net", + "ng-repo", + "ng-wallet", + "oxrdf", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-barcode-scanner", + "tauri-plugin-opener", +] + +[[package]] +name = "addr" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a93b8a41dbe230ad5087cc721f8d41611de654542180586b315d9f4cf6b72bef" +dependencies = [ + "psl", + "psl-types", +] + [[package]] name = "addr2line" version = "0.24.2" @@ -83,18 +110,86 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anes" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + [[package]] name = "anstyle" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.60.2", +] + [[package]] name = "anyhow" version = "1.0.99" @@ -141,6 +236,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener 5.4.1", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -343,6 +450,29 @@ dependencies = [ "rustc_version", ] +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "atomic-polyfill" version = "1.0.3" @@ -479,6 +609,9 @@ name = "bitflags" version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +dependencies = [ + "serde", +] [[package]] name = "bitmaps" @@ -539,6 +672,24 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2 0.6.3", +] + [[package]] name = "blocking" version = "1.6.2" @@ -552,6 +703,27 @@ dependencies = [ "piper", ] +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bstr" version = "1.12.0" @@ -585,6 +757,9 @@ name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "serde", +] [[package]] name = "bzip2-sys" @@ -596,6 +771,40 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.9.4", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +dependencies = [ + "serde_core", +] + [[package]] name = "canonical_json" version = "0.5.0" @@ -609,6 +818,39 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.16", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.8", +] + [[package]] name = "cast" version = "0.3.0" @@ -627,6 +869,12 @@ dependencies = [ "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cexpr" version = "0.6.0" @@ -636,12 +884,39 @@ dependencies = [ "nom", ] +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + [[package]] name = "cfg-if" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chacha20" version = "0.9.1" @@ -666,6 +941,20 @@ dependencies = [ "zeroize", ] +[[package]] +name = "chrono" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link 0.2.0", +] + [[package]] name = "ciborium" version = "0.2.2" @@ -712,7 +1001,7 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading", + "libloading 0.8.8", ] [[package]] @@ -722,6 +1011,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", + "clap_derive", ] [[package]] @@ -730,8 +1020,22 @@ version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ + "anstream", "anstyle", "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] @@ -797,6 +1101,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + [[package]] name = "colored" version = "2.2.0" @@ -807,6 +1117,16 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -822,6 +1142,22 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -832,12 +1168,46 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.9.4", + "core-foundation 0.10.1", + "core-graphics-types", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.9.4", + "core-foundation 0.10.1", + "libc", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -872,6 +1242,15 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -931,20 +1310,57 @@ dependencies = [ ] [[package]] -name = "ctr" -version = "0.9.2" +name = "cssparser" +version = "0.29.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" dependencies = [ - "cipher", + "cssparser-macros", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", ] [[package]] -name = "current_platform" -version = "0.2.0" +name = "cssparser-macros" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a74858bcfe44b22016cb49337d7b6f04618c58e5dbfdef61b06b8c434324a0bc" - +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.106", +] + +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.106", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "current_platform" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a74858bcfe44b22016cb49337d7b6f04618c58e5dbfdef61b06b8c434324a0bc" + [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -984,6 +1400,41 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.106", +] + [[package]] name = "data-encoding" version = "2.9.0" @@ -1009,6 +1460,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", + "serde", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.106", ] [[package]] @@ -1031,6 +1496,43 @@ dependencies = [ "subtle", ] +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.0", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -1053,6 +1555,79 @@ dependencies = [ "winapi", ] +[[package]] +name = "dlopen2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b54f373ccf864bf587a89e880fb7610f8d73f3045f13580948ccbcaff26febff" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "duration-str" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8bb6a301a95ba86fa0ebaf71d49ae4838c51f8b84cb88ed140dfb66452bb3c4" +dependencies = [ + "chrono", + "nom", + "rust_decimal", + "serde", + "thiserror 1.0.69", + "time", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + [[package]] name = "ed25519" version = "1.5.3" @@ -1085,6 +1660,26 @@ dependencies = [ "serde", ] +[[package]] +name = "embed-resource" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.9.8", + "vswhom", + "winreg 0.55.0", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + [[package]] name = "encoding_rs" version = "0.8.35" @@ -1094,12 +1689,63 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" version = "0.3.14" @@ -1216,6 +1862,16 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + [[package]] name = "find-msvc-tools" version = "0.1.1" @@ -1250,7 +1906,28 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared", + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] @@ -1259,6 +1936,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + [[package]] name = "form_urlencoded" version = "1.2.2" @@ -1268,6 +1951,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + [[package]] name = "futures" version = "0.3.31" @@ -1380,78 +2073,256 @@ dependencies = [ ] [[package]] -name = "generic-array" -version = "0.14.7" +name = "gdk" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" dependencies = [ - "typenum", - "version_check", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", ] [[package]] -name = "getrandom" -version = "0.1.16" +name = "gdk-pixbuf" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" dependencies = [ - "cfg-if", + "gdk-pixbuf-sys", + "gio", + "glib", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "once_cell", ] [[package]] -name = "getrandom" -version = "0.2.16" +name = "gdk-pixbuf-sys" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" dependencies = [ - "cfg-if", - "js-sys", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", + "system-deps", ] [[package]] -name = "getrandom" -version = "0.3.3" +name = "gdk-sys" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" dependencies = [ - "cfg-if", - "js-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", - "r-efi", - "wasi 0.14.5+wasi-0.2.4", - "wasm-bindgen", + "pango-sys", + "pkg-config", + "system-deps", ] [[package]] -name = "ghash" -version = "0.5.1" +name = "gdkwayland-sys" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" dependencies = [ - "opaque-debug", - "polyval", + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", ] [[package]] -name = "gif" -version = "0.13.3" +name = "gdkx11" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" dependencies = [ - "color_quant", - "weezl", + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", ] [[package]] -name = "gimli" -version = "0.31.1" +name = "gdkx11-sys" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasi 0.14.5+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gif" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.9.4", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] [[package]] name = "glob" @@ -1484,6 +2355,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + [[package]] name = "group" version = "0.6.0" @@ -1495,6 +2377,58 @@ dependencies = [ "rand_xorshift", ] +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "h2" version = "0.3.27" @@ -1506,8 +2440,8 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", - "indexmap", + "http 0.2.12", + "indexmap 2.11.4", "slab", "tokio", "tokio-util", @@ -1533,12 +2467,42 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + [[package]] name = "hashbrown" version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.7", + "bytes", + "headers-core", + "http 0.2.12", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http 0.2.12", +] + [[package]] name = "heapless" version = "0.7.17" @@ -1552,6 +2516,18 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" version = "0.5.2" @@ -1570,6 +2546,18 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever", + "match_token", +] + [[package]] name = "http" version = "0.2.12" @@ -1581,6 +2569,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -1588,7 +2587,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.3.1", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", "pin-project-lite", ] @@ -1604,6 +2626,12 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" + [[package]] name = "hyper" version = "0.14.32" @@ -1615,8 +2643,8 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", - "http-body", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -1629,38 +2657,117 @@ dependencies = [ ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", - "hyper", - "native-tls", + "futures-channel", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", "tokio", - "tokio-native-tls", + "want", ] [[package]] -name = "icu_collections" -version = "2.0.0" +name = "hyper-tls" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", + "bytes", + "hyper 0.14.32", + "native-tls", + "tokio", + "tokio-native-tls", ] [[package]] -name = "icu_locale_core" -version = "2.0.0" +name = "hyper-util" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ - "displaydoc", + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.7.0", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2 0.6.0", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.1", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", "litemap", "tinystr", "writeable", @@ -1727,6 +2834,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "1.1.0" @@ -1788,12 +2901,34 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" [[package]] name = "indexmap" -version = "2.11.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.5", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", ] [[package]] @@ -1822,6 +2957,25 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + [[package]] name = "is-terminal" version = "0.4.16" @@ -1833,6 +2987,22 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -1857,6 +3027,51 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "jobserver" version = "0.1.34" @@ -1892,6 +3107,51 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73267b6bffa5356bd46cfa89386673e9a7f62f4eb3adcb45b1bd031892357853" +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.9.4", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 2.11.4", + "selectors", +] + [[package]] name = "kurbo" version = "0.11.3" @@ -1936,12 +3196,74 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" +[[package]] +name = "lib-wasm" +version = "0.1.2" +dependencies = [ + "async-std", + "futures", + "getrandom 0.3.3", + "gloo-timers", + "js-sys", + "nextgraph", + "ng-client-ws", + "ng-net", + "ng-repo", + "ng-wallet", + "once_cell", + "oxrdf", + "rand 0.7.3", + "serde", + "serde-wasm-bindgen", + "serde_bare", + "serde_bytes", + "sys-locale", + "uuid", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test", +] + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading 0.7.4", + "once_cell", +] + [[package]] name = "libc" version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + [[package]] name = "libloading" version = "0.8.8" @@ -2005,6 +3327,43 @@ dependencies = [ "value-bag", ] +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "markup5ever" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +dependencies = [ + "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + [[package]] name = "md-5" version = "0.10.6" @@ -2027,12 +3386,31 @@ version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minicov" version = "0.3.7" @@ -2080,29 +3458,98 @@ dependencies = [ ] [[package]] -name = "native-tls" -version = "0.2.14" +name = "muda" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "once_cell", + "png", + "serde", + "thiserror 2.0.16", + "windows-sys 0.60.2", +] + +[[package]] +name = "multer" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +dependencies = [ + "bytes", + "encoding_rs", + "futures-util", + "http 0.2.12", + "httparse", + "log", + "memchr", + "mime", + "spin", + "version_check", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", "schannel", "security-framework", "security-framework-sys", "tempfile", ] +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.9.4", + "jni-sys", + "log", + "ndk-sys", + "num_enum 0.7.4", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + [[package]] name = "netdev" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea7fff9396e7c96a7f1ce778e91a00f0afb22337a6150ab50a22c15e0d902621" dependencies = [ - "dlopen2", + "dlopen2 0.5.0", "libc", "memalloc", "netlink-packet-core", @@ -2110,7 +3557,7 @@ dependencies = [ "netlink-sys", "once_cell", "system-configuration 0.6.1", - "windows", + "windows 0.54.0", ] [[package]] @@ -2161,6 +3608,12 @@ dependencies = [ "log", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + [[package]] name = "nextgraph" version = "0.1.2" @@ -2272,7 +3725,7 @@ dependencies = [ "noise-rust-crypto", "once_cell", "regex", - "reqwest", + "reqwest 0.11.27", "serde", "serde_bare", "serde_bytes", @@ -2311,7 +3764,7 @@ dependencies = [ "serde", "sha1", "sha2 0.10.9", - "siphasher", + "siphasher 1.0.1", "thiserror 1.0.69", "zstd", ] @@ -2334,7 +3787,7 @@ dependencies = [ "lazy_static", "log", "ng_threshold_crypto", - "num_enum", + "num_enum 0.5.11", "once_cell", "os_info", "rand 0.7.3", @@ -2365,34 +3818,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "ng-sdk-js" -version = "0.1.2" -dependencies = [ - "async-std", - "futures", - "getrandom 0.3.3", - "gloo-timers", - "js-sys", - "nextgraph", - "ng-client-ws", - "ng-net", - "ng-repo", - "ng-wallet", - "once_cell", - "oxrdf", - "rand 0.7.3", - "serde", - "serde-wasm-bindgen", - "serde_bare", - "serde_bytes", - "sys-locale", - "uuid", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-bindgen-test", -] - [[package]] name = "ng-storage-rocksdb" version = "0.1.2" @@ -2410,7 +3835,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 0.2.12", "httparse", "log", "native-tls", @@ -2496,6 +3921,121 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ngaccount" +version = "0.1.2" +dependencies = [ + "anyhow", + "duration-str", + "env_logger", + "log", + "ng-client-ws", + "ng-net", + "ng-repo", + "rust-embed", + "serde", + "tokio", + "warp", + "warp-embed", +] + +[[package]] +name = "ngapp" +version = "0.1.2" +dependencies = [ + "base64-url", + "bytes", + "env_logger", + "log", + "ng-net", + "ng-repo", + "ng-storage-rocksdb", + "ng-wallet", + "rust-embed", + "serde_bare", + "serde_json", + "tokio", + "warp", + "warp-embed", +] + +[[package]] +name = "ngcli" +version = "0.1.2" +dependencies = [ + "async-std", + "blake3", + "clap", + "duration-str", + "env_logger", + "getrandom 0.2.16", + "log", + "ng-async-tungstenite", + "ng-client-ws", + "ng-net", + "ng-repo", + "serde", + "serde_json", + "zeroize", +] + +[[package]] +name = "ngd" +version = "0.1.2" +dependencies = [ + "addr", + "async-std", + "clap", + "env_logger", + "getrandom 0.2.16", + "lazy_static", + "log", + "ng-broker", + "ng-net", + "ng-repo", + "regex", + "serde_bare", + "serde_json", + "zeroize", +] + +[[package]] +name = "ngnet" +version = "0.1.2" +dependencies = [ + "anyhow", + "duration-str", + "env_logger", + "log", + "ng-client-ws", + "ng-net", + "ng-repo", + "rust-embed", + "serde", + "tokio", + "warp", + "warp-embed", +] + +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + [[package]] name = "noise-protocol" version = "0.2.0" @@ -2571,7 +4111,17 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +dependencies = [ + "num_enum_derive 0.7.4", + "rustversion", ] [[package]] @@ -2580,117 +4130,427 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "num_threads" -version = "0.1.7" +name = "num_enum_derive" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "libc", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] -name = "object" -version = "0.36.7" +name = "num_threads" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ - "memchr", + "libc", ] [[package]] -name = "once_cell" -version = "1.21.3" +name = "objc-sys" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" [[package]] -name = "oorandom" -version = "11.1.5" +name = "objc2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] [[package]] -name = "opaque-debug" -version = "0.3.1" +name = "objc2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] [[package]] -name = "openssl" -version = "0.10.73" +name = "objc2-app-kit" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ "bitflags 2.9.4", - "cfg-if", - "foreign-types", + "block2 0.6.2", "libc", - "once_cell", - "openssl-macros", - "openssl-sys", + "objc2 0.6.3", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation 0.3.2", + "objc2-quartz-core 0.3.2", ] [[package]] -name = "openssl-macros" -version = "0.1.1" +name = "objc2-cloud-kit" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-foundation 0.3.2", ] [[package]] -name = "openssl-probe" -version = "0.1.6" +name = "objc2-core-data" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-foundation 0.3.2", +] [[package]] -name = "openssl-src" -version = "300.5.2+3.5.2" +name = "objc2-core-foundation" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "cc", + "bitflags 2.9.4", + "dispatch2", + "objc2 0.6.3", ] [[package]] -name = "openssl-sys" -version = "0.9.109" +name = "objc2-core-graphics" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", + "bitflags 2.9.4", + "dispatch2", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-io-surface", ] [[package]] -name = "os_info" -version = "3.12.0" +name = "objc2-core-image" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0e1ac5fde8d43c34139135df8ea9ee9465394b2d8d20f032d38998f64afffc3" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" dependencies = [ - "log", - "plist", - "serde", - "windows-sys 0.52.0", + "objc2 0.6.3", + "objc2-foundation 0.3.2", ] [[package]] -name = "oxilangtag" -version = "0.1.5" +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.9.4", + "block2 0.5.1", + "libc", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.9.4", + "block2 0.6.2", + "libc", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-javascript-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" +dependencies = [ + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.9.4", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.9.4", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-security" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.9.4", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.9.4", + "block2 0.6.2", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-javascript-core", + "objc2-security", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open" +version = "5.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" +dependencies = [ + "dunce", + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "openssl" +version = "0.10.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-src" +version = "300.5.2+3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "os_info" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e1ac5fde8d43c34139135df8ea9ee9465394b2d8d20f032d38998f64afffc3" +dependencies = [ + "log", + "plist", + "serde", + "windows-sys 0.52.0", +] + +[[package]] +name = "oxilangtag" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23f3f87617a86af77fa3691e6350483e7154c2ead9f1261b75130e21ca0f8acb" dependencies = [ @@ -2737,12 +4597,60 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "parking" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.0", +] + [[package]] name = "password-hash" version = "0.5.0" @@ -2760,6 +4668,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + [[package]] name = "pdf-writer" version = "0.10.0" @@ -2815,17 +4729,171 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" name = "pharos" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.1", +] + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ - "futures", - "rustc_version", + "pin-project-internal", ] [[package]] -name = "pico-args" -version = "0.5.0" +name = "pin-project-internal" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] [[package]] name = "pin-project-lite" @@ -2863,7 +4931,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" dependencies = [ "base64 0.22.1", - "indexmap", + "indexmap 2.11.4", "quick-xml 0.38.3", "serde", "time", @@ -2971,6 +5039,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + [[package]] name = "prettyplease" version = "0.2.37" @@ -2988,9 +5062,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.7", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro2" version = "1.0.101" @@ -3000,6 +5123,21 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "psl" +version = "2.1.148" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53297a72c400b31c5facd8e50894d08d20b74ee74925b28a20d51fe48c863583" +dependencies = [ + "psl-types", +] + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + [[package]] name = "qoi" version = "0.4.1" @@ -3059,6 +5197,7 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", + "rand_pcg", ] [[package]] @@ -3119,6 +5258,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + [[package]] name = "rand_xorshift" version = "0.2.0" @@ -3137,6 +5285,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + [[package]] name = "rayon" version = "1.11.0" @@ -3166,6 +5320,37 @@ dependencies = [ "bitflags 2.9.4", ] +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.16", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "regex" version = "1.11.2" @@ -3207,9 +5392,9 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", - "http-body", - "hyper", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", "hyper-tls", "ipnet", "js-sys", @@ -3223,7 +5408,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration 0.5.1", "tokio", "tokio-native-tls", @@ -3232,7 +5417,42 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.7.0", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", ] [[package]] @@ -3276,6 +5496,16 @@ dependencies = [ "walkdir", ] +[[package]] +name = "rust_decimal" +version = "1.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35affe401787a9bd846712274d97654355d21b2a2c092a3139aabe31e9022282" +dependencies = [ + "arrayvec", + "num-traits", +] + [[package]] name = "rustc-demangle" version = "0.1.26" @@ -3389,6 +5619,63 @@ dependencies = [ "windows-sys 0.61.0", ] +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.106", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -3402,7 +5689,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.9.4", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "security-framework-sys", @@ -3418,11 +5705,33 @@ dependencies = [ "libc", ] +[[package]] +name = "selectors" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", +] + [[package]] name = "semver" version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] [[package]] name = "send_wrapper" @@ -3432,9 +5741,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.222" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab69e3f5be1836a1fe0aca0b286e5a5b38f262d6c9e8acd2247818751fcc8fb" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -3449,6 +5758,18 @@ dependencies = [ "serde", ] +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + [[package]] name = "serde-wasm-bindgen" version = "0.6.5" @@ -3476,62 +5797,165 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe07b5d88710e3b807c16a06ccbc9dfecd5fff6a4d2745c59e3e26774f10de6a" dependencies = [ "serde", - "serde_core", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "serde_json_diff" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac615f2de9556d78ec9d5924abae441d1764f833fbd6db24bb56d2b6b5200ed" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", ] [[package]] -name = "serde_core" -version = "1.0.222" +name = "serde_with" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8ebec5eea07db7df9342aa712db2138f019d9ab3454a60a680579a6f841b80" +checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" dependencies = [ - "serde_derive", + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.11.4", + "schemars 0.9.0", + "schemars 1.0.4", + "serde_core", + "serde_json", + "serde_with_macros", + "time", ] [[package]] -name = "serde_derive" -version = "1.0.222" +name = "serde_with_macros" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5f61630fe26d0ff555e6c37dc445ab2f15871c8a11ace3cf471b3195d3e4f49" +checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" dependencies = [ + "darling", "proc-macro2", "quote", "syn 2.0.106", ] [[package]] -name = "serde_json" -version = "1.0.145" +name = "serialize-to-javascript" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" dependencies = [ - "itoa", - "memchr", - "ryu", "serde", - "serde_core", + "serde_json", + "serialize-to-javascript-impl", ] [[package]] -name = "serde_json_diff" -version = "0.2.0" +name = "serialize-to-javascript-impl" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac615f2de9556d78ec9d5924abae441d1764f833fbd6db24bb56d2b6b5200ed" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" dependencies = [ - "serde", - "serde_json", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "servo_arc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "nodrop", + "stable_deref_trait", ] [[package]] @@ -3605,6 +6029,12 @@ dependencies = [ "log", ] +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "siphasher" version = "1.0.1" @@ -3677,6 +6107,54 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "softbuffer" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" +dependencies = [ + "bytemuck", + "cfg_aliases", + "core-graphics", + "foreign-types 0.5.0", + "js-sys", + "log", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-quartz-core 0.2.2", + "raw-window-handle", + "redox_syscall", + "wasm-bindgen", + "web-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "spin" version = "0.9.8" @@ -3692,6 +6170,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "strict-num" version = "0.1.1" @@ -3701,6 +6185,37 @@ dependencies = [ "float-cmp", ] +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "subtle" version = "2.6.1" @@ -3721,106 +6236,464 @@ dependencies = [ ] [[package]] -name = "svgtypes" -version = "0.15.3" +name = "svgtypes" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68c7541fff44b35860c1a7a47a7cadf3e4a304c457b58f9870d9706ece028afc" +dependencies = [ + "kurbo", + "siphasher 1.0.1", +] + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "js-sys", + "libc", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.4", + "core-foundation 0.9.4", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.34.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "959469667dbcea91e5485fc48ba7dd6023face91bb0f1a14681a70f99847c3f7" +dependencies = [ + "bitflags 2.9.4", + "block2 0.6.2", + "core-foundation 0.10.1", + "core-graphics", + "crossbeam-channel", + "dispatch", + "dlopen2 0.8.0", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-foundation 0.3.2", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows 0.61.3", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4d1d3b3dc4c101ac989fd7db77e045cc6d91a25349cd410455cb5c57d510c1c" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.3", + "glob", + "gtk", + "heck 0.5.0", + "http 1.3.1", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-foundation 0.3.2", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest 0.12.24", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.16", + "tokio", + "tray-icon", + "url", + "urlpattern", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows 0.61.3", +] + +[[package]] +name = "tauri-build" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68c7541fff44b35860c1a7a47a7cadf3e4a304c457b58f9870d9706ece028afc" +checksum = "9c432ccc9ff661803dab74c6cd78de11026a578a9307610bbc39d3c55be7943f" dependencies = [ - "kurbo", - "siphasher", + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.9.8", + "walkdir", ] [[package]] -name = "syn" -version = "1.0.109" +name = "tauri-codegen" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "1ab3a62cf2e6253936a8b267c2e95839674e7439f104fa96ad0025e149d54d8a" dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png", "proc-macro2", "quote", - "unicode-ident", + "semver", + "serde", + "serde_json", + "sha2 0.10.9", + "syn 2.0.106", + "tauri-utils", + "thiserror 2.0.16", + "time", + "url", + "uuid", + "walkdir", ] [[package]] -name = "syn" -version = "2.0.106" +name = "tauri-macros" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "4368ea8094e7045217edb690f493b55b30caf9f3e61f79b4c24b6db91f07995e" dependencies = [ + "heck 0.5.0", "proc-macro2", "quote", - "unicode-ident", + "syn 2.0.106", + "tauri-codegen", + "tauri-utils", ] [[package]] -name = "sync_wrapper" -version = "0.1.2" +name = "tauri-plugin" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "9946a3cede302eac0c6eb6c6070ac47b1768e326092d32efbb91f21ed58d978f" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "toml 0.9.8", + "walkdir", +] [[package]] -name = "synstructure" -version = "0.13.2" +name = "tauri-plugin-barcode-scanner" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "e3f79bba83da3c115ac248a658c5613db1325a7c7ba889e344287e373828a08b" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.16", ] [[package]] -name = "sys-locale" -version = "0.3.2" +name = "tauri-plugin-opener" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +checksum = "786156aa8e89e03d271fbd3fe642207da8e65f3c961baa9e2930f332bf80a1f5" dependencies = [ - "js-sys", - "libc", - "wasm-bindgen", - "web-sys", + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation 0.3.2", + "open", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.16", + "url", + "windows 0.61.3", + "zbus", ] [[package]] -name = "system-configuration" -version = "0.5.1" +name = "tauri-runtime" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "d4cfc9ad45b487d3fded5a4731a567872a4812e9552e3964161b08edabf93846" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", + "cookie", + "dpi", + "gtk", + "http 1.3.1", + "jni", + "objc2 0.6.3", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.16", + "url", + "webkit2gtk", + "webview2-com", + "windows 0.61.3", ] [[package]] -name = "system-configuration" -version = "0.6.1" +name = "tauri-runtime-wry" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "c1fe9d48bd122ff002064e88cfcd7027090d789c4302714e68fcccba0f4b7807" dependencies = [ - "bitflags 2.9.4", - "core-foundation", - "system-configuration-sys 0.6.0", + "gtk", + "http 1.3.1", + "jni", + "log", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-foundation 0.3.2", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows 0.61.3", + "wry", ] [[package]] -name = "system-configuration-sys" -version = "0.5.0" +name = "tauri-utils" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "41a3852fdf9a4f8fbeaa63dc3e9a85284dd6ef7200751f0bd66ceee30c93f212" dependencies = [ - "core-foundation-sys", - "libc", + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http 1.3.1", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.3", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.16", + "toml 0.9.8", + "url", + "urlpattern", + "uuid", + "walkdir", ] [[package]] -name = "system-configuration-sys" -version = "0.6.0" +name = "tauri-winres" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +checksum = "fd21509dd1fa9bd355dc29894a6ff10635880732396aa38c0066c1e6c1ab8074" dependencies = [ - "core-foundation-sys", - "libc", + "embed-resource", + "toml 0.9.8", ] [[package]] @@ -3836,6 +6709,26 @@ dependencies = [ "windows-sys 0.61.0", ] +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -3922,116 +6815,260 @@ dependencies = [ ] [[package]] -name = "tiny-keccak" -version = "2.0.2" +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tiny-skia-path" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.47.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "slab", + "socket2 0.6.0", + "tokio-macros", + "windows-sys 0.59.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +dependencies = [ + "indexmap 2.11.4", + "serde_core", + "serde_spanned 1.0.3", + "toml_datetime 0.7.3", + "toml_parser", + "toml_writer", + "winnow 0.7.13", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ - "crunchy", + "serde", ] [[package]] -name = "tiny-skia-path" -version = "0.11.4" +name = "toml_datetime" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ - "arrayref", - "bytemuck", - "strict-num", + "serde_core", ] [[package]] -name = "tinystr" -version = "0.8.1" +name = "toml_edit" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "displaydoc", - "zerovec", + "indexmap 2.11.4", + "toml_datetime 0.6.3", + "winnow 0.5.40", ] [[package]] -name = "tinytemplate" -version = "1.2.1" +name = "toml_edit" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ + "indexmap 2.11.4", "serde", - "serde_json", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", ] [[package]] -name = "tinyvec" -version = "1.10.0" +name = "toml_edit" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "tinyvec_macros", + "indexmap 2.11.4", + "toml_datetime 0.7.3", + "toml_parser", + "winnow 0.7.13", ] [[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.47.1" +name = "toml_parser" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ - "backtrace", - "bytes", - "io-uring", - "libc", - "mio", - "pin-project-lite", - "slab", - "socket2 0.6.0", - "windows-sys 0.59.0", + "winnow 0.7.13", ] [[package]] -name = "tokio-native-tls" -version = "0.3.1" +name = "toml_writer" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" [[package]] -name = "tokio-util" -version = "0.7.16" +name = "tower" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ - "bytes", "futures-core", - "futures-sink", + "futures-util", "pin-project-lite", + "sync_wrapper 1.0.2", "tokio", + "tower-layer", + "tower-service", ] [[package]] -name = "toml_datetime" -version = "0.6.11" +name = "tower-http" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.4", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] [[package]] -name = "toml_edit" -version = "0.19.15" +name = "tower-layer" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" @@ -4045,6 +7082,7 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -4070,18 +7108,123 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tray-icon" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d92153331e7d02ec09137538996a7786fe679c629c279e82a6be762b7e6fe2" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", + "once_cell", + "png", + "serde", + "thiserror 2.0.16", + "windows-sys 0.59.0", +] + [[package]] name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.8.5", + "sha1", + "thiserror 1.0.69", + "url", + "utf-8", +] + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset", + "tempfile", + "winapi", +] + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + [[package]] name = "unicode-ident" version = "1.0.19" @@ -4132,6 +7275,18 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + [[package]] name = "usvg" version = "0.42.0" @@ -4147,7 +7302,7 @@ dependencies = [ "pico-args", "roxmltree", "simplecss", - "siphasher", + "siphasher 1.0.1", "strict-num", "svgtypes", "tiny-skia-path", @@ -4166,6 +7321,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "uuid" version = "1.18.1" @@ -4200,12 +7361,38 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -4225,6 +7412,46 @@ dependencies = [ "try-lock", ] +[[package]] +name = "warp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http 0.2.12", + "hyper 0.14.32", + "log", + "mime", + "mime_guess", + "multer", + "percent-encoding", + "pin-project", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-tungstenite", + "tokio-util", + "tower-service", + "tracing", +] + +[[package]] +name = "warp-embed" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b958139e25f097e0ebde85342a3a2dbb728983ca893ba96b7fb8f448337110af" +dependencies = [ + "mime_guess", + "rust-embed", + "warp", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -4359,6 +7586,19 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "web-sys" version = "0.3.78" @@ -4373,10 +7613,90 @@ dependencies = [ name = "web-time" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.61.3", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" dependencies = [ - "js-sys", - "wasm-bindgen", + "thiserror 2.0.16", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] @@ -4427,26 +7747,122 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + [[package]] name = "windows" version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" dependencies = [ - "windows-core", + "windows-core 0.54.0", "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + [[package]] name = "windows-core" version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" dependencies = [ - "windows-result", + "windows-result 0.1.2", "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6844ee5416b285084d3d3fffd743b925a6c9385455f64f6d4fa3031c4c2749a9" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.0", + "windows-result 0.4.0", + "windows-strings 0.5.0", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "windows-link" version = "0.1.3" @@ -4459,6 +7875,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + [[package]] name = "windows-result" version = "0.1.2" @@ -4468,6 +7894,51 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" +dependencies = [ + "windows-link 0.2.0", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" +dependencies = [ + "windows-link 0.2.0", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -4495,6 +7966,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + [[package]] name = "windows-sys" version = "0.61.0" @@ -4504,6 +7984,21 @@ dependencies = [ "windows-link 0.2.0", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -4552,6 +8047,30 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "700dad7c058606087f6fdc1f88da5841e06da40334413c6cd4367b25ef26d24e" +dependencies = [ + "windows-link 0.2.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -4570,6 +8089,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -4588,6 +8113,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -4618,6 +8149,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -4636,6 +8173,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -4654,6 +8197,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -4672,6 +8221,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -4699,6 +8254,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -4709,6 +8273,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + [[package]] name = "wit-bindgen" version = "0.45.1" @@ -4721,6 +8295,51 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +[[package]] +name = "wry" +version = "0.53.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d78ec082b80fa088569a970d043bb3050abaabf4454101d44514ee8d9a8c9f6" +dependencies = [ + "base64 0.22.1", + "block2 0.6.2", + "cookie", + "crossbeam-channel", + "dirs", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http 1.3.1", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc2 0.6.3", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2 0.10.9", + "soup3", + "tao-macros", + "thiserror 2.0.16", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.61.3", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + [[package]] name = "ws_stream_wasm" version = "0.7.5" @@ -4740,6 +8359,27 @@ dependencies = [ "web-sys", ] +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + [[package]] name = "x25519-dalek" version = "1.1.1" @@ -4821,6 +8461,66 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "zbus" +version = "5.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d07e46d035fb8e375b2ce63ba4e4ff90a7f73cf2ffb0138b29e1158d2eaadf7" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener 5.4.1", + "futures-core", + "futures-lite", + "hex", + "nix", + "ordered-stream", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "windows-sys 0.60.2", + "winnow 0.7.13", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e797a9c847ed3ccc5b6254e8bcce056494b375b511b3d6edcec0aeb4defaca" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.106", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" +dependencies = [ + "serde", + "static_assertions", + "winnow 0.7.13", + "zvariant", +] + [[package]] name = "zerocopy" version = "0.8.27" @@ -4951,3 +8651,43 @@ checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" dependencies = [ "simd-adler32", ] + +[[package]] +name = "zvariant" +version = "5.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "999dd3be73c52b1fccd109a4a81e4fcd20fab1d3599c8121b38d04e1419498db" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow 0.7.13", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6643fd0b26a46d226bd90d3f07c1b5321fe9bb7f04673cb37ac6d6883885b68e" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.106", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.106", + "winnow 0.7.13", +] diff --git a/Cargo.toml b/Cargo.toml index b5845ea..fd68653 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,18 +1,24 @@ [workspace] resolver = "2" members = [ - "nextgraph", - "ng-repo", - "ng-net", - "ng-broker", - "ng-client-ws", - "ng-verifier", - "ng-wallet", - "ng-storage-rocksdb", - "sdk/ng-sdk-js", - "ng-oxigraph", + "engine/repo", + "engine/net", + "engine/broker", + "engine/client-ws", + "engine/verifier", + "engine/wallet", + "engine/storage-rocksdb", + "engine/oxigraph", + "sdk/rust", + "sdk/js/lib-wasm", + "bin/ngd", + "bin/ngcli", + "infra/ngaccount", + "infra/ngapp", + "infra/ngnet", + "app/nextgraph/src-tauri" ] -default-members = ["nextgraph"] +default-members = ["sdk/rust"] [workspace.package] version = "0.1.2" diff --git a/DEV.md b/DEV.md index 2047f10..961b311 100644 --- a/DEV.md +++ b/DEV.md @@ -1,8 +1,8 @@ # Contributors or compilation guide -- [Install Rust](https://www.rust-lang.org/tools/install) minimum required MSRV 1.81.0 -- [Install Nodejs](https://nodejs.org/en/download/) -- [Install LLVM](https://rust-lang.github.io/rust-bindgen/requirements.html) +- [Install Rust](https://www.rust-lang.org/tools/install) minimum required MSRV 1.81.0 +- [Install Nodejs](https://nodejs.org/en/download/) +- [Install LLVM](https://rust-lang.github.io/rust-bindgen/requirements.html) On OpenBSD, for LLVM you need to choose llvm-17. @@ -13,6 +13,7 @@ cargo install wasm-pack --git https://git.nextgraph.org/NextGraph/wasm-pack.git ``` On Debian distros + ``` sudo apt install pkg-config gcc build-essential libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev ``` @@ -25,7 +26,7 @@ git clone git@git.nextgraph.org:NextGraph/nextgraph-rs.git // or if you don't have a git account with us: git clone https://git.nextgraph.org/NextGraph/nextgraph-rs.git cd nextgraph-rs npm install -g pnpm -cd sdk/ng-sdk-js +cd sdk/lib-wasm cargo run-script app cd ../.. cd helpers/wasm-tools @@ -86,7 +87,7 @@ cargo run -p ngcli -- --save-key --save-config -s 127.0.0.1,14400, -u admin add-invitation --notos @@ -94,7 +95,7 @@ cargo run -p ngcli -- -s 127.0.0.1,14400, -u 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
+

Welcome to Tauri 2

+ +
+

Click on the Tauri logo to learn more about the framework

+ +
+ + +
+

+
+ + diff --git a/app/nextgraph/package.json b/app/nextgraph/package.json new file mode 100644 index 0000000..0996d98 --- /dev/null +++ b/app/nextgraph/package.json @@ -0,0 +1,21 @@ +{ + "name": "nextgraph", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri" + }, + "dependencies": { + "@tauri-apps/api": "^2", + "@tauri-apps/plugin-opener": "^2" + }, + "devDependencies": { + "@tauri-apps/cli": "^2", + "vite": "^6.0.3", + "typescript": "~5.6.2" + } +} diff --git a/app/nextgraph/src-tauri/.gitignore b/app/nextgraph/src-tauri/.gitignore new file mode 100644 index 0000000..b21bd68 --- /dev/null +++ b/app/nextgraph/src-tauri/.gitignore @@ -0,0 +1,7 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + +# Generated by Tauri +# will have schema files for capabilities auto-completion +/gen/schemas diff --git a/app/nextgraph/src-tauri/Cargo.toml b/app/nextgraph/src-tauri/Cargo.toml new file mode 100644 index 0000000..797d11b --- /dev/null +++ b/app/nextgraph/src-tauri/Cargo.toml @@ -0,0 +1,38 @@ +[package] +name = "NextGraph" +# version = "0.1.0" +description = "NextGraph App" +publish = false +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +repository.workspace = true +homepage.workspace = true +keywords.workspace = true +documentation.workspace = true +rust-version.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +# The `_lib` suffix may seem redundant but it is necessary +# to make the lib name unique and wouldn't conflict with the bin name. +# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 +name = "nextgraph_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } +tauri-plugin-opener = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +tauri-plugin-barcode-scanner = "2" +ng-repo = { path = "../../../engine/repo" } +ng-net = { path = "../../../engine/net" } +ng-wallet = { path = "../../../engine/wallet" } +nextgraph = { path = "../../../sdk/rust" } +oxrdf = { git = "https://git.nextgraph.org/NextGraph/oxigraph.git", branch="main", features = ["rdf-star", "oxsdatatypes"] } diff --git a/app/nextgraph/src-tauri/build.rs b/app/nextgraph/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/app/nextgraph/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/app/nextgraph/src-tauri/capabilities/default.json b/app/nextgraph/src-tauri/capabilities/default.json new file mode 100644 index 0000000..4cdbf49 --- /dev/null +++ b/app/nextgraph/src-tauri/capabilities/default.json @@ -0,0 +1,10 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Capability for the main window", + "windows": ["main"], + "permissions": [ + "core:default", + "opener:default" + ] +} diff --git a/app/nextgraph/src-tauri/gen/android/.editorconfig b/app/nextgraph/src-tauri/gen/android/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/.gitignore b/app/nextgraph/src-tauri/gen/android/.gitignore new file mode 100644 index 0000000..b248203 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/.gitignore @@ -0,0 +1,19 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build +/captures +.externalNativeBuild +.cxx +local.properties +key.properties + +/.tauri +/tauri.settings.gradle \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/.gitignore b/app/nextgraph/src-tauri/gen/android/app/.gitignore new file mode 100644 index 0000000..2980652 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/.gitignore @@ -0,0 +1,6 @@ +/src/main/java/org/nextgraph/app/generated +/src/main/jniLibs/**/*.so +/src/main/assets/tauri.conf.json +/tauri.build.gradle.kts +/proguard-tauri.pro +/tauri.properties \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/build.gradle.kts b/app/nextgraph/src-tauri/gen/android/app/build.gradle.kts new file mode 100644 index 0000000..e8fdc50 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/build.gradle.kts @@ -0,0 +1,70 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("rust") +} + +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +android { + compileSdk = 36 + namespace = "org.nextgraph.app" + defaultConfig { + manifestPlaceholders["usesCleartextTraffic"] = "false" + applicationId = "org.nextgraph.app" + minSdk = 24 + targetSdk = 36 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") + } + buildTypes { + getByName("debug") { + manifestPlaceholders["usesCleartextTraffic"] = "true" + isDebuggable = true + isJniDebuggable = true + isMinifyEnabled = false + packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") + jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") + jniLibs.keepDebugSymbols.add("*/x86/*.so") + jniLibs.keepDebugSymbols.add("*/x86_64/*.so") + } + } + getByName("release") { + isMinifyEnabled = true + proguardFiles( + *fileTree(".") { include("**/*.pro") } + .plus(getDefaultProguardFile("proguard-android-optimize.txt")) + .toList().toTypedArray() + ) + } + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + buildConfig = true + } +} + +rust { + rootDirRel = "../../../" +} + +dependencies { + implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("androidx.activity:activity-ktx:1.10.1") + implementation("com.google.android.material:material:1.12.0") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.4") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") +} + +apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/proguard-rules.pro b/app/nextgraph/src-tauri/gen/android/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..6da833a --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/ic_launcher-playstore.png b/app/nextgraph/src-tauri/gen/android/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cffa4e42c1f4cf2c644fe6e35b59cd569e5bb1 GIT binary patch literal 23934 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 + + + + + + + + + + \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..4fc2444 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..7038155fbcc7bea2f2dafe60c0d234e743307b78 GIT binary patch literal 1610 zcmV-Q2DSN8Nk&FO1^@t8MM6+kP&iCB1^@srN5ByfHHVqDZ5;lv*J}tOVgl?!6?)BZ z7o6<>7dJme!6{o-^b`p(Q54XPCT1SHGBbw%zx01N{>Dg&j3~LOGaIOfbI|o%bdHFQ z6_EKa<9yW)DnTJ9q!QRegwtx8wB{xg>W<|IZ9IfUaYYnYL}> zU1LxRawGsWZD-B4ZN|23+qP}n#yjVpbFzY;4W#{5j8}%O)!Tj>$R=22=5%qJNu5dM z$}8XsjE>#!;O|eIlK!tC?wz!pVIbR968FDB8tg(WOyYlr z0RR?FH)Y!`dsL9N0pnluP8_(6q)5)fF+;zB^tU9LWF*lRL6Rbgyg_*!$#Sxp>?ga) z9#@ZhHso_JpOkcx=L3j+@Fxz=D-Lo7(ZNOReIy}PZa|U2szO^8Q8p!U@Y%pj}6VM(XM%Of?~*L6YN)t#%XQ$Ye-Zp2AQhl!<n4L{4xFH4&n?9tWpMDidVSNl=NQCrq?gIS?YpBEVJ>XA;98!?|!i zkp~ULUDJ5Pg?xO zl<0F^fUHtn@V}LEB1EAj{9L|VEmOv5VXlV(<4KfA@m>!m7vl)B%5g5Tk5I&nste;S zl+WOKv=}rhyiW)ayAKhh_HqMG)V z*V=4=U>PIL1<+XmvXDncgetsr^dlz#SU!kR2_VIU%M|X;hxo52d9Ynxa;Grww!wJW zZ5O%GfF+dAfah4N5C1v57N^pDDK4nVk5PHD*Dl;my#RY@PU7EXw^;z(Pdx#aU-JQO zryd`Uznwt>AK6)o#hYy~fOlJ?aM=;*%n;i2ImR8bEQ8L=+yePrY8*0WY&1jctEPV0 z=~kX>C*+yQoKcW?Um751 zNrFj8JdJJcpt$~s0X_Lmx#KTM@mqo%1th`tJZRr*2i*enXd*@F`gX{tchI1wcX=he zouCPIrXYX2j(h4fiaO?yJB;y!QU*(`Cs4wds|~eU9hBwIT;JSsAPkyJfGLX~=)7-N z`^~M3s{FuyqcdazoIc8+{tkPy4ana@AKy#Gf=f|N^h@Ex?pCSg>ZdQv|9}RP+ z1`j>dhjHX@tC08~Px?7}F#=WmL1aETpdc9nq`6Ru2tkx9@)BS1sbuD^yl9C11QZ2> z;k}(^;i#uRRZ|d5puIqBo=h7}6W*he5kkl_Luy_ETjPJLpq*IJVMnD1wqeBQWd1%c zbE5|*NhZvTc8As!k-7c1<-kpE?}B7Gx7&+tC3roBelf_wSfq}oQ-Su9=ef1Q#W>pT zZtD42DlNKX0gO^g%JfvaeKfSenw?3v*G9HjQ$y+YW9JO3y=Gb^DJt13sHuPTvaFIM z&=8rtJGLbO+v$5j{MaCtMjDJ*e)zSBZ8+TBEurTfDt*KmVhaiogjDn zOHeGnWdD!{fcjuwTK)gO%bTNsNJ#g73Br(oB&4`|zJicTz9*EQ4H|yO<#Bg=aZLre ImjLM~1O;jI{{R30 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..77ce8244dc51ec6ad579f837719bbce41fbf8960 GIT binary patch literal 2690 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..c10a84782d627a5b96af41fd736239c3b1520cd9 GIT binary patch literal 1744 zcmV;>1~2(iNk&G<1^@t8MM6+kP&iDx1^@srYrq;1717!M&#>sc%KJjjo@?8-ZQHhO z+cwWHIA?ZtXVcziVoj{dwr$&~Y&(^0RkqFUS0(9eJGE^!5F1HSB&GjWy%WFP%goGh zce501+g97i!nPzcGc$wAk^Xl<52WRQ0YCtVoo(B;ZQHh8pKaT=ZC|IX)6@ewdYuW|g0V{xN zK!_&+F@gTT1CpHjCi>kiEtjF1{am?btwgm|yxJ<=Y*g(Rn$9CVueM1h1(-ST1Q-g$ z@f;xhAm9zjL3cydZXs=a7ePywM1o;8NFF|wZPt369RU&~fe*m2rMv|w1KcEcZL*A| zj2?`{cz&*0zcB7sK@zwRRQ3=c444f3W8kInJQml>8Of3CQu%gmg2|A;e_+m1UI8Ql zPLqAFmXzUxaWIDa(R>~u37i8`dIOMo2~HzXsapvrfpIoxb~4UXkiat_mlpupftQ?U zQkl~$<9IwT*Z*!JPXY3&2c+GO<9?YG(UWmu;@~9!rjDvJ>ONtm(yz3<(TW2}lim zVa;LA*bl2wqTnq{dXYCj%2ym^&(2bW4-xH>K;d$4+M8f#;K$Yq0h>ASZV0b|o$z*W zX8WygX$HNp=h?PFbmt>T#cqW`pM9;?Fw<%o=ySD$#u($5AiDb_oD_$A66>l09AN8pz=+56KDzE5v_1S& zvtgTUfWcogAuWmj{Qt3p8bF?Z?nx59h$RVLMt-a4WS;yel<~>$focHr*m3JI!goGG zN0Wvx0+xh!N&w-&dwwMp)hTRFM{hn#z_LPlC4g#tB%B69r_tGwpDH8RV4gHm0+`7r z)0h#>lw8r_E=QNZCR2^2N&r`ww>T2&d389|V44t!@8_0KVSeB*`TmmAUkcawy! zN7ssG=10BrRjGQT&N$O<>+63t#rJXowTBr3ofQBEvF$b>a_R{ZDz!^S_6-C^C;*IQ zlX*-eru#vOH%Z&}fPWPLrm_AsB@)le$@oN?IViGSeDLY_u%%(1Ph)?d{jKe{%4{+J z_7ScEraKnZ`5`Z)CGn3>zqft*d*lD^0mku9k=Z4THyPtbOX90A{2%NZU@+Tl10vzI zbb`IPTybN}|5uo6fR^lcHHnzH>^*X;8!U;>wQGT5oM z__oH46yZH*3zI`EMPEbLr7KX*g>y|2zN zQ=;5{^=n*XX;>LnJ~_1VKmp)2@ltD;3$KAgd5V(>zYGby2TEv91kwXn$pLrMSx&_A zK3c6qB!SyNR_&2M3}6L$PxECYfuEBV#VJ(omL{1LNnqm++B<>zz%z0hi9IqTH{VJ~ z%N~NRIf_JpEi`ry#P)N)_6bK35A#UI$DC;%To1l6-y&NuKcO z(RGKZs{O*%72BoC?b4;qmXSVZ%j7r3nLh|j0a9u&1|orGz>c?Q_c~xN(0U*3*+3Lf m2^jt*aOb)p*8z8d-N2~D_tBpJ0}vNTwL6gd`5*N3^a22;LrZ@E literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..bc43fded02420da986e7a6b80503993b833e41d1 GIT binary patch literal 2030 zcmVp;BJ2{AD z+qP}nwym*kPrJJo{;IAygD{)#Jq#?m^3=@X3^La3^F@l-}g4v7;fz78Q+x{wAS`s;pnpU#z zZ@Rq)lo57l2ucL97>pdxTS40s(1amNs_Jnqe*PnBHEx!xd|V5hGwg+eoR~WuLC;=E z$$ivec!&zs2ho#~$isIF*9XW_he13fBtRrRPr(eqJUC#^i8VWxVz z8H38lwU}8UW?G1y<&vyEinlulQH#B~d@~qEgAWZ=d`G1aDjzpkE&Kk;ZD>*nkmXi> zQ%zWi5K$HrnYMS-33Y$JSl4TRC#z`O)xv zIJeMLus))PrTQJ@;mP#-@+k#+a+i<<(1;_@H_o(`SL0i`2d}%RPYA<=30oA6)4hepRV8_e2I#+dk-cqzWQd~-4$sM zY8;nZJ|^mRHDu?^u(1{UmZ*s@su=fF^{` zM9cXe_7hG6pl4^?-AQADgY)zv zAETs2$WdN-^J+Cp00^mp+(vl}Awls&@xJ4)jf2S}EA$&TuhTbP{mMy@(V^S0C&DoP71RofsvlqNvG#)b-O-mnF~leh-V#Lcv#b`nN*j z)t5-Qb?}_xCTxjHwmYn0+3wG<@FfafGCOS6?l}q_o+I8deoI4pXhaf2JP@*cxQf!4 z{4dfR&_qv5W&5qL5OE<3iHiN&sUl6o>kKOsSaXAr+xxRK{?n9sTMc&lx1%^&j`bmB zD{nSa#(+i@vHx}CEzdaC-mMQRB8EtcN-X)u2oMR2Qys{2l*bUOc3fenfk9iZ;reg# z92>lbx=T902DVOE{BZ2yDCd6*od;Zau@H5rL}MhRHDsw0uLLhylzDe2au_fFNxJ$- zy8gHkUR6$u1 z>9k5n&BVYk{t8MV=JszI8a1u(VWUA~9*mRcsvTDpF+fxjdpv-@Nf<^*ZBH@)9fZ7^ zY>92MB|p^+ocFGnJwq7_HwU${Rnj~4df3_*PVwbj|oYL!b5bi=@H}@ zn~r|`Db3dVv^Idqc}dwTHlr+g{IM`yry_6`!@(xqbm3zQ9>-+NURQm=r;e8;g^*8Z zT8g!fJiiMcf81 M$(u4H&(?kr0NvEtJOBUy literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..12d346e6aee0127a33538932bdc81cfbd815f8df GIT binary patch literal 2112 zcmV-G2*3AINk&FE2mku;egEPDK9Y$Vsfms#@IXKpO8jWRf@&E&!af#1mdF?P zLw4fMP?{>`sZ>ur26R138;c4$T@n*Cb8Mznaj3uq75S0WQm9lHOy6$cd*mcTKh4^mvb5bT` zl@5sK<7%ug#6ADg=%AC)UJh5N8fQqv*2V5v`PiP3icBCO`*fp(M9C)a4H8j5YO1AV z4CUhWI4U!aL|i>>E2L%&<+7-bdXb3bsj%Qkq-6}{V(ivTNbxF}heAYk z)ywVjp!#0Um#~cqyZ*OdPc_16@u?Ku|J#pUvqL;z}_ZpoQI&R5rwFF<|$h>aRih7K))?&ov`kay5$ zslqwH`Xz#_ZDvlO_SMG3&Gq(`r4pcbH$p)IKT9E`G%D6Eg4`Fll#2WShA#8{9HGA{CTd>LGH$LA(89((dT+shbh7sgb^gc_Tb7g_K0_ zIfJj-RT~kA^z*kQJVs0{$PY93414TC8gxJ~X_QS*J z3gkm-iC1DIq~Qg5W2Z{jW@e}8JRGbU?mBdwilK#y0>dH z`vF!GL0B*$a4$qY80t+`1P7v>r*4ImOfWgNM>A0fUR^K;L6Dnidl>yOWb7O(ZLig> z%Y#A^&q_>`NEqpLH6#Ng<&eCjL`XPx@=~ZS7?ON=DqupT12)&D6d2LYkN>sdH!W`m z|CUKhse!tw@JG@|O$`(Zjh*X-6e1P*)e@i2CM=}|Hj(FW26owM_|Ukh0uzX-Nif{- zy(In~k4H50xIN{WB$yHtb;6;o3zcJ%SheIQDHGx?FQ~u-p*q!zRKUc;9gnFd7$G*+ zSC5KJP>3op;bfEnF86pmAM?xqD(JVw1Wnj)_;Vj~8}ol{d&vSZ+#CA!gPl25;oP)6 zmzXJJEegJ14ERB~9lrw=jxQ*>OjDJaE6PIF+i# zwqjKxS_sBrfnHgj0REf%XT!w*r+&z-%%7kzpm=-g=i~5+{AefslwQmIe0o^1bPWJC z6en!omjdFDbmg)aL<$U)`k;Ijod4lQ-4}*{vF3orF`8PfnAKhzUyaYlO8vttb+=DR zHT#&xlKU5BxDR+6kp^t~Vehzq#xJepE1&8|{%dZm?aKlI1q3s`juNzB1e4NVzP|P4 q`)!o%K45`tz%~^W2Q-QSnlk_W){Dhg`zZ5$6=2?${a@8S&MgJv>i=T^ literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..a1aec236b1d075b8e69a5c625dff999ad79316f8 GIT binary patch literal 3570 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 OfQqEaibPD)(auA)I1B3l literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..47e02807a12ea963642849c71878c3d677ae7847 GIT binary patch literal 3084 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 K_&>q_lS)3aZ6}QY literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..2c0d0a25831b7238118031df551b420de07d6c2f GIT binary patch literal 6472 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 UDLLmh19Hx##Dpsu5LfRa0PE$-6951J literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/nextgraph/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..fb9c7159423f6d48ab7344c0dd73ba6562234699 GIT binary patch literal 7146 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�h0i>w`Z$yrCkoJ|9BNSX+a#Z7E?xnNA%MCJ&6 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 + + + diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/colors.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..d9bbfbb --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/colors.xml @@ -0,0 +1,9 @@ + + + #FF1E88E5 + #FF4972A5 + #FF80CBC4 + #FF009688 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/strings.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..41efd08 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + NextGraph + NextGraph + \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/themes.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..5550fb1 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/nextgraph/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml b/app/nextgraph/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..782d63b --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/nextgraph/src-tauri/gen/android/build.gradle.kts b/app/nextgraph/src-tauri/gen/android/build.gradle.kts new file mode 100644 index 0000000..607240b --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/build.gradle.kts @@ -0,0 +1,22 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.11.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean").configure { + delete("build") +} + diff --git a/app/nextgraph/src-tauri/gen/android/buildSrc/build.gradle.kts b/app/nextgraph/src-tauri/gen/android/buildSrc/build.gradle.kts new file mode 100644 index 0000000..5c55bba --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + `kotlin-dsl` +} + +gradlePlugin { + plugins { + create("pluginsForCoolKids") { + id = "rust" + implementationClass = "RustPlugin" + } + } +} + +repositories { + google() + mavenCentral() +} + +dependencies { + compileOnly(gradleApi()) + implementation("com.android.tools.build:gradle:8.11.0") +} + diff --git a/app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/BuildTask.kt b/app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/BuildTask.kt new file mode 100644 index 0000000..f987482 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/BuildTask.kt @@ -0,0 +1,52 @@ +import java.io.File +import org.apache.tools.ant.taskdefs.condition.Os +import org.gradle.api.DefaultTask +import org.gradle.api.GradleException +import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +open class BuildTask : DefaultTask() { + @Input + var rootDirRel: String? = null + @Input + var target: String? = null + @Input + var release: Boolean? = null + + @TaskAction + fun assemble() { + val executable = """pnpm"""; + try { + runTauriCli(executable) + } catch (e: Exception) { + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + runTauriCli("$executable.cmd") + } else { + throw e; + } + } + } + + fun runTauriCli(executable: String) { + val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") + val target = target ?: throw GradleException("target cannot be null") + val release = release ?: throw GradleException("release cannot be null") + val args = listOf("tauri", "android", "android-studio-script"); + + project.exec { + workingDir(File(project.projectDir, rootDirRel)) + executable(executable) + args(args) + if (project.logger.isEnabled(LogLevel.DEBUG)) { + args("-vv") + } else if (project.logger.isEnabled(LogLevel.INFO)) { + args("-v") + } + if (release) { + args("--release") + } + args(listOf("--target", target)) + }.assertNormalExitValue() + } +} \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/RustPlugin.kt b/app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/RustPlugin.kt new file mode 100644 index 0000000..4aa7fca --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/app/kotlin/RustPlugin.kt @@ -0,0 +1,85 @@ +import com.android.build.api.dsl.ApplicationExtension +import org.gradle.api.DefaultTask +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.get + +const val TASK_GROUP = "rust" + +open class Config { + lateinit var rootDirRel: String +} + +open class RustPlugin : Plugin { + private lateinit var config: Config + + override fun apply(project: Project) = with(project) { + config = extensions.create("rust", Config::class.java) + + val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); + val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList + + val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); + val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList + + val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") + + extensions.configure { + @Suppress("UnstableApiUsage") + flavorDimensions.add("abi") + productFlavors { + create("universal") { + dimension = "abi" + ndk { + abiFilters += abiList + } + } + defaultArchList.forEachIndexed { index, arch -> + create(arch) { + dimension = "abi" + ndk { + abiFilters.add(defaultAbiList[index]) + } + } + } + } + } + + afterEvaluate { + for (profile in listOf("debug", "release")) { + val profileCapitalized = profile.replaceFirstChar { it.uppercase() } + val buildTask = tasks.maybeCreate( + "rustBuildUniversal$profileCapitalized", + DefaultTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for all targets" + } + + tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) + + for (targetPair in targetsList.withIndex()) { + val targetName = targetPair.value + val targetArch = archList[targetPair.index] + val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } + val targetBuildTask = project.tasks.maybeCreate( + "rustBuild$targetArchCapitalized$profileCapitalized", + BuildTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for $targetArch" + rootDirRel = config.rootDirRel + target = targetName + release = profile == "release" + } + + buildTask.dependsOn(targetBuildTask) + tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( + targetBuildTask + ) + } + } + } + } +} \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/gradle.properties b/app/nextgraph/src-tauri/gen/android/gradle.properties new file mode 100644 index 0000000..ac91368 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx4608m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/app/nextgraph/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar b/app/nextgraph/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/app/nextgraph/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c5f9a53 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue May 10 19:22:52 CST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/app/nextgraph/src-tauri/gen/android/gradlew b/app/nextgraph/src-tauri/gen/android/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/app/nextgraph/src-tauri/gen/android/gradlew.bat b/app/nextgraph/src-tauri/gen/android/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/app/nextgraph/src-tauri/gen/android/settings.gradle b/app/nextgraph/src-tauri/gen/android/settings.gradle new file mode 100644 index 0000000..3939116 --- /dev/null +++ b/app/nextgraph/src-tauri/gen/android/settings.gradle @@ -0,0 +1,3 @@ +include ':app' + +apply from: 'tauri.settings.gradle' diff --git a/app/nextgraph/src-tauri/icons/128x128.png b/app/nextgraph/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..3c063c3f3d6d6df716ff6a504a1c1cb02598411a GIT binary patch literal 8850 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 UechHyT>t<807*qoM6N<$g4;+ZF#rGn literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/128x128@2x.png b/app/nextgraph/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a67226da5ca81cb33056b3d2bc434a457fd4f1f GIT binary patch literal 18285 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

Ko;EP+uDhTU97J|(MthcoH;6+t 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۽tvD^K zDa9yb^L~qYFJRrDIn&Mdgf!F1Nb|n2`xOvQcMPTxgL|`i{?Ux{^)Bgv79_y{XW0Cj(0000< KMNUMnLSTZE2;##4 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/64x64.png b/app/nextgraph/src-tauri/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e678e3456057d44edafa69e9824c27ca04c448 GIT binary patch literal 4239 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/Square150x150Logo.png b/app/nextgraph/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d32a8a0c5deb470db5c0785453b3144f1131c9d3 GIT binary patch literal 10393 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 DYTog( literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/Square284x284Logo.png b/app/nextgraph/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ddbe2da76a5bbaccda686e8c0ec857539824e04c GIT binary patch literal 20564 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/Square310x310Logo.png b/app/nextgraph/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ba75229fdedbf3df4d460272ed324b3e6a1c76ae GIT binary patch literal 22677 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/Square44x44Logo.png b/app/nextgraph/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..869a9aa05f337357be5cad4bf2cdfa80b32824d8 GIT binary patch literal 2912 zcmV-m3!n6fP)(ptTmKJO4quOb!qodP-S|3BF zGF3aBGPd9_!Z;#jP{i;IAOnSHQY?^=gpl|9Cb_%&_dEaYy)2iT2ar1LPX64xd;iCG z&VSB#&iU7nQqup^WnANU;WqMoN>BTr0Ia!<0a-%;3(s$jlmOxiOhWf8PBzBj&xfx$ zXqjm7{1~khtx*VS(u9ZxZ@cZk3RrWu+v2{qq;a|?mg9ag+C;Qmv_RCDcC;$A!Vd#{a7$@?w zlWAODI*rXuBTZ9UZm?~+0l;4sLezS8%o-`c!ky5Bh6(_59ln3Fp|zWKl>M9b{+yy>N6Y|JZBU_Di~^z35fQwE_-% zz74Ps0PLT;dqaT@+mBn@4tyzFJA-I(*3qaby@8VS8yf z&dO?M$Aea>tEZn*lLKvve}$&DYCTW`E~Sj71a zE#NoUKCarkc{f<=t)0EJV&RRUCmxvN?Tr~#I z8Ki+e73emBCxO5$u00rFR)>UU4Ro$JdAgzKvDbE30iUi@#PcuR+F+ll9BK^ctE3>4 z^0JaCKF(0!>zljiR80$kMU=K#qn)tdtkeYh?W#poG$vi`mZ59pnnXXQ^`pIl_C!>O zkIAzJehFdnrvbX?)lFq={62xjZ2QtN44}QckBaj%=sUMhq&YX|1E}w^NkgVhM=Q_M z-#T0y7IHB$-#%@=2zl!R^$aL0Q7x_HP|HQ3Jbc69G7jm+E-Y4%p!0>EjewDIE@GO^G3BEDW6c zvtZ$Q+q-+Ixjm?MiJg)$z~Ke&0HR~{P`Sc5wCQ_~S4Y#FG9tD|Hjzi~pW%3dqye?+ z)vnh>WF#6nb2haFsVmq|KG*TWU0DF+Av4|km`tHT6SLvn2^G~%Ht0xrt$`;%Sf*vO zi$QUYT@M8|tX(fJ^E|?n>esh)DM}Qcxv;JV)1aL6r0KX#aj8wj((n{cY9O^_XYrZ? zZx=_n1yc(nEHRvG)5qo1f-TP6P39OY&v(fOt>N>FRr5!>Una@1+$xvfkw+a+YWrHRD zES#I*vC*&w1?$MRq;BZC1V^7@z=t``<3>XsK?bPBJ1N8X@W7V}@Ni6mg`9C?o@(KX z`I}L!*|3j3K5~YV;K&$a6hj5RxX+#Zk>wmFaB`l^V z>xvmZ!+8YyvBvp&@h^L*4Zgq%@M_m_Y!f*|inV&h3|{+ZXzwA1&OpJN)zsFLk9xA? z=Au!1A{7VPG7Q}I)E{3pxk#Lux^&dd`qJe~!x*y`@>kI4vO>S6#K+EH1l zPu?p2Ef!d|YtG6z5kfRH5kd8amTo;OE&gmyM$-AAGQwCVKkCQ`c6SGCa(hi<2R--Z z?hu^E$Dvszr}mYfl7?xny{nH#XC%s>+&3eHY|f9&?s#Ks_vU$%3O@h?9g~h@*;jfP z=zzBETfo2D;9x21w;l<>5p_76#+1jrEC)$uSV?RiLe*?G;gnPLTR81{^U)PEbvQIj zunX-jv>unKgqsyy)p4uOE&p?&op`lVz1G(T!+j|e z;YRm8#|^+X58KEkIiHkdN4=D(L$`8hbU*s-L%-(e_a$G&Tcq%7gvgs9RqBM5B-L+B zsd8 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/Square71x71Logo.png b/app/nextgraph/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a437286223da69b9a3e38eb9eb83eb7ce7873c3d GIT binary patch literal 4709 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 V>0Nb1T-*Qv002ovPDHLkV1h`bc+CI+ literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/icon.icns b/app/nextgraph/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..d33f11f2dc1bbdcd1f520efa10673d803ffe77bb GIT binary patch literal 181934 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

*hXs&2T$e-qh*1Eb3`w(m~_@QKZXy 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

Dmu##AK-+R{3N5>#ArWQ* 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/icon.ico b/app/nextgraph/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c7fbd4128b32d5837d3aae6d2e3cc7721e14ef5f GIT binary patch literal 31018 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%0A!(d)wgNx5i`qbab)ns6lo1jP+Sx+>0_ion}P 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

JETDVkEx4X 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 UPgY^9=_#SNG<4NJsG)=Z2U_pR3jhEB literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@1x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..25df8b8a17bcdb9f330ce03aa867de747b027f76 GIT binary patch literal 921 zcmV;K17`e*P)T0cvkR@=ZUll6SQ3qJ*i(_0lL?(p`ai(OmCf{Pf@{Dh znv|HNDyqU5lVG1|#er?PaIRh;NQu`8QxsL@2b`aax2y27u1!s`7)5q46a^haCov=# z^oT}dYQHDIuAXqBaOM2?6^?%8@}1YHeAkW)TOu3shX_DMo+A?}NeTGr4WOm{C;Y(( zJH2-;2UESi5Hp+fs?5JOvE}LyT_~;og7lO`czi+RJ7(d`zIDh-w~Qs$6Q@7iK5So` z!?|VWZkAK!61#M?0E_3Pft!VQB>oRe^o7x@o zVR7LSl+}Jihs&cTn-kdGXYWzh(u)mwcG$?+eI7rm-gS`DgRq*7Vyr@BncVCQjs6i2 zV&p-rFK*gXCC>#vR3@g8k6ihpL8lwD)=t3dh70<&c7#^5^j} v`|F;K3pim($K9>t+njd6{>zePQ>^vhoV0^XmNz0f00000NkvXXu0mjfs{yk( literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2ba1e934584e20305e49f4d9730f37c28a2855 GIT binary patch literal 2115 zcmV-J2)y@+P)}d}s6+!nj3GwChkW>fkq;j~7)^-bg9yTF)v-jHT zTto6fPw`>UQ+_=403HAJ0c1pytdI}+{mCFm`ys%`L5Ye#^B;V1x7hRaF4ax$s3Up`G5UPRMImr!B8 z=aGSm?o{#l8~14I?sHUext4qk%HeR3%jqPilYx`4K!hVv3h^fzmDIc~+*2oD5FlpEM`b51aD}^^H>iZR-e;Hz!lR zwP37RJZE%|*z5vO4{*21M<0KEfGTe`sHMZ0k!bgm9}vJaSOx1d#+A~i@60AohM|J% zF2*i72yk~AT50u$-BjDyMg@5uH3>=kJv@1m8E{K976krAqET`g4mGCB=};+Q{w7Vf zdjL?jwg<$TO?#QaHpLPL)*+ zbcQP&@{`3&+3pW3U;wC>^?qvyg*m`pxgLw%ZZXLB$=}Pbio<8B`QZd`%t#;@A%mA_ zJWdj>6-HdKve@DiW9UQcT_?NjFnj0*_h<>XPt zA{9`pNKmmWzSzn6=OZ_3nywu%7YK#bfNNLIq2Z;4>Uy$*5wT!!)NzXRW2V6_@)DrF z-Fb?>;}7yW!1Lj^mbL)xUcZdId@b2>TMQofyNZRlS#mcJNN!yWh~C3pV%@5FG^nT- zg~BEqPDk>HRbKM92ItVa19rLi5Iip78!Liym*Gs^i#1dGD{gS~%&4tg5lu%RM5{QD zG&nPFk`D%^FdRNO*KF8X)dhrkF+5f#xGqZj}Y z&Yv>an#h@gI$fb>uhpw6Eh^0AoXVtpo?HhNU{le|3V`%b!SDm&a721@J;G(g1Tv#$Y$_qy#Jc(fmGNQ|7O#_2^xzm{m$jpZu_bQ1&w?JFW=fW!FkdUUhwovR+=6C;-8E+r1XLb+?&L zR^Cy|kAS7^ISBiMRzI7OdNFiBL9Bp892p8=B%xbqG)Sq=n^Q0t`>wy=rh+mJE2(sF zx(v2qW&rj!s8a?^pQx;%qi3rrlh2C^a#S%68Q`UngL>1%vLX{8Dk*VRor9rpgi_^) z{rXL23VBA#w07PpDYeN!AZ`TVHo@QFRKrRfJbhE?V!HO?_)>aqL@{ffkLq~2QFsWhhVu~p87ztvECQHaqPRIo zc0U3wR{rj@PJ2lg%#nW%*`%HsFMU=d|Kb@Tuww00wa33IbD==DTsXhx!mF;n>XVGV|(dr0<`I<{H8BG8uM7*5-^4a3pCMvb< zH{z3AvRfWb)pgBs%bs(hcYc;?Thi8_QROHk=p4jZn+xcs+vVWSk)eP^qw%&)cPtk_ z&n7`>CdQ$(jWprij2>v!8&ky6xudDExjoi1<2N}v1z^wc$^#!$p3ETZyun_f8==df z;BbDQ`|s?D&se0S+m@t#v+(o&3(BSk+4ARj+?}TMVS8esH(8`wR$qS0@cxo%G+|hO z_5U2sXB3Z?rXB&*d2yw>iN4uUK@}HkWrQ7%hgmZWM_PA-g7I@M!T`*D{#kmLix0w^ z$_e%O-HbhXk6)-E-u2O0-kCKucSv|SVK>3j%zxw|s(bRtV!3d7nHV;(pvze1l%iX2 z7rOQG$Q~&i^TnHubnSK%HE@nX7cl@fR?sy7DjQg683buL^e6asE6rPgWFAb$#(gAU tJpz~rHhF002ovPDHLkV1i~00;vE1 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@2x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2ba1e934584e20305e49f4d9730f37c28a2855 GIT binary patch literal 2115 zcmV-J2)y@+P)}d}s6+!nj3GwChkW>fkq;j~7)^-bg9yTF)v-jHT zTto6fPw`>UQ+_=403HAJ0c1pytdI}+{mCFm`ys%`L5Ye#^B;V1x7hRaF4ax$s3Up`G5UPRMImr!B8 z=aGSm?o{#l8~14I?sHUext4qk%HeR3%jqPilYx`4K!hVv3h^fzmDIc~+*2oD5FlpEM`b51aD}^^H>iZR-e;Hz!lR zwP37RJZE%|*z5vO4{*21M<0KEfGTe`sHMZ0k!bgm9}vJaSOx1d#+A~i@60AohM|J% zF2*i72yk~AT50u$-BjDyMg@5uH3>=kJv@1m8E{K976krAqET`g4mGCB=};+Q{w7Vf zdjL?jwg<$TO?#QaHpLPL)*+ zbcQP&@{`3&+3pW3U;wC>^?qvyg*m`pxgLw%ZZXLB$=}Pbio<8B`QZd`%t#;@A%mA_ zJWdj>6-HdKve@DiW9UQcT_?NjFnj0*_h<>XPt zA{9`pNKmmWzSzn6=OZ_3nywu%7YK#bfNNLIq2Z;4>Uy$*5wT!!)NzXRW2V6_@)DrF z-Fb?>;}7yW!1Lj^mbL)xUcZdId@b2>TMQofyNZRlS#mcJNN!yWh~C3pV%@5FG^nT- zg~BEqPDk>HRbKM92ItVa19rLi5Iip78!Liym*Gs^i#1dGD{gS~%&4tg5lu%RM5{QD zG&nPFk`D%^FdRNO*KF8X)dhrkF+5f#xGqZj}Y z&Yv>an#h@gI$fb>uhpw6Eh^0AoXVtpo?HhNU{le|3V`%b!SDm&a721@J;G(g1Tv#$Y$_qy#Jc(fmGNQ|7O#_2^xzm{m$jpZu_bQ1&w?JFW=fW!FkdUUhwovR+=6C;-8E+r1XLb+?&L zR^Cy|kAS7^ISBiMRzI7OdNFiBL9Bp892p8=B%xbqG)Sq=n^Q0t`>wy=rh+mJE2(sF zx(v2qW&rj!s8a?^pQx;%qi3rrlh2C^a#S%68Q`UngL>1%vLX{8Dk*VRor9rpgi_^) z{rXL23VBA#w07PpDYeN!AZ`TVHo@QFRKrRfJbhE?V!HO?_)>aqL@{ffkLq~2QFsWhhVu~p87ztvECQHaqPRIo zc0U3wR{rj@PJ2lg%#nW%*`%HsFMU=d|Kb@Tuww00wa33IbD==DTsXhx!mF;n>XVGV|(dr0<`I<{H8BG8uM7*5-^4a3pCMvb< zH{z3AvRfWb)pgBs%bs(hcYc;?Thi8_QROHk=p4jZn+xcs+vVWSk)eP^qw%&)cPtk_ z&n7`>CdQ$(jWprij2>v!8&ky6xudDExjoi1<2N}v1z^wc$^#!$p3ETZyun_f8==df z;BbDQ`|s?D&se0S+m@t#v+(o&3(BSk+4ARj+?}TMVS8esH(8`wR$qS0@cxo%G+|hO z_5U2sXB3Z?rXB&*d2yw>iN4uUK@}HkWrQ7%hgmZWM_PA-g7I@M!T`*D{#kmLix0w^ z$_e%O-HbhXk6)-E-u2O0-kCKucSv|SVK>3j%zxw|s(bRtV!3d7nHV;(pvze1l%iX2 z7rOQG$Q~&i^TnHubnSK%HE@nX7cl@fR?sy7DjQg683buL^e6asE6rPgWFAb$#(gAU tJpz~rHhF002ovPDHLkV1i~00;vE1 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@3x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..54887ef6d53a344aa60283a8667f9395253385da GIT binary patch literal 3320 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 CSzkr~ literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@1x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..67aa5008d3aecaae40b59bb493890453d42a498e GIT binary patch literal 1429 zcmV;G1#0?3$g6#njeZ>BTTX*=Dhbit-ll}e@76!{_0L{9 zLrgT0#L$?4#016Q(gspXkVR;%lu}A9&}F(zJJVS@%k`Z5=CxDWVW|dh`tshqckfxg z?>pz-8j=R?@G$T{3~dQ(WM%E%Nh5Be}R8A2?c5N?+pC52h2D9M$s3>!}o%#sk| z-#b0rei1*k_n`Oc1i~{hBobzlY}?RvS>SPsN2*HESbslO6y@;8Tk6G@9gAvX~&#=Cou zsTpiMkwo1;9l`2*mZAQka+ELkDEP*w!Z>qb5UpqWG3E>6#m8&#@)Nac{@I>kNkND* z;<%#N!^tmjJj>}v``U4+ty@9Lnebb_H#I(t#*M2M<)-J#IC|-7ShrIBo(x2={q2MB z`NPs~*F|M%9zNT-RiTlpZk6fqSU|R%?h`J8iyiUD@Jtl1zwjtF*Hx$m%&oPEqvYRg zlrLVx=nRhemC8L?4iTq!eb;=%uT)MKG>5j10pXvXk<5io69U1Aik=-R{>T}tm>2WK zb5d1mK{qrWKqMMhK}Bg@fybrhVpjDjoObqklON5DGVBJPt~Vjogji5~%=aa#U6;d# z+$<-Y8KyM66G3o>Y>MaPW;s%_l!`K?8U8skK23@>LpE} zqjy9#5xY%O4(;^Z(d)&YZ%<-vRSA~mx{#agB-=LT-z*UeL%vycm~QkBO~OySJBS8B z>z#%TE(IxIH8?{T@cO3F{BtMv{nV)t;)e5n(_=6wVo5M5wehe~ml-BOaNRO&sWoQZ zH`Ls%_?rlX)Fu!J&4AfS?WerXPPV8;a-U}8q}LY|WM49;f_4l1)-j-HW>wNh9Q~so zPp-dDWo;={OBQxLJ4VY zRWU)(AtX$ATn+QW)~%o6n)< zu6%deGm}Vn?qx;pJ$x2jmq!sLVQ4~=lprbG3?Lqtl0%@TF1M^(DYk8?=In3joFr~` z*zTgu;6&F|B`V%8%?&|EaX}W=R2G2`W;yPR`R(#1C&L>$O?Sq*t`&>_^st@IVKPjy j6o*Uxw?Zt*)!g_8n<=3XUY##500000NkvXXu0mjfY&o>& literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a066ffb611edfe4a64dd8d3ce9b83a1e14ec6c85 GIT binary patch literal 3151 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@2x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a066ffb611edfe4a64dd8d3ce9b83a1e14ec6c85 GIT binary patch literal 3151 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@3x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb1e83ca3ca71d331888109a895a0b864294153 GIT binary patch literal 4671 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 B<@f*q literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@1x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2ba1e934584e20305e49f4d9730f37c28a2855 GIT binary patch literal 2115 zcmV-J2)y@+P)}d}s6+!nj3GwChkW>fkq;j~7)^-bg9yTF)v-jHT zTto6fPw`>UQ+_=403HAJ0c1pytdI}+{mCFm`ys%`L5Ye#^B;V1x7hRaF4ax$s3Up`G5UPRMImr!B8 z=aGSm?o{#l8~14I?sHUext4qk%HeR3%jqPilYx`4K!hVv3h^fzmDIc~+*2oD5FlpEM`b51aD}^^H>iZR-e;Hz!lR zwP37RJZE%|*z5vO4{*21M<0KEfGTe`sHMZ0k!bgm9}vJaSOx1d#+A~i@60AohM|J% zF2*i72yk~AT50u$-BjDyMg@5uH3>=kJv@1m8E{K976krAqET`g4mGCB=};+Q{w7Vf zdjL?jwg<$TO?#QaHpLPL)*+ zbcQP&@{`3&+3pW3U;wC>^?qvyg*m`pxgLw%ZZXLB$=}Pbio<8B`QZd`%t#;@A%mA_ zJWdj>6-HdKve@DiW9UQcT_?NjFnj0*_h<>XPt zA{9`pNKmmWzSzn6=OZ_3nywu%7YK#bfNNLIq2Z;4>Uy$*5wT!!)NzXRW2V6_@)DrF z-Fb?>;}7yW!1Lj^mbL)xUcZdId@b2>TMQofyNZRlS#mcJNN!yWh~C3pV%@5FG^nT- zg~BEqPDk>HRbKM92ItVa19rLi5Iip78!Liym*Gs^i#1dGD{gS~%&4tg5lu%RM5{QD zG&nPFk`D%^FdRNO*KF8X)dhrkF+5f#xGqZj}Y z&Yv>an#h@gI$fb>uhpw6Eh^0AoXVtpo?HhNU{le|3V`%b!SDm&a721@J;G(g1Tv#$Y$_qy#Jc(fmGNQ|7O#_2^xzm{m$jpZu_bQ1&w?JFW=fW!FkdUUhwovR+=6C;-8E+r1XLb+?&L zR^Cy|kAS7^ISBiMRzI7OdNFiBL9Bp892p8=B%xbqG)Sq=n^Q0t`>wy=rh+mJE2(sF zx(v2qW&rj!s8a?^pQx;%qi3rrlh2C^a#S%68Q`UngL>1%vLX{8Dk*VRor9rpgi_^) z{rXL23VBA#w07PpDYeN!AZ`TVHo@QFRKrRfJbhE?V!HO?_)>aqL@{ffkLq~2QFsWhhVu~p87ztvECQHaqPRIo zc0U3wR{rj@PJ2lg%#nW%*`%HsFMU=d|Kb@Tuww00wa33IbD==DTsXhx!mF;n>XVGV|(dr0<`I<{H8BG8uM7*5-^4a3pCMvb< zH{z3AvRfWb)pgBs%bs(hcYc;?Thi8_QROHk=p4jZn+xcs+vVWSk)eP^qw%&)cPtk_ z&n7`>CdQ$(jWprij2>v!8&ky6xudDExjoi1<2N}v1z^wc$^#!$p3ETZyun_f8==df z;BbDQ`|s?D&se0S+m@t#v+(o&3(BSk+4ARj+?}TMVS8esH(8`wR$qS0@cxo%G+|hO z_5U2sXB3Z?rXB&*d2yw>iN4uUK@}HkWrQ7%hgmZWM_PA-g7I@M!T`*D{#kmLix0w^ z$_e%O-HbhXk6)-E-u2O0-kCKucSv|SVK>3j%zxw|s(bRtV!3d7nHV;(pvze1l%iX2 z7rOQG$Q~&i^TnHubnSK%HE@nX7cl@fR?sy7DjQg683buL^e6asE6rPgWFAb$#(gAU tJpz~rHhF002ovPDHLkV1i~00;vE1 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..99701d7d30f015a929a277e27ff85f9555f23dd9 GIT binary patch literal 4390 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@2x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..99701d7d30f015a929a277e27ff85f9555f23dd9 GIT binary patch literal 4390 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@3x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7750e70d30c51898f8b0b3ee2c06544d080cd931 GIT binary patch literal 6476 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

hH{@=GW|OphmyG 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

-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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-60x60@2x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7750e70d30c51898f8b0b3ee2c06544d080cd931 GIT binary patch literal 6476 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 T%q;%fUIR#p$%|GC8wUM9@2E~q literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-76x76@1x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b31d06bb07ab422e4c4f2b8bb8ff5415f54e16 GIT binary patch literal 4099 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 B^SJ;3 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-76x76@2x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..27d00cfdae31dd844b042250ddbc4322383d779c GIT binary patch literal 8254 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/app/nextgraph/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..35ae0692f043f7f20d6129602b10d32b1d437888 GIT binary patch literal 9093 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 literal 0 HcmV?d00001 diff --git a/app/nextgraph/src-tauri/src/lib.rs b/app/nextgraph/src-tauri/src/lib.rs new file mode 100644 index 0000000..4a277ef --- /dev/null +++ b/app/nextgraph/src-tauri/src/lib.rs @@ -0,0 +1,14 @@ +// Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ +#[tauri::command] +fn greet(name: &str) -> String { + format!("Hello, {}! You've been greeted from Rust!", name) +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .plugin(tauri_plugin_opener::init()) + .invoke_handler(tauri::generate_handler![greet]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/app/nextgraph/src-tauri/src/main.rs b/app/nextgraph/src-tauri/src/main.rs new file mode 100644 index 0000000..6878745 --- /dev/null +++ b/app/nextgraph/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + nextgraph_lib::run() +} diff --git a/app/nextgraph/src-tauri/tauri.conf.json b/app/nextgraph/src-tauri/tauri.conf.json new file mode 100644 index 0000000..1ca0d9b --- /dev/null +++ b/app/nextgraph/src-tauri/tauri.conf.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "NextGraph", + "version": "0.1.0", + "identifier": "org.nextgraph.app", + "build": { + "beforeDevCommand": "pnpm dev", + "devUrl": "http://localhost:5173", + "beforeBuildCommand": "pnpm build", + "frontendDist": "../dist" + }, + "app": { + "withGlobalTauri": true, + "windows": [ + { + "title": "NextGraph", + "width": 800, + "height": 600 + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + } +} diff --git a/app/nextgraph/src/assets/tauri.svg b/app/nextgraph/src/assets/tauri.svg new file mode 100644 index 0000000..31b62c9 --- /dev/null +++ b/app/nextgraph/src/assets/tauri.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/nextgraph/src/assets/typescript.svg b/app/nextgraph/src/assets/typescript.svg new file mode 100644 index 0000000..30a5edd --- /dev/null +++ b/app/nextgraph/src/assets/typescript.svg @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/app/nextgraph/src/assets/vite.svg b/app/nextgraph/src/assets/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/app/nextgraph/src/assets/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/nextgraph/src/main.ts b/app/nextgraph/src/main.ts new file mode 100644 index 0000000..4783341 --- /dev/null +++ b/app/nextgraph/src/main.ts @@ -0,0 +1,22 @@ +import { invoke } from "@tauri-apps/api/core"; + +let greetInputEl: HTMLInputElement | null; +let greetMsgEl: HTMLElement | null; + +async function greet() { + if (greetMsgEl && greetInputEl) { + // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ + greetMsgEl.textContent = await invoke("greet", { + name: greetInputEl.value, + }); + } +} + +window.addEventListener("DOMContentLoaded", () => { + greetInputEl = document.querySelector("#greet-input"); + greetMsgEl = document.querySelector("#greet-msg"); + document.querySelector("#greet-form")?.addEventListener("submit", (e) => { + e.preventDefault(); + greet(); + }); +}); diff --git a/app/nextgraph/src/styles.css b/app/nextgraph/src/styles.css new file mode 100644 index 0000000..7011746 --- /dev/null +++ b/app/nextgraph/src/styles.css @@ -0,0 +1,116 @@ +.logo.vite:hover { + filter: drop-shadow(0 0 2em #747bff); +} + +.logo.typescript:hover { + filter: drop-shadow(0 0 2em #2d79c7); +} +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color: #0f0f0f; + background-color: #f6f6f6; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +.container { + margin: 0; + padding-top: 10vh; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: 0.75s; +} + +.logo.tauri:hover { + filter: drop-shadow(0 0 2em #24c8db); +} + +.row { + display: flex; + justify-content: center; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} + +a:hover { + color: #535bf2; +} + +h1 { + text-align: center; +} + +input, +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + color: #0f0f0f; + background-color: #ffffff; + transition: border-color 0.25s; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); +} + +button { + cursor: pointer; +} + +button:hover { + border-color: #396cd8; +} +button:active { + border-color: #396cd8; + background-color: #e8e8e8; +} + +input, +button { + outline: none; +} + +#greet-input { + margin-right: 5px; +} + +@media (prefers-color-scheme: dark) { + :root { + color: #f6f6f6; + background-color: #2f2f2f; + } + + a:hover { + color: #24c8db; + } + + input, + button { + color: #ffffff; + background-color: #0f0f0f98; + } + button:active { + background-color: #0f0f0f69; + } +} diff --git a/app/nextgraph/tsconfig.json b/app/nextgraph/tsconfig.json new file mode 100644 index 0000000..75abdef --- /dev/null +++ b/app/nextgraph/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/app/nextgraph/vite.config.ts b/app/nextgraph/vite.config.ts new file mode 100644 index 0000000..69d6dd4 --- /dev/null +++ b/app/nextgraph/vite.config.ts @@ -0,0 +1,43 @@ +import { defineConfig } from "vite"; + +// @ts-expect-error process is a nodejs global +const host = process.env.TAURI_DEV_HOST; + +// https://vite.dev/config/ +export default defineConfig(async () => ({ + + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` + // + // 1. prevent Vite from obscuring rust errors + clearScreen: false, + // 2. tauri expects a fixed port, fail if that port is not available + server: { + port: 5173, + strictPort: true, + host: host || false, + hmr: host + ? { + protocol: "ws", + host, + port: 1421, + } + : undefined, + watch: { + // 3. tell Vite to ignore watching `src-tauri` + ignored: ["**/src-tauri/**"], + }, + }, + // Env variables starting with the item of `envPrefix` will be exposed in tauri's source code through `import.meta.env`. + envPrefix: ['VITE_', 'TAURI_ENV_*'], + build: { + // Tauri uses Chromium on Windows and WebKit on macOS and Linux + target: + process.env.TAURI_ENV_PLATFORM == 'windows' + ? 'chrome105' + : 'safari13', + // don't minify for debug builds + minify: !process.env.TAURI_ENV_DEBUG ? 'esbuild' : false, + // produce sourcemaps for debug builds + sourcemap: !!process.env.TAURI_ENV_DEBUG, + }, +})); diff --git a/app/ui-common/.gitignore b/app/ui-common/.gitignore new file mode 100644 index 0000000..2007f51 --- /dev/null +++ b/app/ui-common/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +index.html + +node_modules +dist +dist-web +dist-file +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/app/ui-common/.vscode/extensions.json b/app/ui-common/.vscode/extensions.json new file mode 100644 index 0000000..81db86a --- /dev/null +++ b/app/ui-common/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "svelte.svelte-vscode", + "rust-lang.rust-analyzer" + ] +} diff --git a/app/ui-common/README.md b/app/ui-common/README.md new file mode 100644 index 0000000..8f20ebc --- /dev/null +++ b/app/ui-common/README.md @@ -0,0 +1,2 @@ +# NextGraph common Svelte components + diff --git a/app/ui-common/package.json b/app/ui-common/package.json new file mode 100644 index 0000000..94d9e9a --- /dev/null +++ b/app/ui-common/package.json @@ -0,0 +1,68 @@ +{ + "name": "@ng-org/ui-common", + "private": true, + "version": "0.1.2", + "type": "module", + "scripts": { + "dev": "vite", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.json" + }, + "main": "src/main.ts", + "exports": { + ".": "./src/main.ts", + "./store": "./src/store.ts", + "./api": "./src/api.ts", + "./routes": "./src/routes/index.ts", + "./lib": "./src/lib/index.ts", + "./lang": "./src/lang.ts", + "./components": "./src/lib/component.ts" + }, + "dependencies": { + "@sindresorhus/is": "4.6.0", + "@tailwindcss/typography": "^0.5.13", + "async-proxy": "^0.4.1", + "char-regex": "1.0.2", + "classnames": "^2.3.2", + "debug": "^4.3.6", + "emojilib": "2.4.0", + "extend": "3.0.2", + "flowbite": "^1.6.5", + "flowbite-svelte": "^0.43.3", + "html5-qrcode": "^2.3.8", + "immutable-json-patch": "^6.0.1", + "lodash.debounce": "4.0.8", + "skin-tone": "2.0.0", + "style-mod": "^4.1.2", + "svelte-i18n": "^4.0.0", + "svelte-inview": "^4.0.2", + "svelte-spa-router": "^3.3.0", + "vite-plugin-top-level-await": "1.3.1", + "xml-beautifier": "^0.5.0" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "2.0.0", + "@swc/core": "~1.6.0", + "@tsconfig/svelte": "^3.0.0", + "@types/node": "^18.7.10", + "autoprefixer": "^10.4.14", + "dayjs": "^1.11.10", + "internal-ip": "^7.0.0", + "postcss": "^8.4.23", + "postcss-load-config": "^4.0.1", + "prettier": "^3.3.2", + "prettier-plugin-svelte": "^3.2.5", + "shx": "^0.3.4", + "svelte": "^3.54.0", + "svelte-check": "^3.0.0", + "svelte-heros-v2": "^0.10.12", + "svelte-preprocess": "^5.0.3", + "svelte-time": "^0.8.0", + "tailwindcss": "^3.3.1", + "tslib": "^2.4.1", + "typescript": "^4.9.5", + "vite": "4.2.1", + "vite-plugin-svelte-svg": "2.2.1", + "vite-plugin-wasm": "3.2.2" + } +} diff --git a/app/ui-common/postcss.config.cjs b/app/ui-common/postcss.config.cjs new file mode 100644 index 0000000..e48cff5 --- /dev/null +++ b/app/ui-common/postcss.config.cjs @@ -0,0 +1,13 @@ +const tailwindcss = require("tailwindcss"); +const autoprefixer = require("autoprefixer"); + +const config = { + plugins: [ + //Some plugins, like tailwindcss/nesting, need to run before Tailwind, + tailwindcss(), + //But others, like autoprefixer, need to run after, + autoprefixer, + ], +}; + +module.exports = config; diff --git a/app/ui-common/src/App.svelte b/app/ui-common/src/App.svelte new file mode 100644 index 0000000..5efea6a --- /dev/null +++ b/app/ui-common/src/App.svelte @@ -0,0 +1,310 @@ + + + + + + +{#if $isLoading} +

Loading translations...

+{:else} + +{/if} diff --git a/app/ui-common/src/api.ts b/app/ui-common/src/api.ts new file mode 100644 index 0000000..28fa001 --- /dev/null +++ b/app/ui-common/src/api.ts @@ -0,0 +1,44 @@ +// Copyright (c) 2022-2025 Niko Bonnieure, Par le Peuple, NextGraph.org developers +// All rights reserved. +// Licensed under the Apache License, Version 2.0 +// +// or the MIT license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. +import {createAsyncProxy} from "async-proxy"; + +let proxy = null; + +let api = createAsyncProxy({},{ + async apply(target, path, caller, args) { + if (proxy) { + //console.log("calling ",path, args); + return Reflect.apply(proxy[path], caller, args) + } + else + throw new Error("You must call init_api() before using the API. load an API from @ng-org/app_api_tauri or @ng-org/app_api_web"); + } +}); + +export default api; + +export const NG_EU_BSP = "https://nextgraph.eu"; +export const NG_EU_BSP_REGISTER = import.meta.env.PROD +? "https://account.nextgraph.eu/#/create" +: "http://account-dev.nextgraph.eu:5173/#/create"; + +export const NG_NET_BSP = "https://nextgraph.net"; +export const NG_NET_BSP_REGISTER = import.meta.env.PROD +? "https://account.nextgraph.net/#/create" +: "http://account-dev.nextgraph.net:5173/#/create"; + +export const APP_ACCOUNT_REGISTERED_SUFFIX = "/#/user/registered"; +export const APP_WALLET_CREATE_SUFFIX = "/#/wallet/create"; + +export const LINK_NG_BOX = "https://nextgraph.org/ng-box/"; +export const LINK_SELF_HOST = "https://nextgraph.org/self-host/"; + +export const init_api = function (a) { + proxy = a; +} diff --git a/app/ui-common/src/app.postcss b/app/ui-common/src/app.postcss new file mode 100644 index 0000000..1a7b7cf --- /dev/null +++ b/app/ui-common/src/app.postcss @@ -0,0 +1,4 @@ +/* Write your global styles here, in PostCSS syntax */ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/app/ui-common/src/assets/EU.svg b/app/ui-common/src/assets/EU.svg new file mode 100755 index 0000000..a9a71aa --- /dev/null +++ b/app/ui-common/src/assets/EU.svg @@ -0,0 +1,4 @@ +European flag + + + diff --git a/app/ui-common/src/assets/nextgraph-nofill.svg b/app/ui-common/src/assets/nextgraph-nofill.svg new file mode 100644 index 0000000..2cf436e --- /dev/null +++ b/app/ui-common/src/assets/nextgraph-nofill.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/app/ui-common/src/assets/nextgraph.svg b/app/ui-common/src/assets/nextgraph.svg new file mode 100644 index 0000000..585d488 --- /dev/null +++ b/app/ui-common/src/assets/nextgraph.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f308.svg b/app/ui-common/src/assets/pazzle/emoji_u1f308.svg new file mode 100644 index 0000000..b5ee709 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f308.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f30c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f30c.svg new file mode 100644 index 0000000..d81874e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f30c.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f319.svg b/app/ui-common/src/assets/pazzle/emoji_u1f319.svg new file mode 100644 index 0000000..175db6c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f319.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f321.svg b/app/ui-common/src/assets/pazzle/emoji_u1f321.svg new file mode 100644 index 0000000..d220f19 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f321.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f327.svg b/app/ui-common/src/assets/pazzle/emoji_u1f327.svg new file mode 100644 index 0000000..5de20d7 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f327.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f332.svg b/app/ui-common/src/assets/pazzle/emoji_u1f332.svg new file mode 100644 index 0000000..b0beffe --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f332.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f334.svg b/app/ui-common/src/assets/pazzle/emoji_u1f334.svg new file mode 100644 index 0000000..d1f81ed --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f334.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f335.svg b/app/ui-common/src/assets/pazzle/emoji_u1f335.svg new file mode 100644 index 0000000..c16e7a2 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f335.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f336.svg b/app/ui-common/src/assets/pazzle/emoji_u1f336.svg new file mode 100644 index 0000000..3309c71 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f336.svg @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f339.svg b/app/ui-common/src/assets/pazzle/emoji_u1f339.svg new file mode 100644 index 0000000..9944e20 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f339.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f33b.svg b/app/ui-common/src/assets/pazzle/emoji_u1f33b.svg new file mode 100644 index 0000000..c996064 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f33b.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f33d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f33d.svg new file mode 100644 index 0000000..59637f3 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f33d.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f340.svg b/app/ui-common/src/assets/pazzle/emoji_u1f340.svg new file mode 100644 index 0000000..8ac5cc6 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f340.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f342.svg b/app/ui-common/src/assets/pazzle/emoji_u1f342.svg new file mode 100644 index 0000000..bb62029 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f342.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f344.svg b/app/ui-common/src/assets/pazzle/emoji_u1f344.svg new file mode 100644 index 0000000..bda8301 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f344.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f346.svg b/app/ui-common/src/assets/pazzle/emoji_u1f346.svg new file mode 100644 index 0000000..f688a3a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f346.svg @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f347.svg b/app/ui-common/src/assets/pazzle/emoji_u1f347.svg new file mode 100644 index 0000000..ae77baa --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f347.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f349.svg b/app/ui-common/src/assets/pazzle/emoji_u1f349.svg new file mode 100644 index 0000000..cccec56 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f349.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f34b.svg b/app/ui-common/src/assets/pazzle/emoji_u1f34b.svg new file mode 100644 index 0000000..2d946d0 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f34b.svg @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f34c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f34c.svg new file mode 100644 index 0000000..2a91024 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f34c.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f34d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f34d.svg new file mode 100644 index 0000000..444033d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f34d.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f34e.svg b/app/ui-common/src/assets/pazzle/emoji_u1f34e.svg new file mode 100644 index 0000000..6a25a22 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f34e.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f352.svg b/app/ui-common/src/assets/pazzle/emoji_u1f352.svg new file mode 100644 index 0000000..38f0a5f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f352.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f353.svg b/app/ui-common/src/assets/pazzle/emoji_u1f353.svg new file mode 100644 index 0000000..f22928e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f353.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f355.svg b/app/ui-common/src/assets/pazzle/emoji_u1f355.svg new file mode 100644 index 0000000..f877c6a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f355.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f366.svg b/app/ui-common/src/assets/pazzle/emoji_u1f366.svg new file mode 100644 index 0000000..25f6bd3 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f366.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f36a.svg b/app/ui-common/src/assets/pazzle/emoji_u1f36a.svg new file mode 100644 index 0000000..835417a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f36a.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f36b.svg b/app/ui-common/src/assets/pazzle/emoji_u1f36b.svg new file mode 100644 index 0000000..330caf0 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f36b.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f36c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f36c.svg new file mode 100644 index 0000000..6d3ec22 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f36c.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f370.svg b/app/ui-common/src/assets/pazzle/emoji_u1f370.svg new file mode 100644 index 0000000..489c821 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f370.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f373.svg b/app/ui-common/src/assets/pazzle/emoji_u1f373.svg new file mode 100644 index 0000000..40a9afb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f373.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f377.svg b/app/ui-common/src/assets/pazzle/emoji_u1f377.svg new file mode 100644 index 0000000..235a524 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f377.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f37e.svg b/app/ui-common/src/assets/pazzle/emoji_u1f37e.svg new file mode 100644 index 0000000..f732526 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f37e.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f381.svg b/app/ui-common/src/assets/pazzle/emoji_u1f381.svg new file mode 100644 index 0000000..73a6e7b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f381.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f388.svg b/app/ui-common/src/assets/pazzle/emoji_u1f388.svg new file mode 100644 index 0000000..39d20d0 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f388.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3a8.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3a8.svg new file mode 100644 index 0000000..fe5bdca --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3a8.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3aa.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3aa.svg new file mode 100644 index 0000000..8b2ca71 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3aa.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3af.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3af.svg new file mode 100644 index 0000000..fc7b9b2 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3af.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3b2.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3b2.svg new file mode 100644 index 0000000..52f6bdb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3b2.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3b5.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3b5.svg new file mode 100644 index 0000000..4977a8f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3b5.svg @@ -0,0 +1,9 @@ + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3b7.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3b7.svg new file mode 100644 index 0000000..f384d47 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3b7.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3b8.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3b8.svg new file mode 100644 index 0000000..4fbd30e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3b8.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3be.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3be.svg new file mode 100644 index 0000000..decae68 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3be.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3c0.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3c0.svg new file mode 100644 index 0000000..f22cb72 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3c0.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3c4.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3c4.svg new file mode 100644 index 0000000..c656dc7 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3c4.svg @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3c7.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3c7.svg new file mode 100644 index 0000000..2bc7a47 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3c7.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3ca.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3ca.svg new file mode 100644 index 0000000..3c3fcb3 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3ca.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3cb.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3cb.svg new file mode 100644 index 0000000..96cbb65 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3cb.svg @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3cd.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3cd.svg new file mode 100644 index 0000000..9187d65 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3cd.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3d3.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3d3.svg new file mode 100644 index 0000000..8d0d537 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3d3.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3d4.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3d4.svg new file mode 100644 index 0000000..a1ca56a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3d4.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3d5.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3d5.svg new file mode 100644 index 0000000..541b3a7 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3d5.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3d6.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3d6.svg new file mode 100644 index 0000000..9bf0b09 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3d6.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3db.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3db.svg new file mode 100644 index 0000000..1f7f8ee --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3db.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f3e1.svg b/app/ui-common/src/assets/pazzle/emoji_u1f3e1.svg new file mode 100644 index 0000000..d638585 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f3e1.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f406.svg b/app/ui-common/src/assets/pazzle/emoji_u1f406.svg new file mode 100644 index 0000000..2d18170 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f406.svg @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f407.svg b/app/ui-common/src/assets/pazzle/emoji_u1f407.svg new file mode 100644 index 0000000..aa27feb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f407.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f40c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f40c.svg new file mode 100644 index 0000000..d8910bd --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f40c.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f40d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f40d.svg new file mode 100644 index 0000000..06dd404 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f40d.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f410.svg b/app/ui-common/src/assets/pazzle/emoji_u1f410.svg new file mode 100644 index 0000000..bbf0ca1 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f410.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f411.svg b/app/ui-common/src/assets/pazzle/emoji_u1f411.svg new file mode 100644 index 0000000..3072eec --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f411.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f413.svg b/app/ui-common/src/assets/pazzle/emoji_u1f413.svg new file mode 100644 index 0000000..4999124 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f413.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f416.svg b/app/ui-common/src/assets/pazzle/emoji_u1f416.svg new file mode 100644 index 0000000..806d988 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f416.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f418.svg b/app/ui-common/src/assets/pazzle/emoji_u1f418.svg new file mode 100644 index 0000000..a839332 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f418.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f419.svg b/app/ui-common/src/assets/pazzle/emoji_u1f419.svg new file mode 100644 index 0000000..2955602 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f419.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f41a.svg b/app/ui-common/src/assets/pazzle/emoji_u1f41a.svg new file mode 100644 index 0000000..d06a960 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f41a.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f41c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f41c.svg new file mode 100644 index 0000000..236e068 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f41c.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f41d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f41d.svg new file mode 100644 index 0000000..7411501 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f41d.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f41e.svg b/app/ui-common/src/assets/pazzle/emoji_u1f41e.svg new file mode 100644 index 0000000..78ae415 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f41e.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f41f.svg b/app/ui-common/src/assets/pazzle/emoji_u1f41f.svg new file mode 100644 index 0000000..52d3f31 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f41f.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f422.svg b/app/ui-common/src/assets/pazzle/emoji_u1f422.svg new file mode 100644 index 0000000..787db2f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f422.svg @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f423.svg b/app/ui-common/src/assets/pazzle/emoji_u1f423.svg new file mode 100644 index 0000000..4b4b8bf --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f423.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f427.svg b/app/ui-common/src/assets/pazzle/emoji_u1f427.svg new file mode 100644 index 0000000..7224a0d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f427.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f42a.svg b/app/ui-common/src/assets/pazzle/emoji_u1f42a.svg new file mode 100644 index 0000000..91a8c3f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f42a.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f42c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f42c.svg new file mode 100644 index 0000000..db95f11 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f42c.svg @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f433.svg b/app/ui-common/src/assets/pazzle/emoji_u1f433.svg new file mode 100644 index 0000000..52ad3f5 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f433.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f434.svg b/app/ui-common/src/assets/pazzle/emoji_u1f434.svg new file mode 100644 index 0000000..6cc65dd --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f434.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f436.svg b/app/ui-common/src/assets/pazzle/emoji_u1f436.svg new file mode 100755 index 0000000..51b2e46 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f436.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg b/app/ui-common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg new file mode 100644 index 0000000..672964c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f441.svg b/app/ui-common/src/assets/pazzle/emoji_u1f441.svg new file mode 100644 index 0000000..4086d5e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f441.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f442.svg b/app/ui-common/src/assets/pazzle/emoji_u1f442.svg new file mode 100644 index 0000000..4875a19 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f442.svg @@ -0,0 +1,24 @@ + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f443.svg b/app/ui-common/src/assets/pazzle/emoji_u1f443.svg new file mode 100644 index 0000000..c976808 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f443.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f444.svg b/app/ui-common/src/assets/pazzle/emoji_u1f444.svg new file mode 100644 index 0000000..3f7b842 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f444.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f445.svg b/app/ui-common/src/assets/pazzle/emoji_u1f445.svg new file mode 100644 index 0000000..84cdec4 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f445.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f44d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f44d.svg new file mode 100644 index 0000000..1ab4a46 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f44d.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f450.svg b/app/ui-common/src/assets/pazzle/emoji_u1f450.svg new file mode 100644 index 0000000..455c73d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f450.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f455.svg b/app/ui-common/src/assets/pazzle/emoji_u1f455.svg new file mode 100644 index 0000000..3900fdb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f455.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f456.svg b/app/ui-common/src/assets/pazzle/emoji_u1f456.svg new file mode 100644 index 0000000..1d870ca --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f456.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f457.svg b/app/ui-common/src/assets/pazzle/emoji_u1f457.svg new file mode 100644 index 0000000..0713080 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f457.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f45f.svg b/app/ui-common/src/assets/pazzle/emoji_u1f45f.svg new file mode 100755 index 0000000..8a4aa85 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f45f.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f477.svg b/app/ui-common/src/assets/pazzle/emoji_u1f477.svg new file mode 100755 index 0000000..466693c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f477.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f478.svg b/app/ui-common/src/assets/pazzle/emoji_u1f478.svg new file mode 100755 index 0000000..c7ce99f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f478.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f47b.svg b/app/ui-common/src/assets/pazzle/emoji_u1f47b.svg new file mode 100644 index 0000000..02c3add --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f47b.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f48b.svg b/app/ui-common/src/assets/pazzle/emoji_u1f48b.svg new file mode 100644 index 0000000..37abc79 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f48b.svg @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f48c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f48c.svg new file mode 100644 index 0000000..b33f82d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f48c.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f490.svg b/app/ui-common/src/assets/pazzle/emoji_u1f490.svg new file mode 100644 index 0000000..87008df --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f490.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f495.svg b/app/ui-common/src/assets/pazzle/emoji_u1f495.svg new file mode 100644 index 0000000..275c579 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f495.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4a1.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4a1.svg new file mode 100644 index 0000000..44bd7b8 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4a1.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4a5.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4a5.svg new file mode 100644 index 0000000..2383877 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4a5.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4a6.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4a6.svg new file mode 100644 index 0000000..da032a8 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4a6.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4aa.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4aa.svg new file mode 100644 index 0000000..def6dcb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4aa.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4af.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4af.svg new file mode 100644 index 0000000..f4035af --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4af.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4cc.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4cc.svg new file mode 100644 index 0000000..6d9ecd4 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4cc.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4ce.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4ce.svg new file mode 100644 index 0000000..21f9f8c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4ce.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4da.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4da.svg new file mode 100644 index 0000000..b7532f4 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4da.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f4e6.svg b/app/ui-common/src/assets/pazzle/emoji_u1f4e6.svg new file mode 100644 index 0000000..945ba61 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f4e6.svg @@ -0,0 +1,714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f50d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f50d.svg new file mode 100644 index 0000000..3e2470b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f50d.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f511.svg b/app/ui-common/src/assets/pazzle/emoji_u1f511.svg new file mode 100644 index 0000000..c24fe44 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f511.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f513.svg b/app/ui-common/src/assets/pazzle/emoji_u1f513.svg new file mode 100644 index 0000000..7787e24 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f513.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f525.svg b/app/ui-common/src/assets/pazzle/emoji_u1f525.svg new file mode 100644 index 0000000..e94a652 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f525.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f590.svg b/app/ui-common/src/assets/pazzle/emoji_u1f590.svg new file mode 100644 index 0000000..573811a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f590.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f600.svg b/app/ui-common/src/assets/pazzle/emoji_u1f600.svg new file mode 100644 index 0000000..3cb84a6 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f600.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f602.svg b/app/ui-common/src/assets/pazzle/emoji_u1f602.svg new file mode 100644 index 0000000..d4134c8 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f602.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f607.svg b/app/ui-common/src/assets/pazzle/emoji_u1f607.svg new file mode 100644 index 0000000..62d2c67 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f607.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f60d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f60d.svg new file mode 100644 index 0000000..0f78589 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f60d.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f60e.svg b/app/ui-common/src/assets/pazzle/emoji_u1f60e.svg new file mode 100644 index 0000000..fcff42b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f60e.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f618.svg b/app/ui-common/src/assets/pazzle/emoji_u1f618.svg new file mode 100644 index 0000000..5762862 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f618.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f61d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f61d.svg new file mode 100644 index 0000000..3a043f1 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f61d.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f624.svg b/app/ui-common/src/assets/pazzle/emoji_u1f624.svg new file mode 100644 index 0000000..f0ca113 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f624.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f62d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f62d.svg new file mode 100644 index 0000000..3566792 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f62d.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f631.svg b/app/ui-common/src/assets/pazzle/emoji_u1f631.svg new file mode 100644 index 0000000..72d2224 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f631.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f634.svg b/app/ui-common/src/assets/pazzle/emoji_u1f634.svg new file mode 100644 index 0000000..2ede810 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f634.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f635.svg b/app/ui-common/src/assets/pazzle/emoji_u1f635.svg new file mode 100644 index 0000000..d015488 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f635.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f637.svg b/app/ui-common/src/assets/pazzle/emoji_u1f637.svg new file mode 100644 index 0000000..9c97533 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f637.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f638.svg b/app/ui-common/src/assets/pazzle/emoji_u1f638.svg new file mode 100644 index 0000000..ebb496c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f638.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f63f.svg b/app/ui-common/src/assets/pazzle/emoji_u1f63f.svg new file mode 100644 index 0000000..f1fbe1c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f63f.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f640.svg b/app/ui-common/src/assets/pazzle/emoji_u1f640.svg new file mode 100644 index 0000000..d25641f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f640.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f644.svg b/app/ui-common/src/assets/pazzle/emoji_u1f644.svg new file mode 100644 index 0000000..2f50cdd --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f644.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f648.svg b/app/ui-common/src/assets/pazzle/emoji_u1f648.svg new file mode 100644 index 0000000..f4f361f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f648.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f649.svg b/app/ui-common/src/assets/pazzle/emoji_u1f649.svg new file mode 100644 index 0000000..86358b7 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f649.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f64a.svg b/app/ui-common/src/assets/pazzle/emoji_u1f64a.svg new file mode 100644 index 0000000..edb2970 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f64a.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f64f.svg b/app/ui-common/src/assets/pazzle/emoji_u1f64f.svg new file mode 100644 index 0000000..b835fdc --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f64f.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f680.svg b/app/ui-common/src/assets/pazzle/emoji_u1f680.svg new file mode 100644 index 0000000..4a4f061 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f680.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f681.svg b/app/ui-common/src/assets/pazzle/emoji_u1f681.svg new file mode 100644 index 0000000..b6fb879 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f681.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f682.svg b/app/ui-common/src/assets/pazzle/emoji_u1f682.svg new file mode 100644 index 0000000..d65ca15 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f682.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f695.svg b/app/ui-common/src/assets/pazzle/emoji_u1f695.svg new file mode 100644 index 0000000..0f6848e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f695.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f6a3.svg b/app/ui-common/src/assets/pazzle/emoji_u1f6a3.svg new file mode 100644 index 0000000..291b7ba --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f6a3.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f6b4.svg b/app/ui-common/src/assets/pazzle/emoji_u1f6b4.svg new file mode 100644 index 0000000..8b3079e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f6b4.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f6c1.svg b/app/ui-common/src/assets/pazzle/emoji_u1f6c1.svg new file mode 100644 index 0000000..04ee852 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f6c1.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f6d2.svg b/app/ui-common/src/assets/pazzle/emoji_u1f6d2.svg new file mode 100644 index 0000000..2e53cf1 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f6d2.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f6f4.svg b/app/ui-common/src/assets/pazzle/emoji_u1f6f4.svg new file mode 100644 index 0000000..61a0974 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f6f4.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f6fc.svg b/app/ui-common/src/assets/pazzle/emoji_u1f6fc.svg new file mode 100644 index 0000000..42ffdfb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f6fc.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f910.svg b/app/ui-common/src/assets/pazzle/emoji_u1f910.svg new file mode 100644 index 0000000..3c93809 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f910.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f912.svg b/app/ui-common/src/assets/pazzle/emoji_u1f912.svg new file mode 100644 index 0000000..8bdab4d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f912.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f915.svg b/app/ui-common/src/assets/pazzle/emoji_u1f915.svg new file mode 100644 index 0000000..4ec522a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f915.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f917.svg b/app/ui-common/src/assets/pazzle/emoji_u1f917.svg new file mode 100644 index 0000000..c6d87f9 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f917.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f91d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f91d.svg new file mode 100644 index 0000000..bfcfbb2 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f91d.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f921.svg b/app/ui-common/src/assets/pazzle/emoji_u1f921.svg new file mode 100644 index 0000000..088c955 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f921.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f925.svg b/app/ui-common/src/assets/pazzle/emoji_u1f925.svg new file mode 100644 index 0000000..1e25e1f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f925.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f927.svg b/app/ui-common/src/assets/pazzle/emoji_u1f927.svg new file mode 100644 index 0000000..b0a0dc2 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f927.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f92d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f92d.svg new file mode 100644 index 0000000..7692782 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f92d.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f92e.svg b/app/ui-common/src/assets/pazzle/emoji_u1f92e.svg new file mode 100644 index 0000000..6e3707b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f92e.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f92f.svg b/app/ui-common/src/assets/pazzle/emoji_u1f92f.svg new file mode 100644 index 0000000..84afe47 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f92f.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f93a.svg b/app/ui-common/src/assets/pazzle/emoji_u1f93a.svg new file mode 100644 index 0000000..6a53cbe --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f93a.svg @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f93c.svg b/app/ui-common/src/assets/pazzle/emoji_u1f93c.svg new file mode 100644 index 0000000..6c1569b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f93c.svg @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f93f.svg b/app/ui-common/src/assets/pazzle/emoji_u1f93f.svg new file mode 100644 index 0000000..3912b8b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f93f.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f942.svg b/app/ui-common/src/assets/pazzle/emoji_u1f942.svg new file mode 100644 index 0000000..d896645 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f942.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f94b.svg b/app/ui-common/src/assets/pazzle/emoji_u1f94b.svg new file mode 100644 index 0000000..8154f8c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f94b.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f950.svg b/app/ui-common/src/assets/pazzle/emoji_u1f950.svg new file mode 100644 index 0000000..2899b99 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f950.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f951.svg b/app/ui-common/src/assets/pazzle/emoji_u1f951.svg new file mode 100644 index 0000000..3f71933 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f951.svg @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f955.svg b/app/ui-common/src/assets/pazzle/emoji_u1f955.svg new file mode 100644 index 0000000..91b9347 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f955.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f956.svg b/app/ui-common/src/assets/pazzle/emoji_u1f956.svg new file mode 100644 index 0000000..676cf5f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f956.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f95d.svg b/app/ui-common/src/assets/pazzle/emoji_u1f95d.svg new file mode 100644 index 0000000..1ce988a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f95d.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f968.svg b/app/ui-common/src/assets/pazzle/emoji_u1f968.svg new file mode 100644 index 0000000..dac4f3d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f968.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f970.svg b/app/ui-common/src/assets/pazzle/emoji_u1f970.svg new file mode 100644 index 0000000..8fc9388 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f970.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f971.svg b/app/ui-common/src/assets/pazzle/emoji_u1f971.svg new file mode 100644 index 0000000..16288d8 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f971.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f973.svg b/app/ui-common/src/assets/pazzle/emoji_u1f973.svg new file mode 100755 index 0000000..f7e3b6e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f973.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f975.svg b/app/ui-common/src/assets/pazzle/emoji_u1f975.svg new file mode 100644 index 0000000..0cc7a05 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f975.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f976.svg b/app/ui-common/src/assets/pazzle/emoji_u1f976.svg new file mode 100644 index 0000000..6c2bc82 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f976.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f981.svg b/app/ui-common/src/assets/pazzle/emoji_u1f981.svg new file mode 100644 index 0000000..16500cf --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f981.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f985.svg b/app/ui-common/src/assets/pazzle/emoji_u1f985.svg new file mode 100644 index 0000000..2161bcb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f985.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f986.svg b/app/ui-common/src/assets/pazzle/emoji_u1f986.svg new file mode 100644 index 0000000..797f0eb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f986.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f987.svg b/app/ui-common/src/assets/pazzle/emoji_u1f987.svg new file mode 100644 index 0000000..ff61e50 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f987.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f989.svg b/app/ui-common/src/assets/pazzle/emoji_u1f989.svg new file mode 100644 index 0000000..a2d02b5 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f989.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f98b.svg b/app/ui-common/src/assets/pazzle/emoji_u1f98b.svg new file mode 100644 index 0000000..bd87d87 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f98b.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f98e.svg b/app/ui-common/src/assets/pazzle/emoji_u1f98e.svg new file mode 100644 index 0000000..4c2ec4f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f98e.svg @@ -0,0 +1,1947 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f98f.svg b/app/ui-common/src/assets/pazzle/emoji_u1f98f.svg new file mode 100644 index 0000000..8a4de6e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f98f.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f992.svg b/app/ui-common/src/assets/pazzle/emoji_u1f992.svg new file mode 100644 index 0000000..72aaa25 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f992.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f993.svg b/app/ui-common/src/assets/pazzle/emoji_u1f993.svg new file mode 100644 index 0000000..c91924b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f993.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f994.svg b/app/ui-common/src/assets/pazzle/emoji_u1f994.svg new file mode 100644 index 0000000..5e6b765 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f994.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9a9.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9a9.svg new file mode 100644 index 0000000..20a122d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9a9.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9b4.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9b4.svg new file mode 100644 index 0000000..f55b71d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9b4.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9b5.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9b5.svg new file mode 100644 index 0000000..cdf45fd --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9b5.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9b6.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9b6.svg new file mode 100644 index 0000000..1b32114 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9b6.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9b7.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9b7.svg new file mode 100644 index 0000000..0738b56 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9b7.svg @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9c0.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9c0.svg new file mode 100644 index 0000000..774ec34 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9c0.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9d0.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9d0.svg new file mode 100644 index 0000000..648b28f --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9d0.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg new file mode 100755 index 0000000..de8b3cf --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9d9.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9d9.svg new file mode 100755 index 0000000..eb54944 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9d9.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9da.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9da.svg new file mode 100755 index 0000000..c83bc3c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9da.svg @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9dc.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9dc.svg new file mode 100755 index 0000000..697d99a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9dc.svg @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9e0.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9e0.svg new file mode 100644 index 0000000..d69b287 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9e0.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9e8.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9e8.svg new file mode 100644 index 0000000..f55a94a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9e8.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9e9.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9e9.svg new file mode 100644 index 0000000..5e8121a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9e9.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9ed.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9ed.svg new file mode 100644 index 0000000..4475dca --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9ed.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9f8.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9f8.svg new file mode 100644 index 0000000..24ab0ea --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9f8.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9f9.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9f9.svg new file mode 100644 index 0000000..fd7936a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9f9.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1f9fd.svg b/app/ui-common/src/assets/pazzle/emoji_u1f9fd.svg new file mode 100644 index 0000000..9f9049d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1f9fd.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1fa81.svg b/app/ui-common/src/assets/pazzle/emoji_u1fa81.svg new file mode 100644 index 0000000..2fb1c26 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1fa81.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1fa82.svg b/app/ui-common/src/assets/pazzle/emoji_u1fa82.svg new file mode 100644 index 0000000..f8a077a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1fa82.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1fa90.svg b/app/ui-common/src/assets/pazzle/emoji_u1fa90.svg new file mode 100644 index 0000000..4a5be78 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1fa90.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1fa91.svg b/app/ui-common/src/assets/pazzle/emoji_u1fa91.svg new file mode 100644 index 0000000..f384c37 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1fa91.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1fab4.svg b/app/ui-common/src/assets/pazzle/emoji_u1fab4.svg new file mode 100644 index 0000000..976a134 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1fab4.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u1fad0.svg b/app/ui-common/src/assets/pazzle/emoji_u1fad0.svg new file mode 100644 index 0000000..a5a4d4b --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u1fad0.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2600.svg b/app/ui-common/src/assets/pazzle/emoji_u2600.svg new file mode 100644 index 0000000..f5f2669 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2600.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2614.svg b/app/ui-common/src/assets/pazzle/emoji_u2614.svg new file mode 100644 index 0000000..3fd889a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2614.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2615.svg b/app/ui-common/src/assets/pazzle/emoji_u2615.svg new file mode 100644 index 0000000..f260144 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2615.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2639.svg b/app/ui-common/src/assets/pazzle/emoji_u2639.svg new file mode 100644 index 0000000..59291e8 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2639.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u265f.svg b/app/ui-common/src/assets/pazzle/emoji_u265f.svg new file mode 100644 index 0000000..e55720a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u265f.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2693.svg b/app/ui-common/src/assets/pazzle/emoji_u2693.svg new file mode 100644 index 0000000..e9c44db --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2693.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u26a1.svg b/app/ui-common/src/assets/pazzle/emoji_u26a1.svg new file mode 100644 index 0000000..e82079a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u26a1.svg @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u26bd.svg b/app/ui-common/src/assets/pazzle/emoji_u26bd.svg new file mode 100644 index 0000000..c2161e2 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u26bd.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u26c4.svg b/app/ui-common/src/assets/pazzle/emoji_u26c4.svg new file mode 100644 index 0000000..639a0fb --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u26c4.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u26f2.svg b/app/ui-common/src/assets/pazzle/emoji_u26f2.svg new file mode 100644 index 0000000..87c48e8 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u26f2.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u26f5.svg b/app/ui-common/src/assets/pazzle/emoji_u26f5.svg new file mode 100644 index 0000000..739ab19 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u26f5.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u26f7.svg b/app/ui-common/src/assets/pazzle/emoji_u26f7.svg new file mode 100644 index 0000000..286d85a --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u26f7.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2702.svg b/app/ui-common/src/assets/pazzle/emoji_u2702.svg new file mode 100644 index 0000000..c9a493c --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2702.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2708.svg b/app/ui-common/src/assets/pazzle/emoji_u2708.svg new file mode 100644 index 0000000..e942b8d --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2708.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u270a.svg b/app/ui-common/src/assets/pazzle/emoji_u270a.svg new file mode 100644 index 0000000..4d19e22 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u270a.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u270c.svg b/app/ui-common/src/assets/pazzle/emoji_u270c.svg new file mode 100644 index 0000000..6b3fdcc --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u270c.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u270d.svg b/app/ui-common/src/assets/pazzle/emoji_u270d.svg new file mode 100644 index 0000000..6319363 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u270d.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u270f.svg b/app/ui-common/src/assets/pazzle/emoji_u270f.svg new file mode 100644 index 0000000..7052c81 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u270f.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2744.svg b/app/ui-common/src/assets/pazzle/emoji_u2744.svg new file mode 100644 index 0000000..18fca4e --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2744.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2764.svg b/app/ui-common/src/assets/pazzle/emoji_u2764.svg new file mode 100644 index 0000000..8951fc9 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2764.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/ui-common/src/assets/pazzle/emoji_u2b50.svg b/app/ui-common/src/assets/pazzle/emoji_u2b50.svg new file mode 100644 index 0000000..15b2118 --- /dev/null +++ b/app/ui-common/src/assets/pazzle/emoji_u2b50.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/app/ui-common/src/base64url.js b/app/ui-common/src/base64url.js new file mode 100644 index 0000000..bf8a2b4 --- /dev/null +++ b/app/ui-common/src/base64url.js @@ -0,0 +1,59 @@ +/* + * Base64URL-ArrayBuffer + * https://github.com/herrjemand/Base64URL-ArrayBuffer + * + * Copyright (c) 2017 Yuriy Ackermann + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + * + */ +const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; + +// Use a lookup table to find the index. +var lookup = new Uint8Array(256); +for (var i = 0; i < chars.length; i++) { + lookup[chars.charCodeAt(i)] = i; +} + +export const encode = function(arraybuffer) { + var bytes = new Uint8Array(arraybuffer), + i, len = bytes.length, base64 = ""; + + for (i = 0; i < len; i+=3) { + base64 += chars[bytes[i] >> 2]; + base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; + base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; + base64 += chars[bytes[i + 2] & 63]; + } + + if ((len % 3) === 2) { + base64 = base64.substring(0, base64.length - 1); + } else if (len % 3 === 1) { + base64 = base64.substring(0, base64.length - 2); + } + + return base64; +}; + +export const decode = function(base64) { + var bufferLength = base64.length * 0.75, + len = base64.length, i, p = 0, + encoded1, encoded2, encoded3, encoded4; + + var arraybuffer = new ArrayBuffer(bufferLength), + bytes = new Uint8Array(arraybuffer); + + for (i = 0; i < len; i+=4) { + encoded1 = lookup[base64.charCodeAt(i)]; + encoded2 = lookup[base64.charCodeAt(i+1)]; + encoded3 = lookup[base64.charCodeAt(i+2)]; + encoded4 = lookup[base64.charCodeAt(i+3)]; + + bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); + bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); + bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); + } + + return arraybuffer; +}; + diff --git a/app/ui-common/src/classes.ts b/app/ui-common/src/classes.ts new file mode 100644 index 0000000..0d852b5 --- /dev/null +++ b/app/ui-common/src/classes.ts @@ -0,0 +1,962 @@ +// Copyright (c) 2022-2025 Niko Bonnieure, Par le Peuple, NextGraph.org developers +// All rights reserved. +// Licensed under the Apache License, Version 2.0 +// +// or the MIT license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. + +// "post:rich", "post:md", "post:text", "post:html", "post:asciidoc", "page", "code", "code:*", "app", "app:z", "class", "schema", "schema:owl|rdfs|shacl|shex", "service", "service:rust", "service:deno", "contract", "app:n:xxx.xx.xx:", "app:o:", +// "query:sparql", "query:graphql", "query:text", "query:web", +// "data:graph", "data:json", "data:array", "data:map", "data:xml", "data:table", "data:collection", "data:board", "data:grid", "data:geomap", +// "e:mail", "e:web", "e:http://[url of class in ontology]", "e:rdf" (read-only cache of RDF fetched from web2.0) +// "mc:text", "mc:link", "mc:card", "mc:pad", +// "diagram","chart", "doc:pdf", "doc:odf", "doc:latex", "doc:ps", "doc:music", "doc:maths", "doc:chemistry", "doc:braille", "doc:ancientscript", +// "media:image", "media:reel", "media:album", "media:video", "media:audio", "media:song", "media:subtitle", "media:overlay", +// "social:channel", "social:stream", "social:contact", "social:event", "social:calendar", "social:scheduler", "social:reaction", "social:chatroom", +// "prod:task", "prod:project", "prod:issue", "prod:form", "prod:filling", "prod:cad", "prod:slides", "prod:question", "prod:answer", "prod:poll", "prod:vote" +// "file", "file:iana:*", "file:gimp", "file:inkscape", "file:kdenlive", "file:blender", "file:openscad", "file:lyx", "file:scribus", "file:libreoffice", "file:audacity", "file:godot", "file:obsstudio", "file:ardor", "file:krita" + + +// application/vnd.api+json + +// application/activity+json + +// epub, dejavu, +// animation: snap, lottie, smil editor: https://github.com/HaikuTeam/animator/ + +export const has_toc = (class_name) => { + return class_name === "post:rich" || class_name === "post:md" || class_name === "post:html" || class_name === "post:asciidoc" || class_name === "app:z" || class_name === "class" + || class_name.startsWith("schema") || class_name === "doc:pdf" || class_name === "doc:odf" || class_name === "doc:latex" || class_name === "doc:ps" || class_name === "prod:project" || class_name === "prod:slides" +}; + +export const official_classes = { + "post:rich": { + "ng:crdt": "YXml", + "ng:n": "Post - Rich Text", // editor: y-ProseMirror, viewer: https://www.npmjs.com/package/prosemirror-to-html-js or https://prosemirror.net/docs/ref/version/0.4.0.html#toDOM https://prosemirror.net/docs/ref/version/0.4.0.html#toHTML + "ng:a": "A Post with Rich Text, including images, links, formatted text, and embeds of other content", + "ng:o": "n:g:z:post:rich", + "ng:w": "n:g:z:post_rich_editor", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Article"], + }, + "post:md": { + "ng:crdt": "YXml", + "ng:n": "Post - MarkDown", // editor y-MilkDown, viewer: https://github.com/wooorm/markdown-rs + "ng:a": "A Post with MarkDown, including images, links, formatted text, and embeds of other content", + "ng:o": "n:g:z:post:md", + "ng:w": "n:g:z:post_md_editor", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:text:markdown", "code:markdown","as:Article"], + }, + "post:text": { + "ng:crdt": "YText", + "ng:n": "Post - Plain Text", + "ng:a": "A Post with Plain Text", + "ng:o": "n:g:z:post:text", + "ng:w": "n:g:z:code_editor", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:text:plain", "code:plaintext","as:Article"], + }, + "post:html": { + "ng:crdt": "YXml", + "ng:n": "Post - TinyMCE", + "ng:x": { + "as":true, + }, + "ng:a": "A Post based on TinyMCE, including images, links, formatted text, and embeds of other content", + "ng:compat": ["as:Article"], + }, + "post:asciidoc": { // display with https://github.com/asciidoctor/asciidoctor.js/ + "ng:crdt": "YText", + "ng:n": "Post - AsciiDoc", + "ng:a": "A Post based on AsciiDoc format", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Article"], + }, + "page": { + "ng:crdt": "YXml", + "ng:n": "Page", // based on GrapeJS, VvvebJs, or Astro ? + "ng:a": "A Page and Site builder", + "ng:compat": [], + }, + "code": { + "ng:crdt": "YText", + "ng:n": "Source Code", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A Source Code file. many languages supported", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": ["code:*","file:iana:text:javascript","file:iana:text:css","file:iana:text:html","file:iana:text:markdown", "file:iana:application:xml", + "file:iana:application:yaml", "file:iana:text:xml", "file:iana:application:xhtml+xml"], + }, + "code:js": { + "ng:crdt": "YText", + "ng:n": "JavaScript", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A JavaScript Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": ["file:iana:text:javascript"], + "implemented": true + }, + "code:ts": { + "ng:crdt": "YText", + "ng:n": "TypeScript", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A TypeScript Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": ["file:iana:text:typescript"], + "implemented": true + }, + "code:rust": { + "ng:crdt": "YText", + "ng:n": "Rust", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A Rust Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": [], + "implemented": true + }, + "code:svelte": { + "ng:crdt": "YText", + "ng:n": "Svelte", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A Svelte Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": [], + "implemented": true + }, + "code:react": { + "ng:crdt": "YText", + "ng:n": "React", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A React Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": [], + "implemented": true + }, + "app": { + "ng:n": "Official App", + "ng:a": "App provided by NextGraph platform", + }, + "app:z": { + "ng:crdt": "Elmer", + "ng:n": "Application", // Editor: Monaco + "ng:a": "Create an Application based on NextGraph Framework", + "ng:o": "n:g:z:app_store", + "ng:w": "n:g:z:app_editor", + "ng:include": ["schema:*","service:*","code","file"], + "ng:compat": ["code:svelte"], + }, + "class": { + "ng:crdt": "Graph", + "ng:n": "Class", + "ng:a": "Define a custom Class for your data", + "ng:x": { + "rdfs":true, + }, + "ng:compat": ["rdfs:Class"], + }, + "schema": { // display with https://github.com/VisualDataWeb/WebVOWL + "ng:crdt": "Graph", + "ng:n": "Schema - RDFS/OWL", + "ng:a": "Define the Schema, Ontology or Vocabulary for your data and the relations between them, with RDFS and/or OWL", + "ng:o": "n:g:z:ontology_viewer", // default viewer + "ng:w": "n:g:z:ontology_editor", // default editor + "ng:x": { + "rdfs":true, + "owl":true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["rdfs:*","class","owl:Ontology"], + }, + "schema:shacl": { + "ng:crdt": "Graph", + "ng:n": "Schema - SHACL", + "ng:a": "Define the rules for your data with SHACL", + "ng:o": "n:g:z:ontology_viewer", // default viewer + "ng:w": "n:g:z:ontology_editor", // default editor + "ng:x": { + "sh":true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["sh:Shape", "file:iana:text:shaclc" ], + }, + "schema:shex": { + "ng:crdt": "Graph", + "ng:n": "Schema - SHEX", + "ng:a": "Define the rules for your data with SHEX", + "ng:o": "n:g:z:ontology_viewer", // default viewer + "ng:w": "n:g:z:ontology_editor", // default editor + "ng:x": { + "shex":true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["shex:*", "file:iana:text:shex", "code:shexc" ], + }, + "service": { + "ng:n": "Internal Service", + "ng:a": "Service provided by NextGraph framework", + "ng:o": "n:g:z:service_invoke", // default viewer + }, + "service:rust": { + "ng:crdt": "YText", + "ng:n": "Service - Rust", // edited with CodeMirror, displayed with highlight.js + "ng:a": "Service written in Rust and compiled to WASM", + "ng:o": "external_service_invoke", // default viewer + "ng:w": "n:g:z:service_editor", // default editor + "ng:compat": ["code:rust", "file:iana:application:wasm"], + }, + "service:deno": { + "ng:crdt": "YText", + "ng:n": "Service - Deno/JS", // edited with CodeMirror, displayed with highlight.js + "ng:a": "Service written in JS/TS for Deno or NodeJS", + "ng:o": "external_service_invoke", // default viewer + "ng:w": "n:g:z:service_editor", // default editor + "ng:compat": ["code:javascript", "code:typescript", "file:iana:text:javascript", "file:iana:application:node"], + }, + "contract": { + "ng:crdt": "YText", + "ng:n": "Smart Contract", // edited with CodeMirror, displayed with highlight.js + "ng:a": "Smart Contract with Rust or JS code", + "ng:compat": ["code:rust", "file:iana:application:wasm", "code:javascript", "code:typescript", "file:iana:text:javascript", "file:iana:application:node"], + }, + "query:sparql": { + "ng:crdt": "YText",// uses ng:default_graph and ng:named_graph predicates + "ng:n": "SPARQL Query", // edited with YASGUI or Sparnatural, displayed with highlight.js https://github.com/highlightjs/highlightjs-turtle/tree/master + "ng:a": "Saved SPARQL Query that can be invoked", + "ng:o": "n:g:z:sparql:invoke", + "ng:w": "n:g:z:sparql_query", + "ng:compat": ["code:sparql", "file:iana:application:sparql-query","file:iana:application:x-sparql-query"], + }, + "query:sparql_update": { + "ng:crdt": "YText",// uses ng:default_graph and ng:named_graph predicates + "ng:n": "SPARQL Update", // edited with YASGUI, displayed with highlight.js https://github.com/highlightjs/highlightjs-turtle/tree/master + "ng:a": "Saved SPARQL Update that can be invoked", + "ng:o": "n:g:z:sparql:invoke", + "ng:w": "n:g:z:sparql_update", + "ng:compat": ["code:sparql", "file:iana:application:sparql-update"], + }, + "query:graphql": { + "ng:crdt": "YText", // uses ng:default_graph predicate + "ng:n": "GraphQL Query", // edited with https://github.com/graphql/graphiql or https://github.com/graphql-editor/graphql-editor, displayed with highlight.js + "ng:a": "Saved GraphQL Query that can be invoked", + "ng:o": "n:g:z:graphql:invoke", + "ng:w": "n:g:z:graphql_query", + "ng:compat": ["code:graphql", "file:iana:application:graphql+json"], + }, + "query:text": { + "ng:crdt": "Graph", + "ng:n": "Text Search", + "ng:a": "Saved Text Search and its results", + "ng:compat": [], + }, + "query:web": { + "ng:crdt": "Graph", + "ng:n": "Web Search", + "ng:a": "Saved Web Search and its results", + "ng:compat": [], + }, + "data:graph": { + "ng:crdt": "Graph", // https://github.com/highlightjs/highlightjs-turtle/tree/master + "ng:n": "Graph", + "ng:a": "Define the Graph of your data with Semantic Web / Linked Data", + //"ng:o": "n:g:z:json_ld_viewer", // default viewer + //"ng:w": "n:g:z:json_ld_editor", // default editor + "ng:x": { + "rdf":true, + "xsd":true, + }, + "ng:compat": [ "rdf:*", "xsd:*", "file:iana:text:n3", "file:iana:text:rdf+n3", "file:iana:text:turtle", "file:iana:application:n-quads", "file:iana:application:trig", "file:iana:application:n-triples", + "file:iana:application:rdf+xml", "file:iana:application:ld+json"], + "implemented": true + }, + "data:json": { + "ng:crdt": "Automerge", + "ng:n": "JSON (Automerge)", + "ng:a": "Automerge JSON Data CRDT", + "ng:o": "n:g:z:json_automerge_viewer", // default viewer + "ng:w": "n:g:z:json_automerge_editor", // default editor + "ng:compat": ["file:iana:application:json", "code:json"], + "implemented": true + }, + "data:array": { + "ng:crdt": "YArray", + "ng:n": "Array (Yjs)", + "ng:a": "Yjs Array CRDT", + "ng:o": "n:g:z:json_yarray_viewer", // default viewer + "ng:w": "n:g:z:json_yarray_editor", // default editor + "ng:compat": ["file:iana:application:json", "code:json"], + "implemented": true + }, + "data:map": { + "ng:crdt": "YMap", + "ng:n": "Object (Yjs)", + "ng:a": "Yjs Map CRDT (JSON Object)", + "ng:o": "n:g:z:json_ymap_viewer", // default viewer + "ng:w": "n:g:z:json_ymap_editor", // default editor + "ng:compat": ["file:iana:application:json", "code:json"], + "implemented": true + }, + "data:xml": { + "ng:crdt": "YXml", + "ng:n": "XML (Yjs)", + "ng:a": "Yjs XML CRDT", + "ng:compat": ["file:iana:text:xml","file:iana:application:xml", "code:xml"], + }, + "data:table": { + "ng:crdt": "Automerge", // see https://github.com/frappe/datatable + "ng:n": "Table", // see https://specs.frictionlessdata.io/table-schema displayed with pivot table see https://activetable.io/docs/data https://www.npmjs.com/package/pivottable https://socket.dev/npm/package/svelte-pivottable/alerts/0.2.0?tab=dependencies + "ng:a": "Data in a Table (columns and rows)", + "ng:o": "n:g:z:pivot", + "ng:compat": ["file:iana:application:sparql-results+json","file:iana:application:sparql-results+xml","file:iana:text:csv"], + }, + "data:collection": { + "ng:crdt": "Graph", + "ng:n": "Collection", + "ng:a": "An ordered list of items", + "ng:o": "n:g:z:container", + "ng:x": { + "as": true, + "rdf": true, + }, + "ng:compat": ["as:Collection","rdf:List","rdf:Seq"], + }, + "data:container": { + "ng:crdt": "Graph", + "ng:n": "Container", + "ng:a": "An unordered set of items", + "ng:o": "n:g:z:container", + "ng:x": { + "rdf": true, + "rdfs": true, + "ldp": true, + }, + "ng:compat": ["rdfs:member","ldp:contains","rdf:Bag","rdf:Alt"], + "implemented": true + }, + "data:plato": { + "ng:crdt": "Graph", + "ng:n": "Plato", + "ng:a": "A tree of files and folders", + "ng:o": "n:g:z:tree", + "ng:compat": ["ng:plato","ng:has_plato"], + }, + "data:board": { + "ng:crdt": "Graph", + "ng:n": "Board", + "ng:a": "Whiteboard, infinite canvas to arrange your content in 2D", + "ng:o": "n:g:z:board", + "ng:include": [], + "ng:compat": [], //https://jsoncanvas.org/ https://www.canvasprotocol.org/ https://github.com/orgs/ocwg/discussions/25 https://infinitecanvas.tools/gallery/ + }, + "data:grid": { + "ng:crdt": "Graph", + "ng:n": "Grid", + "ng:a": "Grid representation of a collection or container", + "ng:o": "n:g:z:grid", + "ng:include": ["data:container","data:collection","data:table","media:album"], + "ng:compat": [], + }, + "data:geomap": { // https://github.com/leaflet/leaflet + "ng:crdt": "Graph", + "ng:n": "Geo Map", + "ng:a": "Geographical Map", + "ng:x": { + "wgs": true, + "gn": true, + "as": true, + }, + "ng:compat": ["as:Place","wgs:*","gn:*", "file:iana:application:geo+json", "file:iana:application:vnd.mapbox-vector-tile"], // see also https://github.com/topojson/topojson + }, + "e:mail": { + "ng:crdt": "Graph", + "ng:n": "Email", + "ng:a": "Email content and headers", + "ng:x": { + "email": "http://www.invincea.com/ontologies/icas/1.0/email#" //https://raw.githubusercontent.com/twosixlabs/icas-ontology/master/ontology/email.ttl // https://www.semanticdesktop.org/ontologies/2007/03/22/nmo/ + }, + "ng:compat": ["file:iana:message:rfc822","file:iana:multipart:related"], + }, + "e:link": { + "ng:crdt": "Graph", + "ng:n": "Web Link", + "ng:a": "HTTP link to a page on the Web", + "ng:compat": [], + }, + "e:web": { + "ng:crdt": "Graph", + //https://www.npmjs.com/package/warcio https://github.com/N0taN3rd/node-warc + "ng:n": "Web Archive", + "ng:a": "Archive the content of a web page", + "ng:compat": ["file:iana:application:warc","file:iana:multipart:related"], + }, + "e:rdf": { + "ng:crdt": "Graph", + "ng:n": "RDF Archive", + "ng:a": "Archive the triples of an RDF resource dereferenced with HTTP", + "ng:include": ["data:graph"], + }, + "mc:text": { + "ng:crdt": "Graph", + "ng:n": "Text Selection", + "ng:a": "Text Selection copied into Magic Carpet", + }, + "mc:link": { + "ng:crdt": "Graph", + "ng:n": "Link", + "ng:a": "Link to a document. kept in Magic Carpet", + }, + "plato:card": { + "ng:crdt": "Graph", + "ng:n": "Card", + "ng:a": "Card representation of a document", + "ng:o": "n:g:z:card", + }, + "plato:pad": { + "ng:crdt": "Graph", + "ng:n": "Pad", + "ng:a": "Pad representation of a document", + "ng:o": "n:g:z:pad", + }, + "doc:compose" : { + "ng:crdt": "YArray", + "ng:n": "Composition", + "ng:a": "Compose several blocks into a single document", + "ng:o": "n:g:z:compose:viewer", + "ng:w": "n:g:z:compose:editor", + }, + "diagram:mermaid" : { + "ng:crdt": "YText", + "ng:n": "Diagram - Mermaid", + "ng:a": "Describe Diagrams with Mermaid", + "ng:compat": ["file:iana:application:vnd.mermaid"] + }, + "diagram:drawio" : { + "ng:crdt": "YXml", + "ng:n": "Diagram - DrawIo", + "ng:a": "Draw Diagrams with DrawIo", + "ng:compat": ["file:iana:application:vnd.jgraph.mxfile","file:iana:application:x-drawio"] + }, + "diagram:graphviz" : { + "ng:crdt": "YText", + "ng:n": "Diagram - Graphviz", + "ng:a": "Describe Diagrams with Graphviz", + "ng:compat": ["file:iana:text:vnd.graphviz"] + }, + "diagram:excalidraw" : { + "ng:crdt": "Automerge", + "ng:n": "Diagram - Excalidraw", + "ng:a": "Collaborate on Diagrams with Excalidraw", + "ng:compat": ["file:iana:application:vnd.excalidraw+json"] + }, + "diagram:gantt" : { //https://github.com/frappe/gantt + "ng:crdt": "Automerge", + "ng:n": "Diagram - Gantt", + "ng:a": "Interactive gantt chart", + "ng:compat": [] + }, + "diagram:flowchart" : { //https://github.com/adrai/flowchart.js + "ng:crdt": "YText", + "ng:n": "Diagram - Flowchart", + "ng:a": "flow chart diagrams", + "ng:compat": [] + }, + "diagram:sequence" : { //https://github.com/bramp/js-sequence-diagrams + "ng:crdt": "YText", + "ng:n": "Diagram - Sequence", + "ng:a": "sequence diagrams", + "ng:compat": [] + }, + // checkout https://www.mindmaps.app/ but it is AGPL + "diagram:markmap" : { //https://github.com/markmap/markmap + "ng:crdt": "YText", + "ng:n": "Diagram - Markmap", + "ng:a": "mindmaps with markmap", + "ng:compat": [] + }, + "diagram:mymind" : { //https://github.com/markmap/markmap + "ng:crdt": "YText", // see MyMind format, MindMup JSON, FreeMind XML and MindMap Architect XML + "ng:n": "Diagram - Mymind", + "ng:a": "mindmaps with mymind", + "ng:compat": [] // https://github.com/ondras/my-mind/wiki/Saving-and-loading#file-formats + }, + "diagram:jsmind" : { //https://github.com/hizzgdev/jsmind + "ng:crdt": "Automerge", + "ng:n": "Diagram - jsmind", + "ng:a": "mindmaps with jsmind", + "ng:compat": [] // https://hizzgdev.github.io/jsmind/docs/en/1.usage.html + }, + // DC and C3 have Crossfilter https://github.com/dc-js/dc.js http://crossfilter.github.io/crossfilter/ https://github.com/c3js/c3 http://dc-js.github.io/dc.js/ + // take inspiration from https://github.com/metabase/metabase + // have a look at https://github.com/observablehq + // another open source dashboard with many data sources https://github.com/getredash/redash + // and another one https://github.com/apache/superset + // https://github.com/Rich-Harris/pancake + // https://github.com/williamngan/pts + // https://visjs.org/ + "viz:cytoscape" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Cytoscape", + "ng:a": "Graph theory (network) visualization", + "ng:compat": [] // https://github.com/cytoscape/cytoscape.js + }, + "viz:vega" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Vega", + "ng:a": "Grammar for interactive graphics", + "ng:compat": [] // https://vega.github.io/vega-lite/docs/ https://github.com/vega/editor + }, + "viz:vizzu" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Vizzu", + "ng:a": "Animated data visualizations and data stories", + "ng:compat": [] // https://github.com/vizzuhq/vizzu-lib + }, + "viz:plotly" : { //https://github.com/plotly/plotly.js + "ng:crdt": "Automerge", + "ng:n": "Viz - Plotly", + "ng:a": "Declarative charts", + "ng:compat": [] + }, + "viz:avail" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Avail", + "ng:a": "Time Data Availability Visualization", + "ng:compat": [] // https://github.com/flrs/visavail + }, + "chart:frappecharts" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - Frappe", + "ng:a": "GitHub-inspired responsive charts", + "ng:compat": [] // https://github.com/frappe/charts + }, + "chart:financial" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - Financial", + "ng:a": "Financial charts", + "ng:compat": [] //https://github.com/tradingview/lightweight-charts + }, + // have a look at https://github.com/cube-js/cube and https://awesome.cube.dev/ and https://frappe.io/products + "chart:apexcharts" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - ApexCharts", + "ng:a": "Interactive data visualizations", + "ng:compat": [] // https://github.com/apexcharts/apexcharts.js + }, + //realtime data with https://github.com/square/cubism + "chart:billboard" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - BillBoard", + "ng:a": "Interactive data visualizations based on D3", + "ng:compat": [] // https://github.com/naver/billboard.js + }, + "chart:echarts" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - ECharts", + "ng:a": "Interactive charting and data visualization with Apache ECharts", + "ng:compat": [] // https://github.com/apache/echarts + }, + "chart:chartjs" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - Chart.js", + "ng:a": "Simple yet flexible charting for designers & developers with Chart.js", + "ng:compat": [] // https://github.com/chartjs/Chart.js + }, + // see if to provide plain D3, and also all the https://github.com/antvis libraries: G2, G6, L7, S2, X6. Have a look at AVA + "doc:pdf": { + "ng:crdt": "Graph", + "ng:n": "PDF", + "ng:a": "upload and display a PDF file", + "ng:compat": ["file:iana:application:pdf"] // https://github.com/mozilla/pdf.js https://viewerjs.org/ + }, + "doc:odf": { //!!! becareful: AGPL + "ng:crdt": "Graph", + "ng:n": "ODF", + "ng:a": "upload and display an ODF file", + "ng:compat": ["file:iana:application:vnd.oasis.opendocument*"] // https://webodf.org/ https://github.com/webodf/WebODF https://viewerjs.org/ + }, + // see also https://github.com/Mathpix/mathpix-markdown-it + "doc:latex": { + "ng:crdt": "Graph", + "ng:n": "Latex", + "ng:a": "upload and display a Latex or Tex file", + "ng:compat": ["file:iana:application:x-tex","file:iana:text:x-tex"] // https://github.com/michael-brade/LaTeX.js https://github.com/mathjax/MathJax + }, + "doc:ps": { //!!! becareful: AGPL https://github.com/ochachacha/ps-wasm + "ng:crdt": "Graph", + "ng:n": "Postscript", + "ng:a": "upload and display a PostScript file", + "ng:compat": ["file:iana:application:postscript"] // https://www.npmjs.com/package/ghostscript4js + }, + "doc:music:abc": { //https://github.com/paulrosen/abcjs + "ng:crdt": "YText", + "ng:n": "Musical Notation", + "ng:a": "sheet music notation", + "ng:compat": [] + }, + "doc:music:guitar": { //https://github.com/birdca/fretboard + "ng:crdt": "YText", + "ng:n": "Music - Guitar", + "ng:a": "charts for guitar chords and scales", + "ng:compat": [] + }, + "doc:maths": { //https://github.com/KaTeX/KaTeX + "ng:crdt": "YText", + "ng:n": "Maths", + "ng:a": "TeX math rendering", + "ng:compat": ["file:iana:application:x-tex","file:iana:text:x-tex"] + }, + "doc:chemistry": { //GPL!! https://github.com/aeris-data/ChemDoodle/tree/master/ChemDoodleWeb-8.0.0 or https://github.com/aseevia/smiles-3d-vue + "ng:crdt": "YText", + "ng:n": "Molecules (SMILES)", + "ng:a": "simplified molecular-input line-entry system (SMILES)", + "ng:compat": ["file:iana:chemical:x-daylight-smiles"] // https://en.wikipedia.org/wiki/SYBYL_line_notation and http://fileformats.archiveteam.org/wiki/Chemical_data + }, + "doc:ancientscript": { //https://dn-works.com/ufas/ + "ng:crdt": "YText", // use Unicode and special fonts + "ng:n": "Ancient Script", + "ng:a": "Ancient Script", + "ng:compat": [] + }, + "doc:braille": { //https://en.wikipedia.org/wiki/Braille_Patterns + "ng:crdt": "YText", // use Unicode and special fonts + "ng:n": "Braille Patterns", + "ng:a": "Braille Patterns", + "ng:compat": [] + }, + "media:image": { + "ng:crdt": "Graph", + "ng:n": "Image", + "ng:a": "upload and display an image", + "ng:o": "n:g:z:media", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:image*","as:Image"] + }, + "media:reel": { + "ng:crdt": "Graph", + "ng:n": "Reel", + "ng:a": "upload and display a Reel (video from mobile)", + "ng:o": "n:g:z:media", + "ng:compat": ["file:iana:video*"] + }, + "media:video": { + "ng:crdt": "Graph", + "ng:n": "Video", + "ng:a": "upload and display a Video (and film)", + "ng:o": "n:g:z:media", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:video*","as:Video"] + }, + "media:album": { + "ng:crdt": "Graph", + "ng:n": "Album", + "ng:a": "Assemble several images and/or videos into an ordered Album", + "ng:o": "n:g:z:gallery", + "ng:include": ["data:collection"], + "ng:compat": [] + }, + "media:audio": { + "ng:crdt": "Graph", + "ng:n": "Audio", + "ng:a": "upload and play an Audio file, Audio note or Voice message", + "ng:o": "n:g:z:media", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:audio*","as:Audio"] + }, + "media:song": { + "ng:crdt": "Graph", + "ng:n": "Song", + "ng:a": "A song from an artist,album and/or lyrics", + "ng:o": "n:g:z:media", + "ng:x": { + "music": "http://purl.org/ontology/mo/", + }, + "ng:compat": ["music:MusicalWork","music:MusicArtist", "music:Lyrics"] + // see also https://polifonia-project.eu/wp-content/uploads/2022/01/Polifonia_D2.1_V1.0.pdf + // Music ontology http://musicontology.com/docs/faq.html with data based on existing databases https://musicbrainz.org/doc/MusicBrainz_Database/Schema https://github.com/megaconfidence/open-song-database https://www.discogs.com/developers + }, + "media:subtitle": { //https://captioneasy.com/subtitle-file-formats/ + "ng:crdt": "YText", + "ng:n": "Subtitles", + "ng:a": "Subtitles", + "ng:compat": [] // TBD + }, + "media:overlay": { + "ng:crdt": "Graph", + "ng:n": "Overlay", + "ng:a": "Composition of an image, reel, text, icon, link, mention or other content into a layered content", + "ng:o": "n:g:z:media", + "ng:compat": [] + }, + "social:activity": { + "ng:crdt": "Graph", + "ng:n": "Activity", + "ng:a": "Activity sent in a Stream", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Activity"] + }, + "social:channel": { + "ng:crdt": "Graph", + "ng:n": "Channel", + "ng:a": "Broadcast channel with subscribers", + "ng:compat": [] + }, + "social:stream": { + "ng:crdt": "Graph", + "ng:n": "Stream", + "ng:a": "A document or store's stream branch", + "ng:compat": [] + }, + "social:contact": { + "ng:crdt": "Graph", + "ng:n": "Contact", + "ng:a": "Contact: an Individual, Organization or Group", + "ng:x": { + "vcard":true, + "foaf": true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["foaf:Person","foaf:Agent","vcard:Individual", "vcard:Organization", "vcard:Group", "file:iana:text:vcard", "file:iana:application:vcard+json", "file:iana:application:vcard+xml" ], + }, + "social:event": { + "ng:crdt": "Graph", + "ng:n": "Event", + "ng:a": "An event occuring in specific location and time", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Event"] + }, + "social:calendar": { + "ng:crdt": "Graph", + "ng:n": "Calendar", + "ng:a": "A calendar where events are gathered", + "ng:x": { + "as":true, + "time": true, + }, + "ng:include": ["data:collection"], + "ng:compat": ["time:TemporalEntity", "file:iana:text:calendar", "file:iana:application:calendar+xml", "file:iana:application:calendar+json"] //https://www.rfc-editor.org/rfc/rfc5545 + }, + "social:scheduler": { + "ng:crdt": "Graph", + "ng:n": "Scheduler", + "ng:a": "Helps finding a common time slot for several participants to a future event", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Invite","as:Reject","as:Accept","as:TentativeAccept","as:TentativeReject"] + }, + "social:reaction": { + "ng:crdt": "Graph", + "ng:n": "Reaction", + "ng:a": "A reaction by user to some content", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Like", "as:Dislike", "as:Listen", "as:Read", "as:View"] + }, + "social:chatroom": { + "ng:crdt": "Graph", + "ng:n": "ChatRoom", + "ng:a": "A room for group chat", + }, + "social:live": { + "ng:crdt": "Graph", + "ng:n": "Live", + "ng:a": "A live session of video or audio, with optional chat", + }, + "prod:task": { + "ng:crdt": "Graph", + "ng:n": "Task", + "ng:a": "A task to be done", + "ng:x": { + "as":true, + "pair": "http://virtual-assembly.org/ontologies/pair#", + }, + "ng:include": ["post:*"], + "ng:compat": ["pair:Task"] //see VTODO in iCalendar https://www.cs.utexas.edu/~mfkb/RKF/tree/components/specs/ontologies/Calendar-onto.html + // see todo and todoList of Mobilizon https://framagit.org/framasoft/mobilizon/-/blob/main/lib/federation/activity_stream/converter/todo.ex + // https://framagit.org/framasoft/mobilizon/-/blob/main/lib/federation/activity_stream/converter/todo_list.ex + }, + "prod:project": { + "ng:crdt": "Graph", + "ng:n": "Project", + "ng:a": "A project management / KanBan", + "ng:x": { + "as":true, + "pair": "http://virtual-assembly.org/ontologies/pair#", + }, + "ng:include": ["post:*"], + "ng:compat": ["pair:Project"] + }, + // see SRO https://www.researchgate.net/publication/350158531_From_a_Scrum_Reference_Ontology_to_the_Integration_of_Applications_for_Data-Driven_Software_Development + // https://ceur-ws.org/Vol-1442/paper_4.pdf + // see focalbaord, specially for their import scripts https://github.com/mattermost/focalboard/tree/main/import + // and their data model https://github.com/mattermost/focalboard/tree/main/server/model + // https://github.com/leif81/bzkanban + // https://github.com/HigorLoren/donko (react) + // https://github.com/trobonox/kanri (GPL, Vue) + // https://github.com/waterrmalann/kards (vanilla JS) + // see also https://github.com/wekan/wekan + // see also https://taiga.io/ (for inspiration. as it is AGPL and python) + // see also https://github.com/plankanban/planka (for inspiration. as it is AGPL and React) + // see also https://kolaente.dev/vikunja/vikunja (for inspiration. AGPL. Vue and Go) + // see also https://github.com/laurent22/joplin/ (for inspiration. AGPL) + // see also https://github.com/SrGMC/kanbana + /// svelte: https://github.com/V-Py/svelte-kanban + // https://github.com/supabase-community/svelte-kanban + // https://github.com/therosbif/kanban + "prod:issue": { + "ng:crdt": "Graph", + "ng:n": "Issue", + "ng:a": "An issue to be solved", + "ng:x": { + "as":true, + "pair": "http://virtual-assembly.org/ontologies/pair#", + }, + "ng:include": ["prod:task"], + "ng:compat": ["pair:Challenge"] + }, + //https://github.com/go-gitea/gitea/issues/20232 + // datamodel of gitea issues: https://github.com/go-gitea/gitea/blob/165346c15c6d021028a65121e692a17ffc927e2c/models/issue.go#L35-L79 + "prod:form": { + "ng:crdt": "Graph", + "ng:n": "Form", + "ng:a": "A form to be filled-in", + "ng:x": { + "form" : "http://rdf.danielbeeke.nl/form/form-dev.ttl#", + }, + "ng:compat": ["form:*","file:iana:application:schema+json"] + }, + // https://jsonforms.io/docs/ + // https://github.com/jsonform/jsonform + // https://jsonforms.io/docs/integrations/vue + // >>> https://github.com/json-editor/json-editor + // or >>> https://github.com/webgme/svelte-jsonschema-form + // or >>> https://github.com/restspace/svelte-schema-form + // see https://ceur-ws.org/Vol-1515/regular14.pdf + // and https://github.com/protegeproject/facsimile + // https://www.drupal.org/project/webform + // see https://www.semantic-mediawiki.org/wiki/Extension:Page_Forms + // https://www.mediawiki.org/wiki/Extension:Page_Forms + // https://rdf-form.danielbeeke.nl/ + // consider using Shapes + "prod:filling": { + "ng:crdt": "Graph", + "ng:n": "Form filling", + "ng:a": "A form that has been filled-in", + "ng:compat": [] + }, + "prod:cad": { // https://mattferraro.dev/posts/cadmium + "ng:crdt": "Automerge", + "ng:n": "CAD", + "ng:a": "CADmium", + "ng:compat": [] + }, + "prod:spreadsheet": { + "ng:crdt": "Automerge", + "ng:n": "Spreadsheet", + "ng:a": "Spreadsheet", + "ng:compat": [] + }, + "prod:slides": { //https://github.com/hakimel/reveal.js + //https://pandoc.org/MANUAL.html#slide-shows + "ng:crdt": "Graph", + "ng:n": "Slides", + "ng:a": "Slides and presentations", + "ng:include": ["post:*"], + "ng:compat": [] + }, + "prod:question" : { + "ng:crdt": "Graph", + "ng:n": "Question", + "ng:a": "A question that needs answers", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Question"] + }, + "prod:answer" :{ + "ng:crdt": "Graph", + "ng:n": "Answer", + "ng:a": "An answer to a question", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Note"] + }, + "prod:poll" : { + "ng:crdt": "Graph", + "ng:n": "Poll", + "ng:a": "A poll where people will vote", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Question"] + }, + "prod:vote" : { + "ng:crdt": "Graph", + "ng:n": "Vote", + "ng:a": "A vote cast for a Poll", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Note"] + }, + "file" : { + "ng:crdt": "Graph", + "ng:n": "File", + "ng:a": "Binary file", + "ng:o": "n:g:z:file_viewer", + "ng:compat": [] + }, + "file:ng:wallet" : { + "ng:n": "NextGraph Wallet File", + "ng:a": "NextGraph Wallet File (.ngw)", + "ng:compat": [] + }, + "file:ng:doc" : { + "ng:n": "NextGraph Document File", + "ng:a": "NextGraph Document File (.ngd)", + "ng:compat": [] + }, + "file:ng:html" : { + "ng:n": "NextGraph Document Html", + "ng:a": "NextGraph Document Html standalone file", + "ng:compat": [] + }, + "file:text" : { + "ng:crdt": "Graph", + "ng:n": "File", + "ng:a": "Text file", + "ng:o": "n:g:z:file_viewer", + "ng:compat": ["file:iana:text:*", "file:iana:image:svg+xml", "file:iana:application:n-quads", "file:iana:application:trig", "file:iana:application:n-triples", "file:iana:application:rdf+xml", "file:iana:application:ld+json", + "file:iana:application:xml", "file:iana:application:yaml", "file:iana:application:xhtml+xml", "file:iana:application:node","file:iana:application:sparql-results+json","file:iana:application:sparql-results+xml", + "file:iana:message:rfc822","file:iana:multipart:related", "file:iana:text:vnd.graphviz", "file:iana:application:vnd.excalidraw+json", "file:iana:application:x-tex","file:iana:text:x-tex", + "file:iana:application:vcard+json", "file:iana:application:vcard+xml", "file:iana:text:calendar", "file:iana:application:calendar+xml", "file:iana:application:calendar+json", + "file:iana:application:schema+json", "file:iana:application:geo+json", "file:iana:application:json" ] + }, + +}; \ No newline at end of file diff --git a/app/ui-common/src/lang.ts b/app/ui-common/src/lang.ts new file mode 100644 index 0000000..a7a7591 --- /dev/null +++ b/app/ui-common/src/lang.ts @@ -0,0 +1,48 @@ +// Copyright (c) 2022-2025 Niko Bonnieure, Par le Peuple, NextGraph.org developers +// All rights reserved. +// Licensed under the Apache License, Version 2.0 +// +// or the MIT license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. + +import { register, init, locale, format } from "svelte-i18n"; + +// Make sure that a file named `locales/.json` exists when adding it here. +export const available_languages = { + en: "English", + de: "Deutsch", + //fr: "Français", + //ru: "Русский", + //es: "Español", + //it: "Italiano", + //zh: "中文", + //pt: "Português", +}; + +export const select_default_lang = async (get_locales: Function) => { + + for (const lang of Object.keys(available_languages)) { + register(lang, () => import(`./locales/${lang}.json`)) + } + + init({ + fallbackLocale: "en", + initialLocale: "en", + }); + + let locales = await (get_locales)(); + for (let lo of locales) { + if (available_languages[lo]) { + // exact match (if locales is a 2 chars lang code, or if we support regionalized translations) + locale.set(lo); + return; + } + lo = lo.substr(0, 2); + if (available_languages[lo]) { + locale.set(lo); + return; + } + } +}; \ No newline at end of file diff --git a/app/ui-common/src/lib/CenteredLayout.svelte b/app/ui-common/src/lib/CenteredLayout.svelte new file mode 100644 index 0000000..0d380ab --- /dev/null +++ b/app/ui-common/src/lib/CenteredLayout.svelte @@ -0,0 +1,110 @@ + + + + +
+ {#if !changingLang} +
+ +
+ {#if displayFooter} +
+
+ +
+ +
+
+ {/if} + {:else} +
+
    + {#each Object.entries(available_languages) as lang} + + {/each} +
+
+ {/if} +
+ + diff --git a/app/ui-common/src/lib/Install.svelte b/app/ui-common/src/lib/Install.svelte new file mode 100644 index 0000000..e01989f --- /dev/null +++ b/app/ui-common/src/lib/Install.svelte @@ -0,0 +1,197 @@ + + + + + + +
+ + +

+ {@html $t("pages.install.app_availability")} +

+ {#if display_has_wallets_warning} + + {@html $t("pages.install.has_wallet_warning")} + + {/if} + + + + + + + + + + + +
diff --git a/app/ui-common/src/lib/Login.svelte b/app/ui-common/src/lib/Login.svelte new file mode 100644 index 0000000..bcc45cf --- /dev/null +++ b/app/ui-common/src/lib/Login.svelte @@ -0,0 +1,767 @@ + + + + + + +
640} + class:flex={height > 640} + bind:this={top} +> + {#if step == "load"} +
+

+ {$t("pages.login.heading")} +

+

{$t("pages.login.with_pazzle")}

+
    +
  • + {$t("pages.login.pazzle_steps.1")} +
  • +
  • + {$t("pages.login.pazzle_steps.2")} +
  • +
  • + {$t("pages.login.pazzle_steps.3")} +
  • +
  • + {$t("pages.login.pazzle_steps.4")} +
  • +
  • + {$t("pages.login.pazzle_steps.5")} +
  • +
  • + {$t("pages.login.pazzle_steps.6")} +
  • +
+ +

+ {$t("pages.login.with_mnemonic")} +

+
    +
  • + {$t("pages.login.mnemonic_steps.1")} +
  • +
  • + {$t("pages.login.mnemonic_steps.2")} +
  • +
+ + + {#if for_import} +
+ {$t("pages.wallet_create.save_wallet_options.trust")} +
+

+ {$t("pages.wallet_create.save_wallet_options.trust_description")} + {#if !tauri_platform} + {$t("pages.login.trust_device_allow_cookies")}{/if}
+

+
+ {$t("pages.login.trust_device_yes")} +
+
+ {/if} + +
+
+ + {#if for_import && trusted} + + + {/if} + + + + + {#if !loaded} + {$t("pages.login.loading_pazzle")}... + + {:else} + + {$t("pages.login.open_with_pazzle")} + + {/if} +
+
+
+ + {:else if step == "pazzle" || step == "order" || step == "pin" || step == "mnemonic"} +
640} + class:min-w-[300px]={mobile} + class:min-w-[500px]={!mobile} + class:max-w-[370px]={mobile} + class:max-w-[600px]={!mobile} + > +
+ + + {#if step == "mnemonic"} +
+ + +
+ +
+ + {:else if step == "pazzle"} +

+ + {@html $t("pages.login.select_emoji", { + values: { + category: $t( + "emojis.category." + + emoji_cat[shuffle.category_indices[pazzlePage]] + ), + }, + })} +

+ {#each [0, 1, 2, 3, 4] as row} +
+ {#each emojis2[pazzlePage]?.slice(0 + row * 3, 3 + row * 3) || [] as emoji, i (pazzlePage + "-" + row + "-" + i)} +
select(row * 3 + i)} + on:keypress={() => select(row * 3 + i)} + > + +
+ {/each} +
+ {/each} + {:else if step == "order"} +

+ {$t("pages.login.order_emojis")} +

+ {#each [0, 1, 2] as row} +
+ {#each selection.slice(0 + row * 3, 3 + row * 3) || [] as emoji, i} + {#if !emoji.sel} +
select_order(emoji)} + on:keypress={() => select_order(emoji)} + title={$t( + "emojis.codes." + + emojis[emoji_cat[emoji.cat]][emoji.index].code + )} + > + +
+ {:else} +
+ + {emoji.sel} +
+ {/if} + {/each} +
+ {/each} + {:else if step == "pin"} +

+ {$t("pages.login.enter_pin")} +

+ + {#each [0, 1, 2] as row} +
+ {#each shuffle_pin.slice(0 + row * 3, 3 + row * 3) as num} + + {/each} +
+ {/each} +
+
+ + +
+ {#each pin_code as pin_key}*{/each} + {/if} +
+ +
+ + +
+
+ {:else if step == "opening"} +
+ {@html $t("pages.login.opening_wallet")} + +
+ {:else if step == "end"} + {#if error} +
+
+ {$t("errors.an_error_occurred")} + + + {display_error(error)} + +
+
+ + +
+
+ {:else} +
+ {@html $t("pages.login.wallet_opened")} + +
+ {/if} + {/if} +
+ + + + diff --git a/app/ui-common/src/lib/NoWallet.svelte b/app/ui-common/src/lib/NoWallet.svelte new file mode 100644 index 0000000..6f954d0 --- /dev/null +++ b/app/ui-common/src/lib/NoWallet.svelte @@ -0,0 +1,86 @@ + + + + + + + +
+
+
+

{$t("pages.no_wallet.welcome")}

+ +

+ {@html $t("pages.no_wallet.description")} +

+ + +
+
diff --git a/app/ui-common/src/lib/Test.svelte b/app/ui-common/src/lib/Test.svelte new file mode 100644 index 0000000..b6c4e6e --- /dev/null +++ b/app/ui-common/src/lib/Test.svelte @@ -0,0 +1,33 @@ + + + + + diff --git a/app/ui-common/src/lib/component.ts b/app/ui-common/src/lib/component.ts new file mode 100644 index 0000000..fe9d3fb --- /dev/null +++ b/app/ui-common/src/lib/component.ts @@ -0,0 +1 @@ +export { default as LogoSimple } from "./components/LogoSimple.svelte"; diff --git a/app/ui-common/src/lib/components/CopyToClipboard.svelte b/app/ui-common/src/lib/components/CopyToClipboard.svelte new file mode 100644 index 0000000..0dd40f6 --- /dev/null +++ b/app/ui-common/src/lib/components/CopyToClipboard.svelte @@ -0,0 +1,91 @@ + + + + +
+
+

-4St?otL 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 + + + + + + Tauri App + + + + +