larkup 0.1.44 → 0.1.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +8 -8
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/next-server.js.nft.json +1 -1
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +18 -18
- package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/analytics/page.js.nft.json +1 -1
- package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/analytics.html +1 -1
- package/.next/server/app/analytics.rsc +19 -19
- package/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
- package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/_index.segment.rsc +12 -12
- package/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
- package/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/status/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/suggestions/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/config/test/route.js.nft.json +1 -1
- package/.next/server/app/api/config/test-embedding/route.js.nft.json +1 -1
- package/.next/server/app/api/config/test-llm/route.js.nft.json +1 -1
- package/.next/server/app/api/config/test-provider/route.js.nft.json +1 -1
- package/.next/server/app/api/config/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/server/app/api/connections/webhook/route.js.nft.json +1 -1
- package/.next/server/app/api/demo/route.js.nft.json +1 -1
- package/.next/server/app/api/deploy/cloud-project/route.js.nft.json +1 -1
- package/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -1
- package/.next/server/app/api/deployment/blob-setup/route.js.nft.json +1 -1
- package/.next/server/app/api/deployment/config/route.js.nft.json +1 -1
- package/.next/server/app/api/describe-image/route.js.nft.json +1 -1
- package/.next/server/app/api/doc-editor/edit/route.js.nft.json +1 -1
- package/.next/server/app/api/doc-editor/export/route.js.nft.json +1 -1
- package/.next/server/app/api/doc-editor/extract-text/route.js.nft.json +1 -1
- package/.next/server/app/api/doc-editor/parse/route.js.nft.json +1 -1
- package/.next/server/app/api/doc-editor/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/document/sign/route.js.nft.json +1 -1
- package/.next/server/app/api/documents/route.js.nft.json +1 -1
- package/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -1
- package/.next/server/app/api/index/route.js.nft.json +1 -1
- package/.next/server/app/api/integrations/notion/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/integrations/notion/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/.next/server/app/api/marketplace/[toolId]/route.js.nft.json +1 -1
- package/.next/server/app/api/marketplace/route.js.nft.json +1 -1
- package/.next/server/app/api/media/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/media/process/route.js.nft.json +1 -1
- package/.next/server/app/api/media/route.js.nft.json +1 -1
- package/.next/server/app/api/media/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/server/app/api/parse-file/route.js.nft.json +1 -1
- package/.next/server/app/api/proxy/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/sandbox/route.js.nft.json +1 -1
- package/.next/server/app/api/search/bing/route.js.nft.json +1 -1
- package/.next/server/app/api/search/brave/route.js.nft.json +1 -1
- package/.next/server/app/api/search/exa/route.js.nft.json +1 -1
- package/.next/server/app/api/search/google/route.js.nft.json +1 -1
- package/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/server/app/api/search/tavily/route.js.nft.json +1 -1
- package/.next/server/app/api/search/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/server/agent/route.js.nft.json +1 -1
- package/.next/server/app/api/server/download/route.js.nft.json +1 -1
- package/.next/server/app/api/server/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/server/local/route.js.nft.json +1 -1
- package/.next/server/app/api/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/tabular/query/route.js.nft.json +1 -1
- package/.next/server/app/api/tabular/route.js.nft.json +1 -1
- package/.next/server/app/api/upload-file/route.js.nft.json +1 -1
- package/.next/server/app/api/uploads/[...slug]/route.js.nft.json +1 -1
- package/.next/server/app/api/vector-stores/install/route.js.nft.json +1 -1
- package/.next/server/app/api/vector-stores/status/route.js.nft.json +1 -1
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +19 -19
- package/.next/server/app/chat.segments/_full.segment.rsc +19 -19
- package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/server/app/chat.segments/_index.segment.rsc +12 -12
- package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/server/app/data/page.js.nft.json +1 -1
- package/.next/server/app/data/page_client-reference-manifest.js +1 -1
- package/.next/server/app/data.html +1 -1
- package/.next/server/app/data.rsc +19 -19
- package/.next/server/app/data.segments/_full.segment.rsc +19 -19
- package/.next/server/app/data.segments/_head.segment.rsc +4 -4
- package/.next/server/app/data.segments/_index.segment.rsc +12 -12
- package/.next/server/app/data.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/data.segments/data.segment.rsc +3 -3
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +17 -17
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +17 -17
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +12 -12
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +19 -19
- package/.next/server/app/settings.segments/_full.segment.rsc +19 -19
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +12 -12
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/chunks/[root-of-the-server]__1ahdfq9._.js +2 -2
- package/.next/server/chunks/packages_scraper_src_0kkcv_v._.js +2 -2
- package/.next/server/chunks/ssr/_169pdlf._.js +1 -1
- package/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/required-server-files.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +18 -18
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/analytics/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/analytics.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/analytics.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/chat/status/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/chat/suggestions/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/test/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/test-embedding/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/test-llm/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/test-provider/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/verify/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/connections/webhook/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/demo/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deploy/cloud-project/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deployment/blob-setup/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deployment/config/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/describe-image/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/doc-editor/edit/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/doc-editor/export/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/doc-editor/extract-text/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/doc-editor/parse/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/doc-editor/restore/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/document/sign/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/documents/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/index/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/callback/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/integrations/notion/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/marketplace/[toolId]/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/marketplace/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/[id]/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/process/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/stream/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/parse-file/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/proxy/verify/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/sandbox/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/bing/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/brave/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/exa/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/google/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/tavily/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/verify/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/agent/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/download/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/generate/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/local/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/servers/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/tabular/query/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/tabular/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/upload-file/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/uploads/[...slug]/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/vector-stores/install/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/vector-stores/status/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/data/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/data/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/data.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/data.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/data.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/data.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/data.segments/data.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.rsc +17 -17
- package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
- package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__1ahdfq9._.js +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/packages_scraper_src_0kkcv_v._.js +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_169pdlf._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
- package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/.next/{static/chunks/0rajk3_uz97c7.js → standalone/apps/web/.next/static/chunks/041vy184s-7sh.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/{417of_9hr-lla.js → 1t-yfbwndo0sr.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/2t51mtvausy6g.css +1 -0
- package/.next/standalone/apps/web/CHANGELOG.md +17 -0
- package/.next/standalone/apps/web/components/data/corpus-panel.tsx +1 -1
- package/.next/standalone/apps/web/package.json +2 -1
- package/.next/standalone/apps/web/server.js +1 -1
- package/.next/standalone/node_modules/.pnpm/@swc+helpers@0.5.23/node_modules/@swc/helpers/package.json +705 -0
- package/.next/standalone/packages/tools/doc-editor/CHANGELOG.md +6 -0
- package/.next/standalone/packages/tools/doc-editor/package.json +1 -1
- package/.next/standalone/packages/vector-stores/package.json +3 -2
- package/.next/{standalone/apps/web/.next/static/chunks/0rajk3_uz97c7.js → static/chunks/041vy184s-7sh.js} +1 -1
- package/.next/static/chunks/{417of_9hr-lla.js → 1t-yfbwndo0sr.js} +1 -1
- package/.next/static/chunks/2t51mtvausy6g.css +1 -0
- package/CHANGELOG.md +17 -0
- package/package.json +8 -7
- package/.next/standalone/apps/web/.next/static/chunks/362vxzexrdubq.css +0 -1
- package/.next/standalone/node_modules/.pnpm/@swc+helpers@0.5.5/node_modules/@swc/helpers/package.json +0 -452
- package/.next/static/chunks/362vxzexrdubq.css +0 -1
- /package/.next/standalone/apps/web/.next/static/{PKYnBn_a2th07Ua42AUvs → IHAOZOY0iJJ_cMmT7-lqT}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{PKYnBn_a2th07Ua42AUvs → IHAOZOY0iJJ_cMmT7-lqT}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{PKYnBn_a2th07Ua42AUvs → IHAOZOY0iJJ_cMmT7-lqT}/_ssgManifest.js +0 -0
- /package/.next/static/{PKYnBn_a2th07Ua42AUvs → IHAOZOY0iJJ_cMmT7-lqT}/_buildManifest.js +0 -0
- /package/.next/static/{PKYnBn_a2th07Ua42AUvs → IHAOZOY0iJJ_cMmT7-lqT}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{PKYnBn_a2th07Ua42AUvs → IHAOZOY0iJJ_cMmT7-lqT}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[711184,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
3
|
-
3:I[711184,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
2
|
+
2:I[711184,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"ViewportBoundary"]
|
|
3
|
+
3:I[711184,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
|
-
5:I[499693,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"larkup"}],["$","meta","1",{"name":"description","content":"larkup — a toolkit to build, index, and serve your own AI model and knowledge base."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.05jv43wa20avt.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
5
|
+
5:I[499693,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"IconMark"]
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"larkup"}],["$","meta","1",{"name":"description","content":"larkup — a toolkit to build, index, and serve your own AI model and knowledge base."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.05jv43wa20avt.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"IHAOZOY0iJJ_cMmT7-lqT"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[232295,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
3
|
-
3:I[82100,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
4
|
-
4:I[624529,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
5
|
-
5:I[266186,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
6
|
-
6:I[200943,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
7
|
-
7:I[724474,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
8
|
-
8:I[624727,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
9
|
-
9:I[7012,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
10
|
-
a:I[953159,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
11
|
-
b:I[721606,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
2
|
+
2:I[232295,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"UpdateBanner"]
|
|
3
|
+
3:I[82100,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"ThemeCustomizerProvider"]
|
|
4
|
+
4:I[624529,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"WorkspaceProvider"]
|
|
5
|
+
5:I[266186,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"ClientLayoutWrapper"]
|
|
6
|
+
6:I[200943,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"default"]
|
|
7
|
+
7:I[724474,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js","/_next/static/chunks/2ns4rchocl_ih.js","/_next/static/chunks/3d56c3oo26hbg.js"],"default"]
|
|
8
|
+
8:I[624727,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"default"]
|
|
9
|
+
9:I[7012,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"Toaster"]
|
|
10
|
+
a:I[953159,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"GlobalIndexProgress"]
|
|
11
|
+
b:I[721606,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"Analytics"]
|
|
12
12
|
:HL["/_next/static/chunks/233p45nuh4m5b.css","style"]
|
|
13
|
-
:HL["/_next/static/chunks/
|
|
14
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/233p45nuh4m5b.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
13
|
+
:HL["/_next/static/chunks/2t51mtvausy6g.css","style"]
|
|
14
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/233p45nuh4m5b.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/2t51mtvausy6g.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/2iog7bwy_5c7e.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0czetlcq0n07x.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/041vy184s-7sh.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0_jwrts3vuzsv.js","async":true}],["$","script","script-4",{"src":"/_next/static/chunks/0p_i6ard3wi5e.js","async":true}],["$","script","script-5",{"src":"/_next/static/chunks/1xlxyu0yrbcp_.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable bg-transparent","children":["$","body",null,{"suppressHydrationWarning":true,"className":"font-sans antialiased ","children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem('app-theme');var b=localStorage.getItem('app-background');var r=localStorage.getItem('app-radius');var d=document.body;if(t&&t!=='default')d.classList.add(t);if(b)d.classList.add(b);if(r&&r!=='radius-default')d.classList.add(r);}catch(e){}})();"}}],["$","$L2",null,{}],["$","$L3",null,{"children":["$","$L4",null,{"children":[["$","$L5",null,{"children":["$","$L6",null,{"parallelRouterKey":"children","template":["$","$L7",null,{"children":["$","$L8",null,{}]}],"templateStyles":[],"templateScripts":[["$","script","script-0",{"src":"/_next/static/chunks/2ns4rchocl_ih.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/3d56c3oo26hbg.js","async":true}]],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}],["$","$L9",null,{"position":"bottom-left"}],["$","$La",null,{}]]}]}],["$","$Lb",null,{}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"IHAOZOY0iJJ_cMmT7-lqT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
:HL["/_next/static/chunks/233p45nuh4m5b.css","style"]
|
|
2
|
-
:HL["/_next/static/chunks/
|
|
2
|
+
:HL["/_next/static/chunks/2t51mtvausy6g.css","style"]
|
|
3
3
|
:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
4
4
|
:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
5
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"settings","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
5
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"settings","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"IHAOZOY0iJJ_cMmT7-lqT"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[638757,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
3
|
-
3:I[93505,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
4
|
-
6:I[711184,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
2
|
+
2:I[638757,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"ClientPageRoot"]
|
|
3
|
+
3:I[93505,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js","/_next/static/chunks/1g-co0b2ulsx7.js","/_next/static/chunks/2m1mykrpkrwbi.js","/_next/static/chunks/3lpl_4iou48lk.js"],"default"]
|
|
4
|
+
6:I[711184,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"OutletBoundary"]
|
|
5
5
|
7:"$Sreact.suspense"
|
|
6
|
-
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/1g-co0b2ulsx7.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/2m1mykrpkrwbi.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/3lpl_4iou48lk.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/1g-co0b2ulsx7.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/2m1mykrpkrwbi.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/3lpl_4iou48lk.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"IHAOZOY0iJJ_cMmT7-lqT"}
|
|
7
7
|
4:{}
|
|
8
8
|
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
9
|
8:null
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[200943,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
3
|
-
3:I[624727,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/
|
|
2
|
+
2:I[200943,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"default"]
|
|
3
|
+
3:I[624727,["/_next/static/chunks/2iog7bwy_5c7e.js","/_next/static/chunks/0czetlcq0n07x.js","/_next/static/chunks/041vy184s-7sh.js","/_next/static/chunks/0_jwrts3vuzsv.js","/_next/static/chunks/0p_i6ard3wi5e.js","/_next/static/chunks/1xlxyu0yrbcp_.js"],"default"]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"IHAOZOY0iJJ_cMmT7-lqT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[367165,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(638725),n=e.i(192441);async function i(){let e=await (0,n.getDataDir)();if(!e)return a.DEFAULT_CONFIG;try{let n=await t.promises.readFile(r.default.join(e,"config.json"),"utf8"),i=JSON.parse(n),
|
|
1
|
+
module.exports=[367165,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(638725),n=e.i(192441);async function i(){let e=await (0,n.getDataDir)();if(!e)return a.DEFAULT_CONFIG;try{let n=await t.promises.readFile(r.default.join(e,"config.json"),"utf8"),i=JSON.parse(n),s=i.customEmbeddings,o=i.embeddingModelId;if(i.customEmbedding&&!s?.length){let e=i.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let l={...a.DEFAULT_CONFIG,...i,embeddingModelId:o??a.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...a.DEFAULT_CONFIG.chunking,...i.chunking},storeConfig:{...a.DEFAULT_CONFIG.storeConfig,...i.storeConfig}};return delete l.customEmbedding,l}catch{return a.DEFAULT_CONFIG}}async function s(e){let a=await (0,n.requireDataDir)(),i={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(r.default.join(a,"config.json"),JSON.stringify(i,null,2),"utf8"),i}e.s(["readConfig",0,i,"writeConfig",0,s])},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},700259,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(761095),n=e.i(666680),i=e.i(874533),s=e.i(812057),o=e.i(367165);let l=(0,s.promisify)(i.exec);async function c(e,t){return l(e,{timeout:t,env:{...process.env,PATH:`${process.env.PATH||""}:/usr/local/bin:/opt/homebrew/bin:/bin:/usr/bin`}})}let d=r.default.join(process.cwd(),".larkup"),u=r.default.join(d,"firecrawl-local.json"),p=r.default.join(d,"firecrawl","docker-compose.yml"),m="ragtoolkit-firecrawl";async function h(e){return new Promise((t,r)=>{let n=a.default.createServer();n.listen(e,()=>{let e=n.address().port;n.close(()=>t(e))}),n.on("error",a=>{"EADDRINUSE"===a.code?h(0===e?0:e+1).then(t,r):r(a)})})}async function f(){try{let e=r.default.join(process.cwd(),"proxies.txt"),a=(await t.promises.readFile(e,"utf8")).split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(a.length>0){let e=a[Math.floor(Math.random()*a.length)].split(":");if(e.length>=4)return{server:`http://${e[0]}:${e[1]}`,username:e[2],password:e[3]}}}catch(e){}let e=await (0,o.readConfig)();return e.useScraperProxy&&e.scraperProxyServer?{server:e.scraperProxyServer,username:e.scraperProxyUsername,password:e.scraperProxyPassword}:null}let w={running:!1,endpoint:"http://localhost:3002",apiKey:"",port:3002,project:m,mode:"native"};async function g(){try{let e=await t.promises.readFile(u,"utf8");return{...w,...JSON.parse(e)}}catch{return w}}async function v(e){return await t.promises.mkdir(d,{recursive:!0}),await t.promises.writeFile(u,JSON.stringify(e,null,2),"utf8"),e}async function R(){try{await c("docker --version")}catch{return{docker:!1,compose:null}}try{return await c("docker compose version"),{docker:!0,compose:"docker compose"}}catch{}try{return await c("docker-compose version"),{docker:!0,compose:"docker-compose"}}catch{return{docker:!0,compose:null}}}async function y(){let{docker:e,compose:t}=await R();return e?t?{docker:!0,compose:!0,message:"Docker is ready."}:{docker:!0,compose:!1,message:"Docker is installed but the Compose plugin was not found. Install `docker compose` to launch Firecrawl locally."}:{docker:!1,compose:!1,message:"Docker isn't available on this machine. Install Docker Desktop (or the Docker engine) and make sure it's running."}}function E(e,t,r){let a=r?[`PROXY_SERVER: "${r.server}"`,...r.username&&r.password?[`PROXY_USERNAME: "${r.username}"`,`PROXY_PASSWORD: "${r.password}"`]:[]]:[],n=['PORT: "3000"',...a].map(e=>` ${e}`).join("\n"),i=['PORT: "3002"',...a,'HOST: "0.0.0.0"','REDIS_URL: "redis://redis:6379"','REDIS_RATE_LIMIT_URL: "redis://redis:6379"','PLAYWRIGHT_MICROSERVICE_URL: "http://playwright-service:3000/scrape"','USE_DB_AUTHENTICATION: "false"',`TEST_API_KEY: "${e}"`,`BULL_AUTH_KEY: "${e}"`,'DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_RABBITMQ_URL: "amqp://user:password@rabbitmq:5672"'].map(e=>` ${e}`).join("\n");return`# Auto-generated by RAG Toolkit. Do not edit by hand.
|
|
2
2
|
services:
|
|
3
3
|
db:
|
|
4
4
|
image: ghcr.io/firecrawl/nuq-postgres:latest
|
|
@@ -56,6 +56,6 @@ ${n}
|
|
|
56
56
|
environment:
|
|
57
57
|
${i}
|
|
58
58
|
restart: unless-stopped
|
|
59
|
-
`}async function S(){if(!D())return v({running:!0,endpoint:"native://larkup-crawler",apiKey:"native",port:0,project:"native",mode:"native",startedAt:new Date().toISOString(),lastError:void 0});let e=await E();if(!e.compose)return v({...await g(),running:!1,lastError:e.message});let{compose:a}=await R(),i=await g(),o=i.apiKey||`fc-local-${(0,n.randomUUID)()}`,s=i.port||3002,l=await f();await t.promises.mkdir(r.default.dirname(p),{recursive:!0}),await t.promises.writeFile(p,y(o,s,l),"utf8");try{await c(`${a} -p ${m} -f "${p}" up -d`,18e4)}catch(r){let e=r instanceof Error?r.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return v({...i,apiKey:o,port:s,running:!1,lastError:e});try{s=await h(s+1),await t.promises.writeFile(p,y(o,s,l),"utf8"),await c(`${a} -p ${m} -f "${p}" up -d`,18e4)}catch(e){return v({...i,apiKey:o,port:s,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let d=(0,t.existsSync)("/.dockerenv"),u=`http://${d?"host.docker.internal":"localhost"}:${s}`,w=await _(u,9e4);return v({running:w,endpoint:u,apiKey:o,port:s,project:m,mode:"firecrawl",startedAt:new Date().toISOString(),lastError:w?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function b(){let e=await g();if("native"===e.mode)return v({...e,running:!1,startedAt:void 0});let{compose:t}=await R();if(t)try{await c(`${t} -p ${m} -f "${p}" down`,6e4)}catch{}return v({...e,running:!1,startedAt:void 0})}async function A(){let e=await g();if("native"===e.mode||!e.startedAt)return e;let t=await k(e.endpoint);return t!==e.running?v({...e,running:t}):e}async function k(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function _(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await k(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}function D(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,t.existsSync)("/.dockerenv")}let C="http://firecrawl-api:3002";async function T(){return D()?{available:await k(C),endpoint:C}:{available:!1,endpoint:""}}async function O(){let{available:e}=await T();return e?v({running:!0,endpoint:C,apiKey:`fc-docker-${(0,n.randomUUID)()}`,port:3002,project:"docker-sibling",mode:"firecrawl",startedAt:new Date().toISOString()}):v({...w,running:!1,lastError:"The web crawler service is not available in this Docker deployment."})}e.s(["checkDocker",0,E,"checkDockerSibling",0,T,"connectDockerSibling",0,O,"readLocalState",0,g,"refreshLocalStatus",0,A,"startLocal",0,S,"stopLocal",0,b])},231344,e=>{"use strict";var t=e.i(239441),r=e.i(449055),a=e.i(391328),n=e.i(6352),i=e.i(746789),o=e.i(423437),s=e.i(178820),l=e.i(569191),c=e.i(576251),d=e.i(199962),u=e.i(547545),p=e.i(664046),m=e.i(235691),h=e.i(298907),f=e.i(110763),w=e.i(193695);e.i(673243);var g=e.i(236167),v=e.i(766576),R=e.i(700259),E=e.i(902157);function y(){return process.env.TAURI_ENV_PLATFORM||process.env.TAURI_ENV_ARCH?"desktop":"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,E.existsSync)("/.dockerenv")?"docker":"web"}async function S(){let e=y();if("docker"===e){let[t,r]=await Promise.all([(0,R.refreshLocalStatus)(),(0,R.checkDockerSibling)()]),{apiKey:a,...n}=t;return v.NextResponse.json({state:{...n,hasKey:!!a,running:t.running||r.available,endpoint:r.available?r.endpoint:n.endpoint},docker:{docker:!0,compose:r.available,message:r.available?"Crawler service is running.":"Crawler service is not available for this Docker installation."},runtimeEnv:e})}let[t,r]=await Promise.all([(0,R.refreshLocalStatus)(),(0,R.checkDocker)()]),{apiKey:a,...n}=t;return v.NextResponse.json({state:{...n,hasKey:!!a},docker:r,runtimeEnv:e})}async function b(e){let t,r=y();try{({action:t}=await e.json())}catch{return v.NextResponse.json({error:"Invalid request body."},{status:400})}if("start"!==t&&"stop"!==t)return v.NextResponse.json({error:'action must be "start" or "stop".'},{status:400});if("docker"===r)if("start"===t){let{apiKey:e,...t}=await (0,R.connectDockerSibling)();return v.NextResponse.json({state:{...t,hasKey:!!e}})}else{let{apiKey:e,...t}=await (0,R.stopLocal)();return v.NextResponse.json({state:{...t,hasKey:!!e}})}let{apiKey:a,...n}="start"===t?await (0,R.startLocal)():await (0,R.stopLocal)();return v.NextResponse.json({state:{...n,hasKey:!!a}})}e.s(["GET",0,S,"POST",0,b,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],705563);var A=e.i(705563);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/firecrawl/local/route",pathname:"/api/firecrawl/local",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/firecrawl/local/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:D,serverHooks:C}=k;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/firecrawl/local/route";v=v.replace(/\/index$/,"")||"/";let R=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,deploymentId:y,params:S,nextConfig:b,parsedUrl:A,isDraftMode:_,prerenderManifest:D,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,resolvedPathname:I,clientReferenceManifest:P,serverActionsManifest:x}=R,N=(0,s.normalizeAppPath)(v),U=!!(D.dynamicRoutes[N]||D.routes[I]),L=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!_){let e=!!D.routes[I],t=D.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await L();throw new w.NoFallbackError}}let $=null;!U||k.isDev||_||($="/index"===($=I)?"/":$);let q=!0===k.isDev||!U,j=U&&!q;x&&P&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:x});let F=e.method||"GET",M=(0,i.getTracer)(),H=M.getActiveScopeSpan(),K=!!(null==C?void 0:C.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,b,D,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:S,previewProps:D.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:G,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,C)},sharedContext:{buildId:E,deploymentId:y}},W=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Y=c.NextRequestAdapter.fromNodeNextRequest(W,(0,c.signalFromNodeResponse)(t));try{let n,o=async e=>k.handle(Y,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${F} ${v}`)}),s=async n=>{var i,s;let l=async({previousCacheEntry:r})=>{try{if(!B&&T&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=V.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(W,X,i,V.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,C),t}},c=await k.handleResponse({req:e,nextConfig:b,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:D,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:O,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!U)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(s=c.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return B&&U||d.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(W,X,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};K&&H?await s(H):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},s),void 0,!K))}catch(t){if(t instanceof w.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,C),U)throw t;return await (0,p.sendResponse)(W,X,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:D})},"routeModule",0,k,"serverHooks",0,C,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,D],231344)}];
|
|
59
|
+
`}async function b(){if(!D())return v({running:!0,endpoint:"native://larkup-crawler",apiKey:"native",port:0,project:"native",mode:"native",startedAt:new Date().toISOString(),lastError:void 0});let e=await y();if(!e.compose)return v({...await g(),running:!1,lastError:e.message});let{compose:a}=await R(),i=await g(),s=i.apiKey||`fc-local-${(0,n.randomUUID)()}`,o=i.port||3002,l=await f();await t.promises.mkdir(r.default.dirname(p),{recursive:!0}),await t.promises.writeFile(p,E(s,o,l),"utf8");try{await c(`${a} -p ${m} -f "${p}" up -d`,18e4)}catch(r){let e=r instanceof Error?r.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return v({...i,apiKey:s,port:o,running:!1,lastError:e});try{o=await h(o+1),await t.promises.writeFile(p,E(s,o,l),"utf8"),await c(`${a} -p ${m} -f "${p}" up -d`,18e4)}catch(e){return v({...i,apiKey:s,port:o,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let d=(0,t.existsSync)("/.dockerenv"),u=`http://${d?"host.docker.internal":"localhost"}:${o}`,w=await _(u,9e4);return v({running:w,endpoint:u,apiKey:s,port:o,project:m,mode:"firecrawl",startedAt:new Date().toISOString(),lastError:w?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function S(){let e=await g();if("native"===e.mode)return v({...e,running:!1,startedAt:void 0});let{compose:t}=await R();if(t)try{await c(`${t} -p ${m} -f "${p}" down`,6e4)}catch{}return v({...e,running:!1,startedAt:void 0})}async function A(){let e=await g();if("native"===e.mode||!e.startedAt)return e;let t=await k(e.endpoint);return t!==e.running?v({...e,running:t}):e}async function k(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function _(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await k(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}function D(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,t.existsSync)("/.dockerenv")}let C="http://firecrawl-api:3002";async function T(){return D()?{available:await k(C),endpoint:C}:{available:!1,endpoint:""}}async function I(){let{available:e}=await T();return e?v({running:!0,endpoint:C,apiKey:`fc-docker-${(0,n.randomUUID)()}`,port:3002,project:"docker-sibling",mode:"firecrawl",startedAt:new Date().toISOString()}):v({...w,running:!1,lastError:"The web crawler service is not available in this Docker deployment."})}e.s(["checkDocker",0,y,"checkDockerSibling",0,T,"connectDockerSibling",0,I,"readLocalState",0,g,"refreshLocalStatus",0,A,"startLocal",0,b,"stopLocal",0,S])},231344,e=>{"use strict";var t=e.i(239441),r=e.i(449055),a=e.i(391328),n=e.i(6352),i=e.i(746789),s=e.i(423437),o=e.i(178820),l=e.i(569191),c=e.i(576251),d=e.i(199962),u=e.i(547545),p=e.i(664046),m=e.i(235691),h=e.i(298907),f=e.i(110763),w=e.i(193695);e.i(673243);var g=e.i(236167),v=e.i(766576),R=e.i(700259),y=e.i(902157);function E(){return process.env.TAURI_ENV_PLATFORM||process.env.TAURI_ENV_ARCH?"desktop":"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,y.existsSync)("/.dockerenv")?"docker":"web"}async function b(){let e=E();if("docker"===e){let[t,r]=await Promise.all([(0,R.refreshLocalStatus)(),(0,R.checkDockerSibling)()]),{apiKey:a,...n}=t;return v.NextResponse.json({state:{...n,hasKey:!!a,running:t.running||r.available,endpoint:r.available?r.endpoint:n.endpoint},docker:{docker:!0,compose:r.available,message:r.available?"Crawler service is running.":"Crawler service is not available for this Docker installation."},runtimeEnv:e})}let[t,r]=await Promise.all([(0,R.refreshLocalStatus)(),(0,R.checkDocker)()]),{apiKey:a,...n}=t;return v.NextResponse.json({state:{...n,hasKey:!!a},docker:r,runtimeEnv:e})}async function S(e){let t,r=E();try{({action:t}=await e.json())}catch{return v.NextResponse.json({error:"Invalid request body."},{status:400})}if("start"!==t&&"stop"!==t)return v.NextResponse.json({error:'action must be "start" or "stop".'},{status:400});if("docker"===r)if("start"===t){let{apiKey:e,...t}=await (0,R.connectDockerSibling)();return v.NextResponse.json({state:{...t,hasKey:!!e}})}else{let{apiKey:e,...t}=await (0,R.stopLocal)();return v.NextResponse.json({state:{...t,hasKey:!!e}})}let{apiKey:a,...n}="start"===t?await (0,R.startLocal)():await (0,R.stopLocal)();return v.NextResponse.json({state:{...n,hasKey:!!a}})}e.s(["GET",0,b,"POST",0,S,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],705563);var A=e.i(705563);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/firecrawl/local/route",pathname:"/api/firecrawl/local",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/firecrawl/local/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:_,workUnitAsyncStorage:D,serverHooks:C}=k;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/firecrawl/local/route";v=v.replace(/\/index$/,"")||"/";let R=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:E,params:b,nextConfig:S,parsedUrl:A,isDraftMode:_,prerenderManifest:D,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:x,serverActionsManifest:N}=R,P=(0,o.normalizeAppPath)(v),U=!!(D.dynamicRoutes[P]||D.routes[O]),L=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!_){let e=!!D.routes[O],t=D.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(S.adapterPath)return await L();throw new w.NoFallbackError}}let $=null;!U||k.isDev||_||($="/index"===($=O)?"/":$);let q=!0===k.isDev||!U,j=U&&!q;N&&x&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:x,serverActionsManifest:N});let F=e.method||"GET",M=(0,i.getTracer)(),H=M.getActiveScopeSpan(),K=!!(null==C?void 0:C.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await k.getIncrementalCache(e,S,D,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:b,previewProps:D.preview,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:q,incrementalCache:G,cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,C)},sharedContext:{buildId:y,deploymentId:E}},W=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),Y=c.NextRequestAdapter.fromNodeNextRequest(W,(0,c.signalFromNodeResponse)(t));try{let n,s=async e=>k.handle(Y,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${F} ${v}`)}),o=async n=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!B&&T&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(n);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=V.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(W,X,i,V.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,C),t}},c=await k.handleResponse({req:e,nextConfig:S,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:D,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!U)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return B&&U||d.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(W,X,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};K&&H?await o(H):(n=M.getActiveScopeSpan(),await M.withPropagatedContext(e.headers,()=>M.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${v}`,kind:i.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof w.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,C),U)throw t;return await (0,p.sendResponse)(W,X,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:D})},"routeModule",0,k,"serverHooks",0,C,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,D],231344)}];
|
|
60
60
|
|
|
61
61
|
//# sourceMappingURL=%5Broot-of-the-server%5D__1ahdfq9._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[700259,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(761095),i=e.i(666680),n=e.i(874533),o=e.i(812057),s=e.i(367165);let l=(0,o.promisify)(n.exec);async function c(e,t){return l(e,{timeout:t,env:{...process.env,PATH:`${process.env.PATH||""}:/usr/local/bin:/opt/homebrew/bin:/bin:/usr/bin`}})}let u=r.default.join(process.cwd(),".larkup"),d=r.default.join(u,"firecrawl-local.json"),p=r.default.join(u,"firecrawl","docker-compose.yml"),w="ragtoolkit-firecrawl";async function m(e){return new Promise((t,r)=>{let i=a.default.createServer();i.listen(e,()=>{let e=i.address().port;i.close(()=>t(e))}),i.on("error",a=>{"EADDRINUSE"===a.code?m(0===e?0:e+1).then(t,r):r(a)})})}async function h(){try{let e=r.default.join(process.cwd(),"proxies.txt"),a=(await t.promises.readFile(e,"utf8")).split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(a.length>0){let e=a[Math.floor(Math.random()*a.length)].split(":");if(e.length>=4)return{server:`http://${e[0]}:${e[1]}`,username:e[2],password:e[3]}}}catch(e){}let e=await (0,s.readConfig)();return e.useScraperProxy&&e.scraperProxyServer?{server:e.scraperProxyServer,username:e.scraperProxyUsername,password:e.scraperProxyPassword}:null}let f={running:!1,endpoint:"http://localhost:3002",apiKey:"",port:3002,project:w,mode:"native"};async function g(){try{let e=await t.promises.readFile(d,"utf8");return{...f,...JSON.parse(e)}}catch{return f}}async function y(e){return await t.promises.mkdir(u,{recursive:!0}),await t.promises.writeFile(d,JSON.stringify(e,null,2),"utf8"),e}async function v(){try{await c("docker --version")}catch
|
|
1
|
+
module.exports=[700259,e=>{"use strict";var t=e.i(902157),r=e.i(750227),a=e.i(761095),i=e.i(666680),n=e.i(874533),o=e.i(812057),s=e.i(367165);let l=(0,o.promisify)(n.exec);async function c(e,t){return l(e,{timeout:t,env:{...process.env,PATH:`${process.env.PATH||""}:/usr/local/bin:/opt/homebrew/bin:/bin:/usr/bin`}})}let u=r.default.join(process.cwd(),".larkup"),d=r.default.join(u,"firecrawl-local.json"),p=r.default.join(u,"firecrawl","docker-compose.yml"),w="ragtoolkit-firecrawl";async function m(e){return new Promise((t,r)=>{let i=a.default.createServer();i.listen(e,()=>{let e=i.address().port;i.close(()=>t(e))}),i.on("error",a=>{"EADDRINUSE"===a.code?m(0===e?0:e+1).then(t,r):r(a)})})}async function h(){try{let e=r.default.join(process.cwd(),"proxies.txt"),a=(await t.promises.readFile(e,"utf8")).split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(a.length>0){let e=a[Math.floor(Math.random()*a.length)].split(":");if(e.length>=4)return{server:`http://${e[0]}:${e[1]}`,username:e[2],password:e[3]}}}catch(e){}let e=await (0,s.readConfig)();return e.useScraperProxy&&e.scraperProxyServer?{server:e.scraperProxyServer,username:e.scraperProxyUsername,password:e.scraperProxyPassword}:null}let f={running:!1,endpoint:"http://localhost:3002",apiKey:"",port:3002,project:w,mode:"native"};async function g(){try{let e=await t.promises.readFile(d,"utf8");return{...f,...JSON.parse(e)}}catch{return f}}async function y(e){return await t.promises.mkdir(u,{recursive:!0}),await t.promises.writeFile(d,JSON.stringify(e,null,2),"utf8"),e}async function v(){try{await c("docker --version")}catch{return{docker:!1,compose:null}}try{return await c("docker compose version"),{docker:!0,compose:"docker compose"}}catch{}try{return await c("docker-compose version"),{docker:!0,compose:"docker-compose"}}catch{return{docker:!0,compose:null}}}async function S(){let{docker:e,compose:t}=await v();return e?t?{docker:!0,compose:!0,message:"Docker is ready."}:{docker:!0,compose:!1,message:"Docker is installed but the Compose plugin was not found. Install `docker compose` to launch Firecrawl locally."}:{docker:!1,compose:!1,message:"Docker isn't available on this machine. Install Docker Desktop (or the Docker engine) and make sure it's running."}}function k(e,t,r){let a=r?[`PROXY_SERVER: "${r.server}"`,...r.username&&r.password?[`PROXY_USERNAME: "${r.username}"`,`PROXY_PASSWORD: "${r.password}"`]:[]]:[],i=['PORT: "3000"',...a].map(e=>` ${e}`).join("\n"),n=['PORT: "3002"',...a,'HOST: "0.0.0.0"','REDIS_URL: "redis://redis:6379"','REDIS_RATE_LIMIT_URL: "redis://redis:6379"','PLAYWRIGHT_MICROSERVICE_URL: "http://playwright-service:3000/scrape"','USE_DB_AUTHENTICATION: "false"',`TEST_API_KEY: "${e}"`,`BULL_AUTH_KEY: "${e}"`,'DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_DATABASE_URL: "postgresql://user:password@db:5432/postgres"','NUQ_RABBITMQ_URL: "amqp://user:password@rabbitmq:5672"'].map(e=>` ${e}`).join("\n");return`# Auto-generated by RAG Toolkit. Do not edit by hand.
|
|
2
2
|
services:
|
|
3
3
|
db:
|
|
4
4
|
image: ghcr.io/firecrawl/nuq-postgres:latest
|
|
@@ -56,6 +56,6 @@ ${i}
|
|
|
56
56
|
environment:
|
|
57
57
|
${n}
|
|
58
58
|
restart: unless-stopped
|
|
59
|
-
`}async function b(){if(!$())return y({running:!0,endpoint:"native://larkup-crawler",apiKey:"native",port:0,project:"native",mode:"native",startedAt:new Date().toISOString(),lastError:void 0});let e=await S();if(!e.compose)return y({...await g(),running:!1,lastError:e.message});let{compose:a}=await v(),n=await g(),o=n.apiKey||`fc-local-${(0,i.randomUUID)()}`,s=n.port||3002,l=await h();await t.promises.mkdir(r.default.dirname(p),{recursive:!0}),await t.promises.writeFile(p,k(o,s,l),"utf8");try{await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(r){let e=r instanceof Error?r.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return y({...n,apiKey:o,port:s,running:!1,lastError:e});try{s=await m(s+1),await t.promises.writeFile(p,k(o,s,l),"utf8"),await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(e){return y({...n,apiKey:o,port:s,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let u=(0,t.existsSync)("/.dockerenv"),d=`http://${u?"host.docker.internal":"localhost"}:${s}`,f=await U(d,9e4);return y({running:f,endpoint:d,apiKey:o,port:s,project:w,mode:"firecrawl",startedAt:new Date().toISOString(),lastError:f?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function E(){let e=await g();if("native"===e.mode)return y({...e,running:!1,startedAt:void 0});let{compose:t}=await v();if(t)try{await c(`${t} -p ${w} -f "${p}" down`,6e4)}catch{}return y({...e,running:!1,startedAt:void 0})}async function A(){let e=await g();if("native"===e.mode||!e.startedAt)return e;let t=await R(e.endpoint);return t!==e.running?y({...e,running:t}):e}async function R(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function U(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await R(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}function $(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,t.existsSync)("/.dockerenv")}let T="http://firecrawl-api:3002";async function x(){return $()?{available:await R(T),endpoint:T}:{available:!1,endpoint:""}}async function D(){let{available:e}=await x();return e?y({running:!0,endpoint:T,apiKey:`fc-docker-${(0,i.randomUUID)()}`,port:3002,project:"docker-sibling",mode:"firecrawl",startedAt:new Date().toISOString()}):y({...f,running:!1,lastError:"The web crawler service is not available in this Docker deployment."})}e.s(["checkDocker",0,S,"checkDockerSibling",0,x,"connectDockerSibling",0,D,"readLocalState",0,g,"refreshLocalStatus",0,A,"startLocal",0,b,"stopLocal",0,E])},304368,e=>{"use strict";var t=e.i(367165),r=e.i(700259),a=e.i(902157),i=e.i(750227),n=e.i(666680);let o=i.default.join(process.cwd(),".larkup"),s=i.default.join(o,"native-crawls"),l=i.default.join(o,"native-crawls.json"),c="LarkupCrawler/1.0 (+https://larkup.de)";async function u(){try{return JSON.parse(await a.promises.readFile(l,"utf8"))}catch{return{}}}function d(e){return i.default.join(s,`${e}.json`)}async function p(e){try{return JSON.parse(await a.promises.readFile(d(e),"utf8"))}catch{return(await u())[e]}}async function w(e){await a.promises.mkdir(s,{recursive:!0}),await a.promises.writeFile(d(e.id),JSON.stringify(e,null,2),"utf8")}function m(e){return e.replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/'/gi,"'").replace(/&#(x[0-9a-f]+|\d+);/gi,(e,t)=>{let r=String(t).toLowerCase().startsWith("x")?parseInt(String(t).slice(1),16):parseInt(String(t),10);return Number.isFinite(r)?String.fromCodePoint(r):""})}function h(e){return m(e.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function f(e){try{let t=new URL(m(e));return v(t.searchParams.get("uddg")||t.toString())}catch{return null}}async function g(e,t=10){let r=Math.max(1,Math.min(t,25)),a={"User-Agent":c,Accept:"text/html,application/xhtml+xml","Accept-Language":"en-US,en;q=0.9"};try{let t=await fetch(`https://search.brave.com/search?q=${encodeURIComponent(e)}&source=web`,{headers:a,redirect:"follow",signal:AbortSignal.timeout(2e4)});if(t.ok){let e=function(e,t){let r=[],a=new Set;for(let i of e.matchAll(/<a\b[^>]*href=["']([^"']+)["'][^>]*class=["'][^"']*\bl1\b[^"']*["'][^>]*>([\s\S]*?)<\/a>/gi)){let e=f(i[1]);if(!e||a.has(e))continue;a.add(e);let n=i[2].match(/\btitle=["']([^"']+)["']/i);if(r.push({url:e,title:h(n?.[1]||i[2])||e}),r.length>=t)break}return r}(await t.text(),r);if(e.length)return e}}catch{}let i=await fetch(`https://www.bing.com/search?format=rss&q=${encodeURIComponent(e)}`,{headers:{...a,Accept:"application/rss+xml,application/xml,text/xml"},signal:AbortSignal.timeout(2e4)});if(!i.ok)throw Error(`Built-in web search returned ${i.status}.`);let n=function(e,t){let r=[],a=new Set;for(let i of e.matchAll(/<item>([\s\S]*?)<\/item>/gi)){let e=f(y(i[1],"link")??"");if(!(!e||a.has(e))&&(a.add(e),r.push({url:e,title:h(y(i[1],"title")??e),description:h(y(i[1],"description")??"")||void 0}),r.length>=t))break}return r}(await i.text(),r);if(!n.length)throw Error("Built-in web search returned no usable results.");return n}function y(e,t){return e.match(RegExp(`<${t}>([\\s\\S]*?)<\\/${t}>`,"i"))?.[1]}function v(e){try{let t=new URL(e);if(!/^https?:$/.test(t.protocol))return null;return t.hash="",t.toString()}catch{return null}}async function S(e){let t,r=await fetch(e,{headers:{"User-Agent":c,Accept:"text/html,application/xhtml+xml"},redirect:"follow",signal:AbortSignal.timeout(2e4)});if(!r.ok)throw Error(`Website returned ${r.status} ${r.statusText}`);let a=r.headers.get("content-type")??"";if(!/text\/html|application\/xhtml\+xml/i.test(a))throw Error(`Unsupported page type: ${a||"unknown"}`);let i=(await r.text()).slice(0,2e6),n=v(r.url)??e,o=m(i.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<(br|\/p|\/div|\/li|\/h[1-6]|\/tr|\/section|\/article)\b[^>]*>/gi,"\n").replace(/<[^>]+>/g," ")).replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/\n\s*\n\s*\n+/g,"\n\n").replace(/\s+([.,;:!?])/g,"$1").trim();if(!o)throw Error("The page did not contain readable HTML text.");return{url:n,title:(t=i.match(/<title[^>]*>([\s\S]*?)<\/title>/i))&&m(t[1].replace(/<[^>]+>/g," ").trim())||n,markdown:o,links:function(e,t,r){let a=new Set;for(let i of e.matchAll(/<a\s[^>]*?href\s*=\s*["']([^"'#]+)["']/gi)){let e=v(new URL(i[1],t).toString());e&&new URL(e).origin===r&&a.add(e)}return[...a]}(i,n,new URL(n).origin)}}async function k(e,t){let r=v(e);if(!r)throw Error("A valid http or https URL is required.");let a=`native-${(0,n.randomUUID)()}`;return await w({id:a,origin:new URL(r).origin,limit:Math.max(1,t),queue:[r],visited:[],pages:[],delivered:0}),a}async function b(e){let t=await p(e);if(!t)throw Error("Native crawl was not found.");if(t.cancelled)return{state:"cancelled",total:t.limit,completed:t.pages.length,pages:[]};for(let e=0;e<2&&t.queue.length&&t.pages.length<t.limit;e++){let e=t.queue.shift();if(!t.visited.includes(e)){t.visited.push(e);try{let r=await S(e);for(let e of(t.pages.push(r),r.links??[]))new URL(e).origin===t.origin&&(t.visited.includes(e)||t.queue.includes(e)||t.queue.push(e))}catch{}}}let r=t.pages.slice(t.delivered).map(({links:e,...t})=>t);t.delivered=t.pages.length;let a=!t.queue.length||t.pages.length>=t.limit;return await w(t),{state:a?"completed":"scraping",total:t.limit,completed:t.pages.length,pages:r}}async function E(e){let t=await p(e);t&&(t.cancelled=!0,await w(t))}class A extends Error{status;constructor(e,t){super(e),this.status=t,this.name="FirecrawlError"}}async function R(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();if(e.running&&e.apiKey)return"native"===e.mode||e.endpoint.startsWith("native://")?{base:e.endpoint,key:e.apiKey,mode:"native"}:{base:`${e.endpoint}/v1`,key:e.apiKey,mode:"local"};throw new A("The selected web crawler is not running. Choose a crawler provider in Settings.",401)}let a=e.firecrawlApiKey;if(a)return{base:"https://api.firecrawl.dev/v1",key:a,mode:"cloud"};throw new A("The cloud web crawler needs an API key. Add it in Settings.",401)}async function U(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();return!!(e.running&&e.apiKey)}return!!e.firecrawlApiKey}async function $(e,t){let{base:r,key:a}=await R(),i=await fetch(`${r}${e}`,{...t,headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",...t?.headers??{}},cache:"no-store"}),n=await i.text(),o=n?x(n):{};if(!i.ok)throw new A(o?.error||`Firecrawl request failed (${i.status})`,i.status);return o}async function T(e){let{key:t}=await R(),r=await fetch(e,{headers:{Authorization:`Bearer ${t}`},cache:"no-store"}),a=await r.text(),i=a?x(a):{};if(!r.ok)throw new A(i?.error||`Firecrawl request failed (${r.status})`,r.status);return i}function x(e){try{return JSON.parse(e)}catch{return{}}}async function D(e,t=10){return"native"===(await R()).mode?g(e,t):((await $("/search",{method:"POST",body:JSON.stringify({query:e,limit:t})})).data??[]).map(e=>({url:e.url,title:e.title||e.url,description:e.description}))}let L={waitFor:1e4,onlyMainContent:!1,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"en-US,en;q=0.9","Sec-Ch-Ua":'"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Windows"'}};async function C(e){if("native"===(await R()).mode){let t=await S(e);return{url:t.url,title:t.title,markdown:t.markdown}}let t=(await $("/scrape",{method:"POST",body:JSON.stringify({url:e,formats:["markdown"],...L})})).data??{};return{url:t.metadata?.sourceURL||e,title:t.metadata?.title||t.metadata?.ogTitle||e,markdown:t.markdown??""}}async function P(e,t){if("native"===(await R()).mode)return k(e,t);let r=await $("/crawl",{method:"POST",body:JSON.stringify({url:e,limit:t,allowExternalLinks:!1,scrapeOptions:{...L,formats:["markdown"],onlyMainContent:!0}})});if(!r.id)throw new A("Firecrawl did not return a crawl id");return r.id}async function _(e,t=!1){if(!t&&e.startsWith("native-"))return b(e);let r=t?await T(e):await $(`/crawl/${e}`,{method:"GET"});return{state:r.status??"scraping",total:r.total??0,completed:r.completed??0,next:r.next,pages:(r.data??[]).map(e=>({url:e.metadata?.sourceURL||e.metadata?.url||"",title:e.metadata?.title||e.metadata?.sourceURL||"Untitled",markdown:e.markdown??""}))}}async function O(e){if(e.startsWith("native-"))return void await E(e);try{await $(`/crawl/${e}`,{method:"DELETE"})}catch{}}e.s(["FirecrawlError",0,A,"cancelCrawl",0,O,"getCrawlStatus",0,_,"isFirecrawlConfigured",0,U,"scrapePage",0,C,"searchWeb",0,D,"startCrawl",0,P],304368)}];
|
|
59
|
+
`}async function b(){if(!$())return y({running:!0,endpoint:"native://larkup-crawler",apiKey:"native",port:0,project:"native",mode:"native",startedAt:new Date().toISOString(),lastError:void 0});let e=await S();if(!e.compose)return y({...await g(),running:!1,lastError:e.message});let{compose:a}=await v(),n=await g(),o=n.apiKey||`fc-local-${(0,i.randomUUID)()}`,s=n.port||3002,l=await h();await t.promises.mkdir(r.default.dirname(p),{recursive:!0}),await t.promises.writeFile(p,k(o,s,l),"utf8");try{await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(r){let e=r instanceof Error?r.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return y({...n,apiKey:o,port:s,running:!1,lastError:e});try{s=await m(s+1),await t.promises.writeFile(p,k(o,s,l),"utf8"),await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(e){return y({...n,apiKey:o,port:s,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let u=(0,t.existsSync)("/.dockerenv"),d=`http://${u?"host.docker.internal":"localhost"}:${s}`,f=await R(d,9e4);return y({running:f,endpoint:d,apiKey:o,port:s,project:w,mode:"firecrawl",startedAt:new Date().toISOString(),lastError:f?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function A(){let e=await g();if("native"===e.mode)return y({...e,running:!1,startedAt:void 0});let{compose:t}=await v();if(t)try{await c(`${t} -p ${w} -f "${p}" down`,6e4)}catch{}return y({...e,running:!1,startedAt:void 0})}async function E(){let e=await g();if("native"===e.mode||!e.startedAt)return e;let t=await U(e.endpoint);return t!==e.running?y({...e,running:t}):e}async function U(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function R(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await U(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}function $(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,t.existsSync)("/.dockerenv")}let T="http://firecrawl-api:3002";async function x(){return $()?{available:await U(T),endpoint:T}:{available:!1,endpoint:""}}async function L(){let{available:e}=await x();return e?y({running:!0,endpoint:T,apiKey:`fc-docker-${(0,i.randomUUID)()}`,port:3002,project:"docker-sibling",mode:"firecrawl",startedAt:new Date().toISOString()}):y({...f,running:!1,lastError:"The web crawler service is not available in this Docker deployment."})}e.s(["checkDocker",0,S,"checkDockerSibling",0,x,"connectDockerSibling",0,L,"readLocalState",0,g,"refreshLocalStatus",0,E,"startLocal",0,b,"stopLocal",0,A])},304368,e=>{"use strict";var t=e.i(367165),r=e.i(700259),a=e.i(902157),i=e.i(750227),n=e.i(666680);let o=i.default.join(process.cwd(),".larkup"),s=i.default.join(o,"native-crawls"),l=i.default.join(o,"native-crawls.json"),c="LarkupCrawler/1.0 (+https://larkup.de)";async function u(){try{return JSON.parse(await a.promises.readFile(l,"utf8"))}catch{return{}}}function d(e){return i.default.join(s,`${e}.json`)}async function p(e){try{return JSON.parse(await a.promises.readFile(d(e),"utf8"))}catch{return(await u())[e]}}async function w(e){await a.promises.mkdir(s,{recursive:!0}),await a.promises.writeFile(d(e.id),JSON.stringify(e,null,2),"utf8")}function m(e){return e.replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/'/gi,"'").replace(/&#(x[0-9a-f]+|\d+);/gi,(e,t)=>{let r=String(t).toLowerCase().startsWith("x")?parseInt(String(t).slice(1),16):parseInt(String(t),10);return Number.isFinite(r)?String.fromCodePoint(r):""})}function h(e){return m(e.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function f(e){try{let t=new URL(m(e));return v(t.searchParams.get("uddg")||t.toString())}catch{return null}}async function g(e,t=10){let r=Math.max(1,Math.min(t,25)),a={"User-Agent":c,Accept:"text/html,application/xhtml+xml","Accept-Language":"en-US,en;q=0.9"};try{let t=await fetch(`https://search.brave.com/search?q=${encodeURIComponent(e)}&source=web`,{headers:a,redirect:"follow",signal:AbortSignal.timeout(2e4)});if(t.ok){let e=function(e,t){let r=[],a=new Set;for(let i of e.matchAll(/<a\b[^>]*href=["']([^"']+)["'][^>]*class=["'][^"']*\bl1\b[^"']*["'][^>]*>([\s\S]*?)<\/a>/gi)){let e=f(i[1]);if(!e||a.has(e))continue;a.add(e);let n=i[2].match(/\btitle=["']([^"']+)["']/i);if(r.push({url:e,title:h(n?.[1]||i[2])||e}),r.length>=t)break}return r}(await t.text(),r);if(e.length)return e}}catch{}let i=await fetch(`https://www.bing.com/search?format=rss&q=${encodeURIComponent(e)}`,{headers:{...a,Accept:"application/rss+xml,application/xml,text/xml"},signal:AbortSignal.timeout(2e4)});if(!i.ok)throw Error(`Built-in web search returned ${i.status}.`);let n=function(e,t){let r=[],a=new Set;for(let i of e.matchAll(/<item>([\s\S]*?)<\/item>/gi)){let e=f(y(i[1],"link")??"");if(!(!e||a.has(e))&&(a.add(e),r.push({url:e,title:h(y(i[1],"title")??e),description:h(y(i[1],"description")??"")||void 0}),r.length>=t))break}return r}(await i.text(),r);if(!n.length)throw Error("Built-in web search returned no usable results.");return n}function y(e,t){return e.match(RegExp(`<${t}>([\\s\\S]*?)<\\/${t}>`,"i"))?.[1]}function v(e){try{let t=new URL(e);if(!/^https?:$/.test(t.protocol))return null;return t.hash="",t.toString()}catch{return null}}async function S(e){let t,r=await fetch(e,{headers:{"User-Agent":c,Accept:"text/html,application/xhtml+xml"},redirect:"follow",signal:AbortSignal.timeout(2e4)});if(!r.ok)throw Error(`Website returned ${r.status} ${r.statusText}`);let a=r.headers.get("content-type")??"";if(!/text\/html|application\/xhtml\+xml/i.test(a))throw Error(`Unsupported page type: ${a||"unknown"}`);let i=(await r.text()).slice(0,2e6),n=v(r.url)??e,o=m(i.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<(br|\/p|\/div|\/li|\/h[1-6]|\/tr|\/section|\/article)\b[^>]*>/gi,"\n").replace(/<[^>]+>/g," ")).replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/\n\s*\n\s*\n+/g,"\n\n").replace(/\s+([.,;:!?])/g,"$1").trim();if(!o)throw Error("The page did not contain readable HTML text.");return{url:n,title:(t=i.match(/<title[^>]*>([\s\S]*?)<\/title>/i))&&m(t[1].replace(/<[^>]+>/g," ").trim())||n,markdown:o,links:function(e,t,r){let a=new Set;for(let i of e.matchAll(/<a\s[^>]*?href\s*=\s*["']([^"'#]+)["']/gi)){let e=v(new URL(i[1],t).toString());e&&new URL(e).origin===r&&a.add(e)}return[...a]}(i,n,new URL(n).origin)}}async function k(e,t){let r=v(e);if(!r)throw Error("A valid http or https URL is required.");let a=`native-${(0,n.randomUUID)()}`;return await w({id:a,origin:new URL(r).origin,limit:Math.max(1,t),queue:[r],visited:[],pages:[],delivered:0}),a}async function b(e){let t=await p(e);if(!t)throw Error("Native crawl was not found.");if(t.cancelled)return{state:"cancelled",total:t.limit,completed:t.pages.length,pages:[]};for(let e=0;e<2&&t.queue.length&&t.pages.length<t.limit;e++){let e=t.queue.shift();if(!t.visited.includes(e)){t.visited.push(e);try{let r=await S(e);for(let e of(t.pages.push(r),r.links??[]))new URL(e).origin===t.origin&&(t.visited.includes(e)||t.queue.includes(e)||t.queue.push(e))}catch{}}}let r=t.pages.slice(t.delivered).map(({links:e,...t})=>t);t.delivered=t.pages.length;let a=!t.queue.length||t.pages.length>=t.limit;return await w(t),{state:a?"completed":"scraping",total:t.limit,completed:t.pages.length,pages:r}}async function A(e){let t=await p(e);t&&(t.cancelled=!0,await w(t))}class E extends Error{status;constructor(e,t){super(e),this.status=t,this.name="FirecrawlError"}}async function U(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();if(e.running&&e.apiKey)return"native"===e.mode||e.endpoint.startsWith("native://")?{base:e.endpoint,key:e.apiKey,mode:"native"}:{base:`${e.endpoint}/v1`,key:e.apiKey,mode:"local"};throw new E("The selected web crawler is not running. Choose a crawler provider in Settings.",401)}let a=e.firecrawlApiKey;if(a)return{base:"https://api.firecrawl.dev/v1",key:a,mode:"cloud"};throw new E("The cloud web crawler needs an API key. Add it in Settings.",401)}async function R(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();return!!(e.running&&e.apiKey)}return!!e.firecrawlApiKey}async function $(e,t){let{base:r,key:a}=await U(),i=await fetch(`${r}${e}`,{...t,headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",...t?.headers??{}},cache:"no-store"}),n=await i.text(),o=n?x(n):{};if(!i.ok)throw new E(o?.error||`Firecrawl request failed (${i.status})`,i.status);return o}async function T(e){let{key:t}=await U(),r=await fetch(e,{headers:{Authorization:`Bearer ${t}`},cache:"no-store"}),a=await r.text(),i=a?x(a):{};if(!r.ok)throw new E(i?.error||`Firecrawl request failed (${r.status})`,r.status);return i}function x(e){try{return JSON.parse(e)}catch{return{}}}async function L(e,t=10){return"native"===(await U()).mode?g(e,t):((await $("/search",{method:"POST",body:JSON.stringify({query:e,limit:t})})).data??[]).map(e=>({url:e.url,title:e.title||e.url,description:e.description}))}let D={waitFor:1e4,onlyMainContent:!1,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"en-US,en;q=0.9","Sec-Ch-Ua":'"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Windows"'}};async function _(e){if("native"===(await U()).mode){let t=await S(e);return{url:t.url,title:t.title,markdown:t.markdown}}let t=(await $("/scrape",{method:"POST",body:JSON.stringify({url:e,formats:["markdown"],...D})})).data??{};return{url:t.metadata?.sourceURL||e,title:t.metadata?.title||t.metadata?.ogTitle||e,markdown:t.markdown??""}}async function P(e,t){if("native"===(await U()).mode)return k(e,t);let r=await $("/crawl",{method:"POST",body:JSON.stringify({url:e,limit:t,allowExternalLinks:!1,scrapeOptions:{...D,formats:["markdown"],onlyMainContent:!0}})});if(!r.id)throw new E("Firecrawl did not return a crawl id");return r.id}async function C(e,t=!1){if(!t&&e.startsWith("native-"))return b(e);let r=t?await T(e):await $(`/crawl/${e}`,{method:"GET"});return{state:r.status??"scraping",total:r.total??0,completed:r.completed??0,next:r.next,pages:(r.data??[]).map(e=>({url:e.metadata?.sourceURL||e.metadata?.url||"",title:e.metadata?.title||e.metadata?.sourceURL||"Untitled",markdown:e.markdown??""}))}}async function O(e){if(e.startsWith("native-"))return void await A(e);try{await $(`/crawl/${e}`,{method:"DELETE"})}catch{}}e.s(["FirecrawlError",0,E,"cancelCrawl",0,O,"getCrawlStatus",0,C,"isFirecrawlConfigured",0,R,"scrapePage",0,_,"searchWeb",0,L,"startCrawl",0,P],304368)}];
|
|
60
60
|
|
|
61
61
|
//# sourceMappingURL=packages_scraper_src_0kkcv_v._.js.map
|