diff --git a/api/lib/models.dart b/api/lib/models.dart index 7cb9626..e2658cd 100644 --- a/api/lib/models.dart +++ b/api/lib/models.dart @@ -2,10 +2,10 @@ export 'src/models/background.dart'; export 'src/models/chat.dart'; export 'src/models/data.dart'; export 'src/models/deck.dart'; +export 'src/models/definition.dart'; export 'src/models/dialog.dart'; export 'src/models/info.dart'; export 'src/models/meta.dart'; -export 'src/models/definition.dart'; export 'src/models/server.dart'; export 'src/models/table.dart'; export 'src/models/translation.dart'; diff --git a/app/android/settings.gradle b/app/android/settings.gradle index 68268e2..4cdcf27 100644 --- a/app/android/settings.gradle +++ b/app/android/settings.gradle @@ -18,7 +18,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '8.6.1' apply false + id "com.android.application" version '8.7.0' apply false id "org.jetbrains.kotlin.android" version "1.7.10" apply false } diff --git a/app/pubspec.lock b/app/pubspec.lock index 38601bd..9e7b58c 100644 --- a/app/pubspec.lock +++ b/app/pubspec.lock @@ -323,10 +323,10 @@ packages: dependency: transitive description: name: file_selector_linux - sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492" + sha256: "712ce7fab537ba532c8febdb1a8f167b32441e74acd68c3ccb2e36dcb52c4ab2" url: "https://pub.dev" source: hosted - version: "0.9.2+1" + version: "0.9.3" file_selector_macos: dependency: transitive description: diff --git a/docs/package.json b/docs/package.json index 928468c..c49dedd 100644 --- a/docs/package.json +++ b/docs/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.6.2", "@astrojs/starlight": "^0.28.2", "@phosphor-icons/react": "^2.1.7", - "@types/react": "^18.3.10", + "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", "astro": "^4.15.10", "react": "^18.3.1", diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index ac239ab..63ba4ee 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.9.3(typescript@5.6.2) '@astrojs/react': specifier: ^3.6.2 - version: 3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(sass@1.79.4)) + version: 3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(sass@1.79.4)) '@astrojs/starlight': specifier: ^0.28.2 version: 0.28.2(astro@4.15.10(rollup@4.24.0)(sass@1.79.4)(typescript@5.6.2)) @@ -21,8 +21,8 @@ importers: specifier: ^2.1.7 version: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react': - specifier: ^18.3.10 - version: 18.3.10 + specifier: ^18.3.11 + version: 18.3.11 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 @@ -119,111 +119,111 @@ packages: '@astrojs/yaml2ts@0.2.1': resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + '@babel/core@7.25.7': + resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + '@babel/helper-annotate-as-pure@7.25.7': + resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.25.7': + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.7': + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-self@7.25.7': + resolution: {integrity: sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-react-jsx-source@7.25.7': + resolution: {integrity: sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.25.2': - resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} + '@babel/plugin-transform-react-jsx@7.25.7': + resolution: {integrity: sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + '@babel/types@7.25.7': + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} '@ctrl/tinycolor@4.1.0': @@ -735,8 +735,8 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.10': - resolution: {integrity: sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==} + '@types/react@18.3.11': + resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} @@ -1364,9 +1364,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true json-schema-traverse@1.0.0: @@ -1776,8 +1776,8 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex@4.3.2: - resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} + regex@4.3.3: + resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} rehype-expressive-code@0.35.6: resolution: {integrity: sha512-pPdE+pRcRw01kxMOwHQjuRxgwlblZt5+wAc3w2aPGgmcnn57wYjn07iKO7zaznDxYVxMYVvYlnL+R3vWFQS4Gw==} @@ -2397,9 +2397,9 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/react@3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(sass@1.79.4))': + '@astrojs/react@3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(sass@1.79.4))': dependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 '@types/react-dom': 18.3.0 '@vitejs/plugin-react': 4.3.2(vite@5.4.8(sass@1.79.4)) react: 18.3.1 @@ -2459,25 +2459,25 @@ snapshots: dependencies: yaml: 2.5.1 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.25.7': dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.25.7 picocolors: 1.1.0 - '@babel/compat-data@7.25.4': {} + '@babel/compat-data@7.25.7': {} - '@babel/core@7.25.2': + '@babel/core@7.25.7': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -2486,125 +2486,125 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.25.6': + '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.24.7': + '@babel/helper-annotate-as-pure@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.25.7': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.24.8': {} + '@babel/helper-plugin-utils@7.25.7': {} - '@babel/helper-simple-access@7.24.7': + '@babel/helper-simple-access@7.25.7': dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-option@7.24.8': {} + '@babel/helper-validator-option@7.25.7': {} - '@babel/helpers@7.25.6': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 - '@babel/highlight@7.24.7': + '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.25.6': + '@babel/parser@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/runtime@7.25.6': + '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.0': + '@babel/template@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 - '@babel/traverse@7.25.6': + '@babel/traverse@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.6': + '@babel/types@7.25.7': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 '@ctrl/tinycolor@4.1.0': {} @@ -2976,24 +2976,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/cookie@0.6.0': {} @@ -3029,9 +3029,9 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.10 + '@types/react': 18.3.11 - '@types/react@18.3.10': + '@types/react@18.3.11': dependencies: '@types/prop-types': 15.7.13 csstype: 3.1.3 @@ -3048,9 +3048,9 @@ snapshots: '@vitejs/plugin-react@4.3.2(vite@5.4.8(sass@1.79.4))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 vite: 5.4.8(sass@1.79.4) @@ -3168,9 +3168,9 @@ snapshots: '@astrojs/internal-helpers': 0.4.1 '@astrojs/markdown-remark': 5.2.0 '@astrojs/telemetry': 3.1.0 - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/types': 7.25.7 '@oslojs/encoding': 1.1.0 '@rollup/pluginutils': 5.1.2(rollup@4.24.0) '@types/babel__core': 7.20.5 @@ -3774,7 +3774,7 @@ snapshots: i18next@23.15.1: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 immutable@4.3.7: {} @@ -3846,7 +3846,7 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@2.5.2: {} + jsesc@3.0.2: {} json-schema-traverse@1.0.0: {} @@ -3896,8 +3896,8 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 source-map-js: 1.2.1 markdown-extensions@2.0.0: {} @@ -4400,7 +4400,7 @@ snapshots: oniguruma-to-js@0.4.3: dependencies: - regex: 4.3.2 + regex: 4.3.3 ora@8.1.0: dependencies: @@ -4543,7 +4543,7 @@ snapshots: regenerator-runtime@0.14.1: {} - regex@4.3.2: {} + regex@4.3.3: {} rehype-expressive-code@0.35.6: dependencies: diff --git a/server/.gitignore b/server/.gitignore index 7d32e71..1ec03b2 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -1,6 +1,7 @@ # https://dart.dev/guides/libraries/private-files # Created by `dart pub` .dart_tool/ +doc/ # Runtime files world.qka diff --git a/server/bin/quokka_server.dart b/server/bin/quokka_server.dart index c2e6d6b..f14bc4e 100644 --- a/server/bin/quokka_server.dart +++ b/server/bin/quokka_server.dart @@ -1,4 +1,4 @@ -import 'package:quokka_server/main.dart'; +import 'package:quokka_server/src/main.dart'; Future main(List arguments) { return runServer(arguments); diff --git a/server/lib/quokka_server.dart b/server/lib/quokka_server.dart index 4051017..8e548ae 100644 --- a/server/lib/quokka_server.dart +++ b/server/lib/quokka_server.dart @@ -1,14 +1,15 @@ /// Official quokka server library library; -export 'asset.dart'; -export 'main.dart'; -export 'server.dart'; -export 'programs/kick.dart'; -export 'programs/packs.dart'; -export 'programs/players.dart'; -export 'programs/save.dart'; -export 'programs/say.dart'; -export 'programs/stop.dart'; -export 'package:networker/networker.dart'; export 'package:quokka_api/quokka_api.dart'; +export 'src/asset.dart'; +export 'src/events.dart'; +export 'src/main.dart'; +export 'src/server.dart'; +export 'src/programs/kick.dart'; +export 'src/programs/packs.dart'; +export 'src/programs/players.dart'; +export 'src/programs/save.dart'; +export 'src/programs/say.dart'; +export 'src/programs/stop.dart'; +export 'package:networker/networker.dart'; diff --git a/server/lib/asset.dart b/server/lib/src/asset.dart similarity index 100% rename from server/lib/asset.dart rename to server/lib/src/asset.dart diff --git a/server/lib/events.dart b/server/lib/src/events.dart similarity index 97% rename from server/lib/events.dart rename to server/lib/src/events.dart index b1924df..53e4513 100644 --- a/server/lib/events.dart +++ b/server/lib/src/events.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:networker/networker.dart'; import 'package:quokka_api/quokka_api.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; mixin ServerReference { QuokkaServer get server; diff --git a/server/lib/main.dart b/server/lib/src/main.dart similarity index 98% rename from server/lib/main.dart rename to server/lib/src/main.dart index a8d4835..b240fb2 100644 --- a/server/lib/main.dart +++ b/server/lib/src/main.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:args/args.dart'; import 'package:quokka_api/quokka_api.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; const String version = '0.0.1'; diff --git a/server/lib/programs/kick.dart b/server/lib/src/programs/kick.dart similarity index 94% rename from server/lib/programs/kick.dart rename to server/lib/src/programs/kick.dart index a50c462..ccd7df1 100644 --- a/server/lib/programs/kick.dart +++ b/server/lib/src/programs/kick.dart @@ -1,5 +1,5 @@ import 'package:consoler/consoler.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; class KickProgram extends ConsoleProgram { final QuokkaServer server; diff --git a/server/lib/programs/packs.dart b/server/lib/src/programs/packs.dart similarity index 93% rename from server/lib/programs/packs.dart rename to server/lib/src/programs/packs.dart index 1060163..eed6e23 100644 --- a/server/lib/programs/packs.dart +++ b/server/lib/src/programs/packs.dart @@ -1,6 +1,6 @@ import 'package:consoler/consoler.dart'; import 'package:quokka_api/quokka_api.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; class PacksProgram extends ConsoleProgram { final QuokkaServer server; diff --git a/server/lib/programs/players.dart b/server/lib/src/programs/players.dart similarity index 91% rename from server/lib/programs/players.dart rename to server/lib/src/programs/players.dart index b8fd806..3b6aa99 100644 --- a/server/lib/programs/players.dart +++ b/server/lib/src/programs/players.dart @@ -1,5 +1,5 @@ import 'package:consoler/consoler.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; class PlayersProgram extends ConsoleProgram { final QuokkaServer server; diff --git a/server/lib/programs/save.dart b/server/lib/src/programs/save.dart similarity index 90% rename from server/lib/programs/save.dart rename to server/lib/src/programs/save.dart index 935475b..436aa33 100644 --- a/server/lib/programs/save.dart +++ b/server/lib/src/programs/save.dart @@ -1,5 +1,5 @@ import 'package:consoler/consoler.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; class SaveProgram extends ConsoleProgram { final QuokkaServer server; diff --git a/server/lib/programs/say.dart b/server/lib/src/programs/say.dart similarity index 91% rename from server/lib/programs/say.dart rename to server/lib/src/programs/say.dart index cdfefe0..a12f224 100644 --- a/server/lib/programs/say.dart +++ b/server/lib/src/programs/say.dart @@ -1,6 +1,6 @@ import 'package:consoler/consoler.dart'; import 'package:quokka_api/quokka_api.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; class SayProgram extends ConsoleProgram { final QuokkaServer server; diff --git a/server/lib/programs/stop.dart b/server/lib/src/programs/stop.dart similarity index 85% rename from server/lib/programs/stop.dart rename to server/lib/src/programs/stop.dart index 12b56e8..863955f 100644 --- a/server/lib/programs/stop.dart +++ b/server/lib/src/programs/stop.dart @@ -1,5 +1,5 @@ import 'package:consoler/consoler.dart'; -import 'package:quokka_server/server.dart'; +import 'package:quokka_server/src/server.dart'; class StopProgram extends ConsoleProgram { final QuokkaServer server; diff --git a/server/lib/server.dart b/server/lib/src/server.dart similarity index 92% rename from server/lib/server.dart rename to server/lib/src/server.dart index 20cd6e8..99a48b3 100644 --- a/server/lib/server.dart +++ b/server/lib/src/server.dart @@ -8,13 +8,13 @@ import 'package:consoler/consoler.dart'; import 'package:networker/networker.dart'; import 'package:networker_socket/server.dart'; import 'package:quokka_api/quokka_api.dart'; -import 'package:quokka_server/asset.dart'; -import 'package:quokka_server/events.dart'; -import 'package:quokka_server/programs/packs.dart'; -import 'package:quokka_server/programs/players.dart'; -import 'package:quokka_server/programs/save.dart'; -import 'package:quokka_server/programs/say.dart'; -import 'package:quokka_server/programs/stop.dart'; +import 'package:quokka_server/src/asset.dart'; +import 'package:quokka_server/src/events.dart'; +import 'package:quokka_server/src/programs/packs.dart'; +import 'package:quokka_server/src/programs/players.dart'; +import 'package:quokka_server/src/programs/save.dart'; +import 'package:quokka_server/src/programs/say.dart'; +import 'package:quokka_server/src/programs/stop.dart'; Future _computeEvent(ServerWorldEvent event, WorldState state, Map signature) { @@ -27,7 +27,7 @@ final class QuokkaServer extends Bloc { final ServerAssetManager assetManager; final String? worldFile; final eventSystem = EventSystem(); - bool _temp = false; + bool autosave = false; NetworkerSocketServer? _server; NetworkerPipe? _pipe; @@ -94,7 +94,7 @@ final class QuokkaServer extends Bloc { } log("Starting server on port $port", level: LogLevel.info); log('Verbose logging activated', level: LogLevel.verbose); - _temp = autosave; + this.autosave = autosave; final server = _server = NetworkerSocketServer(InternetAddress.anyIPv4, port, filterConnections: buildFilterConnections( @@ -173,7 +173,7 @@ final class QuokkaServer extends Bloc { } Future save({bool force = false}) async { - if (!force && _temp) return; + if (!force && autosave) return; final bytes = state.save().exportAsBytes(); await File(defaultWorldFile).writeAsBytes(bytes); } diff --git a/server/test/dialog.dart b/server/test/dialog.dart index b8aec94..968efa2 100644 --- a/server/test/dialog.dart +++ b/server/test/dialog.dart @@ -40,26 +40,30 @@ In conclusion, programming has become an indispensable skill in the modern world Future onLoad(QuokkaServer server) async { print("on load was called"); - server.eventSystem.on().listen((e) { - print("Listener was called, opening dialog"); - e.sendEvent(DialogOpened( - GameDialog(id: "testDialog", title: "TestDialog") - .markdown(testContent) - .textField( - "TestTextField", - id: "testTextField", - placeholder: "TestPlaceholder", - multiline: true, - password: true, - ) - .action(GameDialogButton("TestButton")), - )); - }); - server.eventSystem.on().listen((e) { - final value = e.clientEvent.value; - print("Dialog ${e.clientEvent.id} closed, got ${e.clientEvent.value}"); - if (value != null) { - e.cancel(); - } - }); + server.eventSystem + ..on().listen((e) { + print("Listener was called, opening dialog"); + e.sendEvent(DialogOpened( + GameDialog(id: "testDialog", title: "TestDialog") + .markdown(testContent) + .textField( + "TestTextField", + id: "testTextField", + placeholder: "TestPlaceholder", + multiline: true, + password: true, + ) + .action(GameDialogButton("TestButton")), + )); + }) + ..on().listen((e) { + print("play joined"); + }) + ..on().listen((e) { + final value = e.clientEvent.value; + print("Dialog ${e.clientEvent.id} closed, got ${e.clientEvent.value}"); + if (value != null) { + e.cancel(); + } + }); } diff --git a/server/test/duplicate.dart b/server/test/duplicate.dart index 5c04009..1871dda 100644 --- a/server/test/duplicate.dart +++ b/server/test/duplicate.dart @@ -16,7 +16,7 @@ Future onLoad(QuokkaServer server) async { final event = e.clientEvent; final table = e.getTableOrDefault(event.table); final cell = table.getCell(event.from); - final objects = List.from(table.getCell(event.to).objects); + final objects = []; for (final index in event.objects) { final object = cell.objects[index]; objects.add(object);