diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ec385eee59dce4da9b39ca39132f0f7df4f64e44 --- /dev/null +++ b/.gitignore @@ -0,0 +1,154 @@ +# Copied Node and Rust gitignores from https://github.com/github/gitignore/tree/main + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# Generated by Cargo +# will have compiled files and executables +debug/ +target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb + +# RustRover +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000000000000000000000000000000000000..5660f75a6e8504e72236445681b199a23d5320a9 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1054 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[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 = "api-athuna" +version = "0.1.0" +dependencies = [ + "chrono", + "console_error_panic_hook", + "worker", + "worker-macros", +] + +[[package]] +name = "async-trait" +version = "0.1.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytes" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" + +[[package]] +name = "cc" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets", +] + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[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 = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "itoa" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" + +[[package]] +name = "js-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" + +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "serde" +version = "1.0.215" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_derive" +version = "1.0.215" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.133" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[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 = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "syn" +version = "2.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tokio" +version = "1.41.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +dependencies = [ + "backtrace", + "pin-project-lite", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "url" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "wasm-bindgen" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" + +[[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.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "worker" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8aca53ec63e508176a89a573c972266f0f98bcc48bd866def7be0d939ef9268" +dependencies = [ + "async-trait", + "bytes", + "chrono", + "futures-channel", + "futures-util", + "http", + "http-body", + "js-sys", + "matchit", + "pin-project", + "serde", + "serde-wasm-bindgen 0.6.5", + "serde_json", + "serde_urlencoded", + "tokio", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "worker-kv", + "worker-macros", + "worker-sys", +] + +[[package]] +name = "worker-kv" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f06d4d1416a9f8346ee9123b0d9a11b3cfa38e6cfb5a139698017d1597c4d41" +dependencies = [ + "js-sys", + "serde", + "serde-wasm-bindgen 0.5.0", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "worker-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1118a0ceb59ddde7fdbaff6c47b6fa6ee47848975ea38b4ae9bb4080f96541cd" +dependencies = [ + "async-trait", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-macro-support", + "worker-sys", +] + +[[package]] +name = "worker-sys" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5643a2ba07df61aa50e37212ffcb0944417db7d3960d4331f36aeb2fa5e2fd7" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..2b9d59df9de08ce6156823047a526f3f3ddd2652 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "api-athuna" +version = "0.1.0" +edition = "2021" +authors = [ "shellsort <cl.mertig@gmail.com>" ] + +[package.metadata.release] +release = false + +# https://github.com/rustwasm/wasm-pack/issues/1247 +[package.metadata.wasm-pack.profile.release] +wasm-opt = false + +[lib] +crate-type = ["cdylib"] + +[dependencies] +worker = { version="0.4.2" } +worker-macros = { version="0.4.2" } +console_error_panic_hook = { version = "0.1.1" } +chrono = "0.4.38" diff --git a/README.md b/README.md index 8b54b12f010054e3577ed9410362ab2a6f376eb5..905d9e05fc0513287487fa914fd66ce2295417bc 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,6 @@ The __Athuna API__ is connects the Frontend (Creator and Blog) with the Database **Programming Language:** [Rust](https://www.rust-lang.org/) ([Discord](https://discord.gg/TupCGMkD)) -**Web Framework:** [Actix Web](https://actix.rs/) ([Discord](https://discord.gg/NWpN5mmg3x)) - **ORM Framework:** [SeaORM](https://www.sea-ql.org/SeaORM/) ([Discord](https://discord.gg/uCPdDXzbdv)) **Deployment:** [Cloudflare Workers](https://workers.cloudflare.com/) ([Discord](https://discord.gg/cloudflaredev)) @@ -25,11 +23,47 @@ We welcome contributors with open arms! For easier communication, please [join our discord](https://discord.gg/Sf5NJDM5). -<!-- -## Deployment +## Setup for Contributors +To get started with contributing to the Athuna Blog, follow these steps: -TODO +1. Install Node.js, npm and npx: + - Download and install Node.js from nodejs.org + - npm (Node Package Manager) is included with Node.js + - npx (Node Package Execute) is included with Node.js + - Download and install Rust (ideally using rustup): + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + +2. Install Visual Studio Code: + - Download and install VS Code from code.visualstudio.com + +3. Clone the repository: + + ```bash + git clone https://gitlab.com/athuna/blog-athuna.git + cd blog-athuna + ``` + +4. Install dependencies: + + ```bash + npm install + ``` +5. Add compilation target: + ```bash + rustup target add wasm32-unknown-unknown + ``` + +6. Run the development server: + ```bash + npx wrangler dev + ``` + +7. Use the project: + - Navigate to http://localhost:8787 (or the port specified in the console) +<!-- ## Documentation TODO diff --git a/athuna_tables.drawio b/athuna_tables.drawio index bfb3d8afca16e493ddc2cf8c2928131c08c99ab1..58a8f44f4e301e0830a23adc93fe07663b36fb22 100644 --- a/athuna_tables.drawio +++ b/athuna_tables.drawio @@ -1,105 +1,110 @@ -<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0" version="24.8.4"> +<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0" version="24.8.4"> <diagram name="database_tables" id="NHkTXqffIjsi05bMYGxm"> - <mxGraphModel dx="1705" dy="2094" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> + <mxGraphModel dx="4834" dy="1922" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> - <mxCell id="5Q2xIMhyePjjlUECNHq1-48" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-3" target="5Q2xIMhyePjjlUECNHq1-11" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-11" target="EAtUI1jlxP2QV-DOA4-n-33" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="480" y="220" /> + <mxPoint x="460" y="220" /> <mxPoint x="120" y="220" /> </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-84" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-48" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-2" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-1" vertex="1" connectable="0"> <mxGeometry x="0.9315" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="-3" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-3" target="5Q2xIMhyePjjlUECNHq1-7" edge="1"> - <mxGeometry relative="1" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-11" target="EAtUI1jlxP2QV-DOA4-n-24" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="460" y="60" /> + <mxPoint x="460" y="60" /> + </Array> + </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-83" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-49" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-4" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-3" vertex="1" connectable="0"> <mxGeometry x="0.7869" y="2" relative="1" as="geometry"> <mxPoint x="-2" y="-7" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-3" target="5Q2xIMhyePjjlUECNHq1-15" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-11" target="EAtUI1jlxP2QV-DOA4-n-45" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="480" y="220" /> + <mxPoint x="460" y="220" /> <mxPoint x="840" y="220" /> </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-82" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-50" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-6" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-5" vertex="1" connectable="0"> <mxGeometry x="-0.9592" relative="1" as="geometry"> <mxPoint y="12" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-85" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-50" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-7" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-5" vertex="1" connectable="0"> <mxGeometry x="0.9321" relative="1" as="geometry"> <mxPoint y="-4" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-3" value="<div>&lt;&lt;Singleton&gt;&gt;<br></div><div>App</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="360" y="-80" width="240" height="222" as="geometry" /> - </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-16" value="+ app_is_service: bool" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-3"> - <mxGeometry y="40" width="240" height="26" as="geometry" /> - </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-25" value="+ impressum_register_number: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-3"> - <mxGeometry y="66" width="240" height="26" as="geometry" /> - </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-17" value="+ impressum_vat: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-3"> - <mxGeometry y="92" width="240" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-11" target="EAtUI1jlxP2QV-DOA4-n-142" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="400" y="180" /> + <mxPoint x="-240" y="180" /> + </Array> + </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-22" value="+ impressum_phone: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-3"> - <mxGeometry y="118" width="240" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-9" value="5" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-8" vertex="1" connectable="0"> + <mxGeometry x="0.9677" y="1" relative="1" as="geometry"> + <mxPoint x="-1" y="1" as="offset" /> + </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-23" value="+ impressum_email: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-3"> - <mxGeometry y="144" width="240" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-10" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-8" vertex="1" connectable="0"> + <mxGeometry x="-0.9582" y="1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-24" value="+ impressum_address: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-3"> - <mxGeometry y="170" width="240" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-11" value="<div>&lt;&lt;Singleton&gt;&gt;<br></div><div>App</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="340" y="-80" width="240" height="66" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-21" value="+ impressum_name: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-3"> - <mxGeometry y="196" width="240" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-12" value="+ app_is_service: bool" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-11" vertex="1"> + <mxGeometry y="40" width="240" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;exitX=0.25;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-7" target="5Q2xIMhyePjjlUECNHq1-23" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;exitX=0.25;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-24" target="EAtUI1jlxP2QV-DOA4-n-58" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="440" y="700" /> + <mxPoint x="410" y="700" /> <mxPoint x="360" y="700" /> </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-92" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-53" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-14" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-13" vertex="1" connectable="0"> <mxGeometry x="-0.9321" relative="1" as="geometry"> <mxPoint y="-2" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-94" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-53" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-15" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-13" vertex="1" connectable="0"> <mxGeometry x="0.9649" relative="1" as="geometry"> <mxPoint y="-6" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-7" target="5Q2xIMhyePjjlUECNHq1-19" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-24" target="EAtUI1jlxP2QV-DOA4-n-48" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="490" y="360" as="sourcePoint" /> <Array as="points"> - <mxPoint x="480" y="500" /> + <mxPoint x="460" y="500" /> <mxPoint x="840" y="500" /> </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-90" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-54" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-17" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-16" vertex="1" connectable="0"> <mxGeometry x="-0.9713" relative="1" as="geometry"> <mxPoint y="16" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-70" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=none;exitX=0.75;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-7" target="5Q2xIMhyePjjlUECNHq1-62" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=none;exitX=0.75;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-24" target="EAtUI1jlxP2QV-DOA4-n-92" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="540" y="360" as="sourcePoint" /> <Array as="points"> @@ -108,42 +113,61 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-93" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-70" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-19" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-18" vertex="1" connectable="0"> <mxGeometry x="-0.9069" y="-1" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-97" value="0..6" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-70" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-20" value="0..6" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-18" vertex="1" connectable="0"> <mxGeometry x="0.9258" y="2" relative="1" as="geometry"> <mxPoint x="-2" y="-2" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-7" value="<div>Organization</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> - <mxGeometry x="400" y="280" width="160" height="118" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-24" target="EAtUI1jlxP2QV-DOA4-n-142" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="370" y="420" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="360" y="460" /> + <mxPoint x="-160" y="460" /> + </Array> + </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-1" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-7"> - <mxGeometry y="40" width="160" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-22" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-21" vertex="1" connectable="0"> + <mxGeometry x="-0.9329" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-3" value="+ name: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-7"> - <mxGeometry y="66" width="160" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-23" value="6..8" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-21" vertex="1" connectable="0"> + <mxGeometry x="0.9439" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-2" value="+ slug: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-7"> - <mxGeometry y="92" width="160" height="26" as="geometry" /> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-24" value="<div>Organization</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="360" y="280" width="200" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-25" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-24" vertex="1"> + <mxGeometry y="40" width="200" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-26" value="+ slug: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-24" vertex="1"> + <mxGeometry y="66" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-11" target="5Q2xIMhyePjjlUECNHq1-28" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-27" value="+ name: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-24" vertex="1"> + <mxGeometry y="92" width="200" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;jumpStyle=line;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-33" target="EAtUI1jlxP2QV-DOA4-n-65" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-86" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-51" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-29" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-28" vertex="1" connectable="0"> <mxGeometry x="-0.8777" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="13" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-87" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-51" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-30" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-28" vertex="1" connectable="0"> <mxGeometry x="0.861" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="-8" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-52" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;elbow=vertical;edgeStyle=orthogonalEdgeStyle;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-11" target="5Q2xIMhyePjjlUECNHq1-19" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-31" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;elbow=vertical;edgeStyle=orthogonalEdgeStyle;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-33" target="EAtUI1jlxP2QV-DOA4-n-48" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="160" y="500" /> @@ -151,43 +175,43 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-88" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-52" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-32" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-31" vertex="1" connectable="0"> <mxGeometry x="-0.9761" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="14" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-11" value="<div>User</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-33" value="<div>User</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="40" y="280" width="160" height="144" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-7" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-11"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-34" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-33" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-8" value="<div>+ email: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-11"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-35" value="<div>+ email: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-33" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-9" value="<div>+ username: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-11"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-36" value="<div>+ username: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-33" vertex="1"> <mxGeometry y="92" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-12" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-11" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-37" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-33" vertex="1"> <mxGeometry y="118" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-15" target="5Q2xIMhyePjjlUECNHq1-19" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=line;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-45" target="EAtUI1jlxP2QV-DOA4-n-48" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-89" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-55" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-39" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-38" vertex="1" connectable="0"> <mxGeometry x="0.8767" relative="1" as="geometry"> <mxPoint y="-9" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-91" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-55" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-40" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-38" vertex="1" connectable="0"> <mxGeometry x="-0.8352" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="11" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-49" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="5Q2xIMhyePjjlUECNHq1-15" target="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-41" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;edgeStyle=orthogonalEdgeStyle;curved=1;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-45" target="EAtUI1jlxP2QV-DOA4-n-106" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="5Q2xIMhyePjjlUECNHq1-15" target="no8C9QRHOJscCkUKzEsH-50"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-45" target="EAtUI1jlxP2QV-DOA4-n-116" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="880" y="420" /> @@ -195,49 +219,49 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-54" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="no8C9QRHOJscCkUKzEsH-53"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-43" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-42" vertex="1" connectable="0"> <mxGeometry x="-0.8527" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="2" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-55" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="no8C9QRHOJscCkUKzEsH-53"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-44" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-42" vertex="1" connectable="0"> <mxGeometry x="0.8697" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-15" value="<div>&lt;&lt;Enumeration&gt;&gt;<br></div><div>Role</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-45" value="<div>&lt;&lt;Enumeration&gt;&gt;<br></div><div>Role</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="760" y="280" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-16" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-15" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-46" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-45" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-10" value="+ name: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="5Q2xIMhyePjjlUECNHq1-15"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-47" value="+ name: String" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-45" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-19" value="<div>OrganizationUserRole</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-48" value="<div>OrganizationUserRole</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="760" y="578.82" width="160" height="144" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-20" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-19" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-49" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-48" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-21" value="<div>+ user_id: int</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-19" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-50" value="<div>+ user_id: int</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-48" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-61" value="+ organization_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-19" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-51" value="+ organization_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-48" vertex="1"> <mxGeometry y="92" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-22" value="+ role_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-19" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-52" value="+ role_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-48" vertex="1"> <mxGeometry y="118" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-23" target="5Q2xIMhyePjjlUECNHq1-32" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-58" target="EAtUI1jlxP2QV-DOA4-n-75" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-111" value="0..256" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-56" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-54" value="0..256" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-53" vertex="1" connectable="0"> <mxGeometry x="0.6948" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="-1" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-23" target="5Q2xIMhyePjjlUECNHq1-66" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-58" target="EAtUI1jlxP2QV-DOA4-n-95" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="360" y="1278.82" /> @@ -245,51 +269,51 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-110" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-71" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-56" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-55" vertex="1" connectable="0"> <mxGeometry x="-0.8866" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="2" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-112" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-71" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-57" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-55" vertex="1" connectable="0"> <mxGeometry x="0.8942" relative="1" as="geometry"> <mxPoint y="-1" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-23" value="Post" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-58" value="Post" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="280" y="1098.82" width="160" height="118" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-24" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-23" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-59" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-58" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-25" value="+ organization_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-23" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-60" value="+ organization_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-58" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-74" value="+ category_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-23" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-61" value="+ category_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-58" vertex="1"> <mxGeometry y="92" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-28" target="5Q2xIMhyePjjlUECNHq1-99" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-65" target="EAtUI1jlxP2QV-DOA4-n-101" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-108" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-102" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-63" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-62" vertex="1" connectable="0"> <mxGeometry x="-0.8668" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="8" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-109" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-102" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-64" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-62" vertex="1" connectable="0"> <mxGeometry x="0.7319" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-28" value="Author" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-65" value="Author" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="40" y="578.82" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-29" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-28" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-66" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-65" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-30" value="+ user_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-28" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-67" value="+ user_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-65" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-32" target="5Q2xIMhyePjjlUECNHq1-36" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-68" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-75" target="EAtUI1jlxP2QV-DOA4-n-80" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="360" y="1518.82" /> @@ -297,20 +321,20 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-114" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-57" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-69" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-68" vertex="1" connectable="0"> <mxGeometry x="0.8821" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-32" target="5Q2xIMhyePjjlUECNHq1-40" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-70" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-75" target="EAtUI1jlxP2QV-DOA4-n-83" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-115" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-58" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-71" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-70" vertex="1" connectable="0"> <mxGeometry x="0.5823" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-32" target="5Q2xIMhyePjjlUECNHq1-44" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-75" target="EAtUI1jlxP2QV-DOA4-n-86" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="360" y="1518.82" /> @@ -318,59 +342,59 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-113" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-59" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-73" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-72" vertex="1" connectable="0"> <mxGeometry x="-0.9065" y="1" relative="1" as="geometry"> <mxPoint x="-1" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-116" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-59" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-74" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-72" vertex="1" connectable="0"> <mxGeometry x="0.875" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-32" value="Section" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-75" value="PostSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="280" y="1338.82" width="160" height="144" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-75" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-32" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-76" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-75" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-33" value="+ post_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-32" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-77" value="+ post_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-75" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-34" value="+ order: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-32" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-78" value="+ order: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-75" vertex="1"> <mxGeometry y="92" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-35" value="+ type: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-32" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-79" value="+ type: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-75" vertex="1"> <mxGeometry y="118" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-36" value="TextSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-80" value="TextSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="40" y="1578.82" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-78" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-36" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-81" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-80" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-37" value="+ section_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-36" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-82" value="+ post_section_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-80" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-40" value="ImageSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-83" value="ImageSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="280" y="1578.82" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-77" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-40" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-84" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-83" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-80" value="+ section_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-40" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-85" value="+ post_section_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-83" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-44" value="VideoSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-86" value="VideoSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="520" y="1578.82" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-79" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-44" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-87" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-86" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-81" value="+ section_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-44" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-88" value="+ post_section_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-86" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-62" target="5Q2xIMhyePjjlUECNHq1-23" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-89" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-92" target="EAtUI1jlxP2QV-DOA4-n-58" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="600" y="998.82" /> @@ -378,35 +402,35 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-95" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-72" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-90" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-89" vertex="1" connectable="0"> <mxGeometry x="0.8766" relative="1" as="geometry"> <mxPoint y="4" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-96" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-72" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-91" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-89" vertex="1" connectable="0"> <mxGeometry x="-0.881" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-62" value="Category" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-92" value="Category" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="520" y="818.82" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-63" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-62" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-93" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-92" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-64" value="+ organization_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-62" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-94" value="+ organization_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-92" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-66" value="Metadata" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-95" value="Metadata" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="40" y="1338.82" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-76" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-66" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-96" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-95" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-67" value="+ post_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-66" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-97" value="+ post_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-95" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-103" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="5Q2xIMhyePjjlUECNHq1-99" target="5Q2xIMhyePjjlUECNHq1-23" edge="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-98" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-101" target="EAtUI1jlxP2QV-DOA4-n-58" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="120" y="1038.82" /> @@ -414,70 +438,361 @@ </Array> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-105" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-103" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-99" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-98" vertex="1" connectable="0"> <mxGeometry x="0.9014" y="-1" relative="1" as="geometry"> <mxPoint y="-4" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-106" value="0..100" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5Q2xIMhyePjjlUECNHq1-103" vertex="1" connectable="0"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-100" value="0..100" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-98" vertex="1" connectable="0"> <mxGeometry x="-0.8692" relative="1" as="geometry"> <mxPoint y="4" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-99" value="PostAuthor" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-101" value="PostAuthor" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="40" y="818.82" width="160" height="144" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-100" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-99" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-102" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-101" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-101" value="+ author_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-99" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-103" value="+ author_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-101" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-107" value="+ post_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-99" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-104" value="+ post_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-101" vertex="1"> <mxGeometry y="92" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="5Q2xIMhyePjjlUECNHq1-104" value="+ anonymous: bool" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="5Q2xIMhyePjjlUECNHq1-99" vertex="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-105" value="+ anonymous: bool" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-101" vertex="1"> <mxGeometry y="118" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-37" value="Roles" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-106" value="Roles" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="1160" y="90" width="200" height="260" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-38" value="App Administrator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-107" value="App Administrator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="26" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-44" value="App Moderator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-108" value="App Moderator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="52" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-48" value="App Bot" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-109" value="App Bot" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="78" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-56" value="Organization Observer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-110" value="Organization Observer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="104" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-39" value="Organization Administrator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-111" value="Organization Administrator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="130" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-45" value="Organization Moderator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-112" value="Organization Moderator" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="156" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-40" value="Organization Author" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-113" value="Organization Author" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="182" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-43" value="Organization Designer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-114" value="Organization Designer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="208" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-47" value="Organization Bot" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-37"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-115" value="Organization Bot" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="EAtUI1jlxP2QV-DOA4-n-106" vertex="1"> <mxGeometry y="234" width="200" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-50" value="Permissions" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-116" value="Permissions" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="1040" y="480" width="160" height="92" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-51" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-50"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-117" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-116" vertex="1"> <mxGeometry y="40" width="160" height="26" as="geometry" /> </mxCell> - <mxCell id="no8C9QRHOJscCkUKzEsH-52" value="+ role_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" vertex="1" parent="no8C9QRHOJscCkUKzEsH-50"> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-118" value="+ role_id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-116" vertex="1"> <mxGeometry y="66" width="160" height="26" as="geometry" /> </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-119" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-147" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-2600" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-120" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-119" vertex="1" connectable="0"> + <mxGeometry x="0.9833" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-121" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-187" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-122" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-121" vertex="1" connectable="0"> + <mxGeometry x="0.6668" relative="1" as="geometry"> + <mxPoint y="22" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-183" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-440" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-124" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-123" vertex="1" connectable="0"> + <mxGeometry x="0.8899" y="1" relative="1" as="geometry"> + <mxPoint x="-1" y="6" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-125" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-179" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-680" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-126" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-125" vertex="1" connectable="0"> + <mxGeometry x="0.9273" y="-1" relative="1" as="geometry"> + <mxPoint x="1" y="1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-127" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-175" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-920" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-128" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-127" vertex="1" connectable="0"> + <mxGeometry x="0.9503" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-129" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-171" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-1160" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-130" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-129" vertex="1" connectable="0"> + <mxGeometry x="0.9652" y="1" relative="1" as="geometry"> + <mxPoint x="-1" y="-2" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-163" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-1400" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-132" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-131" vertex="1" connectable="0"> + <mxGeometry x="0.9682" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-159" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-1640" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-134" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-133" vertex="1" connectable="0"> + <mxGeometry x="0.9754" relative="1" as="geometry"> + <mxPoint y="-2" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-135" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-167" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-1880" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-136" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-135" vertex="1" connectable="0"> + <mxGeometry x="0.977" y="1" relative="1" as="geometry"> + <mxPoint x="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-155" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-2120" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-138" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-137" vertex="1" connectable="0"> + <mxGeometry x="0.9797" y="1" relative="1" as="geometry"> + <mxPoint x="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-139" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="EAtUI1jlxP2QV-DOA4-n-142" target="EAtUI1jlxP2QV-DOA4-n-151" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-2140" y="790" as="targetPoint" /> + <Array as="points"> + <mxPoint x="-200" y="900" /> + <mxPoint x="-2360" y="900" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-140" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-139" vertex="1" connectable="0"> + <mxGeometry x="-0.9834" y="1" relative="1" as="geometry"> + <mxPoint x="-1" y="2" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-141" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EAtUI1jlxP2QV-DOA4-n-139" vertex="1" connectable="0"> + <mxGeometry x="0.9825" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-142" value="Page" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-280" y="578.8199999999999" width="160" height="144" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-143" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-142" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-144" value="<div>+ organization_id: int</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-142" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-145" value="<div>+ title: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-142" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-146" value="<div>+ description: String<br></div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-142" vertex="1"> + <mxGeometry y="118" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-147" value="Homepage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-2680" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-148" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-147" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-149" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-147" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-150" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-147" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-151" value="<div>AboutPage</div>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-2440" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-152" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-151" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-153" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-151" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-154" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-151" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-155" value="PostsPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-2200" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-156" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-155" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-157" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-155" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-158" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-155" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-159" value="CategoriesPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-1720" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-160" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-159" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-161" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-159" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-162" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-159" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-163" value="CategoryPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-1480" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-164" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-163" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-165" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-163" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-166" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-163" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-167" value="PostPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-1960" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-168" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-167" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-169" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-167" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-170" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-167" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-171" value="AuthorsPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-1240" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-172" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-171" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-173" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-171" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-174" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-171" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-175" value="AuthorPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-1000" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-176" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-175" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-177" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-175" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-178" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-175" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-179" value="LegalPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-760" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-180" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-179" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-181" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-179" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-182" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-179" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-183" value="RobotsPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-520" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-184" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-183" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-185" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-183" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-186" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-183" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-187" value="WebmanifestPage" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=40;fillColor=default;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="-280" y="984.86" width="160" height="118" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-188" value="+ id: int" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-187" vertex="1"> + <mxGeometry y="40" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-189" value="<div>+ name: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-187" vertex="1"> + <mxGeometry y="66" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="EAtUI1jlxP2QV-DOA4-n-190" value="<div>+ slug: String</div>" style="text;strokeColor=default;fillColor=default;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fillStyle=auto;dashed=1;" parent="EAtUI1jlxP2QV-DOA4-n-187" vertex="1"> + <mxGeometry y="92" width="160" height="26" as="geometry" /> + </mxCell> </root> </mxGraphModel> </diagram> diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..02bb9cebfc02de6981b98013536a775ae9660eb0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1210 @@ +{ + "name": "api-athuna", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "wrangler": "^3.90.0" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.4.tgz", + "integrity": "sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "mime": "^3.0.0" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/@cloudflare/workerd-darwin-64": { + "version": "1.20241106.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20241106.1.tgz", + "integrity": "sha512-zxvaToi1m0qzAScrxFt7UvFVqU8DxrCO2CinM1yQkv5no7pA1HolpIrwZ0xOhR3ny64Is2s/J6BrRjpO5dM9Zw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-darwin-arm64": { + "version": "1.20241106.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20241106.1.tgz", + "integrity": "sha512-j3dg/42D/bPgfNP3cRUBxF+4waCKO/5YKwXNj+lnVOwHxDu+ne5pFw9TIkKYcWTcwn0ZUkbNZNM5rhJqRn4xbg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-64": { + "version": "1.20241106.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20241106.1.tgz", + "integrity": "sha512-Ih+Ye8E1DMBXcKrJktGfGztFqHKaX1CeByqshmTbODnWKHt6O65ax3oTecUwyC0+abuyraOpAtdhHNpFMhUkmw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-arm64": { + "version": "1.20241106.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20241106.1.tgz", + "integrity": "sha512-mdQFPk4+14Yywn7n1xIzI+6olWM8Ybz10R7H3h+rk0XulMumCWUCy1CzIDauOx6GyIcSgKIibYMssVHZR30ObA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-windows-64": { + "version": "1.20241106.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20241106.1.tgz", + "integrity": "sha512-4rtcss31E/Rb/PeFocZfr+B9i1MdrkhsTBWizh8siNR4KMmkslU2xs2wPaH1z8+ErxkOsHrKRa5EPLh5rIiFeg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workers-shared": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-shared/-/workers-shared-0.8.0.tgz", + "integrity": "sha512-1OvFkNtslaMZAJsaocTmbACApgmWv55uLpNj50Pn2MGcxdAjpqykXJFQw5tKc+lGV9TDZh9oO3Rsk17IEQDzIg==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "mime": "^3.0.0", + "zod": "^3.22.3" + }, + "engines": { + "node": ">=16.7.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-plugins/node-globals-polyfill": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", + "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", + "license": "ISC", + "peerDependencies": { + "esbuild": "*" + } + }, + "node_modules/@esbuild-plugins/node-modules-polyfill": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz", + "integrity": "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==", + "license": "ISC", + "dependencies": { + "escape-string-regexp": "^4.0.0", + "rollup-plugin-node-polyfills": "^0.2.1" + }, + "peerDependencies": { + "esbuild": "*" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@types/node": { + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz", + "integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/as-table": { + "version": "1.0.55", + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", + "license": "MIT", + "dependencies": { + "printable-characters": "^1.0.42" + } + }, + "node_modules/blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "license": "MIT" + }, + "node_modules/capnp-ts": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/capnp-ts/-/capnp-ts-0.7.0.tgz", + "integrity": "sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.1", + "tslib": "^2.2.0" + } + }, + "node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", + "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", + "license": "MIT" + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "license": "MIT" + }, + "node_modules/exit-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-source": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", + "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", + "license": "Unlicense", + "dependencies": { + "data-uri-to-buffer": "^2.0.0", + "source-map": "^0.6.1" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/itty-time": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/itty-time/-/itty-time-1.0.6.tgz", + "integrity": "sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/miniflare": { + "version": "3.20241106.1", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20241106.1.tgz", + "integrity": "sha512-dM3RBlJE8rUFxnqlPCaFCq0E7qQqEQvKbYX7W/APGCK+rLcyLmEBzC4GQR/niXdNM/oV6gdg9AA50ghnn2ALuw==", + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "0.8.1", + "acorn": "^8.8.0", + "acorn-walk": "^8.2.0", + "capnp-ts": "^0.7.0", + "exit-hook": "^2.2.1", + "glob-to-regexp": "^0.4.1", + "stoppable": "^1.1.0", + "undici": "^5.28.4", + "workerd": "1.20241106.1", + "ws": "^8.18.0", + "youch": "^3.2.2", + "zod": "^3.22.3" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=16.13" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/ohash": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", + "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==", + "license": "MIT" + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/printable-characters": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", + "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", + "license": "Unlicense" + }, + "node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", + "license": "MIT", + "dependencies": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "node_modules/rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "license": "MIT", + "dependencies": { + "rollup-plugin-inject": "^3.0.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "license": "MIT", + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, + "node_modules/stacktracey": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", + "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", + "license": "Unlicense", + "dependencies": { + "as-table": "^1.0.36", + "get-source": "^2.0.12" + } + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "license": "MIT", + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/unenv": { + "name": "unenv-nightly", + "version": "2.0.0-20241111-080453-894aa31", + "resolved": "https://registry.npmjs.org/unenv-nightly/-/unenv-nightly-2.0.0-20241111-080453-894aa31.tgz", + "integrity": "sha512-0W39QQOQ9VE8kVVUpGwEG+pZcsCXk5wqNG6rDPE6Gr+fiA69LR0qERM61hW5KCOkC1/ArCFrfCGjwHyyv/bI0Q==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "ohash": "^1.1.4", + "pathe": "^1.1.2", + "ufo": "^1.5.4" + } + }, + "node_modules/workerd": { + "version": "1.20241106.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20241106.1.tgz", + "integrity": "sha512-1GdKl0kDw8rrirr/ThcK66Kbl4/jd4h8uHx5g7YHBrnenY5SX1UPuop2cnCzYUxlg55kPjzIqqYslz1muRFgFw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "bin": { + "workerd": "bin/workerd" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "@cloudflare/workerd-darwin-64": "1.20241106.1", + "@cloudflare/workerd-darwin-arm64": "1.20241106.1", + "@cloudflare/workerd-linux-64": "1.20241106.1", + "@cloudflare/workerd-linux-arm64": "1.20241106.1", + "@cloudflare/workerd-windows-64": "1.20241106.1" + } + }, + "node_modules/wrangler": { + "version": "3.90.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.90.0.tgz", + "integrity": "sha512-E/6E9ORAl987+3kP8wDiE3L1lj9r4vQ32/dl5toIxIkSMssmPRQVdxqwgMxbxJrytbFNo8Eo6swgjd4y4nUaLg==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "@cloudflare/kv-asset-handler": "0.3.4", + "@cloudflare/workers-shared": "0.8.0", + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", + "@esbuild-plugins/node-modules-polyfill": "^0.2.2", + "blake3-wasm": "^2.1.5", + "chokidar": "^4.0.1", + "date-fns": "^4.1.0", + "esbuild": "0.17.19", + "itty-time": "^1.0.6", + "miniflare": "3.20241106.1", + "nanoid": "^3.3.3", + "path-to-regexp": "^6.3.0", + "resolve": "^1.22.8", + "resolve.exports": "^2.0.2", + "selfsigned": "^2.0.1", + "source-map": "^0.6.1", + "unenv": "npm:unenv-nightly@2.0.0-20241111-080453-894aa31", + "workerd": "1.20241106.1", + "xxhash-wasm": "^1.0.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=16.17.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@cloudflare/workers-types": "^4.20241106.0" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + } + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "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 + } + } + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "license": "MIT" + }, + "node_modules/youch": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", + "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", + "license": "MIT", + "dependencies": { + "cookie": "^0.7.1", + "mustache": "^4.2.0", + "stacktracey": "^2.1.8" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000000000000000000000000000000000000..0f5c07153c4d3ab74f0516d8779808e1dcdee442 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "wrangler": "^3.90.0" + } +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..1dd93536e616c2e511ffed8d6af5bb229b374fb4 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,22 @@ +use worker::*; +use chrono::Utc; + +fn ping(_req: Request, _ctx: RouteContext<()>) -> Result<Response> { + Response::ok(Utc::now().to_string()) +} + +const BASE_PATH: &str = concat!("/v", env!("CARGO_PKG_VERSION_MAJOR")); + +#[event(fetch)] +async fn fetch( + req: Request, + env: Env, + _ctx: Context, +) -> Result<Response> { + console_error_panic_hook::set_once(); + + let router = Router::new(); + router + .get(&(BASE_PATH.to_owned() + "/ping"), ping) + .run(req, env).await +} diff --git a/wrangler.toml b/wrangler.toml new file mode 100644 index 0000000000000000000000000000000000000000..94a75a9fceeba57503f7263767df12b174072088 --- /dev/null +++ b/wrangler.toml @@ -0,0 +1,6 @@ +name = "api-athuna" +main = "build/worker/shim.mjs" +compatibility_date = "2024-11-22" + +[build] +command = "cargo install -q worker-build && worker-build --release"