참고소스 수정본

This commit is contained in:
LASTA_DEV01\lasta
2026-05-12 19:40:31 +09:00
parent 0f34a451fc
commit 2e9204243d
8708 changed files with 3259488 additions and 869 deletions

View File

@@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
namespace Firecrawl\Laravel\Facades;
use Firecrawl\Client\FirecrawlClient;
use Firecrawl\Models\AgentOptions;
use Firecrawl\Models\AgentStatusResponse;
use Firecrawl\Models\BatchScrapeJob;
use Firecrawl\Models\BatchScrapeOptions;
use Firecrawl\Models\BrowserCreateResponse;
use Firecrawl\Models\BrowserDeleteResponse;
use Firecrawl\Models\BrowserExecuteResponse;
use Firecrawl\Models\BrowserListResponse;
use Firecrawl\Models\ConcurrencyCheck;
use Firecrawl\Models\CrawlJob;
use Firecrawl\Models\CrawlOptions;
use Firecrawl\Models\CreditUsage;
use Firecrawl\Models\Document;
use Firecrawl\Models\MapData;
use Firecrawl\Models\MapOptions;
use Firecrawl\Models\ScrapeOptions;
use Firecrawl\Models\SearchData;
use Firecrawl\Models\SearchOptions;
use Illuminate\Support\Facades\Facade;
/**
* @method static Document scrape(string $url, ?ScrapeOptions $options = null)
* @method static BrowserExecuteResponse interact(string $jobId, string $code, string $language = 'node', ?int $timeout = null, ?string $origin = null)
* @method static BrowserDeleteResponse stopInteractiveBrowser(string $jobId)
* @method static CrawlJob crawl(string $url, ?CrawlOptions $options = null, int $pollIntervalSec = 2, int $timeoutSec = 300)
* @method static CrawlJob getCrawlStatus(string $jobId)
* @method static array<string, mixed> cancelCrawl(string $jobId)
* @method static BatchScrapeJob batchScrape(list<string> $urls, ?BatchScrapeOptions $options = null, int $pollIntervalSec = 2, int $timeoutSec = 300)
* @method static array<string, mixed> cancelBatchScrape(string $jobId)
* @method static MapData map(string $url, ?MapOptions $options = null)
* @method static SearchData search(string $query, ?SearchOptions $options = null)
* @method static AgentStatusResponse agent(AgentOptions $options, int $pollIntervalSec = 2, int $timeoutSec = 300)
* @method static array<string, mixed> cancelAgent(string $jobId)
* @method static BrowserCreateResponse browser(?int $ttl = null, ?int $activityTtl = null, ?bool $streamWebView = null)
* @method static BrowserExecuteResponse browserExecute(string $sessionId, string $code, string $language = 'bash', ?int $timeout = null)
* @method static BrowserDeleteResponse deleteBrowser(string $sessionId)
* @method static BrowserListResponse listBrowsers(?string $status = null)
* @method static ConcurrencyCheck getConcurrency()
* @method static CreditUsage getCreditUsage()
*
* @see FirecrawlClient
*/
class Firecrawl extends Facade
{
protected static function getFacadeAccessor(): string
{
return FirecrawlClient::class;
}
}

View File

@@ -0,0 +1,54 @@
<?php
declare(strict_types=1);
namespace Firecrawl\Laravel;
use Firecrawl\Client\FirecrawlClient;
use Illuminate\Support\ServiceProvider;
class FirecrawlServiceProvider extends ServiceProvider
{
public function register(): void
{
$this->mergeConfigFrom(__DIR__ . '/../../config/firecrawl.php', 'firecrawl');
$this->app->singleton(FirecrawlClient::class, function ($app): FirecrawlClient {
/** @var array<string, mixed> $config */
$config = $app['config']->get('firecrawl', []);
$apiKey = isset($config['api_key']) && is_string($config['api_key'])
? trim($config['api_key'])
: null;
if ($apiKey === '') {
$apiKey = null;
}
return FirecrawlClient::create(
apiKey: $apiKey,
apiUrl: isset($config['api_url']) && is_string($config['api_url']) ? $config['api_url'] : null,
timeoutSeconds: (float) ($config['timeout'] ?? 300),
maxRetries: (int) ($config['max_retries'] ?? 3),
backoffFactor: (float) ($config['backoff_factor'] ?? 0.5),
);
});
$this->app->alias(FirecrawlClient::class, 'firecrawl');
}
public function boot(): void
{
if ($this->app->runningInConsole()) {
$this->publishes([
__DIR__ . '/../../config/firecrawl.php' => $this->app->configPath('firecrawl.php'),
], 'firecrawl-config');
}
}
/** @return list<string> */
public function provides(): array
{
return [FirecrawlClient::class, 'firecrawl'];
}
}