feat: ➖ remove vue and work on init
This commit is contained in:
parent
64361f02fe
commit
dc16fc8c49
@ -1,14 +1,7 @@
|
||||
module.exports = {
|
||||
extends: [
|
||||
'@nextcloud',
|
||||
'@vue/eslint-config-typescript/recommended',
|
||||
'plugin:prettier/recommended',
|
||||
],
|
||||
parser: 'vue-eslint-parser',
|
||||
extends: ['@nextcloud', 'plugin:prettier/recommended'],
|
||||
rules: {
|
||||
'jsdoc/require-jsdoc': 'off',
|
||||
'vue/first-attribute-linebreak': 'off',
|
||||
'sort-imports': 'error',
|
||||
'vue/attributes-order': ['error', { alphabetical: true }],
|
||||
},
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
<name>Retro</name>
|
||||
<summary>🕹️ Play your favorite retro games in Nextcloud</summary>
|
||||
<description>An example description</description>
|
||||
<version>0.1.0</version>
|
||||
<version>1.0.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author mail="xefir@crystalyx.net" homepage="https://www.crystalyx.net">Michel Roux</author>
|
||||
<namespace>Retro</namespace>
|
||||
@ -13,7 +13,7 @@
|
||||
<website>https://git.crystalyx.net/Xefir/retro</website>
|
||||
<bugs>https://git.crystalyx.net/Xefir/retro/issues</bugs>
|
||||
<dependencies>
|
||||
<php min-version="8.1"/>
|
||||
<php min-version="8.2"/>
|
||||
<nextcloud min-version="29" max-version="30"/>
|
||||
</dependencies>
|
||||
<navigations>
|
||||
|
@ -16,7 +16,7 @@
|
||||
"rector": "rector && composer cs:fix"
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.1"
|
||||
"php": "^8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"nextcloud/ocp": "^30.0.4",
|
||||
@ -24,13 +24,14 @@
|
||||
"nextcloud/coding-standard": "^1.3.2",
|
||||
"nextcloud/rector": "^0.2.1",
|
||||
"rector/rector": "~1.2.10",
|
||||
"symfony/mime": "^7.2.1",
|
||||
"vimeo/psalm": "^5.26.1"
|
||||
},
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
"sort-packages": true,
|
||||
"platform": {
|
||||
"php": "8.1"
|
||||
"php": "8.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
285
composer.lock
generated
285
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "71be025f1b762a92e851b18347e49db6",
|
||||
"content-hash": "1c093d99c361ea9e5e1b4e69b06dd6d9",
|
||||
"packages": [],
|
||||
"packages-dev": [
|
||||
{
|
||||
@ -1214,16 +1214,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "1.12.13",
|
||||
"version": "1.12.14",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan.git",
|
||||
"reference": "9b469068840cfa031e1deaf2fa1886d00e20680f"
|
||||
"reference": "e73868f809e68fff33be961ad4946e2e43ec9e38"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b469068840cfa031e1deaf2fa1886d00e20680f",
|
||||
"reference": "9b469068840cfa031e1deaf2fa1886d00e20680f",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e73868f809e68fff33be961ad4946e2e43ec9e38",
|
||||
"reference": "e73868f809e68fff33be961ad4946e2e43ec9e38",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1268,7 +1268,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-17T17:00:20+00:00"
|
||||
"time": "2024-12-31T07:26:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/clock",
|
||||
@ -2387,29 +2387,29 @@
|
||||
},
|
||||
{
|
||||
"name": "sebastian/diff",
|
||||
"version": "5.1.1",
|
||||
"version": "6.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/diff.git",
|
||||
"reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
|
||||
"reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
|
||||
"reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
|
||||
"reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1"
|
||||
"php": ">=8.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^10.0",
|
||||
"symfony/process": "^6.4"
|
||||
"phpunit/phpunit": "^11.0",
|
||||
"symfony/process": "^4.2 || ^5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "5.1-dev"
|
||||
"dev-main": "6.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2442,7 +2442,7 @@
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/diff/issues",
|
||||
"security": "https://github.com/sebastianbergmann/diff/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
|
||||
"source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2450,7 +2450,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-03-02T07:15:17+00:00"
|
||||
"time": "2024-07-03T04:53:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/array-to-xml",
|
||||
@ -2522,47 +2522,46 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v6.4.15",
|
||||
"version": "v7.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd"
|
||||
"reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
|
||||
"reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
|
||||
"reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/service-contracts": "^2.5|^3",
|
||||
"symfony/string": "^5.4|^6.0|^7.0"
|
||||
"symfony/string": "^6.4|^7.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<5.4",
|
||||
"symfony/dotenv": "<5.4",
|
||||
"symfony/event-dispatcher": "<5.4",
|
||||
"symfony/lock": "<5.4",
|
||||
"symfony/process": "<5.4"
|
||||
"symfony/dependency-injection": "<6.4",
|
||||
"symfony/dotenv": "<6.4",
|
||||
"symfony/event-dispatcher": "<6.4",
|
||||
"symfony/lock": "<6.4",
|
||||
"symfony/process": "<6.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0|2.0|3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "^1|^2|^3",
|
||||
"symfony/config": "^5.4|^6.0|^7.0",
|
||||
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
|
||||
"symfony/event-dispatcher": "^5.4|^6.0|^7.0",
|
||||
"symfony/config": "^6.4|^7.0",
|
||||
"symfony/dependency-injection": "^6.4|^7.0",
|
||||
"symfony/event-dispatcher": "^6.4|^7.0",
|
||||
"symfony/http-foundation": "^6.4|^7.0",
|
||||
"symfony/http-kernel": "^6.4|^7.0",
|
||||
"symfony/lock": "^5.4|^6.0|^7.0",
|
||||
"symfony/messenger": "^5.4|^6.0|^7.0",
|
||||
"symfony/process": "^5.4|^6.0|^7.0",
|
||||
"symfony/stopwatch": "^5.4|^6.0|^7.0",
|
||||
"symfony/var-dumper": "^5.4|^6.0|^7.0"
|
||||
"symfony/lock": "^6.4|^7.0",
|
||||
"symfony/messenger": "^6.4|^7.0",
|
||||
"symfony/process": "^6.4|^7.0",
|
||||
"symfony/stopwatch": "^6.4|^7.0",
|
||||
"symfony/var-dumper": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -2596,7 +2595,7 @@
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v6.4.15"
|
||||
"source": "https://github.com/symfony/console/tree/v7.2.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2612,7 +2611,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-06T14:19:14+00:00"
|
||||
"time": "2024-12-11T03:49:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@ -2683,25 +2682,25 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v6.4.13",
|
||||
"version": "v7.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3"
|
||||
"reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3",
|
||||
"reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
|
||||
"reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.8"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/process": "^5.4|^6.4|^7.0"
|
||||
"symfony/process": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -2729,7 +2728,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v6.4.13"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v7.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2745,7 +2744,91 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-10-25T15:07:50+00:00"
|
||||
"time": "2024-10-25T15:15:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v7.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283",
|
||||
"reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-intl-idn": "^1.10",
|
||||
"symfony/polyfill-mbstring": "^1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"egulias/email-validator": "~3.0.0",
|
||||
"phpdocumentor/reflection-docblock": "<3.2.2",
|
||||
"phpdocumentor/type-resolver": "<1.4.0",
|
||||
"symfony/mailer": "<6.4",
|
||||
"symfony/serializer": "<6.4.3|>7.0,<7.0.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"egulias/email-validator": "^2.1.10|^3.1|^4",
|
||||
"league/html-to-markdown": "^5.0",
|
||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^6.4|^7.0",
|
||||
"symfony/process": "^6.4|^7.0",
|
||||
"symfony/property-access": "^6.4|^7.0",
|
||||
"symfony/property-info": "^6.4|^7.0",
|
||||
"symfony/serializer": "^6.4.3|^7.0.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Mime\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Allows manipulating MIME messages",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"mime",
|
||||
"mime-type"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mime/tree/v7.2.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-07T08:50:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@ -2904,6 +2987,89 @@
|
||||
],
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.31.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
|
||||
"reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Laurent Bassin",
|
||||
"email": "laurent@bassin.info"
|
||||
},
|
||||
{
|
||||
"name": "Trevor Rowbotham",
|
||||
"email": "trevor.rowbotham@pm.me"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"idn",
|
||||
"intl",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.31.0",
|
||||
@ -3150,20 +3316,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v6.4.15",
|
||||
"version": "v7.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f"
|
||||
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
|
||||
"reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
|
||||
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-intl-grapheme": "~1.0",
|
||||
"symfony/polyfill-intl-normalizer": "~1.0",
|
||||
@ -3173,11 +3339,12 @@
|
||||
"symfony/translation-contracts": "<2.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/error-handler": "^5.4|^6.0|^7.0",
|
||||
"symfony/http-client": "^5.4|^6.0|^7.0",
|
||||
"symfony/intl": "^6.2|^7.0",
|
||||
"symfony/emoji": "^7.1",
|
||||
"symfony/error-handler": "^6.4|^7.0",
|
||||
"symfony/http-client": "^6.4|^7.0",
|
||||
"symfony/intl": "^6.4|^7.0",
|
||||
"symfony/translation-contracts": "^2.5|^3.0",
|
||||
"symfony/var-exporter": "^5.4|^6.0|^7.0"
|
||||
"symfony/var-exporter": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -3216,7 +3383,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v6.4.15"
|
||||
"source": "https://github.com/symfony/string/tree/v7.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -3232,7 +3399,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-13T13:31:12+00:00"
|
||||
"time": "2024-11-13T13:31:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vimeo/psalm",
|
||||
@ -3411,11 +3578,11 @@
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^8.1"
|
||||
"php": "^8.2"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
"php": "8.1"
|
||||
"php": "8.2"
|
||||
},
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="2 2 22 22">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path
|
||||
d="M16.5,9L13.5,12L16.5,15H22V9M9,16.5V22H15V16.5L12,13.5M7.5,9H2V15H7.5L10.5,12M15,7.5V2H9V7.5L12,10.5L15,7.5Z"
|
||||
d="M7,6H17A6,6 0 0,1 23,12A6,6 0 0,1 17,18C15.22,18 13.63,17.23 12.53,16H11.47C10.37,17.23 8.78,18 7,18A6,6 0 0,1 1,12A6,6 0 0,1 7,6M6,9V11H4V13H6V15H8V13H10V11H8V9H6M15.5,12A1.5,1.5 0 0,0 14,13.5A1.5,1.5 0 0,0 15.5,15A1.5,1.5 0 0,0 17,13.5A1.5,1.5 0 0,0 15.5,12M18.5,9A1.5,1.5 0 0,0 17,10.5A1.5,1.5 0 0,0 18.5,12A1.5,1.5 0 0,0 20,10.5A1.5,1.5 0 0,0 18.5,9Z"
|
||||
style="fill:#ffffff" />
|
||||
</svg>
|
Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 476 B |
@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace OCA\Retro\Controller;
|
||||
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\Attribute\ApiRoute;
|
||||
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\AppFramework\OCSController;
|
||||
|
||||
class ApiController extends OCSController
|
||||
{
|
||||
/**
|
||||
* An example API endpoint.
|
||||
*
|
||||
* @return DataResponse<Http::STATUS_OK, array{message: string}, array{}>
|
||||
*
|
||||
* 200: Data returned
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[ApiRoute(verb: 'GET', url: '/api')]
|
||||
public function index(): DataResponse {
|
||||
return new DataResponse(
|
||||
['message' => 'Hello world!']
|
||||
);
|
||||
}
|
||||
}
|
@ -9,16 +9,28 @@ use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http\Attribute\FrontpageRoute;
|
||||
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
||||
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
|
||||
use OCP\AppFramework\Http\Attribute\OpenAPI;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Services\IInitialState;
|
||||
use OCP\IRequest;
|
||||
use OCP\Util;
|
||||
|
||||
class PageController extends Controller
|
||||
{
|
||||
public function __construct(IRequest $request, private IInitialState $initialState)
|
||||
{
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
#[NoCSRFRequired]
|
||||
#[NoAdminRequired]
|
||||
#[OpenAPI(OpenAPI::SCOPE_IGNORE)]
|
||||
#[FrontpageRoute(verb: 'GET', url: '/')]
|
||||
public function index(): TemplateResponse {
|
||||
#[FrontpageRoute(verb: 'GET', url: '/{path}')]
|
||||
public function index(): TemplateResponse
|
||||
{
|
||||
Util::addStyle(Application::APP_ID, Application::APP_ID . '-main');
|
||||
Util::addScript(Application::APP_ID, Application::APP_ID . '-main');
|
||||
|
||||
$this->initialState->provideInitialState();
|
||||
|
||||
return new TemplateResponse(
|
||||
Application::APP_ID,
|
||||
'index',
|
||||
|
@ -10,6 +10,9 @@ use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\Util;
|
||||
|
||||
/**
|
||||
* @implements IEventListener<Event>
|
||||
*/
|
||||
class LoadAdditionalScriptsListener implements IEventListener
|
||||
{
|
||||
public function handle(Event $event): void {
|
||||
|
25
mime.php
Normal file
25
mime.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
// https://github.com/EmulatorJS/EmulatorJS/blob/main/index.html
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once __DIR__.'/vendor/autoload.php';
|
||||
|
||||
use Symfony\Component\Mime\MimeTypes;
|
||||
|
||||
$mime = new MimeTypes();
|
||||
|
||||
foreach ($argv as $i => $arg) {
|
||||
if (!$i) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$types = $mime->getMimeTypes($arg);
|
||||
|
||||
foreach ($types as $type) {
|
||||
if (preg_match('/^application\/x-.*-rom$/', $type)) {
|
||||
echo $type.PHP_EOL;
|
||||
}
|
||||
}
|
||||
}
|
2395
package-lock.json
generated
2395
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
19
package.json
19
package.json
@ -9,10 +9,10 @@
|
||||
"build": "vite build",
|
||||
"dev": "vite --mode development build",
|
||||
"watch": "vite --mode development build --watch",
|
||||
"lint": "vue-tsc && eslint src",
|
||||
"lint:fix": "vue-tsc && eslint src --fix",
|
||||
"stylelint": "stylelint src/**/*.vue src/**/*.scss src/**/*.css",
|
||||
"stylelint:fix": "stylelint src/**/*.vue src/**/*.scss src/**/*.css --fix"
|
||||
"lint": "tsc && eslint src",
|
||||
"lint:fix": "tsc && eslint src --fix",
|
||||
"stylelint": "stylelint src/**/*.scss src/**/*.css",
|
||||
"stylelint:fix": "stylelint src/**/*.scss src/**/*.css --fix"
|
||||
},
|
||||
"type": "module",
|
||||
"browserslist": [
|
||||
@ -20,28 +20,21 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"@emulatorjs/emulatorjs": "^4.2.0",
|
||||
"@formatjs/intl-segmenter": "^11.7.7",
|
||||
"@nextcloud/files": "^3.10.1",
|
||||
"@nextcloud/initial-state": "^2.2.0",
|
||||
"@nextcloud/l10n": "^3.1.0",
|
||||
"@nextcloud/paths": "^2.2.1",
|
||||
"@nextcloud/router": "^3.0.1",
|
||||
"@nextcloud/vite-config": "^2.2.2",
|
||||
"@nextcloud/vue": "9.0.0-alpha.5",
|
||||
"vite": "~5.4.11",
|
||||
"vue": "^3.5.13"
|
||||
"vite": "~5.4.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nextcloud/browserslist-config": "^3.0.1",
|
||||
"@nextcloud/eslint-config": "^8.4.1",
|
||||
"@nextcloud/prettier-config": "^1.1.0",
|
||||
"@nextcloud/stylelint-config": "^3.0.1",
|
||||
"@vue/eslint-config-typescript": "~13.0.0",
|
||||
"@vue/tsconfig": "^0.7.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"typescript": "~5.5.4",
|
||||
"vue-tsc": "^2.2.0"
|
||||
"typescript": "~5.5.4"
|
||||
},
|
||||
"prettier": "@nextcloud/prettier-config"
|
||||
}
|
||||
|
26
src/App.vue
26
src/App.vue
@ -1,26 +0,0 @@
|
||||
<template>
|
||||
<NcAppContent>
|
||||
<div id="retro">
|
||||
<h1>Hello world!</h1>
|
||||
</div>
|
||||
</NcAppContent>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { NcAppContent } from '@nextcloud/vue'
|
||||
|
||||
export default {
|
||||
name: 'App',
|
||||
components: {
|
||||
NcAppContent,
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
#retro {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin: 16px;
|
||||
}
|
||||
</style>
|
27
src/init.ts
27
src/init.ts
@ -0,0 +1,27 @@
|
||||
import { FileAction, FileType, Node, registerFileAction } from '@nextcloud/files'
|
||||
import cores from './mime.json'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
import icon from '../img/'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
|
||||
const action = new FileAction({
|
||||
id: 'retro',
|
||||
displayName: () => t('repod', 'Play'),
|
||||
iconSvgInline: () => icon,
|
||||
enabled: (files: Node[]) => {
|
||||
if (files.length !== 1) return false
|
||||
const file = files[0]
|
||||
if (file.type !== FileType.File) return false
|
||||
for (const core in cores) {
|
||||
if (cores[core].types === file.mime) return true
|
||||
if (cores[core].extensions.includes(file.extension)) return true
|
||||
}
|
||||
return false
|
||||
},
|
||||
exec: async (file: Node) => {
|
||||
location.href = generateUrl('/apps/retro/' + file.path)
|
||||
return true
|
||||
},
|
||||
})
|
||||
|
||||
registerFileAction(action)
|
@ -1,6 +0,0 @@
|
||||
import '@formatjs/intl-segmenter/polyfill'
|
||||
import App from './App.vue'
|
||||
import { createApp } from 'vue'
|
||||
|
||||
const View = createApp(App)
|
||||
View.mount('#retro')
|
109
src/mime.json
Normal file
109
src/mime.json
Normal file
@ -0,0 +1,109 @@
|
||||
{
|
||||
"nes": {
|
||||
"types": [
|
||||
"application/x-nes-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"fds",
|
||||
"nes",
|
||||
"unif",
|
||||
"unf",
|
||||
"nez"
|
||||
]
|
||||
},
|
||||
"snes": {
|
||||
"types": [
|
||||
"application/x-snes-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"smc",
|
||||
"fig",
|
||||
"sfc",
|
||||
"gd3",
|
||||
"gd7",
|
||||
"dx2",
|
||||
"bsx",
|
||||
"swc"
|
||||
]
|
||||
},
|
||||
"n64": {
|
||||
"types": [
|
||||
"application/x-n64-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"z64",
|
||||
"n64",
|
||||
"v64"
|
||||
]
|
||||
},
|
||||
"pce": {
|
||||
"types": [
|
||||
"application/x-pc-engine-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"pce"
|
||||
]
|
||||
},
|
||||
"ngp": {
|
||||
"types": [
|
||||
"application/x-neo-geo-pocket-rom",
|
||||
"application/x-neo-geo-pocket-color-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"ngp",
|
||||
"ngc"
|
||||
]
|
||||
},
|
||||
"ws": {
|
||||
"types": [
|
||||
"application/x-wonderswan-rom",
|
||||
"application/x-wonderswan-color-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"ws",
|
||||
"wsc"
|
||||
]
|
||||
},
|
||||
"coleco": {
|
||||
"types": [],
|
||||
"extensions": [
|
||||
"col",
|
||||
"cv"
|
||||
]
|
||||
},
|
||||
"vice_x64sc": {
|
||||
"types": [],
|
||||
"extensions": [
|
||||
"d64"
|
||||
]
|
||||
},
|
||||
"nds": {
|
||||
"types": [
|
||||
"application/x-nintendo-ds-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"nds"
|
||||
]
|
||||
},
|
||||
"gba": {
|
||||
"types": [
|
||||
"application/x-gba-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"gba",
|
||||
"agb"
|
||||
]
|
||||
},
|
||||
"gb": {
|
||||
"types": [
|
||||
"application/x-gameboy-rom",
|
||||
"application/x-gameboy-color-rom"
|
||||
],
|
||||
"extensions": [
|
||||
"gb",
|
||||
"sgb",
|
||||
"gbc",
|
||||
"cgb"
|
||||
]
|
||||
}
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
{
|
||||
"extends": "@vue/tsconfig",
|
||||
"include": ["./src/**/*.ts", "./src/**/*.vue", "**/*.ts"],
|
||||
"include": ["./src/**/*.ts", "**/*.ts"],
|
||||
"compilerOptions": {
|
||||
"allowImportingTsExtensions": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
|
Loading…
x
Reference in New Issue
Block a user