larkup 0.1.44 → 0.1.46
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_marketplace_src_125_g2p._.js +1 -1
- 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_marketplace_src_125_g2p._.js +1 -1
- 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/0wy4vhj2gft06.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 +26 -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/0wy4vhj2gft06.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 +26 -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 → HU74sZ8oKr0VlhdDfm98x}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{PKYnBn_a2th07Ua42AUvs → HU74sZ8oKr0VlhdDfm98x}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{PKYnBn_a2th07Ua42AUvs → HU74sZ8oKr0VlhdDfm98x}/_ssgManifest.js +0 -0
- /package/.next/static/{PKYnBn_a2th07Ua42AUvs → HU74sZ8oKr0VlhdDfm98x}/_buildManifest.js +0 -0
- /package/.next/static/{PKYnBn_a2th07Ua42AUvs → HU74sZ8oKr0VlhdDfm98x}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{PKYnBn_a2th07Ua42AUvs → HU74sZ8oKr0VlhdDfm98x}/_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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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":"HU74sZ8oKr0VlhdDfm98x"}
|
|
@@ -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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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":"HU74sZ8oKr0VlhdDfm98x"}
|
|
@@ -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":"HU74sZ8oKr0VlhdDfm98x"}
|
|
@@ -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/0wy4vhj2gft06.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/0wy4vhj2gft06.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/0wy4vhj2gft06.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":"HU74sZ8oKr0VlhdDfm98x"}
|
|
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/0wy4vhj2gft06.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/0wy4vhj2gft06.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":"HU74sZ8oKr0VlhdDfm98x"}
|
|
@@ -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,3 +1,3 @@
|
|
|
1
|
-
module.exports=[612069,e=>{"use strict";var a=e.i(902157),t=e.i(750227);let o=process.env.LARKUP_HUB_URL??"https://hub.larkup.de",i=null;async function n(){let e={};for(let o of[t.default.resolve(process.cwd(),"packages","tools"),t.default.resolve(process.cwd(),"..","..","packages","tools"),t.default.resolve(process.cwd(),".larkup","tools","node_modules","@larkup"),t.default.resolve(process.cwd(),"..","..",".larkup","tools","node_modules","@larkup")])try{for(let i of(await a.promises.readdir(o,{withFileTypes:!0}))){if(!i.isDirectory())continue;let n=t.default.join(o,i.name,"tool.manifest.json");try{let t=await a.promises.readFile(n,"utf8"),o=JSON.parse(t);o.id&&(e[o.id]=o)}catch{}}}catch{}return e}async function r(e){try{let a=new AbortController,t=setTimeout(()=>a.abort(),5e3),i=await fetch(`${e??o}/v1/tools`,{signal:a.signal,headers:{Accept:"application/json"}});if(clearTimeout(t),!i.ok)return{};let n=await i.json(),r={};for(let e of n.tools??[])e.id&&(r[e.id]=e);return r}catch{return{}}}let s={"video-audio":{id:"video-audio",name:"Video & Audio",description:"Index video and audio files with transcription and frame analysis.",category:"media",version:"0.2.1",pricing:"free",emoji:"🎬",icon:"Film",packageName:"@larkup/tool-video-audio",installSize:"~15 MB",systemDeps:["ffmpeg"],author:"Larkup",capabilities:["video-indexing","audio-indexing","transcription","frame-extraction","youtube-import"],tags:["transcription","ffmpeg","video","audio","whisper"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",configSchema:[{key:"frameInterval",label:"Frame extraction interval (seconds)",type:"text",defaultValue:"10",help:"Baseline cadence for duration-aware coverage frames; scene changes and a reserved ending pass are added separately."},{key:"audioProvider",label:"Audio Provider",type:"select",help:"Choose the provider used only for audio and video transcription.",options:[{label:"OpenAI",value:"openai"},{label:"Groq",value:"groq"},{label:"Deepgram",value:"deepgram"},{label:"ElevenLabs",value:"elevenlabs"},{label:"Local Whisper",value:"local"}]},{key:"audioLanguage",label:"Transcription language",type:"text",defaultValue:"auto",help:"Use auto to infer Arabic from the media title and use provider detection otherwise. Enter a language code such as ar, ar-EG, en, or de to override it."},{key:"audioApiKey",label:"Audio API Key",type:"password",help:"Required for the selected audio provider and kept separate from the chat model key."}]},"clip-embeddings":{id:"clip-embeddings",name:"CLIP Image Search",description:"Direct image-to-image similarity search using CLIP/SigLIP embeddings.",category:"embedding",version:"0.1.0",pricing:"free",emoji:"🔍",icon:"ScanEye",packageName:"@larkup/tool-clip-embeddings",installSize:"~200 MB",author:"Larkup",capabilities:["clip-embeddings","image-similarity"],tags:["clip","siglip","image-search","visual-similarity"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",comingSoon:!0},"doc-editor":{id:"doc-editor",name:"Document Editor",description:"AI-powered form filling and document editing with Canvas-style live preview.",category:"utility",version:"0.2.3",pricing:"free",emoji:"📝",icon:"FileEdit",packageName:"@larkup/tool-doc-editor",installSize:"~5 MB",systemDeps:["docker"],author:"Larkup",capabilities:["document-editing","form-filling","document-preview"],tags:["pdf","docx","pptx","form","canvas","editor","fill"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20"}};async function l(e){if(i)return i;let a={...s};return Object.assign(a,await n()),e?.skipHub||Object.assign(a,await r(e?.hubUrl)),i=a,a}async function c(){return Object.values(await l()).sort((e,a)=>e.name.localeCompare(a.name))}async function d(e){return(await l())[e]}async function u(e){return(await c()).filter(a=>a.capabilities.includes(e))}e.s(["getAllTools",0,c,"getToolById",0,d,"getToolsWithCapability",0,u,"invalidateRegistryCache",0,function(){i=null}],612069)},463857,e=>{"use strict";var a=e.i(902157),t=e.i(750227),o=e.i(874533),i=e.i(812057),n=e.i(612069);let r=(0,i.promisify)(o.exec),s=Promise.resolve();function l(){return t.default.join(process.cwd(),".larkup","tools")}function c(){return t.default.join(l(),"installed.json")}async function d(){await a.promises.mkdir(l(),{recursive:!0})}async function u(){try{let e=await a.promises.readFile(c(),"utf8"),t=JSON.parse(e);for(let e of(t.downloadCounts||(t.downloadCounts={}),t.tools??[]))e.packagePath&&!e.packageName&&(e.packageName=e.packagePath,delete e.packagePath),e.source||(e.source="local"),e.resolvedPath||(e.resolvedPath=e.packageName);return t}catch{return{tools:[],downloadCounts:{},updatedAt:new Date().toISOString()}}}async function p(e){await d(),e.updatedAt=new Date().toISOString(),await a.promises.writeFile(c(),JSON.stringify(e,null,2),"utf8")}async function f(){return[...(await u()).tools]}async function m(e){return(await f()).some(a=>a.id===e)}async function g(e){return(await f()).find(a=>a.id===e)}async function w(){return(await u()).downloadCounts}async function h(e){let a=await (0,n.getToolById)(e);if(!a?.systemDeps?.length)return[];let t=y(),o=[];for(let e of a.systemDeps)if("docker"!==t||"docker"!==e)try{await r(`which ${e}`)}catch{o.push(e)}return o}function y(){let a=process.env.LARKUP_DEPLOYMENT_TARGET;return a&&["local","docker","serverless","sandbox"].includes(a)?a:process.env.VERCEL||process.env.AWS_LAMBDA_FUNCTION_NAME?"serverless":process.env.DOCKER_CONTAINER||function(){try{return e.r(902157).existsSync("/.dockerenv")}catch{return!1}}()?"docker":process.env.E2B_SANDBOX_ID||process.env.MODAL_TASK_ID?"sandbox":"local"}async function v(){let e=l(),o=t.default.join(e,"package.json");try{await a.promises.access(o)}catch{await d(),await a.promises.writeFile(o,JSON.stringify({name:"larkup-tools",version:"1.0.0",private:!0,description:"Isolated directory for installed Larkup marketplace tools."},null,2),"utf8")}}async function k(e,a,t,o){var i;let n;return i=()=>b(e,a,t,o),s=(n=s.then(i,i)).catch(()=>{}),n}async function b(e,o,i,n){let s=l();switch(i){case"local":case"docker":{await v();let l=async e=>{let a=`npm install ${e} --prefix "${s}" --save --no-audit --no-fund --prefer-offline`;n?.(`Running: npm install ${e}`);let{stderr:o}=await r(a,{cwd:s,timeout:"docker"===i?3e5:12e4,env:{...process.env,NODE_ENV:"production",HOME:process.env.HOME&&"/nonexistent"!==process.env.HOME?process.env.HOME:s,npm_config_cache:t.default.join(s,".npm-cache"),npm_config_update_notifier:"false"}});o&&!o.includes("npm warn")&&console.warn(`[marketplace] Install stderr: ${o}`)};try{await l(`${e}@${o}`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";if(!a.includes("ETARGET")&&!a.includes("No matching version found"))throw Error(`Failed to install ${e}: ${a}`);n?.(`Catalog version ${o} is unavailable; installing the latest published version…`);try{await l(`${e}@latest`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";throw Error(`Failed to install ${e}: ${a}`)}}let c=t.default.join(s,"node_modules",e);try{await a.promises.access(c)}catch{throw Error(`Package ${e} was installed but could not be found at ${c}`)}let d=JSON.parse(await a.promises.readFile(t.default.join(c,"package.json"),"utf8"));return{resolvedPath:c,version:d.version??o}}case"serverless":{n?.("Serverless environment detected — queuing for next deploy");let i=t.default.join(s,"pending-tools.json"),r={tools:[]};try{let e=await a.promises.readFile(i,"utf8");r=JSON.parse(e)}catch{}return r.tools.push({packageName:e,version:o}),await d(),await a.promises.writeFile(i,JSON.stringify(r,null,2),"utf8"),{resolvedPath:t.default.join(s,"node_modules",e),version:o}}case"sandbox":{n?.("Installing in sandbox environment"),await v();let a=`npm install ${e}@${o} --prefix "${s}" --save --no-audit --no-fund`;return await r(a,{cwd:s,timeout:12e4}),{resolvedPath:t.default.join(s,"node_modules",e),version:o}}default:throw Error(`Unsupported deployment target: ${i}`)}}async function A(e){let a=await (0,n.getToolById)(e);if(a)return a;throw Error(`Unknown tool: ${e}. Not found in local registry or Hub.`)}async function E(e){try{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e}catch{return!1}}async function N(e,a){let o=(t,o,i)=>{a?.({toolId:e,stage:t,percent:o,message:i})};try{let a,i;o("checking-deps",5,"Resolving tool manifest…");let r=await A(e);if(r.comingSoon)throw Error(`${r.name} is coming soon.`);o("checking-deps",15,"Checking system dependencies…");let s=(await h(e)).filter(e=>"docker"!==e);if(s.length>0){let e=`Missing system dependencies: ${s.join(", ")}. Please install them first.`;throw o("failed",0,e),Error(e)}let l=await E(r.packageName),c=y(),f=r.version;if(l){o("downloading",30,"Resolving workspace package…");try{let e=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();a=t.default.dirname(e)}catch{a=t.default.join(process.cwd(),"node_modules",r.packageName)}i="local",o("installing",60,"Workspace package resolved.")}else{o("downloading",30,`Downloading ${r.packageName}@${r.version}…`);let e=await k(r.packageName,r.version,c,e=>o("downloading",50,e));a=e.resolvedPath,f=e.version,i="sandbox"===c?"sandbox":"registry",o("installing",70,"Package installed.")}o("installing",80,"Registering tool…"),await d();let m=await u(),g=m.tools.findIndex(a=>a.id===e),w={id:e,version:f,installedAt:new Date().toISOString(),packageName:r.packageName,resolvedPath:a,source:i,config:function(e){let a={};for(let t of e.configSchema??[])void 0!==t.defaultValue&&(a[t.key]=t.defaultValue);return a}(r)};g>=0?m.tools[g]=w:m.tools.push(w),m.downloadCounts[e]=(m.downloadCounts[e]??0)+1,await p(m),O(e).catch(()=>{}),(0,n.invalidateRegistryCache)(),o("completed",100,"Installed successfully.")}catch(e){throw o("failed",0,e instanceof Error?e.message:"Installation failed."),e}}async function I(a){let t=await u(),o=t.tools.find(e=>e.id===a);if(t.tools=t.tools.filter(e=>e.id!==a),await p(t),o?.source==="registry"&&o.packageName)try{let e=l();await r(`npm uninstall ${o.packageName} --prefix "${e}"`,{cwd:e,timeout:3e4})}catch{}(0,n.invalidateRegistryCache)();let{unloadTool:i}=await e.A(484620);i(a)}async function O(e){let a=process.env.LARKUP_HUB_URL??"https://hub.larkup.de";try{let t=new AbortController,o=setTimeout(()=>t.abort(),3e3);await fetch(`${a}/v1/tools/${e}/installed`,{method:"POST",signal:t.signal,headers:{"Content-Type":"application/json"}}),clearTimeout(o)}catch{}}e.s(["getDownloadCounts",0,w,"getInstalledTool",0,g,"getInstalledTools",0,f,"installTool",0,N,"isToolInstalled",0,m,"uninstallTool",0,I])}];
|
|
1
|
+
module.exports=[612069,e=>{"use strict";var t=e.i(902157),a=e.i(750227);let i=process.env.LARKUP_HUB_URL??"https://hub.larkup.de",o=null;async function n(){let e={};for(let i of[a.default.resolve(process.cwd(),"packages","tools"),a.default.resolve(process.cwd(),"..","..","packages","tools"),a.default.resolve(process.cwd(),".larkup","tools","node_modules","@larkup"),a.default.resolve(process.cwd(),"..","..",".larkup","tools","node_modules","@larkup")])try{for(let o of(await t.promises.readdir(i,{withFileTypes:!0}))){if(!o.isDirectory())continue;let n=a.default.join(i,o.name,"tool.manifest.json");try{let a=await t.promises.readFile(n,"utf8"),i=JSON.parse(a);i.id&&(e[i.id]=i)}catch{}}}catch{}return e}async function r(e){try{let t=new AbortController,a=setTimeout(()=>t.abort(),5e3),o=await fetch(`${e??i}/v1/tools`,{signal:t.signal,headers:{Accept:"application/json"}});if(clearTimeout(a),!o.ok)return{};let n=await o.json(),r={};for(let e of n.tools??[])e.id&&(r[e.id]=e);return r}catch{return{}}}let s={"video-audio":{id:"video-audio",name:"Video & Audio",description:"Index video and audio files with transcription and frame analysis.",category:"media",version:"0.2.1",pricing:"free",emoji:"🎬",icon:"Film",packageName:"@larkup/tool-video-audio",installSize:"~15 MB",systemDeps:["ffmpeg"],author:"Larkup",capabilities:["video-indexing","audio-indexing","transcription","frame-extraction","youtube-import"],tags:["transcription","ffmpeg","video","audio","whisper"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",configSchema:[{key:"frameInterval",label:"Frame extraction interval (seconds)",type:"text",defaultValue:"10",help:"Baseline cadence for duration-aware coverage frames; scene changes and a reserved ending pass are added separately."},{key:"audioProvider",label:"Audio Provider",type:"select",help:"Choose the provider used only for audio and video transcription.",options:[{label:"OpenAI",value:"openai"},{label:"Groq",value:"groq"},{label:"Deepgram",value:"deepgram"},{label:"ElevenLabs",value:"elevenlabs"},{label:"Local Whisper",value:"local"}]},{key:"audioLanguage",label:"Transcription language",type:"text",defaultValue:"auto",help:"Use auto to infer Arabic from the media title and use provider detection otherwise. Enter a language code such as ar, ar-EG, en, or de to override it."},{key:"audioApiKey",label:"Audio API Key",type:"password",help:"Required for the selected audio provider and kept separate from the chat model key."}]},"clip-embeddings":{id:"clip-embeddings",name:"CLIP Image Search",description:"Direct image-to-image similarity search using CLIP/SigLIP embeddings.",category:"embedding",version:"0.1.0",pricing:"free",emoji:"🔍",icon:"ScanEye",packageName:"@larkup/tool-clip-embeddings",installSize:"~200 MB",author:"Larkup",capabilities:["clip-embeddings","image-similarity"],tags:["clip","siglip","image-search","visual-similarity"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",comingSoon:!0},"doc-editor":{id:"doc-editor",name:"Document Editor",description:"AI-powered form filling and document editing with Canvas-style live preview.",category:"utility",version:"0.2.3",pricing:"free",emoji:"📝",icon:"FileEdit",packageName:"@larkup/tool-doc-editor",installSize:"~5 MB",systemDeps:["docker"],author:"Larkup",capabilities:["document-editing","form-filling","document-preview"],tags:["pdf","docx","pptx","form","canvas","editor","fill"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20"}};async function l(e){if(o)return o;let t={...s};return Object.assign(t,await n()),e?.skipHub||Object.assign(t,await r(e?.hubUrl)),o=t,t}async function c(){return Object.values(await l()).sort((e,t)=>e.name.localeCompare(t.name))}async function d(e){return(await l())[e]}async function u(e){return(await c()).filter(t=>t.capabilities.includes(e))}e.s(["getAllTools",0,c,"getToolById",0,d,"getToolsWithCapability",0,u,"invalidateRegistryCache",0,function(){o=null}],612069)},463857,e=>{"use strict";var t=e.i(902157),a=e.i(750227),i=e.i(874533),o=e.i(812057),n=e.i(612069);let r=(0,o.promisify)(i.exec),s=Promise.resolve();function l(){return a.default.join(process.cwd(),".larkup","tools")}function c(){return a.default.join(l(),"installed.json")}async function d(){await t.promises.mkdir(l(),{recursive:!0})}async function u(){try{let e=await t.promises.readFile(c(),"utf8"),a=JSON.parse(e);for(let e of(a.downloadCounts||(a.downloadCounts={}),a.tools??[]))e.packagePath&&!e.packageName&&(e.packageName=e.packagePath,delete e.packagePath),e.source||(e.source="local"),e.resolvedPath||(e.resolvedPath=e.packageName);return a}catch{return{tools:[],downloadCounts:{},updatedAt:new Date().toISOString()}}}async function p(e){await d(),e.updatedAt=new Date().toISOString(),await t.promises.writeFile(c(),JSON.stringify(e,null,2),"utf8")}async function f(){return[...(await u()).tools]}async function m(e){return(await f()).some(t=>t.id===e)}async function g(e){return(await f()).find(t=>t.id===e)}async function h(){return(await u()).downloadCounts}let w={ffmpeg:{macos:"brew install ffmpeg",linux_apt:"sudo apt-get install -y ffmpeg",linux_dnf:"sudo dnf install -y ffmpeg",linux_pacman:"sudo pacman -S --noconfirm ffmpeg",linux_apk:"sudo apk add --no-cache ffmpeg"}};async function y(e,t){let a,i=w[e];if(!i)return!1;try{await r("which brew"),a=i.macos}catch{return!1}if(!a)return!1;t?.(`Auto-installing ${e}…`);try{await r(a,{timeout:12e4})}catch{return!1}try{return await r(`which ${e}`),!0}catch{return!1}}async function v(e){let t=await (0,n.getToolById)(e);if(!t?.systemDeps?.length)return[];let a=k(),i=[];for(let e of t.systemDeps)if("docker"!==a||"docker"!==e)try{await r(`which ${e}`)}catch{i.push(e)}return i}function k(){let t=process.env.LARKUP_DEPLOYMENT_TARGET;return t&&["local","docker","serverless","sandbox"].includes(t)?t:process.env.VERCEL||process.env.AWS_LAMBDA_FUNCTION_NAME?"serverless":process.env.DOCKER_CONTAINER||function(){try{return e.r(902157).existsSync("/.dockerenv")}catch{return!1}}()?"docker":process.env.E2B_SANDBOX_ID||process.env.MODAL_TASK_ID?"sandbox":"local"}async function b(){let e=l(),i=a.default.join(e,"package.json");try{await t.promises.access(i)}catch{await d(),await t.promises.writeFile(i,JSON.stringify({name:"larkup-tools",version:"1.0.0",private:!0,description:"Isolated directory for installed Larkup marketplace tools."},null,2),"utf8")}}async function A(e,t,a,i){var o;let n;return o=()=>E(e,t,a,i),s=(n=s.then(o,o)).catch(()=>{}),n}async function E(e,i,o,n){let s=l();switch(o){case"local":case"docker":{await b();let l=async e=>{let t=`npm install ${e} --prefix "${s}" --save --no-audit --no-fund --prefer-offline`;n?.(`Running: npm install ${e}`);let{stderr:i}=await r(t,{cwd:s,timeout:"docker"===o?3e5:12e4,env:{...process.env,NODE_ENV:"production",HOME:process.env.HOME&&"/nonexistent"!==process.env.HOME?process.env.HOME:s,npm_config_cache:a.default.join(s,".npm-cache"),npm_config_update_notifier:"false"}});i&&!i.includes("npm warn")&&console.warn(`[marketplace] Install stderr: ${i}`)};try{await l(`${e}@${i}`)}catch(a){let t=a instanceof Error?a.message:"Install command failed";if(!t.includes("ETARGET")&&!t.includes("No matching version found"))throw Error(`Failed to install ${e}: ${t}`);n?.(`Catalog version ${i} is unavailable; installing the latest published version…`);try{await l(`${e}@latest`)}catch(a){let t=a instanceof Error?a.message:"Install command failed";throw Error(`Failed to install ${e}: ${t}`)}}let c=a.default.join(s,"node_modules",e);try{await t.promises.access(c)}catch{throw Error(`Package ${e} was installed but could not be found at ${c}`)}let d=JSON.parse(await t.promises.readFile(a.default.join(c,"package.json"),"utf8"));return{resolvedPath:c,version:d.version??i}}case"serverless":{n?.("Serverless environment detected — queuing for next deploy");let o=a.default.join(s,"pending-tools.json"),r={tools:[]};try{let e=await t.promises.readFile(o,"utf8");r=JSON.parse(e)}catch{}return r.tools.push({packageName:e,version:i}),await d(),await t.promises.writeFile(o,JSON.stringify(r,null,2),"utf8"),{resolvedPath:a.default.join(s,"node_modules",e),version:i}}case"sandbox":{n?.("Installing in sandbox environment"),await b();let t=`npm install ${e}@${i} --prefix "${s}" --save --no-audit --no-fund`;return await r(t,{cwd:s,timeout:12e4}),{resolvedPath:a.default.join(s,"node_modules",e),version:i}}default:throw Error(`Unsupported deployment target: ${o}`)}}async function $(e){let t=await (0,n.getToolById)(e);if(t)return t;throw Error(`Unknown tool: ${e}. Not found in local registry or Hub.`)}async function _(e){try{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e}catch{return!1}}async function N(e,t){let i=(a,i,o)=>{t?.({toolId:e,stage:a,percent:i,message:o})};try{let t,o;i("checking-deps",5,"Resolving tool manifest…");let r=await $(e);if(r.comingSoon)throw Error(`${r.name} is coming soon.`);i("checking-deps",15,"Checking system dependencies…");let s=(await v(e)).filter(e=>"docker"!==e);if(s.length>0){let e=[];for(let t of s)i("checking-deps",18,`Attempting to install ${t}…`),await y(t,e=>i("checking-deps",20,e))?i("checking-deps",22,`${t} installed successfully.`):e.push(t);s=e}if(s.length>0){let e=function(e){let t=[`Missing system dependencies: ${e.join(", ")}.`];for(let a of e){let e=w[a];if(!e){t.push(` • ${a}: Please install it manually.`);continue}if(e.macos)t.push(` • ${a}: Run \`${e.macos}\``);else if(0){let i=e.linux_apt||e.linux_dnf||e.linux_pacman||e.linux_apk;i&&t.push(` • ${a}: Run \`${i}\``)}}return t.join("\n")}(s);throw i("failed",0,e),Error(e)}let l=await _(r.packageName),c=k(),f=r.version;if(l){i("downloading",30,"Resolving workspace package…");try{let e=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();t=a.default.dirname(e)}catch{t=a.default.join(process.cwd(),"node_modules",r.packageName)}o="local",i("installing",60,"Workspace package resolved.")}else{i("downloading",30,`Downloading ${r.packageName}@${r.version}…`);let e=await A(r.packageName,r.version,c,e=>i("downloading",50,e));t=e.resolvedPath,f=e.version,o="sandbox"===c?"sandbox":"registry",i("installing",70,"Package installed.")}i("installing",80,"Registering tool…"),await d();let m=await u(),g=m.tools.findIndex(t=>t.id===e),h={id:e,version:f,installedAt:new Date().toISOString(),packageName:r.packageName,resolvedPath:t,source:o,config:function(e){let t={};for(let a of e.configSchema??[])void 0!==a.defaultValue&&(t[a.key]=a.defaultValue);return t}(r)};g>=0?m.tools[g]=h:m.tools.push(h),m.downloadCounts[e]=(m.downloadCounts[e]??0)+1,await p(m),I(e).catch(()=>{}),(0,n.invalidateRegistryCache)(),i("completed",100,"Installed successfully.")}catch(e){throw i("failed",0,e instanceof Error?e.message:"Installation failed."),e}}async function x(t){let a=await u(),i=a.tools.find(e=>e.id===t);if(a.tools=a.tools.filter(e=>e.id!==t),await p(a),i?.source==="registry"&&i.packageName)try{let e=l();await r(`npm uninstall ${i.packageName} --prefix "${e}"`,{cwd:e,timeout:3e4})}catch{}(0,n.invalidateRegistryCache)();let{unloadTool:o}=await e.A(484620);o(t)}async function I(e){let t=process.env.LARKUP_HUB_URL??"https://hub.larkup.de";try{let a=new AbortController,i=setTimeout(()=>a.abort(),3e3);await fetch(`${t}/v1/tools/${e}/installed`,{method:"POST",signal:a.signal,headers:{"Content-Type":"application/json"}}),clearTimeout(i)}catch{}}e.s(["getDownloadCounts",0,h,"getInstalledTool",0,g,"getInstalledTools",0,f,"installTool",0,N,"isToolInstalled",0,m,"uninstallTool",0,x])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_marketplace_src_125_g2p._.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
|