ng-app uses the sdk

pull/19/head
Niko 2 years ago
parent 0bee7dfb46
commit 8b9e68a62d
  1. 1
      .gitignore
  2. 24
      Cargo.lock
  3. 2
      Cargo.toml
  4. 6
      README.md
  5. 10
      ng-app-js/app-node/index.js
  6. 124
      ng-app-js/app-node/package-lock.json
  7. 3
      ng-app-js/app-node/package.json
  8. 6
      ng-app-js/app-node/test.js
  9. 12
      ng-app-js/app-react/src/index.jsx
  10. 23
      ng-app-js/app-react/src/test.js
  11. 5
      ng-app-js/app-web/index.js
  12. 8
      ng-app-js/app-web/test.js
  13. 12
      ng-app-js/index.html
  14. 3
      ng-app-js/js/browser.js
  15. 4
      ng-app-js/js/node.js
  16. 23
      ng-app-js/src/lib.rs
  17. 0
      ng-app/.gitignore
  18. 0
      ng-app/.vscode/extensions.json
  19. 32
      ng-app/README.md
  20. 0
      ng-app/index.html
  21. 13
      ng-app/package.json
  22. 184
      ng-app/pnpm-lock.yaml
  23. 0
      ng-app/postcss.config.cjs
  24. 0
      ng-app/src-tauri/.cargo/config.toml
  25. 0
      ng-app/src-tauri/.gitignore
  26. 2
      ng-app/src-tauri/Cargo.toml
  27. 0
      ng-app/src-tauri/app-icon.png
  28. 0
      ng-app/src-tauri/build.rs
  29. 0
      ng-app/src-tauri/gen/android/.editorconfig
  30. 0
      ng-app/src-tauri/gen/android/.gitignore
  31. 0
      ng-app/src-tauri/gen/android/app/.gitignore
  32. 0
      ng-app/src-tauri/gen/android/app/build.gradle.kts
  33. 0
      ng-app/src-tauri/gen/android/app/proguard-rules.pro
  34. 0
      ng-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml
  35. 0
      ng-app/src-tauri/gen/android/app/src/main/java/org/nextgraph/ng_app_native/MainActivity.kt
  36. 0
      ng-app/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
  37. 0
      ng-app/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml
  38. 0
      ng-app/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml
  39. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  40. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
  41. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
  42. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  43. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
  44. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
  45. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  46. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
  47. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
  48. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  49. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
  50. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
  51. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  52. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
  53. 0
      ng-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
  54. 0
      ng-app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml
  55. 0
      ng-app/src-tauri/gen/android/app/src/main/res/values/colors.xml
  56. 0
      ng-app/src-tauri/gen/android/app/src/main/res/values/strings.xml
  57. 0
      ng-app/src-tauri/gen/android/app/src/main/res/values/themes.xml
  58. 0
      ng-app/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml
  59. 0
      ng-app/src-tauri/gen/android/build.gradle.kts
  60. 0
      ng-app/src-tauri/gen/android/buildSrc/build.gradle.kts
  61. 0
      ng-app/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/ng_app_native/kotlin/BuildTask.kt
  62. 0
      ng-app/src-tauri/gen/android/buildSrc/src/main/java/org/nextgraph/ng_app_native/kotlin/RustPlugin.kt
  63. 0
      ng-app/src-tauri/gen/android/gradle.properties
  64. 0
      ng-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar
  65. 0
      ng-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties
  66. 0
      ng-app/src-tauri/gen/android/gradlew
  67. 0
      ng-app/src-tauri/gen/android/gradlew.bat
  68. 0
      ng-app/src-tauri/gen/android/settings.gradle
  69. 0
      ng-app/src-tauri/icons/128x128.png
  70. 0
      ng-app/src-tauri/icons/128x128@2x.png
  71. 0
      ng-app/src-tauri/icons/32x32.png
  72. 0
      ng-app/src-tauri/icons/Square107x107Logo.png
  73. 0
      ng-app/src-tauri/icons/Square142x142Logo.png
  74. 0
      ng-app/src-tauri/icons/Square150x150Logo.png
  75. 0
      ng-app/src-tauri/icons/Square284x284Logo.png
  76. 0
      ng-app/src-tauri/icons/Square30x30Logo.png
  77. 0
      ng-app/src-tauri/icons/Square310x310Logo.png
  78. 0
      ng-app/src-tauri/icons/Square44x44Logo.png
  79. 0
      ng-app/src-tauri/icons/Square71x71Logo.png
  80. 0
      ng-app/src-tauri/icons/Square89x89Logo.png
  81. 0
      ng-app/src-tauri/icons/StoreLogo.png
  82. 0
      ng-app/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png
  83. 0
      ng-app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png
  84. 0
      ng-app/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png
  85. 0
      ng-app/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png
  86. 0
      ng-app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png
  87. 0
      ng-app/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png
  88. 0
      ng-app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png
  89. 0
      ng-app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png
  90. 0
      ng-app/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png
  91. 0
      ng-app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png
  92. 0
      ng-app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png
  93. 0
      ng-app/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png
  94. 0
      ng-app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png
  95. 0
      ng-app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png
  96. 0
      ng-app/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png
  97. 0
      ng-app/src-tauri/icons/icon.icns
  98. 0
      ng-app/src-tauri/icons/icon.ico
  99. 0
      ng-app/src-tauri/icons/icon.png
  100. 0
      ng-app/src-tauri/icons/ios/AppIcon-20x20@1x.png
  101. Some files were not shown because too many files have changed in this diff Show More

1
.gitignore vendored

@ -5,3 +5,4 @@
/target /target
/result* /result*
.DS_Store .DS_Store
node_modules

24
Cargo.lock generated

@ -517,9 +517,9 @@ dependencies = [
[[package]] [[package]]
name = "bstr" name = "bstr"
version = "1.4.0" version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5"
dependencies = [ dependencies = [
"memchr", "memchr",
"once_cell", "once_cell",
@ -2476,6 +2476,16 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
[[package]]
name = "ng-app"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
"tauri",
"tauri-build",
]
[[package]] [[package]]
name = "ng-app-js-sdk" name = "ng-app-js-sdk"
version = "0.1.0" version = "0.1.0"
@ -2498,16 +2508,6 @@ dependencies = [
"ws_stream_wasm", "ws_stream_wasm",
] ]
[[package]]
name = "ng-app-native"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
"tauri",
"tauri-build",
]
[[package]] [[package]]
name = "ng-wallet" name = "ng-wallet"
version = "0.1.0" version = "0.1.0"

@ -10,7 +10,7 @@ members = [
"ngd", "ngd",
"ngone", "ngone",
"ng-app-js", "ng-app-js",
"ng-app-native/src-tauri", "ng-app/src-tauri",
"ng-wallet" "ng-wallet"
] ]

@ -31,8 +31,10 @@ Read our [getting started guide](https://docs.nextgraph.org/en/getting-started/)
- [Install Rust](https://www.rust-lang.org/tools/install) minimum required 1.64.0 - [Install Rust](https://www.rust-lang.org/tools/install) minimum required 1.64.0
- [Install Nodejs](https://nodejs.org/en/download/) - [Install Nodejs](https://nodejs.org/en/download/)
until this [PR](https://github.com/rustwasm/wasm-pack/pull/1271) is accepted, will have to install wasm-pack this way:
``` ```
cargo install wasm-pack cargo install wasm-pack --git https://github.com/rustwasm/wasm-pack.git --rev c2b663f25abe50631a236d57a8c6d7fd806413b2
cargo install cargo-watch cargo install cargo-watch
// optionally, if you want a Rust REPL: cargo install evcxr_repl // optionally, if you want a Rust REPL: cargo install evcxr_repl
git clone git@git.nextgraph.org:NextGraph/nextgraph-rs.git git clone git@git.nextgraph.org:NextGraph/nextgraph-rs.git
@ -54,7 +56,7 @@ The crates are organized as follow :
- ngd : binary executable of the daemon (that can run a broker, verifier and/or Rust services) - ngd : binary executable of the daemon (that can run a broker, verifier and/or Rust services)
- ngone : server for nextgraph.one (boostrap into the right app) - ngone : server for nextgraph.one (boostrap into the right app)
- ng-app-js : contains the JS SDK, the web app, react app, and some node services - ng-app-js : contains the JS SDK, the web app, react app, and some node services
- ng-app-native : all the native apps, based on Tauri - ng-app : all the native apps, based on Tauri, and the web app.
- ng-wallet : keeps the secret keys of all identities of the user in a safe wallet - ng-wallet : keeps the secret keys of all identities of the user in a safe wallet
### Run ### Run

@ -6,7 +6,13 @@
// at your option. All files in the project carrying such // at your option. All files in the project carrying such
// notice may not be copied, modified, or distributed except // notice may not be copied, modified, or distributed except
// according to those terms. // according to those terms.
const WebSocket = require("ws");
const ng = require("ng-app-node-sdk"); const ng = require("ng-app-node-sdk");
global.WebSocket = WebSocket;
const test = require("./test")
console.log("FROM INDEX");
ng.test();
test.random();
console.log(ng.start());
console.log(ng.change("you"));

@ -0,0 +1,124 @@
{
"name": "ng-app-node",
"version": "0.1.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ng-app-node",
"version": "0.1.0",
"license": "(MIT OR Apache-2.0)",
"dependencies": {
"ng-app-node-sdk": "^0.1.0",
"ws": "^8.13.0"
}
},
"../pkg-node": {
"name": "ng-app-js-sdk",
"version": "0.1.0",
"license": "MIT/Apache-2.0"
},
"node_modules/bufferutil": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
"integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
"hasInstallScript": true,
"optional": true,
"peer": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
},
"engines": {
"node": ">=6.14.2"
}
},
"node_modules/ng-app-node-sdk": {
"resolved": "../pkg-node",
"link": true
},
"node_modules/node-gyp-build": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
"integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
"optional": true,
"peer": true,
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
"node-gyp-build-test": "build-test.js"
}
},
"node_modules/utf-8-validate": {
"version": "5.0.10",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
"integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
"hasInstallScript": true,
"optional": true,
"peer": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
},
"engines": {
"node": ">=6.14.2"
}
},
"node_modules/ws": {
"version": "8.13.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
"integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
}
},
"dependencies": {
"bufferutil": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
"integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
"optional": true,
"peer": true,
"requires": {
"node-gyp-build": "^4.3.0"
}
},
"ng-app-node-sdk": {
"version": "file:../pkg-node"
},
"node-gyp-build": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
"integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
"optional": true,
"peer": true
},
"utf-8-validate": {
"version": "5.0.10",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
"integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
"optional": true,
"peer": true,
"requires": {
"node-gyp-build": "^4.3.0"
}
},
"ws": {
"version": "8.13.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
"integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
"requires": {}
}
}
}

@ -13,6 +13,7 @@
"author": "Niko PLP <niko@nextgraph.org>", "author": "Niko PLP <niko@nextgraph.org>",
"license": "(MIT OR Apache-2.0)", "license": "(MIT OR Apache-2.0)",
"dependencies": { "dependencies": {
"ng-app-node-sdk": "^0.1.0" "ng-app-node-sdk": "^0.1.0",
"ws": "^8.13.0"
} }
} }

@ -0,0 +1,6 @@
const ng = require("ng-app-node-sdk");
module.exports.random = function () {
console.log("FROM TEST");
ng.test()
};

@ -9,6 +9,8 @@
import React, { useState } from "react"; import React, { useState } from "react";
import ReactDOM from "react-dom"; import ReactDOM from "react-dom";
import { createRoot } from 'react-dom/client';
import Test from "./test";
const ng_sdk = import("ng-app-js-sdk"); const ng_sdk = import("ng-app-js-sdk");
@ -19,8 +21,8 @@ ng_sdk.then((ng) => {
setName(ng.change(e.target.value)); setName(ng.change(e.target.value));
}; };
const handleClick = () => { const handleClick = () => {
console.log(name); ng.test();
ng.greet(name); ng.start();
}; };
return ( return (
@ -29,10 +31,14 @@ ng_sdk.then((ng) => {
I say: {name}<br/> I say: {name}<br/>
<input type="text" onChange={handleChange} /> <input type="text" onChange={handleChange} />
<button onClick={handleClick}>Say hello!</button> <button onClick={handleClick}>Say hello!</button>
<Test/>
</div> </div>
</> </>
); );
}; };
ReactDOM.render(<App />, document.getElementById("root")); //ReactDOM.render(<App />, document.getElementById("root"));
const domNode = document.getElementById('root');
const root = createRoot(domNode);
root.render(<App />);
}); });

@ -0,0 +1,23 @@
import React, { useState, useEffect } from "react";
function Test() {
useEffect(() => {
;(async () => {
try {
const ng = await import('ng-app-js-sdk');
ng.test();
} catch (e) {
console.error(e)
}
})()
}, [])
return (
<>
</>
);
}
export default Test;

@ -9,4 +9,7 @@
import * as ng from "ng-app-js-sdk"; import * as ng from "ng-app-js-sdk";
console.log(ng.change("you")); import test from './test';
ng.test();
test();
console.log(ng.start());

@ -0,0 +1,8 @@
import * as ng from "ng-app-js-sdk";
function test() {
ng.test()
}
export default test;

@ -18,9 +18,17 @@
<body> <body>
<p>run <code>python3 -m http.server</code> to use it</p> <p>run <code>python3 -m http.server</code> to use it</p>
<script type="module"> <script type="module">
import init, { greet } from "./web/ng_app_js_sdk.js"; import init, { start, test } from "./web/ng_app_js_sdk.js";
init().then(() => { init().then(() => {
greet("WebAssembly"); //greet("WebAssembly");
test();
start();
test();
});
// DON'T DO THE FOLLOW:
// it will instantiate twice the SDK, which is not what we want
init().then(() => {
test();
}); });
</script> </script>
</body> </body>

@ -0,0 +1,3 @@
export function random(max) {
return Math.round(Math.random() * max)
}

@ -0,0 +1,4 @@
module.exports.random = function (max) {
return 0
};

@ -31,9 +31,29 @@ extern "C" {
pub fn alert(s: &str); pub fn alert(s: &str);
} }
#[cfg(wasmpack_target = "nodejs")]
#[wasm_bindgen(module = "/js/node.js")]
extern "C" {
fn random(max: usize) -> usize;
}
#[cfg(not(wasmpack_target = "nodejs"))]
#[wasm_bindgen(module = "/js/browser.js")]
extern "C" {
fn random(max: usize) -> usize;
}
#[cfg(target_arch = "wasm32")]
#[wasm_bindgen]
pub async fn test() {
log!("test is {}", BROKER.read().await.test());
}
#[cfg(target_arch = "wasm32")] #[cfg(target_arch = "wasm32")]
#[wasm_bindgen] #[wasm_bindgen]
pub async fn start() { pub async fn start() {
log!("random {}", random(10));
// let mut random_buf = [0u8; 32]; // let mut random_buf = [0u8; 32];
// getrandom::getrandom(&mut random_buf).unwrap(); // getrandom::getrandom(&mut random_buf).unwrap();
@ -70,7 +90,8 @@ pub async fn start() {
.await; .await;
log!("broker.connect : {:?}", res); log!("broker.connect : {:?}", res);
if res.is_err() { if res.is_err() {
panic!("Cannot connect"); return Ok(());
//panic!("Cannot connect");
} }
BROKER.read().await.print_status(); BROKER.read().await.print_status();

@ -1,8 +1,8 @@
# NextGraph native apps (Linux, MacOS, Windows, Android, iOS) # NextGraph apps (Linux, MacOS, Windows, Android, iOS, web)
NextGraph native apps use the Tauri framework. NextGraph native apps use the Tauri framework.
The apps are using an embedded WebView that renders the Svelte app. All the apps are using an embedded WebView that renders a Svelte app.
## Install ## Install
@ -16,6 +16,32 @@ pnpm install
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer). [VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
## Web
#### Dev
```
pnpm webdev
// then open http://localhost:1421/
```
#### Prod
```
pnpm webbuild
// then the application is available in dist-web folder
// can be served with cd dist-web ; python3 -m http.server
```
in order a build a self-contained html file, useful for offline use, do:
```
pnpm filebuild
// single file is available in dist-file/index.html
// the assets folder can be discarded
```
## Desktop ## Desktop
Install [all prerequisites](https://next--tauri.netlify.app/next/guides/getting-started/prerequisites/) for your dev platform. Install [all prerequisites](https://next--tauri.netlify.app/next/guides/getting-started/prerequisites/) for your dev platform.
@ -37,6 +63,8 @@ to build the production app installer :
``` ```
cargo tauri build cargo tauri build
// the installer is then available in target/x86_64-apple-darwin/release/bundle/dmg/NextGraph_0.1.0_x64.dmg
// or if you just want the app, it is at target/x86_64-apple-darwin/release/bundle/macos/NextGraph.app
``` ```
### Linux (Ubuntu 22.04) ### Linux (Ubuntu 22.04)

@ -1,5 +1,5 @@
{ {
"name": "ng-app-native", "name": "ng-app",
"private": true, "private": true,
"version": "0.1.0", "version": "0.1.0",
"type": "module", "type": "module",
@ -19,7 +19,9 @@
"classnames": "^2.3.2", "classnames": "^2.3.2",
"flowbite": "^1.6.5", "flowbite": "^1.6.5",
"flowbite-svelte": "^0.37.1", "flowbite-svelte": "^0.37.1",
"svelte-spa-router": "^3.3.0" "ng-app-js-sdk": "workspace:^0.1.0",
"svelte-spa-router": "^3.3.0",
"vite-plugin-top-level-await": "^1.3.1"
}, },
"devDependencies": { "devDependencies": {
"@sveltejs/vite-plugin-svelte": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^2.0.0",
@ -39,11 +41,14 @@
"typescript": "^4.9.5", "typescript": "^4.9.5",
"vite": "^4.2.1", "vite": "^4.2.1",
"vite-plugin-singlefile": "^0.13.5", "vite-plugin-singlefile": "^0.13.5",
"vite-plugin-svelte-svg": "^2.2.1" "vite-plugin-svelte-svg": "^2.2.1",
"vite-plugin-wasm": "^3.2.2"
}, },
"pnpm": { "pnpm": {
"peerDependencyRules": { "peerDependencyRules": {
"ignoreMissing": ["rollup"] "ignoreMissing": [
"rollup"
]
} }
} }
} }

@ -25,6 +25,8 @@ specifiers:
vite: ^4.2.1 vite: ^4.2.1
vite-plugin-singlefile: ^0.13.5 vite-plugin-singlefile: ^0.13.5
vite-plugin-svelte-svg: ^2.2.1 vite-plugin-svelte-svg: ^2.2.1
vite-plugin-top-level-await: ^1.3.1
vite-plugin-wasm: ^3.2.2
dependencies: dependencies:
'@popperjs/core': 2.11.8 '@popperjs/core': 2.11.8
@ -33,6 +35,7 @@ dependencies:
flowbite: 1.6.5 flowbite: 1.6.5
flowbite-svelte: 0.37.1_zxzz3jvirzjobvy6wdyzs3vlma flowbite-svelte: 0.37.1_zxzz3jvirzjobvy6wdyzs3vlma
svelte-spa-router: 3.3.0 svelte-spa-router: 3.3.0
vite-plugin-top-level-await: 1.3.1_vite@4.3.8
devDependencies: devDependencies:
'@sveltejs/vite-plugin-svelte': 2.2.0_svelte@3.59.1+vite@4.3.8 '@sveltejs/vite-plugin-svelte': 2.2.0_svelte@3.59.1+vite@4.3.8
@ -53,6 +56,7 @@ devDependencies:
vite: 4.3.8_@types+node@18.16.13 vite: 4.3.8_@types+node@18.16.13
vite-plugin-singlefile: 0.13.5_vite@4.3.8 vite-plugin-singlefile: 0.13.5_vite@4.3.8
vite-plugin-svelte-svg: 2.2.1_svelte@3.59.1+vite@4.3.8 vite-plugin-svelte-svg: 2.2.1_svelte@3.59.1+vite@4.3.8
vite-plugin-wasm: 3.2.2_vite@4.3.8
packages: packages:
@ -67,7 +71,6 @@ packages:
cpu: [arm] cpu: [arm]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/android-arm64/0.17.19: /@esbuild/android-arm64/0.17.19:
@ -76,7 +79,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/android-x64/0.17.19: /@esbuild/android-x64/0.17.19:
@ -85,7 +87,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [android] os: [android]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/darwin-arm64/0.17.19: /@esbuild/darwin-arm64/0.17.19:
@ -94,7 +95,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/darwin-x64/0.17.19: /@esbuild/darwin-x64/0.17.19:
@ -103,7 +103,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/freebsd-arm64/0.17.19: /@esbuild/freebsd-arm64/0.17.19:
@ -112,7 +111,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/freebsd-x64/0.17.19: /@esbuild/freebsd-x64/0.17.19:
@ -121,7 +119,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-arm/0.17.19: /@esbuild/linux-arm/0.17.19:
@ -130,7 +127,6 @@ packages:
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-arm64/0.17.19: /@esbuild/linux-arm64/0.17.19:
@ -139,7 +135,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-ia32/0.17.19: /@esbuild/linux-ia32/0.17.19:
@ -148,7 +143,6 @@ packages:
cpu: [ia32] cpu: [ia32]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-loong64/0.17.19: /@esbuild/linux-loong64/0.17.19:
@ -157,7 +151,6 @@ packages:
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-mips64el/0.17.19: /@esbuild/linux-mips64el/0.17.19:
@ -166,7 +159,6 @@ packages:
cpu: [mips64el] cpu: [mips64el]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-ppc64/0.17.19: /@esbuild/linux-ppc64/0.17.19:
@ -175,7 +167,6 @@ packages:
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-riscv64/0.17.19: /@esbuild/linux-riscv64/0.17.19:
@ -184,7 +175,6 @@ packages:
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-s390x/0.17.19: /@esbuild/linux-s390x/0.17.19:
@ -193,7 +183,6 @@ packages:
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/linux-x64/0.17.19: /@esbuild/linux-x64/0.17.19:
@ -202,7 +191,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/netbsd-x64/0.17.19: /@esbuild/netbsd-x64/0.17.19:
@ -211,7 +199,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [netbsd] os: [netbsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/openbsd-x64/0.17.19: /@esbuild/openbsd-x64/0.17.19:
@ -220,7 +207,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/sunos-x64/0.17.19: /@esbuild/sunos-x64/0.17.19:
@ -229,7 +215,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [sunos] os: [sunos]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-arm64/0.17.19: /@esbuild/win32-arm64/0.17.19:
@ -238,7 +223,6 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-ia32/0.17.19: /@esbuild/win32-ia32/0.17.19:
@ -247,7 +231,6 @@ packages:
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@esbuild/win32-x64/0.17.19: /@esbuild/win32-x64/0.17.19:
@ -256,7 +239,6 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/@jridgewell/gen-mapping/0.3.3: /@jridgewell/gen-mapping/0.3.3:
@ -318,6 +300,16 @@ packages:
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
dev: false dev: false
/@rollup/plugin-virtual/3.0.1:
resolution: {integrity: sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0
peerDependenciesMeta:
rollup:
optional: true
dev: false
/@sveltejs/vite-plugin-svelte/2.2.0_svelte@3.59.1+vite@4.3.8: /@sveltejs/vite-plugin-svelte/2.2.0_svelte@3.59.1+vite@4.3.8:
resolution: {integrity: sha512-KDtdva+FZrZlyug15KlbXuubntAPKcBau0K7QhAIqC5SAy0uDbjZwoexDRx0L0J2T4niEfC6FnA9GuQQJKg+Aw==} resolution: {integrity: sha512-KDtdva+FZrZlyug15KlbXuubntAPKcBau0K7QhAIqC5SAy0uDbjZwoexDRx0L0J2T4niEfC6FnA9GuQQJKg+Aw==}
engines: {node: ^14.18.0 || >= 16} engines: {node: ^14.18.0 || >= 16}
@ -337,6 +329,118 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@swc/core-darwin-arm64/1.3.62:
resolution: {integrity: sha512-MmGilibITz68LEje6vJlKzc2gUUSgzvB3wGLSjEORikTNeM7P8jXVxE4A8fgZqDeudJUm9HVWrxCV+pHDSwXhA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: false
optional: true
/@swc/core-darwin-x64/1.3.62:
resolution: {integrity: sha512-Xl93MMB3sCWVlYWuQIB+v6EQgzoiuQYK5tNt9lsHoIEVu2zLdkQjae+5FUHZb1VYqCXIiWcULFfVz0R4Sjb7JQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: false
optional: true
/@swc/core-linux-arm-gnueabihf/1.3.62:
resolution: {integrity: sha512-nJsp6O7kCtAjTTMcIjVB0g5y1JNiYAa5q630eiwrnaHUusEFoANDdORI3Z9vXeikMkng+6yIv9/V8Rb093xLjQ==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@swc/core-linux-arm64-gnu/1.3.62:
resolution: {integrity: sha512-XGsV93vpUAopDt5y6vPwbK1Nc/MlL55L77bAZUPIiosWD1cWWPHNtNSpriE6+I+JiMHe0pqtfS/SSTk6ZkFQVw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@swc/core-linux-arm64-musl/1.3.62:
resolution: {integrity: sha512-ESUmJjSlTTkoBy9dMG49opcNn8BmviqStMhwyeD1G8XRnmRVCZZgoBOKdvCXmJhw8bQXDhZumeaTUB+OFUKVXg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@swc/core-linux-x64-gnu/1.3.62:
resolution: {integrity: sha512-wnHJkt3ZBrax3SFnUHDcncG6mrSg9ZZjMhQV9Mc3JL1x1s1Gy9rGZCoBNnV/BUZWTemxIBcQbANRSDut/WO+9A==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@swc/core-linux-x64-musl/1.3.62:
resolution: {integrity: sha512-9oRbuTC/VshB66Rgwi3pTq3sPxSTIb8k9L1vJjES+dDMKa29DAjPtWCXG/pyZ00ufpFZgkGEuAHH5uqUcr1JQg==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: false
optional: true
/@swc/core-win32-arm64-msvc/1.3.62:
resolution: {integrity: sha512-zv14vlF2VRrxS061XkfzGjCYnOrEo5glKJjLK5PwUKysIoVrx/L8nAbFxjkX5cObdlyoqo+ekelyBPAO+4bS0w==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@swc/core-win32-ia32-msvc/1.3.62:
resolution: {integrity: sha512-8MC/PZQSsOP2iA/81tAfNRqMWyEqTS/8zKUI67vPuLvpx6NAjRn3E9qBv7iFqH79iqZNzqSMo3awnLrKZyFbcw==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@swc/core-win32-x64-msvc/1.3.62:
resolution: {integrity: sha512-GJSmUJ95HKHZXAxiuPUmrcm/S3ivQvEzXhOZaIqYBIwUsm02vFZkClsV7eIKzWjso1t0+I/8MjrnUNaSWqh1rQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: false
optional: true
/@swc/core/1.3.62:
resolution: {integrity: sha512-J58hWY+/G8vOr4J6ZH9hLg0lMSijZtqIIf4HofZezGog/pVX6sJyBJ40dZ1ploFkDIlWTWvJyqtpesBKS73gkQ==}
engines: {node: '>=10'}
requiresBuild: true
peerDependencies:
'@swc/helpers': ^0.5.0
peerDependenciesMeta:
'@swc/helpers':
optional: true
optionalDependencies:
'@swc/core-darwin-arm64': 1.3.62
'@swc/core-darwin-x64': 1.3.62
'@swc/core-linux-arm-gnueabihf': 1.3.62
'@swc/core-linux-arm64-gnu': 1.3.62
'@swc/core-linux-arm64-musl': 1.3.62
'@swc/core-linux-x64-gnu': 1.3.62
'@swc/core-linux-x64-musl': 1.3.62
'@swc/core-win32-arm64-msvc': 1.3.62
'@swc/core-win32-ia32-msvc': 1.3.62
'@swc/core-win32-x64-msvc': 1.3.62
dev: false
/@tauri-apps/api/2.0.0-alpha.4: /@tauri-apps/api/2.0.0-alpha.4:
resolution: {integrity: sha512-gWe5fFHbwFM+dmdDPtlDvVDVtoMneGRM+S8mECevWhKpXYxId0yxznE56YGAvPSJXC3vgsXw16mOmkTnEVKnaw==} resolution: {integrity: sha512-gWe5fFHbwFM+dmdDPtlDvVDVtoMneGRM+S8mECevWhKpXYxId0yxznE56YGAvPSJXC3vgsXw16mOmkTnEVKnaw==}
engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'}
@ -450,7 +554,6 @@ packages:
/@types/node/18.16.13: /@types/node/18.16.13:
resolution: {integrity: sha512-uZRomboV1vBL61EBXneL4j9/hEn+1Yqa4LQdpGrKmXFyJmVfWc9JV9+yb2AlnOnuaDnb2PDO3hC6/LKmzJxP1A==} resolution: {integrity: sha512-uZRomboV1vBL61EBXneL4j9/hEn+1Yqa4LQdpGrKmXFyJmVfWc9JV9+yb2AlnOnuaDnb2PDO3hC6/LKmzJxP1A==}
dev: true
/@types/pug/2.0.6: /@types/pug/2.0.6:
resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
@ -743,7 +846,6 @@ packages:
'@esbuild/win32-arm64': 0.17.19 '@esbuild/win32-arm64': 0.17.19
'@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-ia32': 0.17.19
'@esbuild/win32-x64': 0.17.19 '@esbuild/win32-x64': 0.17.19
dev: true
/escalade/3.1.1: /escalade/3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
@ -824,7 +926,6 @@ packages:
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: true
optional: true optional: true
/function-bind/1.1.1: /function-bind/1.1.1:
@ -1084,7 +1185,6 @@ packages:
resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
dev: true
/node-releases/2.0.12: /node-releases/2.0.12:
resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
@ -1178,7 +1278,6 @@ packages:
/picocolors/1.0.0: /picocolors/1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
/picomatch/2.3.1: /picomatch/2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
@ -1263,7 +1362,6 @@ packages:
nanoid: 3.3.6 nanoid: 3.3.6
picocolors: 1.0.0 picocolors: 1.0.0
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: true
/queue-microtask/1.2.3: /queue-microtask/1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@ -1319,7 +1417,6 @@ packages:
hasBin: true hasBin: true
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true
/run-parallel/1.2.0: /run-parallel/1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
@ -1372,7 +1469,6 @@ packages:
/source-map-js/1.0.2: /source-map-js/1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true
/strip-final-newline/2.0.0: /strip-final-newline/2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
@ -1649,6 +1745,11 @@ packages:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true dev: true
/uuid/9.0.0:
resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
hasBin: true
dev: false
/vite-plugin-singlefile/0.13.5_vite@4.3.8: /vite-plugin-singlefile/0.13.5_vite@4.3.8:
resolution: {integrity: sha512-y/aRGh8qHmw2f1IhaI/C6PJAaov47ESYDvUv1am1YHMhpY+19B5k5Odp8P+tgs+zhfvak6QB1ykrALQErEAo7g==} resolution: {integrity: sha512-y/aRGh8qHmw2f1IhaI/C6PJAaov47ESYDvUv1am1YHMhpY+19B5k5Odp8P+tgs+zhfvak6QB1ykrALQErEAo7g==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@ -1674,6 +1775,28 @@ packages:
vite: 4.3.8_@types+node@18.16.13 vite: 4.3.8_@types+node@18.16.13
dev: true dev: true
/vite-plugin-top-level-await/1.3.1_vite@4.3.8:
resolution: {integrity: sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==}
peerDependencies:
vite: '>=2.8'
dependencies:
'@rollup/plugin-virtual': 3.0.1
'@swc/core': 1.3.62
uuid: 9.0.0
vite: 4.3.8_@types+node@18.16.13
transitivePeerDependencies:
- '@swc/helpers'
- rollup
dev: false
/vite-plugin-wasm/3.2.2_vite@4.3.8:
resolution: {integrity: sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==}
peerDependencies:
vite: ^2 || ^3 || ^4
dependencies:
vite: 4.3.8_@types+node@18.16.13
dev: true
/vite/4.3.8_@types+node@18.16.13: /vite/4.3.8_@types+node@18.16.13:
resolution: {integrity: sha512-uYB8PwN7hbMrf4j1xzGDk/lqjsZvCDbt/JC5dyfxc19Pg8kRm14LinK/uq+HSLNswZEoKmweGdtpbnxRtrAXiQ==} resolution: {integrity: sha512-uYB8PwN7hbMrf4j1xzGDk/lqjsZvCDbt/JC5dyfxc19Pg8kRm14LinK/uq+HSLNswZEoKmweGdtpbnxRtrAXiQ==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@ -1705,7 +1828,6 @@ packages:
rollup: 3.22.0 rollup: 3.22.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true
/vitefu/0.2.4_vite@4.3.8: /vitefu/0.2.4_vite@4.3.8:
resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}

@ -1,5 +1,5 @@
[package] [package]
name = "ng-app-native" name = "ng-app"
version = "0.1.0" version = "0.1.0"
description = "NextGraph App" description = "NextGraph App"
authors = ["Niko PLP <niko@nextgraph.org>"] authors = ["Niko PLP <niko@nextgraph.org>"]

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save