From 9929a837feb9f15f60ae34d772bf82a5c0d8c04f Mon Sep 17 00:00:00 2001 From: myrmidex Date: Thu, 23 Apr 2026 17:41:24 +0200 Subject: [PATCH] 1 - Add FediDiscover package skeleton --- composer.json | 12 ++++- composer.lock | 50 +++++++++++++++++-- docker/dev/docker-compose.yml | 2 + packages/Lvl0/FediDiscover/composer.json | 32 ++++++++++++ .../FediDiscover/config/fedi-discover.php | 7 +++ .../FediDiscover/database/migrations/.gitkeep | 0 .../src/FediDiscoverServiceProvider.php | 24 +++++++++ packages/Lvl0/FediDiscover/tests/.gitkeep | 0 8 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 packages/Lvl0/FediDiscover/composer.json create mode 100644 packages/Lvl0/FediDiscover/config/fedi-discover.php create mode 100644 packages/Lvl0/FediDiscover/database/migrations/.gitkeep create mode 100644 packages/Lvl0/FediDiscover/src/FediDiscoverServiceProvider.php create mode 100644 packages/Lvl0/FediDiscover/tests/.gitkeep diff --git a/composer.json b/composer.json index 400dd63..b26f449 100644 --- a/composer.json +++ b/composer.json @@ -5,11 +5,21 @@ "description": "A federated search engine for the small web.", "keywords": ["search", "fediverse", "small-web"], "license": "AGPL-3.0-or-later", + "repositories": [ + { + "type": "path", + "url": "packages/Lvl0/FediDiscover", + "options": { + "symlink": true + } + } + ], "require": { "php": "^8.3", "laravel/framework": "^13.0", "laravel/tinker": "^3.0", - "livewire/livewire": "^4.2" + "livewire/livewire": "^4.2", + "lvl0/fedi-discover": "@dev" }, "require-dev": { "fakerphp/faker": "^1.23", diff --git a/composer.lock b/composer.lock index f3ab797..c898387 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "1a356947f8d436038d5f1960a1fe8a0b", + "content-hash": "0e933496f4f0755c45123c8da46808ec", "packages": [ { "name": "brick/math", @@ -2100,6 +2100,48 @@ ], "time": "2026-04-02T20:48:35+00:00" }, + { + "name": "lvl0/fedi-discover", + "version": "dev-main", + "dist": { + "type": "path", + "url": "packages/Lvl0/FediDiscover", + "reference": "028e27d660387b51f5b181c37484f8b5a1868cad" + }, + "require": { + "illuminate/support": "^13.0", + "php": "^8.3" + }, + "require-dev": { + "orchestra/testbench": "^11.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Lvl0\\FediDiscover\\FediDiscoverServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Lvl0\\FediDiscover\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Lvl0\\FediDiscover\\Tests\\": "tests/" + } + }, + "license": [ + "AGPL-3.0-or-later" + ], + "description": "Fediverse polling library — discovers URLs from Mastodon and Lemmy posts.", + "transport-options": { + "symlink": true, + "relative": true + } + }, { "name": "monolog/monolog", "version": "3.10.0", @@ -8218,12 +8260,14 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": { + "lvl0/fedi-discover": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": "^8.3" }, "platform-dev": {}, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml index 927213b..ed5b17c 100644 --- a/docker/dev/docker-compose.yml +++ b/docker/dev/docker-compose.yml @@ -6,6 +6,8 @@ # DB: 5433 (postgresql) # Redis: 6380 +name: trove + services: app: build: diff --git a/packages/Lvl0/FediDiscover/composer.json b/packages/Lvl0/FediDiscover/composer.json new file mode 100644 index 0000000..f82a82b --- /dev/null +++ b/packages/Lvl0/FediDiscover/composer.json @@ -0,0 +1,32 @@ +{ + "name": "lvl0/fedi-discover", + "description": "Fediverse polling library — discovers URLs from Mastodon and Lemmy posts.", + "license": "AGPL-3.0-or-later", + "type": "library", + "require": { + "php": "^8.3", + "illuminate/support": "^13.0" + }, + "require-dev": { + "orchestra/testbench": "^11.0" + }, + "autoload": { + "psr-4": { + "Lvl0\\FediDiscover\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Lvl0\\FediDiscover\\Tests\\": "tests/" + } + }, + "extra": { + "laravel": { + "providers": [ + "Lvl0\\FediDiscover\\FediDiscoverServiceProvider" + ] + } + }, + "minimum-stability": "stable", + "prefer-stable": true +} diff --git a/packages/Lvl0/FediDiscover/config/fedi-discover.php b/packages/Lvl0/FediDiscover/config/fedi-discover.php new file mode 100644 index 0000000..355f9f3 --- /dev/null +++ b/packages/Lvl0/FediDiscover/config/fedi-discover.php @@ -0,0 +1,7 @@ +mergeConfigFrom(__DIR__.'/../config/fedi-discover.php', 'fedi-discover'); + } + + public function boot(): void + { + if ($this->app->runningInConsole()) { + $this->publishes([ + __DIR__.'/../config/fedi-discover.php' => config_path('fedi-discover.php'), + ], 'fedi-discover-config'); + } + } +} diff --git a/packages/Lvl0/FediDiscover/tests/.gitkeep b/packages/Lvl0/FediDiscover/tests/.gitkeep new file mode 100644 index 0000000..e69de29